From 52ffefd06e59cbd56c1a919972866592379cfed2 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期四, 21 九月 2023 11:27:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/components/FormTemplate/index.vue | 1146 +++++++++++++++++++++++---------------------------------- 1 files changed, 464 insertions(+), 682 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue index 6dc2619..886ce91 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue @@ -1,568 +1,216 @@ <template> <el-dialog :visible.sync="dialogVisible" + v-if="dialogVisible" v-dialogDrag - top="0vh" - title="鎻愮ず" + top="-5vh" class="avue-dialog avue-dialog--top" - :width="dialogOptions.width" + :title="title" + :width="width" append-to-body + @opened="openDialog" > - <avue-form - v-model="form" - :option="option" - v-loading="loading" - ref="form" - :key="index" + <FormTemplate + v-bind="$attrs" + :type="type" + :TreeValue="TreeValue" + :rowOid="rowOid" + :eventList="eventList" + :templateOid="templateOid" + v-if="dialogVisible" + ref="FormTemplate" + @getFormData="getFormData" + ></FormTemplate> + <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" v-if="dialogVisible"></FindLike> - <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-tabs v-model="activeName" type="border-card" @tab-click="handleClick"> + <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply" v-if="showCodeApply"> + <FormTemplate + v-bind="$attrs" + :type="type" + :selfColumnType="selfColumnType" + :selfColumnConfig="selfColumnConfig" + ref="CodeApply" + @getFormData="getCodeApplyFormData" + @referConfigDataUpdate="referConfigDataUpdate" + ></FormTemplate> + </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> + <template #footer> + <div class="" v-if="type !== 'detail'"> + <el-button @click="close()" size="small">鍙� 娑�</el-button> + <el-button + @click="submit()" + type="primary" + :loading="submitBtnLoading" + size="small" + >{{ submitText }}</el-button + > + <el-button + @click="resembleQuerySubmit" + type="primary" + size="small" + v-if="showResembleQuery" + >鐩镐技鍍忔煡璇�</el-button + > + </div> + </template> </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 FormTemplate from "./FormTemplate"; +import ResembleQuery from "./ResembleQuery"; export default { - name: "FormTemplate", - components: { FindLike }, + name: "FormTemplateDialog", + components: { ResembleQuery, FormTemplate }, props: { visible: { type: Boolean, default: false, }, - disabledProp: { - type: Array, - default: () => ["id"], - }, - templateOid: { - type: String, - default: "", - }, - codeClassifyOid: { + TreeValue:{ type: String, default: "", }, type: { type: String, - default: 'add' - } + default: "add", + }, + title: { + type: String, + default: "缂栫爜鐢宠", + }, + width: { + type: String, + default: "80%", + }, + rowOid: "", + codeClassifyOid: { + type: String, + default: "", + }, + templateOid: { + type: String, + default: "", + }, + submitText: { + type: String, + default: "纭� 瀹�", + }, + setForm: { + type: Object, + default: () => ({}), + }, }, data() { return { - index: 0, - form: {}, + eventList:[], + //鐮佸�肩殑绗簩绉嶅彧璇婚殣钘忔儏鍐� + codeValueApplyStatus:'', loading: false, - dialogOptions: { - width: "60%", + submitBtnLoading: false, + hasResemble: false, + resembleTableColumn: [], + secVOList: [], + form: {}, + codeApplyForm: {}, + activeName: "codeApply", + showCodeApply: false, + showResembleQuery: false, + selfColumnType: { + codefixedsec: "combox",//鍥哄畾鐮佹 + codeclassifysec: "refer",//鍒嗙被鐮佹 + codevariablesec: "text",//鍙彉鐮佹 + coderefersec: "refer",//寮曠敤鐮佹 + codeattrsec: "text", + codelevelsec: "text", + codedatesec: "date" }, - 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", + dateFormate: "codeDateFormatStr" + }, + 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: "", - }, + defaultKeys: [ + "oid", + "id", + "name", + "description", + "revisionoid", + "nameoid", + "btmname", + "lastr", + "firstr", + "lastv", + "firstv", + "creator", + "createtime", + "lastModifier", + "lastmodifytime", + "revisionrule", + "revisionseq", + "revisionvalue", + "versionrule", + "versionseq", + "versionvalue", + "lcstatus", + "ts", + "owner", + "checkinby", + "checkintime", + "checkoutby", + "checkouttime", + "copyfromversion", + "secretgrade", ], - submitBtnLoading: false + codeRuleOid: "", }; }, created() {}, @@ -577,167 +225,301 @@ }, }, 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.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; - } - if ( - item.type === "combox" && - item.comboxKey && - (!Array.isArray(item.dicData) || item.dicData.length === 0) - ) { - dictKeys.push({ dictKey: item.comboxKey, field: item.field }); - } - // 绂佺敤閮ㄥ垎灞炴�э紙澶栭儴浼犲�肩鐢ㄥ拰鍙傜収绂佺敤锛� - 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); - }, - 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", - }, - }; - 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 - } - }, - // 鍓嶅悗缂� - 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; + 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; + } else { + this.showResembleQuery = false; + } + this.$nextTick(() => { + this.$refs.FormTemplate.templateRender( + res.data.formDefineVO.items + ); + this.eventList=res.data.templateVO.attributes + // this.$refs.FormTemplate.$emit('eventList', res.data.templateVO.attributes); + if (Object.keys(this.setForm).length > 0) { + this.$refs.FormTemplate.form = this.setForm; } - return item; }); } + }) + .catch(() => { + this.loading = false; }); + }, + // 鑾峰彇鐮佸�肩敵璇锋暟鎹� + getCodeRule() { + let that = this; + getCodeRule({ codeClassifyOid: that.codeClassifyOid }).then((res) => { + if (res.data && res.data.code === 200) { + that.codeRuleOid = res.data.data.oid; + const typeList = [ + //灞炴�х爜娈� 鍙 + "codeattrsec", + //鍙彉鐮佹 + "codevariablesec", + //鍥哄畾鐮佹 + "codefixedsec", + //鍒嗙被鐮佹 + "codeclassifysec", + //鏃ユ湡鐮佹 鍙 + "codedatesec", + //寮曠敤鐮佹 + "coderefersec", + //灞傜骇鐮佹 鍙 + "codelevelsec", + //娴佹按鐮佹 闅愯棌 + ]; + that.secVOList = (res.data.data.secVOList || []).filter((item) => + typeList.includes(item.secType) + ); + if (that.secVOList.length > 0 && that.type === "add") { + that.showCodeApply = true; + that.activeName = "codeApply"; + that.$nextTick(() => { + that.$refs.CodeApply.templateRender(that.secVOList,this.TreeValue); + }); + } else { + that.showCodeApply = 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() + getFormData(form) { + this.form = form; + }, + getCodeApplyFormData(codeApplyForm) { + this.codeApplyForm = codeApplyForm; + }, + // 鍙傜収缁勪欢鏁版嵁鍙樻洿 + 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; + item.readOnly=false; + item.referConfig.extraParams.parentClassifyValueOid=data.value; + } + return item; + }); + this.$refs.CodeApply.templateRender(this.secVOList,this.TreeValue); + }, + resembleQuerySubmit() { + this.activeName = "resembleQuery"; + this.$refs.resembleQueryRef.resembleQuery(this.form); + }, + handleClick() { + if (this.activeName === "resembleQuery") { + this.resembleQuerySubmit(); + } + }, + async submit() { + // 杩涜琛ㄥ崟鏍¢獙 + const formValidate = await this.$refs.FormTemplate.validate(); + if (!formValidate) return; + let codeValidate = true; + // 杩涜鐮佸�肩敵璇锋牎楠� + // if (this.showCodeApply) { + // codeValidate = await this.$refs.CodeApply.validate(); + // if (!codeValidate) { + // this.activeName = "codeApply"; + // return false; + // } + // } + let resembleQueryList = []; + if (this.$refs.resembleQueryRef) { + // 杩涜鐩镐技椤规煡璇� + resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery( + this.form + ); + } + if (resembleQueryList.length > 0) { + await this.$confirm( + `璇ョ墿鏂欏凡鏈�${resembleQueryList.length}鏉$浉浼兼暟鎹紝鏄惁缁х画淇濆瓨锛焋, + "闇�瑕佹偍纭", + { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning", + } + ); + } + // 鎺掗櫎涓�浜涘瓧娈� + const noData = [ + "jiliangdwname", + "materialtypeText", + "morengongysname", + "$caigouwl", + "$xiaoshouwl", + "$shifoupihaoguanli", + "lcstatus_text", + "hesuanfenleiname", + "$kucunwl", + "oldcode", + "lastmodifier" + ]; + let resForm = {}; + const { defaultValue, formValue } = this.getDefaultValueAndFormValues( + this.form + ); + noData.forEach((item) => { + this.$delete(formValue, item); + }); + const keys = Object.keys(formValue); + keys.forEach((item, index) => { + keys.forEach((itm, idx) => { + if ((item === ('$' + itm)) && idx !== index) { + this.$delete(formValue, keys[index]); + } + }) + }); + + resForm.data = formValue; + resForm = Object.assign({}, resForm, defaultValue); + resForm.secDTOList = this.secVOList.map((item) => { + return { + secOid: item.oid, + secValue: this.codeApplyForm[item.oid], + }; + }); + resForm.codeClassifyOid = this.codeClassifyOid; + resForm.codeRuleOid = this.codeRuleOid; + resForm.templateOid = this.templateOid; + this.$emit("submit", resForm); + }, + getDefaultValueAndFormValues(form) { + let defaultValue = {}; + let formValue = {}; + for (const key in form) { + if (Object.hasOwnProperty.call(form, key)) { + const element = form[key]; + if (this.defaultKeys.includes(key)) { + defaultValue[key] = element; + } else { + formValue[key] = element; + } + } + } + return { + defaultValue, + formValue, + }; + }, + 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: item.parentClassifySecOid + ? this.codeApplyForm[item.parentClassifySecOid] + : "", + }, + }; + } else if (item.secType == "coderefersec") { + //寮曠敤鐮佹 + params = JSON.parse(item.referValueInfo); + } + return params; + }, + getDisabled(item) { + if (item.secType === "codeclassifysec") { + if (item.parentClassifySecOid) { + if (!this.codeApplyForm[item.parentClassifySecOid]) { + return true; + } else { + return false; + } + } + } + }, + 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