From 06a70b6f1f24c5105b1705e892867acf488ca5dd Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期三, 18 十二月 2024 15:28:18 +0800 Subject: [PATCH] UI定义-页签设计&&页面设计区域按钮权限 --- Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/uiDefine/rightRegion/bottomTable/index.vue | 297 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 219 insertions(+), 78 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 00148aa..8f682cd 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 @@ -8,27 +8,25 @@ :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"> - <el-button icon="el-icon-plus" plain size="small" type="primary" + <el-button v-if="permissionChildrenList.UiPageLayoutAddBtn" icon="el-icon-plus" plain size="small" type="primary" @click="addClickHandler">澧炲姞 </el-button> - <el-button icon="el-icon-edit-outline" plain size="small" type="primary" + <el-button v-if="permissionChildrenList.UiPageLayoutDesignBtn" icon="el-icon-edit-outline" plain size="small" type="primary" @click="btnDesignClickHandler">鎸夐挳璁捐 </el-button> </template> <template slot="menu" slot-scope="scope"> - <el-button icon="el-icon-edit" size="small" type="text" @click="editBtnClick(scope.row)">缂栬緫 + <el-button v-if="permissionChildrenList.UiPageLayoutEditBtn" 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 v-if="permissionChildrenList.UiPageLayoutDelBtn" 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 v-if="permissionChildrenList.UiPageLayoutCloneBtn" icon="el-icon-document-copy" size="small" type="text" @click="rowCloneHandler(scope.row)">鍏嬮殕 </el-button> </template> @@ -57,6 +55,52 @@ <span v-else-if="form.templateType === '6'">瀵硅薄绫诲瀷</span> <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 @@ -217,10 +261,14 @@ deleteTabButton, delPageDefination, joinBtn, - exitBtn + 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"; +import {mapGetters} from "vuex"; export default { props: { @@ -241,6 +289,11 @@ name: "index", data() { return { + queryTemplateNameList: [], + templateIdList: [], + searchTargerChangeFlag: false, + showTypeChangeFlag: false, + linkTypeChangeFlag: false, formBtnOid: '', sourceBtnOid: '', sourceOId: '', @@ -362,6 +415,7 @@ data: [], option: { ...basicOption, + size:'mini', height: this.height, addBtn: false, index: true, @@ -372,6 +426,7 @@ { label: '鍚嶇О', prop: 'name', + labelWidth: 110, rules: [ { required: true, @@ -383,6 +438,7 @@ { label: '缂栧彿', prop: 'seq', + labelWidth: 110, hide: false, rules: [ { @@ -393,19 +449,28 @@ ], }, { - label: 'UI瑙f瀽绫诲瀷', + label: '', prop: 'uiParser', hide: true, + labelWidth: 110, }, { - label: '鎵╁睍灞炴��', + label: '', prop: 'extAttr', hide: true, + labelWidth: 110, + }, + { + label: '鎻忚堪', + prop: 'description', + labelWidth: 110, + hide: false, }, { label: '妯℃澘绫诲瀷', prop: 'templateType', type: 'radio', + labelWidth: 110, span: 24, value: '1', dicData: [ @@ -440,9 +505,10 @@ }, change: (val) => { const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'searchObjType', 'queryTemplateName', 'controlPath', 'expandCols', 'rootContent', 'showAbs', 'showLinkAbs', 'separator'] - list.forEach(item => { - this.form[item] = ""; - }) + // list.forEach(item => { + // this.form[item] = ""; + // }) + // this.form.searchTarger = '1' const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤� searchTarger.display = true; // 鍒囨崲榛樿灞曠ず鎼滅储绫诲瀷 // 妯℃澘绫诲瀷涓鸿〃鏍� @@ -463,13 +529,14 @@ label: '鏄剧ず绫诲瀷', prop: 'navigatorType', type: 'radio', + labelWidth: 110, span: 24, value: '1', hide: true, dicData: [ { label: '涓嶆樉绀�', - value: '3' + value: '1' }, { label: '鏄剧ず瑙掕壊', @@ -477,7 +544,7 @@ }, { label: '鏄剧ずFolder', - value: '1', + value: '3', }, ], }, @@ -485,6 +552,7 @@ label: '鎼滅储绫诲瀷', prop: 'searchTarger', display: true, + labelWidth: 110, type: 'radio', value: '1', span: 24, @@ -507,33 +575,62 @@ const obj = this.option.group[0].column.find(item => item.prop === 'linkType'); obj.display = val.value !== '1'; } - // 鍒囨崲娓呯┖妯℃澘绫诲瀷 - const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType']; - list.forEach(item => { - this.form[item] = ''; - }) + + if (this.searchTargerChangeFlag) { + // 鍒囨崲娓呯┖妯℃澘绫诲瀷 + const list = ['showType', 'linkType', 'templateId', 'SubUILayout', 'queryTemplateName', 'searchObjType', 'bsDataModel', 'csDataModel']; + list.forEach(item => { + this.form[item] = ''; + }) + } else { + this.searchTargerChangeFlag = true; + } } - }, - { - label: '鎻忚堪', - prop: 'description', - display: false }, ], group: [ { - label: '', - arrow: false, + icon:'el-icon-info', + label:'', + arrow: true, prop: 'group1', column: [ { label: '婧愬璞�', prop: 'showType', type: 'select', - cascader: ['linkType', 'templateId', 'SubUILayout', 'searchObjType', 'queryTemplateName'], + labelWidth: 115, + cascader: ['linkType', 'SubUILayout', 'searchObjType'], placeholder: "璇疯緭鍏ュ唴瀹�", dicUrl: '/api/uiManagerController/getBtmDatasByPage?page=1&limit=-1', filterable: true, + change: (val) => { + if (val.value) { + let params = { + 'conditionMap[selectBtmType]': this.form.searchTarger === '1' ? val.value : 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', @@ -552,6 +649,7 @@ prop: 'linkType', type: 'select', display: false, + labelWidth: 115, filterable: true, props: { label: 'name', @@ -559,14 +657,34 @@ desc: 'tag' }, 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: 'templateId', + labelWidth: 115, display: false, - type: 'select', - filterable: true, - dicUrl: '/api/uiManagerController/getPortalVIDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}', + formslot: true, rules: [ { required: true, @@ -574,22 +692,17 @@ trigger: 'submit' } ], - props: { - label: 'viName', - value: 'viName', - desc: 'viType' - }, }, { label: 'UI瀹氫箟', prop: 'SubUILayout', type: 'select', + labelWidth: 115, filterable: true, display: false, props: { - label: 'qtName', - value: 'qtName', - desc: 'btmName' + label: 'plName', + value: 'plCode', }, dicUrl: '/api/uiManagerController/getUILayoutDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}', }, @@ -599,6 +712,7 @@ display: false, value: '1', type: 'radio', + labelWidth: 115, span: 24, dicData: [ { @@ -616,7 +730,7 @@ prop: 'searchObjType', type: 'select', display: false, - labelWidth: 100, + labelWidth: 115, props: { label: 'qtName', value: 'qtName', @@ -627,19 +741,15 @@ { label: '鏌ヨ妯℃澘', prop: 'queryTemplateName', + labelWidth: 115, type: 'select', - filterable: true, display: false, - props: { - label: 'qtName', - value: 'qtName', - desc: 'btmName' - }, - dicUrl: '/api/uiManagerController/getQTInfoDatasByPage?page=1&limit=-1&conditionMap[selectBtmType]={{key}}', + formslot: true, }, { label: '鎺у埗璺緞', prop: 'controlPath', + labelWidth: 115, display: false, type: 'textarea', span: 24, @@ -648,18 +758,20 @@ { label: '鏍戠粨鏋勫睍寮�鍒�', prop: 'expandCols', - labelWidth: 110, + labelWidth: 115, display: false, span: 12 }, { label: '鍙傜収鏍戣缃�', prop: 'showLinkAbs', + labelWidth: 115, display: false, }, { label: '鍒嗛殧绗�', prop: 'separator', + labelWidth: 115, display: false, }, { @@ -667,6 +779,7 @@ prop: 'expandMode', display: false, type: 'radio', + labelWidth: 115, value: '1', dicData: [ { @@ -678,6 +791,20 @@ value: '0' } ] + }, + { + label: 'B/S鑷畾涔夋煡璇�', + prop: 'bsDataModel', + display: false, + labelWidth: 115, + span: 12 + }, + { + label: 'C/S鑷畾涔夋煡璇�', + prop: 'csDataModel', + display: false, + labelWidth: 115, + span: 12 }, { label: '鏍硅妭鐐规樉绀鸿〃杈惧紡', @@ -716,6 +843,18 @@ formDataRow: {}, } }, + computed:{ + ...mapGetters(["permission"]), + permissionChildrenList() { + return { + UiPageLayoutAddBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutAdd, false), + UiPageLayoutEditBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutEdit, false), + UiPageLayoutDelBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutDel, false), + UiPageLayoutCloneBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutClone, false), + UiPageLayoutDesignBtn: this.vaildData(this.permission[this.$route.query.id].UiPageLayoutDesign, false), + } + } + }, watch: { sourceData: { handler(val) { @@ -729,7 +868,6 @@ deep: true } }, - computed: {}, methods: { //鑾峰彇鍒楄〃鏁版嵁 getTableList() { @@ -780,7 +918,6 @@ // 澧炲姞 addClickHandler() { - console.log(this.sourceData); if (!this.sourceData || !this.sourceData.plOId) { this.$message.error('璇峰湪涓婃柟閫夋嫨涓�鏉℃暟鎹悗杩涜娣诲姞'); return; @@ -788,22 +925,11 @@ this.$refs.crud.rowAdd(); }, - // 缂栬緫鎵撳紑琛ㄥ崟鍓� - beforeOpen(done, type) { - if (type === 'edit') { - this.form.showType = 'Ludc'; - this.$set(this.form, 'showType', 'Ludc'); - // this.$set(this.option.group[0].column[0],'value','Ludc'); - // this.option.group[0].column[0].value = 'Ludc'; - done(); - } else { - done(); - } - }, - // 澧炲姞鍏抽棴瀵硅瘽妗� 娓呯┖event鏁扮粍 beforeClose(done) { this.eventData = []; + this.showTypeChangeFlag = false; + this.linkTypeChangeFlag = false; done(); }, @@ -823,13 +949,13 @@ }; }); } + console.log('row',row); + this.searchTargerChangeFlag = false; this.$refs.crud.rowEdit(row); - console.log(this.form); }, // 鍒犻櫎 rowDeleteHandler(row) { - console.log(row); this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬暟鎹悧锛�', '鎻愮ず', { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', @@ -858,13 +984,31 @@ row.SubUIObjType = row.showType; row.showType = ""; } - console.log(this.sourceData); const params = { ...row, tabPageOId: this.sourceData.plOId } addPageDefination(params).then(res => { - console.log(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(); @@ -926,7 +1070,7 @@ // 妯℃澘绫诲瀷涓鸿〃鏍� templateTypeTable(val) { if (!val) return; - this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName']); + this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsDataModel', 'csDataModel']); }, // 妯℃澘绫诲瀷涓鸿嚜瀹氫箟妯℃澘 @@ -940,13 +1084,13 @@ // 妯℃澘绫诲瀷涓烘爲琛� templateTypeTreeTable(val) { if (!val) return; - this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'expandCols', 'zkfs']); + this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'expandCols', 'expandMode', 'bsDataModel', 'csDataModel']); }, // 妯℃澘绫诲瀷涓鸿〃鍗� templateTypeForm(val) { if (!val) return; - this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName']); + this.updateDisplay(val, ['showType', 'templateId', 'queryTemplateName', 'bsDataModel', 'csDataModel']); }, // 妯℃澘绫诲瀷涓烘爲 @@ -954,7 +1098,7 @@ if (!val) return; const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤� searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨� - this.updateDisplay(val, ['showType', 'queryTemplateName', 'rootContent', 'showAbs', 'showLinkAbs', 'separator', 'expandMode', 'linkType']); + this.updateDisplay(val, ['showType', 'queryTemplateName', 'rootContent', 'showAbs', 'showLinkAbs', 'separator', 'expandMode', 'linkType', 'bsDataModel', 'csDataModel']); }, // 妯℃澘绫诲瀷涓篣I瀹氫箟 @@ -962,7 +1106,7 @@ if (!val) return; const searchTarger = this.option.column.find(item => item.prop === 'searchTarger'); // 鑾峰彇鎼滅储绫诲瀷閰嶇疆椤� searchTarger.display = false; // 涓嶅睍绀烘悳绱㈢被鍨� - this.updateDisplay(val, ['showType', 'SubUILayout', 'searchType', 'searchObjType', 'queryTemplateName']); + this.updateDisplay(val, ['showType', 'SubUILayout', 'searchType', 'searchObjType', 'queryTemplateName', 'bsDataModel', 'csDataModel']); }, // 鏌ユ壘鏁扮粍涓璞$储寮� @@ -1041,7 +1185,7 @@ // 鎸夐挳璁捐淇℃伅鍙傛暟淇℃伅淇敼 paramsRowEditHandler(row) { - this.$refs.paramsCrud.rowEdit(row); + this.$refs.paramsCrud.rowEdit(row, row.$index); }, // 鎸夐挳璁捐鍙傛暟淇℃伅娣诲姞鎸夐挳 @@ -1121,7 +1265,8 @@ 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 @@ -1159,7 +1304,6 @@ type: 'warning' }).then(() => { deleteTabButton(this.nodeTreeRow).then(res => { - // console.log(res); if (res.data.code === 200) { this.$message.success('鍒犻櫎鎴愬姛'); this.getTabBtnTree(); @@ -1202,7 +1346,6 @@ // 鎵撳紑鍏嬮殕瀵硅瘽妗� rowCloneHandler(row) { - console.log(row); this.fromOid = this.sourceData.plOId; this.sourceOId = row.id; this.$refs.cloneDialog.openDialog(row); @@ -1220,7 +1363,6 @@ return; } joinBtn(this.nodeTreeRow).then(res => { - // console.log(res); if (res.data.code === 200) { this.$message.success(res.data.obj); this.getTabBtnTree(); @@ -1234,7 +1376,6 @@ this.$message.error('璇烽�夋嫨鑺傜偣杩涜淇敼'); return; } - if (this.nodeTreeRow.oId === "parentNode") { this.$message.error('椤跺眰鑺傜偣涓嶅厑璁歌皟鏁�'); return; -- Gitblit v1.9.3