|
@@ -1,4 +1,4 @@
|
|
|
-import { MEMBER_TYPE_COLORS, MEMBER_TYPE_LABELS } from '@/defines';
|
|
|
|
|
|
|
+import { MEMBER_TYPE_COLORS, MEMBER_TYPE_LABELS, STATUS_DISABLED, STATUS_ENABLED } from '@/defines';
|
|
|
import { BindRolesDrawer } from '@/pages/Admin/_shared/BindRolesDrawer';
|
|
import { BindRolesDrawer } from '@/pages/Admin/_shared/BindRolesDrawer';
|
|
|
import { UserPermDrawer } from '@/pages/Admin/_shared/UserPermDrawer';
|
|
import { UserPermDrawer } from '@/pages/Admin/_shared/UserPermDrawer';
|
|
|
import {
|
|
import {
|
|
@@ -6,6 +6,7 @@ import {
|
|
|
useUserProductRoles,
|
|
useUserProductRoles,
|
|
|
} from '@/pages/Admin/_shared/useUserProductRoles';
|
|
} from '@/pages/Admin/_shared/useUserProductRoles';
|
|
|
import { fetchUpdateUserStatus, fetchUserList } from '@/services/user';
|
|
import { fetchUpdateUserStatus, fetchUserList } from '@/services/user';
|
|
|
|
|
+import { unixTimeFormat } from '@/utils/timeUtils';
|
|
|
import { ActionType, PageContainer, ProColumns, ProTable } from '@ant-design/pro-components';
|
|
import { ActionType, PageContainer, ProColumns, ProTable } from '@ant-design/pro-components';
|
|
|
import { useIntl } from '@umijs/max';
|
|
import { useIntl } from '@umijs/max';
|
|
|
import { Button, Popconfirm, Tag, message } from 'antd';
|
|
import { Button, Popconfirm, Tag, message } from 'antd';
|
|
@@ -31,7 +32,10 @@ export default function UserPage() {
|
|
|
const { userProductInfo } = useUserProductRoles(userIds, productRolesBase, refreshKey);
|
|
const { userProductInfo } = useUserProductRoles(userIds, productRolesBase, refreshKey);
|
|
|
|
|
|
|
|
const handleToggleStatus = async (r: API.UserItem) => {
|
|
const handleToggleStatus = async (r: API.UserItem) => {
|
|
|
- const res = await fetchUpdateUserStatus({ id: r.id, status: r.status === 1 ? 0 : 1 });
|
|
|
|
|
|
|
+ const res = await fetchUpdateUserStatus({
|
|
|
|
|
+ id: r.id,
|
|
|
|
|
+ status: r.status === STATUS_ENABLED ? STATUS_DISABLED : STATUS_ENABLED,
|
|
|
|
|
+ });
|
|
|
if (!res.success) return;
|
|
if (!res.success) return;
|
|
|
message.success('操作成功');
|
|
message.success('操作成功');
|
|
|
actionRef.current?.reload();
|
|
actionRef.current?.reload();
|
|
@@ -45,7 +49,9 @@ export default function UserPage() {
|
|
|
dataIndex: 'status',
|
|
dataIndex: 'status',
|
|
|
width: 80,
|
|
width: 80,
|
|
|
render: (_, r) => (
|
|
render: (_, r) => (
|
|
|
- <Tag color={r.status === 1 ? 'success' : 'default'}>{r.status === 1 ? '启用' : '禁用'}</Tag>
|
|
|
|
|
|
|
+ <Tag color={r.status === STATUS_ENABLED ? 'success' : 'error'}>
|
|
|
|
|
+ {r.status === STATUS_ENABLED ? '启用' : '禁用'}
|
|
|
|
|
+ </Tag>
|
|
|
),
|
|
),
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
@@ -90,7 +96,12 @@ export default function UserPage() {
|
|
|
);
|
|
);
|
|
|
},
|
|
},
|
|
|
},
|
|
},
|
|
|
- { title: '创建时间', dataIndex: 'createTime', valueType: 'dateTime', width: 180 },
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ title: '创建时间',
|
|
|
|
|
+ dataIndex: 'createTime',
|
|
|
|
|
+ width: 180,
|
|
|
|
|
+ render: (_, r) => unixTimeFormat(r.createTime),
|
|
|
|
|
+ },
|
|
|
{
|
|
{
|
|
|
title: '操作',
|
|
title: '操作',
|
|
|
valueType: 'option',
|
|
valueType: 'option',
|
|
@@ -118,11 +129,15 @@ export default function UserPage() {
|
|
|
</a>,
|
|
</a>,
|
|
|
<Popconfirm
|
|
<Popconfirm
|
|
|
key="status"
|
|
key="status"
|
|
|
- title={r.status === 1 ? `确认冻结「${r.username}」?` : `确认解冻「${r.username}」?`}
|
|
|
|
|
|
|
+ title={
|
|
|
|
|
+ r.status === STATUS_ENABLED
|
|
|
|
|
+ ? `确认冻结「${r.username}」?`
|
|
|
|
|
+ : `确认解冻「${r.username}」?`
|
|
|
|
|
+ }
|
|
|
onConfirm={() => handleToggleStatus(r)}
|
|
onConfirm={() => handleToggleStatus(r)}
|
|
|
>
|
|
>
|
|
|
- <a className={r.status === 1 ? 'text-(--ant-color-error)' : ''}>
|
|
|
|
|
- {r.status === 1 ? '冻结' : '解冻'}
|
|
|
|
|
|
|
+ <a className={r.status === STATUS_ENABLED ? 'text-(--ant-color-error)' : ''}>
|
|
|
|
|
+ {r.status === STATUS_ENABLED ? '冻结' : '解冻'}
|
|
|
</a>
|
|
</a>
|
|
|
</Popconfirm>,
|
|
</Popconfirm>,
|
|
|
],
|
|
],
|