From c71dc4c3abb3fcbbafc68b34e2bcb98cf0f8b346 Mon Sep 17 00:00:00 2001 From: zhouwenxuan <1175765986@qq.com> Date: 星期三, 13 十二月 2023 17:08:01 +0800 Subject: [PATCH] 图片引入问题 --- src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue | 135 ++++++++++++++++++++++++++++++++++---------- 1 files changed, 104 insertions(+), 31 deletions(-) diff --git a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue index 3c833b2..2f61cd3 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"; @@ -190,7 +190,18 @@ if(!verifyPhone(value)){ callback(new Error('手机号格式有误')) }else{ - checkPhone({phone:value,id: state.form.id}).then((res)=>{ + let param = {} + if(state.title=='新增') { + param = { + phone:value + } + }else if(state.title=='编辑'){ + param = { + phone:value, + id: state.form.id + } + } + checkPhone(param).then((res)=>{ if(res.data == false){ callback(new Error('该手机号已被绑定用户,请更换其他手机号')) }else{ @@ -208,7 +219,18 @@ if(!verifyUsername(value)){ callback(new Error('用户名须使用字母+数字,长度在5-16之间')) }else{ - checkUserName({username:value,id: state.form.id}).then((res)=>{ + let param = {} + if(state.title=='新增') { + param = { + username:value + } + }else if(state.title=='编辑'){ + param = { + username:value, + id: state.form.id + } + } + checkUserName(param).then((res)=>{ if(res.data == false){ callback(new Error('用户名已被占用,请更换其他用户名')) }else{ @@ -283,15 +305,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 +382,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 +404,7 @@ ElMessage.success(res.message) emit('getList') superRef.value.clearValidate(); - superRef.value.resetFields(); + reset() dialogVisible.value = false; }else{ ElMessage.warning(res.message) @@ -369,12 +415,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 +494,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 +515,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 +530,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