From ff182ac475ea169057956ab182d38236d7ee87a1 Mon Sep 17 00:00:00 2001
From: fujunling <2984387807@qq.com>
Date: 星期二, 20 六月 2023 11:09:18 +0800
Subject: [PATCH] 批量导入

---
 Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue |    2 
 Source/UBCS-WEB/src/components/FormTemplate/index.vue        |  267 +++++++++++++++++++++++++++++++++++++++++--
 Source/UBCS-WEB/src/api/batchImport/index.js                 |   11 +
 Source/UBCS-WEB/src/util/func.js                             |   14 ++
 Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue    |    5 
 Source/UBCS-WEB/src/components/BatchImport/index.vue         |    7 
 6 files changed, 283 insertions(+), 23 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/batchImport/index.js b/Source/UBCS-WEB/src/api/batchImport/index.js
index f48426a..69c3f05 100644
--- a/Source/UBCS-WEB/src/api/batchImport/index.js
+++ b/Source/UBCS-WEB/src/api/batchImport/index.js
@@ -6,7 +6,8 @@
   return request({
     url: '/api/ubcs-code/mdmEngineController/downloadImportExcelHistory',
     method: 'get',
-    params
+    params,
+    responseType: 'blob'
   })
 }
 // 涓嬭浇閿欒鏃ュ織
@@ -16,4 +17,12 @@
     method: 'get',
     params
   })
+}
+// 瀵煎叆鏁版嵁灞曠ず
+export const importDataShow = (redisOid) => {
+  return request({
+    url: '/api/ubcs-code/mdmEngineController/gridclassifys',
+    method: 'get',
+    params: {redisOid: redisOid + "-class"}
+  })
 }
\ No newline at end of file
diff --git a/Source/UBCS-WEB/src/components/BatchImport/index.vue b/Source/UBCS-WEB/src/components/BatchImport/index.vue
index a5bacf6..c94a9ed 100644
--- a/Source/UBCS-WEB/src/components/BatchImport/index.vue
+++ b/Source/UBCS-WEB/src/components/BatchImport/index.vue
@@ -53,6 +53,7 @@
 import {
   downloadHistoryImportTemplate,
   downloadErrorFile,
+  importDataShow
 } from "../../api/batchImport/index";
 import { getToken } from "@/util/auth";
 export default {
@@ -69,7 +70,7 @@
     },
     codeClassifyOid: {
       type: String,
-      default: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B",
+      default: "",
     },
     type: {
       type: String,
@@ -124,11 +125,11 @@
     downloadTemplateFun() {
       this.downloadLoading = true;
       downloadHistoryImportTemplate({
-        codeClassifyOid: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B",
+        codeClassifyOid: this.codeClassifyOid,
       })
         .then((res) => {
           this.downloadLoading = false;
-          console.log(res);
+          this.$utilFunc.downloadFileByBlob(res.data, "鍘嗗彶鏁版嵁瀵煎叆妯℃澘.xls");
         })
         .catch(() => {
           this.downloadLoading = false;
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue
index 42912d0..a9f8e52 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue
@@ -713,7 +713,7 @@
       if(data.field){
         this.form[data.field]=data.value || '';
         this.form[data.showField]=data.text || '';
-        this.$emit("getFormData", this.form);
+        this.$emit("referConfigDataUpdate", data);
       }
     }
   },
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
index b910397..a908408 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -30,7 +30,7 @@
       "
     >
       <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
-        <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply" v-if="showCodeApply">
+        <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply">
           <FormTempalte
             v-bind="$attrs"
             :type="type"
@@ -38,6 +38,7 @@
             :selfColumnConfig="selfColumnConfig"
             ref="CodeApply"
             @getFormData="getFormData"
+            @referConfigDataUpdate="referConfigDataUpdate"
           ></FormTempalte>
         </el-tab-pane>
         <el-tab-pane
@@ -59,9 +60,9 @@
     </div>
     <div class="avue-dialog__footer" v-if="type !== 'detail'">
       <el-button @click="close()">鍙� 娑�</el-button>
-      <el-button @click="submit()" type="primary" :loading="submitBtnLoading"
-        >{{ submitText }}</el-button
-      >
+      <el-button @click="submit()" type="primary" :loading="submitBtnLoading">{{
+        submitText
+      }}</el-button>
       <el-button
         @click="resembleQuerySubmit"
         type="primary"
@@ -107,8 +108,8 @@
     },
     submitText: {
       type: String,
-      default: '纭� 瀹�'
-    }
+      default: "纭� 瀹�",
+    },
   },
   data() {
     return {
@@ -132,6 +133,8 @@
           required: this.isRequired,
           dicData: this.getOptionList,
           type: this.getType,
+          referConfig: this.getReferConfig,
+          readOnly: this.getDisabled,
         },
         exchange: {
           text: "name",
@@ -167,7 +170,7 @@
   methods: {
     openDialog() {
       this.getFormTemplate();
-      if (this.type === 'add') {
+      if (this.type === "add") {
         this.getCodeRule();
       }
     },
@@ -188,8 +191,8 @@
               res.data.resembleTableVO.cols.length > 0;
             this.resembleTableColumn = res.data.resembleTableVO.cols || [];
             if (this.hasResemble) {
-              this.activeName = 'resembleQuery'
-              this.showResembleQuery = true
+              this.activeName = "resembleQuery";
+              this.showResembleQuery = true;
             }
             this.$refs.FormTempalte.templateRender(res.data.formDefineVO.items);
           }
@@ -209,16 +212,179 @@
             "codevariablesec",
             "coderefersec",
           ];
-          this.secVOList = (res.data.data.secVOList || []).filter((item) =>
-            typeList.includes(item)
-          );
+
+          this.secVOList = [
+            {
+              btmname: "codebasicsec",
+              checkInBy: "",
+              checkInTime: null,
+              checkOutBy: "",
+              checkOutTime: null,
+              codeDateFormatStr: "",
+              codeFillFlag: "",
+              codeFillLength: "",
+              codeFillLimit: 0,
+              codeFillSeparator: "",
+              codeFillType: "",
+              codeFillTypeText: "",
+              codeGetValueType: "",
+              codeGetValueTypeText: "",
+              codeLevelType: "",
+              codeLevelTypeText: "",
+              codeLevelValue: 0,
+              codeSecLength: "10",
+              codeSecLengthType: "code_sec_length_variable",
+              codeSecLengthTypeText: "",
+              componentCodeFlag: "false",
+              copyFromVersion: "",
+              createTime: "2023-06-06 14:10:27.000",
+              creator: "1",
+              customCodeSerialClass: "",
+              data: null,
+              description: "",
+              displayFlag: "false",
+              filterSql: "",
+              firstR: "1",
+              firstV: "1",
+              fixedValueVOList: null,
+              getValueClass: "",
+              id: "0001",
+              lastModifier: "1",
+              lastModifyTime: "2023-06-06 14:10:27.000",
+              lastR: "1",
+              lastV: "1",
+              lcStatus: "Exist",
+              lcStatusText: "瀛樺湪",
+              lctid: "defaultLC",
+              matchClassifyValueFlag: "false",
+              name: "鍒嗙被鐮佹鐖�",
+              nameOid: "C2998D32-E89E-6D41-0782-88E97E9EC65B",
+              nullableFlag: "false",
+              oid: "1668926002119708672",
+              orderNum: 1,
+              owner: "1",
+              parentClassifySecOid: "",
+              parentClassifySecText: "",
+              pkCodeRule: "B4766355-E4E1-490A-833B-D5AB73E9B877",
+              referAttributeId: "",
+              referAttributeName: "",
+              referBtmId: "",
+              referBtmName: "",
+              referCodeClassifyOid: "",
+              referCodeClassifyOidName: "",
+              referConfig: "",
+              referValueInfo: "",
+              revisionOid: "F0049108-6AAE-EAAD-BC76-E6714C2B8F2A",
+              revisionRule: "",
+              revisionSeq: 1,
+              revisionValue: "",
+              secretGrade: null,
+              secretGradeText: "",
+              sectype: "codeclassifysec",
+              sectypeText: "鍒嗙被鐮佹",
+              serialDependFlag: "false",
+              serialDependOrder: 0,
+              serialStart: "",
+              serialStep: 0,
+              ts: "2023-06-06 14:10:27.716",
+              valueCutLength: 0,
+              valueCutType: "",
+              valueCutTypeText: "",
+              versionRule: "0",
+              versionSeq: 1,
+              versionValue: "1",
+            },
+            {
+              btmname: "codebasicsec",
+              checkInBy: "",
+              checkInTime: null,
+              checkOutBy: "",
+              checkOutTime: null,
+              codeDateFormatStr: "",
+              codeFillFlag: "",
+              codeFillLength: "",
+              codeFillLimit: 0,
+              codeFillSeparator: "",
+              codeFillType: "",
+              codeFillTypeText: "",
+              codeGetValueType: "",
+              codeGetValueTypeText: "",
+              codeLevelType: "",
+              codeLevelTypeText: "",
+              codeLevelValue: 0,
+              codeSecLength: "10",
+              codeSecLengthType: "code_sec_length_variable",
+              codeSecLengthTypeText: "",
+              componentCodeFlag: "false",
+              copyFromVersion: "",
+              createTime: "2023-06-06 14:10:50.000",
+              creator: "1",
+              customCodeSerialClass: "",
+              data: null,
+              description: "",
+              displayFlag: "false",
+              filterSql: "",
+              firstR: "1",
+              firstV: "1",
+              fixedValueVOList: null,
+              getValueClass: "",
+              id: "000101",
+              lastModifier: "1",
+              lastModifyTime: "2023-06-06 14:10:50.000",
+              lastR: "1",
+              lastV: "1",
+              lcStatus: "Exist",
+              lcStatusText: "瀛樺湪",
+              lctid: "defaultLC",
+              matchClassifyValueFlag: "false",
+              name: "鍒嗙被鐮佹瀛�",
+              nameOid: "1FDB20E3-9F68-A5B0-D097-2142EA054F9B",
+              nullableFlag: "false",
+              oid: "00AD9FE0-A31D-7962-10DF-DC6115EF80A5",
+              orderNum: 2,
+              owner: "1",
+              parentClassifySecOid: "1668926002119708672",
+              parentClassifySecText: "鍒嗙被鐮佹",
+              pkCodeRule: "B4766355-E4E1-490A-833B-D5AB73E9B877",
+              referAttributeId: "",
+              referAttributeName: "",
+              referBtmId: "",
+              referBtmName: "",
+              referCodeClassifyOid: "",
+              referCodeClassifyOidName: "",
+              referConfig: "",
+              referValueInfo: "",
+              revisionOid: "95183EF9-C9AD-2941-1C99-9E9024330D40",
+              revisionRule: "",
+              revisionSeq: 1,
+              revisionValue: "",
+              secretGrade: null,
+              secretGradeText: "",
+              sectype: "codeclassifysec",
+              sectypeText: "鍒嗙被鐮佹",
+              serialDependFlag: "false",
+              serialDependOrder: 0,
+              serialStart: "",
+              serialStep: 0,
+              ts: "2023-06-06 14:10:50.084",
+              valueCutLength: 0,
+              valueCutType: "",
+              valueCutTypeText: "",
+              versionRule: "0",
+              versionSeq: 1,
+              versionValue: "1",
+            },
+          ];
+          // this.secVOList = (res.data.data.secVOList || []).filter((item) =>
+          //   typeList.includes(item)
+          // );
           this.$nextTick(() => {
-            if (this.secVOList.length > 0 && this.type === 'add') {
-              this.showCodeApply = true
-              this.activeName = 'codeApply'
+            if (this.secVOList.length > 0 && this.type === "add") {
+              this.showCodeApply = true;
+              this.activeName = "codeApply";
               this.$refs.CodeApply.templateRender(this.secVOList);
             } else {
-              this.showCodeApply = false
+              this.showCodeApply = false;
             }
           });
         }
@@ -226,6 +392,17 @@
     },
     getFormData(form) {
       this.form = form;
+    },
+    // 鍙傜収缁勪欢鏁版嵁鍙樻洿
+    referConfigDataUpdate(data) {
+      const { field } = data;
+      this.secVOList = this.secVOList.map((item) => {
+        if (item.parentClassifySecOid === field) {
+          this.$refs.CodeApply.form[item.oid] = undefined;
+          this.$refs.CodeApply.form[item.name] = undefined;
+        }
+      });
+      this.$refs.CodeApply.templateRender();
     },
     resembleQuerySubmit() {
       this.activeName = "resembleQuery";
@@ -271,6 +448,64 @@
     getType(item) {
       return this.selfColumnType[item.sectype];
     },
+    getReferConfig(item) {
+      let params = {};
+      if (item.sectype == "codeclassifysec") {
+        params = {
+          isMuti: false,
+          type: "grid",
+          tableConfig: {
+            limit: -1,
+            cols: [
+              {
+                field: "id",
+                title: "鑻辨枃鍚嶇О",
+                sort: true,
+                width: 150,
+              },
+              {
+                field: "name",
+                title: "涓枃鍚嶇О",
+                sort: true,
+                width: 150,
+              },
+              {
+                field: "description",
+                title: "鎻忚堪",
+                width: 250,
+              },
+            ],
+            queryColumns: [
+              {
+                field: "id",
+                title: "鑻辨枃鍚嶇О",
+              },
+              {
+                field: "name",
+                title: "涓枃鍚嶇О",
+              },
+            ],
+          },
+          url: "api/ubcs-code/ubcs-code/mdmEngineController/listCodeClassifyValueBySecOid",
+          extraParams: {
+            classifySecOid: item.oid,
+            parentClassifyValueOid: "",
+          },
+        };
+      }
+      return item.referConfig || params;
+    },
+    getDisabled(item) {
+      if (item.sectype === "codeclassifysec") {
+        if (item.parentClassifySecOid) {
+          if (!this.form[item.parentClassifySecOid]) {
+            return true;
+          } else {
+            return false;
+          }
+        }
+      }
+    },
     isRequired(item) {
       return item.nullableFlag != "true";
     },
diff --git a/Source/UBCS-WEB/src/util/func.js b/Source/UBCS-WEB/src/util/func.js
index 12f731b..1a95b3b 100644
--- a/Source/UBCS-WEB/src/util/func.js
+++ b/Source/UBCS-WEB/src/util/func.js
@@ -110,4 +110,18 @@
   static isValuableObj(value) {
     return typeof value === 'object' && value !== null && Object.keys(value).length > 0;
   }
+  /**
+   * 鑾峰彇娴佹枃浠惰繘琛屾枃浠朵笅
+   * @param value
+   * @returns {Boolean}
+   */
+  static downloadFileByBlob(blobData, name) {
+    const url = URL.createObjectURL(blobData); // 鐢熸垚涓嬭浇閾炬帴
+    const link = document.createElement("a");
+    link.href = url;
+    link.download = name; // 鎸囧畾鏂囦欢鍚嶅拰鏍煎紡
+    document.body.appendChild(link); // 娣诲姞涓嬭浇閾炬帴鍒伴〉闈�
+    link.click(); // 瑙﹀彂涓嬭浇
+    document.body.removeChild(link); //鍒犻櫎涓嬭浇
+  }
 }
diff --git a/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue b/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue
index efffed5..1443fdc 100644
--- a/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue
+++ b/Source/UBCS-WEB/src/views/MasterData/FormTempalteTest.vue
@@ -26,6 +26,7 @@
       :visible="visible3"
       type="historyImport"
       :downloadTemplateFun="downloadTemplateFun"
+      :codeClassifyOid="codeClassifyOid"
     ></BatchImport>
     <fileInHtml :options="{}"></fileInHtml>
     <fileinDialog
@@ -53,9 +54,9 @@
       // 榛樿绂佺敤鐨勮〃鍏冪礌
       disabledProp: ["id", "lcstatus"],
       // 琛ㄥ崟绫诲瀷
-      type: "edit",
+      type: "add",
       templateOid: "f441b131-5ea0-4672-ab74-735b11161928",
-      codeClassifyOid: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96",
+      codeClassifyOid: "535FC9B6-FE27-241F-5FCA-ED4DC17CF95B",
       codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96",
       rowOid: "551FBA49-9A94-2F83-9126-9DD4F9BB14B5",
     };

--
Gitblit v1.9.3