为创建转运任务页面增加了出发地输入功能,支持从分公司配置中自动加载默认出发地,用户也可以手动修改。
在 sys_dept 表中新增了3个字段用于存储分公司的默认出车地址:
| 字段名 | 类型 | 说明 |
|---|---|---|
departure_address |
VARCHAR(500) | 默认出车地址 |
departure_longitude |
DECIMAL(10, 6) | 出车地址经度 |
departure_latitude |
DECIMAL(10, 6) | 出车地址纬度 |
SQL脚本位置: sql/sys_dept_add_departure_fields.sql
新增属性:java private String departureAddress; private java.math.BigDecimal departureLongitude; private java.math.BigDecimal departureLatitude;
resultMap,增加新字段映射selectDeptVo,查询时包含新字段insertDept,插入时支持新字段updateDept,更新时支持新字段修改 emitChange 方法,在选择归属机构时返回出发地信息:
this.$emit('change', {
deptId: organization.deptId,
deptName: organization.deptName,
serviceOrderClass: organization.serviceOrderClass || '',
region: region,
// 出发地信息
departureAddress: organization.departureAddress || '',
departureLongitude: organization.departureLongitude || null,
departureLatitude: organization.departureLatitude || null
})
data() {
return {
departureAddress: '', // 出发地地址
departureLongitude: null, // 出发地经度
departureLatitude: null, // 出发地纬度
// ... 其他字段
}
}
在 onOrganizationChange 方法中自动填充出发地:
onOrganizationChange(orgData) {
this.selectedOrganizationId = orgData.deptId
this.selectedOrganizationServiceOrderClass = orgData.serviceOrderClass
this.selectedRegion = orgData.region
// 自动填充出发地信息
this.departureAddress = orgData.departureAddress || ''
this.departureLongitude = orgData.departureLongitude || null
this.departureLatitude = orgData.departureLatitude || null
}
在归属机构选择器之后增加:
<view class="form-item">
<view class="form-label">出发地</view>
<input
class="form-input"
placeholder="请输入出发地地址"
v-model="departureAddress"
/>
<view class="form-tip" v-if="departureAddress">
<text>提示:可修改默认出发地地址</text>
</view>
</view>
在 buildSubmitData 方法中:
const submitData = {
// 优先使用自定义的出发地,如果为空则使用转出医院地址
departureAddress: this.departureAddress || this.taskForm.hospitalOut.address || '',
// ... 其他字段
}
// 出发地GPS坐标(优先使用自定义的出发地坐标)
if (this.departureLongitude && this.departureLatitude) {
submitData.departureLongitude = this.departureLongitude
submitData.departureLatitude = this.departureLatitude
} else if (this.addressCoordinates.hospitalOutAddress) {
// 兜底:使用转出医院的坐标
submitData.departureLongitude = this.addressCoordinates.hospitalOutAddress.lng
submitData.departureLatitude = this.addressCoordinates.hospitalOutAddress.lat
}
在后台管理系统的部门管理中,为各分公司配置默认出车地址及GPS坐标:
出发地的优先级从高到低为:
GPS坐标的优先级:
sql/sys_dept_add_departure_fields.sql 脚本sql/sys_dept_add_departure_fields.sqlruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.javaruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xmlapp/components/OrganizationSelector.vueapp/pages/task/create-emergency.vue