From 644a84c3aa37c7a702a6714418ab5296f79e027a Mon Sep 17 00:00:00 2001 From: ludc <ludc@vci-tech.com> Date: 星期三, 08 一月 2025 17:49:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/queryDefine/index.vue | 72 ++++++++++++++++++++++++++++-------- 1 files changed, 56 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 441a5c2..2a3173e 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> @@ -54,11 +63,12 @@ ref="dialogCrud" :data="attrData" :option="dialogAttrOption" + @select-all="selectAllHandler" @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 +80,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 +171,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 +191,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 +217,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,8 +274,11 @@ this.tableLoading = false; }) }, - selectHandler(selection, row){debugger; - this.dialogSelectionRow=selection + selectHandler(selection, row){ + this.dialogSelectionRow = selection; + }, + selectAllHandler(selection){ + this.dialogSelectionRow = selection; }, changeTemp(data) { this.$refs.queryCrud.clearSelection(); @@ -293,6 +332,7 @@ let abNames=this.dialogSelectionRow.map(item => { return item.id }) + if(abNames.length==0){ this.$message.error('璇烽�夋嫨鏌ヨ灞炴��'); return false; -- Gitblit v1.9.3