From b8b16d90fd13bcad5881a4562b5bbe96e576bd6b Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 03 八月 2022 16:27:56 +0800
Subject: [PATCH] 1.解决工单手动打印大二维码问题

---
 src/views/jcsz/yhqd.vue |  208 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 173 insertions(+), 35 deletions(-)

diff --git a/src/views/jcsz/yhqd.vue b/src/views/jcsz/yhqd.vue
index a20ec9f..966c620 100644
--- a/src/views/jcsz/yhqd.vue
+++ b/src/views/jcsz/yhqd.vue
@@ -25,11 +25,18 @@
                 :props="defaultProps"
                 @change="cascaderChange"
               />
+              <!--              @focus="getUserOrganization"-->
+
             </el-form-item>
             <el-form-item label="宸ヨ祫绫诲瀷" style=" display: flex;">
-              <el-select v-model="form.wagetype" :popper-append-to-body="false" filterable style="width: 200px" placeholder="璇烽�夋嫨">
+              <el-select
+                v-model="form.wagetype"
+                :popper-append-to-body="false"
+                filterable
+                style="width: 200px"
+                placeholder="璇烽�夋嫨"
+              >
                 <el-option
-
                   v-for="item in wagetypeArr"
                   :key="item.value"
                   :label="item.label"
@@ -38,7 +45,13 @@
               </el-select>
             </el-form-item>
             <el-form-item label="鍦ㄨ亴鐘舵��" style=" display: flex;">
-              <el-select v-model="form.Enable" :popper-append-to-body="false" filterable style="width: 200px" placeholder="璇烽�夋嫨">
+              <el-select
+                v-model="form.Enable"
+                :popper-append-to-body="false"
+                filterable
+                style="width: 200px"
+                placeholder="璇烽�夋嫨"
+              >
                 <el-option
                   v-for="item in EnableArr"
                   :key="item.value"
@@ -66,7 +79,7 @@
           :data="tableData"
           border
           stripe
-          :height="tableHeight"
+          :height="tableHeight+'px'"
           highlight-current-row
           :style="{width: 100+'%',height:tableHeight+'px'}"
           :header-cell-style="this.$headerCellStyle"
@@ -81,36 +94,43 @@
             prop="RowNum"
             width="50"
             label="搴忓彿"
+            fixed
           />
           <el-table-column
             prop="usercode"
             label="鐢ㄦ埛缂栫爜"
+            min-width="110"
             sortable="custom"
           />
           <el-table-column
             prop="username"
             label="鐢ㄦ埛鍚嶇О"
+            min-width="110"
             sortable="custom"
           />
           <el-table-column
             prop="password"
             label="鐢ㄦ埛瀵嗙爜"
+            min-width="110"
             sortable="custom"
           />
           <el-table-column
             prop="org_name"
             label="鎵�灞炵粍缁�"
+            min-width="110"
             sortable="custom"
           />
           <el-table-column
             prop="group_name"
             label="鐢熶骇鐝粍"
+            min-width="110"
             sortable="custom"
           />
           <el-table-column
             prop="wagetype"
             label="宸ヨ祫绫诲瀷"
             sortable="custom"
+            width="110"
           >
             <template slot-scope="{row}">
               <div v-if="row.wagetype==='1'">璁℃椂鍒�</div>
@@ -120,16 +140,29 @@
           <el-table-column
             prop="mobile"
             label="鑱旂郴鏂瑰紡"
+            min-width="110"
             sortable="custom"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.mobile===''">/</div>
+              <div v-else>{{ row.mobile }}</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="email"
             label="鐢靛瓙閭"
             sortable="custom"
-          />
+            min-width="110"
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.email===''">/</div>
+              <div v-else>{{ row.email }}</div>
+            </template>
+          </el-table-column>
           <el-table-column
-            prop=""
+            prop="enable"
             label="鍦ㄨ亴鐘舵��"
+            width="110"
             sortable="custom"
           >
             <template slot-scope="{row}">
@@ -140,24 +173,28 @@
           <el-table-column
             prop="lm_user"
             label="鍒涘缓浜哄憳"
+            width="110"
             sortable="custom"
           />
           <el-table-column
             prop="lm_date"
             label="鍒涘缓鏃堕棿"
-            width="200"
+            width="160"
             sortable="custom"
           />
           <el-table-column
             prop="is_role"
             label="鍏宠仈瑙掕壊"
+            width="110"
           >
             <template slot-scope="{row}">
-              <i class="el-icon-share" @click="roleClick({row})" />
+              <i v-if="row.is_role==='Y'" class="el-icon-share" @click="roleClick({row})" />
+              <i v-if="row.is_role==='N'" class="el-icon-share" style="color: rgb(180 ,181, 185)" @click="roleClick({row})" />
             </template>
           </el-table-column>
           <el-table-column
             label="鎿嶄綔"
+            fixed="right"
           >
             <template slot-scope="{row}">
               <div class="operationClass">
@@ -223,11 +260,27 @@
             key="cascaderKey"
             filterable
             popper-class="elCascader"
-            :options="StuOrgArr"
+            :options="StuOrgArr2"
             :props="defaultProps"
             style="width: 200px;"
             @change="dialogCascaderChange"
           />
+        </el-form-item>
+        <el-form-item label="鎵�灞炵彮缁�" prop="groupcode">
+          <el-select
+            v-model="dialogForm.groupcode"
+            :popper-append-to-body="false"
+            filterable
+            style="width: 200px"
+            placeholder="璇烽�夋嫨"
+          >
+            <el-option
+              v-for="item in usergroupArr"
+              :key="item.group_code"
+              :label="item.group_name"
+              :value="item.group_code"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="宸ヨ祫绫诲瀷" prop="wagetype">
           <el-select
@@ -245,11 +298,10 @@
             />
           </el-select>
         </el-form-item>
-
-        <el-form-item label="鑱旂郴鏂瑰紡">
+        <el-form-item label="鑱旂郴鏂瑰紡" prop="Mobile">
           <el-input v-model="dialogForm.Mobile" style="width: 200px" />
         </el-form-item>
-        <el-form-item label="鐢靛瓙閭">
+        <el-form-item label="鐢靛瓙閭" prop="Email">
           <el-input v-model="dialogForm.Email" style="width: 200px" />
         </el-form-item>
       </el-form>
@@ -422,16 +474,20 @@
         </div>
       </span>
     </el-dialog>
+
+    <!--瀵煎叆缁勪欢-->
+    <import-picker ref="importPickerFunc" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" />
+
   </div>
 </template>
 
 <script>
 import Pagination from '@/components/Pagination'
+import ImportPicker from '@/components/ImportPicker'
+
 import {
   AddUpdateUser,
   DeleteUser,
-  RoleTypeAdd,
-  RoleTypeDelete,
   SaveUserAssoctRole,
   UserAssociationRole,
   UserGroupAdd,
@@ -442,12 +498,14 @@
 } from '@/api/jcsz'
 import { getCookie } from '@/utils/auth'
 import $ from 'jquery'
+import clearAllChildren from '@/utils/global'
+import { MesOrderStepReportSelectUserGroup } from '@/api/scgl'
 
 const SER_HZ = /^[\u4e00-\u9fa5]+$/
 export default {
-  name: 'Zzjg',
+  name: 'YYQD',
   components: {
-    Pagination
+    Pagination, ImportPicker
   },
   data() {
     const validateName = (rule, value, callback) => {
@@ -461,6 +519,36 @@
         }
       }
     }
+    const validateMobile = (rule, value, callback) => {
+      if (!value) {
+        callback()
+        // return callback(new Error('璇疯緭鍏ョ數璇濆彿鐮�'))
+      } else {
+        const mobile = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/ // 闀垮彿
+        const mobile2 = /^[0-9]{6}$/ // 鐭彿
+        if (mobile.test(value) || mobile2.test(value)) {
+          callback()
+          // return callback(new Error('鐢佃瘽鍙风爜涓嶇鍚堣鍒�'))
+        } else {
+          return callback(new Error('鐢佃瘽鍙风爜涓嶇鍚堣鍒�'))
+          // callback()
+        }
+      }
+    }
+    const validateEmail = (rule, value, callback) => {
+      if (!value) {
+        callback()
+        // return callback(new Error('璇疯緭鍏ョ數瀛愰偖绠�'))
+      } else {
+        const email = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/
+        if (email.test(value)) {
+          callback()
+        } else {
+          return callback(new Error('鐢靛瓙閭涓嶇鍚堣鍒�'))
+        }
+      }
+    }
+
     return {
       isFullscreen: false,
       mainHeight: 0,
@@ -477,6 +565,7 @@
         rows: 20 // 姣忛〉澶氬皯鏉�
       },
       StuOrgArr: [], // 鎵�灞炵粍缁囨暟缁�
+      StuOrgArr2: [], // 鎵�灞炵粍缁囨暟缁�  瀵硅瘽妗�
       defaultProps: {
         checkStrictly: true,
         value: 'code',
@@ -495,14 +584,16 @@
         UserCode: '',
         UserName: '',
         Password: '',
-        Enable: '',
+        Enable: 'Y',
         StuOrg: '',
         Mobile: '',
         Email: '',
+        groupcode: '',
         Operator: '',
         OperType: '',
         wagetype: ''
       },
+      usergroupArr: [], // 鐢熶骇鐝粍鏁扮粍
       wagetypeArr: [
         { value: '2', label: '璁′欢鍒�' },
         { value: '1', label: '璁℃椂鍒�' }
@@ -526,7 +617,17 @@
         ],
         wagetype: [
           { required: true, message: '璇烽�夋嫨宸ヨ祫绫诲瀷', trigger: ['blur', 'change'] }
+        ],
+        groupcode: [
+          { required: true, message: '璇烽�夋嫨鎵�灞炵彮缁�', trigger: ['blur', 'change'] }
+        ],
+        Mobile: [
+          { required: false, validator: validateMobile, trigger: ['blur', 'change'] }
+        ],
+        Email: [
+          { required: false, validator: validateEmail, trigger: ['blur', 'change'] }
         ]
+
       },
       dialogVisibleRoles: false,
       dialogFormRoles: {
@@ -551,6 +652,17 @@
         page: 1,
         prop: 'group_code',
         order: 'desc'
+      },
+
+      title_value: '鏁版嵁瀵煎叆 / 鐢ㄦ埛娓呭崟',
+      code: '2',
+      shows: false
+    }
+  },
+  watch: {
+    shows() {
+      if (!this.shows) {
+        this.getUserSearch()
       }
     }
   },
@@ -572,11 +684,20 @@
     // 鑾峰彇鎵�灞炵粍缁�
     async getUserOrganization() {
       const { data: res } = await UserOrganization()
-      this.StuOrgArr = res
+      this.StuOrgArr = clearAllChildren(res)
+    },
+    // 鑾峰彇鎵�灞炵粍缁囧璇濇
+    async getUserOrganization2() {
+      const { data: res } = await UserOrganization()
+      this.StuOrgArr2 = clearAllChildren(res)
     },
     // 瀵煎叆鎸夐挳
     upload() {
-
+      this.shows = true
+      this.$refs.importPickerFunc.newDataFunc()
+    },
+    colos() {
+      this.shows = false
     },
     // 鎺掑簭鏀瑰彉鏃�
     sortChange({ column, prop, order }) {
@@ -600,7 +721,7 @@
       this.form.UserCode = ''
       this.form.UserName = ''
       this.form.StuOrg = ''
-      this.form.Enable = ''
+      this.form.Enable = 'Y'
       this.form.wagetype = ''
       this.$refs.cascader.checkedValue = ''// 绾ц仈閫夋嫨鍣ㄧ殑娓呯┖
       this.getUserSearch()
@@ -612,10 +733,17 @@
     dialogCascaderChange(val) {
       this.dialogForm.StuOrg = val[val.length - 1]
     },
+    // 鑾峰彇涓嬫媺鐢熶骇鐝粍
+    async getMesOrderStepReportSelectUserGroup() {
+      const { data: res } = await MesOrderStepReportSelectUserGroup()
+      this.usergroupArr = res
+    },
     // 鏂板鎸夐挳
     add(operation) {
       this.operation = operation
       this.dialogVisible = true
+      this.getUserOrganization2()
+      this.getMesOrderStepReportSelectUserGroup()
     },
     // 淇敼鎸夐挳
     edit(operation, row) {
@@ -628,6 +756,7 @@
         this.dialogForm.UserCode = row.usercode
         this.dialogForm.UserName = row.username
         this.dialogForm.Password = row.password
+        this.dialogForm.groupcode = row.group_code
         this.dialogForm.Enable = row.enable
         this.dialogForm.StuOrg = row.stu_torgcode
         this.$refs.dialogCascader.checkedValue = row.stu_torgcode
@@ -635,6 +764,8 @@
         this.dialogForm.Email = row.email
         this.dialogForm.wagetype = row.wagetype
       })
+      this.getMesOrderStepReportSelectUserGroup()
+      this.getUserOrganization2()
     },
     // 鍒犻櫎鎸夐挳
     async del(id) {
@@ -659,11 +790,12 @@
       this.dialogForm.UserCode = ''
       this.dialogForm.UserName = ''
       this.dialogForm.Password = ''
-      this.dialogForm.Enable = ''
+      this.dialogForm.Enable = 'Y'
       this.$refs.dialogCascader.checkedValue = ''
       this.dialogForm.StuOrg = ''
       this.dialogForm.Mobile = ''
       this.dialogForm.Email = ''
+      this.dialogForm.groupcode = ''
       this.dialogForm.wagetype = ''
       this.$refs.dialogForm.clearValidate()
     },
@@ -685,6 +817,7 @@
             StuOrg: Array.isArray(this.$refs.dialogCascader.checkedValue) ? this.$refs.dialogCascader.checkedValue[this.$refs.dialogCascader.checkedValue.length - 1] : this.$refs.dialogCascader.checkedValue,
             Mobile: this.dialogForm.Mobile,
             Email: this.dialogForm.Email,
+            groupcode: this.dialogForm.groupcode,
             wagetype: this.dialogForm.wagetype,
             OperType: this.operation === 'add' ? 'Add' : 'Update',
             Operator: getCookie('admin')
@@ -708,7 +841,7 @@
       this.$nextTick(() => {
         this.mainHeight = window.innerHeight - 250
         this.tableHeight = this.mainHeight - 100
-        this.isFullscreen = window.innerHeight < 800
+        // this.isFullscreen = window.innerHeight < 800
         if (window.innerHeight < 800) {
           this.tableHeight = this.tableHeight - 50
         }
@@ -780,6 +913,7 @@
       const res = await SaveUserAssoctRole(this.dialogFormRoles.roleTreeSelectedArr, this.dialogFormRoles.usercode)
       if (res.code === '200') {
         this.$message.success('淇濆瓨鎴愬姛锛�')
+        await this.getUserSearch()
         this.dialogVisibleRoles = false
       }
     },
@@ -839,7 +973,8 @@
                   if (i.Code === checkedFatherCode) {
                     this.dialogFormRoles.roleTreeSelectedArr[ind].Data.forEach((i1, ind2) => {
                       if (i1 === a[0]) {
-                        this.dialogFormRoles.roleTreeSelectedArr[ind].Data.splice(ind2, 1)// 褰撳瓙code涓庣幇鍦ㄧ殑code鐩稿悓鏃舵墽琛�
+                        // this.dialogFormRoles.roleTreeSelectedArr[ind].Data.splice(ind2, 1)// 褰撳瓙code涓庣幇鍦ㄧ殑code鐩稿悓鏃舵墽琛�
+                        this.dialogFormRoles.roleTreeSelectedArr[ind].Data = this.dialogFormRoles.roleTreeSelectedArr[ind].Data.filter(i2 => i2 !== a[0])
                       } else {
                         this.dialogFormRoles.roleTreeSelectedArr[ind].Data.push(a[0])// //褰撳瓙code涓庣幇鍦ㄧ殑code涓嶇浉鍚屾椂鎵ц
                       }
@@ -1010,7 +1145,7 @@
           this.workingTableData.splice(index, 1)
         }
       })
-      // this.getUserGroupSearch()
+      this.getMesOrderStepReportSelectUserGroup()
     },
     // 鐢熶骇鐝粍鎺掑簭
     sortChangeOfWorking({ column, prop, order }) {
@@ -1026,7 +1161,7 @@
       this.getUserGroupSearch()
     },
     // 鑾峰彇鐢熶骇鐝粍鍒楄〃
-    async  getUserGroupSearch() {
+    async getUserGroupSearch() {
       const res = await UserGroupSearch(this.formWorking)
       this.workingTableData = res.data
       this.workingTableDataLength = res.count
@@ -1059,16 +1194,16 @@
       })
     },
     // 淇濆瓨
-    async  saveWorking(row) {
+    async saveWorking(row) {
       if (row.group_code.trim().length < 1) {
         return this.$message.info('鐝粍缂栫爜涓嶈兘涓虹┖锛�')
       }
       if (row.group_name.trim().length < 1) {
         return this.$message.info('鐝粍鍚嶇О涓嶈兘涓虹┖锛�')
       }
-      if (row.description.trim().length < 1) {
-        return this.$message.info('鐝粍鎻忚堪涓嶈兘涓虹┖锛�')
-      }
+      // if (row.description.trim().length < 1) {
+      //   return this.$message.info('鐝粍鎻忚堪涓嶈兘涓虹┖锛�')
+      // }
       const data = {
         code: row.group_code,
         name: row.group_name,
@@ -1107,6 +1242,7 @@
   border: none;
   padding: 0 20px;
 }
+
 ::v-deep .el-button--primary:hover {
   border: none;
 }
@@ -1149,7 +1285,7 @@
   padding: 20px 100px !important;
 }
 
-.workingDialogVisible ::v-deep .el-dialog__body{
+.workingDialogVisible ::v-deep .el-dialog__body {
   padding: 20px 20px !important;
 }
 
@@ -1298,15 +1434,15 @@
   border-color: $main_color;
 }
 
-::v-deep .el-select .el-input__inner:focus{
+::v-deep .el-select .el-input__inner:focus {
   border-color: $main_color;
 }
 
-::v-deep .el-select-dropdown__item.selected{
+::v-deep .el-select-dropdown__item.selected {
   color: $main_color;
 }
 
-::v-deep  .el-input__inner:focus {
+::v-deep .el-input__inner:focus {
   border-color: #42b983 !important;
 }
 
@@ -1327,10 +1463,12 @@
     background-color: #42b983;
     border-color: #42b983;
   }
+
   .el-radio__input.is-checked .el-radio__inner:hover {
     border-color: #42b983;
   }
-  .el-input__inner{
+
+  .el-input__inner {
     border-color: #42b983 !important;
   }
 

--
Gitblit v1.9.3