From ebef4e035f5c6a00b291cf50b01ff008fa655609 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期四, 21 三月 2024 13:46:17 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue | 271 ++++++++++++++++++------------------------------------ 1 files changed, 91 insertions(+), 180 deletions(-) diff --git a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue index 7bc8e9e..d3fcc57 100644 --- a/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue +++ b/Source/ProjectWeb/src/components/dynamic-components/dynamic-form.vue @@ -1,208 +1,119 @@ <template> - <basic-container> - <el-dialog v-if="dialogFormVisible" :visible.sync="dialogFormVisible" :title="title" append-to-body> - - </el-dialog> - </basic-container> + <div class="UI-dynamic" :id="'UI-dynamic-'+areasName+componentVO.oid"> + <avue-form v-model="form" :option="option"> + <template v-for="item in slotData" :slot="item.prop + 'Label'"> + <span> + <span>{{ item.label }} </span> + <el-tooltip + v-if="item.keyAttr" + class="item" + content="璇ュ睘鎬т负鍏抽敭灞炴��" + effect="dark" + placement="top-start" + > + <i class="el-icon-star-on" style="font-size: 17px !important; color: red;vertical-align: baseline;"></i> + </el-tooltip> + </span> + </template> + <template slot="menuForm"> + <dynamic-button type="form" :butttonList="componentVO.buttons" @buttonClick="buttonClick"></dynamic-button> + </template> + </avue-form> + </div> </template> <script> export default { name: "dynamic-form", - props:{ - componentVO:{ - type:Object, + props: { + componentVO: { + type: Object, default: {} }, inDialog: { type: Boolean, default: false }, - areasName:{ - type:String, - default:'' + areasName: { + type: String, + default: '' }, - sourceData:{ + sourceData: { //鑿滃崟婧愭暟鎹垨鑰呭脊绐楁椂鎸夐挳鎵�灞炲尯鍩熺殑涓婁竴鍖哄煙閫変腑鏁版嵁 - type:Object, + type: Object, default: {} }, - paramVOS:{ - type:Object, + paramVOS: { + type: Object, default: {} }, - visible:{ + isShow: { + //鎵�鍦ㄥ尯鍩熸槸鍚﹀凡鏄剧ず锛岄拡瀵箃ab鍜宑ollapse type: Boolean, - default: false, + default: true }, - title:{ - type:String - } }, data() { return { - formList: [ - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: null, - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "name", - hidden: false, - keyAttr: false, - prefix: null, - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "鍚嶇О", - tooltips: null, - type: "text", - unique: false, - verify: "" - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: null, - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "code", - hidden: false, - keyAttr: false, - prefix: null, - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "缂栫爜", - tooltips: null, - type: "text", - unique: false, - verify: "" - }, - { - comboxKey: "EnumReviewType", - customClass: null, - data: null, - dateFormate: null, - defaultValue: "department", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "reviewtype", - hidden: false, - keyAttr: false, - prefix: null, - readOnly: true, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "绫诲瀷", - tooltips: null, - type: "combox", - unique: false, - verify: "" - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: null, - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "content", - hidden: false, - keyAttr: false, - prefix: null, - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "澶囨敞", - tooltips: null, - type: "textarea", - unique: false, - verify: "" - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: null, - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "creator", - hidden: true, - keyAttr: false, - prefix: null, - readOnly: true, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "鍒涘缓浜�", - tooltips: null, - type: "text", - unique: false, - verify: "" - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "yyyy-MM-dd HH:mm:ss", - defaultValue: "", - displayExtension: "", - extendAttrMap: null, - extendAttrString: null, - field: "createtime", - hidden: true, - keyAttr: false, - prefix: null, - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: null, - showField: null, - suffix: null, - text: "鍒涘缓鏃堕棿", - tooltips: null, - type: "date", - unique: false, - verify: "" - } - ], + form: {}, } }, - computed:{ - dialogFormVisible: { - get() { - return this.visible; - }, - set(val) { - this.$emit("update:visible", val); - }, + mounted() { + // console.log('componentVO--',this.componentVO.tableDefineVO.cols[0]) + }, + computed: { + option() { + return { + submitBtn: false, + emptyBtn: false, + height: 300, + column: this.getColumnData(0) + } + }, + slotData() { + return this.getColumnData(0) + } + }, + methods: { + //杞寲鏁版嵁 + formColumn(formList) { + return formList.map(item => { + const typeValue = item.type === 'text' ? 'input' : item.type === 'combox' ? 'select' : item.type; + + return { + label: item.text, + prop: item.field, + type: typeValue, + value: item.defaultValue, + dicData: item.type === 'combox' ? item.dicData : item.dicUrl, + readonly: item.readOnly, + disabled: item.disabled, + labelSuffix: item.suffix, + suffixIcon: item.prefix, + placeholder: item.placeholder, + clearable: item.clearable, + tip: item.tooltips, + keyAttr: item.keyAttr, + rules: [{ + required: item.required, + message: `璇疯緭鍏�${item.text}!`, + trigger: "blur" + }] + }; + }); + }, + + //鏁版嵁鍒ょ┖ + getColumnData(index) { + if (this.componentVO && this.componentVO.tableDefineVO && this.componentVO.tableDefineVO.cols && this.componentVO.tableDefineVO.cols.length > 0) { + return this.formColumn(this.componentVO.tableDefineVO.cols[index]) + } else { + return null; + } + }, + + buttonClick(item) { + console.log(item.id) }, } } -- Gitblit v1.9.3