权限调整

master
zhangdi 3 months ago
parent 87bc6dcacc
commit c16329ea5a
  1. 3
      src/page/index/index.vue
  2. 229
      src/page/login/authorization.vue
  3. 157
      src/views/system/menu.vue

@ -89,8 +89,9 @@
// //
openMenu(item = {}) { openMenu(item = {}) {
console.log("itemitemitemopenMenu", this.userInfo) console.log("itemitemitemopenMenu", this.userInfo)
let roleIds = this.userInfo.roleList.map(item => item.id);
this.$store.dispatch("GetMenu", item.id).then(data => { this.$store.dispatch("GetMenu", {roleId:roleIds.join(',')}).then(data => {
console.log("每次刷新调用", data); console.log("每次刷新调用", data);
if (data.length !== 0) { if (data.length !== 0) {
this.$router.$avueRouter.formatRoutes(data, true); this.$router.$avueRouter.formatRoutes(data, true);

@ -9,7 +9,7 @@ import { mapGetters } from "vuex";
export default { export default {
name: "authorization", name: "authorization",
computed: { computed: {
...mapGetters(["tagWel", "userInfo"]) ...mapGetters(["tagWel", "userInfo"]),
}, },
data() { data() {
return {}; return {};
@ -20,10 +20,231 @@ computed: {
methods: { methods: {
getUserinfo() { getUserinfo() {
let data = this.$route.query.data; let data = this.$route.query.data;
// let data1 = {
// success: true,
// message: "",
// code: 200,
// result: {
// userId: "LiuXu",
// name: "",
// department: "//IT/",
// mainDepartment: "82",
// mainErDepartment: "20",
// leaderInDept: ",",
// gender: "",
// phone: "17853572157",
// mail: null,
// roleList: [
// {
// id: 1,
// code: "admin",
// name: "",
// },
// {
// id: 11,
// code: "trainAdmin",
// name: "",
// },
// {
// id: 19,
// code: "dispatcherAdmin",
// name: "",
// },
// {
// id: 41,
// code: "sidelineDriver",
// name: "",
// },
// {
// id: 62,
// code: "dutyAdmin",
// name: "",
// },
// {
// id: 119,
// code: "carDispatcherAdmin",
// name: "",
// },
// {
// id: 180,
// code: "birthdayAdmin",
// name: "",
// },
// {
// id: 215,
// code: "TeaAdmin",
// name: "",
// },
// {
// id: 217,
// code: "AddressAdmin",
// name: "",
// },
// {
// id: 220,
// code: "comprehensiveAdmin",
// name: "",
// },
// {
// id: 223,
// code: "deptStockAdmin",
// name: "",
// },
// ],
// roleNames:
// ",,,,,,,,,,",
// checked: false,
// manageNum: "1",
// deptId: null,
// deptList: [
// {
// id: "12",
// name: "",
// parentid: "1",
// order: 2147484447,
// oaId: 1000242,
// userList: null,
// children: [],
// },
// {
// id: "18",
// name: "",
// parentid: "1",
// order: 2147484322,
// oaId: 1000243,
// userList: null,
// children: [],
// },
// {
// id: "17",
// name: "",
// parentid: "1",
// order: 2147484197,
// oaId: 1000244,
// userList: null,
// children: [],
// },
// {
// id: "22",
// name: "",
// parentid: "1",
// order: 2147484134,
// oaId: 1000246,
// userList: null,
// children: [],
// },
// {
// id: "23",
// name: "",
// parentid: "1",
// order: 2147484103,
// oaId: 1000247,
// userList: null,
// children: [],
// },
// {
// id: "21",
// name: "",
// parentid: "1",
// order: 2147484087,
// oaId: 1000245,
// userList: null,
// children: [],
// },
// {
// id: "15",
// name: "",
// parentid: "1",
// order: 2147484072,
// oaId: 1000400,
// userList: null,
// children: [],
// },
// {
// id: "19",
// name: "",
// parentid: "1",
// order: 2147484009,
// oaId: 1000404,
// userList: null,
// children: [],
// },
// {
// id: "14",
// name: "",
// parentid: "1",
// order: 2147483947,
// oaId: 1000301,
// userList: null,
// children: [],
// },
// {
// id: "2",
// name: "",
// parentid: "1",
// order: 2147483884,
// oaId: 1000334,
// userList: null,
// children: [],
// },
// {
// id: "16",
// name: "",
// parentid: "1",
// order: 2147483822,
// oaId: 1000362,
// userList: null,
// children: [],
// },
// {
// id: "24",
// name: "",
// parentid: "1",
// order: 2147483697,
// oaId: 1000409,
// userList: null,
// children: [],
// },
// {
// id: "20",
// name: "",
// parentid: "1",
// order: 2147483634,
// oaId: 1000564,
// userList: null,
// children: [],
// },
// {
// id: "10",
// name: "",
// parentid: "1",
// order: 2147483572,
// oaId: 1000891,
// userList: null,
// children: [],
// },
// {
// id: "60",
// name: "",
// parentid: "1",
// order: 99996000,
// oaId: null,
// userList: null,
// children: [],
// },
// ],
// postName: "",
// virPostName: "",
// apprStatus: null,
// isCanAbnormal: true,
// userSort: 1000,
// isDel: false,
// mainErDepartmentName: "",
// },
// timestamp: 1768984070128,
// };
getUserinfo(this.$route.query.data).then((res) => { getUserinfo(this.$route.query.data).then((res) => {
this.$store.dispatch("user/setUserInfo", res); this.$store.dispatch("user/setUserInfo", res);
// console.log("", res.data.result);
const loading = this.$loading({ const loading = this.$loading({
lock: true, lock: true,
text: "登录中,请稍后。。。", text: "登录中,请稍后。。。",
@ -34,7 +255,7 @@ computed: {
.then(() => { .then(() => {
console.log("登录成功", res.data.result); console.log("登录成功", res.data.result);
console.log("获取用户信息", this.tagWel.value); console.log("获取用户信息", this.tagWel.value);
// this.$router.push({path: this.tagWel.value}); this.$router.push({path: this.tagWel.value});
loading.close(); loading.close();
}) })
.catch(() => { .catch(() => {

@ -1,6 +1,7 @@
<template> <template>
<basic-container> <basic-container>
<avue-crud :option="option" <avue-crud
:option="option"
:table-loading="loading" :table-loading="loading"
:data="data" :data="data"
ref="crud" ref="crud"
@ -18,14 +19,17 @@
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@on-load="onLoad" @on-load="onLoad"
@tree-load="treeLoad"> @tree-load="treeLoad"
>
<template slot="menuLeft"> <template slot="menuLeft">
<el-button type="danger" <el-button
type="danger"
size="small" size="small"
icon="el-icon-delete" icon="el-icon-delete"
v-if="permission.menu_delete" v-if="permission.menu_delete"
plain plain
@click="handleDelete"> @click="handleDelete"
>
</el-button> </el-button>
</template> </template>
<template slot-scope="scope" slot="menu"> <template slot-scope="scope" slot="menu">
@ -34,12 +38,11 @@
icon="el-icon-circle-plus-outline" icon="el-icon-circle-plus-outline"
size="small" size="small"
@click.stop="handleAdd(scope.row, scope.index)" @click.stop="handleAdd(scope.row, scope.index)"
v-if="userInfo.role_name.includes('admin') && scope.row.category === 1" v-if="scope.row.category === 1"
>新增子项 >新增子项
</el-button> </el-button>
</template> </template>
<template slot-scope="{row}" <template slot-scope="{ row }" slot="source">
slot="source">
<div style="text-align: center"> <div style="text-align: center">
<i :class="row.source" /> <i :class="row.source" />
</div> </div>
@ -92,9 +95,9 @@
{ {
required: true, required: true,
message: "请输入菜单名称", message: "请输入菜单名称",
trigger: "blur" trigger: "blur",
} },
] ],
}, },
{ {
label: "路由地址", label: "路由地址",
@ -103,9 +106,9 @@
{ {
required: true, required: true,
message: "请输入路由地址", message: "请输入路由地址",
trigger: "blur" trigger: "blur",
} },
] ],
}, },
{ {
label: "上级菜单", label: "上级菜单",
@ -115,15 +118,15 @@
hide: true, hide: true,
addDisabled: false, addDisabled: false,
props: { props: {
label: "title" label: "title",
}, },
rules: [ rules: [
{ {
required: false, required: false,
message: "请选择上级菜单", message: "请选择上级菜单",
trigger: "click" trigger: "click",
} },
] ],
}, },
{ {
label: "菜单图标", label: "菜单图标",
@ -135,9 +138,9 @@
{ {
required: true, required: true,
message: "请输入菜单图标", message: "请输入菜单图标",
trigger: "click" trigger: "click",
} },
] ],
}, },
{ {
label: "菜单编号", label: "菜单编号",
@ -147,9 +150,9 @@
{ {
required: true, required: true,
message: "请输入菜单编号", message: "请输入菜单编号",
trigger: "blur" trigger: "blur",
} },
] ],
}, },
{ {
label: "菜单类型", label: "菜单类型",
@ -158,21 +161,21 @@
dicData: [ dicData: [
{ {
label: "菜单", label: "菜单",
value: 1 value: 1,
}, },
{ {
label: "按钮", label: "按钮",
value: 2 value: 2,
} },
], ],
hide: true, hide: true,
rules: [ rules: [
{ {
required: true, required: true,
message: "请选择菜单类型", message: "请选择菜单类型",
trigger: "blur" trigger: "blur",
} },
] ],
}, },
{ {
label: "菜单别名", label: "菜单别名",
@ -182,9 +185,9 @@
{ {
required: true, required: true,
message: "请输入菜单别名", message: "请输入菜单别名",
trigger: "blur" trigger: "blur",
} },
] ],
}, },
{ {
label: "新窗口", label: "新窗口",
@ -195,21 +198,21 @@
dicData: [ dicData: [
{ {
label: "否", label: "否",
value: 1 value: 1,
}, },
{ {
label: "是", label: "是",
value: 2 value: 2,
} },
], ],
value: 1, value: 1,
rules: [ rules: [
{ {
required: true, required: true,
message: "请选择新窗口打开", message: "请选择新窗口打开",
trigger: "blur" trigger: "blur",
} },
] ],
}, },
{ {
label: "菜单排序", label: "菜单排序",
@ -219,9 +222,9 @@
{ {
required: true, required: true,
message: "请输入菜单排序", message: "请输入菜单排序",
trigger: "blur" trigger: "blur",
} },
] ],
}, },
{ {
label: "菜单备注", label: "菜单备注",
@ -229,21 +232,21 @@
type: "textarea", type: "textarea",
span: 24, span: 24,
minRows: 2, minRows: 2,
hide: true hide: true,
} },
] ],
}, },
data: [] data: [],
}; };
}, },
watch: { watch: {
'form.category'() { "form.category"() {
const category = func.toInt(this.form.category); const category = func.toInt(this.form.category);
this.$refs.crud.option.column.filter(item => { this.$refs.crud.option.column.filter((item) => {
if (item.prop === "path") { if (item.prop === "path") {
item.rules[0].required = category === 1; item.rules[0].required = category === 1;
} }
if (item.prop === 'isOpen') { if (item.prop === "isOpen") {
item.disabled = category === 2; item.disabled = category === 2;
} }
}); });
@ -256,20 +259,20 @@
addBtn: this.vaildData(this.permission.menu_add, false), addBtn: this.vaildData(this.permission.menu_add, false),
viewBtn: this.vaildData(this.permission.menu_view, false), viewBtn: this.vaildData(this.permission.menu_view, false),
delBtn: this.vaildData(this.permission.menu_delete, false), delBtn: this.vaildData(this.permission.menu_delete, false),
editBtn: this.vaildData(this.permission.menu_edit, false) editBtn: this.vaildData(this.permission.menu_edit, false),
}; };
}, },
ids() { ids() {
let ids = []; let ids = [];
this.selectionList.forEach(ele => { this.selectionList.forEach((ele) => {
ids.push(ele.id); ids.push(ele.id);
}); });
return ids.join(","); return ids.join(",");
} },
}, },
methods: { methods: {
initData() { initData() {
getMenuTree().then(res => { getMenuTree().then((res) => {
const column = this.findObject(this.option.column, "parentId"); const column = this.findObject(this.option.column, "parentId");
column.dicData = res.data.result; column.dicData = res.data.result;
}); });
@ -282,39 +285,45 @@
this.$refs.crud.rowAdd(); this.$refs.crud.rowAdd();
}, },
rowSave(row, done, loading) { rowSave(row, done, loading) {
add(row).then((res) => { add(row).then(
(res) => {
// //
const data = res.data.result; const data = res.data.result;
row.id = data.id; row.id = data.id;
this.$message({ this.$message({
type: "success", type: "success",
message: "操作成功!" message: "操作成功!",
}); });
// //
done(row); done(row);
}, error => { },
(error) => {
window.console.log(error); window.console.log(error);
loading(); loading();
}); }
);
}, },
rowUpdate(row, index, done, loading) { rowUpdate(row, index, done, loading) {
update(row).then(() => { update(row).then(
() => {
this.$message({ this.$message({
type: "success", type: "success",
message: "操作成功!" message: "操作成功!",
}); });
// //
done(row); done(row);
}, error => { },
(error) => {
window.console.log(error); window.console.log(error);
loading(); loading();
}); }
);
}, },
rowDel(row, index, done) { rowDel(row, index, done) {
this.$confirm("确定将选择数据删除?", { this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning",
}) })
.then(() => { .then(() => {
return remove(row.id); return remove(row.id);
@ -322,7 +331,7 @@
.then(() => { .then(() => {
this.$message({ this.$message({
type: "success", type: "success",
message: "操作成功!" message: "操作成功!",
}); });
// //
done(row); done(row);
@ -336,7 +345,7 @@
this.$confirm("确定将选择数据删除?", { this.$confirm("确定将选择数据删除?", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning" type: "warning",
}) })
.then(() => { .then(() => {
return remove(this.ids); return remove(this.ids);
@ -351,7 +360,7 @@
this.onLoad(this.page); this.onLoad(this.page);
this.$message({ this.$message({
type: "success", type: "success",
message: "操作成功!" message: "操作成功!",
}); });
}); });
}, },
@ -362,7 +371,7 @@
}, },
searchChange(params, done) { searchChange(params, done) {
this.query = params; this.query = params;
this.parentId = ''; this.parentId = "";
this.page.currentPage = 1; this.page.currentPage = 1;
this.onLoad(this.page, params); this.onLoad(this.page, params);
done(); done();
@ -379,7 +388,7 @@
this.initData(); this.initData();
} }
if (["edit", "view"].includes(type)) { if (["edit", "view"].includes(type)) {
getMenu(this.form.id).then(res => { getMenu(this.form.id).then((res) => {
this.form = res.data.data; this.form = res.data.data;
}); });
} }
@ -403,22 +412,22 @@
}, },
onLoad(page, params = {}) { onLoad(page, params = {}) {
this.loading = true; this.loading = true;
getLazyList(this.parentId, Object.assign(params, this.query)).then(res => { getLazyList(this.parentId, Object.assign(params, this.query)).then(
(res) => {
this.data = res.data.result; this.data = res.data.result;
this.loading = false; this.loading = false;
this.selectionClear(); this.selectionClear();
}); }
);
}, },
treeLoad(tree, treeNode, resolve) { treeLoad(tree, treeNode, resolve) {
const parentId = tree.id; const parentId = tree.id;
getLazyList(parentId).then(res => { getLazyList(parentId).then((res) => {
resolve(res.data.result); resolve(res.data.result);
}); });
} },
} },
}; };
</script> </script>
<style> <style></style>
</style>

Loading…
Cancel
Save