From 3f6bf89b1985b6668f02ffcc9af577b412e92e45 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期一, 24 三月 2025 17:17:45 +0800
Subject: [PATCH] bug修改
---
src/layout/components/Register/index.vue | 73 +++++++++++++++++++++++++++++-------
1 files changed, 59 insertions(+), 14 deletions(-)
diff --git a/src/layout/components/Register/index.vue b/src/layout/components/Register/index.vue
index afdc9b3..e3fb799 100644
--- a/src/layout/components/Register/index.vue
+++ b/src/layout/components/Register/index.vue
@@ -8,7 +8,7 @@
</template>
<el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form" label-position="top">
<el-row :gutter="30">
- <el-col :span="8">
+ <el-col :span="6">
<el-form-item prop="agency.name" label="机构名称">
<el-input
:disabled="isAbleEdit"
@@ -19,7 +19,7 @@
</el-input>
</el-form-item>
</el-col>
- <el-col :span="8">
+ <el-col :span="6">
<el-form-item prop="agency.creditCode" label="社会信用代码">
<el-input
:disabled="isAbleEdit"
@@ -30,12 +30,19 @@
</el-input>
</el-form-item>
</el-col>
- <el-col :span="8">
+ <el-col :span="6">
<el-form-item prop="agency.attribute" label="机构属性">
<el-radio-group v-model="registerForm.agency.attribute" style="width: 50%" @change="changeAttr()">
<el-radio :label="0" size="large" border>疆内</el-radio>
<el-radio :label="1" size="large" border>疆外</el-radio>
</el-radio-group>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item prop="agency.businessType" label="业务类别">
+ <el-checkbox-group v-model="registerForm.agency.businessType">
+ <el-checkbox v-for="item in state.businessTypeList" :label="item.value" :key="item.value">{{ item.label }}</el-checkbox>
+ </el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
@@ -138,12 +145,12 @@
</el-col>
</el-row>
<el-row :gutter="30">
- <el-col :span="8">
+ <el-col :span="12">
<el-form-item prop="agency.certPath" label="资质证书">
<el-upload accept="image/*" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile,'证书')" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='state.imgLimit' v-model:file-list="state.certList" list-type="picture-card" :before-upload="picSize" :on-remove="(file, uploadFiles)=>handleRemove(file, uploadFiles,'证书')" >
<el-icon><Plus /></el-icon>
<template #tip>
- <div class="el-upload__tip">上传jpg/png图片尺寸小于5M,最多可上传1张</div>
+ <div class="el-upload__tip">上传jpg/png图片尺寸小于5M,最多可上传5张</div>
</template>
</el-upload>
</el-form-item>
@@ -334,7 +341,7 @@
busList: [],
fileList: [],
certList: [],
- imgLimit: 1,
+ imgLimit: 5,
uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
header: {
Authorization: 'Bearer ' + getToken()
@@ -365,13 +372,24 @@
regAddress: '',
business: '',
reportPath: '',
- certPath: ''
+ certPath: '',
+ businessType: [],
},
username: '',
phone: '',
password: '',
confirmPassword: ''
- }
+ },
+ businessTypeList: [
+ {
+ value: 1,
+ label: '安全评价'
+ },
+ {
+ value: 2,
+ label: '检验检测'
+ },
+ ]
})
const isSuper = ref(false);
@@ -478,6 +496,7 @@
"agency.name": [{required: true, trigger: "blur", message: "请输入机构名称"}],
"agency.creditCode": [{required: true, trigger: "blur", message: "请输入社会信用代码"}],
"agency.attribute": [{required: true, trigger: "blur", message: "请选择机构属性"}],
+ "agency.businessType": [{required: true, trigger: "blur", message: "请选择业务类别"}],
"agency.area": [{required: true, trigger: "blur", message: "请选择实际经营地址所属区域"}],
"agency.address": [{required: true, trigger: "blur", message: "请输入实际经营地址"}],
"agency.legalPerson": [{required: true, trigger: "blur", message: "请输入法定代表人"}],
@@ -502,6 +521,7 @@
{ required: true, validator: equalToPassword, trigger: "blur" }
]
};
+const cert = ref([])
const loading = ref(false)
const dialogVisible = ref(false)
@@ -549,6 +569,7 @@
state.registerForm.phone = info.user.phone
startPhone.value = info.user.phone
state.registerForm.agency.business = info.business.split(',').map(Number)
+ state.registerForm.agency.businessType = info.businessType ? info.businessType.split(',').map(Number) : []
if(state.registerForm.agency.attribute === 0){
state.registerForm.agency.area = [info.city,info.district].filter(item => { return item && item.trim() })
}else {
@@ -559,7 +580,18 @@
state.fileList = imgUrl ? imgUrl.split(',').map(url => {return {url} }) : []
}
if(res.data.certPath) {
- const imgUrl = import.meta.env.VITE_APP_BASE_API + "/" + res.data.certPath
+ // cert.value.push(res.data.certPath)
+ const imgList = res.data.certPath.split(',')
+ cert.value = imgList
+ imgList.forEach((item,index) => {
+ if(item.includes(import.meta.env.VITE_APP_BASE_API)){
+
+ }else{
+ imgList[index] = import.meta.env.VITE_APP_BASE_API + "/" + item
+ }
+
+ })
+ const imgUrl = imgList.join(',')
state.certList = imgUrl ? imgUrl.split(',').map(url => {return {url} }) : []
}
@@ -652,7 +684,9 @@
if(type === '上报表'){
state.registerForm.agency.reportPath = res.data.path
}else {
- state.registerForm.agency.certPath = res.data.path
+ cert.value.push(res.data.path)
+ state.registerForm.agency.certPath = cert.value.join(',')
+ console.log('cert',cert.value)
}
}else{
@@ -665,13 +699,15 @@
const handleRemove = async (file, uploadFiles,type) => {
if(file && file.status == 'success'){
-
-
let path = '';
if(type === '上报表'){
path = state.registerForm.agency.reportPath;
}else {
- path = state.registerForm.agency.certPath;
+ path = file.url.substring(file.url.indexOf('upload'))
+ console.log('cert',cert.value)
+ cert.value = cert.value.filter(url => !file.url.includes(url))
+ state.registerForm.agency.certPath = cert.value.join(',')
+
}
const res = await delPic({path: path})
if(res.code == 200){
@@ -680,6 +716,7 @@
message: '文件已删除'
})
}else{
+
ElMessage({
type: 'warning',
message: res.message
@@ -696,6 +733,9 @@
const {confirmPassword,id, ...data} = JSON.parse(JSON.stringify(state.registerForm))
data.password = Base64.encode(data.password)
data.agency.business = data.agency.business.join(',')
+ data.agency.businessType = data.agency.businessType.join(',')
+ const cert = state.certList.map(item => item.response ?item.response.data.path:item.url)
+ data.agency.certPath = cert.join(',')
delete data.agency.area
delete data.agency.id
register(data).then(res => {
@@ -729,11 +769,15 @@
const {confirmPassword, ...data} = JSON.parse(JSON.stringify(state.registerForm))
data.password = Base64.encode(data.password)
data.agency.business = data.agency.business.join(',')
+ data.agency.businessType = data.agency.businessType.join(',')
+ console.log('rea',state.certList)
+ const cert = state.certList.map(item => item.response ?item.response.data.path:item.url)
+ data.agency.certPath = cert.join(',')
if(isReject.value) {
data.state = 1;
}
// delete data.agency.area
- console.log('data',data)
+ // console.log('data',data)
editAgency(data).then(res => {
if(res.code == 200){
ElMessage({
@@ -769,6 +813,7 @@
proxy.$refs.registerRef.clearValidate()
state.fileList = []
state.certList = []
+ cert.value = []
}
defineExpose({
--
Gitblit v1.9.2