From 8a166a60cfd1a2e593ffa103d10c0dc224fc8628 Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期四, 09 一月 2025 11:14:50 +0800 Subject: [PATCH] 表格定义显示字段设置拖拽排序 --- Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue | 521 ++++++++++++++++++++------------------------------------- 1 files changed, 181 insertions(+), 340 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue index 6350b43..b5efc09 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue @@ -9,35 +9,36 @@ width="60%" @close="closeDialog" > - <el-form v-loading="formLoading" :model="form" :rules="rules" label-position="right" label-width="100px"> + <el-form ref="form" v-loading="formLoading" :model="form" :rules="rules" label-position="right" label-width="100px" + size="small"> <el-row> <el-col :span="12"> - <el-form-item label="鍚嶇О"> - <el-input v-model="form.viName" placeholder="璇疯緭鍏ュ悕绉�" size="mini"></el-input> + <el-form-item label="鍚嶇О" prop="viName"> + <el-input v-model="form.viName" placeholder="璇疯緭鍏ュ悕绉�"></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="姣忛〉琛屾暟"> - <el-input v-model="form.itemPageSize" placeholder="璇疯緭鍏ユ瘡椤佃鏁�" size="mini" type="number"></el-input> + <el-input v-model="form.itemPageSize" placeholder="璇疯緭鍏ユ瘡椤佃鏁�" type="number"></el-input> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="闄勫姞鏌ヨ鏉′欢"> - <el-input v-model="form.itemAddFilter" placeholder="璇疯緭鍏ユ煡璇㈡潯浠�" size="mini"></el-input> + <el-input v-model="form.itemAddFilter" placeholder="璇疯緭鍏ユ煡璇㈡潯浠�"></el-input> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="缁戝畾琛ㄥ崟"> + <el-form-item label="缁戝畾琛ㄥ崟" prop="itemInObj"> <div style="display: flex;align-items: center;"> - <el-select v-model="form.itemInObj" clearable placeholder="璇烽�夋嫨缁戝畾琛ㄥ崟" size="mini"> + <el-select v-model="form.itemInObj" clearable placeholder="璇烽�夋嫨缁戝畾琛ㄥ崟" + @change="formSelectChange"> <el-option v-for="(item,index) in selectList" :key="index" :label="item.viName" :value="item.id"></el-option> </el-select> - <el-button plain size="mini" style="margin-left: 3px" type="success" @click="formSelectClickHandler">閫夋嫨 - </el-button> + </div> </el-form-item> </el-col> @@ -45,7 +46,7 @@ <el-col :span="12"> <el-form-item label="鐖跺悕绉�"> <div style="display: flex;align-items: center;"> - <el-input v-model="form.itemParentFolderName" placeholder="璇疯緭鍏ョ埗鍚嶇О" size="mini"></el-input> + <el-input v-model="form.itemParentFolderName" placeholder="璇疯緭鍏ョ埗鍚嶇О"></el-input> <el-checkbox v-model="form.itemIsNavigatorExpand" style="margin-left: 5px; margin-right: 5px">鏄剧ず鏌ヨ鍖哄煙 </el-checkbox> <el-checkbox v-model="form.itemIsShowFolder" style="margin-left: 5px;margin-right: 0px">鏄剧ず鏂囦欢澶� @@ -54,131 +55,37 @@ </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="鏄剧ず瀛楁"> - <div style="display: flex; align-items: center"> - <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto"> - <el-table - :data="form.itemSelectOutFieldList" - :highlight-current-row="true" - style="width: 100%" - @row-click="showLabelLeftRowClick"> - <el-table-column - align="center" - label="鍙娇鐢ㄥ瓧娈�" - prop="id"> - </el-table-column> - </el-table> - </div> - <div style="margin-left: 10px; margin-right: 10px"> - <el-button circle icon="el-icon-back" style="margin-right: 10px" - @click="showLeftTransferClick"></el-button> - <el-button circle icon="el-icon-right" @click="showRightTransferClick"></el-button> - </div> - <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto"> - <el-table - :data="form.itemOutFieldList" - :highlight-current-row="true" - style="width: 100%" - @row-click="showLabelRightRowClick"> - <el-table-column - align="center" - label="闇�瑕佷娇鐢ㄥ瓧娈�" - prop="id"> - </el-table-column> - </el-table> - </div> - </div> + <el-col :span="24"> + <el-form-item label="鏄剧ず瀛楁" prop="showLabel"> + <el-drag-select v-model="form.itemOutFieldList" multiple placeholder="璇烽�夋嫨" style="width:100%;" @outFileChange="outFileChange"> + <el-option v-for="(item,index) in form.itemSelectOutFieldList" :key="index" :label="item.id" + :value="item.id"/> + </el-drag-select> </el-form-item> </el-col> - <el-col :span="12"> + <el-col :span="24"> <el-form-item label="鎼滅储瀛楁"> - <div style="display: flex; align-items: center"> - <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto"> - <el-table - :data="form.itemSearchFieldList" - :highlight-current-row="true" - style="width: 100%" - @row-click="searchLeftRowClick"> - <el-table-column - align="center" - label="鍙緵鎼滅储瀛楁" - prop="id"> - </el-table-column> - </el-table> - </div> - <div style="margin-left: 10px; margin-right: 10px"> - <el-button circle icon="el-icon-back" style="margin-right: 10px" - @click="searchLeftTransferClick"></el-button> - <el-button circle icon="el-icon-right" @click="searchRightTransferClick"></el-button> - </div> - <div style="height: 260px; width: 160px; border: 1px solid #bdbbbb;overflow-y: auto"> - <el-table - :data="form.itemKeyFieldList" - :highlight-current-row="true" - style="width: 100%" - @row-click="searchRightRowClick"> - <el-table-column - align="center" - label="闇�鎼滅储瀛楁" - prop="id"> - </el-table-column> - </el-table> - </div> - </div> - </el-form-item> - </el-col> - - <el-col :span="12"> - <el-form-item label="鍒�"> - <el-select v-model="form.itemFileWidthSelect" placeholder="璇烽�夋嫨鍒�" size="mini" @change="itemFileWidthChange"> - <el-option v-for="(item,index) in form.itemFieldWidthList" :key="index" :label="item.key" - :value="item.key"></el-option> + <el-select v-model="form.itemKeyFieldList" multiple placeholder="璇烽�夋嫨" style="width: 100%"> + <el-option + v-for="(item,index) in form.itemSearchFieldList" + :key="index" + :label="item.id" + :value="item.id"> + </el-option> </el-select> </el-form-item> </el-col> - <el-col :span="12"> - <el-form-item label="瀹藉害"> - <div style="display: flex;align-items: center;"> - <el-input v-model="form.itemWidth" placeholder="璇疯緭鍏ュ搴�" size="mini" style="width: 193px" - type="number"></el-input> - <el-button plain size="mini" style="margin-left: 3px" type="success" @click="widthSetUpClickHandler">璁剧疆 - </el-button> - </div> - </el-form-item> - </el-col> </el-row> <el-col :span="24"> <el-form-item label="璁剧疆鍒楀"> - <div style="height: 150px; width: 100%; border: 1px solid #bdbbbb;overflow-y: auto"> - <el-table - :data="form.itemFieldWidthList" - :highlight-current-row="true" - border - stripe - style="width: 100%" - @row-click="itemFileWidthRowClick"> - <el-table-column - align="center" - label="鍒楀悕" - prop="key"> - <template slot-scope="scope"> - <el-tag size="medium">{{ scope.row.key }}</el-tag> - </template> - </el-table-column> - <el-table-column - align="center" - label="鍒楀" - prop="value"> - <template slot-scope="scope"> - <el-tag size="medium">{{ scope.row.value }}</el-tag> - </template> - </el-table-column> - </el-table> - </div> + <avue-crud + :data="form.itemFieldWidthList" + :option="fileWidthOption"> + </avue-crud> + </el-form-item> </el-col> @@ -247,7 +154,7 @@ <el-col :span="24"> <el-form-item label="鍙屽嚮鎿嶄綔"> - <el-select v-model="form.itemDbl" placeholder="璇烽�夋嫨鍙屽嚮鎿嶄綔" size="mini"> + <el-select v-model="form.itemDbl" placeholder="璇烽�夋嫨鍙屽嚮鎿嶄綔"> <el-option v-for="(item,index) in itemDblList" :key="index" :label="item.value" :value="item.key"></el-option> </el-select> @@ -259,11 +166,11 @@ <div style="display: flex;align-items: center"> <div style="display: flex;align-items: center;width: 100%;"> <span>闀匡細</span> - <el-input v-model="itemImgHeight" placeholder="璇疯緭鍏ラ暱搴�" size="mini"></el-input> + <el-input v-model="itemImgHeight" placeholder="璇疯緭鍏ラ暱搴�"></el-input> </div> <div style="display: flex;align-items: center;width: 100%;margin-left: 30px"> <span>瀹斤細</span> - <el-input v-model="itemImgWidth" placeholder="璇疯緭鍏ュ搴�" size="mini"></el-input> + <el-input v-model="itemImgWidth" placeholder="璇疯緭鍏ュ搴�"></el-input> </div> </div> </el-form-item> @@ -283,9 +190,9 @@ <el-col :span="24"> <el-form-item label="鏌ヨ妯℃澘"> - <el-select v-model="form.itemQtName" placeholder="璇烽�夋嫨鏌ヨ妯℃澘" size="mini"> - <el-option label="鍖哄煙涓�" value="shanghai"></el-option> - <el-option label="鍖哄煙浜�" value="beijing"></el-option> + <el-select v-model="form.itemQtName" placeholder="璇烽�夋嫨鏌ヨ妯℃澘"> + <el-option v-for="(item,index) in searchQtNameList" :key="index" :label="item.qtName" + :value="item.qtName"></el-option> </el-select> </el-form-item> </el-col> @@ -295,40 +202,19 @@ <el-button @click="closeDialog">鍙� 娑�</el-button> <el-button type="primary" @click="dialogSaveClickHandler">纭� 瀹�</el-button> </span> - - <el-dialog - v-dialogDrag - v-loading="selectFormLoading" - :visible.sync="selectFormVisible" - append-to-body="true" - class="avue-dialog" - title="琛ㄥ崟閫夋嫨" - width="50%"> - <avue-crud - ref="crud" - :data="selectFormData" - :option="selectFormOption" - @selection-change="selectionChange" - @row-click="rowClick"> - - </avue-crud> - - <span slot="footer" class="dialog-footer"> - <el-button @click="selectFormVisible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="selectFormAddClickHandler">纭� 瀹�</el-button> - </span> - </el-dialog> </el-dialog> </template> <script> import basicOption from "@/util/basic-option"; -import {gridPortalVIDatas, getPortalVIById, getItemDblList, savePortalVI} from "@/api/UI/formDefine/api"; +import {gridPortalVIDatas, getPortalVIById, getItemDblList, savePortalVI, getObjTypeQTs} from "@/api/UI/formDefine/api"; import func from "@/util/func"; +import ElDragSelect from './DragSelect' export default { name: "tableDialog", + components: {ElDragSelect}, props: { TreeNodeRow: { type: Object, @@ -345,6 +231,36 @@ }, data() { return { + fileWidthOption: { + ...basicOption, + addBtn: false, + editBtn: false, + delBtn: false, + refreshBtn: false, + highlightCurrentRow: true, + height: 200, + menu: false, + selection: false, + column: [ + { + label: '鍒楀悕', + prop: 'key', + }, + { + label: '鍒楀', + prop: 'value', + cell: true, + rules: [ + { + required: true, + message: '璇疯緭鍏ュ垪瀹�', + trigger: 'blur' + } + ] + } + ] + }, + searchQtNameList: [], formLoading: false, itemImgHeight: '', itemImgWidth: '', @@ -375,7 +291,23 @@ selectFormData: [], selectFormLoading: false, selectFormVisible: false, - rules: {}, + rules: { + viName: [{ + required: true, + message: '璇疯緭鍏ュ悕绉�', + trigger: 'blur' + }], + itemInObj: [{ + required: true, + message: '璇烽�夋嫨缁戝畾琛ㄥ崟', + trigger: 'change' + }], + // showLabel: [{ + // required: true, + // message: '璇烽�夋嫨鏄剧ず瀛楁', + // trigger: 'submit' + // }], + }, form: { viName: '', // 鍚嶇О itemPageSize: '', // 姣忛〉鍙樉绀鸿鏁� @@ -390,7 +322,6 @@ itemKeyFieldList: [], // 闇�瑕佹悳绱㈠瓧娈� itemWidth: '250', // 瀹藉害 itemFieldWidthList: [], // 璁剧疆鍒楀鏁扮粍 涓� itemOutFieldList 鐩稿尮閰� - itemFileWidthSelect: '', // 鍒椾笅鎷夋 searchLabel: '', // 鏌ヨ瀛楁 searchNumber: '1', // 鏌ヨ娆℃暟 searchSql: '', // 鏌ヨsql @@ -415,7 +346,6 @@ itemKeyFieldList: [], // 闇�瑕佹悳绱㈠瓧娈� itemWidth: '250', // 瀹藉害 itemFieldWidthList: [], // 璁剧疆鍒楀鏁扮粍 涓� itemOutFieldList 鐩稿尮閰� - itemFileWidthSelect: '', // 鍒椾笅鎷夋 searchLabel: '', // 鏌ヨ瀛楁 searchNumber: '1', // 鏌ヨ娆℃暟 searchSql: '', // 鏌ヨsql @@ -439,38 +369,11 @@ } }, methods: { - // 鍏抽棴瀵硅瘽妗� - closeDialog() { - this.visible = false; - this.form = {...this.defaultForm}; - }, - - // 閫夋嫨琛ㄥ崟鍏抽棴瀵硅瘽妗� - closeSelectFormDialog() { - - }, - - // 閫夋嫨缁戝畾琛ㄥ崟 - formSelectClickHandler() { - this.selectFormVisible = true; - const params = { - 'conditionMap[typeName]': this.TreeNodeRow.attributes.id, - 'conditionMap[viType]': 'Form', - 'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '', - } - gridPortalVIDatas(1, -1, params).then(res => { - if (res.data.code === 200) { - const data = res.data.data; - this.selectFormData = data; - } - }); - }, - // 鑾峰彇鍒濆鍖栬〃鏍奸噷闇�瑕佺殑榛樿鏁版嵁 getFormSelectList() { this.formLoading = true; const params = { - 'conditionMap[typeName]': this.TreeNodeRow.id, + 'conditionMap[typeName]': this.treeRadio === '0' ? this.TreeNodeRow.id : this.TreeNodeRow.name, 'conditionMap[viType]': 'Form', 'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '', }; @@ -484,7 +387,7 @@ // 纭繚 this.selectList 宸茬粡璧嬪�间笖涓嶄负绌� if (this.selectList && this.selectList.length > 0) { const param = { - id: this.selectList[0].id, + id: this.form.itemInObj, viType: '1' }; @@ -501,45 +404,44 @@ const list = data.filter(item => !this.form.itemOutFieldList.some(outItem => outItem.id === item.id) ); + this.getSearchSelectList(); // 閫夋嫨琛ㄥ崟涓嬫媺鎺ュ彛 + this.getFormSelect(); // 鏌ヨ妯℃澘涓嬫媺鎺ュ彛 + this.getDbList(); // 鍙屽嚮鎿嶄綔涓嬫媺鎺ュ彛 this.$set(this.form, 'itemSelectOutFieldList', list); this.formLoading = false; } }) }, - - // 琛ㄦ牸澶氶�� - selectionChange(list) { - this.selectList = list; + // 鍏抽棴瀵硅瘽妗� + closeDialog() { + this.visible = false; + this.$refs.form.clearValidate(); + this.form = {...this.defaultForm}; }, - // 琛岀偣鍑� - rowClick(row) { - func.rowClickHandler( - row, - this.$refs.crud, - this.lastIndex, - (newIndex) => { - this.lastIndex = newIndex; - }, - () => { - this.selectList = []; - } - ); - }, - - // 琛ㄥ崟閫夋嫨纭畾 - selectFormAddClickHandler() { - if (this.selectList.length <= 0) { - this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); - return; - } - - if (this.selectList.length > 1) { - this.$message.error('鍙兘閫夋嫨涓�鏉℃暟鎹�'); - return; - } + // 鑾峰彇閫夋嫨琛ㄥ崟鏁版嵁 + getFormSelect() { const params = { - id: this.selectList[0].id, + 'conditionMap[typeName]': this.treeRadio === '0' ? this.TreeNodeRow.id : this.TreeNodeRow.name, + 'conditionMap[viType]': 'Form', + 'conditionMap[viTypeFlag]': this.treeRadio === '0' ? 'BtmType' : this.treeRadio === '1' ? 'LinkType' : '', + } + gridPortalVIDatas(1, -1, params).then(res => { + if (res.data.code === 200) { + const data = res.data.data; + this.selectList = data; + } + }); + }, + + // 琛ㄥ崟閫夋嫨change浜嬩欢 + formSelectChange(val) { + this.form.itemOutFieldList = []; + this.form.itemKeyFieldList = []; + this.form.itemFieldWidthList = []; + + const params = { + id: val, viType: '1' } getPortalVIById(params).then(res => { @@ -550,108 +452,31 @@ } }); this.form.itemSelectOutFieldList = data; - this.selectFormVisible = false; } }) - this.form.itemInObj = this.selectList[0].id; }, - // 鏄剧ず瀛楁宸︿晶琛ㄦ牸琛岀偣鍑� - showLabelLeftRowClick(row) { - this.showLabelLeftRow = row; + // 鏄剧ず瀛楁change + outFileChange(val) { + this.form.itemSearchFieldList = this.form.itemOutFieldList.map(item => { + return { + id: item + } + }) + this.form.itemFieldWidthList = this.form.itemOutFieldList.map(item => { + return { + $cellEdit: true, + key: item, + value: '250', + } + }) }, - // 鏄剧ず瀛楁鍙充晶琛ㄦ牸琛岀偣鍑� - showLabelRightRowClick(row) { - this.showLabelRightRow = row; - }, - - // 鎼滅储瀛楁宸︿晶琛ㄦ牸琛岀偣鍑� - searchLeftRowClick(row) { - this.searchLeftRow = row; - }, - - // 鎼滅储瀛楁鍙充晶琛ㄦ牸琛岀偣鍑� - searchRightRowClick(row) { - this.searchRightRow = row; - }, - - // 鏄剧ず瀛楁绌挎妗嗗乏绉� - showLeftTransferClick() { - if (func.isEmptyObject(this.showLabelRightRow)) { - this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); - return; - } - this.form.itemSelectOutFieldList.unshift(this.showLabelRightRow); - this.form.itemOutFieldList = this.form.itemOutFieldList.filter(item => item.id !== this.showLabelRightRow.id); - this.form.itemSearchFieldList = this.form.itemOutFieldList; - this.form.itemFieldWidthList = this.form.itemFieldWidthList.filter(item => item.key !== this.showLabelRightRow.id); - this.form.itemFileWidthSelect = this.form.itemFieldWidthList.length >= 1 ? this.form.itemFieldWidthList[0].key : ''; - this.showLabelRightRow = {}; - }, - - // 鏄剧ず瀛楁绌挎妗嗗彸绉� - showRightTransferClick() { - if (func.isEmptyObject(this.showLabelLeftRow)) { - this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); - return; - } - this.form.itemOutFieldList.push(this.showLabelLeftRow); - this.form.itemSearchFieldList = this.form.itemOutFieldList; - - // 杩囨护 itemSelectOutFieldList锛岀Щ闄� id 涓� showLabelLeftRow.id 鐩稿悓鐨勫璞� - this.form.itemSelectOutFieldList = this.form.itemSelectOutFieldList.filter(item => item.id !== this.showLabelLeftRow.id); - this.form.itemFieldWidthList.push({ - key: this.showLabelLeftRow.id, - value: this.form.itemWidth - }); - this.form.itemFileWidthSelect = this.form.itemFieldWidthList[0].key; - this.showLabelLeftRow = {}; - - }, - - // 鎼滅储瀛楁绌挎妗嗗乏绉� - searchLeftTransferClick() { - if (func.isEmptyObject(this.searchRightRow)) { - this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); - return; - } - this.form.itemSearchFieldList.unshift(this.searchRightRow); - this.form.itemKeyFieldList = this.form.itemKeyFieldList.filter(item => item.id !== this.searchRightRow.id) - this.searchRightRow = {}; - }, - - // 鎼滅储鑷姩绌挎妗嗗彸绉� - searchRightTransferClick() { - if (func.isEmptyObject(this.searchLeftRow)) { - this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); - return; - } - - this.form.itemKeyFieldList.push(this.searchLeftRow); - - this.form.itemSearchFieldList = this.form.itemSearchFieldList.filter(item => item.id !== this.searchLeftRow.id); - this.searchLeftRow = {}; - }, - - // 璁剧疆鍒楀琛岀偣鍑� - itemFileWidthRowClick(row) { - this.itemFileWidthRow = row; - this.form.itemFileWidthSelect = row.key; - this.form.itemWidth = row.value; - }, - - // 鍒椾笅鎷塩hange - itemFileWidthChange(val) { - this.itemFileWidthChangeVal = val; - }, - - // 璁剧疆瀹藉害 - widthSetUpClickHandler() { - if (this.form.itemFileWidthSelect) { - const item = this.form.itemFieldWidthList.find(item => item.key === this.form.itemFileWidthSelect); - item.value = this.form.itemWidth; - } + // 鏌ヨ妯℃澘涓嬫媺鎺ュ彛鏌ヨ + getSearchSelectList() { + getObjTypeQTs({btName: this.treeRadio === '0' ? this.TreeNodeRow.id : this.TreeNodeRow.name}).then(res => { + this.searchQtNameList = res.data.data; + }) }, // 鑾峰彇鍙屽嚮鎿嶄綔鏁版嵁 @@ -671,6 +496,10 @@ // 鏌ヨ妯℃澘娣诲姞 searchAddClickHandler() { + if (!this.form.searchLabel) { + this.$message.error('鏌ヨ瀛楁涓嶈兘涓虹┖!'); + return; + } this.form.itemSeniorQueryBOS.push({ itemSeniorQueryCols: this.form.searchLabel, itemSeniorQueryColsCounts: this.form.searchNumber, @@ -685,39 +514,51 @@ return; } - this.form.itemSeniorQueryBOS = this.form.itemSeniorQueryBOS.filter(item => item.itemSeniorQueryCols != this.itemSeniorRow.id); - this.itemSeniorRow = {}; + this.form.itemSeniorQueryBOS = this.form.itemSeniorQueryBOS.filter(item => item.itemSeniorQueryCols != this.itemSeniorRow.itemSeniorQueryCols); }, // 琛ㄦ牸瀵硅瘽妗嗕繚瀛� dialogSaveClickHandler() { - this.form.itemSelectOutFieldList = this.form.itemSelectOutFieldList.map(item => item.id); // 鍙娇鐢ㄥ瓧娈� - this.form.itemOutFieldList = this.form.itemOutFieldList.map(item => item.id); // 闇�瑕佷娇鐢ㄥ瓧娈� - this.form.itemSearchFieldList = this.form.itemSearchFieldList.map(item => item.id); // 鍙緵鎼滅储瀛楁 - this.form.itemKeyFieldList = this.form.itemKeyFieldList.map(item => item.id); // 闇�瑕佷娇鐢ㄥ瓧娈� - this.form.itemImgWH = `${this.itemImgHeight},${this.itemImgWidth}`; - const params = { - id: this.form.editNodeId, - prm: { - formQtName: '', - prmItemList: [ - this.form - ], - }, - typeFlag: this.treeRadio, - typeFlagText: this.treeRadio === '0' ? "涓氬姟绫诲瀷鐨勮〃鍗�" : '閾炬帴绫诲瀷鐨勮〃鍗�', - typeName: this.TreeNodeRow.attributes.id, - viName: this.form.viName, - viType: 0, - viTypeText: "琛ㄦ牸" - } - savePortalVI(params).then(res => { - if (res.data.code === 200) { - this.$message.success('淇濆瓨鎴愬姛'); - this.closeDialog(); - this.$emit('updataTable'); + this.$refs.form.validate((valid) => { + if (valid) { + if (this.form.itemOutFieldList.length <= 0) { + this.$message.error('璇烽�夋嫨鏄剧ず瀛楁'); + return; + } + const paramsForm = {...this.form}; + paramsForm.itemSelectOutFieldList = this.form.itemSelectOutFieldList.map(item => item.id); // 鍙娇鐢ㄥ瓧娈� + paramsForm.itemOutFieldList = this.form.itemOutFieldList; // 闇�瑕佷娇鐢ㄥ瓧娈� + paramsForm.itemSearchFieldList = this.form.itemSearchFieldList.map(item => item.id); // 鍙緵鎼滅储瀛楁 + paramsForm.itemKeyFieldList = this.form.itemKeyFieldList; // 闇�瑕佷娇鐢ㄥ瓧娈� + paramsForm.itemImgWH = `${this.itemImgWidth},${this.itemImgHeight}`; + const params = { + id: this.form.editNodeId, + prm: { + formQtName: this.form.itemQtName, + prmItemList: [ + paramsForm + ], + }, + typeFlag: this.treeRadio, + typeFlagText: this.treeRadio === '0' ? "涓氬姟绫诲瀷鐨勮〃鍗�" : '閾炬帴绫诲瀷鐨勮〃鍗�', + typeName: this.treeRadio === '0' ? this.TreeNodeRow.id : this.TreeNodeRow.name, // 涓氬姟绫诲瀷鍚� or 閾炬帴绫诲瀷鍚� + viName: this.form.viName, + viType: 0, + viTypeText: "琛ㄦ牸" + } + savePortalVI(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + // this.closeDialog(); + this.$emit('updataTable'); + // this.$refs.form.clearValidate(); + this.visible = false; + } + }) + } else { + return false; } - }) + }); } } } -- Gitblit v1.9.3