Browse Source

医健宝:优化资质证明添加方式和存放方式

liupeng 4 ngày trước cách đây
mục cha
commit
fa81662cbf
1 tập tin đã thay đổi với 84 bổ sung12 xóa
  1. 84 12
      src/views/system/config/config.vue

+ 84 - 12
src/views/system/config/config.vue

@@ -198,12 +198,40 @@
       </el-tab-pane>
 
       <el-tab-pane label="资质证明" name="his.certs">
-        <el-form ref="form4" :model="form4" label-width="150px">
-          <el-form-item label="资质证明" prop="certs">
-            <Material v-model="photoArr" type="image" :num="10" :width="150" :height="150"/>
-          </el-form-item>
-          <el-form-item label="资质证书编号" prop="certificateNumber">
-            <el-input v-model="form4.certificateNumber" label="请输入资质证书编号"></el-input>
+        <el-form ref="form4" :model="form4" label-width="300px">
+          <!-- 动态生成图片和输入框的组合 -->
+          <div v-for="(item, index) in form4.certList" :key="index" class="cert-item">
+            <el-form-item :label="`资质证明 ${index + 1}`">
+              <Material
+                v-model="item.certs"
+              type="image"
+              :num="1"
+              :width="200"
+              :height="200"
+              />
+              <!-- 对应的输入框 -->
+              <el-input
+                v-model="item.certNumber"
+                placeholder="请输入证书编号"
+                style="width: 200px; margin-left: 10px;"
+              ></el-input>
+              <!-- 删除按钮 - 修正事件绑定 -->
+              <el-button
+                v-if="form4.certList.length > 1"
+                type="danger"
+                icon="el-icon-delete"
+                size="mini"
+                style="margin-left: 10px;"
+                @click="removeCert(index)"
+              ></el-button>
+            </el-form-item>
+          </div>
+
+          <!-- 添加按钮 -->
+          <el-form-item>
+            <el-button @click="addCert" type="primary" icon="el-icon-plus">
+              添加资质证明
+            </el-button>
           </el-form-item>
         </el-form>
         <div class="footer">
@@ -2332,7 +2360,14 @@ export default {
       form1: {},
       form2: {},
       form3: {},
-      form4: {},
+      form4: {
+        certList: [  // 确保这里正确定义
+          {
+            certs: [],
+            certNumber: ''
+          }
+        ]
+      },
       form5: [],
       form6: {},
       form7: {},
@@ -2732,9 +2767,26 @@ export default {
           this.form3 = JSON.parse(response.data.configValue)
         }
         if (key == 'his.certs') {
-          this.form4 = JSON.parse(response.data.configValue)
-          if (this.form4.certs != null) {
-            this.photoArr = this.form4.certs.split(',')
+          const configData = JSON.parse(response.data.configValue);
+          this.form4.certList = configData.map(item => {
+            let certsArray = [];
+            if (item.certs) {
+              if (Array.isArray(item.certs)) {
+                certsArray = item.certs;
+              } else {
+                certsArray = [item.certs];
+              }
+            }
+            return {
+              certs: certsArray,
+              certNumber: item.certNumber || ''
+            };
+          });
+          if (this.form4.certList.length === 0) {
+            this.form4.certList = [{
+              certs: [],
+              certNumber: ''
+            }];
           }
         }
         if (key == 'his.brokerage') {
@@ -2890,7 +2942,11 @@ export default {
       })
     },
     submitForm4() {
-      var param = { configId: this.configId, configValue: JSON.stringify(this.form4) }
+      const submitData = this.form4.certList.map(item => ({
+        certs: item.certs.length > 0 ? item.certs[0] : [],  // 只取第一张
+        certNumber: item.certNumber
+      }));
+      var param = { configId: this.configId, configValue: JSON.stringify(submitData) }
       updateConfigByKey(param).then(response => {
         if (response.code === 200) {
           this.msgSuccess('修改成功')
@@ -3214,7 +3270,23 @@ export default {
     },
     removeDisabledTime(index) {
       this.form18.disabledTimeList.splice(index, 1)
-    }
+    },
+    addCert() {
+      // 确保 certList 存在
+      if (!this.form4.certList) {
+        this.$set(this.form4, 'certList', []);
+      }
+      this.form4.certList.push({
+        certs: [],
+        certNumber: ''
+      });
+    },
+
+    removeCert(index) {
+      if (this.form4.certList && this.form4.certList.length > 1) {
+        this.form4.certList.splice(index, 1);
+      }
+    },
   }
 }
 </script>