From c6a54f63df671de4592e336b9b8cd8406d4e3b51 Mon Sep 17 00:00:00 2001 From: fujunling <2984387807@qq.com> Date: 星期五, 02 六月 2023 16:25:27 +0800 Subject: [PATCH] 解决动态模块冲突 --- Source/UBCS-WEB/src/components/FormTemplate/index.vue | 865 ++++++-------------------------------------------------- 1 files changed, 103 insertions(+), 762 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue index 739da06..23edc8f 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue @@ -3,684 +3,93 @@ :visible.sync="dialogVisible" v-dialogDrag top="0vh" - title="鎻愮ず" + :title="title" class="avue-dialog avue-dialog--top" - :width="dialogOptions.width" + :width="width" append-to-body + @opened="openDialog" > - <avue-form :option="option" v-loading="loading" ref="form"> - <template :slot="item.prop + 'Label'" v-for="item in option.column"> - <div> - <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> - </div> - </template> - </avue-form> - <div class="avue-dialog__footer"> + <FormTempalte + v-bind="$attrs" + :visible="visible" + :type="type" + v-if="dialogVisible" + ref="FormTempalte" + @getFormTemplateEnd="getFormTemplate" + @getFormData="getFormData" + ></FormTempalte> + + <div class="tab_box" v-if="type !== 'detail' && dialogVisible"> + <el-tabs v-model="activeName" type="card"> + <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply" v-if="showCodeApply"> + <CodeApply ref="CodeApply" v-bind="$attrs" @getCodeRuleOid="getCodeRuleOid"></CodeApply> + </el-tab-pane> + <el-tab-pane + label="鐩镐技椤规煡璇�" + name="resembleQuery" + v-if="showResembleQuery" + > + <ResembleQuery + v-bind="$attrs" + ref="resembleQueryRef" + :hasResemble="this.hasResemble" + :column="this.resembleTableColumn" + :form="this.form" + :codeRuleOid="codeRuleOid" + ></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">纭� 瀹�</el-button> + <el-button @click="close()" type="primary" :loading="submitBtnLoading" + >纭� 瀹�</el-button + > + <el-button @click="resembleQuerySubmit" type="primary" v-if="hasResemble" + >鐩镐技鍍忔煡璇�</el-button + > </div> </el-dialog> </template> <script> -import { getFormTemplate } from "../../api/common"; +import FormTempalte from "./FormTempalte"; +import ResembleQuery from "./ResembleQuery"; +import CodeApply from "./CodeApply"; export default { - name: "FormTemplate", + name: "FormTemplateDialog", + components: { ResembleQuery, FormTempalte, CodeApply }, props: { visible: { type: Boolean, default: false, }, + type: { + type: String, + default: "add", + }, + title: { + type: String, + default: "琛ㄥ崟妯℃澘", + }, + width: { + type: String, + default: "80%", + }, }, data() { return { loading: false, - dialogOptions: { - width: "60%", - }, - option: { - emptyBtn: false, - submitBtn: false, - labelWidth: "120", - column: [], - }, - templateData: {}, - columnType: { - text: "input", - combox: "select", - truefalse: "switch", - number: "number", - datetime: "datetime", - }, - testItems: [ - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "id", - hidden: true, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "浠e彿", - tooltips: "", - type: "text", - unique: false, - verify: "", - }, - { - comboxKey: "wupin${lcstatus}", - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "lcstatus", - 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: "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: "materialclassify_data", - customClass: null, - data: [ - { - attributes: {}, - key: "model_type", - value: "妯″瀷", - }, - { - attributes: {}, - key: "part_type", - value: "闆朵欢", - }, - ], - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "materialclassify", - 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: "secondfl", - 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: "thrifl", - 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: "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: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "瑙勬牸鍨嬪彿锛圕APP锛�", - 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, - referConfig: { - backPath: "", - displayTable: null, - height: null, - initSort: null, - loadType: "all", - mapFields: "", - method: "GET", - muti: false, - onlyLeaf: false, - paramForFormKey: "", - parentFieldName: null, - parentUsedField: null, - parentValue: null, - referContent: null, - referType: "appendix", - remoteSort: false, - tableConfig: { - cols: [ - { - align: "left", - colspan: 1, - comboxKey: null, - data: [], - dateFormate: null, - edit: null, - editConfig: null, - event: null, - field: "id", - fieldType: "text", - fixed: null, - hidden: false, - minWidth: null, - optionButtons: null, - optionField: false, - optionJsMap: null, - queryField: null, - referConfig: null, - rowspan: 1, - showField: null, - sort: true, - sortField: "id", - style: null, - templet: null, - title: "缂栧彿", - unresize: false, - width: 150, - }, - { - align: "left", - colspan: 1, - comboxKey: null, - data: [], - dateFormate: null, - edit: null, - editConfig: null, - event: null, - field: "name", - fieldType: "text", - fixed: null, - hidden: false, - minWidth: null, - optionButtons: null, - optionField: false, - optionJsMap: null, - queryField: null, - referConfig: null, - rowspan: 1, - showField: null, - sort: true, - sortField: "name", - style: null, - templet: null, - title: "鍚嶇О", - unresize: false, - width: 180, - }, - ], - oid: null, - page: { - limit: 15, - page: 1, - }, - queryColumns: [ - { - align: "left", - colspan: 1, - comboxKey: null, - data: [], - dateFormate: null, - edit: null, - editConfig: null, - event: null, - field: "id", - fieldType: "text", - fixed: null, - hidden: false, - minWidth: null, - optionButtons: null, - optionField: false, - optionJsMap: null, - queryField: null, - referConfig: null, - rowspan: 1, - showField: null, - sort: true, - sortField: "id", - style: null, - templet: null, - title: "缂栧彿", - unresize: false, - width: 150, - }, - { - align: "left", - colspan: 1, - comboxKey: null, - data: [], - dateFormate: null, - edit: null, - editConfig: null, - event: null, - field: "name", - fieldType: "text", - fixed: null, - hidden: false, - minWidth: null, - optionButtons: null, - optionField: false, - optionJsMap: null, - queryField: null, - referConfig: null, - rowspan: 1, - showField: null, - sort: true, - sortField: "name", - style: null, - templet: null, - title: "鍚嶇О", - unresize: false, - width: 180, - }, - ], - }, - textField: "name", - type: "default", - url: "", - useFormKey: "", - valueField: "oid", - where: { - materialname: "璁¢噺鍗曚綅", - }, - }, - required: false, - selectLibFlag: "", - showField: "jiliangdwname", - suffix: "", - text: "璁¢噺鍗曚綅", - tooltips: "", - type: "refer", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "chukufangshi", - 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: "beizhushuoming", - 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: "hesuanfenlei", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: { - backPath: "", - displayTable: null, - height: null, - initSort: null, - loadType: "all", - mapFields: "", - method: "GET", - muti: false, - onlyLeaf: false, - paramForFormKey: "", - parentFieldName: "PARENTCODECLASSIFYOID", - parentUsedField: "oid", - parentValue: - "\\IN(SELECT oid from PLATFORMBTM_CODECLASSIFY where id ='hesuanfenlei')", - referContent: null, - referType: "codeclassify", - remoteSort: false, - tableConfig: null, - textField: "name", - type: "tree", - url: "", - useFormKey: "", - valueField: "oid", - where: null, - }, - required: false, - selectLibFlag: "", - showField: "hesuanfenleiname", - suffix: "", - text: "鏍哥畻鍒嗙被", - tooltips: "", - type: "refer", - unique: false, - verify: "", - }, - { - comboxKey: "Eummaterialtype", - customClass: null, - data: null, - dateFormate: "", - defaultValue: "1001", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "materialtype", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "鐗╂枡绫诲瀷", - tooltips: "", - type: "combox", - unique: false, - verify: "", - }, - { - comboxKey: "myDataSecret", - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "secretgrade", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "secretGrade", - tooltips: "", - type: "combox", - unique: false, - verify: "", - }, - ], + submitBtnLoading: false, + hasResemble: false, + resembleTableColumn: [], + secVOList: [], + activeName: "resembleQuery", + codeRuleOid: '', + form: {} }; }, - created() { - this.preOrSufFixShow(); - }, + created() {}, computed: { dialogVisible: { get() { @@ -690,120 +99,48 @@ this.$emit("update:visible", val); }, }, + showCodeApply() { + if (this.type === "add") { + if (this.hasResemble && this.secVOList.length === 0) { + return false; + } + } else { + if (this.hasResemble) { + return false; + } + } + return true; + }, + showResembleQuery() { + return this.hasResemble; + }, }, methods: { - getFormTemplate() { - this.loading = true; - getFormTemplate({ - templateOid: "78B8C7C5-A042-0B96-FE6D-65421451782A", - codeClassifyOid: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96", - page: 1, - limit: 30, + openDialog() { + this.$nextTick(() => { + this.$refs.FormTempalte.init() + this.$refs.CodeApply.getCodeRule() }) - .then((res) => { - if (res.status === 200) { - this.templateData = res.data; - this.templateRender(); - } - this.loading = false; - console.log(res.data); - }) - .catch((err) => { - this.loading = false; - console.log(err); - }); - }, - templateRender() { - const items = this.testItems; - // const items = this.templateData.formDefineVO.items; - items.forEach((item) => { - // 闅愯棌琛ㄥ崟鍏冪礌 - if (item.hide) { - return; - } - // if (item.field === 'id' || item.field === 'lcstatus') { - // 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: item.field, - type: this.columnType[item.type], - dicData: this.getDictData(item.type, item.dicData), - disabled: 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: 1, - rules: [ - { - required: item.required, - message: `璇�${message}${item.text}`, - trigger, - }, - { - pattern: item.verify, - message: item.tooltips, - trigger, - }, - ], - props: { - label: "value", - value: "key", - }, - }; - console.log(this.$refs.form, "form"); - this.option.column.push(columnItem); - }); }, close() { this.dialogVisible = false; }, - // 鍓嶅悗缂� - 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; - } + getCodeRuleOid(data) { + this.codeRuleOid = data.oid + this.secVOList = data.secVOList }, - // 鑾峰彇瀛楀吀鏁版嵁 - getDictData(type, dicData) { - if (type === "truefalse") { - return [ - { - value: "鍚�", - key: 0, - }, - { - value: "鏄�", - key: 1, - }, - ]; - } else if (type === "combox") { - return dicData; - } - return []; + getFormTemplate(data) { + this.hasResemble = + data.resembleTableVO && + data.resembleTableVO.cols && + data.resembleTableVO.cols.length > 0; + this.resembleTableColumn = data.resembleTableVO.cols || []; }, - }, - watch: { - visible(newV) { - if (newV) { - this.getFormTemplate(); - } + getFormData(form) { + this.form = form + }, + resembleQuerySubmit() { + this.$refs.resembleQueryRef.resembleQuery(this.form); }, }, }; @@ -816,4 +153,8 @@ top: 2px; color: red; } +// 瑙e喅swich缁勪欢涓嶅瀭鐩村眳涓殑闂 +/deep/ .el-switch { + vertical-align: baseline; +} </style> -- Gitblit v1.9.3