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

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

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

Loading…
Cancel
Save