From b027a6a6749f51b45fb0593b260a1d4d9cd77932 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 04 十二月 2024 11:40:16 +0800 Subject: [PATCH] 表单定义切换源对象清空选择模板、查询模板&&切换搜索类型清空链接类型、选择模板、查询模板 --- Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue | 1000 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 606 insertions(+), 394 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue index 8638262..b035270 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue @@ -1,15 +1,15 @@ <template> - <basic-container> + <div> <avue-crud ref="crud" v-model="form" + :before-close="beforeClose" + :before-open="beforeOpen" :data="data" :option="option" :table-loading="tableLoading" - @row-del="rowDelHandler" @row-save="rowSaveHandler" @row-update="rowUpdateHandler" - @refresh-change="handleRefresh" @selection-change="selectChangeHandler" @row-click="rowClickHandler"> <template slot="menuLeft" slot-scope="scope"> @@ -21,36 +21,31 @@ </el-button> </template> - <!-- eventKey鎿嶄綔鎸夐挳 --> - <template slot="eventButtonForm" slot-scope="scope"> - <div style="width: 100%;display: flex;justify-content: center"> - <el-button plain size="mini" type="primary" @click="formDataAddClickHandler">鍒涘缓</el-button> - <el-button plain size="mini" type="danger" @click="formDataDelClickHandler">鍒犻櫎</el-button> - <el-button plain size="mini" type="primary" @click="moveUp">涓婄Щ</el-button> - <el-button plain size="mini" type="primary" @click="moveDown">涓嬬Щ</el-button> - </div> + <template slot="menu" slot-scope="scope"> + <el-button icon="el-icon-edit" size="small" type="text" @click="editBtnClick(scope.row)">缂栬緫 + </el-button> + <el-button icon="el-icon-delete" size="small" type="text" @click="rowDeleteHandler(scope.row)">鍒犻櫎 + </el-button> + <el-button icon="el-icon-document-copy" size="small" type="text" @click="rowCloneHandler(scope.row)">鍏嬮殕 + </el-button> </template> + <!-- eventKey浠ュ強eventValue鏄剧ず鍖哄煙 --> <template slot="bottomValueForm" slot-scope="scope"> - <div style="height: 200px; width: 95%; border: 1px solid #bdbbbb;overflow-y: auto"> - <!-- 鍐呭 --> - <el-table - :data="FormData" - :highlight-current-row="true" - style="width: 100%" - @row-click="formDataRowClick"> - <el-table-column - align="center" - label="EventKey" - prop="eventKey"> - </el-table-column> - <el-table-column - align="center" - label="EventValue" - prop="eventValue"> - </el-table-column> - </el-table> - </div> + <avue-crud + :data="eventData" + :option="eventOption" + @row-click="formDataRowClick"> + <template slot="menuLeft" slot-scope="scope"> + <el-button plain size="mini" type="primary" @click="formDataAddClickHandler">鍒涘缓</el-button> + </template> + + <template slot="menu" slot-scope="scope"> + <el-button plain size="mini" type="danger" @click="formDataDelClickHandler(scope.row)">鍒犻櫎</el-button> + <el-button plain size="mini" type="primary" @click="moveUp(scope.row)">涓婄Щ</el-button> + <el-button plain size="mini" type="primary" @click="moveDown(scope.row)">涓嬬Щ</el-button> + </template> + </avue-crud> </template> <!-- 鍒囨崲鎼滅储绫诲瀷 婧愬璞� 鐩爣瀵硅薄鏄剧ずlabel鍒囨崲 --> @@ -61,6 +56,52 @@ <span v-else-if="form.searchTarger === '1'">婧愬璞�</span> <span v-else-if="form.searchTarger === '2'">鐩爣瀵硅薄</span> </template> + + <template slot="extAttrLabel" slot-scope="{}"> + <el-tooltip placement="top"> + <div slot="content">绀轰緥:ext1:xx;ext2;ext3:xx;ext4:xxx;extn:xxx; + <br/>1銆佺敤鑻变氦鍗婅鍒嗗彿:鍒嗛殧鍚勭粍鍊�; + <br/>2銆佹瘡缁勭敤鑻变氦鍗婅鍐掑彿:鍒嗛殧鍗曚竴鎵╁睍灞炴�у悕绉板強灞炴�у��; + <br/>3銆佸彲浠ュ畾涔変换鎰忕粍锛屼絾鎬诲瓧绗﹂暱搴︿笉寰楄秴杩�4000; + <br/>4銆佽緭鍏ユ椂锛屼笉瑕佹暡鍥炶溅鎹㈣; + </div> + <span>鎵╁睍灞炴�� <i class="el-icon-warning" style="color:red;"></i> </span> + </el-tooltip> + </template> + + <template slot="uiParserLabel" slot-scope="{}"> + <el-tooltip placement="top"> + <div slot="content">绀轰緥锛歫ava_cs;xxx.java_bs;xxx.net_cs;xxxx.net_bs;xxx.mobile_cs;xx.mobile_bs;xxx; + <br/>1銆佺敤鑻辨枃鍗婅鍒嗗彿;鍒嗗壊鍚勭粍鍊硷紱锛堣繖閲岀粨灏剧殑鏄腑鏂囧瓧绗︾殑鍒嗗彿锛� + <br/>2銆佹瘡缁勭敤鑻辨枃鍗婅鍐掑彿:鍒嗛殧鍗曚竴鎵╁睍灞炴�у悕绉板強灞炴�у�硷紱 + <br/>3銆佸叾涓殑xxx鏄悇绉嶈В鏋愮被鐨勫畬鏁寸被鍨嬪悕绉帮紙瀹屽叏闄愬畾鍚�)锛� + <br/>4銆佽緭鍏ユ椂锛屼笉瑕佹暡鍥炶溅鎹㈣; + </div> + <span>UI瑙f瀽绫诲瀷 <i class="el-icon-warning" style="color:red;"></i> </span> + </el-tooltip> + </template> + + <template slot="templateIdForm" slot-scope="{}"> + <el-select v-model="form.templateId" filterable placeholder="璇烽�夋嫨"> + <el-option + v-for="item in templateIdList" + :key="item.viName" + :label="item.viName" + :value="item.viName"> + </el-option> + </el-select> + </template> + + <template slot="queryTemplateNameForm" slot-scope="{}"> + <el-select v-model="form.queryTemplateName" filterable placeholder="璇烽�夋嫨"> + <el-option + v-for="item in queryTemplateNameList" + :key="item.qtName" + :label="item.qtName" + :value="item.qtName"> + </el-option> + </el-select> + </template> </avue-crud> <el-dialog v-dialogDrag @@ -68,9 +109,9 @@ append-to-body="true" class="avue-dialog" title="閰嶇疆鎸夐挳" - width="70%" + width="75%" @close="dialogClose"> - <el-container> + <el-container v-loading="dialogLoading"> <el-header style="height: 40px !important;"> <div style="display: flex"> <el-button :disabled="!disabledBtn" plain size="mini" type="primary" @click="addClickBtnHandler">娣诲姞 @@ -83,9 +124,9 @@ </el-button> <el-button :disabled="disabledBtn" plain size="mini" type="primary" @click="escClickBtnHandler">鍙栨秷 </el-button> - <el-button plain size="mini" type="primary">璋冩暣涓轰笅绾ф寜閽�</el-button> - <el-button plain size="mini" type="primary">璋冩暣涓轰笂绾ф寜閽�</el-button> - <el-button plain size="mini" type="primary">澶嶅埗鍒板叾浠栫粍浠�</el-button> + <el-button plain size="mini" type="primary" @click="changeBottomBtnHandler">璋冩暣涓轰笅绾ф寜閽�</el-button> + <el-button plain size="mini" type="primary" @click="changeTopBtnHandler">璋冩暣涓轰笂绾ф寜閽�</el-button> + <el-button plain size="mini" type="primary" @click="cloneClickBtnHandler">澶嶅埗鍒板叾浠栫粍浠�</el-button> </div> </el-header> <el-container> @@ -129,12 +170,17 @@ <el-form-item label="Action锛�" prop="Action"> <el-col :span="14"> - <el-input v-model="basicForm.actionOId" :readonly="disabledBtn"></el-input> + <div style="display: flex"> + <el-input v-model="basicForm.actionName" :readonly="disabledBtn"></el-input> + <el-button :disabled="disabledBtn" size="mini" style="margin-left: 10px" type="success" + @click="actionFoucus">閫夋嫨 + </el-button> + </div> </el-col> </el-form-item> <el-col :span="12"> - <el-form-item label="鏄惁鎺堟潈锛�" prop="resource"> + <el-form-item label="鏄惁鎺堟潈锛�" prop="authorization"> <el-radio v-model="basicForm.authorization" :disabled="disabledBtn" label="0">鏄�</el-radio> <el-radio v-model="basicForm.authorization" :disabled="disabledBtn" label="1">鍚�</el-radio> </el-form-item> @@ -168,10 +214,12 @@ <el-divider content-position="left">鍙傛暟淇℃伅</el-divider> <avue-crud ref="paramsCrud" + v-model="paramsForm" :data="paramsData" :option="paramsOption" style="margin-top: 20px" - @row-save="paramsRowSave"> + @row-save="paramsRowSave" + @row-update="paramsRowUpdate"> <template slot="menuLeft" slot-scope="scope"> <el-button :disabled="disabledBtn" icon="el-icon-plus" plain size="small" type="primary" @click="paramsRowAddClickHandler">鍒涘缓 @@ -179,6 +227,9 @@ </template> <template slot="menu" slot-scope="scope"> + <el-button :disabled="disabledBtn" icon="el-icon-edit" size="small" type="text" + @click="paramsRowEditHandler(scope.row)">淇敼 + </el-button> <el-button :disabled="disabledBtn" icon="el-icon-delete" size="small" type="text" @click="paramsRowDeleteHandler(scope.row)">鍒犻櫎 </el-button> @@ -190,80 +241,110 @@ </el-container> </el-container> </el-dialog> - </basic-container> + <action-dialog ref="actionDialog" @updataAction="actionSaveHandler"></action-dialog> + <clone-dialog ref="cloneDialog" :fromOid="fromOid" :sourceOId="sourceOId" paramsType="tab" + type="pageDef"></clone-dialog> + <clone-dialog ref="cloneBtnDialog" :fromOid="formBtnOid" :sourceOId="sourceBtnOid" paramsType="pageDef" + type="tabButton"></clone-dialog> + </div> </template> <script> import basicOption from "@/util/basic-option"; import func from "@/util/func"; import { - getBtmDatasByPage, - getPortalVIDatasByPage, - getQTInfoDatasByPage, + getPLPageDefinations, getTabButtons, addTapButton, - updateTapButton + updateTapButton, + addPageDefination, + deleteTabButton, + delPageDefination, + joinBtn, + exitBtn, + updatePageDefination, + getPortalVIDatasByPage, + getQTInfoDatasByPage } from "@/api/UI/uiDefine"; +import actionDialog from '@/views/modelingMenu/ui/Aciton/components/dialog'; +import cloneDialog from "@/views/modelingMenu/ui/uiDefine/rightRegion/cloneDialog"; export default { props: { sourceData: { - type: Array, - default: () => [ - { - "controlPath": "", - "description": "", - "eventKey": "", - "eventMap": null, - "eventValue": "", - "expandCols": "", - "expandMode": "", - "extAttr": "", - "id": "ABAE25CE-867E-9C73-AC1A-B316FD91C65B", - "isShowImage": "", - "linkType": "parttodocument", - "name": "鎶�鏈枃浠�", - "navigatorType": "", - "orderField": "", - "orderMode": "", - "orientation": "", - "qryType": null, - "queryTemplateName": "QueryPartEngineeringTechnology", - "refTreeSet": "", - "returnRows": "", - "rootContent": "", - "searchTarger": "2", - "separator": "", - "seq": "1", - "showAbs": "", - "showContent": "", - "showContentRelation": "", - "showContentTable": "", - "showContentType": "", - "showExpression": "", - "showExpressionRoot": "", - "showLinkAbs": "", - "showType": "document", - "subUILayout": "", - "subUIObjType": "", - "tabPageOId": "98F9082F-BAF4-FB81-3230-32590B34A329", - "templateId": "PartEngineeringTechnology_list", - "templateType": "1", - "type": 3, - "uiLayout": null, - "uiParser": "", - "validity": "" - } - ] + type: Object, + default: () => { + } }, height: { type: String, default: () => "auto" } }, + components: { + actionDialog, + cloneDialog + }, name: "index", data() { return { + queryTemplateNameList: [], + templateIdList: [], + searchTargerChangeFlag: false, + showTypeChangeFlag: false, + linkTypeChangeFlag: false, + formBtnOid: '', + sourceBtnOid: '', + sourceOId: '', + fromOid: '', + paramsForm: {}, + eventOption: { + ...basicOption, + addBtn: false, + editBtn: false, + delBtn: false, + refreshBtn: false, + highlightCurrentRow: true, + height: 200, + column: [ + { + label: 'EventKey', + prop: 'eventKey', + type: 'select', + value: 'SelectionEvent', + dicData: [ + { + label: 'SelectionEvent', + value: 'SelectionEvent' + }, + { + label: 'DBClickEvent', + value: 'DBClickEvent' + }, + { + label: 'ClickEvent', + value: 'ClickEvent' + } + ], + cell: true + }, + { + label: 'EventValue', + prop: 'eventValue', + cell: true, + rules: [ + { + required: true, + message: '璇疯緭鍏ventValue', + trigger: 'blur' + } + ] + } + ] + }, + eventData: [], + btnActionVisible: false, + dialogLoading: false, saveType: '', disabledBtn: true, paramsData: [], @@ -279,11 +360,27 @@ column: [ { label: '鍚嶇О', - prop: 'name' + prop: 'name', + span: 24, + rules: [ + { + required: true, + message: '璇疯緭鍏ュ悕绉�', + trigger: 'blur' + } + ] }, { label: '鍊�', - prop: 'value' + prop: 'value', + span: 24, + rules: [ + { + required: true, + message: '璇疯緭鍏ュ��', + trigger: 'blur' + } + ] } ] }, @@ -299,13 +396,7 @@ basicForm: { seq: 1 }, - treeData: [ - { - label: this.sourceData[0].name, - oId: 'parentNode', - children: [] - } - ], + treeData: [], treeOption: { menu: false, addBtn: false, @@ -320,13 +411,15 @@ btnDesignVisible: false, FormData: [], form: {}, - data: this.sourceData, + data: [], option: { ...basicOption, height: this.height, addBtn: false, index: true, calcHeight: -30, + editBtn: false, + delBtn: false, column: [ { label: '鍚嶇О', @@ -352,12 +445,13 @@ ], }, { - label: 'UI瑙f瀽绫诲瀷', + label: '', prop: 'uiParser', hide: true, + labelWidth: 100, }, { - label: '鎵╁睍灞炴��', + label: '', prop: 'extAttr', hide: true, }, @@ -398,7 +492,11 @@ return val; }, change: (val) => { - console.log(val); + const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'searchObjType', 'queryTemplateName', 'controlPath', 'expandCols', 'rootContent', 'showAbs', 'showLinkAbs', 'separator'] + // list.forEach(item => { + // this.form[item] = ""; + // }) + // this.form.searchTarger = '1' const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤� searchTarger.display = true; // 鍒囨崲榛樿灞曠ず鎼滅储绫诲瀷 // 妯℃澘绫诲瀷涓鸿〃鏍� @@ -463,6 +561,16 @@ const obj = this.option.group[0].column.find(item => item.prop === 'linkType'); obj.display = val.value !== '1'; } + + if (this.searchTargerChangeFlag) { + // 鍒囨崲娓呯┖妯℃澘绫诲瀷 + const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']; + list.forEach(item => { + this.form[item] = ''; + }) + } else { + this.searchTargerChangeFlag = true; + } } }, { @@ -473,7 +581,6 @@ ], group: [ { - icon: 'el-icon-folder-opened', label: '', arrow: false, prop: 'group1', @@ -481,155 +588,115 @@ { label: '婧愬璞�', prop: 'showType', - type: 'table', - display: false, + type: 'select', + cascader: ['linkType', 'SubUILayout', 'searchObjType'], placeholder: "璇疯緭鍏ュ唴瀹�", - props: { - label: 'name', - value: 'name' - }, - children: { - border: true, - column: [{ - label: '鍚嶇О', - search: true, - searchSpan: 24, - prop: 'name' - }, { - label: '鏍囩', - prop: 'label' - }], - }, - onLoad: ({page, value, data}, callback) => { - //page鍒嗛〉 - // 涓嶇鏄悳绱� 杩樻槸棣栨鍔犺浇閮戒細瑙﹀彂page 鎵�浠ュ彧闇�瑕佹嬁page瀛樺湪涓庡惁杩涜璇锋眰灏卞彲浠� 濡傛灉鍐嶅幓鍒ゆ柇data鎼滅储 鎴栬�卾alue鍒濇鍔犺浇灏变細閲嶅璇锋眰 - if (page) { - const params = { - "conditionMap[filterInputValue]": value ? value.name : '' - }; - getBtmDatasByPage(page.currentPage, page.pageSize, params).then(res => { - callback({ - total: res.data.total, - data: res.data.data - }) + dicUrl: '/api/uiManagerController/getBtmDatasByPage?page=1&limit=-1', + filterable: true, + change: (val) => { + if (val.value) { + let params = { + 'conditionMap[selectBtmType]': this.form.searchTarger === '1' ? this.form.showType : this.form.linkType + } + getPortalVIDatasByPage(1, -1, params).then(res => { + this.templateIdList = res.data.data; + }) + getQTInfoDatasByPage(1, -1, params).then(res => { + this.queryTemplateNameList = res.data.data; }) } + if (this.showTypeChangeFlag) { + if (val.value) { + if (this.form.searchTarger === '1') { + this.form.templateId = ""; + this.form.queryTemplateName = ""; + } else { + this.form.linkType = ""; + this.form.templateId = ""; + this.form.queryTemplateName = ""; + } + } + } else { + this.showTypeChangeFlag = true; + } }, + props: { + label: 'name', + value: 'name', + desc: 'label' + }, + rules: [ + { + required: true, + message: '璇烽�夋嫨鍐呭', + trigger: 'change' + } + ], }, { label: '閾炬帴绫诲瀷', prop: 'linkType', - type: 'table', + type: 'select', display: false, + filterable: true, props: { - label: 'viName', - value: 'viName' + label: 'name', + value: 'name', + desc: 'tag' }, - children: { - border: true, - column: [{ - label: '鍚嶇О', - search: true, - searchSpan: 24, - prop: 'viName' - }, { - label: '绫诲瀷', - prop: 'viType' - }], - }, - onLoad: ({page, value, data}, callback) => { - if (page) { - const params = { - "conditionMap[selectBtmType]": this.form.showType, - "conditionMap[filterInputValue]": data ? data.viName : '', - }; - getPortalVIDatasByPage(page.currentPage, page.pageSize, params).then(res => { - console.log(res); - callback({ - total: res.data.total, - data: res.data.data - }) + dicUrl: '/api/uiManagerController/getLinkDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}', + change: (val) => { + if (val.value) { + let params = { + 'conditionMap[selectBtmType]': val.value + } + getPortalVIDatasByPage(1, -1, params).then(res => { + this.templateIdList = res.data.data; + }) + getQTInfoDatasByPage(1, -1, params).then(res => { + this.queryTemplateNameList = res.data.data; }) } - }, + if (this.linkTypeChangeFlag) { + if (val.value) { + this.form.templateId = ""; + this.form.queryTemplateName = ""; + } + } else { + this.linkTypeChangeFlag = true; + } + } }, { label: '閫夋嫨妯℃澘', - prop: 'showTypea', + prop: 'templateId', display: false, - type: 'table', - props: { - label: 'viName', - value: 'viName' - }, - children: { - border: true, - column: [{ - label: '鍚嶇О', - search: true, - searchSpan: 24, - prop: 'viName' - }, { - label: '绫诲瀷', - prop: 'viType' - }], - }, - onLoad: ({page, value, data}, callback) => { - if (page) { - const params = { - "conditionMap[selectBtmType]": this.form.showType, - "conditionMap[filterInputValue]": data ? data.viName : '', - }; - getPortalVIDatasByPage(page.currentPage, page.pageSize, params).then(res => { - console.log(res); - callback({ - total: res.data.total, - data: res.data.data - }) - }) + formslot: true, + rules: [ + { + required: true, + message: '璇烽�夋嫨妯℃澘', + trigger: 'submit' } - }, + ], }, { label: 'UI瀹氫箟', - prop: 'UI', - type: 'table', + prop: 'SubUILayout', + type: 'select', + filterable: true, display: false, props: { - label: 'qtName', - value: 'qtName' + label: 'plName', + value: 'plCode', }, - children: { - border: true, - column: [{ - label: '鍚嶇О', - search: true, - searchSpan: 24, - prop: 'qtName' - }, { - label: '绫诲瀷', - prop: 'btmName' - }], - }, - onLoad: ({page, value, data}, callback) => { - if (page) { - const params = { - "conditionMap[selectBtmType]": this.form.showType, - "conditionMap[filterInputValue]": data ? data.qtName : '', - }; - getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => { - callback({ - total: res.data.total, - data: res.data.data - }) - }) - } - }, + dicUrl: '/api/uiManagerController/getUILayoutDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}', }, { label: '鏌ヨ绫诲瀷', prop: 'searchType', display: false, + value: '1', type: 'radio', span: 24, dicData: [ @@ -646,112 +713,54 @@ { label: '鏌ヨ瀵硅薄绫诲瀷', prop: 'searchObjType', - type: 'table', + type: 'select', display: false, labelWidth: 100, props: { label: 'qtName', - value: 'qtName' + value: 'qtName', + desc: 'btmName' }, - children: { - border: true, - column: [{ - label: '鍚嶇О', - search: true, - searchSpan: 24, - prop: 'qtName' - }, { - label: '绫诲瀷', - prop: 'btmName' - }], - }, - onLoad: ({page, value, data}, callback) => { - if (page) { - const params = { - "conditionMap[selectBtmType]": this.form.showType, - "conditionMap[filterInputValue]": data ? data.qtName : '', - }; - getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => { - callback({ - total: res.data.total, - data: res.data.data - }) - }) - } - }, + dicUrl: '/api/uiManagerController/getLinkDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]=',// cs绔湁闂 鏆傛椂涓嶅睍绀哄唴瀹� }, { label: '鏌ヨ妯℃澘', - prop: 'showTypes', - type: 'table', + prop: 'queryTemplateName', + type: 'select', display: false, - props: { - label: 'qtName', - value: 'qtName' - }, - children: { - border: true, - column: [{ - label: '鍚嶇О', - search: true, - searchSpan: 24, - prop: 'qtName' - }, { - label: '绫诲瀷', - prop: 'btmName' - }], - }, - onLoad: ({page, value, data}, callback) => { - if (page) { - const params = { - "conditionMap[selectBtmType]": this.form.showType, - "conditionMap[filterInputValue]": data ? data.qtName : '', - }; - getQTInfoDatasByPage(page.currentPage, page.pageSize, params).then(res => { - callback({ - total: res.data.total, - data: res.data.data - }) - }) - } - }, + formslot: true, }, { label: '鎺у埗璺緞', - prop: 'kzlj', + prop: 'controlPath', display: false, type: 'textarea', + span: 24, rows: 3 }, { - label: '鏍硅妭鐐规樉绀鸿〃杈惧紡', - prop: 'genjiedian', + label: '鏍戠粨鏋勫睍寮�鍒�', + prop: 'expandCols', + labelWidth: 110, display: false, - labelWidth: 135, - span: 24 - }, - { - label: '鏍戣妭鐐规樉绀鸿〃杈惧紡', - prop: 'shujiedian', - display: false, - labelWidth: 135, - span: 24 + span: 12 }, { label: '鍙傜収鏍戣缃�', - prop: 'canzhaoshu', + prop: 'showLinkAbs', display: false, }, { label: '鍒嗛殧绗�', - prop: 'fgf', + prop: 'separator', display: false, }, { label: '灞曞紑鏂瑰紡', - prop: 'zkfs', + prop: 'expandMode', display: false, type: 'radio', + value: '1', dicData: [ { label: '閫愮骇灞曞紑', @@ -759,52 +768,50 @@ }, { label: '鍏ㄩ儴灞曞紑', - value: '2' + value: '0' } ] + }, + { + label: '鏍硅妭鐐规樉绀鸿〃杈惧紡', + prop: 'rootContent', + display: false, + labelWidth: 135, + span: 12 + }, + { + label: '鏍戣妭鐐规樉绀鸿〃杈惧紡', + prop: 'showAbs', + display: false, + labelWidth: 135, + span: 12 + }, + { + label: 'B/S鑷畾涔夋煡璇�', + prop: 'bsCustQueryCLsOrUrl', + display: false, + labelWidth: 115, + span: 12 + }, + { + label: 'C/S鑷畾涔夋煡璇�', + prop: 'csCustQueryCLsOrUrl', + display: false, + labelWidth: 115, + span: 12 }, ] }, { - icon: 'el-icon-folder-opened', label: '', arrow: false, prop: 'group2', column: [ { - label: 'EventKey', - prop: 'eventKey', - type: 'select', - value: 'SelectionEvent', - dicData: [ - { - label: 'SelectionEvent', - value: 'SelectionEvent' - }, - { - label: 'DBClickEvent', - value: 'DBClickEvent' - }, - { - label: 'ClickEvent', - value: 'ClickEvent' - } - ], - }, - { - label: 'EventValue', - prop: 'eventValue', - labelWidth: 100 - }, - { - label: '', - prop: 'eventButton', - span: 24 - }, - { label: '', prop: 'bottomValue', - span: 24 + span: 24, + labelWidth: 10 }, ] } @@ -816,8 +823,34 @@ formDataRow: {}, } }, + watch: { + sourceData: { + handler(val) { + if (val && val.plOId) { + this.getTableList(); + } else { + this.data = []; + } + }, + immediate: true, + deep: true + } + }, computed: {}, methods: { + //鑾峰彇鍒楄〃鏁版嵁 + getTableList() { + const params = { + pageContextOId: this.sourceData.plOId + } + getPLPageDefinations(params).then(res => { + this.data = res.data.data; + this.selectList = []; + this.$refs.crud.clearSelection(); + this.tableLoading = false; + }) + }, + // 鏍规嵁涓嶅悓鍊煎尯鍒嗙被鍨� templateTypeValueHandler(val) { const componentMap = { @@ -854,7 +887,102 @@ // 澧炲姞 addClickHandler() { + if (!this.sourceData || !this.sourceData.plOId) { + this.$message.error('璇峰湪涓婃柟閫夋嫨涓�鏉℃暟鎹悗杩涜娣诲姞'); + return; + } this.$refs.crud.rowAdd(); + }, + + // 澧炲姞鍏抽棴瀵硅瘽妗� 娓呯┖event鏁扮粍 + beforeClose(done) { + this.eventData = []; + done(); + }, + + // 淇敼 + editBtnClick(row) { + this.eventData = []; + if (row.eventKey && row.eventValue) { + let keys = row.eventKey.split(','); + let values = row.eventValue.split(','); + + this.eventData = keys.map((key, index) => { + return { + index: this.eventData.length, + eventKey: key.trim(), + eventValue: values[index], + $cellEdit: true + }; + }); + } + this.searchTargerChangeFlag = false; + this.$refs.crud.rowEdit(row); + }, + + // 鍒犻櫎 + rowDeleteHandler(row) { + this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + const params = { + oids: row.id + } + delPageDefination(params).then(res => { + if (res.data.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + this.getTableList(); + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + + // 淇濆瓨 + rowSaveHandler(row, done, loading) { + if (row.templateType === '6') { + row.SubUIObjType = row.showType; + row.showType = ""; + } + const params = { + ...row, + tabPageOId: this.sourceData.plOId + } + addPageDefination(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTableList(); + done(); + } + }).catch(err => { + loading(); + }) + }, + + rowUpdateHandler(row, index, done, loading) { + if (row.templateType === '6') { + row.SubUIObjType = row.showType; + row.showType = ""; + } + const params = { + ...row, + tabPageOId: this.sourceData.plOId + } + updatePageDefination(params).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTableList(); + done(); + } + }).catch(err => { + loading(); + }) }, // 瀵硅瘽妗嗚〃鏍艰鐐瑰嚮 @@ -864,41 +992,37 @@ // 瀵硅瘽妗嗚〃鏍兼坊鍔� formDataAddClickHandler() { - if (!this.form.eventKey) { - this.$message.error('璇烽�夋嫨EventKey'); - return; - } - - if (!this.form.eventValue) { - this.$message.error('璇疯緭鍏ventValue'); - return; - } - - if (this.FormData.length >= 1) { - const eventValueStatus = this.FormData.some(item => item.eventValue === this.form.eventValue); - - if (eventValueStatus) { - this.$message.error('宸插瓨鍦ㄧ浉鍚岀殑 EventValue锛屼笉鑳介噸澶嶆坊鍔�'); - return; - } - } + // if (!this.form.eventKey) { + // this.$message.error('璇烽�夋嫨EventKey'); + // return; + // } + // + // if (!this.form.eventValue) { + // this.$message.error('璇疯緭鍏ventValue'); + // return; + // } + // + // if (this.eventData.length >= 1) { + // const eventValueStatus = this.eventData.some(item => item.eventValue === this.form.eventValue); + // + // if (eventValueStatus) { + // this.$message.error('宸插瓨鍦ㄧ浉鍚岀殑 EventValue锛屼笉鑳介噸澶嶆坊鍔�'); + // return; + // } + // } const obj = { - index: this.FormData.length, - eventKey: this.form.eventKey, - eventValue: this.form.eventValue + index: this.eventData.length, + eventKey: this.form.eventKey || 'SelectionEvent', + eventValue: this.form.eventValue, + $cellEdit: true } - this.FormData.push(obj); + this.eventData.push(obj); }, // 瀵硅瘽妗嗚〃鏍煎垹闄� - formDataDelClickHandler() { - if (func.isEmptyObject(this.formDataRow)) { - this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); - return; - } - - this.FormData = this.FormData.filter(item => item.index !== this.formDataRow.index); + formDataDelClickHandler(row) { + this.eventData = this.eventData.filter(item => item.index !== row.index); }, // 妯℃澘绫诲瀷鏄剧ず闅愯棌鏂规硶 @@ -912,7 +1036,7 @@ // 妯℃澘绫诲瀷涓鸿〃鏍� templateTypeTable(val) { if (!val) return; - this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']); + this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']); }, // 妯℃澘绫诲瀷涓鸿嚜瀹氫箟妯℃澘 @@ -920,19 +1044,19 @@ if (!val) return; const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤� searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨� - this.updateDisplay(val, ['kzlj']); + this.updateDisplay(val, ['controlPath']); }, // 妯℃澘绫诲瀷涓烘爲琛� templateTypeTreeTable(val) { if (!val) return; - this.updateDisplay(val, ['showType', 'showTypea', 'showTypes', 'zkl', 'zkfs']); + this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'expandCols', 'expandMode', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']); }, // 妯℃澘绫诲瀷涓鸿〃鍗� templateTypeForm(val) { if (!val) return; - this.updateDisplay(val, ['showType', 'showTypea', 'showTypes']); + this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']); }, // 妯℃澘绫诲瀷涓烘爲 @@ -940,7 +1064,7 @@ if (!val) return; const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤� searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨� - this.updateDisplay(val, ['showType', 'showTypes', 'genjiedian', 'shujiedian', 'canzhaoshu', 'fgf', 'zkfs', 'linkType']); + this.updateDisplay(val, ['showType', 'queryTemplateName', 'rootContent', 'showAbs', 'showLinkAbs', 'separator', 'expandMode', 'linkType', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']); }, // 妯℃澘绫诲瀷涓篣I瀹氫箟 @@ -948,7 +1072,7 @@ if (!val) return; const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤� searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨� - this.updateDisplay(val, ['showType', 'UI', 'searchType', 'searchObjType', 'showTypes']); + this.updateDisplay(val, ['showType', 'SubUILayout', 'searchType', 'searchObjType', 'queryTemplateName', 'bsCustQueryCLsOrUrl', 'csCustQueryCLsOrUrl']); }, // 鏌ユ壘鏁扮粍涓璞$储寮� @@ -957,41 +1081,33 @@ }, // 涓婄Щ - moveUp() { - const index = this.findIndexByEventValue(this.FormData, this.formDataRow.eventValue); + moveUp(row) { + const index = this.findIndexByEventValue(this.eventData, row.eventValue); if (index > 0) { - // 浣跨敤 splice 鏂规硶鏉ユā鎷熶氦鎹� - const temp = this.FormData.splice(index - 1, 1, this.FormData[index])[0]; // 绉婚櫎 index-1 鐨勫厓绱狅紝骞跺湪鐩稿悓浣嶇疆鎻掑叆 index 鐨勫厓绱狅紝杩斿洖琚Щ闄ょ殑鍏冪礌 - this.FormData.splice(index, 1, temp); // 鍦� index 浣嶇疆鎻掑叆涔嬪墠琚Щ闄ょ殑鍏冪礌 + // 浣跨敤 splice 鏉ユā鎷熶氦鎹� + const temp = this.eventData.splice(index - 1, 1, this.eventData[index])[0]; // 绉婚櫎 index-1 鐨勫厓绱� 骞跺湪鐩稿悓浣嶇疆鎻掑叆 index 鐨勫厓绱� 杩斿洖琚Щ闄ょ殑鍏冪礌 + this.eventData.splice(index, 1, temp); // 鍦� index 浣嶇疆鎻掑叆涔嬪墠琚Щ闄ょ殑鍏冪礌 } }, // 涓嬬Щ - moveDown() { - const index = this.findIndexByEventValue(this.FormData, this.formDataRow.eventValue); - const length = this.FormData.length; + moveDown(row) { + const index = this.findIndexByEventValue(this.eventData, row.eventValue); + const length = this.eventData.length; if (index < length - 1) { - const temp = this.FormData[index]; - this.FormData.splice(index, 1, this.FormData.splice(index + 1, 1, temp)[0]); + const temp = this.eventData[index]; + this.eventData.splice(index, 1, this.eventData.splice(index + 1, 1, temp)[0]); } - }, - - // 鎸夐挳璁捐鍏抽棴瀵硅瘽妗� - dialogClose() { - }, // 鎸夐挳璁捐 btnDesignClickHandler() { - if (this.selectList.length <= 0) { - this.$message.error('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�'); - return; - } - if (this.selectList.length > 1) { - this.$message.error('鏈�澶氶�夋嫨涓�鏉℃暟鎹�'); + if (this.selectList.length != 1) { + this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); return; } this.btnDesignVisible = true; + this.formBtnOid = this.selectList[0].id; this.getTabBtnTree(); }, @@ -1004,7 +1120,12 @@ getTabButtons(params).then(res => { if (res.data.code === 200) { const data = res.data.data; - this.treeData[0].children = data; + this.treeData = [{ + label: this.selectList[0].name, + oId: 'parentNode', + disabled: true, + children: data + }]; this.treeLoading = false; } else { this.$message.error('璇锋鏌ユ帶鍒跺彴閿欒'); @@ -1028,9 +1149,20 @@ this.paramsData.splice(row.$index, 1) }, + // 鎸夐挳璁捐淇℃伅鍙傛暟淇℃伅淇敼 + paramsRowEditHandler(row) { + this.$refs.paramsCrud.rowEdit(row, row.$index); + }, + // 鎸夐挳璁捐鍙傛暟淇℃伅娣诲姞鎸夐挳 paramsRowAddClickHandler() { this.$refs.paramsCrud.rowAdd(); + }, + + // 鎸夐挳璁捐鍙傛暟淇℃伅淇敼淇濆瓨 + paramsRowUpdate(row, index, done, loading) { + this.paramsData.splice(index, 1, row); + done(); }, // 鎸夐挳璁捐鍙傛暟淇℃伅淇濆瓨 @@ -1064,7 +1196,7 @@ // 鎸夐挳璁捐淇敼 editClickBtnHandler() { if (func.isEmptyObject(this.nodeTreeRow)) { - this.$message.error('璇烽�夋嫨鑺傜偣杩涜娣诲姞'); + this.$message.error('璇烽�夋嫨鑺傜偣杩涜淇敼'); return; } @@ -1087,6 +1219,7 @@ // 鎸夐挳璁捐淇濆瓨 saveClickBtnHandler() { + this.dialogLoading = true; const saveFunction = this.saveType === 'add' ? addTapButton : updateTapButton; const bottomParams = {}; if (this.paramsData.length > 0) { @@ -1094,12 +1227,12 @@ bottomParams[item.name] = item.value }) } - ; const params = this.saveType === 'add' ? { ...this.basicForm, parentId: this.nodeTreeRow.oId === 'parentNode' ? '' : this.nodeTreeRow.parentId, - buttonParams: bottomParams + buttonParams: bottomParams, + tableOId: this.selectList[0].id } : { ...this.basicForm, buttonParams: bottomParams @@ -1112,7 +1245,10 @@ this.getTabBtnTree(); this.basicForm = {}; this.paramsData = []; + this.dialogLoading = false; } + }).catch(err => { + this.dialogLoading = false; }) }, @@ -1133,7 +1269,14 @@ cancelButtonText: '鍙栨秷', type: 'warning' }).then(() => { - + deleteTabButton(this.nodeTreeRow).then(res => { + if (res.data.code === 200) { + this.$message.success('鍒犻櫎鎴愬姛'); + this.getTabBtnTree(); + this.basicForm = {}; + this.paramsData = []; + } + }) }).catch(() => { this.$message({ type: 'info', @@ -1141,7 +1284,76 @@ }); }); }, - } + + // 澶嶅埗鍒板叾浠栫粍浠� + cloneClickBtnHandler() { + if (func.isEmptyObject(this.nodeTreeRow)) { + this.$message.error('璇烽�夋嫨鑺傜偣杩涜澶嶅埗'); + return; + } + if (this.nodeTreeRow.oId === "parentNode") { + this.$message.error('椤跺眰鑺傜偣涓嶅厑璁稿鍒�'); + return; + } + this.sourceBtnOid = this.nodeTreeRow.oId; + this.$refs.cloneBtnDialog.openDialog(this.nodeTreeRow); + }, + + // 閫夋嫨action + actionFoucus() { + this.$refs.actionDialog.openDialog(); + }, + + // 淇濆瓨action + actionSaveHandler(val) { + this.$set(this.basicForm, 'actionName', val.plName); + this.$set(this.basicForm, 'actionOId', val.plOId); + }, + + // 鎵撳紑鍏嬮殕瀵硅瘽妗� + rowCloneHandler(row) { + this.fromOid = this.sourceData.plOId; + this.sourceOId = row.id; + this.$refs.cloneDialog.openDialog(row); + }, + + // 璋冩暣涓轰笅绾ф寜閽� + changeBottomBtnHandler() { + if (func.isEmptyObject(this.nodeTreeRow)) { + this.$message.error('璇烽�夋嫨鑺傜偣杩涜淇敼'); + return; + } + + if (this.nodeTreeRow.oId === "parentNode") { + this.$message.error('椤跺眰鑺傜偣涓嶅厑璁歌皟鏁�'); + return; + } + joinBtn(this.nodeTreeRow).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTabBtnTree(); + } + }) + }, + + // 璋冩暣涓轰笂绾ф寜閽� + changeTopBtnHandler() { + if (func.isEmptyObject(this.nodeTreeRow)) { + this.$message.error('璇烽�夋嫨鑺傜偣杩涜淇敼'); + return; + } + if (this.nodeTreeRow.oId === "parentNode") { + this.$message.error('椤跺眰鑺傜偣涓嶅厑璁歌皟鏁�'); + return; + } + exitBtn(this.nodeTreeRow).then(res => { + if (res.data.code === 200) { + this.$message.success(res.data.obj); + this.getTabBtnTree(); + } + }) + } + }, } </script> -- Gitblit v1.9.3