From 63eb72848fb38599e265326f0df4b68a934cc04c Mon Sep 17 00:00:00 2001 From: yyy <2605810609@qq.com> Date: Fri, 28 Mar 2025 14:22:29 +0800 Subject: [PATCH 1/6] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.local | 2 +- src/views/board/device/createEditDialog.vue | 1 + .../components-tool/editNodeProperties.vue | 35 +++--- .../components-tool/equipmentToolDialog.vue | 13 ++- .../itemAreaManagementDialog.vue | 16 +-- .../components-tool/itemAreaSettingDialog.vue | 8 +- .../lineLibraryManagementDialog.vue | 18 ++-- .../lineLibrarySettingDialog.vue | 9 +- src/views/mapPage/realTimeMap/editMap.vue | 101 ++++++++++++++++-- 9 files changed, 151 insertions(+), 52 deletions(-) diff --git a/.env.local b/.env.local index 846499c4..c8407918 100644 --- a/.env.local +++ b/.env.local @@ -5,7 +5,7 @@ VITE_DEV=true # 请求路径 # VITE_BASE_URL='http://192.168.0.74:48080' -# VITE_BASE_URL='http://192.168.0.226:48080' +# VITE_BASE_URL='http://192.168.0.153:48080' VITE_BASE_URL='http://192.168.0.45:48080' # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务 diff --git a/src/views/board/device/createEditDialog.vue b/src/views/board/device/createEditDialog.vue index ca09693f..0ee5a885 100644 --- a/src/views/board/device/createEditDialog.vue +++ b/src/views/board/device/createEditDialog.vue @@ -22,6 +22,7 @@ :disabled="false" placeholder="请输入设备编号(25字以内)" maxlength="25" + show-word-limit /> diff --git a/src/views/mapPage/realTimeMap/components-tool/editNodeProperties.vue b/src/views/mapPage/realTimeMap/components-tool/editNodeProperties.vue index 2ba7b4c2..b7dd0ad5 100644 --- a/src/views/mapPage/realTimeMap/components-tool/editNodeProperties.vue +++ b/src/views/mapPage/realTimeMap/components-tool/editNodeProperties.vue @@ -303,7 +303,10 @@ const submit = async (formEl) => { item.id = String(form.value.dataList[index].id) item.locationNo = form.value.dataList[index].locationNo item.mapItemId = form.value.dataList[index].mapItemId - item.laneId = form.value.dataList[index].laneId + item.areaId = form.value.dataList[index].areaId || '' + item.areaName = form.value.dataList[index].areaName || '' + item.laneId = form.value.dataList[index].laneId || '' + item.laneName = form.value.dataList[index].laneName || '' } list.push(item) } @@ -381,34 +384,28 @@ const typeChange = (type) => { form.value.locationWidePx = 8 } else if (type === 2) { form.value.locationNumber = null - if (!form.value.id) { - form.value.locationDeep = 150 - form.value.locationWide = 150 - form.value.locationDeepPx = 30 - form.value.locationWidePx = 30 - } + form.value.locationDeep = 150 + form.value.locationWide = 150 + form.value.locationDeepPx = 30 + form.value.locationWidePx = 30 } else if (type === 3) { form.value.direction = null form.value.inDirection = null form.value.outDirection = null form.value.locationNumber = null - if (!form.value.id) { - form.value.locationDeep = 150 - form.value.locationWide = 150 - form.value.locationDeepPx = 30 - form.value.locationWidePx = 30 - } + form.value.locationDeep = 150 + form.value.locationWide = 150 + form.value.locationDeepPx = 30 + form.value.locationWidePx = 30 } else if (type === 4) { form.value.direction = null form.value.inDirection = null form.value.outDirection = null form.value.locationNumber = null - if (!form.value.id) { - form.value.locationDeep = 150 - form.value.locationWide = 150 - form.value.locationDeepPx = 30 - form.value.locationWidePx = 30 - } + form.value.locationDeep = 150 + form.value.locationWide = 150 + form.value.locationDeepPx = 30 + form.value.locationWidePx = 30 } else if (type === 5) { form.value.layersNumber = null form.value.direction = null diff --git a/src/views/mapPage/realTimeMap/components-tool/equipmentToolDialog.vue b/src/views/mapPage/realTimeMap/components-tool/equipmentToolDialog.vue index 2d70e096..36180b95 100644 --- a/src/views/mapPage/realTimeMap/components-tool/equipmentToolDialog.vue +++ b/src/views/mapPage/realTimeMap/components-tool/equipmentToolDialog.vue @@ -9,7 +9,9 @@
-
{{ item.deviceNo }}
+ + {{ item.deviceNo }} + @@ -213,8 +215,15 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗 font-size: 14px; color: #91929e; line-height: 20px; - text-align: left; + text-align: center; font-style: normal; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 164px; + padding: 0 10px; + box-sizing: border-box; + display: inline-block; } .delete-icon { diff --git a/src/views/mapPage/realTimeMap/components-tool/itemAreaManagementDialog.vue b/src/views/mapPage/realTimeMap/components-tool/itemAreaManagementDialog.vue index dba35c4c..42e607d7 100644 --- a/src/views/mapPage/realTimeMap/components-tool/itemAreaManagementDialog.vue +++ b/src/views/mapPage/realTimeMap/components-tool/itemAreaManagementDialog.vue @@ -13,14 +13,12 @@ v-loading="loading" > - - + + @@ -74,7 +72,7 @@ const open = () => { getWareHouseList() } -const emit = defineEmits(['addEventListener']) +const emit = defineEmits(['addEventListener', 'itemAreaManagementDelete', 'itemAreaManagementEdit']) const dialogClose = () => { emit('addEventListener') } @@ -99,13 +97,14 @@ const getWareHouseList = async () => { } } -const handleDelete = async (id) => { +const handleDelete = async (item) => { try { // 删除的二次确认 await message.delConfirm('请确认是否删除该物料区域?') // 发起删除 - await MapApi.deleteWareHouseArea(id) + await MapApi.deleteWareHouseArea(item.id) message.success('删除成功') + emit('itemAreaManagementDelete', item.mapItemIds) // 刷新列表 await getWareHouseList() } catch {} @@ -133,6 +132,7 @@ const editSubmit = async () => { await getWareHouseList() editDialogFormVisible.value = false message.success('编辑成功') + emit('itemAreaManagementEdit', editForm.value) } }) } diff --git a/src/views/mapPage/realTimeMap/components-tool/itemAreaSettingDialog.vue b/src/views/mapPage/realTimeMap/components-tool/itemAreaSettingDialog.vue index 7b616ef8..4031473c 100644 --- a/src/views/mapPage/realTimeMap/components-tool/itemAreaSettingDialog.vue +++ b/src/views/mapPage/realTimeMap/components-tool/itemAreaSettingDialog.vue @@ -77,7 +77,7 @@ const open = (list) => { form.value.skuInfo = '' } -const emit = defineEmits(['addEventListener']) +const emit = defineEmits(['addEventListener', 'itemAreaSettingSubmitSuccess']) const dialogClose = () => { emit('addEventListener') } @@ -87,9 +87,13 @@ const submitForm = async (formEl) => { await formEl.validate(async (valid, fields) => { if (valid) { form.value.positionMapId = props.positionMapId - await MapApi.createOrEditOrDelHouseArea(form.value) + let res = await MapApi.createOrEditOrDelHouseArea(form.value) dialogFormVisible.value = false message.success('设置成功') + emit('itemAreaSettingSubmitSuccess', { + ...res, + mapItemIds: form.value.mapItemIds + }) } }) } diff --git a/src/views/mapPage/realTimeMap/components-tool/lineLibraryManagementDialog.vue b/src/views/mapPage/realTimeMap/components-tool/lineLibraryManagementDialog.vue index 60f11d45..69468e56 100644 --- a/src/views/mapPage/realTimeMap/components-tool/lineLibraryManagementDialog.vue +++ b/src/views/mapPage/realTimeMap/components-tool/lineLibraryManagementDialog.vue @@ -13,13 +13,11 @@ v-loading="loading" > - + @@ -70,7 +68,11 @@ const open = () => { getLineLibraryList() } -const emit = defineEmits(['addEventListener']) +const emit = defineEmits([ + 'addEventListener', + 'lineLibraryManagementDelete', + 'lineLibraryManagementEdit' +]) const dialogClose = () => { emit('addEventListener') } @@ -95,13 +97,14 @@ const getLineLibraryList = async () => { } } -const handleDelete = async (id) => { +const handleDelete = async (item) => { try { // 删除的二次确认 await message.delConfirm('请确认是否删除该线库?') // 发起删除 - await MapApi.deleteWareLaneArea(id) + await MapApi.deleteWareLaneArea(item.id) message.success('删除成功') + emit('lineLibraryManagementDelete', item.mapItemIds) // 刷新列表 await getLineLibraryList() } catch {} @@ -125,6 +128,7 @@ const editSubmit = async () => { if (valid) { await MapApi.createOrEditOrDelHouseLane(editForm.value) await getLineLibraryList() + emit('lineLibraryManagementEdit', editForm.value) editDialogFormVisible.value = false message.success('编辑成功') } diff --git a/src/views/mapPage/realTimeMap/components-tool/lineLibrarySettingDialog.vue b/src/views/mapPage/realTimeMap/components-tool/lineLibrarySettingDialog.vue index de0814ed..7c33805d 100644 --- a/src/views/mapPage/realTimeMap/components-tool/lineLibrarySettingDialog.vue +++ b/src/views/mapPage/realTimeMap/components-tool/lineLibrarySettingDialog.vue @@ -58,7 +58,6 @@ const form = ref({ }) const open = (list) => { - console.log(list) dialogFormVisible.value = true form.value.mapItemIds = list.map((item) => item.id) form.value.areaNumber = list.reduce((sum, item) => { @@ -67,7 +66,7 @@ const open = (list) => { form.value.laneName = '' } -const emit = defineEmits(['addEventListener']) +const emit = defineEmits(['addEventListener', 'submitLineLibraryFormSuccess']) const dialogClose = () => { emit('addEventListener') } @@ -76,9 +75,13 @@ const submitLineLibraryForm = async () => { await lineFormRef.value.validate(async (valid, fields) => { if (valid) { form.value.positionMapId = props.positionMapId - await MapApi.createOrEditOrDelHouseLane(form.value) + let res = await MapApi.createOrEditOrDelHouseLane(form.value) dialogFormVisible.value = false message.success('设置成功') + emit('submitLineLibraryFormSuccess', { + ...res, + mapItemIds: form.value.mapItemIds + }) } }) } diff --git a/src/views/mapPage/realTimeMap/editMap.vue b/src/views/mapPage/realTimeMap/editMap.vue index eeeffc3f..510b61ed 100644 --- a/src/views/mapPage/realTimeMap/editMap.vue +++ b/src/views/mapPage/realTimeMap/editMap.vue @@ -673,12 +673,14 @@ ref="itemAreaSettingDialogRef" :positionMapId="imgBgObj.positionMapId" @addEventListener="addEventListener" + @itemAreaSettingSubmitSuccess="itemAreaSettingSubmitSuccess" />
@@ -921,7 +927,7 @@ const mapClick = (e) => { const actualLocationX = disposeEventPoints(e).actualLocationX const actualLocationY = disposeEventPoints(e).actualLocationY - //绘制节点 + //新增节点 if (toolbarSwitchType.value === 'drawNodes') { state.allMapPointInfo.push({ positionMapId: imgBgObj.positionMapId, //地图的id @@ -1181,7 +1187,7 @@ const state = reactive({ rightToolList: [ { switchType: 'drawNodes', - name: '绘制节点', + name: '新增节点', icon: 'ep:circle-plus-filled', isActive: false }, @@ -1193,7 +1199,7 @@ const state = reactive({ }, { switchType: 'clickDrawRoute', - name: '绘制路线', + name: '新增路线', icon: 'ep:semi-select', isActive: false }, @@ -1255,7 +1261,7 @@ const state = reactive({ }, //当前拖拽的目标(起点、终点、控制点) selectedCurve: '', // 当前选中的曲线 startDrawPointIndex: -1, // 起始点的索引 - startDrawPoint: null, //绘制路线开始的点 + startDrawPoint: null, //新增路线开始的点 isDrawing: false, //正在绘制 currentDrawX: 0, //正在绘制的x轴坐标 currentDrawY: 0, //正在绘制的y轴坐标 @@ -1514,13 +1520,13 @@ const toolbarClick = async (item) => { backNextStep() break case 'drawNodes': - //绘制节点 + //新增节点 break case 'editNode': // 编辑节点 break case 'drawRoute': - //绘制路线 + //新增路线 break case 'editRoute': // 编辑路线 @@ -1958,10 +1964,10 @@ const clickDrawSelectionArea = () => { message.warning('至少选择两个库位') return } - if (!isStraightLine(binLocation)) { - message.warning('您选择的库位不在一条直线上') - return - } + // if (!isStraightLine(binLocation)) { + // message.warning('您选择的库位不在一条直线上') + // return + // } let isHaveId = binLocation.every((item) => { return item.id }) @@ -2655,6 +2661,81 @@ const saveNodeList = async () => { const saveMapRoute = async () => { await MapApi.createOrEditOrDelPositionMapLine(imgBgObj.positionMapId, state.mapRouteList) } +//线库新增 要在库位新增线库信息 +const submitLineLibraryFormSuccess = (obj) => { + state.allMapPointInfo.forEach((item) => { + if (obj.mapItemIds.includes(item.id)) { + item.laneId = obj.id + item.dataList.forEach((node) => { + node.laneName = obj.laneName + node.laneId = obj.id + }) + } + }) +} +//区域新增 要在库位新增区域信息 +const itemAreaSettingSubmitSuccess = (obj) => { + state.allMapPointInfo.forEach((item) => { + if (obj.mapItemIds.includes(item.id)) { + item.areaId = obj.id + item.dataList.forEach((node) => { + node.areaName = obj.areaName + node.areaId = obj.id + }) + } + }) +} +//线库删除 要在库位中删除线库信息 +const lineLibraryManagementDelete = (mapItemIds) => { + state.allMapPointInfo.forEach((item) => { + if (mapItemIds.includes(item.id)) { + item.laneId = undefined + item.dataList.forEach((node) => { + node.laneName = undefined + node.laneId = undefined + }) + } + }) +} +//区域删除 要在库位删除区域信息 +const itemAreaManagementDelete = (mapItemIds) => { + state.allMapPointInfo.forEach((item) => { + if (mapItemIds.includes(item.id)) { + item.areaId = undefined + item.dataList.forEach((node) => { + node.areaName = undefined + node.areaId = undefined + }) + } + }) +} +//线库编辑 要在库位中编辑线库信息 +const lineLibraryManagementEdit = (obj) => { + console.log(obj) + state.allMapPointInfo.forEach((item) => { + if (obj.mapItemIds.includes(item.id)) { + item.laneId = obj.id + item.dataList.forEach((node) => { + node.laneName = obj.laneName + node.laneId = obj.id + }) + } + }) +} +//区域编辑 要在库位编辑区域信息 +const itemAreaManagementEdit = (obj) => { + console.log(obj) + state.allMapPointInfo.forEach((item) => { + if (obj.mapItemIds.includes(item.id)) { + item.areaId = obj.id + item.dataList.forEach((node) => { + node.areaName = obj.areaName + node.areaId = obj.id + }) + } + }) +} + //筛选图层 const layerSelectionSuccess = (typeList) => { state.allMapPointInfo.forEach((item) => { From 7b773d8a2c33341a78915497a4662cb141259432 Mon Sep 17 00:00:00 2001 From: yyy <2605810609@qq.com> Date: Fri, 28 Mar 2025 15:10:57 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E7=94=9F=E6=88=90=E7=9B=B4=E7=BA=BF?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=20=E6=A1=86=E9=80=89=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=90=8E=20=E7=94=A8=E6=88=B7=E9=80=89=E6=8B=A9=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E7=9A=84=E5=BC=80=E5=A7=8B=E7=82=B9=E5=92=8C=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GenerateStraightLinesDialog.vue | 100 +++++++++++++ .../itemAreaManagementDialog.vue | 2 +- .../lineLibraryManagementDialog.vue | 4 +- src/views/mapPage/realTimeMap/editMap.vue | 137 +++++++++--------- 4 files changed, 170 insertions(+), 73 deletions(-) create mode 100644 src/views/mapPage/realTimeMap/components-tool/GenerateStraightLinesDialog.vue diff --git a/src/views/mapPage/realTimeMap/components-tool/GenerateStraightLinesDialog.vue b/src/views/mapPage/realTimeMap/components-tool/GenerateStraightLinesDialog.vue new file mode 100644 index 00000000..c4a655cb --- /dev/null +++ b/src/views/mapPage/realTimeMap/components-tool/GenerateStraightLinesDialog.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/views/mapPage/realTimeMap/components-tool/itemAreaManagementDialog.vue b/src/views/mapPage/realTimeMap/components-tool/itemAreaManagementDialog.vue index 42e607d7..71acf15d 100644 --- a/src/views/mapPage/realTimeMap/components-tool/itemAreaManagementDialog.vue +++ b/src/views/mapPage/realTimeMap/components-tool/itemAreaManagementDialog.vue @@ -104,9 +104,9 @@ const handleDelete = async (item) => { // 发起删除 await MapApi.deleteWareHouseArea(item.id) message.success('删除成功') - emit('itemAreaManagementDelete', item.mapItemIds) // 刷新列表 await getWareHouseList() + emit('itemAreaManagementDelete', item.mapItemIds) } catch {} } diff --git a/src/views/mapPage/realTimeMap/components-tool/lineLibraryManagementDialog.vue b/src/views/mapPage/realTimeMap/components-tool/lineLibraryManagementDialog.vue index 69468e56..7acd77ec 100644 --- a/src/views/mapPage/realTimeMap/components-tool/lineLibraryManagementDialog.vue +++ b/src/views/mapPage/realTimeMap/components-tool/lineLibraryManagementDialog.vue @@ -104,9 +104,9 @@ const handleDelete = async (item) => { // 发起删除 await MapApi.deleteWareLaneArea(item.id) message.success('删除成功') - emit('lineLibraryManagementDelete', item.mapItemIds) // 刷新列表 await getLineLibraryList() + emit('lineLibraryManagementDelete', item.mapItemIds) } catch {} } @@ -128,9 +128,9 @@ const editSubmit = async () => { if (valid) { await MapApi.createOrEditOrDelHouseLane(editForm.value) await getLineLibraryList() - emit('lineLibraryManagementEdit', editForm.value) editDialogFormVisible.value = false message.success('编辑成功') + emit('lineLibraryManagementEdit', editForm.value) } }) } diff --git a/src/views/mapPage/realTimeMap/editMap.vue b/src/views/mapPage/realTimeMap/editMap.vue index 510b61ed..a91c44f2 100644 --- a/src/views/mapPage/realTimeMap/editMap.vue +++ b/src/views/mapPage/realTimeMap/editMap.vue @@ -706,6 +706,11 @@ @itemAreaManagementDelete="itemAreaManagementDelete" @itemAreaManagementEdit="itemAreaManagementEdit" /> + +
@@ -729,6 +734,7 @@ import cursorCollection from './cursorCollection' defineOptions({ name: 'editMapPageRealTimeMap' }) +const GenerateStraightLinesDialogRef = ref() //生成直线的 const lineLibraryManagementDialogRef = ref() //线库管理 const itemAreaManagementDialogRef = ref() //区域管理 const lineLibrarySettingDialogRef = ref() //线库设置 @@ -2058,96 +2064,85 @@ const clickDrawSelectionArea = () => { message.warning('您选择的路径点存在未保存的') return } - const list = mapPointsToLine(routeList) - const idNameMap = {} - list.forEach((item) => { - idNameMap[item.id] = item - }) - // 遍历第二个数组,更新 name - state.allMapPointInfo.forEach((item) => { - if (idNameMap[item.id]) { - let actualPoint = disposeEventPoint( - idNameMap[item.id].locationX, - idNameMap[item.id].locationY - ) - item.locationX = idNameMap[item.id].locationX - item.locationY = idNameMap[item.id].locationY - item.actualLocationX = actualPoint.actualLocationX - item.actualLocationY = actualPoint.actualLocationY - } - }) - state.mapRouteList.forEach((item) => { - if (idNameMap[item.startingPointId]) { - let actualPoint = disposeEventPoint( - idNameMap[item.startingPointId].locationX, - idNameMap[item.startingPointId].locationY - ) - item.startPointX = idNameMap[item.startingPointId].locationX - item.startPointY = idNameMap[item.startingPointId].locationY - item.actualStartPointX = actualPoint.actualLocationX - item.actualStartPointY = actualPoint.actualLocationY - } - if (idNameMap[item.endPointId]) { - let actualPoint = disposeEventPoint( - idNameMap[item.endPointId].locationX, - idNameMap[item.endPointId].locationY - ) - item.endPointX = idNameMap[item.endPointId].locationX - item.endPointY = idNameMap[item.endPointId].locationY - item.actualEndPointX = actualPoint.actualLocationX - item.actualEndPointY = actualPoint.actualLocationY - } - }) - addEditHistory() + GenerateStraightLinesDialogRef.value.open(routeList) } } -//将一个数组中的点位 按照第一个和最后一个排成一条直线 -const mapPointsToLine = (points) => { - // 找出 locationX 最大和最小的项 - // let minXPoint = points[0] - // let maxXPoint = points[0] - // points.forEach((point) => { - // if (point.locationX < minXPoint.locationX) { - // minXPoint = point - // } - // if (point.locationX > maxXPoint.locationX) { - // maxXPoint = point - // } - // }) +//生成直线 选择完成开始点和结束点 +const GenerateStraightLinesSubmit = (pointList, form) => { + const list = mapPointsToLine(pointList, form.startPointId, form.endPointId) + const idNameMap = {} + list.forEach((item) => { + idNameMap[item.id] = item + }) + // 遍历第二个数组,更新 name + state.allMapPointInfo.forEach((item) => { + if (idNameMap[item.id]) { + let actualPoint = disposeEventPoint( + idNameMap[item.id].locationX, + idNameMap[item.id].locationY + ) + item.locationX = idNameMap[item.id].locationX + item.locationY = idNameMap[item.id].locationY + item.actualLocationX = actualPoint.actualLocationX + item.actualLocationY = actualPoint.actualLocationY + } + }) + state.mapRouteList.forEach((item) => { + if (idNameMap[item.startingPointId]) { + let actualPoint = disposeEventPoint( + idNameMap[item.startingPointId].locationX, + idNameMap[item.startingPointId].locationY + ) + item.startPointX = idNameMap[item.startingPointId].locationX + item.startPointY = idNameMap[item.startingPointId].locationY + item.actualStartPointX = actualPoint.actualLocationX + item.actualStartPointY = actualPoint.actualLocationY + } + if (idNameMap[item.endPointId]) { + let actualPoint = disposeEventPoint( + idNameMap[item.endPointId].locationX, + idNameMap[item.endPointId].locationY + ) + item.endPointX = idNameMap[item.endPointId].locationX + item.endPointY = idNameMap[item.endPointId].locationY + item.actualEndPointX = actualPoint.actualLocationX + item.actualEndPointY = actualPoint.actualLocationY + } + }) + addEditHistory() +} - // 找出sortNum最小和最大的点 - let minXPoint = points[0] - let maxXPoint = points[0] - for (let i = 1; i < points.length; i++) { - if (points[i].sortNum < minXPoint.sortNum) { - minXPoint = points[i] - } - if (points[i].sortNum > maxXPoint.sortNum) { - maxXPoint = points[i] - } +//将一个数组中的点位 按照第一个和最后一个排成一条直线 +const mapPointsToLine = (points, startPointId, endPointId) => { + const startPoint = points.find((point) => point.id === startPointId) + const endPoint = points.find((point) => point.id === endPointId) + + if (!startPoint || !endPoint) { + message.warning('选择的点位有误') + return } - const dx = maxXPoint.locationX - minXPoint.locationX - const dy = maxXPoint.locationY - minXPoint.locationY + const dx = startPoint.locationX - endPoint.locationX + const dy = startPoint.locationY - endPoint.locationY // 处理垂直直线的情况 if (dx === 0) { return points.map((point) => { - if (point === minXPoint || point === maxXPoint) { + if (point === endPoint || point === startPoint) { return point } return { ...point, - locationX: minXPoint.locationX + locationX: endPoint.locationX } }) } const slope = dy / dx - const intercept = minXPoint.locationY - slope * minXPoint.locationX + const intercept = endPoint.locationY - slope * endPoint.locationX return points.map((point) => { - if (point === minXPoint || point === maxXPoint) { + if (point === endPoint || point === startPoint) { return point } const newY = slope * point.locationX + intercept @@ -2157,6 +2152,7 @@ const mapPointsToLine = (points) => { } }) } + //计算是不是在同一条直线的 const isStraightLine = (binLocation) => { if (binLocation.length <= 2) { @@ -2691,6 +2687,7 @@ const lineLibraryManagementDelete = (mapItemIds) => { if (mapItemIds.includes(item.id)) { item.laneId = undefined item.dataList.forEach((node) => { + ;`` node.laneName = undefined node.laneId = undefined }) From a8fed4a258047f3b77c6ce3e86127929c17a2a58 Mon Sep 17 00:00:00 2001 From: yyy <2605810609@qq.com> Date: Fri, 28 Mar 2025 16:02:41 +0800 Subject: [PATCH 3/6] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/layout/components/Message/src/Message.vue | 14 ++++---- .../realTimeMap/components/indexPage.vue | 32 ++++++++++++------- 2 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/layout/components/Message/src/Message.vue b/src/layout/components/Message/src/Message.vue index 1b31a4d0..edc38e76 100644 --- a/src/layout/components/Message/src/Message.vue +++ b/src/layout/components/Message/src/Message.vue @@ -15,7 +15,7 @@ const list = ref([]) // 消息列表 const getList = async () => { // list.value = await NotifyMessageApi.getUnreadNotifyMessageList() list.value = await NotifyMessageApi.warnMsgReadPage() - console.log(list.value ) + console.log(list.value) // 强制设置 unreadCount 为 0,避免小红点因为轮询太慢,不消除 unreadCount.value = 0 } @@ -26,14 +26,15 @@ const getUnreadCount = async () => { // unreadCount.value = data // }) NotifyMessageApi.warnMsgReadPage().then((data) => { - // console.log(data) - unreadCount.value = data&&data.length?data.length:0 + // console.log(data) + unreadCount.value = data && data.length ? data.length : 0 }) - } // 跳转我的站内信 +const popoverRef = ref() const goMyList = () => { + popoverRef.value.hide() push({ name: 'SystemCarError' }) @@ -58,7 +59,7 @@ onMounted(() => {