From 3680fcabb06936ec28be5cc3e270d65e3341c19d Mon Sep 17 00:00:00 2001 From: yyy <2605810609@qq.com> Date: Wed, 12 Feb 2025 17:56:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components-tool/editNodeProperties.vue | 124 +++--- .../components-tool/textFormToolDialog.vue | 23 ++ .../realTimeMap/components/indexPage.vue | 13 +- src/views/mapPage/realTimeMap/editMap.vue | 373 +++++++++++------- src/views/mapPage/realTimeMap/index.vue | 18 +- src/views/mapPage/realTimeMap/test copy.vue | 93 +++++ src/views/mapPage/realTimeMap/test.vue | 253 ++++++++---- .../mapPage/taskManagement/createTask.vue | 13 +- 8 files changed, 618 insertions(+), 292 deletions(-) create mode 100644 src/views/mapPage/realTimeMap/test copy.vue diff --git a/src/views/mapPage/realTimeMap/components-tool/editNodeProperties.vue b/src/views/mapPage/realTimeMap/components-tool/editNodeProperties.vue index 1d91189c..b1f6d311 100644 --- a/src/views/mapPage/realTimeMap/components-tool/editNodeProperties.vue +++ b/src/views/mapPage/realTimeMap/components-tool/editNodeProperties.vue @@ -1,6 +1,6 @@ @@ -113,6 +119,7 @@ import { reactive, ref } from 'vue' import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import * as MapApi from '@/api/map/map' +const ruleFormRef = ref() const dialogFormVisible = ref(false) const message = useMessage() // 消息弹窗 @@ -124,75 +131,93 @@ const props = defineProps({ }) const form = ref({ - type: 1, + type: 1, //类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 layersNumber: 1, //层数 - locationX: undefined, - locationY: undefined, + locationX: undefined, //库位坐标x轴 + locationY: undefined, //库位坐标y轴 locationDeep: undefined, //长度 locationWide: undefined, //宽度 - direction: 1, //方向 - inDirection: undefined, - outDirection: undefined, - list: [] + direction: undefined, //库位方向(1:单向、2:双向、3:三向、4:四向) + inDirection: undefined, //进入方向(0:尾入、1:头入) + outDirection: undefined, //离开方向(0:尾出、1:头出) + dataList: [], //存库位的 + dataObj: {}, //存 设备点 停车点 文字 + positionMapId: undefined }) const rules = reactive({ locationX: [{ required: true, message: '请输入X', trigger: 'blur' }], locationY: [{ required: true, message: '请输入Y', trigger: 'blur' }], type: [{ required: true, message: '请选择类型', trigger: 'blur' }], - direction: [{ required: true, message: '请输入层数', trigger: 'blur' }], + layersNumber: [{ required: true, message: '请输入层数', trigger: 'blur' }], id: [{ required: true, message: '请选择设备编号', trigger: 'blur' }] }) const emit = defineEmits(['submitNodeSuccess']) -const submit = () => { - if (form.value.type === 1 || form.value.type === 6) { - form.value.dataJson = '' - } else if (form.value.type === 2) { +const submit = async (formEl) => { + if (!formEl) return + await formEl.validate((valid, fields) => { + if (!valid) return //在这边把数据处理好 - let list = [] - for (let index = 0; index < form.value.layersNumber; index++) { - list.push({ - locationWide: form.value.locationWide || undefined, - locationDeep: form.value.locationDeep || undefined, - direction: form.value.direction || undefined, //方向 - inDirection: form.value.inDirection || undefined, //进入方向 - outDirection: form.value.outDirection || undefined, //离开方向 - locationStorey: index + 1 //层数 - }) + if (form.value.type === 1 || form.value.type === 5 || form.value.type === 6) { + //不需要dataJson的类型 + form.value.dataJson = '' + } else if (form.value.type === 2) { + //库位点 类型为数组 + for (let index = 0; index < form.value.layersNumber; index++) { + if ( + form.value.dataList.length > 0 && + form.value.dataList[index] && + form.value.dataList[index].laneId + ) { + form.value.dataList[index].locationWide = form.value.locationWide + form.value.dataList[index].locationDeep = form.value.locationDeep + form.value.dataList[index].direction = form.value.direction //方向 + form.value.dataList[index].inDirection = form.value.inDirection //进入方向 + form.value.dataList[index].outDirection = form.value.outDirection //离开方向 + form.value.dataList[index].locationStorey = index + 1 //层数 + } else { + form.value.dataList.push({ + positionMapId: props.positionMapId, + locationWide: form.value.locationWide || undefined, + locationDeep: form.value.locationDeep || undefined, + direction: form.value.direction || undefined, //方向 + inDirection: form.value.inDirection || undefined, //进入方向 + outDirection: form.value.outDirection || undefined, //离开方向 + locationStorey: index + 1 //层数 + }) + } + } + //dataJson数据 + form.value.dataJson = JSON.stringify(form.value.dataList) + } else { + //类型为路径点位 区域变更点 等待点 值为对象 + form.value.dataObj.positionMapId = props.positionMapId + form.value.dataObj.locationWide = form.value.locationWide + form.value.dataObj.locationDeep = form.value.locationDeep + form.value.dataObj.direction = form.value.direction + form.value.dataObj.inDirection = form.value.inDirection + form.value.dataObj.outDirection = form.value.outDirection + //dataJson数据 + form.value.dataJson = JSON.stringify(form.value.dataObj) } - form.value.dataJson = JSON.stringify(list) - } else { - let obj = { - id: form.value.id || undefined, - mapId: props.positionMapId, - locationWide: form.value.locationWide || undefined, - locationDeep: form.value.locationDeep || undefined, - direction: form.value.direction || undefined, //方向 - inDirection: form.value.inDirection || undefined, //进入方向 - outDirection: form.value.outDirection || undefined //离开方向 - } - form.value.dataJson = JSON.stringify(obj) - } - console.log(form.value, '保存') - emit('submitNodeSuccess', form.value) - dialogFormVisible.value = false + emit('submitNodeSuccess', form.value) + dialogFormVisible.value = false + }) } const open = (item) => { form.value = item - form.value.locationX = item.locationX - form.value.locationY = item.locationY - form.value.type = item.type || 1 + form.value.layersNumber = item.layersNumber || 1 //初始化的时候给个1层 + form.value.positionMapId = props.positionMapId dialogFormVisible.value = true } //类型改变 const typeChange = () => { - if (form.value.type === 1 || form.value.type === 6) { + if (form.value.type === 1 || form.value.type === 5 || form.value.type === 6) { form.value.layersNumber = undefined form.value.dataJson = '' - } else { } } //方向改变 @@ -203,16 +228,19 @@ const directionChange = (e) => { } } -//获取设备信息 +//设备信息 const deviceInfo = ref({ positionMapId: '', deviceType: '' }) +//设备列表 const deviceList = ref([]) +//获取设备列表 const getDeviceList = async () => { deviceInfo.value.positionMapId = props.positionMapId deviceList.value = await MapApi.getDeviceInformationList(deviceInfo.value) } +//设备类型切换 const deviceTypeChange = () => { getDeviceList() } diff --git a/src/views/mapPage/realTimeMap/components-tool/textFormToolDialog.vue b/src/views/mapPage/realTimeMap/components-tool/textFormToolDialog.vue index 1756b899..4b4569fa 100644 --- a/src/views/mapPage/realTimeMap/components-tool/textFormToolDialog.vue +++ b/src/views/mapPage/realTimeMap/components-tool/textFormToolDialog.vue @@ -37,6 +37,29 @@ diff --git a/src/views/mapPage/taskManagement/createTask.vue b/src/views/mapPage/taskManagement/createTask.vue index 50be5f1c..b4389afc 100644 --- a/src/views/mapPage/taskManagement/createTask.vue +++ b/src/views/mapPage/taskManagement/createTask.vue @@ -356,17 +356,8 @@ - - + +