zhouwenxuan
2023-12-08 b7143b51f3a50b6fac9c139d291c1fad017daee6
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