zhouwx
2024-04-19 4502510c1763590b3d90d9dcc74a99f8f371642f
src/layout/components/Register/index.vue
@@ -139,6 +139,18 @@
        </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"
@@ -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>
@@ -246,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"
@@ -320,6 +332,7 @@
  areaList: [],
  busList: [],
  fileList: [],
  certList: [],
  imgLimit: 1,
  uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
  header: {
@@ -351,6 +364,7 @@
      regAddress: '',
      business: '',
      reportPath: '',
      certPath: ''
    },
    username: '',
    phone: '',
@@ -395,11 +409,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
            }
        }
@@ -421,7 +437,7 @@
      callback()
  }else{
    if(!verifyUsername(value)){
      callback(new Error('用户名须使用字母+数字,长度在5-16之间'))
      callback(new Error('用户名须使用字母或数字,长度在5-16之间'))
    }else{
        let param = {}
        if(state.title=='新增/注册') {
@@ -450,7 +466,7 @@
    callback(new Error('请输入密码'))
  }else{
    if(!verifyPwd(value)){
      callback(new Error('密码须包含字母、数字、特殊字符(不包括下划线),长度在6-16之间'))
      callback(new Error('密码须包含字母、数字、特殊字符,长度在6-16之间'))
    }else{
      callback()
    }
@@ -476,6 +492,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 }],
@@ -537,6 +554,10 @@
          if(res.data.reportPath) {
              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{
@@ -613,9 +634,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',
@@ -624,8 +651,14 @@
  }
}
const handleRemove = async (file, uploadFiles) => {
  const res = await delPic({path: state.registerForm.agency.reportPath})
const handleRemove = async (file, uploadFiles,type) => {
  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',
@@ -663,6 +696,7 @@
              proxy.$refs.registerRef.resetFields()
              proxy.$refs.registerRef.clearValidate()
              state.fileList = []
              state.certList = []
                loading.value = false
              // router.push("/homePage")
            }).catch(() => {})
@@ -694,6 +728,7 @@
                  proxy.$refs.registerRef.resetFields()
                  proxy.$refs.registerRef.clearValidate()
                  state.fileList = []
                  state.certList = []
                  loading.value = false
              }else{
@@ -715,6 +750,7 @@
  proxy.$refs.registerRef.resetFields()
  proxy.$refs.registerRef.clearValidate()
  state.fileList = []
  state.certList = []
}
defineExpose({