<template>
|
<div class="notice">
|
<el-dialog
|
v-model="dialogVisible"
|
:title="state.title"
|
width="900px"
|
:before-close="handleClose"
|
>
|
<el-form :model="state.form" size="default" ref="superRef" :rules="state.formRulesOut" label-width="150px" >
|
<el-row :gutter="22">
|
<el-col :span="11">
|
<el-form-item label="姓名:" prop="name" v-if="state.title !== '修改密码'">
|
<el-input v-model.trim="state.form.name" placeholder="请输入姓名"></el-input>
|
</el-form-item>
|
|
</el-col>
|
<el-col :span="11">
|
<el-form-item label="手机号:" prop="phone" v-if="state.title !== '修改密码'">
|
<el-input v-model.trim="state.form.phone" :maxlength="11" placeholder="手机号"></el-input>
|
</el-form-item>
|
|
</el-col>
|
</el-row>
|
<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" :disabled="state.title === '编辑'" placeholder="请输入用户名"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="11">
|
<el-form-item label="性别:" prop="sex" v-if="state.title !== '修改密码'">
|
<el-radio-group v-model="state.form.sex" class="ml-4">
|
<el-radio :label="0" >男</el-radio>
|
<el-radio :label="1" >女</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row :gutter="22">
|
<el-col :span="11">
|
<el-form-item label="所属机构:" prop="agencyId" v-if="state.title !== '修改密码'">
|
<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"
|
:label="item.name"
|
:value="item.id"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="11">
|
<el-form-item label="职务:" prop="post" v-if="state.title !== '修改密码'">
|
<!-- <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 props.postList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.name"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row :gutter="22">
|
<el-col :span="11">
|
<el-form-item label="职称:" prop="jobTitle" v-if="state.title !== '修改密码'">
|
<el-input v-model.trim="state.form.jobTitle" :maxlength="11" placeholder="请输入职称"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="11">
|
<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 props.majorList"
|
:key="item.id"
|
:label="item.label"
|
:value="item"
|
/>
|
</el-select>
|
</el-form-item>
|
<div v-for="(item,index) in state.form.majorShow" :key="item.id" style="margin-bottom: 20px" >
|
<el-form-item :label="item.label+'证书编号:'" >
|
<el-input v-model="item.certificateNo" :placeholder="'请输入'+item.label+'证书编号'"></el-input>
|
</el-form-item>
|
</div>
|
</el-col>
|
</el-row>
|
<el-row :gutter="22">
|
<el-col :span="11">
|
<el-form-item label="密码:" prop="password" v-if="state.title == '新增' || state.title == '修改密码'">
|
<el-input v-model.trim="state.form.password" type="password" show-password placeholder="请输入密码"></el-input>
|
</el-form-item>
|
</el-col>
|
<el-col :span="11">
|
<el-form-item label="重复密码:" prop="confirmPassword" v-if="state.title == '新增' || state.title == '修改密码'">
|
<el-input v-model.trim="state.form.confirmPassword" type="password" show-password placeholder="请输入确认密码"></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row :gutter="22">
|
<el-col :span="11">
|
<el-form-item label="专家类型:" prop="expertType" v-if="state.title !== '修改密码'">
|
<el-radio-group v-model="state.form.expertType" class="ml-4">
|
<el-radio :label="1" >安全评价</el-radio>
|
<el-radio :label="2" >检验检测</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-col>
|
<el-col :span="11">
|
<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 props.levelList"
|
:key="item.id"
|
:label="item.name"
|
:value="item.name"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-form-item>
|
<div style="margin-left: -50px"><span style="font-size: 16px;color: #ed5565;">提示:疆外企业无需上传社保、医保、工资清单,疆内企业需每季度进行更新。</span></div>
|
</el-form-item>
|
<el-form-item prop="socialAttach" label="社保:" v-if="state.title !== '修改密码'">
|
<el-upload
|
accept="image/*"
|
:action="state.uploadUrl"
|
:headers="state.header"
|
method="post"
|
:on-success="(response, file, fileList) => handleAvatarSuccess(response, file, fileList, 1)"
|
:on-preview="handlePictureCardPreview"
|
v-model:file-list="state.socialList"
|
list-type="picture-card"
|
:before-upload="picSize"
|
:on-remove="(file, file_list)=>{handleRemove(file, file_list, 1)}"
|
>
|
<el-icon><Plus /></el-icon>
|
<template #tip>
|
<div class="el-upload__tip">上传jpg/png图片尺寸小于5M</div>
|
</template>
|
</el-upload>
|
|
</el-form-item>
|
<el-form-item prop="medicalAttach" label="医保:" v-if="state.title !== '修改密码'">
|
<el-upload
|
accept="image/*"
|
:action="state.uploadUrl"
|
:headers="state.header"
|
method="post"
|
:on-success="(response, file, fileList) => handleAvatarSuccess(response, file, fileList, 2)"
|
:on-preview="handlePictureCardPreview"
|
v-model:file-list="state.medicalList"
|
list-type="picture-card"
|
:before-upload="picSize"
|
:on-remove="(file, file_list)=>{handleRemove(file, file_list, 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-item prop="salaryAttach" label="工资清单:" v-if="state.title !== '修改密码'">
|
<el-upload
|
accept="image/*"
|
:action="state.uploadUrl"
|
:headers="state.header"
|
method="post"
|
:on-success="(response, file, fileList) => handleAvatarSuccess(response, file, fileList, 3)"
|
:on-preview="handlePictureCardPreview"
|
v-model:file-list="state.salaryList"
|
list-type="picture-card"
|
:before-upload="picSize"
|
:on-remove="(file, file_list)=>{handleRemove(file, file_list, 3)}"
|
>
|
<el-icon><Plus /></el-icon>
|
<template #tip>
|
<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 >
|
<span class="dialog-footer">
|
<el-button @click="handleClose" size="default">取 消</el-button>
|
<el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button>
|
</span>
|
</template>
|
<el-dialog v-model="state.dialogImg">
|
<el-image style="width: 100%; height: 100%" :src="state.dialogImageUrl"/>
|
</el-dialog>
|
</el-dialog>
|
</div>
|
</template>
|
<script setup>
|
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";
|
import {checkUserName, checkPhone, delPic} from "@/api/login"
|
import { getRegionTree } from "@/api/area"
|
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";
|
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)
|
|
const equalToPassword = (rule, value, callback) => {
|
if (state.form.password !== value) {
|
callback(new Error("两次输入的密码不一致"));
|
} else {
|
callback();
|
}
|
};
|
|
const validateUserPhone = (rule, value, callback)=>{
|
if(value === ''){
|
callback(new Error('请输入手机号'))
|
}else{
|
if(!verifyPhone(value)){
|
callback(new Error('手机号格式有误'))
|
}else{
|
let param = {}
|
if(state.title=='新增') {
|
param = {
|
phone:value,
|
identity: 2
|
}
|
}else if(state.title=='编辑'){
|
param = {
|
phone:value,
|
id: state.form.id,
|
identity: 2
|
}
|
}
|
checkPhone(param).then((res)=>{
|
if(res.data == false){
|
callback(new Error('该手机号已被绑定用户,请更换其他手机号'))
|
}else{
|
callback()
|
}
|
})
|
}
|
}
|
}
|
|
const validateUsername = (rule, value, callback)=>{
|
if(value === ''){
|
callback(new Error('请输入登录时用户名'))
|
}else{
|
if(!verifyUsername(value)){
|
callback(new Error('用户名须使用字母或数字,长度在5-16之间'))
|
}else{
|
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{
|
callback()
|
}
|
})
|
}
|
}
|
}
|
|
let validatePwd = (rule, value, callback)=>{
|
if(value === ''){
|
callback(new Error('请输入密码'))
|
}else{
|
if(!verifyPwd(value)){
|
callback(new Error('密码须包含字母、数字、特殊字符,长度在6-16之间'))
|
}else{
|
callback()
|
}
|
}
|
}
|
|
const state = reactive({
|
title: '',
|
form: {
|
id: null,
|
name: '',
|
username: '',
|
sex: 0,
|
phone: '',
|
agencyId: '',
|
socialAttach: [],
|
medicalAttach: [],
|
salaryAttach: [],
|
idPhoto: '',
|
post: '',
|
jobTitle: '',
|
level: '',
|
majorShow: [],
|
major: '',
|
expertType: 1,
|
password: '',
|
confirmPassword: '',
|
},
|
agencyName:'',
|
socialList: [],
|
medicalList: [],
|
salaryList: [],
|
photoList: [],
|
formRulesIn:{
|
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
username: [{ required: true, validator: validateUsername, trigger: 'blur' }],
|
password: [{ required: true, validator: validatePwd, trigger: 'blur' }],
|
confirmPassword: [{ required: true, validator: equalToPassword, trigger: 'blur' }],
|
phone: [{ required: true, validator: validateUserPhone, trigger: 'blur' }],
|
post: [{ required: true, message: '请选择职务', trigger: 'change' }],
|
jobTitle:[{ required: true, message: '请输入职称', trigger: 'blur' }],
|
level: [{ required: true, message: '请选择评价师等级', trigger: 'change' }],
|
majorShow:[{ required: true, message: '请选择专业方向', trigger: 'change' }],
|
agencyId: [{ required: true, message: '请选择所属机构', trigger: 'change' }],
|
socialAttach: [{required: true, trigger: "blur", message: "请上传社保图片"}],
|
medicalAttach: [{required: true, trigger: "blur", message: "请上传医保图片"}],
|
salaryAttach: [{required: true, trigger: "blur", message: "请上传工资清单"}],
|
idPhoto: [{required: true, trigger: "blur", message: "请上传近期证件照"}],
|
},
|
formRulesOut:{
|
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
username: [{ required: true, validator: validateUsername, trigger: 'blur' }],
|
password: [{ required: true, validator: validatePwd, trigger: 'blur' }],
|
confirmPassword: [{ required: true, validator: equalToPassword, trigger: 'blur' }],
|
phone: [{ required: true, validator: validateUserPhone, trigger: 'blur' }],
|
post: [{ required: true, message: '请选择职务', trigger: 'change' }],
|
jobTitle:[{ required: true, message: '请输入职称', trigger: 'blur' }],
|
level: [{ required: true, message: '请选择评价师等级', trigger: 'change' }],
|
majorShow:[{ required: true, message: '请选择专业方向', trigger: 'change' }],
|
agencyId: [{ required: true, message: '请选择所属机构', trigger: 'change' }],
|
// 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: [],
|
header: {
|
Authorization: 'Bearer ' + getToken()
|
},
|
uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
|
dialogImageUrl: '',
|
dialogImg: false,
|
pageNum: 1,
|
pageSize: 10
|
})
|
|
const isAgency = ref(false);
|
onMounted(()=>{
|
|
})
|
|
const attribute = ref(null);
|
const getUserInfoAgency = () => {
|
const userInfo = JSON.parse(Cookies.get('userInfo'))
|
if (userInfo.identity === 1) {
|
state.agencyName = userInfo.agentName;
|
state.form.agencyId = userInfo.agentId;
|
isAgency.value = true;
|
attribute.value = JSON.parse(Cookies.get('attribute'))
|
console.log("attribute", attribute.value)
|
|
} else {
|
getAgency()
|
}
|
}
|
|
|
|
const openDialog = async (type, value) => {
|
await getUserInfoAgency();
|
await getArea()
|
state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : type ==='pwd' ? '修改密码' : '查看' ;
|
if(type === 'edit') {
|
const param = {
|
userId: value.id
|
}
|
const res = await getUserById(param);
|
if(res.code == 200){
|
state.form = res.data
|
// debugger
|
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
|
}
|
});
|
const obj = {
|
url: import.meta.env.VITE_APP_BASE_API +'/'+ res.data.idPhoto
|
}
|
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)
|
}
|
|
}else if(type === 'add'){
|
console.log("aa",props.majorList)
|
props.majorList.forEach(item => {
|
if(item.certificateNo){
|
item.certificateNo = ''
|
}
|
})
|
}
|
if(type == 'pwd'){
|
state.form.id = value.id
|
}
|
dialogVisible.value = true
|
}
|
|
const validKey=(key,obj)=>{
|
return key in obj
|
}
|
|
const getArea = async ()=>{
|
const res = await getRegionTree({name: '',parentId: null,regionType: 0})
|
if(res.code == 200){
|
state.areaList = res.data
|
state.areaList.unshift({
|
id: 0,
|
name: '新疆维吾尔自治区'
|
})
|
}else{
|
ElMessage.warning(res.message)
|
}
|
}
|
|
const onSubmit = async () => {
|
let isCode = false;
|
const valid = await superRef.value.validate();
|
if(valid){
|
state.form.majorShow.forEach(item => {
|
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)
|
let obj = {};
|
data.majorShow.forEach(item => {
|
obj[item.id] = item.certificateNo;
|
})
|
data.major = JSON.stringify(obj);
|
delete data.majorShow;
|
|
console.log('data',data)
|
const res = await addExpert(data);
|
if(res.code == 200){
|
ElMessage.success(res.message)
|
emit('getList')
|
reset();
|
superRef.value.clearValidate();
|
|
dialogVisible.value = false;
|
}else{
|
ElMessage.warning(res.message)
|
}
|
}else if(state.title == '编辑'){
|
const {confirmPassword,socialList,salaryList,medicalList,...data} = state.form
|
data.password = Base64.encode(data.password)
|
let obj = {};
|
data.majorShow.forEach(item => {
|
obj[item.id] = item.certificateNo;
|
})
|
data.major = JSON.stringify(obj);
|
delete data.majorShow;
|
delete data.certificateNo;
|
delete data.majorNames;
|
console.log('editdata',data)
|
const res = await editExpert(data)
|
if(res.code == 200){
|
ElMessage.success(res.message)
|
emit('getList')
|
reset()
|
superRef.value.clearValidate();
|
|
dialogVisible.value = false;
|
}else{
|
ElMessage.warning(res.message)
|
}
|
}else{
|
const {id,password} = state.form
|
const data = {id,password}
|
data.password = Base64.encode(data.password)
|
const res = await resetUserPwd(data)
|
if(res.code == 200){
|
ElMessage.success(res.message)
|
emit('getList')
|
reset()
|
superRef.value.clearValidate();
|
|
dialogVisible.value = false;
|
}else{
|
ElMessage.warning(res.message)
|
}
|
}
|
}
|
}
|
|
const handleClose = () => {
|
superRef.value.clearValidate();
|
reset()
|
dialogVisible.value = false;
|
|
|
}
|
const reset = () => {
|
state.form = {
|
id: null,
|
name: '',
|
username: '',
|
sex: 0,
|
phone: '',
|
agencyId: '',
|
socialAttach: [],
|
medicalAttach: [],
|
salaryAttach: [],
|
idPhoto: '',
|
post: '',
|
jobTitle: '',
|
level:'',
|
majorShow: [],
|
major:'',
|
expertType: 1,
|
password: '',
|
confirmPassword: '',
|
}
|
state.salaryList = [];
|
state.medicalList = [];
|
state.socialList = [];
|
state.photoList = [];
|
state.form.selectMajorList = [];
|
}
|
const picSize = async (rawFile) => {
|
if(rawFile.size / 1024 / 1024 > 5){
|
ElMessage({
|
type: 'warning',
|
message: '文件大小不能超过5M'
|
});
|
return false
|
}
|
};
|
const handlePictureCardPreview = (uploadFile) => {
|
state.dialogImageUrl = uploadFile.url
|
state.dialogImg = true
|
};
|
|
|
|
const handleAvatarSuccess = (res, uploadFile,fileList,type) => {
|
if(res.code == 200){
|
if(type === 1){
|
let obj = {
|
name: res.data.filename,
|
path: res.data.path,
|
type: type
|
}
|
state.form.socialAttach.push(obj)
|
}else if(type === 2) {
|
let obj = {
|
name: res.data.filename,
|
path: res.data.path,
|
type: type
|
}
|
state.form.medicalAttach.push(obj)
|
}else {
|
let obj = {
|
name: res.data.filename,
|
path: res.data.path,
|
type: type
|
}
|
state.form.salaryAttach.push(obj)
|
}
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: '文件上传失败'
|
})
|
}
|
}
|
|
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) => {
|
// state.form.idPhoto = ''
|
|
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 )
|
}
|
await delPic({path: path}).then(res => {
|
if(res.code == 200){
|
// ElMessage({
|
// type: 'success',
|
// message: '文件已删除'
|
// })
|
state.form.idPhoto = ''
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.message
|
})
|
}
|
}).catch(() => {
|
state.form.idPhoto = ''
|
});
|
|
|
// const res = await delPic({path: path})
|
// if(res.code == 200){
|
// ElMessage({
|
// type: 'success',
|
// message: '文件已删除'
|
// })
|
// state.form.idPhoto = ''
|
// }else{
|
// ElMessage({
|
// type: 'warning',
|
// message: res.message
|
// })
|
// }
|
}
|
|
|
|
const handleRemove = async (file, uploadFiles,type) => {
|
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
|
}
|
|
await delPic({path: path}).then(res => {
|
if(res.code == 200){
|
// ElMessage({
|
// type: 'success',
|
// message: '文件已删除'
|
// })
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.message
|
})
|
}
|
}).catch(() => {
|
if(type === 1){
|
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 !== path)
|
}else {
|
state.form.salaryAttach = state.form.salaryAttach.filter(item => item.path !== path)
|
}
|
});
|
|
if(type === 1){
|
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 !== path)
|
}else {
|
state.form.salaryAttach = state.form.salaryAttach.filter(item => item.path !== path)
|
}
|
}
|
const finshed = ref(false)
|
const getAgency = async () => {
|
const queryParams = {
|
pageNum: state.pageNum,
|
pageSize: state.pageSize,
|
}
|
const res = await getInsitutionList(queryParams)
|
if(res.code == 200){
|
if(res.data.pageNum === state.pageNum){
|
finshed.value = false;
|
if(state.pageNum == 1){
|
state.agencyList = res.data.list
|
}else {
|
state.agencyList =state.agencyList .concat(res.data.list)
|
}
|
}else {
|
finshed.value = true;
|
}
|
|
}else{
|
ElMessage.warning(res.message)
|
}
|
}
|
|
|
//触底函数
|
const loadMore = () => {
|
console.log(' 触底了');
|
// 防抖处理
|
setTimeout(() => {
|
if (finshed.value) return //值为true,则代表没有数据了
|
state.pageNum += 1
|
getAgency()
|
}, 500)
|
}
|
|
//选中值发生变化时触发
|
const selectChange = (val) => {
|
// state.form.selectMajorList= val;
|
console.log('选中的xxxx',val)
|
}
|
|
defineExpose({
|
openDialog
|
});
|
|
</script>
|
|
<style scoped lang="scss">
|
.notice{
|
:deep(.el-form .el-form-item__label) {
|
font-size: 15px;
|
}
|
.file {
|
display: flex;
|
flex-direction: column;
|
align-items: flex-start;
|
}
|
}
|
</style>
|