From 39f97341210dabcffbd50f1cea5bd697a602bb7b Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期三, 05 三月 2025 15:34:30 +0800
Subject: [PATCH] bug修改

---
 src/views/safetyReview/institution/components/viewInstitution.vue |  140 +++++++++++++++++++++++++++++-----------------
 1 files changed, 89 insertions(+), 51 deletions(-)

diff --git a/src/views/safetyReview/institution/components/viewInstitution.vue b/src/views/safetyReview/institution/components/viewInstitution.vue
index fb7c32e..dd70118 100644
--- a/src/views/safetyReview/institution/components/viewInstitution.vue
+++ b/src/views/safetyReview/institution/components/viewInstitution.vue
@@ -2,7 +2,7 @@
     <el-dialog v-model="dialogVisible" width="75%" top="50vh" align-center @close="closeDialog">
         <el-form ref="registerRef" :model="registerForm" 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
@@ -13,7 +13,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
@@ -24,7 +24,7 @@
                         </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%" disabled>
                             <el-radio :label="0" size="large">疆内</el-radio>
@@ -32,18 +32,26 @@
                         </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" disabled>
+                    <el-checkbox v-for="item in registerForm.businessTypeList" :label="item.value" :key="item.value">{{ item.label }}</el-checkbox>
+                  </el-checkbox-group>
+                </el-form-item>
+              </el-col>
             </el-row>
             <el-row :gutter="30">
                 <el-col :span="12">
                     <el-form-item prop="agency.area" label="实际经营地址所属区域">
-                        <el-input v-model="registerForm.agency.area" disabled></el-input>
-<!--                        <el-cascader-->
-<!--                            v-model="registerForm.agency.area"-->
-<!--                            :options="state.areaList"-->
-<!--                            :props="props"-->
-<!--                            style="width: 100%"-->
-<!--                            size="large"-->
-<!--                        />-->
+<!--                        <el-input v-model="registerForm.agency.area" disabled></el-input>-->
+                        <el-cascader
+                            disabled
+                            v-model="registerForm.agency.area"
+                            :options="state.areaList"
+                            :props="props"
+                            style="width: 100%"
+                            size="large"
+                        />
                     </el-form-item>
                 </el-col>
                 <el-col :span="12">
@@ -139,6 +147,15 @@
                     </el-form-item>
                 </el-col>
             </el-row>
+          <el-row :gutter="30">
+            <el-col :span="8">
+              <el-form-item prop="agency.certPath" label="资质证书">
+                <el-upload  disabled v-model:file-list="certList" :limit='state.imgLimit' :on-preview="handlePictureCardPreview" list-type="picture-card" >
+
+                </el-upload>
+              </el-form-item>
+            </el-col>
+          </el-row>
             <el-row :gutter="30">
                 <el-col :span="8">
                     <el-form-item prop="agency.assetValue" label="固定资产总值">
@@ -202,7 +219,7 @@
                 <el-col :span="8">
                     <el-form-item prop="agency.reportPath" label="加盖公章的《机构信息上报表》">
                         <el-upload  disabled :limit='state.imgLimit' :show-file-list="false" list-type="picture-card" >
-                            <el-image v-if="imageUrl" style="width: 150px;height: 150px" :src="imageUrl" :preview-src-list="srcList"/>
+                            <el-image  v-if="imageUrl"  :src="imageUrl" :preview-src-list="srcList" style="width: 100%;max-height: 146px;" />
 <!--                            <template #tip>-->
 <!--                                <div class="el-upload__tip">上传jpg/png图片尺寸小于5M,最多可上传1张</div>-->
 <!--                            </template>-->
@@ -212,7 +229,7 @@
             </el-row>
             <el-row :gutter="30">
                 <el-col :span="12">
-                    <el-form-item prop="username" label="登录用户名(字母+数字,长度在5-16之间)">
+                    <el-form-item prop="username" label="用户名">
                         <el-input
                             disabled
                             v-model="registerForm.username"
@@ -232,32 +249,6 @@
                     </el-form-item>
                 </el-col>
             </el-row>
-<!--            <el-row :gutter="30">-->
-<!--                <el-col :span="12">-->
-<!--                    <el-form-item prop="password" label="密码">-->
-<!--                        <el-input-->
-<!--                            v-model="registerForm.password"-->
-<!--                            type="password"-->
-<!--                            size="large"-->
-<!--                            placeholder="请输入密码"-->
-<!--                            show-password-->
-<!--                        />-->
-<!--                    </el-form-item>-->
-<!--                </el-col>-->
-<!--                <el-col :span="12">-->
-<!--                    <el-form-item prop="confirmPassword" label="确认密码">-->
-<!--                        <el-input-->
-<!--                            v-model="registerForm.confirmPassword"-->
-<!--                            type="password"-->
-<!--                            size="large"-->
-<!--                            auto-complete="off"-->
-<!--                            placeholder="确认密码"-->
-<!--                            show-password-->
-<!--                        >-->
-<!--                        </el-input>-->
-<!--                    </el-form-item>-->
-<!--                </el-col>-->
-<!--            </el-row>-->
         </el-form>
         <el-dialog v-model="state.dialogImg">
             <el-image style="width: 100%; height: 100%" :src="state.dialogImageUrl"/>
@@ -274,7 +265,9 @@
 import {getDict} from "@/api/login";
 import {getRegionTree} from "@/api/area";
 const imageUrl = ref("");
+const certImageUrl = ref("");
 const srcList = ref([]);
+const certList = ref([]);
 const registerForm = ref({
     agency:{
         name: "",
@@ -298,11 +291,22 @@
         regAddress: '',
         business: '',
         reportPath: '',
+        businessType: []
     },
     username: '',
     phone: '',
     password: '',
-    confirmPassword: ''
+    confirmPassword: '',
+    businessTypeList: [
+      {
+        value: 1,
+        label: '安全评价'
+      },
+      {
+        value: 2,
+        label: '检验检测'
+      },
+    ]
 });
 
 
@@ -315,7 +319,7 @@
     areaList: [],
     busList: [],
     fileList: [],
-    imgLimit: 1,
+    imgLimit: 5,
     uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
     header: {
         Authorization: 'Bearer ' + getToken()
@@ -327,10 +331,6 @@
 const loading = ref(false)
 const dialogVisible = ref(false)
 const registerRef = ref(null)
-onMounted(()=>{
-    getBusiness()
-    getArea()
-})
 
 const getBusiness = async ()=>{
     const res = await getDict({dictType: 'sys_business_scope'})
@@ -351,20 +351,49 @@
     }
 }
 
-const openDialog = async (val) => {
+const openDialog = async (val,type) => {
+    let id = "";
+    if(type === 'view'){
+        id = val.agencyId
+    }else {
+        id = val.id
+    }
     const param = {
-        agencyId: val.id
+        agencyId: id
     }
     const res = await getInstitutionDetail(param);
     if(res.code === 200){
         registerForm.value.agency = res.data
-        registerForm.value.agency.area = res.data.province+ " " +res.data.city + " " + res.data.district
+        await getBusiness()
+        await getArea()
+        registerForm.value.username = res.data.user?.username
+        registerForm.value.phone = res.data.user?.phone
+        if(registerForm.value.agency.attribute === 0){
+            registerForm.value.agency.area = [res.data.city,res.data.district].filter(item => { return item && item.trim() })
+        }else {
+            registerForm.value.agency.area = [res.data.province,res.data.city,res.data.district].filter(item => { return item && item.trim() })
+        }
         registerForm.value.agency.business = res.data.business.split(",").map(Number)
+        registerForm.value.agency.businessType = res.data.businessType ? res.data.businessType.split(',').map(Number): []
         imageUrl.value = import.meta.env.VITE_APP_BASE_API + "/" +  res.data.reportPath
         srcList.value.push(imageUrl.value)
-        // state.fileList.push({
-        //     'url': imgUrl
-        // })
+
+        if(res.data.certPath) {
+          const imgList = res.data.certPath.split(',')
+          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(',')
+          certList.value = imgUrl ? imgUrl.split(',').map(url => {return {url} }) : []
+        }
+        // certImageUrl.value = import.meta.env.VITE_APP_BASE_API + "/" +  res.data.certPath
+
+
+
     }else{
         ElMessage.warning(res.message)
     }
@@ -375,6 +404,12 @@
 const closeDialog = ()=>{
     dialogVisible.value = false;
     state.fileList = []
+    srcList.value = []
+    certList.value = []
+}
+const handlePictureCardPreview = (uploadFile) => {
+  state.dialogImageUrl = uploadFile.url
+  state.dialogImg = true
 }
 
 defineExpose({
@@ -388,9 +423,12 @@
         margin-top: 500px !important;
     }
 }
+
+
 </style>
 <style lang='scss' scoped>
 .register-form {
+  ::v-deep(.el-upload--picture-card){display: none}
     .el-input {
         height: 40px;
         input {

--
Gitblit v1.9.2