From a6a8e49af8c8172f4209dd94e65f53f17825cc44 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期四, 21 十一月 2024 17:30:12 +0800
Subject: [PATCH] 项目管理

---
 src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue |  234 +++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 157 insertions(+), 77 deletions(-)

diff --git a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue
index 06ab7a9..45aebc7 100644
--- a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue
+++ b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue
@@ -6,7 +6,7 @@
             width="900px"
             :before-close="handleClose"
         >
-            <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px" >
+            <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRulesOut" label-width="150px" >
                 <el-row :gutter="22">
                     <el-col :span="11">
                         <el-form-item label="姓名:" prop="name" v-if="state.title !== '修改密码'">
@@ -40,12 +40,12 @@
                     <el-col :span="11">
                         <el-form-item label="所属机构:"  prop="agencyId" v-if="state.title !== '修改密码'">
                             <el-input v-if="isAgency" v-model="state.agencyName" disabled></el-input>
-                            <el-select v-model="state.form.agencyId" v-else style="width: 100%" v-loadMore="loadMore" class="m-2" placeholder="请选择机构" popper-class="more_select_dropdown"   >
+                            <el-select v-model="state.form.agencyName" @change="selectValue" v-else style="width: 100%" v-loadMore="loadMore" class="m-2" placeholder="请选择机构" popper-class="more_select_dropdown"   >
                                 <el-option
                                     v-for="item in state.agencyList"
                                     :key="item.id"
                                     :label="item.name"
-                                    :value="item.id"
+                                    :value="item.name"
                                 />
                             </el-select>
                         </el-form-item>
@@ -122,8 +122,9 @@
                   </el-form-item>
                 </el-col>
               </el-row>
-
-
+              <el-form-item>
+                <div style="margin-left: -50px"><span style="font-size: 16px;color: #ed5565;">提示:疆外企业无需上传社保、医保、工资清单,疆内企业需每季度进行更新。</span></div>
+              </el-form-item>
                 <el-form-item prop="socialAttach" label="社保:" v-if="state.title !== '修改密码'">
                     <el-upload
                         accept="image/*"
@@ -254,12 +255,14 @@
             let param = {}
             if(state.title=='新增') {
                 param = {
-                    phone:value
+                    phone:value,
+                    identity: 2
                 }
             }else if(state.title=='编辑'){
                 param = {
                     phone:value,
-                    id: state.form.id
+                    id: state.form.id,
+                    identity: 2
                 }
             }
             checkPhone(param).then((res)=>{
@@ -341,7 +344,7 @@
     medicalList: [],
     salaryList: [],
     photoList: [],
-    formRules:{
+    formRulesIn:{
         name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
         username: [{ required: true, validator: validateUsername, trigger: 'blur' }],
         password: [{ required: true, validator: validatePwd, trigger: 'blur' }],
@@ -357,6 +360,22 @@
         salaryAttach: [{required: true, trigger: "blur", message: "请上传工资清单"}],
         idPhoto: [{required: true, trigger: "blur", message: "请上传近期证件照"}],
     },
+  formRulesOut:{
+    name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
+    username: [{ required: true, validator: validateUsername, trigger: 'blur' }],
+    password: [{ required: true, validator: validatePwd, trigger: 'blur' }],
+    confirmPassword: [{ required: true, validator: equalToPassword, trigger: 'blur' }],
+    phone: [{ required: true, validator: validateUserPhone, trigger: 'blur' }],
+    post: [{ required: true, message: '请选择职务', trigger: 'change' }],
+    jobTitle:[{ required: true, message: '请输入职称', trigger: 'blur' }],
+    level: [{ required: true, message: '请选择评价师等级', trigger: 'change' }],
+    majorShow:[{ required: true, message: '请选择专业方向', trigger: 'change' }],
+    agencyId: [{ required: true, message: '请选择所属机构', trigger: 'change' }],
+    // socialAttach: [{required: true, trigger: "blur", message: "请上传社保图片"}],
+    // medicalAttach: [{required: true, trigger: "blur", message: "请上传医保图片"}],
+    // salaryAttach: [{required: true, trigger: "blur", message: "请上传工资清单"}],
+    idPhoto: [{required: true, trigger: "blur", message: "请上传近期证件照"}],
+  },
     areaList: [],
     agencyList: [],
     header: {
@@ -372,20 +391,28 @@
 const isAgency = ref(false);
 onMounted(()=>{
 
-    const userInfo = JSON.parse(Cookies.get('userInfo'))
-
-    if(userInfo.identity === 1){
-      state.agencyName = userInfo.agentName;
-      state.form.agencyId = userInfo.agentId;
-      isAgency.value = true;
-    }else {
-      getAgency()
-    }
-    console.log("userinfo",userInfo)
 })
 
+const attribute = ref(null);
+const getUserInfoAgency = () => {
+  const userInfo = JSON.parse(Cookies.get('userInfo'))
+  if (userInfo.identity === 1) {
+    state.agencyName = userInfo.agentName;
+    state.form.agencyId = userInfo.agentId;
+    isAgency.value = true;
+    attribute.value = JSON.parse(Cookies.get('attribute'))
+    console.log("attribute", attribute.value)
+
+  } else {
+    getAgency('open')
+  }
+}
+
+
+
 const openDialog = async (type, value) => {
-    getArea()
+ await getUserInfoAgency();
+  await getArea()
     state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : type ==='pwd' ? '修改密码' : '查看' ;
     if(type === 'edit') {
         const param = {
@@ -394,6 +421,7 @@
         const res = await getUserById(param);
         if(res.code == 200){
             state.form = res.data
+          state.form.agencyName = res.data.agency.name
             state.socialList = res.data.socialAttach.map(url => {
                 return {
                     url:  import.meta.env.VITE_APP_BASE_API +'/'+url.path,
@@ -429,13 +457,20 @@
                 })
               }
               state.form.majorShow = arr;
-              console.log(state.form.majorShow,'certificateList')
+              console.log(state.form,'certificateList')
             }
 
         }else{
             ElMessage.warning(res.message)
         }
 
+    }else if(type === 'add'){
+      console.log("aa",props.majorList)
+      props.majorList.forEach(item => {
+        if(item.certificateNo){
+          item.certificateNo = ''
+        }
+      })
     }
     if(type == 'pwd'){
         state.form.id = value.id
@@ -488,12 +523,9 @@
             if(res.code == 200){
                 ElMessage.success(res.message)
                 emit('getList')
+                reset();
                 superRef.value.clearValidate();
-                superRef.value.resetFields();
-                state.salaryList = [];
-                state.medicalList = [];
-                state.socialList = [];
-                state.photoList = [];
+
                 dialogVisible.value = false;
             }else{
                 ElMessage.warning(res.message)
@@ -514,8 +546,9 @@
             if(res.code == 200){
                 ElMessage.success(res.message)
                 emit('getList')
-                superRef.value.clearValidate();
                 reset()
+                superRef.value.clearValidate();
+
                 dialogVisible.value = false;
             }else{
                 ElMessage.warning(res.message)
@@ -528,8 +561,9 @@
             if(res.code == 200){
                 ElMessage.success(res.message)
                 emit('getList')
-                superRef.value.clearValidate();
                 reset()
+                superRef.value.clearValidate();
+
                 dialogVisible.value = false;
             }else{
                 ElMessage.warning(res.message)
@@ -637,82 +671,120 @@
 }
 
 const handlePhotoRemove = async (file) => {
-  console.log("fileD",file)
+  if (file && file.status == 'success') {
+  // state.form.idPhoto = ''
+
   let path = ""
-  if(file.response && file.response.data){
+  if (file.response && file.response.data) {
     path = file.response.data.path
-  }else {
+  } else {
     const base = import.meta.env.VITE_APP_BASE_API
-    path = file.url.substring(base.length+1,file.url.length )
+    path = file.url.substring(base.length + 1, file.url.length)
   }
-  const res = await delPic({path: path})
-  if(res.code == 200){
-    ElMessage({
-      type: 'success',
-      message: '文件已删除'
-    })
+  await delPic({path: path}).then(res => {
+    if (res.code == 200) {
+      // ElMessage({
+      //   type: 'success',
+      //   message: '文件已删除'
+      // })
+      state.form.idPhoto = ''
+    } else {
+      ElMessage({
+        type: 'warning',
+        message: res.message
+      })
+    }
+  }).catch(() => {
     state.form.idPhoto = ''
-  }else{
-    ElMessage({
-      type: 'warning',
-      message: res.message
-    })
-  }
+  });
+}
+
+
+  // const res = await delPic({path: path})
+  // if(res.code == 200){
+  //   ElMessage({
+  //     type: 'success',
+  //     message: '文件已删除'
+  //   })
+  //   state.form.idPhoto = ''
+  // }else{
+  //   ElMessage({
+  //     type: 'warning',
+  //     message: res.message
+  //   })
+  // }
 }
 
 
 
 const handleRemove = async (file, uploadFiles,type) => {
+  if(file && file.status == 'success') {
+
     let path = ""
-    if(state.title === '编辑') {
-        const base = import.meta.env.VITE_APP_BASE_API
-        path = file.url.substring(base.length+1,file.url.length )
-    }else {
-        path = file.response.data.path
+    if (state.title === '编辑') {
+      const base = import.meta.env.VITE_APP_BASE_API
+      path = file.url.substring(base.length + 1, file.url.length)
+    } else {
+      path = file.response.data.path
     }
 
-    const res = await delPic({path: path})
-    if(res.code == 200){
+    await delPic({path: path}).then(res => {
+      if (res.code == 200) {
+        // ElMessage({
+        //   type: 'success',
+        //   message: '文件已删除'
+        // })
+      } else {
         ElMessage({
-            type: 'success',
-            message: '文件已删除'
+          type: 'warning',
+          message: res.message
         })
-    }else{
-        ElMessage({
-            type: 'warning',
-            message: res.message
-        })
-    }
-    if(type === 1){
+      }
+    }).catch(() => {
+      if (type === 1) {
         state.form.socialAttach = state.form.socialAttach.filter(item => item.path !== path)
-    }else if(type === 2){
+      } else if (type === 2) {
         state.form.medicalAttach = state.form.medicalAttach.filter(item => item.path !== path)
-    }else {
+      } else {
         state.form.salaryAttach = state.form.salaryAttach.filter(item => item.path !== path)
+      }
+    });
+
+    if (type === 1) {
+      state.form.socialAttach = state.form.socialAttach.filter(item => item.path !== path)
+    } else if (type === 2) {
+      state.form.medicalAttach = state.form.medicalAttach.filter(item => item.path !== path)
+    } else {
+      state.form.salaryAttach = state.form.salaryAttach.filter(item => item.path !== path)
     }
+  }
 }
 const finshed = ref(false)
-const getAgency = async () => {
+const getAgency = async (type) => {
+  if (type === 'open' && state.pageNum !== 1) {
+
+  } else {
     const queryParams = {
-        pageNum: state.pageNum,
-        pageSize: state.pageSize,
+      pageNum: state.pageNum,
+      pageSize: state.pageSize,
     }
     const res = await getInsitutionList(queryParams)
-    if(res.code == 200){
-        if(res.data.pageNum === state.pageNum){
-            finshed.value = false;
-            if(state.pageNum == 1){
-                state.agencyList = res.data.list
-            }else {
-                state.agencyList =state.agencyList .concat(res.data.list)
-            }
-        }else {
-            finshed.value = true;
+    if (res.code == 200) {
+      if (res.data.pageNum === state.pageNum) {
+        finshed.value = false;
+        if (state.pageNum == 1) {
+          state.agencyList = res.data.list
+        } else {
+          state.agencyList = state.agencyList.concat(res.data.list)
         }
+      } else {
+        finshed.value = true;
+      }
 
-    }else{
-        ElMessage.warning(res.message)
+    } else {
+      ElMessage.warning(res.message)
     }
+  }
 }
 
 
@@ -723,7 +795,7 @@
     setTimeout(() => {
       if (finshed.value) return //值为true,则代表没有数据了
       state.pageNum += 1
-      getAgency()
+      getAgency('')
     }, 500)
 }
 
@@ -732,6 +804,14 @@
     // state.form.selectMajorList= val;
     console.log('选中的xxxx',val)
 }
+const selectValue = (val) => {
+  state.agencyList.forEach(item => {
+    if(item.name === val){
+      state.form.agencyId = item.id
+    }
+  })
+
+}
 
 defineExpose({
     openDialog

--
Gitblit v1.9.2