From b5a5827f8907deee5c61761c5e4f18e694941dd6 Mon Sep 17 00:00:00 2001 From: yyy <2605810609@qq.com> Date: Tue, 17 Jun 2025 11:55:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E4=BA=86=E4=BE=BF=E4=BA=8E=E8=BD=A6?= =?UTF-8?q?=E6=9C=BA=E7=9A=84=E8=B0=83=E8=AF=95=EF=BC=8C=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E6=89=80=E6=9C=89=E5=8F=91=E8=B5=B7=E4=BB=BB=E5=8A=A1=E7=9A=84?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=20=E6=89=B9=E9=87=8F=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E7=9A=84=E5=81=8F=E7=A7=BB=E9=87=8F=E6=94=B9=E4=B8=BA=E6=8C=89?= =?UTF-8?q?=E5=AE=9E=E9=99=85=E5=9D=90=E6=A0=87=E5=81=8F=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/locationSelectionDialog.vue | 47 ++-- .../BatchCopyingDialogForm.vue | 32 ++- .../mapPage/taskManagement/createTask.vue | 241 ++++++++++-------- 3 files changed, 186 insertions(+), 134 deletions(-) diff --git a/src/views/mapPage/components/locationSelectionDialog.vue b/src/views/mapPage/components/locationSelectionDialog.vue index f637191c..ee7b00f7 100644 --- a/src/views/mapPage/components/locationSelectionDialog.vue +++ b/src/views/mapPage/components/locationSelectionDialog.vue @@ -62,6 +62,8 @@
+ +
层数: 第{{ floor.locationStorey }}层
库位号: {{ floor.locationNo }}
@@ -343,26 +355,27 @@ const choosePoint = (item) => { } const chooseLocationPoint = (item) => { - if (item.locationEnable === 0) { - message.warning('该库位已被禁用') - return - } + // 暂时去除所有发起任务的校验 + // if (item.locationEnable === 0) { + // message.warning('该库位已被禁用') + // return + // } - if (item.locationLock === 0) { - message.warning('该库位已被锁定') - return - } + // if (item.locationLock === 0) { + // message.warning('该库位已被锁定') + // return + // } - // locationUseStatus 1占用 0空闲 - if (item.locationUseStatus === 1 && locationTypeStr.value === 'release') { - message.warning('该库位已被占用') - return - } + // // locationUseStatus 1占用 0空闲 + // if (item.locationUseStatus === 1 && locationTypeStr.value === 'release') { + // message.warning('该库位已被占用') + // return + // } - if (item.locationUseStatus === 0 && locationTypeStr.value === 'take') { - message.warning('该库位没有货物') - return - } + // if (item.locationUseStatus === 0 && locationTypeStr.value === 'take') { + // message.warning('该库位没有货物') + // return + // } currentItem.value = item } diff --git a/src/views/mapPage/realTimeMap/components-tool/BatchCopyingDialogForm.vue b/src/views/mapPage/realTimeMap/components-tool/BatchCopyingDialogForm.vue index 66e76037..176da6fc 100644 --- a/src/views/mapPage/realTimeMap/components-tool/BatchCopyingDialogForm.vue +++ b/src/views/mapPage/realTimeMap/components-tool/BatchCopyingDialogForm.vue @@ -7,8 +7,8 @@ class="batch-copying-dialog-form" @close="dialogClose" > - - + + X轴往左为负值,往右为正值 - + { - let maxLeft = -Number(boundaryValue.value.left) - let maxRight = Number(props.imgBgObj.width) - Number(boundaryValue.value.right) + const { resolution, width } = props.imgBgObj + + let maxLeft = -(Number(boundaryValue.value.left) / Number(resolution)) + let maxRight = (Number(width) - Number(boundaryValue.value.right)) / Number(resolution) if (value < maxLeft || value > maxRight) { callback(new Error(`不能超出地图宽度,可偏移范围为${maxLeft}至${maxRight}`)) } else { @@ -69,8 +71,10 @@ const validateXValue = (rule, value, callback) => { } } const validateYValue = (rule, value, callback) => { - let maxTop = -Number(boundaryValue.value.top) - let maxBottom = Number(props.imgBgObj.height) - Number(boundaryValue.value.bottom) + const { resolution, height } = props.imgBgObj + + let maxTop = -(Number(boundaryValue.value.top) / Number(resolution)) + let maxBottom = (Number(height) - Number(boundaryValue.value.bottom)) / Number(resolution) if (value < maxTop || value > maxBottom) { callback(new Error(`不能超出地图宽度,可偏移范围为${maxTop}至${maxBottom}`)) } else { @@ -105,11 +109,23 @@ const submitLineLibraryForm = async () => { await BatchCopyingFormRef.value.validate(async (valid, fields) => { if (valid) { dialogFormVisible.value = false - emit('submitBatchCopyingFormSuccess', batchCopyingForm.value) + const x = roundToThree( + safeNumber(batchCopyingForm.value.x) / safeNumber(props.imgBgObj.resolution) + ) + const y = roundToThree( + safeNumber(batchCopyingForm.value.y) / safeNumber(props.imgBgObj.resolution) + ) + emit('submitBatchCopyingFormSuccess', { + x: x, + y: y + }) } }) } +const safeNumber = (value) => Number(value || 0) +const roundToThree = (num) => Math.round(Number(num) * 1000) / 1000 + defineExpose({ open }) // 提供 open 方法,用于打开弹窗 diff --git a/src/views/mapPage/taskManagement/createTask.vue b/src/views/mapPage/taskManagement/createTask.vue index 352f2ced..973871ed 100644 --- a/src/views/mapPage/taskManagement/createTask.vue +++ b/src/views/mapPage/taskManagement/createTask.vue @@ -159,11 +159,20 @@ placeholder="请选择" @change="taskTypeChange(detailItem, index)" > - --> + + @@ -772,7 +781,7 @@
@@ -783,13 +792,23 @@ import { RefreshRight, Position } from '@element-plus/icons-vue' import * as MapTaskAPi from '@/api/map/mapTask' import locationSelectionDialog from '../components/locationSelectionDialog.vue' -defineOptions({ name: 'taskManagementCreateTask' }) +defineOptions({ name: 'TaskManagementCreateTask' }) const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 const { push } = useRouter() +const allTaskTypeList = ref([ + { label: '取放货', value: 1 }, + { label: '停车', value: 2 }, + { label: '充电', value: 3 }, + { label: '移动', value: 4 }, + { label: '仅取货', value: 5 }, + { label: '仅放货', value: 6 }, + { label: '移动到点位', value: 9 } +]) + const formData = ref({ montageTask: 1, //是否拼接任务(0:不拼接、1:拼接) montageNumber: 1, // 拼接任务数量 @@ -1101,118 +1120,122 @@ const montageTaskChange = (e) => { //搬空区域改变 const doMoveAllChange = (e) => { return new Promise((resolve, reject) => { - if (formData.value.doMoveAll === 1) { - if (formData.value.doCycle === 1) { - formData.value.taskDetailList.forEach((item, index) => { - item.taskTypeList = [ - { label: '取放货', value: 1 }, - { label: '移动', value: 4 }, - { label: '移动到点位', value: 9 } - ] - }) - } else { - formData.value.taskDetailList.forEach((item, index) => { - item.taskType = undefined - if (index === 0) { - item.taskTypeList = [ - { label: '取放货', value: 1 }, - { label: '停车', value: 2 }, - { label: '充电', value: 3 }, - { label: '移动', value: 4 }, - { label: '仅取货', value: 5 }, - { label: '仅放货', value: 6 }, - { label: '移动到点位', value: 9 } - ] - } else { - item.taskTypeList = [] - } - }) - } - resolve(true) - } else { - try { - ElMessageBox.confirm('开启搬空所选线库/区域,任务类型只能选择取放货,是否切换?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }) - .then(async () => { - resolve(true) - formData.value.taskDetailList.forEach((item) => { - item.taskType = undefined - item.taskTypeList = [{ label: '取放货', value: 1 }] - }) - }) - .catch(() => { - ElMessage({ - type: 'info', - message: '取消成功' - }) - reject(false) - }) - } catch (err) { - reject(false) - } - } + resolve(true) + // 暂时去除所有发起任务的校验 + // if (formData.value.doMoveAll === 1) { + // if (formData.value.doCycle === 1) { + // formData.value.taskDetailList.forEach((item, index) => { + // item.taskTypeList = [ + // { label: '取放货', value: 1 }, + // { label: '移动', value: 4 }, + // { label: '移动到点位', value: 9 } + // ] + // }) + // } else { + // formData.value.taskDetailList.forEach((item, index) => { + // item.taskType = undefined + // if (index === 0) { + // item.taskTypeList = [ + // { label: '取放货', value: 1 }, + // { label: '停车', value: 2 }, + // { label: '充电', value: 3 }, + // { label: '移动', value: 4 }, + // { label: '仅取货', value: 5 }, + // { label: '仅放货', value: 6 }, + // { label: '移动到点位', value: 9 } + // ] + // } else { + // item.taskTypeList = [] + // } + // }) + // } + // resolve(true) + // } else { + // try { + // ElMessageBox.confirm('开启搬空所选线库/区域,任务类型只能选择取放货,是否切换?', '提示', { + // confirmButtonText: '确定', + // cancelButtonText: '取消', + // type: 'warning' + // }) + // .then(async () => { + // resolve(true) + // formData.value.taskDetailList.forEach((item) => { + // item.taskType = undefined + // item.taskTypeList = [{ label: '取放货', value: 1 }] + // }) + // }) + // .catch(() => { + // ElMessage({ + // type: 'info', + // message: '取消成功' + // }) + // reject(false) + // }) + // } catch (err) { + // reject(false) + // } + // } }) } //任务循环切换 const doCycleChange = () => { return new Promise((resolve, reject) => { - if (formData.value.doCycle === 1) { - formData.value.cycleNumber = 0 //循环次数 - formData.value.taskDetailList.forEach((item, index) => { - item.taskType = undefined - if (index === 0) { - item.taskTypeList = [ - { label: '取放货', value: 1 }, - { label: '停车', value: 2 }, - { label: '充电', value: 3 }, - { label: '移动', value: 4 }, - { label: '仅取货', value: 5 }, - { label: '仅放货', value: 6 }, - { label: '移动到点位', value: 9 } - ] - } else { - item.taskTypeList = [] - } - }) - resolve(true) - } else { - try { - ElMessageBox.confirm('开启循环任务,任务类型只能选择取放货和移动,是否切换?', '提示', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }) - .then(async () => { - resolve(true) - formData.value.cycleNumber = 1 //循环次数 - formData.value.taskDetailList.forEach((item) => { - item.taskType = undefined - if (formData.value.doMoveAll === 1) { - item.taskTypeList = [{ label: '取放货', value: 1 }] - } else { - item.taskTypeList = [ - { label: '取放货', value: 1 }, - { label: '移动', value: 4 }, - { label: '移动到点位', value: 9 } - ] - } - }) - }) - .catch(() => { - ElMessage({ - type: 'info', - message: '取消成功' - }) - reject(false) - }) - } catch (err) { - reject(false) - } - } + resolve(true) + // 暂时去除所有发起任务的校验 + // if (formData.value.doCycle === 1) { + // formData.value.cycleNumber = 0 //循环次数 + // formData.value.taskDetailList.forEach((item, index) => { + // item.taskType = undefined + // if (index === 0) { + // item.taskTypeList = [ + // { label: '取放货', value: 1 }, + // { label: '停车', value: 2 }, + // { label: '充电', value: 3 }, + // { label: '移动', value: 4 }, + // { label: '仅取货', value: 5 }, + // { label: '仅放货', value: 6 }, + // { label: '移动到点位', value: 9 } + // ] + // } else { + // item.taskTypeList = [] + // } + // }) + // resolve(true) + // } else { + // try { + // ElMessageBox.confirm('开启循环任务,任务类型只能选择取放货和移动,是否切换?', '提示', { + // confirmButtonText: '确定', + // cancelButtonText: '取消', + // type: 'warning' + // }) + // .then(async () => { + // resolve(true) + // formData.value.cycleNumber = 1 //循环次数 + // formData.value.taskDetailList.forEach((item) => { + // item.taskType = undefined + // if (formData.value.doMoveAll === 1) { + // item.taskTypeList = [{ label: '取放货', value: 1 }] + // } else { + // item.taskTypeList = [ + // { label: '取放货', value: 1 }, + // { label: '移动', value: 4 }, + // { label: '移动到点位', value: 9 } + // ] + // } + // }) + // }) + // .catch(() => { + // ElMessage({ + // type: 'info', + // message: '取消成功' + // }) + // reject(false) + // }) + // } catch (err) { + // reject(false) + // } + // } }) }