mirror of
https://gitee.com/myxzgzs/boyue_jnpf.git
synced 2025-08-08 15:22:43 +08:00
148 lines
4.4 KiB
JavaScript
148 lines
4.4 KiB
JavaScript
import {
|
|
i18n
|
|
} from '../locale/setupI18n';
|
|
|
|
let permission = {
|
|
permissionList: uni.getStorageSync('permissionList') || [],
|
|
hasP(enCode, menuIds) {
|
|
if (!menuIds) return false
|
|
const list = permission.permissionList.filter(o => o.modelId === menuIds)
|
|
if (!list.length) return false
|
|
const columnList = list[0] && list[0].column ? list[0].column : []
|
|
if (!columnList.length) return false
|
|
const hasPermission = columnList.some(column => column.enCode === enCode)
|
|
if (hasPermission) return true
|
|
return false
|
|
},
|
|
hasFormP(enCode, menuIds) {
|
|
if (!menuIds) return false
|
|
const list = permission.permissionList.filter(o => o.modelId === menuIds)
|
|
if (!list.length) return false
|
|
const formList = list[0] && list[0].form ? list[0].form : []
|
|
if (!formList.length) return false
|
|
const hasPermission = formList.some(form => form.enCode === enCode)
|
|
if (hasPermission) return true
|
|
return false
|
|
},
|
|
hasBtnP(enCode, menuIds) {
|
|
if (!menuIds) return false
|
|
const list = permission.permissionList.filter(o => o.modelId === menuIds)
|
|
if (!list.length) return false
|
|
const btnList = list[0] && list[0].button ? list[0].button : []
|
|
if (!btnList.length) return false
|
|
const hasPermission = btnList.some(btn => btn.enCode === enCode)
|
|
if (hasPermission) return true
|
|
return false
|
|
},
|
|
getPermission(columnData, menuId, getScriptFunc) {
|
|
let btnsList = columnData.btnsList
|
|
let customBtnsList = columnData.customBtnsList
|
|
let columnBtnsList = columnData.columnBtnsList.filter(o => o.show)
|
|
const useBtnPermission = columnData.useBtnPermission
|
|
const useColumnPermission = columnData.useColumnPermission
|
|
const useFormPermission = columnData.useFormPermission
|
|
const useBtnPermissionList = [...btnsList, ...columnBtnsList]
|
|
let btnPermission = [];
|
|
let customBtnsPermission = [];
|
|
let columnPermission = [];
|
|
let formList = [];
|
|
let currentMenu = {}
|
|
let btn_list = ['detail', 'edit', 'add', 'remove', 'batchRemove']
|
|
let labelS = {}
|
|
let enableFunc = {}
|
|
useBtnPermissionList.map((o) => {
|
|
if (btn_list.includes(o.value) && o.show) {
|
|
labelS['btn_' + o.value] = o.labelI18nCode ? i18n.global.t(o.labelI18nCode, o.label) : o
|
|
.label
|
|
}
|
|
})
|
|
let isMenu = permission.permissionList.filter((o) => {
|
|
if (o.modelId === menuId) return currentMenu = o
|
|
})
|
|
//按钮
|
|
if (useBtnPermission) {
|
|
if (customBtnsList && customBtnsList.length) {
|
|
for (let i = 0; i < customBtnsList.length; i++) {
|
|
inner: for (let j = 0; j < currentMenu.button.length; j++) {
|
|
if (customBtnsList[i].value === currentMenu.button[j].enCode) {
|
|
customBtnsPermission.push(customBtnsList[i])
|
|
break inner
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!!isMenu.length) {
|
|
for (let i = 0; i < useBtnPermissionList.length; i++) {
|
|
inner: for (let j = 0; j < currentMenu.button.length; j++) {
|
|
if ('btn_' + useBtnPermissionList[i].value === currentMenu.button[j].enCode) {
|
|
btnPermission.push(currentMenu.button[j].enCode)
|
|
break inner
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
for (let i = 0; i < useBtnPermissionList.length; i++) {
|
|
inner: for (let j = 0; j < btn_list.length; j++) {
|
|
if (useBtnPermissionList[i].show && useBtnPermissionList[i].value === btn_list[j]) {
|
|
btnPermission.push('btn_' + useBtnPermissionList[i].value)
|
|
break inner
|
|
}
|
|
}
|
|
}
|
|
customBtnsPermission = customBtnsList
|
|
}
|
|
// 启用规则
|
|
columnBtnsList.map((o) => {
|
|
enableFunc[o.value] = () => {
|
|
return true
|
|
}
|
|
if (o.event && o.event.enableFunc) {
|
|
const func = getScriptFunc(o.event.enableFunc)
|
|
enableFunc[o.value] = func
|
|
}
|
|
})
|
|
// 启用规则自定义
|
|
customBtnsList.map((o) => {
|
|
enableFunc[o.value] = () => {
|
|
return true
|
|
}
|
|
if (o.event && o.event.enableFunc) {
|
|
const func = getScriptFunc(o.event.enableFunc)
|
|
enableFunc[o.value] = func
|
|
}
|
|
})
|
|
if (useColumnPermission) {
|
|
if (!!isMenu.length) {
|
|
columnData.columnList.forEach((o, i) => {
|
|
currentMenu.column.forEach((m, j) => {
|
|
if (o.prop === m.enCode) {
|
|
columnPermission.push(o)
|
|
}
|
|
})
|
|
})
|
|
}
|
|
} else {
|
|
columnPermission = columnData.columnList
|
|
}
|
|
|
|
if (useFormPermission && !!isMenu.length) formList = currentMenu.form
|
|
return {
|
|
labelS,
|
|
btnPermission,
|
|
customBtnsPermission,
|
|
columnPermission,
|
|
formPermission: {
|
|
formList,
|
|
useFormPermission,
|
|
menuId
|
|
},
|
|
enableFunc,
|
|
useBtnPermission
|
|
}
|
|
},
|
|
updatePermissionList() {
|
|
permission.permissionList = uni.getStorageSync('permissionList') || []
|
|
}
|
|
}
|
|
export default permission |