From 88bb33b8e9130650a2bdbaa3c1e2e5150f898ab0 Mon Sep 17 00:00:00 2001 From: awenes <1121353141@qq.com> Date: Thu, 4 Apr 2024 21:45:41 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=96=B0=E5=A2=9E=E9=94=81?= =?UTF-8?q?=E5=AE=9A=E5=90=8E=E8=A7=A3=E9=94=81=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/UserList/components/User/User.tsx | 48 ++++++++++++++++--- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/eiam-console/src/main/console-fe/src/pages/account/UserList/components/User/User.tsx b/eiam-console/src/main/console-fe/src/pages/account/UserList/components/User/User.tsx index cc858841..9daf6bbe 100644 --- a/eiam-console/src/main/console-fe/src/pages/account/UserList/components/User/User.tsx +++ b/eiam-console/src/main/console-fe/src/pages/account/UserList/components/User/User.tsx @@ -21,6 +21,7 @@ import { getUserList, removeBatchUser, removeUser, + unlockUser, } from '@/services/account'; import { history } from '@@/core/history'; import { PlusOutlined, QuestionCircleOutlined } from '@ant-design/icons'; @@ -74,7 +75,7 @@ export default (props: UserListProps) => { const actionRef = useRef(); const { styles: className } = useStyle(); const intl = useIntl(); - let useApp = App.useApp(); + let { message, modal } = App.useApp(); const [id, setId] = useState(); /** 包含子部门*/ const [inclSubOrganization, setInclSubOrganization] = useState(true); @@ -93,7 +94,7 @@ export default (props: UserListProps) => { dataIndex: 'username', width: 130, ellipsis: true, - renderText: (dom, row) => ( + renderText: (_dom, row) => ( { width: 110, align: 'center', fixed: 'right', - render: (text: any, row: AccountAPI.ListUser) => { + render: (_text: any, row: AccountAPI.ListUser) => { return [ ...[ + (row.status === 'locked' || + row.status === 'expired_locked' || + row.status === 'password_expired_locked') && ( + { + const confirmed = modal.warning({ + title: intl.formatMessage({ + id: 'pages.account.user_list.user.columns.option.unlock_title', + }), + content: intl.formatMessage({ + id: 'pages.account.user_list.user.columns.option.unlock_content', + }), + okText: intl.formatMessage({ id: 'app.confirm' }), + centered: true, + okType: 'primary', + okCancel: true, + cancelText: intl.formatMessage({ id: 'app.cancel' }), + onOk: async () => { + const { success } = await unlockUser(row.id); + if (success) { + confirmed.destroy(); + message.success(intl.formatMessage({ id: 'app.operation_success' })); + actionRef.current?.reload(); + return; + } + }, + }); + }} + > + {intl.formatMessage({ id: 'pages.account.user_list.user.columns.option.unlock' })} + + ), row.status === 'enabled' ? ( { onConfirm={async () => { const { success } = await disableUser(row.id); if (success) { - useApp.message.success(intl.formatMessage({ id: 'app.operation_success' })); + message.success(intl.formatMessage({ id: 'app.operation_success' })); actionRef.current?.reload(); return; } @@ -291,7 +325,7 @@ export default (props: UserListProps) => { onConfirm={async () => { const { success } = await enableUser(row.id); if (success) { - useApp.message.success(intl.formatMessage({ id: 'app.operation_success' })); + message.success(intl.formatMessage({ id: 'app.operation_success' })); actionRef.current?.reload(); return; } @@ -340,7 +374,7 @@ export default (props: UserListProps) => { onConfirm={async () => { const { success } = await removeUser(row.id); if (success) { - useApp.message.success(intl.formatMessage({ id: 'app.operation_success' })); + message.success(intl.formatMessage({ id: 'app.operation_success' })); actionRef.current?.reload(); return; } @@ -424,7 +458,7 @@ export default (props: UserListProps) => { onConfirm={async () => { const { success } = await removeBatchUser(selectedRowKeys); if (success) { - useApp.message.success(intl.formatMessage({ id: 'app.operation_success' })); + message.success(intl.formatMessage({ id: 'app.operation_success' })); onCleanSelected(); actionRef.current?.reload(); }