Explorar el Código

✨ feat(ui): 为多个管理界面添加初始数据并修复条件渲染

- 为渠道管理、残疾人管理、残疾人个人管理、平台管理界面的查询添加初始数据,防止数据未加载时的渲染错误
- 修复分页组件条件渲染逻辑,使用 `data.total > 0` 替代 `data?.total` 检查
- 在残疾人管理界面中为搜索结果查询添加初始数据,并修复 `displayTotal` 的类型断言
- 在薪资管理界面中将表单标签从 `FormLabel` 替换为 `div` 元素,以解决潜在的样式或功能问题

♻️ refactor(order): 重构订单管理界面的 API 客户端调用

- 将订单管理界面中的直接 `orderClient` 调用替换为 `orderClientManager.get()` 调用,以支持动态客户端管理
- 修复 `orderStatus` 参数的类型转换,从 `as OrderStatus` 改为 `as unknown as OrderStatus`
yourname hace 1 mes
padre
commit
1a0c7fdc0a

+ 5 - 1
allin-packages/channel-management-ui/src/components/ChannelManagement.tsx

@@ -60,6 +60,10 @@ const ChannelManagement: React.FC = () => {
       });
       if (res.status !== 200) throw new Error('获取渠道列表失败');
       return await res.json();
+    },
+    initialData: {
+      data: [],
+      total: 0
     }
   });
 
@@ -315,7 +319,7 @@ const ChannelManagement: React.FC = () => {
             </Table>
           </div>
 
-          {data?.total && (
+          { data.total > 0 && (
             <div className="mt-4">
               <DataTablePagination
                 currentPage={searchParams.page}

+ 10 - 2
allin-packages/disability-management-ui/src/components/DisabilityManagement.tsx

@@ -66,6 +66,10 @@ const DisabilityManagement: React.FC = () => {
       });
       if (res.status !== 200) throw new Error('获取残疾人列表失败');
       return await res.json();
+    },
+    initialData: {
+      data: [],
+      total: 0
     }
   });
 
@@ -84,6 +88,10 @@ const DisabilityManagement: React.FC = () => {
       if (res.status !== 200) throw new Error('搜索残疾人失败');
       return await res.json();
     },
+    initialData: {
+      data: [],
+      total: 0
+    },
     enabled: !!searchParams.search.trim()
   });
 
@@ -217,7 +225,7 @@ const DisabilityManagement: React.FC = () => {
   };
 
   const displayData = searchParams.search.trim() ? searchResults?.data : disabilityList?.data;
-  const displayTotal = searchParams.search.trim() ? searchResults?.total : disabilityList?.total;
+  const displayTotal = (searchParams.search.trim() ? searchResults?.total : disabilityList?.total) as number;
 
   return (
     <div className="space-y-6">
@@ -309,7 +317,7 @@ const DisabilityManagement: React.FC = () => {
                 </div>
               )}
 
-              {displayTotal && displayTotal > 0 && (
+              { displayTotal > 0 && (
                 <DataTablePagination
                   totalCount={displayTotal}
                   pageSize={searchParams.limit}

+ 5 - 1
allin-packages/disability-person-management-ui/src/components/DisabilityPersonManagement.tsx

@@ -78,6 +78,10 @@ const DisabilityPersonManagement: React.FC = () => {
       });
       if (res.status !== 200) throw new Error('获取残疾人列表失败');
       return await res.json();
+    },
+    initialData: {
+      data: [],
+      total: 0
     }
   });
 
@@ -293,7 +297,7 @@ const DisabilityPersonManagement: React.FC = () => {
                 </TableBody>
               </Table>
 
-              {data && (
+              {data.total > 0 && (
                 <div className="mt-4">
                   <DataTablePagination
                     currentPage={searchParams.page}

+ 6 - 6
allin-packages/order-management-ui/src/components/OrderManagement.tsx

@@ -56,7 +56,7 @@ import {
   CheckCircle,
 } from 'lucide-react';
 import { OrderStatus, WorkStatus, getOrderStatusLabel, getWorkStatusLabel } from '@d8d/allin-enums';
-import { orderClient } from '../api/orderClient';
+import { orderClient, orderClientManager } from '../api/orderClient';
 import OrderForm from './OrderForm';
 import PersonSelector from './PersonSelector';
 import OrderPersonAssetAssociation from './OrderPersonAssetAssociation';
@@ -88,10 +88,10 @@ export const OrderManagement: React.FC = () => {
       // 转换searchParams中的orderStatus从number到OrderStatus枚举
       const apiParams = {
         ...searchParams,
-        orderStatus: searchParams.orderStatus !== undefined ? searchParams.orderStatus as OrderStatus : undefined,
+        orderStatus: searchParams.orderStatus !== undefined ? searchParams.orderStatus as unknown as OrderStatus : undefined,
       };
 
-      const response = await orderClient.list.$get({
+      const response = await orderClientManager.get().list.$get({
         query: apiParams,
       });
       if (!response.ok) {
@@ -105,7 +105,7 @@ export const OrderManagement: React.FC = () => {
   // 删除订单Mutation
   const deleteMutation = useMutation({
     mutationFn: async (id: number) => {
-      const response = await orderClient.delete[':id'].$delete({
+      const response = await orderClientManager.get().delete[':id'].$delete({
         param: { id },
       });
       if (!response.ok) {
@@ -126,7 +126,7 @@ export const OrderManagement: React.FC = () => {
   // 激活订单Mutation
   const activateMutation = useMutation({
     mutationFn: async (orderId: number) => {
-      const response = await orderClient.activate[':orderId'].$post({
+      const response = await orderClientManager.get().activate[':orderId'].$post({
         param: { orderId },
       });
       if (!response.ok) {
@@ -147,7 +147,7 @@ export const OrderManagement: React.FC = () => {
   // 关闭订单Mutation
   const closeMutation = useMutation({
     mutationFn: async (orderId: number) => {
-      const response = await orderClient.close[':orderId'].$post({
+      const response = await orderClientManager.get().close[':orderId'].$post({
         param: { orderId },
       });
       if (!response.ok) {

+ 6 - 2
allin-packages/platform-management-ui/src/components/PlatformManagement.tsx

@@ -60,6 +60,10 @@ const PlatformManagement: React.FC = () => {
       });
       if (res.status !== 200) throw new Error('获取平台列表失败');
       return await res.json();
+    },
+    initialData: {
+      data: [],
+      total: 0
     }
   });
 
@@ -321,12 +325,12 @@ const PlatformManagement: React.FC = () => {
             </div>
           </div>
 
-          <DataTablePagination
+          {data.total > 0 && (<DataTablePagination
             currentPage={searchParams.page}
             pageSize={searchParams.limit}
             totalCount={data?.total || 0}
             onPageChange={(page, limit) => setSearchParams(prev => ({ ...prev, page, limit }))}
-          />
+          />)}
         </CardContent>
       </Card>
 

+ 3 - 3
allin-packages/salary-management-ui/src/components/SalaryManagement.tsx

@@ -496,19 +496,19 @@ const SalaryManagement: React.FC = () => {
                   {/* 显示当前区域信息 */}
                   <div className="grid grid-cols-3 gap-4">
                     <div>
-                      <FormLabel>省份</FormLabel>
+                      <div className="text-sm font-medium mb-1">省份</div>
                       <div className="p-2 border rounded-md bg-muted">
                         {updateForm.watch('provinceId')}
                       </div>
                     </div>
                     <div>
-                      <FormLabel>城市</FormLabel>
+                      <div className="text-sm font-medium mb-1">城市</div>
                       <div className="p-2 border rounded-md bg-muted">
                         {updateForm.watch('cityId')}
                       </div>
                     </div>
                     <div>
-                      <FormLabel>区县</FormLabel>
+                      <div className="text-sm font-medium mb-1">区县</div>
                       <div className="p-2 border rounded-md bg-muted">
                         {updateForm.watch('districtId') || '-'}
                       </div>