diff --git a/src/views/system/user/user.data.ts b/src/views/system/user/user.data.ts index fba234f..f24d77f 100644 --- a/src/views/system/user/user.data.ts +++ b/src/views/system/user/user.data.ts @@ -1,7 +1,11 @@ +import { h } from 'vue' +import { Switch } from 'ant-design-vue' +import { useMessage } from '@/hooks/web/useMessage' import { listSimpleDept } from '@/api/system/dept' import { listSimplePosts } from '@/api/system/post' import { BasicColumn, FormSchema, useRender } from '@/components/Table' import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' +import { updateUserStatus } from '@/api/system/user' export const columns: BasicColumn[] = [ { @@ -36,8 +40,35 @@ export const columns: BasicColumn[] = [ title: '状态', dataIndex: 'status', width: 180, - customRender: ({ text }) => { - return useRender.renderDict(text, DICT_TYPE.COMMON_STATUS) + // customRender: ({ text }) => { + // return useRender.renderDict(text, DICT_TYPE.COMMON_STATUS) + // } + customRender: ({ record }) => { + if (!Reflect.has(record, 'pendingStatus')) { + record.pendingStatus = false + } + return h(Switch, { + checked: record.status === 0, + checkedChildren: '已启用', + unCheckedChildren: '已禁用', + loading: record.pendingStatus, + onChange(checked: boolean) { + record.pendingStatus = true + const newStatus = checked ? 0 : 1 + const { createMessage } = useMessage() + updateUserStatus(record.id, newStatus) + .then(() => { + record.status = newStatus + createMessage.success(`已成功修改用户状态`) + }) + .catch(() => { + createMessage.error('修改用户状态失败') + }) + .finally(() => { + record.pendingStatus = false + }) + } + }) } }, {