Quellcode durchsuchen

♻️ refactor(passengers): 优化乘客类型导入和数据处理

- 修改IdType导入路径,从@d8d/server/src/share/passenger.types引入
- 删除本地mini/src/types/passenger.types.ts类型文件
- 重构乘客列表数据获取逻辑,将数据提取与请求分离
- 优化mutation类型定义,显式声明乘客数据结构
yourname vor 3 Monaten
Ursprung
Commit
59f7155111
2 geänderte Dateien mit 6 neuen und 55 gelöschten Zeilen
  1. 6 3
      mini/src/pages/passengers/passengers.tsx
  2. 0 52
      mini/src/types/passenger.types.ts

+ 6 - 3
mini/src/pages/passengers/passengers.tsx

@@ -11,8 +11,8 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@
 import { Label } from '@/components/ui/label'
 import { useAuth } from '@/utils/auth'
 import { passengerClient } from '@/api'
-import { IdType } from '@/types/passenger.types'
 import type { InferResponseType } from 'hono/client'
+import { IdType } from '@d8d/server/src/share/passenger.types'
 
 // 使用RPC方式提取类型
 type Passenger = InferResponseType<typeof passengerClient.$get, 200>['data'][0]
@@ -33,7 +33,7 @@ const PassengersPage: React.FC = () => {
   })
 
   // 获取乘客列表
-  const { data: passengers = [], isLoading } = useQuery({
+  const { data: passengersResponse, isLoading } = useQuery({
     queryKey: ['passengers'],
     queryFn: async () => {
       const response = await passengerClient.$get({ query: { page: 1, pageSize: 100 } })
@@ -48,9 +48,12 @@ const PassengersPage: React.FC = () => {
     enabled: !!user
   })
 
+  // 提取乘客列表数据
+  const passengers = passengersResponse?.data || []
+
   // 添加乘客
   const addMutation = useMutation({
-    mutationFn: async (passengerData: Omit<Passenger, 'id' | 'createdAt' | 'updatedAt' | 'isDefault'>) => {
+    mutationFn: async (passengerData: { name: string; idType: IdType; idNumber: string; phone: string }) => {
       const response = await passengerClient.$post({ json: passengerData })
       return await response.json()
     },

+ 0 - 52
mini/src/types/passenger.types.ts

@@ -1,52 +0,0 @@
-export enum IdType {
-  ID_CARD = '身份证',
-  HONG_KONG_MACAO_PASS = '港澳通行证',
-  TAIWAN_PASS = '台湾通行证',
-  PASSPORT = '护照',
-  OTHER = '其他证件'
-}
-
-export interface Passenger {
-  id: number;
-  userId: number;
-  name: string;
-  idType: IdType;
-  idNumber: string;
-  phone: string;
-  isDefault: boolean;
-  createdAt: Date;
-  updatedAt: Date;
-  createdBy?: number;
-  updatedBy?: number;
-}
-
-export interface PassengerCreateInput {
-  userId: number;
-  name: string;
-  idType: IdType;
-  idNumber: string;
-  phone: string;
-  isDefault?: boolean;
-}
-
-export interface PassengerUpdateInput {
-  name?: string;
-  idType?: IdType;
-  idNumber?: string;
-  phone?: string;
-  isDefault?: boolean;
-}
-
-export interface PassengerListParams {
-  page?: number;
-  pageSize?: number;
-  keyword?: string;
-  userId?: number;
-}
-
-export interface PassengerListResponse {
-  data: Passenger[];
-  total: number;
-  page: number;
-  pageSize: number;
-}