diff --git a/src/components/AMap/src/amap.data.tsx b/src/components/AMap/src/amap.data.tsx index 8e62bf9..5591d1b 100644 --- a/src/components/AMap/src/amap.data.tsx +++ b/src/components/AMap/src/amap.data.tsx @@ -1,5 +1,4 @@ import { BasicColumn } from '/@/components/Table'; -import { listHospital } from '/@/api/platform/common/controller/hospital'; import { listOrg } from '/@/api/platform/common/controller/org'; import { commonUpload } from '/@/api/platform/core/controller/upload'; import { h } from 'vue'; @@ -50,7 +49,7 @@ export const operatePanelColumns: BasicColumn[] = [ ]; /** 普通任务表格列 */ -export const taskColumns: BasicColumn[] = [ +export const taskOrdinaryColumns: BasicColumn[] = [ { title: '任务名称', dataIndex: 'name', @@ -63,14 +62,6 @@ export const taskColumns: BasicColumn[] = [ editRow: true, editRule: true, editComponent: 'ApiSelect', - editComponentProps: { - style: { width:'100%' }, - api: listHospital, - params: { size: 40, mapNotify: '1' }, - labelField: 'name', - valueField: 'id', - resultField: 'data' - } }, { title: '医检', @@ -129,14 +120,6 @@ export const taskPresetColumns: BasicColumn[] = [ editRow: true, editRule: true, editComponent: 'ApiSelect', - editComponentProps: { - style: { width:'100%' }, - api: listHospital, - params: { size: 40, mapNotify: '1' }, - labelField: 'name', - valueField: 'id', - resultField: 'data' - } }, { title: '目的地预设点', diff --git a/src/components/AMap/src/components/MapTaskModal.vue b/src/components/AMap/src/components/MapTaskModal.vue index 1654257..51ff990 100644 --- a/src/components/AMap/src/components/MapTaskModal.vue +++ b/src/components/AMap/src/components/MapTaskModal.vue @@ -61,13 +61,14 @@ import { reactive, toRaw } from 'vue'; import {BasicModal, ModalProps, useModal, useModalInner} from '/@/components/Modal'; import { BasicTable, useTable, EditRecordRow, BasicColumn, ActionItem, TableAction } from '/@/components/Table'; - import { taskColumns, taskPresetColumns } from '../amap.data'; + import { 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'; /** 类型规范统一声明定义区域 */ interface WindowState { @@ -88,21 +89,64 @@ state.mapData = data.mapData; const props: Partial = { confirmLoading: false }; props.title = '任务配置'; + const taskOrdinaryUpdateColumns: BasicColumn[] = [ + { + title: '医院', + dataIndex: 'hospitalId', + editRow: true, + editRule: true, + editComponent: 'ApiSelect', + editComponentProps: ({ text, record, column, index }) => ({ + style: { width:'100%' }, + api: listHospital, + params: { size: 40, mapNotify: '1' }, + disabled: record.hospitalId == state.mapData.sendOrderId, + labelField: 'name', + valueField: 'id', + resultField: 'data' + }) + }, + ], + taskPresetUpdateColumns: BasicColumn[] = [ + { + title: '医院', + dataIndex: 'hospitalId', + editRow: true, + editRule: true, + editComponent: 'ApiSelect', + editComponentProps: ({ text, record, column, index }) => ({ + style: { width:'100%' }, + api: listHospital, + params: { size: 40, mapNotify: '1' }, + disabled: record.hospitalId == state.mapData.sendOrderId, + labelField: 'name', + valueField: 'id', + resultField: 'data' + }) + }, + ]; const mapTask = cloneDeep(state.mapData?.mapTask || []); setTaskOrdinaryTableData(mapTask.filter(item => ~~item.taskType == 0)); setTaskPresetTableData(mapTask.filter(item => ~~item.taskType == 1)); // 尾部:设置处理后的最终配置数据 + setTaskOrdinaryColumns(taskOrdinaryColumns.map(item => + taskOrdinaryUpdateColumns.find(e => e.dataIndex == item.dataIndex) || item + )); + setTaskPresetColumns(taskPresetColumns.map(item => + taskPresetUpdateColumns.find(e => e.dataIndex == item.dataIndex) || item + )); setModalProps(props); }); const { notification } = useMessage(); const [taskPresetRegisterModal, { openModal }] = useModal(); const [taskOrdinaryRegisterTable, { getDataSource: getTaskOrdinaryDataSource, - setTableData: setTaskOrdinaryTableData + setTableData: setTaskOrdinaryTableData, + setColumns: setTaskOrdinaryColumns }] = useTable({ rowKey: 'id', title: '普通任务', - columns: taskColumns, + columns: taskOrdinaryColumns, pagination: { pageSize: 4, showSizeChanger: false @@ -122,7 +166,8 @@ }); const [taskPresetRegisterTable, { getDataSource: getTaskPresetDataSource, - setTableData: setTaskPresetTableData + setTableData: setTaskPresetTableData, + setColumns: setTaskPresetColumns }] = useTable({ rowKey: 'id', title: '交接任务', diff --git a/src/components/AMap/src/components/MapTaskPresetModal.vue b/src/components/AMap/src/components/MapTaskPresetModal.vue index 1fb7a72..17def17 100644 --- a/src/components/AMap/src/components/MapTaskPresetModal.vue +++ b/src/components/AMap/src/components/MapTaskPresetModal.vue @@ -115,15 +115,14 @@ })); }); await listUser({ size: 40, userType: '1' }).then(res => { - columns[0].editComponentProps!.options = res.data?.map(item => ({ + columns[0].editComponentProps.options = res.data?.map(item => ({ value: item.id, label: item.nickName, })).filter(item => item.value != state.courierUserId); }); - setColumns(taskPresetChildColumns.map(item => { - const column = columns.find(e => e.dataIndex == item.dataIndex); - return column ? column : item; - })); + setColumns(taskPresetChildColumns.map(item => + columns.find(e => e.dataIndex == item.dataIndex) || item + )); const mapTaskPresetData = cloneDeep(state.taskPresetRow?.mapTaskPreset || []); // 提取交接最终到达上级医检医院 const lastElement = mapTaskPresetData[mapTaskPresetData.length - 1]; diff --git a/src/components/Table/src/components/editable/EditableCell.vue b/src/components/Table/src/components/editable/EditableCell.vue index d62fa26..90e5f9a 100644 --- a/src/components/Table/src/components/editable/EditableCell.vue +++ b/src/components/Table/src/components/editable/EditableCell.vue @@ -1,57 +1,26 @@ - -