From 20195d0e1cbbf3e8bfd20e2baf53e2115f663da3 Mon Sep 17 00:00:00 2001 From: zhouwenxuan <1175765986@qq.com> Date: 星期三, 24 一月 2024 16:38:22 +0800 Subject: [PATCH] 评价结论 --- src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue | 178 ++++++++++++++++++++++++++++++++++------------------------- 1 files changed, 103 insertions(+), 75 deletions(-) diff --git a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue index 7ef55dd..cf629b9 100644 --- a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue +++ b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue @@ -39,7 +39,8 @@ <el-row :gutter="22"> <el-col :span="11"> <el-form-item label="所属机构:" prop="agencyId" v-if="state.title !== '修改密码'"> - <el-select v-model="state.form.agencyId" style="width: 100%" v-loadMore="loadMore" class="m-2" placeholder="请选择机构" popper-class="more_select_dropdown" > + <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-option v-for="item in state.agencyList" :key="item.id" @@ -54,7 +55,7 @@ <!-- <el-input v-model.trim="state.form.post" :maxlength="11" ></el-input>--> <el-select v-model="state.form.post" class="m-2" style="width: 100%" placeholder="请选择职务" popper-class="more_select_dropdown" > <el-option - v-for="item in state.postList" + v-for="item in props.postList" :key="item.id" :label="item.name" :value="item.name" @@ -73,7 +74,7 @@ <el-form-item label="专业方向:" prop="majorShow" v-if="state.title !== '修改密码'" > <el-select v-model="state.form.majorShow" value-key="id" class="m-2" style="width: 100%" multiple placeholder="请选择专业方向" popper-class="more_select_dropdown" @change="selectChange"> <el-option - v-for="item in state.majorList" + v-for="item in props.majorList" :key="item.id" :label="item.label" :value="item" @@ -112,7 +113,7 @@ <el-form-item label="评价师等级:" prop="level" v-if="state.title !== '修改密码'"> <el-select v-model="state.form.level" class="m-2" style="width: 100%" placeholder="请选择评价师等级" popper-class="more_select_dropdown" > <el-option - v-for="item in state.levelList" + v-for="item in props.levelList" :key="item.id" :label="item.name" :value="item.name" @@ -180,7 +181,27 @@ <div class="el-upload__tip">上传jpg/png图片尺寸小于5M</div> </template> </el-upload> - + </el-form-item> + <el-form-item prop="idPhoto" label="证件照:" v-if="state.title !== '修改密码'"> + <el-upload + accept="image/*" + :action="state.uploadUrl" + :headers="state.header" + method="post" + :on-change="handleChangePic" + :on-success="handlePhotoSuccess" + :on-preview="handlePictureCardPreview" + v-model:file-list="state.photoList" + list-type="picture-card" + :before-upload="picSize" + :on-remove="handlePhotoRemove" + :limit="2" + > + <el-icon><Plus /></el-icon> + <template #tip> + <div class="el-upload__tip">上传jpg/png图片尺寸小于5M</div> + </template> + </el-upload> </el-form-item> </el-form> <template #footer > @@ -196,7 +217,7 @@ </div> </template> <script setup> -import {reactive, ref, toRefs, defineEmits, onMounted, nextTick} from 'vue' +import {reactive, ref, toRefs, defineEmits, defineProps, onMounted, nextTick} from 'vue' import { View } from "@element-plus/icons-vue"; import {ElMessage} from "element-plus"; import {verifyPhone, verifyPwd, verifyUsername} from "../../../../../utils/validate"; @@ -208,8 +229,10 @@ import {getToken} from "@/utils/auth"; import {getInsitutionList} from "@/api/backManage/insitution"; import {getDictList} from "@/api/backManage/evaluate"; +import Cookies from "js-cookie"; const emit = defineEmits(["getList"]); +const props = defineProps(['majorList','levelList','postList']) const dialogVisible = ref(false) const superRef = ref(null) @@ -303,6 +326,7 @@ socialAttach: [], medicalAttach: [], salaryAttach: [], + idPhoto: '', post: '', jobTitle: '', level: '', @@ -312,9 +336,11 @@ password: '', confirmPassword: '', }, + agencyName:'', socialList: [], medicalList: [], salaryList: [], + photoList: [], formRules:{ name: [{ required: true, message: '请输入姓名', trigger: 'blur' }], username: [{ required: true, validator: validateUsername, trigger: 'blur' }], @@ -329,6 +355,7 @@ 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: [], @@ -339,53 +366,19 @@ dialogImageUrl: '', dialogImg: false, pageNum: 1, - pageSize: 10, - postList: [ - { - id: '1', - name: '法人' - }, - { - id: '2', - name: '过程控制负责人' - }, - { - id: '3', - name: '机构负责人' - }, - { - id: '4', - name: '技术负责人' - }, - { - id: '5', - name: '员工' - }, - ], - majorList: [], - levelList: [ - { - id: '1', - name: '一级' - }, - { - id: '2', - name: '二级' - }, - { - id: '3', - name: '三级' - }, - { - id: '4', - name: '其他' - }, - ] + pageSize: 10 }) +const isAgency = ref(false); onMounted(()=>{ getAgency() - getMajor() + const userInfo = JSON.parse(Cookies.get('userInfo')) + state.agencyName = userInfo.agentName; + state.form.agencyId = userInfo.agentId; + if(userInfo.identity === 1){ + isAgency.value = true; + } + console.log("userinfo",userInfo) }) const openDialog = async (type, value) => { @@ -416,19 +409,26 @@ name: url.name } }); - const arr = [] - const certificateList = JSON.parse(res.data.certificateNo) - for( let key in certificateList) { - arr.push( { - id: parseInt(key), - certificateNo: certificateList[key], - }) - arr.forEach((item,index) => { - item.label = res.data.majorNames[index] - }) + const obj = { + url: import.meta.env.VITE_APP_BASE_API +'/'+ res.data.idPhoto } - state.form.majorShow = arr; - console.log(state.form.majorShow,'certificateList') + state.photoList.push(obj); + if(res.data.certificateNo){ + const arr = [] + const certificateList = JSON.parse(res.data.certificateNo) + for( let key in certificateList) { + arr.push( { + id: parseInt(key), + certificateNo: certificateList[key], + }) + arr.forEach((item,index) => { + item.label = res.data.majorNames[index] + }) + } + state.form.majorShow = arr; + console.log(state.form.majorShow,'certificateList') + } + }else{ ElMessage.warning(res.message) } @@ -490,6 +490,7 @@ state.salaryList = []; state.medicalList = []; state.socialList = []; + state.photoList = []; dialogVisible.value = false; }else{ ElMessage.warning(res.message) @@ -552,6 +553,7 @@ socialAttach: [], medicalAttach: [], salaryAttach: [], + idPhoto: '', post: '', jobTitle: '', level:'', @@ -564,6 +566,7 @@ state.salaryList = []; state.medicalList = []; state.socialList = []; + state.photoList = []; state.form.selectMajorList = []; } const picSize = async (rawFile) => { @@ -614,6 +617,45 @@ } } +const handlePhotoSuccess = (res,file) => { + if(res.code == 200){ + state.form.idPhoto = res.data.path; + }else{ + ElMessage({ + type: 'warning', + message: '文件上传失败' + }) + } +} +const handleChangePic = (file,fileList) => { + if (fileList.length > 1) { + state.photoList.splice(0, 1); + } +} + +const handlePhotoRemove = async (file) => { + console.log("fileD",file) + let path = "" + if(file.response && file.response.data){ + path = file.response.data.path + }else { + const base = import.meta.env.VITE_APP_BASE_API + path = file.url.substring(base.length+1,file.url.length ) + } + const res = await delPic({path: path}) + if(res.code == 200){ + ElMessage({ + type: 'success', + message: '文件已删除' + }) + state.form.idPhoto = '' + }else{ + ElMessage({ + type: 'warning', + message: res.message + }) + } +} @@ -669,20 +711,6 @@ ElMessage.warning(res.message) } } -const getMajor = async () => { - const queryParams = { - pageNum: 1, - pageSize: 50, - dictType: 'sys_major_orientation' - } - const res = await getDictList(queryParams); - if(res.code === 200){ - state.majorList = res.data.list - }else{ - ElMessage.warning(res.message) - } -} - //触底函数 -- Gitblit v1.9.2