From 370b26066c560f15f6a84caca2be149e48e86556 Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期二, 07 一月 2025 15:52:05 +0800 Subject: [PATCH] 系统菜单 默认显示&&系统配置、对象建模按钮权限以及按钮图标 --- Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue | 117 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 99 insertions(+), 18 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue b/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue index b0427c1..b30aeee 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/fileCab/index.vue @@ -2,7 +2,7 @@ <!--鏂囦粨绠$悊椤甸潰--> <basic-container> <avue-crud - ref="logCrud" + ref="crud" v-model="form" :data="tableData" :option="option" @@ -10,14 +10,40 @@ @on-load="getTableList" @row-save="rowSaveHandler" @row-update="rowUpdateHandler" - @row-del="rowDeleteHandler" + @row-click="rowClickHandler" + @selection-change="selectionChange" > <template slot="menuLeft" slot-scope="scope"> - <el-button icon="el-icon-download" plain size="small" type="primary" @click="exportClickHandler">瀵煎嚭</el-button> + <el-button v-if="permissionList.addBtn" class="button-custom-icon" size="small" type="primary" + @click="$refs.crud.rowAdd()"> + <icon-show :name="permissionList.addBtn.source"></icon-show> + 鏂� 澧� + </el-button> + <el-button v-if="permissionList.exportBtn" class="button-custom-icon" plain size="small" type="primary" @click="exportClickHandler"> + <icon-show :name="permissionList.exportBtn.source"></icon-show> + 瀵煎嚭 + </el-button> </template> - <!--<template #menu="{row,index,size}"> - <el-button icon="el-icon-user" type="text" size="small" @click="userHandler(row,index)">鍒嗛厤鎴愬憳</el-button> - </template>--> + <template slot="menu" slot-scope="{ row, index }"> + <el-button + v-if="permissionList.editBtn" + size="small" + type="text" + @click="handleEdit(row, index)" + > + <icon-show :name="permissionList.editBtn.source"></icon-show> + 缂栬緫 + </el-button> + <el-button + v-if="permissionList.delBtn" + size="small" + type="text" + @click="handleDel(row, index)" + > + <icon-show :name="permissionList.delBtn.source"></icon-show> + 鍒犻櫎 + </el-button> + </template> </avue-crud> <!-- 鍒嗛厤鎴愬憳绌挎妗� --> <transfer ref="transfer" :left-role-data="leftRoleData" :right-role-data="rightRoleData" @@ -32,6 +58,7 @@ import func from "@/util/func"; import basicOption from "@/util/basic-option"; import {listUserByRoleOid, listUserUnInRoleOid, saveRight} from "@/api/system/role/api"; +import {mapGetters} from "vuex"; export default { name: "index", @@ -40,8 +67,36 @@ form:{}, tableLoading: false, tableData: [], - option: { + currentRow:null, + leftRoleData: [], // 鍒嗛厤鎴愬憳绌挎妗嗗乏渚у垵濮嬫暟鎹� + rightRoleData: [], // 鍒嗛厤鎴愬憳绌挎妗嗗彸渚у垵濮嬫暟鎹� + transferTitle: ['鏂囦欢鏌滃鎴愬憳', '鏂囦欢鏌滃唴鎴愬憳'], + selectionList: [], + } + }, + computed: { + ids() { + let ids = []; + this.selectionList.forEach(ele => { + ids.push(ele.id); + }); + return ids.join(","); + }, + ...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), + exportBtn: this.vaildData(this.permission[this.$route.query.id].EXPORT, false), + }; + }, + option(){ + return { ...basicOption, + addBtn:false, + editBtn:false, + delBtn:false, calcHeight: -60, align:'left', headerAlign:'center', @@ -104,11 +159,7 @@ }); }, }] - }, - currentRow:null, - leftRoleData: [], // 鍒嗛厤鎴愬憳绌挎妗嗗乏渚у垵濮嬫暟鎹� - rightRoleData: [], // 鍒嗛厤鎴愬憳绌挎妗嗗彸渚у垵濮嬫暟鎹� - transferTitle: ['鏂囦欢鏌滃鎴愬憳', '鏂囦欢鏌滃唴鎴愬憳'], + } } }, methods: { @@ -122,7 +173,7 @@ }, // 鏂板 - rowSaveHandler(row, done,loading) { + rowSaveHandler(row, done, loading) { savePvolume(row).then(res => { if (res.data.code === 200) { this.$message.success(res.data.obj); @@ -134,8 +185,12 @@ }); }, + handleEdit(row,index){ + this.$refs.crud.rowEdit(row, index); + }, + // 缂栬緫 - rowUpdateHandler(row, index, done,loading) { + rowUpdateHandler(row, index, done, loading) { updatePvolume(row).then(res => { if (res.data.code === 200) { this.$message.success(res.data.obj); @@ -148,7 +203,7 @@ }, // 鍒犻櫎 - rowDeleteHandler(row) { + handleDel(row,index) { let params = { ids: row.id } @@ -173,8 +228,15 @@ }, // 瀵煎嚭 exportClickHandler() { + if (this.ids == null || this.ids == "") { + this.$message({ + type: 'warning', + message: '璇峰嬀閫夎瀵煎嚭鐨勬暟鎹�!' + }); + return; + } const loading = this.$loading({}); - exportPvolumes().then(res => { + exportPvolumes({"pvolumeIds": this.ids}).then(res => { func.downloadFileByBlobHandler(res); this.createdLoading = false this.$message.success('瀵煎嚭鎴愬姛'); @@ -183,8 +245,8 @@ }, //鍒嗛厤鎴愬憳 - userHandler(row,index){ - this.currentRow=row; + userHandler(row, index) { + this.currentRow = row; Promise.all([ listUserUnInRoleOid({pkRole: row.id}), listUserByRoleOid({pkRole: row.id}) @@ -214,6 +276,25 @@ this.getTableList(); }) }, + //閫夋嫨鐨勮 + selectionChange(list) { + this.selectionList = list; + }, + + // 琛屽崟閫� + rowClickHandler(row) { + func.rowClickHandler( + row, + this.$refs.crud, + this.lastIndex, + (newIndex) => { + this.lastIndex = newIndex; + }, + () => { + this.selectionList = [row]; + } + ); + }, } } </script> -- Gitblit v1.9.3