From 986aa62ed00bee39363bab41b4eeb8259d446efd Mon Sep 17 00:00:00 2001 From: ludc <ludc@vci-tech.com> Date: 星期四, 16 一月 2025 18:20:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-ui/src/views/system/role/index.vue | 140 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 107 insertions(+), 33 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue index 53aaddb..2cc1f1b 100644 --- a/Source/plt-web/plt-web-ui/src/views/system/role/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/system/role/index.vue @@ -14,15 +14,62 @@ @row-click="rowClickHandler" @row-save="rowSaveHandler" @row-update="rowUpdateHandler" - @row-del="rowDeleteHandler" > <template slot="menuLeft" slot-scope="scope"> - <el-button icon="el-icon-delete" plain size="small" type="danger" @click="allDelHandler">鍒犻櫎</el-button> - <el-button icon="el-icon-school" plain size="small" type="primary" @click="assignMembersHandler">鍒嗛厤鎴愬憳 + <el-button v-if="permissionList.addBtn" class="button-custom-icon" size="small" type="primary" + @click="$refs.roleCrud.rowAdd()"> + <icon-show :name="permissionList.addBtn.source"></icon-show> + 鏂� 澧� </el-button> - <el-button icon="el-icon-user" plain size="small" type="primary" @click="statisticsHandler">缁熻</el-button> - <el-button icon="el-icon-upload2" plain size="small" type="primary" @click="upLoadRole">瀵煎叆瑙掕壊</el-button> - <el-button icon="el-icon-download" plain size="small" type="primary">瀵煎嚭</el-button> + <el-button v-if="permissionList.delBtn" class="button-custom-icon" plain size="small" type="danger" + @click="allDelHandler"> + <icon-show :name="permissionList.delBtn.source"></icon-show> + 鍒犻櫎 + </el-button> + <el-button v-if="permissionList.statisticsBtn" class="button-custom-icon" plain size="small" type="primary" + @click="statisticsHandler"> + <icon-show :name="permissionList.statisticsBtn.source"></icon-show> + 缁熻 + </el-button> + <el-button v-if="permissionList.importRoleBtn" class="button-custom-icon" plain size="small" type="primary" + @click="upLoadRole"> + <icon-show :name="permissionList.importRoleBtn.source"></icon-show> + 瀵煎叆瑙掕壊 + </el-button> + <el-button v-if="permissionList.exportBtn" class="button-custom-icon" plain size="small" type="primary"> + <icon-show :name="permissionList.exportBtn.source"></icon-show> + 瀵煎嚭 + </el-button> + </template> + + <template slot="menu" slot-scope="{ row, index }"> + <el-button + v-if="permissionList.assignMembersBtn" + size="small" + type="text" + @click="assignMembersHandler(row, index)" + > + <icon-show :name="permissionList.assignMembersBtn.source"></icon-show> + 鍒嗛厤鎴愬憳 + </el-button> + <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> <template slot="roleClassifyText" slot-scope="{row}"> @@ -79,19 +126,13 @@ import basicOption from "@/util/basic-option"; import {column} from "@/views/system/role/option"; import func from "@/util/func"; +import {mapGetters} from "vuex"; export default { name: "index", data() { return { tableData: [], - option: { - ...basicOption, - dialogTop: 0, - dialogWidth: '30%', - column: column, - calcHeight: -60, - }, page: { currentPage: 1, pageSize: 10, @@ -113,6 +154,7 @@ refreshBtn: false, addBtn: false, menu: false, + header: false, column: [ { label: '閮ㄩ棬', @@ -142,6 +184,32 @@ tipList: ["瑙掕壊瀵煎叆鍙湁 鍚嶇О 鍜� 鎻忚堪 涓ゅ垪锛屼笖鍚嶇О涓哄繀杈撻」涓嶈兘涓虹┖"] } }, + 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), + exportBtn: this.vaildData(this.permission[this.$route.query.id].EXPORT, false), + assignMembersBtn: this.vaildData(this.permission[this.$route.query.id].ASSIGN, false), + importRoleBtn: this.vaildData(this.permission[this.$route.query.id].IMPORT, false), + statisticsBtn: this.vaildData(this.permission[this.$route.query.id].DISCARD, false), + }; + }, + option() { + return { + ...basicOption, + addBtn: false, + delBtn: false, + editBtn: false, + dialogTop: 0, + dialogWidth: '30%', + column: column, + calcHeight: -60, + } + } + }, methods: { // 琛ㄦ牸鍒濆鍖栬姹� getTableList() { @@ -152,6 +220,11 @@ this.page.total = res.data.total; this.tableLoading = false; }) + }, + + // 缂栬緫鎸夐挳 + handleEdit(row, index) { + this.$refs.roleCrud.rowEdit(row, index); }, // 鍒楀ご鍒锋柊 @@ -180,8 +253,12 @@ row, this.$refs.roleCrud, this.lastIndex, - (newIndex) => { this.lastIndex = newIndex; }, - () => { this.selectList = []; } + (newIndex) => { + this.lastIndex = newIndex; + }, + () => { + this.selectList = [row]; + } ); }, @@ -189,7 +266,6 @@ rowSaveHandler(row, done, loading) { delete row.roleClassifyText; addRole(row).then(res => { - console.log(res) if (res.data.code === 200) { this.$message.success(res.data.obj); this.getTableList(); @@ -212,12 +288,11 @@ } }).catch(err => { loading(); - console.log(err); }); }, // 鍒犻櫎 - rowDeleteHandler(row) { + handleDel(row, index) { let params = { ids: row.oid } @@ -270,20 +345,22 @@ }, // 鍒嗛厤鎴愬憳 - assignMembersHandler() { - if (this.selectList.length <= 0) { - this.$message.warning('璇烽�夋嫨瑙掕壊杩涜鎴愬憳鍒嗛厤锛�'); - return; - } - - if (this.selectList.length > 1) { - this.$message.warning('涓�娆″彧鑳藉涓�涓鑹茶繘琛屽垎閰嶆垚鍛樻搷浣滐紒'); - return; - } + assignMembersHandler(row,index) { + // if (this.selectList.length <= 0) { + // this.$message.warning('璇烽�夋嫨瑙掕壊杩涜鎴愬憳鍒嗛厤锛�'); + // return; + // } + // + // if (this.selectList.length > 1) { + // this.$message.warning('涓�娆″彧鑳藉涓�涓鑹茶繘琛屽垎閰嶆垚鍛樻搷浣滐紒'); + // return; + // } Promise.all([ - listUserUnInRoleOid({pkRole: this.selectList[0].oid}), - listUserByRoleOid({pkRole: this.selectList[0].oid}) + listUserUnInRoleOid({pkRole: row.oid}), + listUserByRoleOid({pkRole: row.oid}) ]).then(([unInRoleRes, byRoleRes]) => { + this.leftRoleData = []; + this.rightRoleData = []; if (unInRoleRes.data.code === 200 && byRoleRes.data.code === 200) { const leftData = [...unInRoleRes.data.data, ...byRoleRes.data.data]; // 缁勮濂界┛姊鍙敤鏁版嵁 @@ -324,7 +401,6 @@ return; } listUserByRoleOid({pkRole: this.selectList[0].oid}).then(res => { - console.log(res) if (res.data.code === 200) { const data = res.data.data; this.countData = data.map(item => { @@ -337,8 +413,6 @@ }); this.statisticsVisible = true; } - }).catch(err => { - console.log(err) }) }, -- Gitblit v1.9.3