From 9b825939b7f0a7439d704b379812362dd95697fc Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期一, 11 七月 2022 17:49:26 +0800
Subject: [PATCH] 1.优化代码2.修改实施部提出的bug3.生产开报工外协列表自动弹窗实现部分

---
 src/views/jcsz/yhqd.vue |  109 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 98 insertions(+), 11 deletions(-)

diff --git a/src/views/jcsz/yhqd.vue b/src/views/jcsz/yhqd.vue
index 3f5badf..4ad0f23 100644
--- a/src/views/jcsz/yhqd.vue
+++ b/src/views/jcsz/yhqd.vue
@@ -23,13 +23,13 @@
                 popper-class="elCascader"
                 :options="StuOrgArr"
                 :props="defaultProps"
+                @focus="getUserOrganization"
                 @change="cascaderChange"
               />
             </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-option
-
                   v-for="item in wagetypeArr"
                   :key="item.value"
                   :label="item.label"
@@ -66,7 +66,7 @@
           :data="tableData"
           border
           stripe
-          :height="tableHeight"
+          :height="tableHeight+'px'"
           highlight-current-row
           :style="{width: 100+'%',height:tableHeight+'px'}"
           :header-cell-style="this.$headerCellStyle"
@@ -121,12 +121,22 @@
             prop="mobile"
             label="鑱旂郴鏂瑰紡"
             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"
-          />
+          >
+            <template slot-scope="{row}">
+              <div v-if="row.email===''">/</div>
+              <div v-else>{{ row.email }}</div>
+            </template>
+          </el-table-column>
           <el-table-column
             prop=""
             label="鍦ㄨ亴鐘舵��"
@@ -223,11 +233,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 +271,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>
@@ -442,6 +467,8 @@
 } 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 {
@@ -461,6 +488,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 +534,7 @@
         rows: 20 // 姣忛〉澶氬皯鏉�
       },
       StuOrgArr: [], // 鎵�灞炵粍缁囨暟缁�
+      StuOrgArr2: [], // 鎵�灞炵粍缁囨暟缁�  瀵硅瘽妗�
       defaultProps: {
         checkStrictly: true,
         value: 'code',
@@ -499,10 +557,12 @@
         StuOrg: '',
         Mobile: '',
         Email: '',
+        groupcode: '',
         Operator: '',
         OperType: '',
         wagetype: ''
       },
+      usergroupArr: [], // 鐢熶骇鐝粍鏁扮粍
       wagetypeArr: [
         { value: '2', label: '璁′欢鍒�' },
         { value: '1', label: '璁℃椂鍒�' }
@@ -526,7 +586,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: {
@@ -556,7 +626,7 @@
   },
   created() {
     this.getUserSearch()
-    this.getUserOrganization()
+    // this.getUserOrganization()
   },
   mounted() {
     window.addEventListener('resize', this.getHeight)
@@ -572,7 +642,12 @@
     // 鑾峰彇鎵�灞炵粍缁�
     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() {
@@ -612,10 +687,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 +710,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 +718,8 @@
         this.dialogForm.Email = row.email
         this.dialogForm.wagetype = row.wagetype
       })
+      this.getMesOrderStepReportSelectUserGroup()
+      this.getUserOrganization2()
     },
     // 鍒犻櫎鎸夐挳
     async del(id) {
@@ -664,6 +749,7 @@
       this.dialogForm.StuOrg = ''
       this.dialogForm.Mobile = ''
       this.dialogForm.Email = ''
+      this.dialogForm.groupcode = ''
       this.dialogForm.wagetype = ''
       this.$refs.dialogForm.clearValidate()
     },
@@ -685,6 +771,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')
@@ -1010,7 +1097,7 @@
           this.workingTableData.splice(index, 1)
         }
       })
-      // this.getUserGroupSearch()
+      this.getMesOrderStepReportSelectUserGroup()
     },
     // 鐢熶骇鐝粍鎺掑簭
     sortChangeOfWorking({ column, prop, order }) {

--
Gitblit v1.9.3