|
|
@@ -82,20 +82,17 @@ Draft
|
|
|
- [ ] 分析源系统资产文件上传逻辑:`allin_system-master/client/app/admin/dashboard/order/OrderAssetModal.tsx`
|
|
|
- **源文件**:`allin_system-master/client/app/admin/dashboard/order/OrderAssetModal.tsx`
|
|
|
- **查看要点**:资产文件上传组件、文件处理逻辑、预览功能
|
|
|
- - [ ] 查看文件管理UI包组件:`packages/file-management-ui/src/components/FileSelector.tsx`
|
|
|
- - **组件文件**:`packages/file-management-ui/src/components/FileSelector.tsx`
|
|
|
- - **查看要点**:组件API、事件处理、文件类型限制
|
|
|
- - [ ] 创建资产文件上传组件:`src/components/AssetUploadField.tsx`
|
|
|
- - **目标文件**:`allin-packages/order-management-ui/src/components/AssetUploadField.tsx`
|
|
|
- - **功能**:集成`FileSelector`组件,支持资产文件上传、预览、删除
|
|
|
- - **参考文件**:`packages/file-management-ui/src/components/FileSelector.tsx`
|
|
|
- - [ ] 集成资产文件上传到表单:在订单人员资产表单中添加文件上传字段
|
|
|
+ - [ ] **直接集成现有文件管理UI包组件**:参考`disability-person-management-ui`的实现模式
|
|
|
+ - **导入FileSelector组件**:`import { FileSelector } from '@d8d/file-management-ui/components';`
|
|
|
+ - **查看现有实现参考**:`allin-packages/disability-person-management-ui/src/components/DisabilityPersonManagement.tsx:537-547`
|
|
|
+ - **查看要点**:组件API、事件处理、文件类型限制、表单集成
|
|
|
+ - [ ] **集成FileSelector到订单人员资产表单**:在资产关联组件中直接使用FileSelector
|
|
|
- **字段**:`fileId`(文件ID字段)
|
|
|
- - **表单集成**:使用`AssetUploadField`组件,表单接收`fileId`参数
|
|
|
- - [ ] 创建资产文件预览组件:`src/components/AssetPreview.tsx`
|
|
|
- - **目标文件**:`allin-packages/order-management-ui/src/components/AssetPreview.tsx`
|
|
|
- - **功能**:使用`FilePreview`组件显示资产文件
|
|
|
- - **参考文件**:`packages/file-management-ui/src/components/FilePreview.tsx`
|
|
|
+ - **表单集成**:直接使用`FileSelector`组件,通过`onChange`回调设置`fileId`值
|
|
|
+ - **文件类型限制**:根据资产类型设置`accept`和`filterType`属性
|
|
|
+ - [ ] **实现资产文件预览**:使用FileSelector的内置预览功能或创建简单预览组件
|
|
|
+ - **方案**:FileSelector组件已包含预览功能,无需额外创建预览组件
|
|
|
+ - **如果需要自定义预览**:创建简单的预览组件`src/components/AssetPreview.tsx`,使用文件ID显示资产信息
|
|
|
|
|
|
- [ ] 任务4:实现区域选择器集成 (AC: 4)
|
|
|
- [ ] 查看区域管理UI包组件:`packages/area-management-ui/src/components/AreaSelect.tsx`
|
|
|
@@ -198,6 +195,8 @@ Draft
|
|
|
|
|
|
6. **测试选择器优化**:必须为关键交互元素添加`data-testid`属性,避免使用文本查找导致的测试冲突。使用kebab-case格式:`{action}-{element}-{purpose}`。
|
|
|
|
|
|
+7. **直接集成现有组件**:对于文件上传、区域选择等通用功能,应该直接集成现有的UI包组件(如`@d8d/file-management-ui`的`FileSelector`),而不是重复创建功能相同的组件。参考`disability-person-management-ui`的实现模式。
|
|
|
+
|
|
|
### 技术架构信息 [Source: architecture/ui-package-standards.md]
|
|
|
|
|
|
#### 包结构规范
|
|
|
@@ -279,8 +278,8 @@ Draft
|
|
|
- **状态管理**:Jotai → React Query + React状态
|
|
|
- **表单处理**:Ant Design Form → React Hook Form + Zod
|
|
|
- **API客户端**:自定义fetch API → Hono RPC (rpcClient + ClientManager模式)
|
|
|
-- **文件上传**:直接文件上传 → 集成`@d8d/file-management-ui`文件选择器组件
|
|
|
-- **区域选择**:自定义区域选择 → 集成`@d8d/area-management-ui`区域选择器组件
|
|
|
+- **文件上传**:直接文件上传 → **直接集成现有`@d8d/file-management-ui`文件选择器组件**(参考`disability-person-management-ui`实现,无需重复创建组件)
|
|
|
+- **区域选择**:自定义区域选择 → **直接集成现有`@d8d/area-management-ui`区域选择器组件**
|
|
|
- **枚举常量**:硬编码枚举 → 使用`@d8d/allin-enums`包中的枚举
|
|
|
|
|
|
### Testing
|