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 }