From b7143b51f3a50b6fac9c139d291c1fad017daee6 Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: 星期五, 08 十二月 2023 15:50:50 +0800
Subject: [PATCH] 使用tinymce富文本

---
 src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue |  109 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 80 insertions(+), 29 deletions(-)

diff --git a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue
index 3c833b2..1c002f1 100644
--- a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue
+++ b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue
@@ -24,7 +24,7 @@
                 <el-row :gutter="22">
                     <el-col :span="11">
                         <el-form-item label="用户名:"  prop="username" v-if="state.title !== '修改密码'">
-                            <el-input v-model.trim="state.form.username" ></el-input>
+                            <el-input v-model.trim="state.form.username" :disabled="state.title === '编辑'"></el-input>
                         </el-form-item>
                     </el-col>
                     <el-col :span="11">
@@ -149,7 +149,7 @@
             <template #footer >
                     <span class="dialog-footer">
                         <el-button @click="handleClose" size="default">取 消</el-button>
-                        <el-button type="primary"  @click="onSubmit" size="default">确认</el-button>
+                        <el-button type="primary"  @click="onSubmit" size="default" v-preReClick>确认</el-button>
                     </span>
             </template>
             <el-dialog v-model="state.dialogImg">
@@ -159,13 +159,13 @@
     </div>
 </template>
 <script setup>
-import {reactive, ref, toRefs, defineEmits, onMounted} from 'vue'
+import {reactive, ref, toRefs, defineEmits, onMounted, nextTick} from 'vue'
 import { View } from "@element-plus/icons-vue";
 import {ElMessage} from "element-plus";
 import {verifyPhone, verifyPwd, verifyUsername} from "../../../../../utils/validate";
 import {checkUserName, checkPhone, delPic} from "@/api/login"
 import { getRegionTree } from "@/api/area"
-import {addExpert, addMonitor, editMonitor, getMonitorList} from "@/api/sysUsers"
+import {addExpert, addMonitor, editExpert, editMonitor, getMonitorList, getUserById} from "@/api/sysUsers"
 import {Base64} from "js-base64"
 import {resetUserPwd} from "../../../../../api/sysUsers";
 import {getToken} from "@/utils/auth";
@@ -283,15 +283,38 @@
     getAgency()
 })
 
-const openDialog = (type, value) => {
+const openDialog = async (type, value) => {
     getArea()
     state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : type ==='pwd' ? '修改密码' : '查看' ;
     if(type === 'edit') {
-        for(let i in state.form){
-            if(validKey(i,value)){
-                state.form[i] = value[i]
-            }
+        const param = {
+            userId: value.id
         }
+        const res = await getUserById(param);
+        if(res.code == 200){
+            state.form = res.data
+            state.socialList = res.data.socialAttach.map(url => {
+                return {
+                    url:  import.meta.env.VITE_APP_BASE_API +'/'+url.path,
+                    name: url.name
+                }
+            });
+            state.medicalList = res.data.medicalAttach.map(url => {
+                return {
+                    url:  import.meta.env.VITE_APP_BASE_API +'/'+url.path,
+                    name: url.name
+                }
+            });
+            state.salaryList = res.data.salaryAttach.map(url => {
+                return {
+                    url:  import.meta.env.VITE_APP_BASE_API +'/'+url.path,
+                    name: url.name
+                }
+            });
+        }else{
+            ElMessage.warning(res.message)
+        }
+
     }
     if(type == 'pwd'){
         state.form.id = value.id
@@ -337,18 +360,19 @@
                 ElMessage.warning(res.message)
             }
         }else if(state.title == '编辑'){
-            // const {confirmPassword,...data} = state.form
-            // data.password = Base64.encode(data.password)
-            // const res = await editMonitor(data)
-            // if(res.code == 200){
-            //     ElMessage.success(res.message)
-            //     emit('getList')
-            //     superRef.value.clearValidate();
-            //     superRef.value.resetFields();
-            //     dialogVisible.value = false;
-            // }else{
-            //     ElMessage.warning(res.message)
-            // }
+            const {confirmPassword,socialList,salaryList,medicalList,...data} = state.form
+            data.password = Base64.encode(data.password)
+            console.log('editdata',data)
+            const res = await editExpert(data)
+            if(res.code == 200){
+                ElMessage.success(res.message)
+                emit('getList')
+                superRef.value.clearValidate();
+                reset()
+                dialogVisible.value = false;
+            }else{
+                ElMessage.warning(res.message)
+            }
         }else{
             const {id,password} = state.form
             const data = {id,password}
@@ -358,7 +382,7 @@
                 ElMessage.success(res.message)
                 emit('getList')
                 superRef.value.clearValidate();
-                superRef.value.resetFields();
+                reset()
                 dialogVisible.value = false;
             }else{
                 ElMessage.warning(res.message)
@@ -369,12 +393,32 @@
 
 const handleClose = () => {
     superRef.value.clearValidate();
-    superRef.value.resetFields()
+    reset()
     dialogVisible.value = false;
+
+
+}
+const reset = () => {
+   state.form = {
+       id: null,
+       name: '',
+       username: '',
+       sex: 0,
+       phone: '',
+       agencyId: '',
+       socialAttach: [],
+       medicalAttach: [],
+       salaryAttach: [],
+       post: '',
+       jobTitle: '',
+       major: '',
+       expertType: 1,
+       password: '',
+       confirmPassword: '',
+   }
     state.salaryList = [];
     state.medicalList = [];
     state.socialList = [];
-
 }
 const picSize = async (rawFile) => {
     if(rawFile.size / 1024 / 1024 > 5){
@@ -428,7 +472,14 @@
 
 
 const handleRemove = async (file, uploadFiles,type) => {
-    const path = file.response.data.path
+    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
+    }
+
     const res = await delPic({path: path})
     if(res.code == 200){
         ElMessage({
@@ -442,11 +493,11 @@
         })
     }
     if(type === 1){
-        state.form.socialAttach = state.form.socialAttach.filter(item => item.path !== file.response.data.path)
+        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 !== file.response.data.path)
+        state.form.medicalAttach = state.form.medicalAttach.filter(item => item.path !== path)
     }else {
-        state.form.salaryAttach = state.form.salaryAttach.filter(item => item.path !== file.response.data.path)
+        state.form.salaryAttach = state.form.salaryAttach.filter(item => item.path !== path)
     }
 }
 const finshed = ref(false)
@@ -457,7 +508,7 @@
     }
     const res = await getInsitutionList(queryParams)
     if(res.code == 200){
-        if(res.data.pageNum !== state.pageNum){
+        if(res.data.pageNum === state.pageNum){
             finshed.value = false;
             if(state.pageNum == 1){
                 state.agencyList = res.data.list

--
Gitblit v1.9.2