import type { ProColumns, ProFormColumnsType, } from '@ant-design/pro-components'; import { Tag } from 'antd'; import dayjs from 'dayjs'; import { tenantStatus } from '@/constants'; import type { RoleVO } from '@/services/system/role'; import { getStatusLabel } from '@/utils/constant'; export const baseTenantColumns: ProColumns[] = [ { title: '角色编号', dataIndex: 'id', width: 100, hideInSearch: true, // 在搜索表单中隐藏 }, { title: '角色名称', dataIndex: 'name', width: 100, }, { title: '角色类型', dataIndex: 'type', width: 100, render: (_, record: RoleVO) => [ {record.type === 1 ? '内置' : '自定义'} , ], hideInSearch: true, }, { title: '角色标识', dataIndex: 'code', width: 150, render: (_, record: RoleVO) => [ {record.code} , ], hideInSearch: true, }, { title: '显示顺序', dataIndex: 'sort', width: 100, hideInSearch: true, }, { title: '备注', dataIndex: 'remark', hideInSearch: true, // 在搜索表单中隐藏 }, { title: '租户状态', dataIndex: 'status', width: 100, render: (_, record: RoleVO) => [ {getStatusLabel(tenantStatus, record.status)} , ], }, { title: '创建时间', dataIndex: 'createTime', valueType: 'dateRange', search: { transform: (value) => { return { 'createTime[0]': dayjs(value[0]) .startOf('day') .format('YYYY-MM-DD HH:mm:ss'), 'createTime[1]': dayjs(value[1]) .endOf('day') .format('YYYY-MM-DD HH:mm:ss'), }; }, }, render: (_, record: RoleVO) => dayjs(record.createTime).format('YYYY-MM-DD HH:mm:ss'), }, ]; export const formColumns = (_type: string): ProFormColumnsType[] => [ { title: '角色名称', dataIndex: 'name', formItemProps: { rules: [ { required: true, message: '请输入角色名称', }, ], }, }, { title: '角色标识', dataIndex: 'code', formItemProps: { rules: [ { required: true, message: '请输入角色名称', }, ], }, }, { title: '显示顺序', dataIndex: 'sort', valueType: 'digit', fieldProps: { placeholder: '请输入显示顺序', }, }, { title: '租户状态', dataIndex: 'status', valueType: 'select', fieldProps: { multiple: true, placeholder: '请选择租户状态', options: tenantStatus, }, }, { title: '备注', dataIndex: 'remark', valueType: 'textarea', fieldProps: { placeholder: '请输入备注', min: 5, max: 20, }, }, ];