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

✨ feat(geo-areas): add schemas entry point
- 创建src/schemas/index.ts文件统一导出schema和类型
- 在package.json中添加schemas导出配置

✨ feat(advertisements-module): add schemas entry point
- 创建src/schemas/index.ts文件统一导出schema和类型

♻️ refactor(web): update schema imports to use new entry points
- 调整AreaForm.tsx中geo-areas相关导入路径
- 更新AdvertisementTypes.tsx中广告类型DTO导入路径
- 修改AreasTreePage.tsx中地区相关类型导入
- 调整DeliveryAddresses.tsx中配送地址DTO导入路径
- 更新Files.tsx中文件DTO导入路径
- 修改Goods.tsx中商品DTO导入路径,使用Admin前缀的DTO
- 调整GoodsCategories.tsx中商品分类DTO导入路径
- 更新Merchants.tsx中商户DTO导入路径,使用Admin前缀的DTO
- 修改Orders.tsx中订单DTO导入路径
- 调整Suppliers.tsx中供应商DTO导入路径,使用Admin前缀的DTO
- 更新Users.tsx中用户DTO导入路径

yourname 1 месяц назад
Родитель
Сommit
cb44896559

+ 2 - 0
packages/advertisements-module/src/schemas/index.ts

@@ -0,0 +1,2 @@
+export * from './advertisement.schema';
+export * from './advertisement-type.schema';

+ 5 - 0
packages/geo-areas/package.json

@@ -35,6 +35,11 @@
       "types": "./src/api/admin/areas/index.ts",
       "import": "./src/api/admin/areas/index.ts",
       "require": "./src/api/admin/areas/index.ts"
+    },
+    "./schemas": {
+      "types": "./src/schemas/index.ts",
+      "import": "./src/schemas/index.ts",
+      "require": "./src/schemas/index.ts"
     }
   },
   "scripts": {

+ 2 - 0
packages/geo-areas/src/schemas/index.ts

@@ -0,0 +1,2 @@
+export * from '../modules/areas/area.schema';
+export { AreaLevel } from '../modules/areas/area.entity';

+ 2 - 3
web/src/client/admin/components/AreaForm.tsx

@@ -5,9 +5,8 @@ import { Button } from '@/client/components/ui/button';
 import { Input } from '@/client/components/ui/input';
 import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/client/components/ui/select';
 import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from '@/client/components/ui/form';
-import { createAreaSchema, updateAreaSchema } from '@d8d/geo-areas';
-import type { CreateAreaInput, UpdateAreaInput } from '@d8d/geo-areas';
-import { AreaLevel } from '@d8d/geo-areas';
+import { createAreaSchema, updateAreaSchema, AreaLevel } from '@d8d/geo-areas/schemas';
+import type { CreateAreaInput, UpdateAreaInput } from '@d8d/geo-areas/schemas';
 import { DisabledStatus } from '@/share/types';
 
 interface AreaFormProps {

+ 1 - 1
web/src/client/admin/pages/AdvertisementTypes.tsx

@@ -20,7 +20,7 @@ import { DataTablePagination } from '@/client/admin/components/DataTablePaginati
 
 import { advertisementTypeClient } from '@/client/api'
 import type { InferRequestType, InferResponseType } from 'hono/client'
-import { CreateAdvertisementTypeDto, UpdateAdvertisementTypeDto } from '@d8d/advertisements-module'
+import { CreateAdvertisementTypeDto, UpdateAdvertisementTypeDto } from '@d8d/advertisements-module/schemas'
 
 type AdvertisementTypeResponse = InferResponseType<typeof advertisementTypeClient.$get, 200>['data'][0]
 type CreateRequest = InferRequestType<typeof advertisementTypeClient.$post>['json']

+ 1 - 1
web/src/client/admin/pages/Advertisements.tsx

@@ -17,7 +17,7 @@ import ImageSelector from '@/client/admin/components/ImageSelector';
 import AdvertisementTypeSelector from '@/client/admin/components/AdvertisementTypeSelector';
 import { advertisementClient } from '@/client/api';
 import type { InferRequestType, InferResponseType } from 'hono/client';
-import { CreateAdvertisementDto, UpdateAdvertisementDto } from '@d8d/advertisements-module';
+import { CreateAdvertisementDto, UpdateAdvertisementDto } from '@d8d/advertisements-module/schemas';
 
 type CreateRequest = InferRequestType<typeof advertisementClient.$post>['json'];
 type UpdateRequest = InferRequestType<typeof advertisementClient[':id']['$put']>['json'];

+ 1 - 1
web/src/client/admin/pages/AreasTreePage.tsx

@@ -10,7 +10,7 @@ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } f
 import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from '@/client/components/ui/alert-dialog';
 import { AreaForm } from '../components/AreaForm';
 import { AreaTreeAsync } from '../components/AreaTreeAsync';
-import type { CreateAreaInput, UpdateAreaInput } from '@d8d/geo-areas';
+import type { CreateAreaInput, UpdateAreaInput } from '@d8d/geo-areas/schemas';
 import { toast } from 'sonner';
 
 // 类型提取规范

+ 1 - 1
web/src/client/admin/pages/DeliveryAddresses.tsx

@@ -9,7 +9,7 @@ import { zodResolver } from '@hookform/resolvers/zod';
 import type { InferRequestType, InferResponseType } from 'hono/client';
 
 import { deliveryAddressClient } from '@/client/api';
-import { CreateDeliveryAddressDto, UpdateDeliveryAddressDto } from '@d8d/delivery-address-module';
+import { CreateDeliveryAddressDto, UpdateDeliveryAddressDto } from '@d8d/delivery-address-module/schemas';
 import { Button } from '@/client/components/ui/button';
 import { Input } from '@/client/components/ui/input';
 import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/client/components/ui/card';

+ 1 - 1
web/src/client/admin/pages/Files.tsx

@@ -16,7 +16,7 @@ import { fileClient } from '@/client/api';
 import type { InferResponseType, InferRequestType } from 'hono/client';
 import dayjs from 'dayjs';
 import MinioUploader from '@/client/admin/components/MinioUploader';
-import { UpdateFileDto } from '@d8d/file-module/schemas/file.schema';
+import { UpdateFileDto } from '@d8d/file-module/schemas';
 import * as z from 'zod';
 
 // 定义类型

+ 3 - 3
web/src/client/admin/pages/Goods.tsx

@@ -19,7 +19,7 @@ import { Textarea } from '@/client/components/ui/textarea';
 import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/client/components/ui/select';
 
 import { goodsClient } from '@/client/api';
-import { CreateGoodsDto, UpdateGoodsDto } from '@d8d/goods-module';
+import { AdminCreateGoodsDto, AdminUpdateGoodsDto } from '@d8d/goods-module/schemas';
 import { DataTablePagination } from '@/client/admin/components/DataTablePagination';
 import ImageSelector from '@/client/admin/components/ImageSelector';
 import GoodsCategorySelector from '@/client/admin/components/GoodsCategorySelector';
@@ -32,8 +32,8 @@ type CreateRequest = InferRequestType<typeof goodsClient.$post>['json'];
 type UpdateRequest = InferRequestType<typeof goodsClient[':id']['$put']>['json'];
 type GoodsResponse = InferResponseType<typeof goodsClient.$get, 200>['data'][0];
 
-const createFormSchema = CreateGoodsDto;
-const updateFormSchema = UpdateGoodsDto;
+const createFormSchema = AdminCreateGoodsDto;
+const updateFormSchema = AdminUpdateGoodsDto;
 
 export const GoodsPage = () => {
   const queryClient = useQueryClient();

+ 1 - 1
web/src/client/admin/pages/GoodsCategories.tsx

@@ -16,7 +16,7 @@ import { Badge } from '@/client/components/ui/badge';
 import { DataTablePagination } from '@/client/admin/components/DataTablePagination';
 import { ImageSelector } from '@/client/admin/components/ImageSelector';
 import { goodsCategoryClient } from '@/client/api';
-import { CreateGoodsCategoryDto, UpdateGoodsCategoryDto } from '@d8d/goods-module';
+import { CreateGoodsCategoryDto, UpdateGoodsCategoryDto } from '@d8d/goods-module/schemas';
 
 import type { InferRequestType, InferResponseType } from 'hono/client';
 

+ 3 - 3
web/src/client/admin/pages/Merchants.tsx

@@ -21,15 +21,15 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@
 import { DataTablePagination } from '@/client/admin/components/DataTablePagination'
 
 import { merchantClient } from '@/client/api'
-import { CreateMerchantDto, UpdateMerchantDto } from '@d8d/merchant-module'
+import { AdminCreateMerchantDto, AdminUpdateMerchantDto } from '@d8d/merchant-module/schemas'
 import { Skeleton } from '@/client/components/ui/skeleton'
 
 type CreateRequest = InferRequestType<typeof merchantClient.$post>['json']
 type UpdateRequest = InferRequestType<typeof merchantClient[':id']['$put']>['json']
 type MerchantResponse = InferResponseType<typeof merchantClient.$get, 200>['data'][0]
 
-const createFormSchema = CreateMerchantDto
-const updateFormSchema = UpdateMerchantDto
+const createFormSchema = AdminCreateMerchantDto
+const updateFormSchema = AdminUpdateMerchantDto
 
 export const MerchantsPage = () => {
   const queryClient = useQueryClient()

+ 1 - 1
web/src/client/admin/pages/Orders.tsx

@@ -20,7 +20,7 @@ import { Textarea } from '@/client/components/ui/textarea';
 import { DataTablePagination } from '@/client/admin/components/DataTablePagination';
 import { orderClient } from '@/client/api';
 import type { InferRequestType, InferResponseType } from 'hono/client';
-import { UpdateOrderDto } from '@d8d/orders-module';
+import { UpdateOrderDto } from '@d8d/orders-module/schemas';
 
 // 类型定义
 type OrderResponse = InferResponseType<typeof orderClient.$get, 200>['data'][0];

+ 3 - 3
web/src/client/admin/pages/Suppliers.tsx

@@ -19,7 +19,7 @@ import {
 
 import { supplierClient } from '@/client/api';
 import type { InferRequestType, InferResponseType } from 'hono/client';
-import { CreateSupplierDto, UpdateSupplierDto } from '@d8d/supplier-module';
+import { CreateAdminSupplierDto, UpdateAdminSupplierDto } from '@d8d/supplier-module/schemas';
 
 import { Button } from '@/client/components/ui/button';
 import { Input } from '@/client/components/ui/input';
@@ -39,8 +39,8 @@ type CreateRequest = InferRequestType<typeof supplierClient.$post>['json'];
 type UpdateRequest = InferRequestType<typeof supplierClient[':id']['$put']>['json'];
 
 // 表单Schema直接使用后端定义
-const createFormSchema = CreateSupplierDto;
-const updateFormSchema = UpdateSupplierDto;
+const createFormSchema = CreateAdminSupplierDto;
+const updateFormSchema = UpdateAdminSupplierDto;
 
 export const SuppliersPage = () => {
   // 状态管理

+ 1 - 1
web/src/client/admin/pages/Users.tsx

@@ -19,7 +19,7 @@ import { toast } from 'sonner';
 import { Skeleton } from '@/client/components/ui/skeleton';
 import { Switch } from '@/client/components/ui/switch';
 import { DisabledStatus } from '@/share/types';
-import { CreateUserDto, UpdateUserDto } from '@d8d/user-module/schemas/user.schema';
+import { CreateUserDto, UpdateUserDto } from '@d8d/user-module/schemas';
 import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/client/components/ui/select';
 import { Popover, PopoverContent, PopoverTrigger } from '@/client/components/ui/popover';
 import { Calendar } from '@/client/components/ui/calendar';