编辑 | blame | 历史 | 原始文档

急救转运任务必填项校验完善说明

📋 修改概述

为急救转运任务创建页面添加完整的必填项校验,并为所有必填字段添加红色星号(*)标识,提升用户体验和数据完整性。

✨ 新增必填项校验

1. 任务类型(必填)

  • 字段: selectedEmergencyTaskType
  • 提示: "请选择任务类型"
  • 数据源: SQL Server dictionary 表(vtitle='ServiceOrderType'
  • 保存字段: task_type_id

2. 单据类型(必填)

  • 字段: selectedDocumentType
  • 提示: "请选择单据类型"
  • 数据源: SQL Server dictionary 表(vtitle='ServiceOrdAreaType'
  • 保存字段: document_type_id

📝 完整的必填项列表

# 字段名称 字段标识 校验提示 红色星号
1 任务车辆 selectedVehicleId 请选择任务车辆
2 任务类型 selectedEmergencyTaskType 请选择任务类型
3 单据类型 selectedDocumentType 请选择单据类型
4 患者姓名 taskForm.patient.name 请输入患者姓名
5 联系电话 taskForm.patient.phone 请输入患者联系电话
6 转出医院名称 taskForm.hospitalOut.name 请输入转出医院名称
7 转出医院科室 taskForm.hospitalOut.department 请选择转出医院科室
8 转入医院名称 taskForm.hospitalIn.name 请输入转入医院名称
9 转入医院科室 taskForm.hospitalIn.department 请选择转入医院科室

🎨 视觉标识

红色星号样式

.form-label {
  font-size: 28rpx;
  margin-bottom: 15rpx;
  color: #333;
  
  &.required::before {
    content: '*';
    color: #ff4d4f;  // 红色
    margin-right: 4rpx;
    font-weight: bold;
  }
}

显示效果

* 任务车辆
* 任务类型
* 单据类型
  转运时间
* 患者姓名
* 联系电话

🔍 校验逻辑

校验顺序

validateForm() {
  // 1. 任务车辆
  if (!this.selectedVehicleId) {
    this.$modal.showToast('请选择任务车辆')
    return false
  }
  
  // 2. 任务类型(新增)
  if (!this.selectedEmergencyTaskType) {
    this.$modal.showToast('请选择任务类型')
    return false
  }
  
  // 3. 单据类型(新增)
  if (!this.selectedDocumentType) {
    this.$modal.showToast('请选择单据类型')
    return false
  }
  
  // 4. 患者姓名
  if (!this.taskForm.patient.name) {
    this.$modal.showToast('请输入患者姓名')
    return false
  }
  
  // 5. 联系电话
  if (!this.taskForm.patient.phone) {
    this.$modal.showToast('请输入患者联系电话')
    return false
  }
  
  // 6. 转出医院名称
  if (!this.taskForm.hospitalOut.name) {
    this.$modal.showToast('请输入转出医院名称')
    return false
  }
  
  // 7. 转出医院科室
  if (!this.taskForm.hospitalOut.department) {
    this.$modal.showToast('请选择转出医院科室')
    return false
  }
  
  // 8. 转入医院名称
  if (!this.taskForm.hospitalIn.name) {
    this.$modal.showToast('请输入转入医院名称')
    return false
  }
  
  // 9. 转入医院科室
  if (!this.taskForm.hospitalIn.department) {
    this.$modal.showToast('请选择转入医院科室')
    return false
  }
  
  return true
}

📊 修改文件

文件 修改内容 行数变化
create-emergency.vue 新增校验逻辑 + 添加红色星号 +26/-9

🎯 业务规则

任务类型

  • 必填原因: 用于同步到旧系统的 ServiceOrdType 参数
  • 关联字段: sys_task_emergency.task_type_id
  • 旧系统映射: ServiceOrdType

单据类型

  • 必填原因: 用于同步到旧系统的 ServiceOrdAreaType 参数
  • 关联字段: sys_task_emergency.document_type_id
  • 旧系统映射: ServiceOrdAreaType

科室信息

  • 必填原因:
  1. 业务必需信息(医院转运必须明确科室)
  2. 用于同步到旧系统的 ServiceOrdPtServicesIDServiceOrdPtInServicesID 参数
  • 关联字段:
  • sys_task_emergency.hospital_out_department_id
  • sys_task_emergency.hospital_in_department_id
  • 旧系统映射:
  • ServiceOrdPtServicesID (转出科室ID)
  • ServiceOrdPtInServicesID (转入科室ID)

✅ 测试场景

场景1: 未选择任务类型

  1. 填写其他必填项
  2. 不选择任务类型
  3. 点击保存
  4. 预期: 提示"请选择任务类型"

场景2: 未选择单据类型

  1. 填写其他必填项
  2. 不选择单据类型
  3. 点击保存
  4. 预期: 提示"请选择单据类型"

场景3: 未选择转出科室

  1. 填写其他必填项
  2. 选择转出医院但不选择科室
  3. 点击保存
  4. 预期: 提示"请选择转出医院科室"

场景4: 未选择转入科室

  1. 填写其他必填项
  2. 选择转入医院但不选择科室
  3. 点击保存
  4. 预期: 提示"请选择转入医院科室"

场景5: 全部填写完整

  1. 填写所有必填项
  2. 点击保存
  3. 预期: 正常保存并跳转到任务列表

🔗 相关文档

💡 用户体验优化

Before(修改前)

  • ❌ 无法区分哪些字段必填
  • ❌ 用户可能遗漏重要信息
  • ❌ 提交失败后才知道缺少哪些字段

After(修改后)

  • ✅ 红色星号清晰标识必填项
  • ✅ 保存前逐项校验,及时提示
  • ✅ 减少无效提交,提升填写效率

🎊 总结

本次完善:
1. ✅ 新增任务类型和单据类型的必填校验
2. ✅ 为全部9个必填字段添加红色星号标识
3. ✅ 完善校验提示信息,引导用户正确填写
4. ✅ 确保提交数据的完整性,满足旧系统同步需求

现在用户可以清晰地看到哪些字段是必填的,提交时也会得到明确的提示!🎉