import type { ProColumns, ProCoreActionType, ProFormColumnsType, } from '@ant-design/pro-components'; import { Modal, message, Switch } from 'antd'; import dayjs from 'dayjs'; import { updateUserStatus } from '@/services/system/user'; import type { UserVO } from '@/services/system/user/index'; export const baseTenantColumns: ProColumns[] = [ { title: '用户编号', dataIndex: 'id', width: 80, hideInSearch: true, // 在搜索表单中隐藏 }, { title: '用户名称', dataIndex: 'username', width: 100, }, { title: '用户昵称', dataIndex: 'nickname', width: 100, hideInSearch: true, }, { title: '部门', dataIndex: 'deptName', width: 100, }, { title: '手机号码', dataIndex: 'mobile', width: 100, }, { title: '状态', dataIndex: 'status', valueType: 'select', valueEnum: { all: { text: '全部', status: 'Default' }, open: { text: '未解决', status: 'Error' }, closed: { text: '已解决', status: 'Success' }, }, render: ( _dom: React.ReactNode, record: UserVO, _index: number, action: ProCoreActionType | undefined, ) => [ { const text = record.status ? '启用' : '停用'; Modal.confirm({ title: '确认操作', content: `确认要"${text}""${record.username}"用户吗?`, onOk: async () => { const status = record.status === 0 ? 1 : 0; await updateUserStatus(record.id, status); message.success('修改成功'); action?.reload(); // 执行状态变更逻辑 }, }); // await message.confirm("修改成功"); }} >, ], }, { 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: UserVO) => dayjs(record.createTime).format('YYYY-MM-DD HH:mm:ss'), }, { title: '备注', dataIndex: 'remark', hideInSearch: true, // 在搜索表单中隐藏 }, ]; export const formColumns = (type: string): ProFormColumnsType[] => [ { title: '用户昵称', dataIndex: 'nickname', formItemProps: { rules: [ { required: true, message: '请输入用户名', }, ], }, }, { title: '归属部门', dataIndex: 'deptId', valueType: 'treeSelect', fieldProps: { multiple: true, placeholder: '请选择归属部门', options: [{ lable: '11', value: 5016 }], }, }, { title: '手机号码', dataIndex: 'mobile', formItemProps: { rules: [ { required: true, message: '请输入联系手机', }, ], }, }, // { prop: "email", label: "邮箱", type: "input", inputType: "email" }, { title: '邮箱', dataIndex: 'email', valueType: 'text', fieldProps: { type: 'email', placeholder: '请输入邮箱', }, formItemProps: { rules: [ { required: true, message: '请输入邮箱', }, ], }, }, { title: '用户名称', dataIndex: 'username', hideInForm: type === 'update', }, { title: '用户密码', dataIndex: 'password', valueType: 'password', hideInForm: type === 'update', fieldProps: { placeholder: '请输入用户密码', autoComplete: 'new-password', }, formItemProps: { rules: [ { required: true, message: '请输入用户密码', }, ], }, }, { title: '用户性别', dataIndex: 'sex', valueType: 'select', fieldProps: { placeholder: '请选择性别', options: [ { label: '男', value: 1, }, { label: '女', value: 2, }, ], }, }, { title: '岗位', dataIndex: 'postIds', valueType: 'select', fieldProps: { mode: 'multiple', placeholder: '请选择岗位', options: [ { label: '管理员', value: 1, }, { label: '普通用户', value: 2, }, ], }, formItemProps: {}, }, { title: '备注', dataIndex: 'remark', valueType: 'textarea', }, ];