From edcb5d7232547cb2cbb2d91ef2eaca9beda9b05d Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: Thu, 01 Feb 2024 16:56:27 +0800
Subject: [PATCH] bug修改
---
src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue | 188 +++++++++++++++++++++++++++-------------------
1 files changed, 110 insertions(+), 78 deletions(-)
diff --git a/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue b/src/views/safetyReview/userManage/expertUsers/components/expertDialog.vue
index e0a22b9..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)
}
@@ -458,14 +458,18 @@
}
const onSubmit = async () => {
+ let isCode = false;
const valid = await superRef.value.validate();
if(valid){
state.form.majorShow.forEach(item => {
- if(item.certificateNo == ''){
- ElMessage.warning('请输入对应的证书编号')
- return ;
+ if(item.certificateNo === undefined || item.certificateNo === ''){
+ isCode = true;
}
})
+ if(isCode){
+ ElMessage.warning('请输入对应的证书编号')
+ return ;
+ }
if(state.title == '新增'){
const {confirmPassword,id,socialList,salaryList,medicalList,...data} = state.form
data.password = Base64.encode(data.password)
@@ -486,6 +490,7 @@
state.salaryList = [];
state.medicalList = [];
state.socialList = [];
+ state.photoList = [];
dialogVisible.value = false;
}else{
ElMessage.warning(res.message)
@@ -548,6 +553,7 @@
socialAttach: [],
medicalAttach: [],
salaryAttach: [],
+ idPhoto: '',
post: '',
jobTitle: '',
level:'',
@@ -560,6 +566,7 @@
state.salaryList = [];
state.medicalList = [];
state.socialList = [];
+ state.photoList = [];
state.form.selectMajorList = [];
}
const picSize = async (rawFile) => {
@@ -610,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
+ })
+ }
+}
@@ -665,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