Browse Source

🚀 添加任务类型校验

master
wangxiang 3 years ago
parent
commit
4e348889b8
  1. 64
      src/components/AMap/src/AMapDesigner/index.vue
  2. 5
      src/components/AMap/src/components/MapTaskModal.vue

64
src/components/AMap/src/AMapDesigner/index.vue

@ -40,12 +40,11 @@
:disabled="isEdit" :disabled="isEdit"
:options="mapState.hospitalList" :options="mapState.hospitalList"
@select="handleCourierUserSearch" @select="handleCourierUserSearch"
@change="handleCreateSendOrderTask"
/> />
<ASelect v-model:value="mapState.mapData.sendOrderTaskType" <ASelect v-model:value="mapState.mapData.sendOrderTaskType"
style="width: 30%" style="width: 30%"
:disabled="isEdit" :disabled="isEdit"
@change="handleCreateSendOrderTask" @change="mapState.mapData.sendOrderTaskType && formClearValidate('sendOrderId')"
> >
<ASelectOption key="0">普通任务</ASelectOption> <ASelectOption key="0">普通任务</ASelectOption>
<ASelectOption key="1">交接任务</ASelectOption> <ASelectOption key="1">交接任务</ASelectOption>
@ -512,6 +511,31 @@
immediate: true, immediate: true,
deep: true deep: true
}); });
watch([() => mapState.mapData.sendOrderId, () => mapState.mapData.sendOrderTaskType],
([sendOrderIdValue,sendOrderTaskTypeValue], [sendOrderIdOldValue, sendOrderTaskTypeOldValue]) => {
if (!sendOrderIdValue || !sendOrderTaskTypeValue) return;
if (isEmpty(mapState.mapData.mapTask)) {
mapState.mapData.mapTask.push({
name: '系统创建:发单任务',
hospitalId: sendOrderIdValue,
taskType: sendOrderTaskTypeValue,
orgId: '',
orgName: ~~sendOrderTaskTypeValue ? '' : '等待收样员设置!',
sort: 1,
fileId: [],
key: buildUUID()
});
} else {
const mapTask = mapState.mapData.mapTask
.filter(item => item.taskType == sendOrderTaskTypeOldValue)
.find(item => item.sort == 1);
mapTask && Object.assign(mapTask, {
hospitalId: sendOrderIdValue,
taskType: sendOrderTaskTypeValue
});
}
handleMapPointGenerate();
});
/** 处理切换操作面板 */ /** 处理切换操作面板 */
function toggleOperatePanel() { function toggleOperatePanel() {
@ -560,31 +584,6 @@
}); });
} }
/** 处理创建首个发单任务 */
function handleCreateSendOrderTask() {
if (!mapState.mapData.sendOrderId || !mapState.mapData.sendOrderTaskType) return;
if (isEmpty(mapState.mapData.mapTask)) {
mapState.mapData.mapTask.push({
name: '系统创建:发单任务',
hospitalId: mapState.mapData.sendOrderId,
taskType: mapState.mapData.sendOrderTaskType,
orgId: '',
orgName: ~~mapState.mapData.sendOrderTaskType ? '' : '等待收样员设置!',
sort: 1,
fileId: [],
key: buildUUID()
});
} else {
const mapTask = mapState.mapData.mapTask.filter(item =>
item.taskType == mapState.mapData.sendOrderTaskType).find(item => item.sort == 1);
mapTask && Object.assign(mapTask, {
hospitalId: mapState.mapData.sendOrderId,
taskType: mapState.mapData.sendOrderTaskType
});
}
handleMapPointGenerate();
}
/** 处理起点收样员数据 */ /** 处理起点收样员数据 */
function handleCourierUserData(value) { function handleCourierUserData(value) {
const courierUserMap = mapState.courierUserList.find(item => item.value == value); const courierUserMap = mapState.courierUserList.find(item => item.value == value);
@ -592,6 +591,7 @@
mapState.mapData.courierUserName = courierUserMap.label; mapState.mapData.courierUserName = courierUserMap.label;
mapState.mapData.courierLng = courierUserMap.mapLng; mapState.mapData.courierLng = courierUserMap.mapLng;
mapState.mapData.courierLat = courierUserMap.mapLat; mapState.mapData.courierLat = courierUserMap.mapLat;
drawMapNavigate(mapState.mapData.mapLogisticPoint);
} else notification.warn({ } else notification.warn({
message: '查找不到起点数据,请检查起点!', message: '查找不到起点数据,请检查起点!',
duration: 2 duration: 2
@ -601,8 +601,9 @@
/** 处理打开任务配置 */ /** 处理打开任务配置 */
async function handleOpenMapTask() { async function handleOpenMapTask() {
await formElRef.value.validate(); await formElRef.value.validate();
if(!mapState.mapData.mapTask.filter(item => if(!mapState.mapData.mapTask
item.taskType == mapState.mapData.sendOrderTaskType).find(item => item.sort == 1)) { .filter(item => item.taskType == mapState.mapData.sendOrderTaskType)
.find(item => item.sort == 1)) {
notification.error({ notification.error({
message: '致命错误', message: '致命错误',
description: `检测到任务列表中首个${~~mapState.mapData.sendOrderTaskType ? '普通' : '交接'}任务对应发单数据错误,请联系开发人员!`, description: `检测到任务列表中首个${~~mapState.mapData.sendOrderTaskType ? '普通' : '交接'}任务对应发单数据错误,请联系开发人员!`,
@ -665,6 +666,11 @@
return cloneDeep(mapState.mapData); return cloneDeep(mapState.mapData);
} }
/** 获取部件表单数据 */
function formClearValidate(fields: string[] | string) {
return formElRef.value.clearValidate(fields);
}
/** 绘制地图导航路线 */ /** 绘制地图导航路线 */
function drawMapNavigate(points: Recordable[] = []) { function drawMapNavigate(points: Recordable[] = []) {
points = points.filter(item => item.lng && item.lat); points = points.filter(item => item.lng && item.lat);

5
src/components/AMap/src/components/MapTaskModal.vue

@ -103,8 +103,9 @@
state.options = options as OptionsType; state.options = options as OptionsType;
const props: Partial<ModalProps> = { confirmLoading: false }; const props: Partial<ModalProps> = { confirmLoading: false };
props.title = '任务配置'; props.title = '任务配置';
const sendOrderMapTask = state.mapData.mapTask.filter(item => const sendOrderMapTask = state.mapData.mapTask
item.taskType == state.mapData.sendOrderTaskType).find(item => item.sort == 1); .filter(item => item.taskType == state.mapData.sendOrderTaskType)
.find(item => item.sort == 1);
state.sendOrderTaskEditKeyRef = sendOrderMapTask?.key; state.sendOrderTaskEditKeyRef = sendOrderMapTask?.key;
const taskOrdinaryUpdateColumns: BasicColumn[] = [ const taskOrdinaryUpdateColumns: BasicColumn[] = [
{ {

Loading…
Cancel
Save