# 任务车辆关联列表显示优化说明 ## 优化内容 ### 1. 查询条件优化 - ✅ **任务选择**:将"任务ID"改为"任务"下拉选择,显示任务编号和类型 - ✅ **车辆选择**:将"车辆ID"改为"车辆"下拉选择,显示车牌号和类型 - ✅ **用户体验**:支持搜索过滤,操作更便捷 ### 2. 表格显示优化 - ✅ **移除关联ID**:不再显示内部关联ID,界面更简洁 - ✅ **移除任务ID**:不再显示任务ID,改为显示任务编号 - ✅ **新增任务编号**:显示任务编号,便于识别 - ✅ **新增任务类型**:显示任务类型,使用字典标签 - ✅ **新增车辆类型**:显示车辆类型,使用字典标签 ## 技术实现 ### 1. 查询条件优化 #### 任务选择下拉 ```vue ``` #### 车辆选择下拉 ```vue ``` ### 2. 表格显示优化 #### 表格列定义 ```vue ``` ### 3. 数据管理 #### 数据定义 ```javascript data() { return { // 任务列表 taskList: [], // 车辆列表 vehicleList: [], // 任务列表加载状态 taskListLoading: false, // 车辆列表加载状态 vehicleListLoading: false, // ... 其他数据 }; } ``` #### 数据加载 ```javascript created() { this.getList(); this.getTaskList(); // 加载任务列表 this.getVehicleList(); // 加载车辆列表 } /** 获取任务列表 */ getTaskList() { this.taskListLoading = true; listTask({ pageNum: 1, pageSize: 1000 }).then(response => { this.taskList = response.rows || []; this.taskListLoading = false; }).catch(() => { this.taskListLoading = false; }); } /** 获取车辆列表 */ getVehicleList() { this.vehicleListLoading = true; listVehicle({ pageNum: 1, pageSize: 1000 }).then(response => { this.vehicleList = response.rows || []; this.vehicleListLoading = false; }).catch(() => { this.vehicleListLoading = false; }); } ``` #### 字典方法 ```javascript /** 获取任务类型名称 */ getTaskTypeName(taskType) { const typeDict = this.dict.type.sys_task_type; if (typeDict && typeDict.length > 0) { const typeItem = typeDict.find(item => item.value === taskType); return typeItem ? typeItem.label : taskType; } return taskType; } /** 获取车辆类型名称 */ getVehicleTypeName(vehicleType) { const typeDict = this.dict.type.sys_vehicle_type; if (typeDict && typeDict.length > 0) { const typeItem = typeDict.find(item => item.value === vehicleType); return typeItem ? typeItem.label : vehicleType; } return vehicleType; } ``` ## 界面效果 ### 查询条件区域 ``` ┌─────────────────────────────────────────────────────────┐ │ 任务: [下拉选择-任务编号-任务类型] 车辆: [下拉选择-车牌号-车辆类型] │ │ 车牌号: [输入框] 关联状态: [下拉选择] 分配人: [输入框] │ │ [搜索] [重置] │ └─────────────────────────────────────────────────────────┘ ``` ### 表格显示 ``` ┌─────────────────────────────────────────────────────────┐ │ 选择 │ 任务编号 │ 任务类型 │ 车牌号 │ 车辆类型 │ 分配时间 │ 分配人 │ 关联状态 │ 备注 │ 操作 │ ├─────────────────────────────────────────────────────────┤ │ ☐ │ TASK001 │ 维修保养 │ 粤A12345 │ 救护车 │ 2024-01-01 │ admin │ 已分配 │ 测试 │ 修改删除状态变更 │ │ ☐ │ TASK002 │ 加油任务 │ 粤A67890 │ 转运车 │ 2024-01-02 │ admin │ 执行中 │ 测试 │ 修改删除状态变更 │ └─────────────────────────────────────────────────────────┘ ``` ### 下拉选择效果 #### 任务选择下拉 ``` ┌─────────────────────────────────────────────────────────┐ │ 任务: [TASK001 - 维修保养 ▼] │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ TASK001 - 维修保养 │ │ │ │ TASK002 - 加油任务 │ │ │ │ TASK003 - 其他任务 │ │ │ └─────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ ``` #### 车辆选择下拉 ``` ┌─────────────────────────────────────────────────────────┐ │ 车辆: [粤A12345 - 救护车 ▼] │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ 粤A12345 - 救护车 │ │ │ │ 粤A67890 - 转运车 │ │ │ │ 粤A99999 - 救护车 │ │ │ └─────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ ``` ## 功能特性 ### 1. 查询功能 - **任务筛选**:支持按任务编号和类型筛选 - **车辆筛选**:支持按车牌号和类型筛选 - **搜索过滤**:下拉选择支持输入搜索 - **多条件查询**:支持组合条件查询 ### 2. 显示功能 - **信息完整**:显示任务编号、类型、车牌号、车辆类型 - **类型标签**:任务类型和车辆类型使用彩色标签显示 - **状态标签**:关联状态使用彩色标签显示 - **界面简洁**:移除不必要的ID字段 ### 3. 用户体验 - **操作便捷**:下拉选择比手动输入更便捷 - **信息清晰**:显示有意义的业务信息而非技术ID - **搜索友好**:支持输入搜索快速定位 - **视觉美观**:使用字典标签提升视觉效果 ## 数据字典配置 ### 1. 任务类型字典 (sys_task_type) ```javascript dicts: ['sys_task_vehicle_status', 'sys_vehicle_type', 'sys_task_type'] ``` ### 2. 车辆类型字典 (sys_vehicle_type) - 救护车 - 转运车 - 其他 ### 3. 任务车辆关联状态字典 (sys_task_vehicle_status) - ASSIGNED - 已分配 - ACTIVE - 执行中 - COMPLETED - 已完成 - CANCELLED - 已取消 ## 注意事项 1. **数据加载**:任务和车辆列表在页面加载时获取,如果数据很多可考虑分页 2. **性能考虑**:下拉选择支持搜索过滤,提升大数据量下的用户体验 3. **数据一致性**:确保任务和车辆数据与关联数据保持一致 4. **权限控制**:需要相应的权限才能进行查询和操作 ## 后续优化建议 1. **分页加载**:如果任务或车辆数据很多,可考虑分页加载 2. **缓存优化**:对任务和车辆列表进行缓存,减少重复请求 3. **搜索优化**:支持更复杂的搜索条件,如按部门筛选 4. **导出功能**:支持导出包含任务编号和类型的数据 5. **批量操作**:支持批量修改任务车辆关联状态