|
|
|
@ -61,32 +61,44 @@
@@ -61,32 +61,44 @@
|
|
|
|
|
import { reactive, toRaw } from 'vue'; |
|
|
|
|
import {BasicModal, ModalProps, useModal, useModalInner} from '/@/components/Modal'; |
|
|
|
|
import { BasicTable, useTable, EditRecordRow, BasicColumn, ActionItem, TableAction } from '/@/components/Table'; |
|
|
|
|
import { taskOrdinaryColumns, taskPresetColumns } from '../amap.data'; |
|
|
|
|
import { MapPointType, taskOrdinaryColumns, taskPresetColumns } from '../amap.data'; |
|
|
|
|
import TaskPresetModal from './MapTaskPresetModal.vue'; |
|
|
|
|
import { buildUUID } from '/@/utils/uuid'; |
|
|
|
|
import { useMessage } from '/@/hooks/web/useMessage'; |
|
|
|
|
import {add, cloneDeep} from 'lodash-es'; |
|
|
|
|
import { defaultMapData } from '/@/enums/amapEnum'; |
|
|
|
|
import { MapLogistic } from '/@/api/platform/common/entity/mapLogistic'; |
|
|
|
|
import { listHospital } from '/@/api/platform/common/controller/hospital'; |
|
|
|
|
|
|
|
|
|
/** 类型规范统一声明定义区域 */ |
|
|
|
|
type OptionsType = { |
|
|
|
|
courierUserList: Nullable<MapPointType[]>; |
|
|
|
|
hospitalList:Nullable<MapPointType[]>; |
|
|
|
|
orgList: Nullable<MapPointType[]>; |
|
|
|
|
}; |
|
|
|
|
interface WindowState { |
|
|
|
|
taskOrdinaryCurrentEditRowRef: Nullable<Recordable>; |
|
|
|
|
taskPresetCurrentEditRowRef: Nullable<Recordable>; |
|
|
|
|
mapData: MapLogistic; |
|
|
|
|
options: OptionsType; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 通用变量统一声明区域 */ |
|
|
|
|
const state = reactive<WindowState>({ |
|
|
|
|
taskOrdinaryCurrentEditRowRef: null, |
|
|
|
|
taskPresetCurrentEditRowRef: null, |
|
|
|
|
mapData: defaultMapData() |
|
|
|
|
mapData: defaultMapData(), |
|
|
|
|
options: { |
|
|
|
|
courierUserList: null, |
|
|
|
|
hospitalList: null, |
|
|
|
|
orgList: null |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
const emit = defineEmits(['success', 'register']); |
|
|
|
|
const [registerModal, { setModalProps, closeModal }] = useModalInner(async data => { |
|
|
|
|
// 处理设置数据 |
|
|
|
|
state.mapData = data.mapData; |
|
|
|
|
const { mapData, options } = data; |
|
|
|
|
state.mapData = mapData; |
|
|
|
|
state.options = options as OptionsType; |
|
|
|
|
const props: Partial<ModalProps> = { confirmLoading: false }; |
|
|
|
|
props.title = '任务配置'; |
|
|
|
|
const taskOrdinaryUpdateColumns: BasicColumn[] = [ |
|
|
|
@ -95,16 +107,25 @@
@@ -95,16 +107,25 @@
|
|
|
|
|
dataIndex: 'hospitalId', |
|
|
|
|
editRow: true, |
|
|
|
|
editRule: true, |
|
|
|
|
editComponent: 'ApiSelect', |
|
|
|
|
editComponent: 'Select', |
|
|
|
|
editComponentProps: ({ text, record, column, index }) => ({ |
|
|
|
|
style: { width:'100%' }, |
|
|
|
|
options: state.options.hospitalList, |
|
|
|
|
disabled: record.hospitalId == state.mapData.sendOrderId, |
|
|
|
|
}), |
|
|
|
|
editValueMap: value => state.options.hospitalList?.find(item => item.value == value)?.label || value |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
title: '医检', |
|
|
|
|
dataIndex: 'orgId', |
|
|
|
|
editRow: true, |
|
|
|
|
editComponent: 'Select', |
|
|
|
|
editComponentProps: ({ text, record, column, index }) => ({ |
|
|
|
|
style: { width:'100%' }, |
|
|
|
|
api: listHospital, |
|
|
|
|
params: { size: 40, mapNotify: '1' }, |
|
|
|
|
options: state.options.orgList, |
|
|
|
|
disabled: record.hospitalId == state.mapData.sendOrderId, |
|
|
|
|
labelField: 'name', |
|
|
|
|
valueField: 'id', |
|
|
|
|
resultField: 'data' |
|
|
|
|
}) |
|
|
|
|
}), |
|
|
|
|
editValueMap: value => state.options.orgList?.find(item => item.value == value)?.label || value |
|
|
|
|
}, |
|
|
|
|
], |
|
|
|
|
taskPresetUpdateColumns: BasicColumn[] = [ |
|
|
|
@ -113,28 +134,19 @@
@@ -113,28 +134,19 @@
|
|
|
|
|
dataIndex: 'hospitalId', |
|
|
|
|
editRow: true, |
|
|
|
|
editRule: true, |
|
|
|
|
editComponent: 'ApiSelect', |
|
|
|
|
editComponent: 'Select', |
|
|
|
|
editComponentProps: ({ text, record, column, index }) => ({ |
|
|
|
|
style: { width:'100%' }, |
|
|
|
|
api: listHospital, |
|
|
|
|
params: { size: 40, mapNotify: '1' }, |
|
|
|
|
options: state.options.hospitalList, |
|
|
|
|
disabled: record.hospitalId == state.mapData.sendOrderId, |
|
|
|
|
labelField: 'name', |
|
|
|
|
valueField: 'id', |
|
|
|
|
resultField: 'data' |
|
|
|
|
}) |
|
|
|
|
}), |
|
|
|
|
editValueMap: value => state.options.hospitalList?.find(item => item.value == value)?.label || value |
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
const mapTask = cloneDeep(state.mapData?.mapTask || []); |
|
|
|
|
setTaskOrdinaryTableData(mapTask.filter(item => ~~item.taskType == 0)); |
|
|
|
|
setTaskPresetTableData(mapTask.filter(item => ~~item.taskType == 1)); |
|
|
|
|
// 尾部:设置处理后的最终配置数据 |
|
|
|
|
console.log(taskOrdinaryColumns.map(item => |
|
|
|
|
taskOrdinaryUpdateColumns.find(e => e.dataIndex == item.dataIndex) || item |
|
|
|
|
), taskPresetColumns.map(item => |
|
|
|
|
taskPresetUpdateColumns.find(e => e.dataIndex == item.dataIndex) || item |
|
|
|
|
), mapTask |
|
|
|
|
); |
|
|
|
|
setTaskOrdinaryColumns(taskOrdinaryColumns.map(item => |
|
|
|
|
taskOrdinaryUpdateColumns.find(e => e.dataIndex == item.dataIndex) || item |
|
|
|
|
)); |
|
|
|
@ -334,7 +346,11 @@
@@ -334,7 +346,11 @@
|
|
|
|
|
|
|
|
|
|
/** 处理打开交接任务 */ |
|
|
|
|
function handleOpenTaskPreset(record) { |
|
|
|
|
openModal(true, { row: record, courierUserId: state.mapData.courierUserId }); |
|
|
|
|
openModal(true, { row: record, options: { |
|
|
|
|
courierUserList: state.options.courierUserList, |
|
|
|
|
orgList: state.options.orgList, |
|
|
|
|
courierUserId: state.mapData.courierUserId |
|
|
|
|
}}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 处理模态框状态修改 */ |
|
|
|
|