123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- import { CrudOptions, AddReq, DelReq, EditReq, dict, CrudExpose, compute } from '@fast-crud/fast-crud'
- import * as api from './api'
- import { dictionary } from '/@/utils/dictionary'
- import { columnPermission } from '../../../utils/columnPermission'
- import { successMessage } from '../../../utils/message'
- interface CreateCrudOptionsTypes {
- output: any
- crudOptions: CrudOptions
- }
- //此处为crudOptions配置
- export const createCrudOptions = function ({
- crudExpose,
- rolePermission,
- handleDrawerOpen,
- hasPermissions,
- }: {
- crudExpose: CrudExpose
- rolePermission: any
- handleDrawerOpen: Function
- hasPermissions: Function
- }): CreateCrudOptionsTypes {
- const pageRequest = async (query: any) => {
- return await api.GetList(query)
- }
- const editRequest = async ({ form, row }: EditReq) => {
- form.id = row.id
- return await api.UpdateObj(form)
- }
- const delRequest = async ({ row }: DelReq) => {
- return await api.DelObj(row.id)
- }
- const addRequest = async ({ form }: AddReq) => {
- return await api.AddObj(form)
- }
- //权限判定
- // @ts-ignore
- // @ts-ignore
- return {
- crudOptions: {
- request: {
- pageRequest,
- addRequest,
- editRequest,
- delRequest,
- },
- rowHandle: {
- //固定右侧
- fixed: 'right',
- width: 320,
- buttons: {
- view: {
- show: true,
- },
- edit: {
- show: hasPermissions('role:Update'),
- },
- remove: {
- show: hasPermissions('role:Delete'),
- },
- /* custom: {
- type: 'primary',
- text: '权限配置',
- show: hasPermissions('role:Update'),
- tooltip: {
- placement: 'top',
- content: '权限配置',
- },
- click: (context: any): void => {
- const { row } = context;
- // eslint-disable-next-line no-mixed-spaces-and-tabs
- rolePermission.value.drawer = true;
- rolePermission.value.editedRoleInfo = row;
- rolePermission.value.initGet();
- },
- }, */
- customNew: {
- type: 'primary',
- text: '权限配置',
- show: hasPermissions('role:Update'),
- tooltip: {
- placement: 'top',
- content: '权限配置',
- },
- click: (context: any): void => {
- const { row } = context
- handleDrawerOpen(row)
- },
- },
- },
- },
- form: {
- col: { span: 24 },
- labelWidth: '100px',
- wrapper: {
- is: 'el-dialog',
- width: '600px',
- },
- },
- columns: {
- _index: {
- title: '序号',
- form: { show: false },
- column: {
- type: 'index',
- align: 'center',
- width: '70px',
- columnSetDisabled: true, //禁止在列设置中选择
- },
- },
- id: {
- title: 'ID',
- type: 'text',
- column: { show: false },
- search: { show: false },
- form: { show: false },
- },
- name: {
- title: '角色名称',
- type: 'text',
- search: { show: true },
- column: {
- minWidth: 120,
- sortable: 'custom',
- show: columnPermission('name', 'is_query'),
- },
- // addForm: {
- // show: columnPermission('name', 'is_create'),
- // },
- // editForm: {
- // show: columnPermission('name', 'is_update'),
- // },
- // TODO: addForm 和 editForm 会合并到form中 但是columnPermission得到的永远都是false
- form: {
- show: true,
- rules: [{ required: true, message: '角色名称必填' }],
- component: {
- placeholder: '请输入角色名称',
- },
- },
- },
- key: {
- title: '权限标识',
- type: 'text',
- search: { show: false },
- column: {
- minWidth: 120,
- sortable: 'custom',
- show: columnPermission('key', 'is_query'),
- columnSetDisabled: true,
- },
- // addForm: {
- // show: columnPermission('key', 'is_create'),
- // },
- // editForm: {
- // show: columnPermission('key', 'is_update'),
- // },
- form: {
- show: true,
- rules: [{ required: true, message: '权限标识必填' }],
- component: {
- placeholder: '输入权限标识',
- },
- },
- },
- sort: {
- title: '排序',
- search: { show: false },
- type: 'number',
- column: {
- minWidth: 90,
- sortable: 'custom',
- show: columnPermission('sort', 'is_query'),
- },
- // addForm: {
- // show: columnPermission('sort', 'is_create'),
- // },
- // editForm: {
- // show: columnPermission('sort', 'is_update'),
- // },
- form: {
- show: true,
- rules: [{ required: true, message: '排序必填' }],
- value: 1,
- },
- },
- admin: {
- title: '是否管理员',
- search: { show: false },
- type: 'dict-radio',
- dict: dict({
- data: [
- {
- label: '是',
- value: true,
- color: 'success',
- },
- {
- label: '否',
- value: false,
- color: 'danger',
- },
- ],
- }),
- column: {
- minWidth: 130,
- sortable: 'custom',
- show: columnPermission('admin', 'is_query'),
- },
- addForm: {
- show: columnPermission('admin', 'is_create'),
- },
- editForm: {
- show: columnPermission('admin', 'is_update'),
- },
- form: {
- rules: [{ required: true, message: '是否管理员必填' }],
- value: false,
- },
- },
- status: {
- title: '状态',
- search: { show: true },
- type: 'dict-radio',
- column: {
- width: 100,
- component: {
- name: 'fs-dict-switch',
- activeText: '',
- inactiveText: '',
- style: '--el-switch-on-color: var(--el-color-primary); --el-switch-off-color: #dcdfe6',
- onChange: compute((context) => {
- return () => {
- api.UpdateObj(context.row).then((res: APIResponseData) => {
- successMessage(res.msg as string)
- })
- }
- }),
- },
- show: columnPermission('status', 'is_query'),
- },
- // addForm: {
- // show: columnPermission('status', 'is_create'),
- // },
- // editForm: {
- // show: columnPermission('status', 'is_update'),
- // },
- form: {
- show: true,
- // component: {
- // placeholder: '输入关键词搜索',
- // },
- },
- dict: dict({
- data: dictionary('button_status_bool'),
- }),
- },
- update_datetime: {
- title: '更新时间',
- type: 'text',
- search: { show: false },
- column: {
- minWidth: 170,
- sortable: 'custom',
- show: columnPermission('update_datetime', 'is_query'),
- },
- form: {
- show: false,
- component: {
- placeholder: '输入关键词搜索',
- },
- },
- },
- create_datetime: {
- title: '创建时间',
- type: 'text',
- search: { show: false },
- column: {
- sortable: 'custom',
- minWidth: 170,
- show: columnPermission('create_datetime', 'is_query'),
- },
- form: {
- show: false,
- component: {
- placeholder: '输入关键词搜索',
- },
- },
- },
- // description: {
- // title: '备注',
- // type: 'textarea',
- // search: {show: false},
- // form: {
- // component: {
- // maxlength: 200,
- // placeholder: '输入备注',
- // },
- // },
- // },
- },
- },
- }
- }
|