From 21b92307e71f2e0064f342dc1918c9002095287a Mon Sep 17 00:00:00 2001 From: wangting <wangting@vci-tech.com> Date: 星期三, 08 一月 2025 16:02:24 +0800 Subject: [PATCH] 业务类型树显示图标 --- Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue | 67 +++++++++++++++++++++++++-------- 1 files changed, 51 insertions(+), 16 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue index 7dd9032..a758ba7 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue @@ -3,15 +3,15 @@ <el-aside> <basic-container> <div ref="TreeBox" style="height: calc(100vh - 154px);!important;"> - <div class="headerCon"> + <div class="headerCon" style="display: flex;justify-content: center"> <avue-radio v-model="radioForm" :dic="radioDic" style="margin: 10px 0 5px"></avue-radio> </div> <!-- 宸︿晶鏍� --> <div style="height: calc(100vh - 230px);"> <avue-tree :data="treeData" :option="treeOption" @node-click="nodeClick"> <span slot-scope="{ node, data }" class="el-tree-node__label"> - <span style="font-size: 15px"> - <i class="el-icon-s-promotion"></i> + <span> + <icon-show :name="data.icon"></icon-show> {{ (node || {}).label }} </span> </span> @@ -23,14 +23,23 @@ <el-main> <basic-container> - 妯℃澘鍒楄〃锛�<avue-select v-model="templateForm" placeholder="璇烽�夋嫨妯℃澘" type="tree" :dic="templateData" @change="changeTemp"></avue-select> + 妯℃澘鍒楄〃锛�<avue-select v-model="templateForm" placeholder="璇烽�夋嫨妯℃澘" type="tree" :dic="templateData" @change="changeTemp" style="width:300px;"></avue-select> <h3>鏌ヨ灞炴��</h3> <avue-crud ref="queryCrud" :data="attrData" :option="attrOption" :table-loading="tableLoading" style="margin-top: 10px"> <template slot="menuLeft" slot-scope="scope"> - <el-button icon="el-icon-plus" size="small" type="primary" @click="addHandler">鍒涘缓</el-button> - <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editHandler">淇敼</el-button> - <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delHandler">鍒犻櫎</el-button> + <el-button v-if="permissionList.addBtn" class="button-custom-icon" size="small" type="primary" @click="addHandler"> + <icon-show :name="permissionList.addBtn.source"></icon-show> + 鍒涘缓 + </el-button> + <el-button v-if="permissionList.editBtn" class="button-custom-icon" plain size="small" type="primary" @click="editHandler"> + <icon-show :name="permissionList.editBtn.source"></icon-show> + 淇敼 + </el-button> + <el-button v-if="permissionList.delBtn" class="button-custom-icon" plain size="small" type="danger" @click="delHandler"> + <icon-show :name="permissionList.delBtn.source"></icon-show> + 鍒犻櫎 + </el-button> </template> </avue-crud> </basic-container> @@ -57,8 +66,8 @@ @select="selectHandler"> </avue-crud> <span slot="footer" class="dialog-footer"> - <el-button @click="addDialogClose">鍙� 娑�</el-button> - <el-button type="primary" @click="addDialogSavaHandler">纭� 瀹�</el-button> + <el-button size="small" type="primary" @click="addDialogSavaHandler">纭� 瀹�</el-button> + <el-button size="small" @click="addDialogClose">鍙� 娑�</el-button> </span> </el-dialog> </el-container> @@ -70,6 +79,7 @@ import {gridTemplate,saveTemplate,updateTemplate,deleteTemplate} from "@/api/queryTemplate/queryDefine"; import basicOption from "@/util/basic-option"; import func from "@/util/func"; +import {mapGetters} from "vuex"; export default { name: "index", @@ -160,6 +170,16 @@ dialogSelectionRow:[] } }, + computed:{ + ...mapGetters(["permission"]), + permissionList() { + return { + addBtn: this.vaildData(this.permission[this.$route.query.id].ADD, false), + delBtn: this.vaildData(this.permission[this.$route.query.id].DELETE, false), + editBtn: this.vaildData(this.permission[this.$route.query.id].EDIT, false), + }; + }, + }, created() { this.getTreeList(); }, @@ -170,8 +190,9 @@ if (newval ==0) { getBizTypes().then(res => { const data = res.data.data.map(item => { - item.label=item.attributes.id; - return item; + this.processChildren(item); // 澶勭悊姣忎釜鑺傜偣 + item.attributes.label = item.attributes.id; + return item.attributes; }); this.treeData = data; loading.close(); @@ -195,14 +216,28 @@ const loading = this.$loading({}); getBizTypes().then(res => { const data = res.data.data.map(item => { - item.label=item.attributes.id; - return item; + this.processChildren(item); // 澶勭悊姣忎釜鑺傜偣 + item.attributes.label = item.attributes.id; + item.attributes.icon = item.attributes.imageName; + return item.attributes; }); this.treeData = data; loading.close(); + }).catch(error=>{ + loading.close(); }) }, - + // 澶勭悊涓氬姟绫诲瀷鏍戝舰缁撴瀯 + processChildren(item) { + if (item.children && item.children.length > 0) { + item.attributes.children = item.children.map(child => { + child.attributes.label = child.attributes.id; + child.attributes.icon = child.attributes.imageName; + this.processChildren(child); // 閫掑綊澶勭悊姣忎釜瀛愯妭鐐� + return child.attributes; // 鍙繑鍥炲瓙鑺傜偣鐨� attributes + }); + } + }, // 鏍戠偣鍑� nodeClick(row) { this.nodeRow = row; @@ -238,7 +273,7 @@ this.tableLoading = false; }) }, - selectHandler(selection, row){debugger; + selectHandler(selection, row){ this.dialogSelectionRow=selection }, changeTemp(data) { @@ -335,7 +370,7 @@ cancelButtonText: '鍙栨秷', type: 'warning' }).then(() => { - deleteTemplate({name:this.templateForm,btmName: this.nodeRow.label, linkFlag: this.radioForm == 1}).then(res => { + deleteTemplate({name:this.templateForm}).then(res => { if (res.data.code === 200) { this.$message.success(res.data.obj); this.getTemp(); -- Gitblit v1.9.3