From 33c8db885ab2b5117c064d064f6e7c7eb0357a1c Mon Sep 17 00:00:00 2001 From: fujunling <2984387807@qq.com> Date: 星期五, 02 六月 2023 16:24:54 +0800 Subject: [PATCH] 动态模块 --- Source/UBCS-WEB/src/components/FormTemplate/CodeApply.vue | 127 +++++++++++++++++++++++++++--------------- 1 files changed, 82 insertions(+), 45 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/CodeApply.vue b/Source/UBCS-WEB/src/components/FormTemplate/CodeApply.vue index 8b86bd3..242fbac 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/CodeApply.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/CodeApply.vue @@ -1,39 +1,85 @@ <template> - <div></div> + <FormTempalte + ref="FormTempalte" + :visible="visible" + :selfColumnType="selfColumnType" + :selfColumnConfig="selfColumnConfig" + :columnList="columnList" + ></FormTempalte> </template> <script> import { getCodeRule } from "@/api/formTemplate.js"; - +import FormTempalte from "./FormTempalte.vue"; export default { name: "CodeApply", + components: { FormTempalte }, props: { + visible: { + type: Boolean, + default: false + }, codeClassifyOid: { type: String, - default: '' - } + default: "", + }, }, data() { return { secVOList: [], formItems: [], - trendsSpan: 8 + trendsSpan: 8, + selfColumnType: { + codefixedsec: "combox", + codeclassifysec: "refer", + codevariablesec: "text", + coderefersec: "refer", + }, + selfColumnConfig: { + function: { + required: this.isRequired, + dicData: this.getOptionList, + type: this.getType, + }, + 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", + }, + }, + }, + columnList: [], }; }, created() { this.handleResize(); - this.getCodeRule(); }, - mounted() { - - }, + mounted() {}, methods: { + getType(item) { + return this.selfColumnType[item.sectype]; + }, getCodeRule() { getCodeRule({ codeClassifyOid: this.codeClassifyOid }).then((res) => { if (res.data && res.data.code === 200) { this.defaultValue = res.data.data; - this.secVOList = res.data.data.secVOList || []; + this.columnList = res.data.data.secVOList || []; + console.log(res.data.data.secVOList, 'res.data.data.secVOList'); this.codeRuleOid = res.data.data.oid; + this.$nextTick(() => { + this.$refs.FormTempalte.init(res.data.data.secVOList) + }) } }); }, @@ -41,43 +87,34 @@ let windowWidth = document.body.clientWidth; this.trendsSpan = 24 / Math.floor(windowWidth / 500); }, + 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 []; + } + }, }, watch: { - secVOList: { - deep: true, - handler(newV) { - this.formItems = []; - newV.forEach((item) => { - let itemObj = {}; - let options = []; - //鍥哄畾鐮佹 - if (item.sectype == "codefixedsec") { - options = item.fixedValueVOList.map((item) => { - item.key = item.id; - item.value = item.id; - }); - itemObj = { - field: item.oid, - title: item.name, - required: item.nullableFlag != "true", - type: "combox", - data: options, - search: true, - }; - //鍙彉鐮佹 - } else if (item.sectype == "codevariablesec") { - itemObj = { - field: item.oid, - title: item.name, - required: item.nullableFlag != "true", - type: "text", - }; - } - itemObj.span = item.type === "textarea" ? 24 : this.trendsSpan, - this.formItems.push(itemObj); - }); - }, - }, }, }; </script> -- Gitblit v1.9.3