61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
import {useColumnPermission} from '/@/stores/columnPermission';
|
|
|
|
type permissionType = 'is_create' | 'is_query' | 'is_update';
|
|
|
|
export const columnPermission = (key: string, type: permissionType): boolean => {
|
|
const permissions = useColumnPermission().permission || [];
|
|
|
|
return !!permissions.some((i) => i.field_name === key && i[type]);
|
|
};
|
|
|
|
/**
|
|
* 处理字段信息权限
|
|
* @param func 获取字段信息的接口函数
|
|
* @param crudOptions 原始的crudOptions信息
|
|
* @param excludeColumn 需要排除的列
|
|
*/
|
|
export const handleColumnPermission = async (func: Function, crudOptions: any,excludeColumn:string[]=[]) => {
|
|
const res = await func();
|
|
if(crudOptions.pagination==undefined){
|
|
crudOptions['pagination'] = {
|
|
show:true
|
|
}
|
|
}
|
|
const columns = crudOptions.columns;
|
|
const excludeColumns = ['_index','id', 'create_datetime', 'update_datetime'].concat(excludeColumn)
|
|
for (let col in columns) {
|
|
if (excludeColumns.includes(col)) {
|
|
continue
|
|
}else{
|
|
if (columns[col].column) {
|
|
columns[col].column.show = false
|
|
} else {
|
|
columns[col]['column'] = {
|
|
show: false
|
|
}
|
|
}
|
|
columns[col].addForm = {
|
|
show: false
|
|
}
|
|
columns[col].editForm = {
|
|
show: false
|
|
}
|
|
}
|
|
|
|
for (let item of res.data) {
|
|
if (excludeColumns.includes(item.field_name)) {
|
|
continue
|
|
} else if(item.field_name === col) {
|
|
columns[col].column.show = item['is_query']
|
|
columns[col].addForm = {
|
|
show: item['is_create']
|
|
}
|
|
columns[col].editForm = {
|
|
show: item['is_update']
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return crudOptions
|
|
}
|