From e5748ecbc12ea91d702e61af9a19667d19d19510 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期一, 29 五月 2023 17:55:16 +0800 Subject: [PATCH] 动态表格组件更新 --- Source/UBCS-WEB/src/views/modeling/original.vue | 553 ++++++++++++++---------------------------------------- 1 files changed, 146 insertions(+), 407 deletions(-) diff --git a/Source/UBCS-WEB/src/views/modeling/original.vue b/Source/UBCS-WEB/src/views/modeling/original.vue index fe46d55..9757875 100644 --- a/Source/UBCS-WEB/src/views/modeling/original.vue +++ b/Source/UBCS-WEB/src/views/modeling/original.vue @@ -2,22 +2,30 @@ <el-container> <el-main> <basic-container> - <avue-crud v-model="form" :option="option" :data="data" ref="crud" @on-load="onLoad" @row-save="rowSave" - @row-update="rowUpdate" :before-open="beforeOpen" @row-del="rowDel" :page.sync="page" - @refresh-change="refreshChange" @row-click="rowClick" - @selection-change="selectChange"> - <template slot-scope="{row,index,type}" slot="selInputForm"> - <div style="margin-left: 75px"> - <el-input v-model="form.text" :size="size" style="width: 210px" :readonly="true" @focus="selectBtmType" :disabled="referType.disable"></el-input> - </div> - </template> - <template slot="radio" - slot-scope="{row}"> - <el-radio v-model="selectRow" - :label="row.$index"> - </el-radio> + <avue-crud v-model="form" + ref="crud" + :option="option" + :data="data" + @on-load="onLoad" + :page.sync="page" + @refresh-change="refreshChange" + @row-click="rowClick"> + <template slot="radio" + slot-scope="{row}"> + <el-radio v-model="selectRow" + :label="row.$index"> + </el-radio> </template> + <template slot="menu"> + <el-button icon="el-icon-edit" size="small" type="text" @click="updateSave">缂栬緫</el-button> + <el-button icon="el-icon-delete" size="small" type="text" @click="deleteSave">鍒犻櫎</el-button> + </template> <template slot="menuLeft"> + <el-button size="small" + type="primary" + icon="el-icon-plus" + @click="addSave">鏂� 澧� + </el-button> <el-button size="small" plain type="primary" @@ -31,76 +39,105 @@ <avue-crud v-model="applyRange.model" :option="applyRange.option" :data="applyRange.data" class="applyRangeTable" ></avue-crud> </el-dialog> - <el-dialog :visible.sync="referType.display" append-to-body :title="referType.title" width="1000px"> - <original-range @rowchange="rowchange"></original-range> - <span slot="footer" class="dialog-footer"> - <el-button @click="dialoghandelfalse">鍙� 娑�</el-button> - <el-button type="primary" @click="dialoghandeltrue">纭� 瀹�</el-button> - </span> - </el-dialog> - <!-- <el-dialog :visible.sync="packageLinkBox" append-to-body title="鏌ョ湅閾炬帴绫诲瀷" width="1000px"> - <original-link @rowLinkchange="rowLinkchange"></original-link> - <span slot="footer" class="dialog-footer"> - <el-button @click="Linkdialoghandelfalse">鍙� 娑�</el-button> - <el-button type="primary" @click="Linkdialoghandeltrue">纭� 瀹�</el-button> - </span> - </el-dialog> --> </basic-container> </el-main> <el-aside> <basic-container class="itemForm"> - <el-tabs v-model="activeName" @tab-click="handleClick"> - <el-tab-pane label="灞炴�ч」" name="attrTab"> - <el-form ref="form" :model="itemData" label-width="80px" style="height: 656px;"> - <el-form-item label="灞炴�х紪鐮�"> - <el-input v-model="itemData.id" :disabled="true"></el-input> - </el-form-item> - <el-form-item label="灞炴�у悕绉�"> - <el-input v-model="itemData.name" :disabled="true"></el-input> - </el-form-item> - <el-form-item label="灞炴�х被鍨�"> - <el-input v-model="itemData.typeValue" :disabled="true"></el-input> - </el-form-item> - <el-form-item label="鏍囩"> - <el-input v-model="itemData.hashtag" :disabled="true"></el-input> - </el-form-item> - <el-form-item label="榛樿鍊�"> - <el-input v-model="itemData.defaultValue" :disabled="true"></el-input> - </el-form-item> - <el-form-item label="鍏佽涓虹┖"> - <el-switch v-model="itemData.nullable" :disabled="true"></el-switch> - </el-form-item> - <el-form-item label="闀垮害"> - <el-input v-model="itemData.maxLength" :disabled="true"></el-input> - </el-form-item> - <el-form-item label="鎻忚堪"> - <el-input v-model="itemData.description" :disabled="true"></el-input> - </el-form-item> - </el-form> - </el-tab-pane> - <el-tab-pane label="鍙傜収" name="valueTab"> - <el-form ref="form" :model="itemData" label-width="80px" style="height: 656px;"> - <el-form-item label="鍙傜収绫诲瀷"> - <el-input v-model="itemData.referTypeValue" :disabled="true"></el-input> - </el-form-item> - <el-form-item label="鍙傜収鍚嶇О"> - <el-input v-model="itemData.referToName" :disabled="true"></el-input> - </el-form-item> - </el-form> + <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч」"> + <el-descriptions-item> + <template slot="label"> + 灞炴�х紪鍙� + </template> + {{ itemForm.itemData.id }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 灞炴�у悕绉� + </template> + {{ itemForm.itemData.name }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 灞炴�х被鍨� + </template> + {{ itemForm.itemData.typeValue }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鏍囩 + </template> + {{ itemForm.itemData.hashtag }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 榛樿鍊� + </template> + {{ itemForm.itemData.defaultValue }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鍏佽涓虹┖ + </template> + {{ itemForm.itemData.nullable }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 闀垮害 + </template> + {{ itemForm.itemData.maxLength }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鎻忚堪 + </template> + {{ itemForm.itemData.description }} + </el-descriptions-item> + </el-descriptions> + <div style="height:15px"></div> + <el-descriptions class="margin-top" :column="1" size="medium" border title="灞炴�ч厤缃�"></el-descriptions> + <el-tabs v-model="itemForm.activeName" @tab-click="handleClick" stretch="true" style="height:235px"> + <el-tab-pane label="鍙傜収" name="referTab"> + <el-descriptions class="margin-top" :column="1" size="medium" border> + <el-descriptions-item> + <template slot="label"> + 浣跨敤鍙傜収 + </template> + {{ itemForm.itemData.referTypeValue ? '鏄�' : '鍚�' }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鍙傜収绫诲瀷 + </template> + {{ itemForm.itemData.referTypeValue }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鍙傜収鍚嶇О + </template> + {{ itemForm.itemData.referToName }} + </el-descriptions-item> + </el-descriptions> </el-tab-pane> <el-tab-pane label="鏋氫妇" name="enumTab"> - <el-form ref="form" :model="itemData" label-width="80px" style="height: 656px;"> - <el-form-item label="浣跨敤鏋氫妇"> - <el-switch v-model="itemData.usingDict" :disabled="true"></el-switch> - </el-form-item> - <el-form-item label="鏋氫妇绫诲瀷"> - <el-input v-model="form.dictCode" :disabled="true"></el-input> - </el-form-item> - </el-form> + <el-descriptions class="margin-top" :column="1" :size="small" border> + <el-descriptions-item> + <template slot="label"> + 浣跨敤鏋氫妇 + </template> + {{ itemForm.itemData.usingDict ? '鏄�' : '鍚�' }} + </el-descriptions-item> + <el-descriptions-item> + <template slot="label"> + 鏋氫妇绫诲瀷 + </template> + {{ itemForm.itemData.dictCode }} + </el-descriptions-item> + </el-descriptions> </el-tab-pane> </el-tabs> </basic-container> </el-aside> + <originalAdd ref="originalAdd" :attribute="attribute" @refreshTable="refreshChange"></originalAdd> </el-container> </template> @@ -112,52 +149,21 @@ update, getPage, getApplyRange } from "@/api/omd/OmdAttribute"; -import { getDictionary } from "@/api/omd/enum"; - export default { name: "original", data() { - return { - datas: [], - itemData: {}, - activeName: 'attrTab', - formAtrr: {}, - rouname: "", - referType: { - code: 'referType', - key: '', - value: '', - display: false, - title: '', - disable: true - }, - //鍊煎煙涓嬫媺妗嗘暟鎹� - Typelist: [], - //鐗堟湰鏁版嵁 - banList: [], - // 灞炴�х被鍨嬩笅鎷夋鏁版嵁 - typeSelectList: [ - { - label: "鍝堝搱鍝�", - value: 0 - },], - // 鏄惁涓虹┖ - nullable: [], - form: { - text: "" - }, - detailForm: { - text: "" - }, + return { page: { pageSize: 10, currentPage: 1, total: 100 }, selectRow: '', - data: [ - - ], + data: [], + form:{}, + attribute: { + nullable: true + }, option: { height: "550px", headerAlign: 'center', @@ -165,7 +171,13 @@ index: true, rowKey: 'id', tabs: true, + stripe:true, + indexFixed: false, + menuWidth: 150, highlightCurrentRow: true, + addBtn:false, + editBtn:false, + delBtn:false, column: [{ label: '閫夋嫨', prop: 'radio', @@ -178,7 +190,8 @@ prop: 'id', align: 'left', display: false, - width: 200 + width: 200, + required: true }, { label: '灞炴�у悕绉�', prop: 'name', @@ -200,10 +213,10 @@ display: false, dicData: [{ label: '鏄�', - value: 0 + value: 'true' }, { label: '鍚�', - value: 1 + value: 'false' }] }, { @@ -226,10 +239,10 @@ labelWidth: 132, dicData: [{ label: '鍚�', - value: 1 + value: 'false' }, { label: '鏄�', - value: 0 + value: 'true' }] }, { @@ -244,195 +257,6 @@ type: "textarea", display: false }, - ], - group: [ - { - label: '灞炴�ч」', - prop: "index", - column: [ - { - label: '灞炴�х紪鍙�', - prop: 'id', - align: 'left', - }, - { - label: '灞炴�у悕绉�', - prop: 'name', - align: 'left', - }, - { - label: '鏍囩', - prop: 'hashtag', - hide: true - }, { - label: '灞炴�х被鍨嬪瓧鍏哥爜', - prop: 'typeCode', - display: false, - value: 'attributeType' - }, - { - label: '灞炴�х被鍨�', - prop: 'typeKey', - type: "select", - dicUrl: '/api/ubcs-omd/dict-biz/dictionary?code=attributeType', - dicType: 'String', - props: { - label: 'dictValue', - value: 'dictKey' - }, - rules: [ - { - required: true, - message: "璇烽�夋嫨灞炴�х被鍨�", - trigger: "click" - } - ] - }, - { - label: '榛樿鍊�', - prop: 'defaultValue', - }, - { - label: '鍏佽涓虹┖', - prop: 'nullable', - type: 'switch', - hide: true, - labelWidth: 132, - dicData: [{ - label: '鍚�', - value: 1 - }, { - label: '鏄�', - value: 0 - }] - }, - { - label: "闀垮害", - prop: "maxLength", - hide: true - }, - { - label: '鎻忚堪', - prop: 'description', - type: "textarea" - }, - ] - }, - { - label: '鍙傜収', - column: [ - { - label: '鍙傜収绫诲埆', - prop: 'referTypeCode', - display: false, - hide: true - },{ - span: 12, - label: '鍙傜収绫诲埆', - prop: 'referTypeKey', - type: "select", - change: this.selectChange, - dicUrl: '/api/ubcs-omd/dict-biz/dictionary?code=referType', - dicType: 'String', - props: { - label: 'dictValue', - value: 'dictKey' - }, - rules: [ - { - required: true, - message: "璇烽�夋嫨鍙傜収绫诲埆", - trigger: "click" - } - ] - }, - { - prop: "selInput", - placeholder: false, - readonly: true, - display: true, - formslot: true, - }, - // { - // label: "閫夋嫨鐗堟湰", - // prop: "banben", - // type: 'select', - // value: 0, - // change: this.selchange, - // display: true, - // dicData: [ - // { - // label: '褰撳墠鐗堟湰娆�', - // value: 0 - // }, - // { - // label: '鏈�鏂扮増鏈', - // value: 1 - // } - // ] - // }, - { - //榛樿琛ㄦ牸鎻掓Ы - prop: "default", - span: 24, - display: false - } - ] - }, - { - label: '鏋氫妇', - column: [ - { - label: '鏄惁浣跨敤鏋氫妇', - prop: 'isnot', - type: 'switch', - hide: true, - labelWidth: 132, - span: 8, - dicData: [{ - label: '鍚�', - value: 1 - }, { - label: '鏄�', - value: 0 - }] - }, - { - prop: 'text', - type: 'input', - placeholder: '璇疯緭鍏ュ唴瀹�', - hide: true, - display: false - }, - { - prop: 'enumerationSelect', - type: 'select', - placeholder: '璇烽�夋嫨', - hide: true, - span: 12, - dicData: [ - { - label: 'a', - value: 0 - }, - { - label: 'b', - value: 1 - }, - { - label: 'c', - value: 2 - } - ] - }, - { - label: '鎻忚堪', - prop: 'endesc', - type: "textarea", - labelWidth: 132, - }, - ] - } ] }, applyRange: { @@ -464,115 +288,32 @@ }, data: [], display: false, + }, + itemForm:{ + itemData: {}, + activeName: 'referTab', + form:{} } } }, - - created() { - const column =this.findObject(this.option.group,"referTypeKey") - console.log(column); + }, methods: { - rowLinkchange(row) { - this.form.text = row.name - }, - rowchange(row) { - this.form.text = row.name - }, - //鍊煎煙绫诲瀷閫夋嫨 - addHandle() { - this.packageBox = true - if (this.Typelist.value == 0) { - this.packageBox = true - this.packageLinkBox = false - } else if (this.Typelist.value == 1) { - this.packageBox = false - this.packageLinkBox = true - } - }, - // 鍊煎煙涓氬姟绫诲瀷瀵硅瘽妗嗗彇娑� - dialoghandelfalse() { - this.packageBox = false; - this.form.text = "" - }, - //鍊煎煙涓氬姟绫诲瀷瀵硅瘽妗嗙‘瀹� - dialoghandeltrue() { - this.packageBox = false - }, - // 鍊煎煙閾炬帴绫诲瀷瀵硅瘽妗嗗彇娑� - Linkdialoghandelfalse() { - this.packageLinkBox = false; - this.form.text = "" - }, - //鍊煎煙閾炬帴绫诲瀷瀵硅瘽妗嗙‘瀹� - Linkdialoghandeltrue() { - this.packageLinkBox = false - }, - selectChange(val) { - this.referType.key = val.value - if (val.value == 'businessType'){ - this.referType.value = '涓氬姟绫诲瀷' - } - if (val.value == 'linkType'){ - this.referType.value = '閾炬帴绫诲瀷' - } - if(val.value){ - this.referType.disable = false - } - }, - selchange(val) { - this.banList = val - console.log(val); - }, refreshChange() { this.onLoad(this.pageParent, this.query); }, - beforeOpen(done, type) { - - done(); - + addSave(){ + this.$refs.originalAdd.showSubmitDialog = true; + this.$refs.originalAdd.attribute = {}; }, - rowDel(row) { - this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", { - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - type: "warning" - }) - .then(() => { - return remove(row.id); - }) - .then(() => { - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!" - }); - this.onLoad(); - }); + updateSave(){ + this.$refs.originalAdd.showSubmitDialog = true; + this.$refs.originalAdd.attribute = this.attribute; }, - rowSave(row, done) { - add(row).then(() => { - this.$message({ - type: "success", - message: "鎿嶄綔鎴愬姛!" - }); - done(row) - this.onLoad() - }).catch((res) => { - this.$message({ - type: "success", - message: res - }); - }) - }, - rowUpdate(row, index, done) { - update(row).then(() => { - this.onLoad() - this.$message({ - type: "success", - message: "淇敼鎴愬姛!" - }); - done(row) + deleteSave(){ + remove(this.itemForm.itemData).then(res => { + this.$message.success("鍒犻櫎鎴愬姛"); }) }, onLoad(page, params = {}) { @@ -587,9 +328,9 @@ }) }, rowClick(row) { - this.itemData = row; + this.itemForm.itemData = row; this.selectRow = row.$index; - + this.attribute = row; } ,selectBtmType(){ this.referType.display = true; @@ -603,11 +344,9 @@ }) } var oid = this.data[this.selectRow].oid; - console.log(oid); getApplyRange(oid).then(res => { this.applyRange.data = res.data.data; }) - console.log("success"); this.applyRange.display = true; }, applyRangeClose(){ -- Gitblit v1.9.3