|
|
|
@ -1,65 +1,93 @@
@@ -1,65 +1,93 @@
|
|
|
|
|
<template> |
|
|
|
|
<BasicModal v-bind="$attrs" |
|
|
|
|
:width="920" |
|
|
|
|
:width="1050" |
|
|
|
|
:minHeight="400" |
|
|
|
|
@register="registerModal" |
|
|
|
|
@ok="handleSubmit" |
|
|
|
|
> |
|
|
|
|
|
|
|
|
|
<AForm :labelCol="{ style: { width: '80px' } }" |
|
|
|
|
:wrapperCol="{ style: { width: '100%', 'margin-right': '10px' } }" |
|
|
|
|
:model="mutualState.modelRef" |
|
|
|
|
> |
|
|
|
|
<AFormItem label="收样员"> |
|
|
|
|
<ASelect v-model:value="mutualState.modelRef.smallHospitalId" |
|
|
|
|
:options="[ |
|
|
|
|
{ value: '001', label: '收样员:小狗' }, |
|
|
|
|
{ value: '002', label: '收样员:小明' }, |
|
|
|
|
{ value: '003', label: '收样员:小红' } |
|
|
|
|
]" |
|
|
|
|
<BasicTable @register="registerTable"> |
|
|
|
|
<template #toolbar> |
|
|
|
|
<a-button type="primary" |
|
|
|
|
@click="handleTaskTurnToDoAdd" |
|
|
|
|
>新增</a-button> |
|
|
|
|
</template> |
|
|
|
|
<template #action="{ record, column }"> |
|
|
|
|
<TableAction :actions="createTaskTurnToDoActions(record, column).concat([ |
|
|
|
|
{ |
|
|
|
|
label: '删除', |
|
|
|
|
icon: 'ant-design:delete-outlined', |
|
|
|
|
color: 'error', |
|
|
|
|
onClick: handleTaskTurnToDoDelete.bind(null, record) |
|
|
|
|
} |
|
|
|
|
])" |
|
|
|
|
/> |
|
|
|
|
</AFormItem> |
|
|
|
|
</AForm> |
|
|
|
|
<BasicTable @register="registerTable"/> |
|
|
|
|
</template> |
|
|
|
|
</BasicTable> |
|
|
|
|
</BasicModal> |
|
|
|
|
</template> |
|
|
|
|
<script lang="ts" setup> |
|
|
|
|
import { reactive } from 'vue'; |
|
|
|
|
import { reactive, toRaw } from 'vue'; |
|
|
|
|
import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal'; |
|
|
|
|
import { BasicTable, useTable, EditRecordRow, BasicColumn, ActionItem, TableAction } from '/@/components/Table'; |
|
|
|
|
import { formTaskColumns, formMutualTaskColumns, largeHospitalMapList, smallHospitalMapList, formMutualTaskSettingColumns } from '../amap.data'; |
|
|
|
|
import { Form, Select } from 'ant-design-vue'; |
|
|
|
|
|
|
|
|
|
const AForm = Form; |
|
|
|
|
const AFormItem = Form.Item; |
|
|
|
|
const ASelect = Select; |
|
|
|
|
import { taskPresetChildColumns } from '../amap.data'; |
|
|
|
|
import { listUser } from '/@/api/platform/system/controller/user'; |
|
|
|
|
import { buildUUID } from '/@/utils/uuid'; |
|
|
|
|
import { useMessage } from '/@/hooks/web/useMessage'; |
|
|
|
|
import { cloneDeep } from 'lodash-es'; |
|
|
|
|
|
|
|
|
|
/** 类型规范统一声明定义区域 */ |
|
|
|
|
interface WindowState { |
|
|
|
|
currentEditKeyRef: string; |
|
|
|
|
formData: Recordable; |
|
|
|
|
modelRef: Recordable; |
|
|
|
|
taskPresetRow: Recordable; |
|
|
|
|
courierUserId: string; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 通用变量统一声明区域 */ |
|
|
|
|
const mutualState = reactive<WindowState>({ |
|
|
|
|
const state = reactive<WindowState>({ |
|
|
|
|
currentEditKeyRef: '', |
|
|
|
|
formData: {}, |
|
|
|
|
modelRef: { |
|
|
|
|
smallHospitalId: '' |
|
|
|
|
} |
|
|
|
|
taskPresetRow: {}, |
|
|
|
|
courierUserId: '' |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const emit = defineEmits(['success', 'register']); |
|
|
|
|
const { createMessage } = useMessage(); |
|
|
|
|
const [registerModal, { setModalProps, closeModal }] = useModalInner(async data => { |
|
|
|
|
state.taskPresetRow = data.row; |
|
|
|
|
state.courierUserId = data.courierUserId; |
|
|
|
|
const props: Partial<ModalProps> = { confirmLoading: false }; |
|
|
|
|
props.title = '转办任务配置'; |
|
|
|
|
const columns: BasicColumn[] = [ |
|
|
|
|
{ |
|
|
|
|
title: '收样员', |
|
|
|
|
dataIndex: 'courierUserId', |
|
|
|
|
editRow: true, |
|
|
|
|
editRule: true, |
|
|
|
|
editComponent: 'Select', |
|
|
|
|
editComponentProps: { |
|
|
|
|
style: { width:'100%' }, |
|
|
|
|
options: [] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
]; |
|
|
|
|
await listUser({ size: 40, userType: '1' }).then(res => { |
|
|
|
|
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; |
|
|
|
|
})); |
|
|
|
|
setTableData(cloneDeep(state.taskPresetRow?.mapTaskPreset || [])); |
|
|
|
|
// 尾部:设置处理后的最终配置数据 |
|
|
|
|
setModalProps(props); |
|
|
|
|
}); |
|
|
|
|
const [registerTable, { reload, getDataSource }] = useTable({ |
|
|
|
|
const [registerTable, { getDataSource, setTableData, setColumns }] = useTable({ |
|
|
|
|
title: '转办任务', |
|
|
|
|
columns: formMutualTaskSettingColumns, |
|
|
|
|
columns: taskPresetChildColumns, |
|
|
|
|
pagination: { |
|
|
|
|
pageSize: 3, |
|
|
|
|
pageSize: 6, |
|
|
|
|
showSizeChanger: false |
|
|
|
|
}, |
|
|
|
|
striped: false, |
|
|
|
@ -76,30 +104,85 @@
@@ -76,30 +104,85 @@
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
/** 处理转办任务新增 */ |
|
|
|
|
function handleTaskTurnToDoAdd() { |
|
|
|
|
getDataSource().push({ |
|
|
|
|
name: '', |
|
|
|
|
courierUserId: '', |
|
|
|
|
orginPresetName: '等待收样员设置!', |
|
|
|
|
destinationPresetName: '等待收样员设置!', |
|
|
|
|
fileId: [], |
|
|
|
|
key: buildUUID() |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 处理转办任务删除 */ |
|
|
|
|
function handleTaskTurnToDoDelete(record) { |
|
|
|
|
const index = getDataSource().findIndex(item => item.key == record.key); |
|
|
|
|
if (index != -1) { |
|
|
|
|
getDataSource().splice(record.index, 1); |
|
|
|
|
} else createMessage.error(`找不到key:${record.key}的数据,请刷新页面重试!`); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 创建转办任务操作列 */ |
|
|
|
|
function createTaskTurnToDoActions(record: EditRecordRow, column: BasicColumn): ActionItem[] { |
|
|
|
|
if (!record.editable) { |
|
|
|
|
return [ |
|
|
|
|
{ |
|
|
|
|
label: '编辑', |
|
|
|
|
disabled: state.currentEditKeyRef ? state.currentEditKeyRef !== record.key : false, |
|
|
|
|
onClick: handleTaskTurnToDoEdit.bind(null, record), |
|
|
|
|
} |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
return [ |
|
|
|
|
{ |
|
|
|
|
label: '保存', |
|
|
|
|
onClick: handleTaskTurnToDoSave.bind(null, record, column) |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
label: '取消', |
|
|
|
|
popConfirm: { |
|
|
|
|
title: '是否取消编辑', |
|
|
|
|
confirm: handleTaskTurnToDoCancel.bind(null, record, column) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 处理转办任务表格编辑 */ |
|
|
|
|
function handleTaskTurnToDoEdit(record: EditRecordRow) { |
|
|
|
|
state.currentEditKeyRef = record.key; |
|
|
|
|
record.onEdit?.(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 处理转办任务表格编辑取消 */ |
|
|
|
|
function handleTaskTurnToDoCancel(record: EditRecordRow) { |
|
|
|
|
state.currentEditKeyRef = ''; |
|
|
|
|
record.onEdit?.(false, false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 处理转办任务表格编辑保存 */ |
|
|
|
|
async function handleTaskTurnToDoSave(record: EditRecordRow) { |
|
|
|
|
const valid = await record.onValid?.(); |
|
|
|
|
if (valid) { |
|
|
|
|
const pass = await record.onEdit?.(false, true); |
|
|
|
|
pass && (state.currentEditKeyRef = ''); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** 处理弹出框提交 */ |
|
|
|
|
async function handleSubmit() { |
|
|
|
|
console.log(getDataSource()); |
|
|
|
|
/*try { |
|
|
|
|
// 提取验证数据 |
|
|
|
|
const formData = await formElRef.value.validate(); |
|
|
|
|
console.log(formData); |
|
|
|
|
try { |
|
|
|
|
// 处理提交之前逻辑 |
|
|
|
|
setModalProps({ confirmLoading: true }); |
|
|
|
|
// 采用tag标签区分操作 |
|
|
|
|
switch (state.tag) { |
|
|
|
|
case 'add': |
|
|
|
|
//await addConfig(formData); |
|
|
|
|
break; |
|
|
|
|
case 'edit': |
|
|
|
|
//await editConfig(formData); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
state.taskPresetRow.mapTaskPreset = toRaw(getDataSource()); |
|
|
|
|
// 处理提交完成之后逻辑 |
|
|
|
|
closeModal(); |
|
|
|
|
emit('success'); |
|
|
|
|
} finally { |
|
|
|
|
setModalProps({ confirmLoading: false }); |
|
|
|
|
}*/ |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
</script> |
|
|
|
|