From 5a6b7d9120ab30d29fb06e2b2b20de03d4de1ddc Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 27 Jun 2025 10:54:21 +0800
Subject: [PATCH] feat:权限菜单---二级页面样式调整
---
src/views/authority/role.vue | 255 ++++++++++++++++++++++----------------------------
1 files changed, 113 insertions(+), 142 deletions(-)
diff --git a/src/views/authority/role.vue b/src/views/authority/role.vue
index 8699e67..65400e6 100644
--- a/src/views/authority/role.vue
+++ b/src/views/authority/role.vue
@@ -1,39 +1,13 @@
<template>
<basic-container>
- <avue-crud
- :option="option"
- :table-loading="loading"
- :data="data"
- ref="crud"
- v-model="form"
- :permission="permissionList"
- :before-open="beforeOpen"
- @row-del="rowDel"
- @row-update="rowUpdate"
- @row-save="rowSave"
- @search-change="searchChange"
- @search-reset="searchReset"
- @selection-change="selectionChange"
- @current-change="currentChange"
- @size-change="sizeChange"
- @refresh-change="refreshChange"
- @on-load="onLoad"
- >
+ <avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form"
+ :permission="permissionList" :before-open="beforeOpen" @row-del="rowDel" @row-update="rowUpdate"
+ @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
+ @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
- <el-button
- type="danger"
- icon="el-icon-delete"
- v-if="permission.role_delete"
- plain
- @click="handleDelete"
- >删 除
+ <el-button type="danger" icon="el-icon-delete" v-if="permission.role_delete" plain @click="handleDelete">删 除
</el-button>
- <el-button
- icon="el-icon-setting"
- v-if="userInfo.role_name.includes('admin')"
- @click="handleRole"
- plain
- >权限设置
+ <el-button icon="el-icon-setting" v-if="userInfo.role_name.includes('admin')" @click="handleRole" plain>权限设置
</el-button>
<!-- -->
</template>
@@ -41,14 +15,8 @@
<el-dialog title="角色权限配置" append-to-body v-model="box" width="345px">
<el-tabs type="border-card">
<el-tab-pane label="菜单权限">
- <el-tree
- :data="menuGrantList"
- show-checkbox
- node-key="id"
- ref="treeMenu"
- :default-checked-keys="menuTreeObj"
- :props="props"
- >
+ <el-tree :data="menuGrantList" show-checkbox node-key="id" ref="treeMenu" :default-checked-keys="menuTreeObj"
+ :props="props">
</el-tree>
</el-tab-pane>
<!-- <el-tab-pane label="数据权限">
@@ -94,12 +62,12 @@
grantTree,
remove,
update,
-} from '@/api/system/role';
-import { mapGetters } from 'vuex';
-import website from '@/config/website';
+} from '@/api/system/role'
+import { mapGetters } from 'vuex'
+import website from '@/config/website'
export default {
- data() {
+ data () {
return {
form: {},
box: false,
@@ -134,6 +102,10 @@
viewBtn: true,
dialogWidth: 900,
dialogClickModal: false,
+
+ height: 'auto',
+ calcHeight: 20,
+
column: [
{
label: '角色名称',
@@ -218,152 +190,152 @@
],
},
data: [],
- };
+ }
},
computed: {
...mapGetters(['userInfo', 'permission']),
- permissionList() {
+ permissionList () {
return {
addBtn: this.validData(this.permission.role_add, false),
viewBtn: this.validData(this.permission.role_view, false),
delBtn: this.validData(this.permission.role_delete, false),
editBtn: this.validData(this.permission.role_edit, false),
- };
+ }
},
- ids() {
- let ids = [];
+ ids () {
+ let ids = []
this.selectionList.forEach(ele => {
- ids.push(ele.id);
- });
- return ids.join(',');
+ ids.push(ele.id)
+ })
+ return ids.join(',')
},
- idsArray() {
- let ids = [];
+ idsArray () {
+ let ids = []
this.selectionList.forEach(ele => {
- ids.push(ele.id);
- });
- return ids;
+ ids.push(ele.id)
+ })
+ return ids
},
},
methods: {
- initData(roleId) {
+ initData (roleId) {
getRoleTreeById(roleId).then(res => {
- const column = this.findObject(this.option.column, 'parentId');
- column.dicData = res.data.data;
- });
+ const column = this.findObject(this.option.column, 'parentId')
+ column.dicData = res.data.data
+ })
},
- submit() {
- const menuList = this.$refs.treeMenu.getCheckedKeys();
+ submit () {
+ const menuList = this.$refs.treeMenu.getCheckedKeys()
// const dataScopeList = this.$refs.treeDataScope.getCheckedKeys();
- const dataScopeList = [];
+ const dataScopeList = []
// const apiScopeList = this.$refs.treeApiScope.getCheckedKeys();
- const apiScopeList = [];
+ const apiScopeList = []
grant(this.idsArray, menuList, dataScopeList, apiScopeList).then(() => {
- this.box = false;
+ this.box = false
this.$message({
type: 'success',
message: '操作成功!',
- });
- this.onLoad(this.page);
- });
+ })
+ this.onLoad(this.page)
+ })
},
- rowSave(row, done, loading) {
+ rowSave (row, done, loading) {
add(row).then(
() => {
- this.onLoad(this.page);
+ this.onLoad(this.page)
this.$message({
type: 'success',
message: '操作成功!',
- });
- done();
+ })
+ done()
},
error => {
- window.console.log(error);
- loading();
+ window.console.log(error)
+ loading()
}
- );
+ )
},
- rowUpdate(row, index, done, loading) {
+ rowUpdate (row, index, done, loading) {
update(row).then(
() => {
- this.onLoad(this.page);
+ this.onLoad(this.page)
this.$message({
type: 'success',
message: '操作成功!',
- });
- done();
+ })
+ done()
},
error => {
- window.console.log(error);
- loading();
+ window.console.log(error)
+ loading()
}
- );
+ )
},
- rowDel(row) {
+ rowDel (row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
- return remove(row.id);
+ return remove(row.id)
})
.then(() => {
- this.onLoad(this.page);
+ this.onLoad(this.page)
this.$message({
type: 'success',
message: '操作成功!',
- });
- });
+ })
+ })
},
- searchReset() {
- this.query = {};
- this.onLoad(this.page);
+ searchReset () {
+ this.query = {}
+ this.onLoad(this.page)
},
- searchChange(params, done) {
- this.query = params;
- this.page.currentPage = 1;
- this.onLoad(this.page, params);
- done();
+ searchChange (params, done) {
+ this.query = params
+ this.page.currentPage = 1
+ this.onLoad(this.page, params)
+ done()
},
- selectionChange(list) {
- this.selectionList = list;
+ selectionChange (list) {
+ this.selectionList = list
},
- selectionClear() {
- this.selectionList = [];
- this.$refs.crud.toggleSelection();
+ selectionClear () {
+ this.selectionList = []
+ this.$refs.crud.toggleSelection()
},
- beforeOpen(done, type) {
+ beforeOpen (done, type) {
if (['add', 'edit'].includes(type)) {
- this.initData(this.form.id);
+ this.initData(this.form.id)
}
- done();
+ done()
},
- handleRole() {
+ handleRole () {
if (this.selectionList.length !== 1) {
- this.$message.warning('只能选择一条数据');
- return;
+ this.$message.warning('只能选择一条数据')
+ return
}
- this.menuTreeObj = [];
- this.dataScopeTreeObj = [];
- this.apiScopeTreeObj = [];
+ this.menuTreeObj = []
+ this.dataScopeTreeObj = []
+ this.apiScopeTreeObj = []
grantTree().then(res => {
- this.menuGrantList = res.data.data.menu;
- this.dataScopeGrantList = res.data.data.dataScope;
- this.apiScopeGrantList = res.data.data.apiScope;
+ this.menuGrantList = res.data.data.menu
+ this.dataScopeGrantList = res.data.data.dataScope
+ this.apiScopeGrantList = res.data.data.apiScope
getRole(this.ids).then(res => {
- this.menuTreeObj = res.data.data.menu;
- this.dataScopeTreeObj = res.data.data.dataScope;
- this.apiScopeTreeObj = res.data.data.apiScope;
- this.box = true;
- });
- });
+ this.menuTreeObj = res.data.data.menu
+ this.dataScopeTreeObj = res.data.data.dataScope
+ this.apiScopeTreeObj = res.data.data.apiScope
+ this.box = true
+ })
+ })
},
- handleDelete() {
+ handleDelete () {
if (this.selectionList.length === 0) {
- this.$message.warning('请选择至少一条数据');
- return;
+ this.$message.warning('请选择至少一条数据')
+ return
}
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
@@ -371,36 +343,35 @@
type: 'warning',
})
.then(() => {
- return remove(this.ids);
+ return remove(this.ids)
})
.then(() => {
- this.onLoad(this.page);
+ this.onLoad(this.page)
this.$message({
type: 'success',
message: '操作成功!',
- });
- this.$refs.crud.toggleSelection();
- });
+ })
+ this.$refs.crud.toggleSelection()
+ })
},
- currentChange(currentPage) {
- this.page.currentPage = currentPage;
+ currentChange (currentPage) {
+ this.page.currentPage = currentPage
},
- sizeChange(pageSize) {
- this.page.pageSize = pageSize;
+ sizeChange (pageSize) {
+ this.page.pageSize = pageSize
},
- refreshChange() {
- this.onLoad(this.page, this.query);
+ refreshChange () {
+ this.onLoad(this.page, this.query)
},
- onLoad(page, params = {}) {
- this.loading = true;
+ onLoad (page, params = {}) {
+ this.loading = true
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
- this.data = res.data.data;
- this.loading = false;
- this.selectionClear();
- });
+ this.data = res.data.data
+ this.loading = false
+ this.selectionClear()
+ })
},
},
-};
+}
</script>
-<style scoped lang="scss">
-</style>
\ No newline at end of file
+<style scoped lang="scss"></style>
\ No newline at end of file
--
Gitblit v1.9.3