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/index.vue | 1131 ++++++++++++++++++++++++-----------------------------------
 1 files changed, 459 insertions(+), 672 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
index 189b7b1..a908408 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -1,573 +1,159 @@
 <template>
   <el-dialog
     :visible.sync="dialogVisible"
+    v-if="dialogVisible"
     v-dialogDrag
     top="0vh"
     :title="title"
     class="avue-dialog avue-dialog--top"
-    :width="dialogOptions.width"
+    :width="width"
     append-to-body
-    v-if="dialogVisible"
+    @opened="openDialog"
   >
-    <avue-form
-      v-model="form"
-      :option="option"
-      v-loading="loading"
-      ref="form"
-      :key="index"
+    <FormTempalte
+      v-bind="$attrs"
+      :visible="visible"
+      :type="type"
+      :rowOid="rowOid"
+      :templateOid="templateOid"
+      ref="FormTempalte"
+      @getFormData="getFormData"
+    ></FormTempalte>
+
+    <div
+      class="tab_box"
+      v-if="
+        type !== 'detail' &&
+        dialogVisible &&
+        (showCodeApply || showResembleQuery) &&
+        type !== 'preview'
+      "
     >
-      <template :slot="item.prop + 'Label'" v-for="item in option.column">
-        <span>
-          <span>{{ item.label }} </span>
-          <el-tooltip
-            v-if="item.keyAttr"
-            class="item"
-            effect="dark"
-            content="璇ュ睘鎬т负鍏抽敭灞炴��"
-            placement="top-start"
-          >
-            <i class="el-icon-star-on key_attr_icon"></i>
-          </el-tooltip>
-          <el-tooltip
-            v-if="item.tip"
-            class="item"
-            effect="dark"
-            :content="item.tip"
-            placement="top-start"
-          >
-            <i class="el-icon-warning"></i>
-          </el-tooltip>
-        </span>
-      </template>
-    </avue-form>
-    <FindLike ref="findLike"></FindLike>
+      <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
+        <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply">
+          <FormTempalte
+            v-bind="$attrs"
+            :type="type"
+            :selfColumnType="selfColumnType"
+            :selfColumnConfig="selfColumnConfig"
+            ref="CodeApply"
+            @getFormData="getFormData"
+            @referConfigDataUpdate="referConfigDataUpdate"
+          ></FormTempalte>
+        </el-tab-pane>
+        <el-tab-pane
+          label="鐩镐技椤规煡璇�"
+          name="resembleQuery"
+          v-if="showResembleQuery"
+        >
+          <ResembleQuery
+            v-bind="$attrs"
+            ref="resembleQueryRef"
+            :hasResemble="this.hasResemble"
+            :column="this.resembleTableColumn"
+            :codeClassifyOid="codeClassifyOid"
+            :form="this.form"
+            :templateOid="templateOid"
+          ></ResembleQuery>
+        </el-tab-pane>
+      </el-tabs>
+    </div>
     <div class="avue-dialog__footer" v-if="type !== 'detail'">
       <el-button @click="close()">鍙� 娑�</el-button>
-      <el-button @click="close()" type="primary" :loading="submitBtnLoading">纭� 瀹�</el-button>
-      <el-button @click="findLinkSubmit" type="primary">鐩镐技鍍忔煡璇�</el-button>
+      <el-button @click="submit()" type="primary" :loading="submitBtnLoading">{{
+        submitText
+      }}</el-button>
+      <el-button
+        @click="resembleQuerySubmit"
+        type="primary"
+        v-if="showResembleQuery"
+        >鐩镐技鍍忔煡璇�</el-button
+      >
     </div>
   </el-dialog>
 </template>
 
 <script>
-import { getFormTemplate, executeCode, findLike } from "@/api/formTemplate";
-import { getDictionary } from "../../api/system/dict";
-import FindLike from "./FindLike.vue";
+import { getCodeRule, getFormTemplate } from "@/api/formTemplate.js";
+import FormTempalte from "./FormTempalte";
+import ResembleQuery from "./ResembleQuery";
 export default {
-  name: "FormTemplate",
-  components: { FindLike },
+  name: "FormTemplateDialog",
+  components: { ResembleQuery, FormTempalte },
   props: {
     visible: {
       type: Boolean,
       default: false,
     },
-    disabledProp: {
-      type: Array,
-      default: () => ["id"],
+    type: {
+      type: String,
+      default: "add",
+    },
+    title: {
+      type: String,
+      default: "缂栫爜鐢宠",
+    },
+    width: {
+      type: String,
+      default: "80%",
+    },
+    rowOid: "",
+    codeClassifyOid: {
+      type: String,
+      default: "",
     },
     templateOid: {
       type: String,
       default: "",
     },
-    codeClassifyOid: {
+    submitText: {
       type: String,
-      default: "",
+      default: "纭� 瀹�",
     },
-    type: {
-      type: String,
-      default: 'add'
-    },
-    title: {
-      type: String,
-      default: '琛ㄥ崟妯℃澘'
-    }
   },
   data() {
     return {
-      index: 0,
-      form: {},
       loading: false,
-      dialogOptions: {
-        width: "60%",
+      submitBtnLoading: false,
+      hasResemble: false,
+      resembleTableColumn: [],
+      secVOList: [],
+      form: {},
+      activeName: "codeApply",
+      showCodeApply: true,
+      showResembleQuery: true,
+      selfColumnType: {
+        codefixedsec: "combox",
+        codeclassifysec: "refer",
+        codevariablesec: "text",
+        coderefersec: "refer",
       },
-      option: {
-        emptyBtn: false,
-        submitBtn: false,
-        labelWidth: "120",
-        column: [],
+      selfColumnConfig: {
+        function: {
+          required: this.isRequired,
+          dicData: this.getOptionList,
+          type: this.getType,
+          referConfig: this.getReferConfig,
+          readOnly: this.getDisabled,
+        },
+        exchange: {
+          text: "name",
+          field: "oid",
+          prop: "oid",
+          showField: "name",
+          parentClassifySecOid: "parentClassifySecOid",
+          label: "name",
+          maxlength: "codeSecLength",
+          data: "fixedValueVOList",
+        },
+        directVoluation: {
+          search: true,
+          props: {
+            label: "id",
+            value: "id",
+          },
+        },
       },
-      templateData: {},
-      columnType: {
-        text: "input",
-        combox: "select",
-        truefalse: "switch",
-        number: "number",
-        textarea: "textarea",
-        datetime: "datetime",
-        date: "date"
-      },
-      // 鍋囨暟鎹�
-      testItems: [
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "id",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "浼犲�肩鐢ㄥ姛鑳�",
-          tooltips: "",
-          type: "combox",
-          unique: false,
-          verify: "",
-        },
-        {
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "state",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: true,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "鎺ュ彛绂佺敤鍔熻兘",
-          tooltips: "",
-          type: "combox",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "oldcode",
-          hidden: false,
-          keyAttr: false,
-          prefix: "el-icon-search",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "鏂囨湰鍚庣紑娴嬭瘯",
-          text: "鍓嶅悗缂�鍔熻兘",
-          tooltips: "",
-          type: "text",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "materialname",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: true,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "姝e垯鏍¢獙鍔熻兘",
-          tooltips: "璇疯緭鍏ユ暟瀛�",
-          type: "text",
-          unique: false,
-          verify: "/[0-9]/",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: [
-            {
-              attributes: {},
-              key: "model_type",
-              value: "妯″瀷",
-            },
-            {
-              attributes: {},
-              key: "part_type",
-              value: "闆朵欢",
-            },
-          ],
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "dataSelect",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "鐩存帴杩斿洖涓嬫媺",
-          tooltips: "",
-          type: "combox",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: "formTemplateTest",
-          customClass: null,
-          data: [],
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "dictSelect",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "瀛楀吀杩斿洖涓嬫媺",
-          tooltips: "",
-          type: "combox",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "firstfl",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "鏁板瓧杈撳叆妗�",
-          tooltips: "",
-          type: "number",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "yyyy-MM-dd HH:mm:ss",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "datetime",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "鏃ユ湡鏃堕棿閫夋嫨鍣�",
-          tooltips: "",
-          type: "datetime",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "time",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "鏃堕棿閫夋嫨鍣�",
-          tooltips: "",
-          type: "date",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "false",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "xiaoshouwl",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "寮�鍏�",
-          tooltips: "",
-          type: "truefalse",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "鎴戞槸榛樿鍊�",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "tuhao",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "榛樿鍊煎姛鑳�",
-          tooltips: "鎻愮ず",
-          type: "text",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "xinghaoguige",
-          hidden: false,
-          keyAttr: true,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "灞炴�у叧閿��",
-          tooltips: "",
-          type: "text",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "jiliangdw",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          tip: "鎴戞槸鎻愮ず鍔熻兘",
-          required: false,
-          selectLibFlag: "",
-          showField: "jiliangdwname",
-          suffix: "",
-          text: "鎻愮ず鍔熻兘",
-          tooltips: "",
-          type: "text",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: "this.form.sum = this.form.fun1 + this.form.fun2",
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "fun1",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "鍙傛暟1娴嬭瘯js",
-          tooltips: "",
-          type: "text",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: "this.form.sum = this.form.fun1 + this.form.fun2",
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "fun2",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          required: false,
-          selectLibFlag: "",
-          showField: "hesuanfenleiname",
-          suffix: "",
-          text: "鍙傛暟2娴嬭瘯js",
-          tooltips: "",
-          type: "text",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: "",
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "sum",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: true,
-          required: false,
-          selectLibFlag: "",
-          showField: "",
-          suffix: "",
-          text: "鍙傛暟1鍙傛暟2姹傚拰",
-          tooltips: "",
-          type: "text",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "textarea",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: false,
-          referConfig: null,
-          required: false,
-          selectLibFlag: "",
-          showField: null,
-          suffix: "",
-          text: "鏂囨湰鍩�",
-          tooltips: "",
-          type: "textarea",
-          unique: false,
-          verify: "",
-        },
-        {
-          comboxKey: null,
-          customClass: null,
-          data: null,
-          dateFormate: "",
-          defaultValue: "",
-          displayExtension: null,
-          extendAttrMap: null,
-          extendAttrString: null,
-          field: "cz",
-          hidden: false,
-          keyAttr: false,
-          prefix: "",
-          readOnly: true,
-          referConfig: true,
-          required: false,
-          selectLibFlag: "",
-          showField: "depId",
-          suffix: "",
-          text: "鍙傜収",
-          tooltips: "",
-          type: "text",
-          unique: false,
-          verify: "",
-        },
-      ],
-      submitBtnLoading: false
     };
   },
   created() {},
@@ -582,167 +168,368 @@
     },
   },
   methods: {
+    openDialog() {
+      this.getFormTemplate();
+      if (this.type === "add") {
+        this.getCodeRule();
+      }
+    },
+    close() {
+      this.dialogVisible = false;
+    },
+    // 鎺ュ彛鑾峰彇琛ㄥ崟鏁版嵁
     getFormTemplate() {
-      this.loading = true;
       getFormTemplate({
         templateOid: this.templateOid,
         codeClassifyOid: this.codeClassifyOid,
       })
         .then((res) => {
           if (res.status === 200) {
-            this.templateData = res.data;
-            this.templateRender();
+            this.hasResemble =
+              res.data.resembleTableVO &&
+              res.data.resembleTableVO.cols &&
+              res.data.resembleTableVO.cols.length > 0;
+            this.resembleTableColumn = res.data.resembleTableVO.cols || [];
+            if (this.hasResemble) {
+              this.activeName = "resembleQuery";
+              this.showResembleQuery = true;
+            }
+            this.$refs.FormTempalte.templateRender(res.data.formDefineVO.items);
           }
-          this.loading = false;
-          console.log(res.data);
         })
         .catch((err) => {
           this.loading = false;
           console.log(err);
         });
     },
-    templateRender() {
-      const items = this.templateData.formDefineVO.items;
-      let column = [];
-      let dictKeys = [];
-      items.forEach((item) => {
-        // 闅愯棌琛ㄥ崟鍏冪礌
-        if (item.hide) {
-          return;
+    // 鑾峰彇鐮佸�肩敵璇锋暟鎹�
+    getCodeRule() {
+      getCodeRule({ codeClassifyOid: this.codeClassifyOid }).then((res) => {
+        if (res.data && res.data.code === 200) {
+          const typeList = [
+            "codefixedsec",
+            "codeclassifysec",
+            "codevariablesec",
+            "coderefersec",
+          ];
+
+          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";
+              this.$refs.CodeApply.templateRender(this.secVOList);
+            } else {
+              this.showCodeApply = false;
+            }
+          });
         }
-        if (
-          item.type === "combox" &&
-          item.comboxKey &&
-          (!Array.isArray(item.dicData) || item.dicData.length === 0)
-        ) {
-          dictKeys.push({ dictKey: item.comboxKey, field: item.field });
+      });
+    },
+    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;
         }
-        // 绂佺敤閮ㄥ垎灞炴�э紙澶栭儴浼犲�肩鐢ㄥ拰鍙傜収绂佺敤锛�
-        if (this.disabledProp.includes(item.field) || this.$utilFunc.isValuableObj(item.referConfig)) {
-          item.readOnly = true;
-        }
-        // 璁剧疆琛ㄥ崟鏍¢獙鐨勮鍒欙紝鏂囨湰
-        let message = "璇烽�夋嫨";
-        let trigger = "change";
-        if (item.type === "text") {
-          message = "璇疯緭鍏�";
-          trigger = "blur";
-        } else if (item.type === "file") {
-          message = "璇蜂笂浼�";
-        }
-        let columnItem = {
-          label: item.text,
-          labelslot: true,
-          prop: this.$utilFunc.isValuableObj(item.referConfig) ? (item.showField || item.field) : item.field,
-          type: this.columnType[item.type],
-          dicData: this.getDataList(item.type, item.data),
-          disabled: this.type === 'detail' ? true : item.readOnly,
-          prepend: this.preOrSufFixShow("text", item.prefix),
-          append: this.preOrSufFixShow("text", item.suffix),
-          prefixIcon: this.preOrSufFixShow("icon", item.prefix),
-          suffixIcon: this.preOrSufFixShow("icon", item.suffix),
-          valueFormat: item.dateFormate,
-          format: item.dateFormate,
-          keyAttr: item.keyAttr,
-          value: item.defaultValue,
-          tip: item.tip,
-          comboxKey: item.comboxKey,
-          change: () => {
-            this.changeFun(item.displayExtension, item.prop);
+      });
+      this.$refs.CodeApply.templateRender();
+    },
+    resembleQuerySubmit() {
+      this.activeName = "resembleQuery";
+      this.$refs.resembleQueryRef.resembleQuery(this.form);
+    },
+    handleClick() {
+      if (this.activeName === "resembleQuery") {
+        this.resembleQuerySubmit();
+      }
+    },
+    async submit() {
+      // 杩涜琛ㄥ崟鏍¢獙
+      const formValidate = await this.$refs.FormTempalte.validate();
+      if (!formValidate) return;
+      let codeValidate = true;
+      // 杩涜鐮佸�肩敵璇锋牎楠�
+      if (this.showCodeApply) {
+        codeValidate = await this.$refs.codeApply.validate();
+        if (!codeValidate) return;
+      }
+      // 杩涜鐩镐技椤规煡璇�
+      const resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery(
+        this.form
+      );
+      if (resembleQueryList.length === 0) {
+        this.$emit("submit", this.form);
+      } else {
+        this.$confirm(
+          `璇ョ墿鏂欏凡鏈�${resembleQueryList.length}鏉$浉浼兼暟鎹紝鏄惁缁х画淇濆瓨锛焋,
+          "闇�瑕佹偍纭",
+          {
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+            type: "warning",
+          }
+        )
+          .then(() => {
+            this.$emit("submit", this.form);
+          })
+          .catch(() => {});
+      }
+    },
+    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: "涓枃鍚嶇О",
+              },
+            ],
           },
-          span: item.type === "file" || item.type === "textarea" ? 24 : null,
-          click: this.clickFun(item.referConfig),
-          rules: [
-            {
-              required: item.required,
-              message: `璇�${message}${item.text}`,
-              trigger,
-            },
-            {
-              // 濡傛灉娌℃湁姝e垯鍒欏尮閰嶄换浣曞瓧绗�
-              pattern: item.verify ? item.verify : /[\s\S.]*/g,
-              message: item.tooltips,
-              trigger,
-            },
-          ],
-          props: {
-            label: "value",
-            value: "key",
+          url: "api/ubcs-code/ubcs-code/mdmEngineController/listCodeClassifyValueBySecOid",
+          extraParams: {
+            classifySecOid: item.oid,
+            parentClassifyValueOid: "",
           },
         };
-        column.push(columnItem);
-        this.$set(this.option, "column", column);
-      });
-      this.index++;
-      this.geDictData(dictKeys);
-    },
-    changeFun(displayExtension, prop) {
-      // executeCode({displayExtension, data: this.form}).then(res => {
-      //   this.form[prop] = res.data.data
-      // })
-    },
-    clickFun(referConfig) {
-      if (this.type === 'detail') {
-        return
       }
+      return item.referConfig || params;
     },
-    // 鍓嶅悗缂�
-    preOrSufFixShow(type, val) {
-      if (this.$utilFunc.isEmpty(val) && typeof val !== "string") return;
-      const isIcon = val.slice(0, 8) === "el-icon-";
-      if ((type === "text" && !isIcon) || (type === "icon" && isIcon)) {
-        return val;
-      }
-    },
-    // 鑾峰彇swich鍜屽凡鎷垮埌鐨勪笅鎷夋暟鎹�
-    getDataList(type, dicData) {
-      if (type === "truefalse") {
-        return [
-          {
-            key: false,
-            value: "鍚�",
-          },
-          {
-            key: true,
-            value: "鏄�",
-          },
-        ];
-      } else if (type === "combox") {
-        return dicData;
-      }
-      return [];
-    },
-    // 鑾峰彇瀛楀吀鏁版嵁
-    geDictData(dictKeys) {
-      dictKeys.forEach((dictObj) => {
-        getDictionary({ code: dictObj.dictKey }).then((res) => {
-          if (res.data && res.data.code === 200) {
-            this.option.column = this.option.column.map((item) => {
-              if (item.field === dictObj.field) {
-                let dictData = (res.data.data || []).map((itm) => {
-                  itm.value = itm.dictValue;
-                  itm.key = itm.dictKey;
-                  return itm;
-                });
-                item.dicData = dictData;
-              }
-              return item;
-            });
+    getDisabled(item) {
+      if (item.sectype === "codeclassifysec") {
+        if (item.parentClassifySecOid) {
+          if (!this.form[item.parentClassifySecOid]) {
+            return true;
+          } else {
+            return false;
           }
-        });
-      });
+        }
+      }
     },
-    findLinkSubmit() {
-      this.templateData.templateVO.data = this.form
-      console.log(this.$refs.findLike, 'this.$refs.findLike');
-      this.$refs.findLike.findLinkClick(this.templateData.templateVO)
-    }
-  },
-  watch: {
-    visible(newV) {
-      if (newV) {
-        this.getFormTemplate();
-        // this.templateRender()
+    isRequired(item) {
+      return item.nullableFlag != "true";
+    },
+    getOptionList(item) {
+      if (
+        Array.isArray(item.fixedValueVOList) &&
+        item.fixedValueVOList.length > 0
+      ) {
+        const configAttr = {
+          key: "id",
+          value: "id",
+        };
+        const optionList = item.fixedValueVOList.map((item) => {
+          for (const key in configAttr) {
+            if (Object.hasOwnProperty.call(configAttr, key)) {
+              const element = configAttr[key];
+              item[key] = item[element];
+            }
+          }
+          return item;
+        });
+        return optionList;
+      } else {
+        return [];
       }
     },
   },

--
Gitblit v1.9.3