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