/* JVxeTable 行编辑 权限 */
import { usePermissionStoreWithOut } from '/@/store/modules/permission';
/**
* JVxe 专用,获取权限
* @param prefix
*/
export function getJVxeAuths(prefix) {
const permissionStore = usePermissionStoreWithOut();
prefix = getPrefix(prefix);
let { authList, allAuthList } = permissionStore;
let authsMap = new Map<string, typeof allAuthList[0]>();
if (!prefix || prefix.length == 0) {
return authsMap;
}
// 将所有vxe用到的权限取出来
for (let auth of allAuthList) {
if (auth.status == '1' && (auth.action || '').startsWith(prefix)) {
authsMap.set(auth.action, { ...auth, isAuth: false });
}
}
// 设置是否已授权
for (let auth of authList) {
let getAuth = authsMap.get(auth.action);
if (getAuth != null) {
getAuth.isAuth = true;
}
}
//update-begin-author:taoyan date:2022-6-1 for: VUEN-1162 子表按钮没控制
let onlineButtonAuths = permissionStore.getOnlineSubTableAuth(prefix);
if (onlineButtonAuths && onlineButtonAuths.length > 0) {
for (let auth of onlineButtonAuths) {
authsMap.set(prefix + 'btn:' + auth, { action: auth, type: 1, status: 1, isAuth: false });
}
}
//update-end-author:taoyan date:2022-6-1 for: VUEN-1162 子表按钮没控制
return authsMap;
}
/**
* 获取前缀
* @param prefix
*/
export function getPrefix(prefix: string) {
if (prefix && !prefix.endsWith(':')) {
return prefix + ':';
}
return prefix;
}