Compare commits

..

3 Commits

  1. 7
      src/api/system/menu.js
  2. 9
      src/api/system/role.js
  3. 1
      src/page/index/index.vue
  4. 2
      src/page/index/top/top-menu.vue
  5. 2
      src/store/modules/dict.js
  6. 5
      src/store/modules/user.js
  7. 2
      src/views/authority/apiscope.vue
  8. 2
      src/views/authority/datascope.vue
  9. 220
      src/views/authority/role.vue
  10. 1
      src/views/system/dict.vue

@ -97,10 +97,11 @@ export const getTopMenu = () => request({
method: 'get' method: 'get'
}); });
export const getRoutes = (topMenuId) => request({ export const getRoutes = (roleId) => request({
url: '/api/blade-system/menu/routes', url: '/smartpark/menu/routes',
method: 'get', method: 'get',
params: { params: {
topMenuId, roleId,
} }
}); });

@ -13,14 +13,15 @@ export const getList = (current, size, params) => {
} }
export const grantTree = () => { export const grantTree = () => {
return request({ return request({
url: '/api/blade-system/menu/grant-tree', url: '/smartpark/menu/grant-tree',
method: 'get', method: 'get',
}) })
} }
export const grant = (roleIds, menuIds, dataScopeIds, apiScopeIds) => { export const grant = (roleIds, menuIds, dataScopeIds, apiScopeIds) => {
return request({ return request({
url: '/api/blade-system/role/grant', url: '/smartpark/role/grant',
method: 'post', method: 'post',
data: { data: {
roleIds, roleIds,
@ -60,7 +61,7 @@ export const update = (row) => {
export const getRole = (roleIds) => { export const getRole = (roleIds) => {
return request({ return request({
url: '/api/blade-system/menu/role-tree-keys', url: '/smartpark/menu/role-tree-keys',
method: 'get', method: 'get',
params: { params: {
roleIds, roleIds,
@ -70,7 +71,7 @@ export const getRole = (roleIds) => {
export const getRoleTree = (tenantId) => { export const getRoleTree = (tenantId) => {
return request({ return request({
url: '/api/blade-system/role/tree', url: '/smartpark/role/tree',
method: 'get', method: 'get',
params: { params: {
tenantId, tenantId,

@ -88,6 +88,7 @@
}, },
// //
openMenu(item = {}) { openMenu(item = {}) {
console.log("itemitemitemopenMenu", item)
this.$store.dispatch("GetMenu", item.id).then(data => { this.$store.dispatch("GetMenu", item.id).then(data => {
if (data.length !== 0) { if (data.length !== 0) {
this.$router.$avueRouter.formatRoutes(data, true); this.$router.$avueRouter.formatRoutes(data, true);

@ -45,12 +45,14 @@
}, },
methods: { methods: {
openHome(itemHome) { openHome(itemHome) {
this.index.openMenu(itemHome); this.index.openMenu(itemHome);
this.$router.push({ this.$router.push({
path: this.$router.$avueRouter.getPath({name: itemHome.name, src: ''}, {}) path: this.$router.$avueRouter.getPath({name: itemHome.name, src: ''}, {})
}); });
}, },
openMenu(item) { openMenu(item) {
console.log("openMenu", item)
this.index.openMenu(item) this.index.openMenu(item)
}, },
getMenu() { getMenu() {

@ -10,7 +10,7 @@ const dict = {
FlowRoutes({commit}) { FlowRoutes({commit}) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
getDictionary({code: 'flow'}).then(res => { getDictionary({code: 'flow'}).then(res => {
commit('SET_FLOW_ROUTES', res.data.data); commit('SET_FLOW_ROUTES', res.data.result || []);
resolve(); resolve();
}).catch(error => { }).catch(error => {
reject(error) reject(error)

@ -255,8 +255,8 @@ const user = {
//获取系统菜单 //获取系统菜单
GetMenu({ commit, dispatch }, topMenuId) { GetMenu({ commit, dispatch }, topMenuId) {
return new Promise(resolve => { return new Promise(resolve => {
getRoutes(topMenuId).then((res) => { getRoutes().then((res) => {
const data = res.data.data const data = res.data.result
let menu = deepClone(data); let menu = deepClone(data);
menu.forEach(ele => { menu.forEach(ele => {
addPath(ele, true); addPath(ele, true);
@ -266,6 +266,7 @@ const user = {
dispatch('GetButtons'); dispatch('GetButtons');
resolve(menu) resolve(menu)
}) })
}) })
}, },
//获取系统按钮 //获取系统按钮

@ -506,7 +506,7 @@
onLoad(page, params = {}) { onLoad(page, params = {}) {
this.loading = true; this.loading = true;
getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => { getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => {
this.data = res.data.data; this.data = res.data.result;
this.loading = false; this.loading = false;
this.selectionClear(); this.selectionClear();
}); });

@ -552,7 +552,7 @@ export default {
onLoad(page, params = {}) { onLoad(page, params = {}) {
this.loading = true; this.loading = true;
getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => { getLazyMenuList(this.parentId, Object.assign(params, this.query)).then(res => {
this.data = res.data.data; this.data = res.data.result;
this.loading = false; this.loading = false;
this.selectionClear(); this.selectionClear();
}); });

@ -20,7 +20,7 @@
@on-load="onLoad" @on-load="onLoad"
> >
<template slot="menuLeft"> <template slot="menuLeft">
<el-button <!-- <el-button
type="danger" type="danger"
size="small" size="small"
icon="el-icon-delete" icon="el-icon-delete"
@ -28,7 +28,7 @@
plain plain
@click="handleDelete" @click="handleDelete"
> >
</el-button> </el-button> -->
<el-button <el-button
size="small" size="small"
icon="el-icon-setting" icon="el-icon-setting"
@ -152,36 +152,39 @@ export default {
border: true, border: true,
index: true, index: true,
selection: true, selection: true,
viewBtn: true, viewBtn: false,
addBtn: false,
editBtn: false, //
delBtn: false, //
labelWidth: 120, labelWidth: 120,
searchLabelWidth: 120, searchLabelWidth: 120,
menuWidth: 350, menuWidth: 350,
dialogWidth: 600, dialogWidth: 600,
dialogClickModal: false, dialogClickModal: false,
column: [ column: [
{ // {
label: "上级角色", // label: "",
prop: "parentId", // prop: "parentId",
dicData: [], // dicData: [],
type: "tree", // type: "tree",
hide: true, // hide: true,
span: 24, // span: 24,
headerAlign: "center", // headerAlign: "center",
align: "center", // align: "center",
props: { // props: {
label: "title", // label: "title",
}, // },
rules: [ // rules: [
{ // {
required: false, // required: false,
message: "请选择上级角色", // message: "",
trigger: "click", // trigger: "click",
}, // },
], // ],
}, // },
{ {
label: "角色名称", label: "角色名称",
prop: "roleName", prop: "name",
search: true, search: true,
headerAlign: "center", headerAlign: "center",
align: "center", align: "center",
@ -194,36 +197,81 @@ export default {
}, },
], ],
}, },
// {
// label: "",
// prop: "tenantId",
// type: "tree",
// dicUrl: "/api/blade-system/tenant/select",
// addDisplay: false,
// editDisplay: false,
// headerAlign: "center",
// align: "center",
// viewDisplay: website.tenantMode,
// span: 24,
// props: {
// label: "tenantName",
// value: "tenantId",
// },
// hide: !website.tenantMode,
// search: website.tenantMode,
// rules: [
// {
// required: true,
// message: "",
// trigger: "click",
// },
// ],
// },
// {
// label: "",
// labelTip:
// ",",
// prop: "roleAlias",
// search: true,
// span: 24,
// headerAlign: "center",
// align: "center",
// rules: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
// ],
// },
// {
// label: "",
// labelTip: ",",
// prop: "currentAlias",
// type: "radio",
// dicData: [],
// headerAlign: "center",
// align: "center",
// props: {
// label: "roleName",
// value: "roleAlias",
// },
// hide: true,
// span: 24,
// },
// {
// label: "",
// prop: "sort",
// type: "number",
// headerAlign: "center",
// align: "center",
// span: 24,
// rules: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
// ],
// },
{ {
label: "所属租户", label: "角色编码",
prop: "tenantId", prop: "code",
type: "tree",
dicUrl: "/api/blade-system/tenant/select",
addDisplay: false,
editDisplay: false,
headerAlign: "center",
align: "center",
viewDisplay: website.tenantMode,
span: 24,
props: {
label: "tenantName",
value: "tenantId",
},
hide: !website.tenantMode,
search: website.tenantMode,
rules: [
{
required: true,
message: "请输入所属租户",
trigger: "click",
},
],
},
{
label: "角色别名",
labelTip:
"用于权限校验与标注的属性,可手动录入也可点击现有别名快速录入",
prop: "roleAlias",
search: true, search: true,
span: 24, span: 24,
headerAlign: "center", headerAlign: "center",
@ -231,37 +279,7 @@ export default {
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入角色别名", message: "请输入角色编码",
trigger: "blur",
},
],
},
{
label: "现有别名",
labelTip: "当前系统已存在的角色别名,点击可快速录入",
prop: "currentAlias",
type: "radio",
dicData: [],
headerAlign: "center",
align: "center",
props: {
label: "roleName",
value: "roleAlias",
},
hide: true,
span: 24,
},
{
label: "角色排序",
prop: "sort",
type: "number",
headerAlign: "center",
align: "center",
span: 24,
rules: [
{
required: true,
message: "请输入角色排序",
trigger: "blur", trigger: "blur",
}, },
], ],
@ -312,9 +330,11 @@ export default {
}); });
}, },
submit() { submit() {
const menuList = this.$refs.treeMenu.getCheckedKeys();
const dataScopeList = this.$refs.treeDataScope.getCheckedKeys(); const menuList = this.$refs.treeMenu ? this.$refs.treeMenu.getCheckedKeys() : [];
const apiScopeList = this.$refs.treeApiScope.getCheckedKeys(); const dataScopeList = this.$refs.treeDataScope ? this.$refs.treeDataScope.getCheckedKeys() : [];
const apiScopeList = this.$refs.treeApiScope ? this.$refs.treeApiScope.getCheckedKeys() : [];
grant(this.idsArray, menuList, dataScopeList, apiScopeList).then(() => { grant(this.idsArray, menuList, dataScopeList, apiScopeList).then(() => {
this.box = false; this.box = false;
this.$message({ this.$message({
@ -411,13 +431,14 @@ export default {
this.dataScopeTreeObj = []; this.dataScopeTreeObj = [];
this.apiScopeTreeObj = []; this.apiScopeTreeObj = [];
grantTree().then((res) => { grantTree().then((res) => {
this.menuGrantList = res.data.data.menu; const data = res.data.result
this.dataScopeGrantList = res.data.data.dataScope; this.menuGrantList = data.menu;
this.apiScopeGrantList = res.data.data.apiScope; this.dataScopeGrantList = data.dataScope || [];
this.apiScopeGrantList = data.apiScope || [];
getRole(this.ids).then((res) => { getRole(this.ids).then((res) => {
this.menuTreeObj = res.data.data.menu; this.menuTreeObj = res.data.result.menu;
this.dataScopeTreeObj = res.data.data.dataScope; this.dataScopeTreeObj = res.data.result.dataScope || [];
this.apiScopeTreeObj = res.data.data.apiScope; this.apiScopeTreeObj = res.data.result.apiScope || [];
this.box = true; this.box = true;
}); });
}); });
@ -427,13 +448,14 @@ export default {
this.dataScopeTreeObj = []; this.dataScopeTreeObj = [];
this.apiScopeTreeObj = []; this.apiScopeTreeObj = [];
grantTree().then((res) => { grantTree().then((res) => {
this.menuGrantList = res.data.data.menu; const data = res.data.result
this.dataScopeGrantList = res.data.data.dataScope; this.menuGrantList = data.menu;
this.apiScopeGrantList = res.data.data.apiScope; this.dataScopeGrantList = data.dataScope || [];
this.apiScopeGrantList = data.apiScope || [];
getRole(row.id).then((res) => { getRole(row.id).then((res) => {
this.menuTreeObj = res.data.data.menu; this.menuTreeObj = res.data.result.menu;
this.dataScopeTreeObj = res.data.data.dataScope; this.dataScopeTreeObj = res.data.result.dataScope;
this.apiScopeTreeObj = res.data.data.apiScope; this.apiScopeTreeObj = res.data.result.apiScope;
this.selectionList.push(row); this.selectionList.push(row);
this.box = true; this.box = true;
}); });

@ -339,6 +339,7 @@ export default {
}) })
.then(() => { .then(() => {
this.onLoadChild(this.pageChild); this.onLoadChild(this.pageChild);
this.$refs.crudChild.refresh();
this.$message({ this.$message({
type: "success", type: "success",
message: "操作成功!" message: "操作成功!"

Loading…
Cancel
Save