From 7faf1532a00bb886860ea5150cf80939b0b69f81 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期一, 20 十月 2025 16:32:22 +0800
Subject: [PATCH] fix: bug

---
 src/views/UserManage/UserManageList.vue |  138 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 135 insertions(+), 3 deletions(-)

diff --git a/src/views/UserManage/UserManageList.vue b/src/views/UserManage/UserManageList.vue
index 3ea919e..10d42bb 100644
--- a/src/views/UserManage/UserManageList.vue
+++ b/src/views/UserManage/UserManageList.vue
@@ -22,9 +22,23 @@
         :columns="UserManageColumns"
         :operationBtns="operationBtns"
       >
+        <template #status="{ row }">
+          <FieldSwitch
+            v-model="row.status"
+            active-text="鍚敤"
+            :active-value="EnumUserStatus.Normal"
+            inactive-text="绂佺敤"
+            :inactive-value="EnumUserStatus.Disabled"
+            :before-change="() => setUserInfoStatus(row)"
+          />
+        </template>
       </ProTableV2>
     </AppContainer>
     <AddOrEditUserDialog v-bind="dialogProps" />
+    <ResetPasswordDialog v-bind="resetPasswordDialogProps"></ResetPasswordDialog>
+    <ResetOperatorPasswordDialog
+      v-bind="resetOperatorPasswordDialogProps"
+    ></ResetOperatorPasswordDialog>
   </LoadingLayout>
 </template>
 
@@ -39,13 +53,16 @@
   useTable,
   useFormDialog,
   defineOperationBtns,
+  FieldSwitch,
 } from '@bole-core/components';
 import * as userServices from '@/services/api/user';
 import { UserManageColumns } from './constants';
-import { EnumUserStatusText } from '@/constants';
+import { EnumUserStatus, EnumUserStatusText } from '@/constants';
 import { ModelValueType } from 'element-plus';
 import { Message } from '@bole-core/core';
 import AddOrEditUserDialog from './components/AddOrEditUserDialog.vue';
+import ResetPasswordDialog from './components/ResetPasswordDialog.vue';
+import ResetOperatorPasswordDialog from './components/ResetOperatorPasswordDialog.vue';
 
 defineOptions({
   name: 'UserManageList',
@@ -59,6 +76,30 @@
     },
     emits: {
       onClick: (role) => openDialog(role),
+    },
+  },
+  {
+    data: {
+      enCode: 'resetPasswordBtn',
+      name: '閲嶇疆瀵嗙爜',
+    },
+    props: {
+      type: 'danger',
+    },
+    emits: {
+      onClick: (role) => openResetPasswordDialog(role),
+    },
+  },
+  {
+    data: {
+      enCode: 'resetOperatorPasswordBtn',
+      name: '閲嶇疆鎿嶄綔瀵嗙爜',
+    },
+    props: {
+      type: 'danger',
+    },
+    emits: {
+      onClick: (role) => openResetOperatorPasswordDialog(role),
     },
   },
 ]);
@@ -111,7 +152,7 @@
         formatter: (role: API.GetOperationUserInfosQueryResultItem) =>
           role.roles?.length > 0 ? role.roles.map((x) => x.name).join(',') : '',
       },
-      status: { type: 'enum', valueEnum: EnumUserStatusText },
+      // status: { type: 'enum', valueEnum: EnumUserStatusText },
     },
   }
 );
@@ -124,8 +165,10 @@
     userName: '',
     phoneNumber: '',
     remark: '',
+    status: '' as any as EnumUserStatus,
     roleIds: [] as string[],
     password: '',
+    operatorPassword: '',
   },
 });
 
@@ -138,7 +181,9 @@
       phoneNumber: row.phoneNumber,
       remark: row.remark,
       roleIds: row.roles?.map((x) => x.id) ?? [],
+      status: row.status,
       password: '',
+      operatorPassword: '',
     });
   } else {
     handleAdd();
@@ -152,10 +197,14 @@
       name: editForm.name,
       userName: editForm.userName,
       phoneNumber: editForm.phoneNumber,
-      password: editForm.password,
       roleIds: editForm.roleIds,
       remark: editForm.remark,
+      status: editForm.status ? editForm.status : EnumUserStatus.Normal,
     };
+    if (!editForm.id) {
+      params.password = editForm.password;
+      params.operatorPassword = editForm.operatorPassword;
+    }
     if (editForm.id) {
       params.id = editForm.id;
     }
@@ -167,4 +216,87 @@
     }
   } catch (error) {}
 }
+
+const {
+  dialogProps: resetOperatorPasswordDialogProps,
+  handleAdd: handleResetOperatorPasswordAdd,
+  editForm: resetOperatorPasswordEditForm,
+} = useFormDialog({
+  onConfirm: resetOperatorPassword,
+  defaultFormParams: {
+    ids: '',
+    operatorPassword: '',
+  },
+});
+
+function openResetOperatorPasswordDialog(row: API.GetOperationUserInfosQueryResultItem) {
+  handleResetOperatorPasswordAdd({
+    ids: row.id,
+    operatorPassword: '',
+  });
+}
+
+async function resetOperatorPassword() {
+  try {
+    let params: API.ResetUserOperatorPasswordsCommand = {
+      ids: [resetOperatorPasswordEditForm.ids],
+      operatorPassword: resetOperatorPasswordEditForm.operatorPassword,
+    };
+    let res = await userServices.resetUserOperatorPasswords(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
+const {
+  dialogProps: resetPasswordDialogProps,
+  handleAdd: handleResetPasswordAdd,
+  editForm: resetPasswordEditForm,
+} = useFormDialog({
+  onConfirm: resetPassword,
+  defaultFormParams: {
+    ids: '',
+    password: '',
+  },
+});
+
+function openResetPasswordDialog(row: API.GetOperationUserInfosQueryResultItem) {
+  handleResetPasswordAdd({
+    ids: row.id,
+    password: '',
+  });
+}
+
+async function setUserInfoStatus(row: API.GetOperationUserInfosQueryResultItem) {
+  try {
+    await Message.tipMessage(
+      `纭瑕�${row.status === EnumUserStatus.Normal ? '绂佺敤' : '鍚敤'}璇ョ敤鎴峰悧锛焋
+    );
+    const res = await userServices.setUserInfoStatus({
+      ids: [row.id],
+      status:
+        row.status === EnumUserStatus.Normal ? EnumUserStatus.Disabled : EnumUserStatus.Normal,
+    });
+    if (res) {
+      getList(paginationState.pageIndex);
+      Message.successMessage(`鎿嶄綔鎴愬姛`);
+      return !!res;
+    }
+  } catch (error) {}
+}
+
+async function resetPassword() {
+  try {
+    let params: API.ResetUserPasswordsCommand = {
+      ids: [resetPasswordEditForm.ids],
+      password: resetPasswordEditForm.password,
+    };
+    let res = await userServices.resetUserPasswords(params);
+    if (res) {
+      Message.successMessage('鎿嶄綔鎴愬姛');
+      getList(paginationState.pageIndex);
+    }
+  } catch (error) {}
+}
 </script>

--
Gitblit v1.9.1