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)
+ // }
+ // }
})
}