From e9552e9a17bded2d96ce29a6eb3eaf5614748e44 Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期五, 02 六月 2023 16:18:09 +0800 Subject: [PATCH] 修改表单模板中的参照展示 --- Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue | 1535 +++++++++++++++++++++++++++++----------------------------- Source/UBCS-WEB/src/components/refer/vciWebRefer.vue | 1 2 files changed, 774 insertions(+), 762 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue index b827c1f..000b5ab 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue @@ -1,762 +1,773 @@ -<template> - <avue-form v-model="form" :option="option" v-loading="loading" ref="form"> - <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> - </span> - </template> - </avue-form> -</template> - -<script> -import { getFormTemplate } from "@/api/formTemplate"; -import { getDictionary } from "../../api/system/dict"; -export default { - name: "FormTemplate", - props: { - disabledProp: { - type: Array, - default: () => ["id"], - }, - templateOid: { - type: String, - default: "", - }, - codeClassifyOid: { - type: String, - default: "", - }, - editForm: { - type: Object, - default: () => ({}), - }, - type: { - type: String, - default: "add", - }, - dialogOpen: { - type: Boolean, - default: false, - }, - selfColumnType: { - type: Object, - default: () => ({}), - }, - selfColumnConfig: { - type: Object, - default: () => ({}), - }, - }, - data() { - return { - formIndex: 0, - form: {}, - option: { - emptyBtn: false, - submitBtn: false, - labelWidth: "130", - column: [], - group: [], - }, - loading: false, - 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: "", - }, - ], - trendsSpan: 8, - defaultValue: {}, - // 琛ㄥ崟灞炴�� - attributes: [], - // 琛ㄥ崟鍏冪礌 - items: [], - }; - }, - mounted() { - this.handleResize(); - }, - methods: { - getFormTemplate() { - this.loading = true; - getFormTemplate({ - templateOid: this.templateOid, - codeClassifyOid: this.codeClassifyOid, - }) - .then((res) => { - if (res.status === 200) { - this.templateData = res.data; - // 琛ㄥ崟鍏冪礌锛堣繃婊ら渶瑕侀殣钘忕殑灞炴�э級 - this.items = res.data.formDefineVO.items; - this.templateRender(); - this.$emit("getFormTemplateEnd", res.data); - } - this.loading = false; - }) - .catch((err) => { - this.loading = false; - console.log(err); - }); - }, - templateRender() { - // 鏃犻渶鍒嗙粍鏁版嵁 - let column = []; - let group = []; - let dictKeys = []; - this.items.forEach((formItem) => { - if (formItem.type === "line") { - group.push({ - label: formItem.text, - prop: formItem.text, - collapse: true, - column: [], - }); - } - if ( - formItem.type === "combox" && - formItem.comboxKey && - (!Array.isArray(formItem.dicData) || formItem.dicData.length === 0) - ) { - dictKeys.push({ dictKey: formItem.comboxKey, field: formItem.field }); - } - // 绂佺敤閮ㄥ垎灞炴�э紙澶栭儴浼犲�肩鐢ㄥ拰鍙傜収绂佺敤锛� - if ( - this.disabledProp.includes(formItem.field) || - this.$utilFunc.isValuableObj(formItem.referConfig) - ) { - formItem.readOnly = true; - } - // 璁剧疆琛ㄥ崟鏍¢獙鐨勮鍒欙紝鏂囨湰 - let message = "璇烽�夋嫨"; - let trigger = "change"; - if (formItem.type === "text") { - message = "璇疯緭鍏�"; - trigger = "blur"; - } else if (formItem.type === "file") { - message = "璇蜂笂浼�"; - } - let columnItem = { - label: formItem.text, - labelslot: true, - prop: this.$utilFunc.isValuableObj(formItem.referConfig) - ? formItem.showField || formItem.field - : formItem.field, - field: formItem.field, - type: this.columnType[formItem.type], - dicData: this.getDataList(formItem.type, formItem.data), - disabled: this.type === "detail" ? true : formItem.readOnly, - prepend: this.preOrSufFixShow("text", formItem.prefix), - append: this.preOrSufFixShow("text", formItem.suffix), - prefixIcon: this.preOrSufFixShow("icon", formItem.prefix), - suffixIcon: this.preOrSufFixShow("icon", formItem.suffix), - valueFormat: formItem.dateFormate, - format: formItem.dateFormate, - keyAttr: formItem.keyAttr, - value: formItem.defaultValue, - tip: formItem.tooltips, - tipPlacement: "right", - comboxKey: formItem.comboxKey, - display: !formItem.hidden, - filterable: true, - change: () => { - this.changeFun(formItem.displayExtension, formItem.prop); - }, - span: formItem.type === "textarea" ? 24 : this.trendsSpan, - click: this.clickFun(formItem.referConfig), - rules: [ - { - required: formItem.required, - message: `璇�${message}${formItem.text}`, - trigger, - }, - { - // 濡傛灉娌℃湁姝e垯鍒欏尮閰嶄换浣曞瓧绗� - pattern: formItem.verify ? formItem.verify : /[\s\S.]*/g, - message: formItem.tooltips, - trigger, - }, - ], - props: { - label: "value", - value: "key", - }, - }; - columnItem = this.resetFormConfig(columnItem); - if (group.length === 0) { - column.push(columnItem); - } else { - group[group.length - 1]["column"].push(columnItem); - } - }); - this.$set(this.option, "column", column); - this.$set(this.option, "group", group); - this.formIndex++; - this.geDictData(dictKeys); - }, - // 浣跨敤浼犲叆鐨勮〃鍗曟暟鎹厤缃� - resetFormConfig(formItem) { - for (const key in this.selfColumnConfig) { - if (Object.hasOwnProperty.call(this.selfColumnConfig, key)) { - const element = this.selfColumnConfig[key]; - formItem[key] = element; - } - } - return formItem; - }, - handleResize() { - let windowWidth = document.body.clientWidth; - this.trendsSpan = 24 / Math.floor(windowWidth / 500); - this.formIndex++; - }, - // 鍓嶅悗缂� - 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; - } - }, - changeFun(displayExtension, prop) { - // executeCode({displayExtension, data: this.form}).then(res => { - // this.form[prop] = res.data.data - // }) - }, - clickFun(referConfig) { - if (this.type === "detail") { - return; - } - }, - // 鑾峰彇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; - }); - } - }); - }); - }, - }, - watch: { - dialogOpen: { - immediate: true, - handler(newV) { - if (newV) { - this.getFormTemplate(); - } - }, - }, - form: { - deep: true, - immediate: true, - handler(newV) { - this.$emit("getFormData", newV); - }, - }, - }, -}; -</script> - -<style lang="less" scoped></style> +<template> + <avue-form v-model="form" :option="option" v-loading="loading" ref="form"> + <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> + </span> + </template> + <template :slot="groupItem.prop + ''" v-for="groupItem in option.group"> + <template :slot="item.prop + ''" v-for="item in groupItem.column"> + <span>1111</span> + <vciWebRefer v-if="item.type=='refer'" :value="item.value" :options="item.referConfig"></vciWebRefer> + </template> + + </template> + </avue-form> +</template> + +<script> +import { getFormTemplate } from "@/api/formTemplate"; +import { getDictionary } from "../../api/system/dict"; +import vciWebRefer from "../refer/vciWebRefer.vue"; +export default { + name: "FormTemplate", + components: { vciWebRefer}, + props: { + disabledProp: { + type: Array, + default: () => ["id"], + }, + templateOid: { + type: String, + default: "", + }, + codeClassifyOid: { + type: String, + default: "", + }, + editForm: { + type: Object, + default: () => ({}), + }, + type: { + type: String, + default: "add", + }, + dialogOpen: { + type: Boolean, + default: false, + }, + selfColumnType: { + type: Object, + default: () => ({}), + }, + selfColumnConfig: { + type: Object, + default: () => ({}), + }, + }, + data() { + return { + formIndex: 0, + form: {}, + option: { + emptyBtn: false, + submitBtn: false, + labelWidth: "130", + column: [], + group: [], + }, + loading: false, + templateData: {}, + columnType: { + text: "input", + combox: "select", + truefalse: "switch", + number: "number", + textarea: "textarea", + datetime: "datetime", + date: "date", + refer:"refer" + }, + // 鍋囨暟鎹� + 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: "", + }, + ], + trendsSpan: 8, + defaultValue: {}, + // 琛ㄥ崟灞炴�� + attributes: [], + // 琛ㄥ崟鍏冪礌 + items: [], + }; + }, + mounted() { + this.handleResize(); + }, + methods: { + getFormTemplate() { + this.loading = true; + getFormTemplate({ + templateOid: this.templateOid, + codeClassifyOid: this.codeClassifyOid, + }) + .then((res) => { + if (res.status === 200) { + this.templateData = res.data; + // 琛ㄥ崟鍏冪礌锛堣繃婊ら渶瑕侀殣钘忕殑灞炴�э級 + this.items = res.data.formDefineVO.items; + this.templateRender(); + this.$emit("getFormTemplateEnd", res.data); + } + this.loading = false; + }) + .catch((err) => { + this.loading = false; + console.log(err); + }); + }, + templateRender() { + // 鏃犻渶鍒嗙粍鏁版嵁 + let column = []; + let group = []; + let dictKeys = []; + this.items.forEach((formItem) => { + if (formItem.type === "line") { + group.push({ + label: formItem.text, + prop: formItem.text, + collapse: true, + column: [], + }); + } + if ( + formItem.type === "combox" && + formItem.comboxKey && + (!Array.isArray(formItem.dicData) || formItem.dicData.length === 0) + ) { + dictKeys.push({ dictKey: formItem.comboxKey, field: formItem.field }); + } + // 绂佺敤閮ㄥ垎灞炴�э紙澶栭儴浼犲�肩鐢ㄥ拰鍙傜収绂佺敤锛� + if ( + this.disabledProp.includes(formItem.field) //|| + //this.$utilFunc.isValuableObj(formItem.referConfig) + ) { + formItem.readOnly = true; + } + // 璁剧疆琛ㄥ崟鏍¢獙鐨勮鍒欙紝鏂囨湰 + let message = "璇烽�夋嫨"; + let trigger = "change"; + if (formItem.type === "text") { + message = "璇疯緭鍏�"; + trigger = "blur"; + } else if (formItem.type === "file") { + message = "璇蜂笂浼�"; + } + let columnItem = { + label: formItem.text, + labelslot: true, + prop: this.$utilFunc.isValuableObj(formItem.referConfig) + ? formItem.showField || formItem.field + : formItem.field, + field: formItem.field, + type: this.columnType[formItem.type], + dicData: this.getDataList(formItem.type, formItem.data), + disabled: this.type === "detail" ? true : formItem.readOnly, + prepend: this.preOrSufFixShow("text", formItem.prefix), + append: this.preOrSufFixShow("text", formItem.suffix), + prefixIcon: this.preOrSufFixShow("icon", formItem.prefix), + suffixIcon: this.preOrSufFixShow("icon", formItem.suffix), + valueFormat: formItem.dateFormate, + format: formItem.dateFormate, + keyAttr: formItem.keyAttr, + value: formItem.defaultValue, + tip: formItem.tooltips, + tipPlacement: "right", + comboxKey: formItem.comboxKey, + display: !formItem.hidden, + filterable: true, + referConfig:formItem.referConfig, + change: () => { + this.changeFun(formItem.displayExtension, formItem.prop); + }, + span: formItem.type === "textarea" ? 24 : this.trendsSpan, + click: this.clickFun(formItem.referConfig), + rules: [ + { + required: formItem.required, + message: `璇�${message}${formItem.text}`, + trigger, + }, + { + // 濡傛灉娌℃湁姝e垯鍒欏尮閰嶄换浣曞瓧绗� + pattern: formItem.verify ? formItem.verify : /[\s\S.]*/g, + message: formItem.tooltips, + trigger, + }, + ], + props: { + label: "value", + value: "key", + }, + }; + columnItem = this.resetFormConfig(columnItem); + if (group.length === 0) { + column.push(columnItem); + } else { + group[group.length - 1]["column"].push(columnItem); + } + }); + this.$set(this.option, "column", column); + this.$set(this.option, "group", group); + this.formIndex++; + this.geDictData(dictKeys); + }, + // 浣跨敤浼犲叆鐨勮〃鍗曟暟鎹厤缃� + resetFormConfig(formItem) { + for (const key in this.selfColumnConfig) { + if (Object.hasOwnProperty.call(this.selfColumnConfig, key)) { + const element = this.selfColumnConfig[key]; + formItem[key] = element; + } + } + return formItem; + }, + handleResize() { + let windowWidth = document.body.clientWidth; + this.trendsSpan = 24 / Math.floor(windowWidth / 500); + this.formIndex++; + }, + // 鍓嶅悗缂� + 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; + } + }, + changeFun(displayExtension, prop) { + // executeCode({displayExtension, data: this.form}).then(res => { + // this.form[prop] = res.data.data + // }) + }, + clickFun(referConfig) { + if (this.type === "detail") { + return; + } + }, + // 鑾峰彇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; + }); + } + }); + }); + }, + }, + watch: { + dialogOpen: { + immediate: true, + handler(newV) { + if (newV) { + this.getFormTemplate(); + } + }, + }, + form: { + deep: true, + immediate: true, + handler(newV) { + this.$emit("getFormData", newV); + }, + }, + }, +}; +</script> + +<style lang="less" scoped></style> diff --git a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue index 9d6f311..90e7944 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue +++ b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue @@ -18,6 +18,7 @@ }; }, created() { + console.log(this.refertype) if(this.refertype=='tree'){ console.log('referConfig:') console.log(this.options) -- Gitblit v1.9.3