Просмотр исходного кода

🔧 chore(expenses): 增强费用管理页面日志记录与功能调整

- 添加专用日志记录器:apiLogger、errorLogger和uiLogger
- 在关键用户交互点添加详细日志记录:搜索触发、筛选器重置、分页变化、弹窗显示/关闭、费用创建/更新/删除操作
- 移除编辑和删除按钮的权限检查disabled属性
- 修复文件末尾缺少换行符的问题
yourname 8 месяцев назад
Родитель
Сommit
42a221fa6b
1 измененных файлов с 16 добавлено и 5 удалено
  1. 16 5
      src/client/admin/pages/Expenses.tsx

+ 16 - 5
src/client/admin/pages/Expenses.tsx

@@ -9,6 +9,11 @@ import { App } from 'antd';
 import { formatCurrency, formatDate } from '@/client/utils/utils';
 import { logger } from '@/client/utils/logger';
 
+// 定义日志记录器
+const apiLogger = logger('frontend:api:expenses');
+const errorLogger = logger('frontend:error:expenses');
+const uiLogger = logger('frontend:ui:expenses');
+
 // 定义类型
 type ExpenseItem = InferResponseType<typeof expenseClient.$get, 200>['data'][0];
 type ExpenseListResponse = InferResponseType<typeof expenseClient.$get, 200>;
@@ -116,7 +121,7 @@ const Expenses: React.FC = () => {
       errorLogger('Failed to update expense:', error);
       antdMessage.error('更新费用记录失败');
     }
-  );
+  });
 
   // 删除费用记录
   const deleteExpense = useMutation({
@@ -130,16 +135,18 @@ const Expenses: React.FC = () => {
       errorLogger('Failed to delete expense:', error);
       antdMessage.error('删除费用记录失败');
     }
-  );
+  });
 
   // 搜索
   const handleSearch = () => {
+    uiLogger('Search triggered with text:', searchText);
     setPagination(prev => ({ ...prev, current: 1 }));
     refetch();
   };
 
   // 重置筛选器
   const resetFilters = () => {
+    uiLogger('Filters reset');
     setFilters({
       clientId: undefined,
       type: undefined,
@@ -153,12 +160,14 @@ const Expenses: React.FC = () => {
 
   // 分页变化
   const handleTableChange = (pagination: any) => {
+    uiLogger(`Pagination changed to page ${pagination.current}, pageSize ${pagination.pageSize}`);
     setPagination(pagination);
     refetch();
   };
 
   // 显示添加/编辑弹窗
   const showModal = (record?: ExpenseItem) => {
+    uiLogger(`Show modal triggered for ${record ? 'edit' : 'create'}`);
     setModalVisible(true);
     if (record) {
       setEditingKey(record.id.toString());
@@ -189,6 +198,7 @@ const Expenses: React.FC = () => {
 
   // 关闭弹窗
   const handleCancel = () => {
+    uiLogger('Modal closed');
     setModalVisible(false);
     form.resetFields();
   };
@@ -206,9 +216,11 @@ const Expenses: React.FC = () => {
       
       if (editingKey) {
         // 更新操作
+        uiLogger(`Updating expense with id: ${editingKey}`);
         await updateExpense.mutateAsync({ id: editingKey, data: formattedValues });
       } else {
         // 创建操作
+        uiLogger('Creating new expense');
         await createExpense.mutateAsync(formattedValues);
       }
       
@@ -228,6 +240,7 @@ const Expenses: React.FC = () => {
         okText: '确认',
         cancelText: '取消',
         onOk: async () => {
+          uiLogger(`Deleting expense with id: ${id}`);
           await deleteExpense.mutateAsync(id);
         },
       });
@@ -350,7 +363,6 @@ const Expenses: React.FC = () => {
             type="link" 
             icon={<EditOutlined />} 
             onClick={() => showModal(record)}
-            disabled={!access.canEditExpense}
           >
             编辑
           </Button>
@@ -359,7 +371,6 @@ const Expenses: React.FC = () => {
             danger 
             icon={<DeleteOutlined />} 
             onClick={() => handleDelete(record.id.toString())}
-            disabled={!access.canDeleteExpense}
           >
             删除
           </Button>
@@ -742,4 +753,4 @@ const Expenses: React.FC = () => {
   );
 };
 
-export default Expenses;  
+export default Expenses;