From 1a7bb09ed0e74ba2b7349a6e015faa0e6d9fc6f5 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 02 十二月 2025 13:18:17 +0800
Subject: [PATCH] fix: 谢绝

---
 src/views/UserManage/UserManageList.vue |   80 ++++++++++++++++++++++++----------------
 1 files changed, 48 insertions(+), 32 deletions(-)

diff --git a/src/views/UserManage/UserManageList.vue b/src/views/UserManage/UserManageList.vue
index 17fec99..ccb367c 100644
--- a/src/views/UserManage/UserManageList.vue
+++ b/src/views/UserManage/UserManageList.vue
@@ -14,14 +14,26 @@
           </QueryFilterItem>
         </template>
         <template #btn>
-          <el-button @click="openDialog()" icon="Plus" type="primary">鏂板</el-button>
+          <el-button
+            v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
+            @click="openDialog()"
+            icon="Plus"
+            type="primary"
+            >鏂板</el-button
+          >
         </template>
       </ProTableQueryFilterBar>
-      <ProTableV2
-        v-bind="proTableProps"
-        :columns="UserManageColumns"
-        :operationBtns="operationBtns"
-      >
+      <ProTableV2 v-bind="proTableProps" :columns="column" :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" />
@@ -43,10 +55,10 @@
   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';
@@ -57,41 +69,27 @@
   name: 'UserManageList',
 });
 
-const operationBtns = defineOperationBtns([
-  {
-    data: {
-      enCode: 'editBtn',
-      name: '缂栬緫',
-    },
+const operationBtnMap: Record<string, OperationBtnType> = {
+  editBtn: {
     emits: {
       onClick: (role) => openDialog(role),
     },
   },
-  {
-    data: {
-      enCode: 'resetPasswordBtn',
-      name: '閲嶇疆瀵嗙爜',
-    },
-    props: {
-      type: 'danger',
-    },
+  resetPasswordBtn: {
     emits: {
       onClick: (role) => openResetPasswordDialog(role),
     },
   },
-  {
-    data: {
-      enCode: 'resetOperatorPasswordBtn',
-      name: '閲嶇疆鎿嶄綔瀵嗙爜',
-    },
-    props: {
-      type: 'danger',
-    },
+  resetOperatorPasswordBtn: {
     emits: {
       onClick: (role) => openResetOperatorPasswordDialog(role),
     },
   },
-]);
+};
+
+const { column, operationBtns, checkSubModuleItemShow } = useAccess({
+  operationBtnMap,
+});
 
 const router = useRouter();
 const BaseState = {
@@ -141,7 +139,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 },
     },
   }
 );
@@ -257,6 +255,24 @@
   });
 }
 
+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 = {

--
Gitblit v1.9.1