|
@@ -71,6 +71,16 @@ export default {
|
|
default() {
|
|
default() {
|
|
return [];
|
|
return [];
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ showPermission: {
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: true
|
|
|
|
+ },
|
|
|
|
+ disabledPermissionUrls: {
|
|
|
|
+ type: Array,
|
|
|
|
+ default() {
|
|
|
|
+ return ["TaskApplyManage", "TaskReviewManage"];
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
@@ -110,20 +120,16 @@ export default {
|
|
for (let index = 0; index < this.maxDeep; index++) {
|
|
for (let index = 0; index < this.maxDeep; index++) {
|
|
headers.push(`${codes[index]}级页面`);
|
|
headers.push(`${codes[index]}级页面`);
|
|
}
|
|
}
|
|
- headers = [
|
|
|
|
- ...headers,
|
|
|
|
- "页面",
|
|
|
|
- "数据权限",
|
|
|
|
- "查询条件",
|
|
|
|
- "功能按钮",
|
|
|
|
- "列表展示",
|
|
|
|
- "操作列"
|
|
|
|
- ];
|
|
|
|
|
|
+ headers = [...headers, "页面"];
|
|
|
|
+ if (this.showPermission) headers.push("数据权限");
|
|
|
|
+ headers = [...headers, "查询条件", "功能按钮", "列表展示", "操作列"];
|
|
|
|
+
|
|
return headers;
|
|
return headers;
|
|
},
|
|
},
|
|
buildTableData(privilegeIds = [], dataPermissionInfo = []) {
|
|
buildTableData(privilegeIds = [], dataPermissionInfo = []) {
|
|
let tableData = [];
|
|
let tableData = [];
|
|
- let tableColumnCount = this.maxDeep + 6;
|
|
|
|
|
|
+ const privColumnCount = this.showPermission ? 6 : 5;
|
|
|
|
+ let tableColumnCount = this.maxDeep + privColumnCount;
|
|
const pageSetTypes = ["conditions", "buttons", "lists", "links"];
|
|
const pageSetTypes = ["conditions", "buttons", "lists", "links"];
|
|
|
|
|
|
let datePermissionMap = {};
|
|
let datePermissionMap = {};
|
|
@@ -133,18 +139,24 @@ export default {
|
|
const buildData = (navs, deep) => {
|
|
const buildData = (navs, deep) => {
|
|
++deep;
|
|
++deep;
|
|
navs.forEach(nav => {
|
|
navs.forEach(nav => {
|
|
|
|
+ const isDisabledPermissionUrl = this.disabledPermissionUrls.includes(
|
|
|
|
+ nav.url
|
|
|
|
+ );
|
|
let columns = new Array(tableColumnCount);
|
|
let columns = new Array(tableColumnCount);
|
|
columns[deep - 1] = { type: "page", name: nav.name };
|
|
columns[deep - 1] = { type: "page", name: nav.name };
|
|
columns[this.maxDeep] = {
|
|
columns[this.maxDeep] = {
|
|
type: "page-checkbox"
|
|
type: "page-checkbox"
|
|
};
|
|
};
|
|
- columns[this.maxDeep + 1] = {
|
|
|
|
- type: "page-data-permission"
|
|
|
|
- };
|
|
|
|
|
|
+ if (this.showPermission && !isDisabledPermissionUrl) {
|
|
|
|
+ columns[this.maxDeep + 1] = {
|
|
|
|
+ type: "page-data-permission"
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
|
|
const isPage = pageSetTypes.some(
|
|
const isPage = pageSetTypes.some(
|
|
type => nav[type] && nav[type].length
|
|
type => nav[type] && nav[type].length
|
|
);
|
|
);
|
|
|
|
+ const offsetPageSetInd = this.showPermission ? 2 : 1;
|
|
if (isPage) {
|
|
if (isPage) {
|
|
pageSetTypes.forEach((type, index) => {
|
|
pageSetTypes.forEach((type, index) => {
|
|
const datas = !nav[type]
|
|
const datas = !nav[type]
|
|
@@ -154,17 +166,22 @@ export default {
|
|
data.enable = privilegeIds.includes(elem.id);
|
|
data.enable = privilegeIds.includes(elem.id);
|
|
return data;
|
|
return data;
|
|
});
|
|
});
|
|
- columns[this.maxDeep + index + 2] = { type, datas };
|
|
|
|
|
|
+ columns[this.maxDeep + index + offsetPageSetInd] = {
|
|
|
|
+ type,
|
|
|
|
+ datas
|
|
|
|
+ };
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
tableData.push({
|
|
tableData.push({
|
|
id: nav.id,
|
|
id: nav.id,
|
|
name: nav.name,
|
|
name: nav.name,
|
|
|
|
+ url: nav.url,
|
|
enable: privilegeIds.includes(nav.id),
|
|
enable: privilegeIds.includes(nav.id),
|
|
- dataPermissionType: isPage
|
|
|
|
- ? datePermissionMap[nav.id] || "SELF"
|
|
|
|
- : null,
|
|
|
|
|
|
+ dataPermissionType:
|
|
|
|
+ isPage && this.showPermission && !isDisabledPermissionUrl
|
|
|
|
+ ? datePermissionMap[nav.id] || "SELF"
|
|
|
|
+ : null,
|
|
type: nav.type,
|
|
type: nav.type,
|
|
parentId: nav.parentId,
|
|
parentId: nav.parentId,
|
|
isPage,
|
|
isPage,
|
|
@@ -181,7 +198,12 @@ export default {
|
|
},
|
|
},
|
|
resetdataPermissionType(val) {
|
|
resetdataPermissionType(val) {
|
|
this.tableData.forEach(item => {
|
|
this.tableData.forEach(item => {
|
|
- if (item.isPage) item.dataPermissionType = val;
|
|
|
|
|
|
+ if (
|
|
|
|
+ item.isPage &&
|
|
|
|
+ this.showPermission &&
|
|
|
|
+ !this.disabledPermissionUrls.includes(item.url)
|
|
|
|
+ )
|
|
|
|
+ item.dataPermissionType = val;
|
|
});
|
|
});
|
|
},
|
|
},
|
|
getSelectedPrivileges() {
|
|
getSelectedPrivileges() {
|