From 27a476e32c30c0d3a6319ff20c1e8586ad47d804 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期五, 12 十二月 2025 09:41:42 +0800
Subject: [PATCH] 修改
---
src/layout/components/Register/index.vue | 123 +++++++++++++++++++++++++++++-----------
1 files changed, 89 insertions(+), 34 deletions(-)
diff --git a/src/layout/components/Register/index.vue b/src/layout/components/Register/index.vue
index 28472b0..afdc9b3 100644
--- a/src/layout/components/Register/index.vue
+++ b/src/layout/components/Register/index.vue
@@ -12,7 +12,7 @@
<el-form-item prop="agency.name" label="机构名称">
<el-input
:disabled="isAbleEdit"
- v-model="registerForm.agency.name"
+ v-model.trim="registerForm.agency.name"
size="large"
placeholder="请输入机构名称"
>
@@ -23,7 +23,7 @@
<el-form-item prop="agency.creditCode" label="社会信用代码">
<el-input
:disabled="isAbleEdit"
- v-model="registerForm.agency.creditCode"
+ v-model.trim="registerForm.agency.creditCode"
size="large"
placeholder="请输入社会信用代码"
>
@@ -55,7 +55,7 @@
<el-col :span="12">
<el-form-item prop="agency.address" label="实际经营地址">
<el-input
- v-model="registerForm.agency.address"
+ v-model.trim="registerForm.agency.address"
size="large"
placeholder="请输入实际经营地址"
/>
@@ -66,7 +66,7 @@
<el-col :span="12">
<el-form-item prop="agency.legalPerson" label="法定代表人">
<el-input
- v-model="registerForm.agency.legalPerson"
+ v-model.trim="registerForm.agency.legalPerson"
size="large"
placeholder="请输入法定代表人"
/>
@@ -75,7 +75,7 @@
<el-col :span="12">
<el-form-item prop="agency.legalPhone" label="法人电话">
<el-input
- v-model="registerForm.agency.legalPhone"
+ v-model.trim="registerForm.agency.legalPhone"
size="large"
placeholder="请输入法人电话"
/>
@@ -86,7 +86,7 @@
<el-col :span="12">
<el-form-item prop="agency.manager" label="机构负责人">
<el-input
- v-model="registerForm.agency.manager"
+ v-model.trim="registerForm.agency.manager"
size="large"
placeholder="请输入机构负责人"
/>
@@ -95,7 +95,7 @@
<el-col :span="12">
<el-form-item prop="agency.managerPhone" label="负责人电话">
<el-input
- v-model="registerForm.agency.managerPhone"
+ v-model.trim="registerForm.agency.managerPhone"
size="large"
placeholder="请输入负责人电话"
/>
@@ -106,7 +106,7 @@
<el-col :span="8">
<el-form-item prop="agency.certNumber" label="资质证书编号">
<el-input
- v-model="registerForm.agency.certNumber"
+ v-model.trim="registerForm.agency.certNumber"
size="large"
placeholder="请输入资质证书编号"
/>
@@ -115,7 +115,7 @@
<el-col :span="8">
<el-form-item prop="agency.issueDate" label="发证日期">
<el-date-picker
- v-model="registerForm.agency.issueDate"
+ v-model.trim="registerForm.agency.issueDate"
type="date"
placeholder="请选择发证日期"
value-format="YYYY-MM-DD 00:00:00"
@@ -127,7 +127,7 @@
<el-col :span="8">
<el-form-item prop="agency.validDate" label="有效日期">
<el-date-picker
- v-model="registerForm.agency.validDate"
+ v-model.trim="registerForm.agency.validDate"
type="date"
placeholder="请选择有效日期"
value-format="YYYY-MM-DD 00:00:00"
@@ -139,9 +139,21 @@
</el-row>
<el-row :gutter="30">
<el-col :span="8">
+ <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>
+ </template>
+ </el-upload>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="30">
+ <el-col :span="8">
<el-form-item prop="agency.assetValue" label="固定资产总值">
<el-input
- v-model="registerForm.agency.assetValue"
+ v-model.trim="registerForm.agency.assetValue"
type="number"
size="large"
placeholder="请输入固定资产总值"
@@ -152,7 +164,7 @@
<el-form-item prop="agency.workArea" label="工作场所建筑面积">
<el-input
type="number"
- v-model="registerForm.agency.workArea"
+ v-model.trim="registerForm.agency.workArea"
size="large"
placeholder="请输入工作场所建筑面积"
><template #append>㎡</template></el-input>
@@ -162,7 +174,7 @@
<el-form-item prop="agency.archiveArea" label="档案室面积">
<el-input
type="number"
- v-model="registerForm.agency.archiveArea"
+ v-model.trim="registerForm.agency.archiveArea"
size="large"
placeholder="请输入档案室面积"
><template #append>㎡</template></el-input>
@@ -173,7 +185,7 @@
<el-col :span="8">
<el-form-item prop="agency.regAddress" label="注册地址">
<el-input
- v-model="registerForm.agency.regAddress"
+ v-model.trim="registerForm.agency.regAddress"
size="large"
placeholder="请输入注册地址"
/>
@@ -193,8 +205,8 @@
</el-col>
</el-row>
<el-row :gutter="30">
- <el-col :span="8">
- <el-form-item prop="agency.reportPath" label="加盖公章的《机构信息上报表》">
+ <el-col :span="24">
+ <el-form-item prop="agency.reportPath" label="加盖公章的《机构信息上报表》(请上传加盖公章的营业执照)">
<!-- <el-upload-->
<!-- v-model:file-list="state.fileList"-->
<!-- class="upload-demo"-->
@@ -213,7 +225,7 @@
<!-- </div>-->
<!-- </template>-->
<!-- </el-upload>-->
- <el-upload accept="image/*" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="handleAvatarSuccess" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='state.imgLimit' v-model:file-list="state.fileList" list-type="picture-card" :before-upload="picSize" :on-remove="handleRemove" :before-remove="beforeRemove">
+ <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.fileList" 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>
@@ -227,6 +239,7 @@
<el-col :span="12">
<el-form-item prop="username" label="登录用户名(字母+数字,长度在5-16之间)">
<el-input
+ :disabled="state.title == '编辑'"
v-model.trim="registerForm.username"
size="large"
placeholder="请输入登录用户名"
@@ -245,7 +258,7 @@
</el-row>
<el-row :gutter="30" v-if="state.title == '新增/注册'">
<el-col :span="12">
- <el-form-item prop="password" label="密码">
+ <el-form-item prop="password" label="密码(字母+数字+特殊字符,长度在6-16之间)">
<el-input
v-model.trim="registerForm.password"
type="password"
@@ -306,6 +319,7 @@
import { Base64 } from 'js-base64'
import {getAgencyById} from "../../../api/sysUsers";
import Cookies from "js-cookie";
+import {getInstitutionDetail} from "@/api/backManage/insitution";
const emit = defineEmits(["getList"]);
const props = {
@@ -319,6 +333,7 @@
areaList: [],
busList: [],
fileList: [],
+ certList: [],
imgLimit: 1,
uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
header: {
@@ -350,6 +365,7 @@
regAddress: '',
business: '',
reportPath: '',
+ certPath: ''
},
username: '',
phone: '',
@@ -394,11 +410,13 @@
let param = {}
if(state.title=='新增/注册') {
param = {
- phone:value
+ phone:value,
+ identity: 1
}
}else if(state.title=='编辑'){
param = {
phone:value,
+ identity: 1,
id: state.registerForm.id
}
}
@@ -420,7 +438,7 @@
callback()
}else{
if(!verifyUsername(value)){
- callback(new Error('用户名须使用字母+数字,长度在5-16之间'))
+ callback(new Error('用户名须使用字母或数字,长度在5-16之间'))
}else{
let param = {}
if(state.title=='新增/注册') {
@@ -449,7 +467,7 @@
callback(new Error('请输入密码'))
}else{
if(!verifyPwd(value)){
- callback(new Error('密码须包含字母、数字、特殊字符(不包括下划线),长度在6-16之间'))
+ callback(new Error('密码须包含字母、数字、特殊字符,长度在6-16之间'))
}else{
callback()
}
@@ -475,6 +493,7 @@
"agency.regAddress": [{required: true, trigger: "blur", message: "请输入注册地址"}],
"agency.business": [{required: true, trigger: "blur", message: "请选择申请的法定安全评价业务范围"}],
"agency.reportPath": [{required: true, trigger: "blur", message: "请上传加盖公章的《机构信息上报表》"}],
+ "agency.certPath": [{required: true, trigger: "blur", message: "请上传资质证书"}],
username: [{ required: true, trigger: "blur", validator: validateUsername }],
phone: [{ required: true, trigger: "blur", validator: validateUserPhone }],
password: [{ required: true, trigger: "blur", validator: validatePwd }],
@@ -502,10 +521,11 @@
// });
})
const isAbleEdit = ref(false);
+const isReject = ref(false);
const openDialog=(type, value)=>{
- state.title = type === 'add' ? '新增/注册' : type ==='edit' ? '编辑' : '查看' ;
- getArea()
- if(type === 'edit' || type == 'view') {
+ state.title = type === 'add' ? '新增/注册' : (type ==='edit' || type ==='reject') ? '编辑' : '查看' ;
+ getArea()
+ if(type === 'edit' || type == 'view' || type ==='reject') {
state.registerForm.id = value.id
state.registerForm.username = value.username
state.registerForm.phone = value.phone
@@ -526,7 +546,8 @@
}
}
getArea()
-
+ state.registerForm.phone = info.user.phone
+ startPhone.value = info.user.phone
state.registerForm.agency.business = info.business.split(',').map(Number)
if(state.registerForm.agency.attribute === 0){
state.registerForm.agency.area = [info.city,info.district].filter(item => { return item && item.trim() })
@@ -537,6 +558,11 @@
const imgUrl = import.meta.env.VITE_APP_BASE_API + "/" + res.data.reportPath
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
+ state.certList = imgUrl ? imgUrl.split(',').map(url => {return {url} }) : []
+ }
+
}else{
ElMessage.warning(res.message)
@@ -545,8 +571,12 @@
if(type == 'view'){
state.isView = true
}
+ if(type === 'reject'){
+ isReject.value = true;
+ }
}
dialogVisible.value = true
+ console.log('state.registerForm',state.registerForm)
}
const validKey=(key,obj)=>{
@@ -585,6 +615,10 @@
}
const changeAttr=()=>{
+ state.registerForm.agency.area = []
+ state.registerForm.agency.province = ''
+ state.registerForm.agency.city = ''
+ state.registerForm.agency.district = ''
getArea()
}
@@ -612,9 +646,15 @@
};
-const handleAvatarSuccess = (res, uploadFile) => {
+const handleAvatarSuccess = (res, uploadFile,type) => {
if(res.code == 200){
- state.registerForm.agency.reportPath = res.data.path
+ console.log("type",type)
+ if(type === '上报表'){
+ state.registerForm.agency.reportPath = res.data.path
+ }else {
+ state.registerForm.agency.certPath = res.data.path
+ }
+
}else{
ElMessage({
type: 'warning',
@@ -623,8 +663,17 @@
}
}
-const handleRemove = async (file, uploadFiles) => {
- const res = await delPic({path: state.registerForm.agency.reportPath})
+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;
+ }
+ const res = await delPic({path: path})
if(res.code == 200){
ElMessage({
type: 'success',
@@ -636,6 +685,7 @@
message: res.message
})
}
+ }
}
function handleRegister() {
@@ -643,7 +693,7 @@
if (valid) {
loading.value = true;
if(state.title == '新增/注册'){
- const {confirmPassword,id, ...data} = state.registerForm
+ const {confirmPassword,id, ...data} = JSON.parse(JSON.stringify(state.registerForm))
data.password = Base64.encode(data.password)
data.agency.business = data.agency.business.join(',')
delete data.agency.area
@@ -662,6 +712,7 @@
proxy.$refs.registerRef.resetFields()
proxy.$refs.registerRef.clearValidate()
state.fileList = []
+ state.certList = []
loading.value = false
// router.push("/homePage")
}).catch(() => {})
@@ -675,10 +726,12 @@
loading.value = false
})
}else {
- const {confirmPassword, ...data} = state.registerForm
+ const {confirmPassword, ...data} = JSON.parse(JSON.stringify(state.registerForm))
data.password = Base64.encode(data.password)
- console.log('data',data)
data.agency.business = data.agency.business.join(',')
+ if(isReject.value) {
+ data.state = 1;
+ }
// delete data.agency.area
console.log('data',data)
editAgency(data).then(res => {
@@ -687,14 +740,15 @@
type: 'success',
message: '编辑成功'
})
- emit("getList")
+
dialogVisible.value = false
state.registerForm.agency.attribute = 0
proxy.$refs.registerRef.resetFields()
proxy.$refs.registerRef.clearValidate()
state.fileList = []
+ state.certList = []
loading.value = false
-
+ emit("getList")
}else{
ElMessage({
type: 'warning',
@@ -714,6 +768,7 @@
proxy.$refs.registerRef.resetFields()
proxy.$refs.registerRef.clearValidate()
state.fileList = []
+ state.certList = []
}
defineExpose({
--
Gitblit v1.9.2