From 1f96f089eb3546c682313d29513be04ac72e2de5 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期二, 31 十月 2023 16:21:08 +0800 Subject: [PATCH] Merge branch 'master' of ssh://114.215.109.124:29418/grid-management-vue --- src/stores/grid.js | 37 +++++++++++++++++++++++++++++++------ 1 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/stores/grid.js b/src/stores/grid.js index c31dc65..23dac47 100644 --- a/src/stores/grid.js +++ b/src/stores/grid.js @@ -2,21 +2,27 @@ import { defineStore } from 'pinia'; import mapGrid from '@/components/map/mapGrid'; import baseMapUtil from '@/components/map/baseMapUtil'; +import gridInfoApi from '@/api/grid/gridInfoApi'; +import { parseToGridInfo } from '@/model/gridRecord'; export const useGridStore = defineStore('grid', () => { // 褰撳墠鍔犺浇鐨勭綉鏍兼暟鎹泦鍚� const gridList = ref([]); + // 褰撳墠鏄惁鏈夐�変腑鏂规 + const hasScheme = ref(false); // 褰撳墠閫変腑鎿嶄綔鐨勭綉鏍间俊鎭� - const selectedGrid = ref({}); + const selectedGrid = ref(); // 褰撳墠閫変腑鎿嶄綔鐨勭綉鏍兼槸鍚﹀浜庡彲缂栬緫鐘舵�� const isEdit = ref(false); + // 璁板綍褰撳墠缃戞牸璺緞淇℃伅 + var selectedPath = undefined; /** * 妫�鏌ュ綋鍓嶆槸鍚︽湁閫変腑鐨勭綉鏍� * @returns {Boolean} */ function _checkGridExist() { - return selectedGrid.value != undefined; + return selectedGrid.value && selectedGrid.value.id != undefined; } /**鏁版嵁澧炲垹**************************************************************/ @@ -27,7 +33,16 @@ function setGrid(index) { if (index >= 0 && index < gridList.value.length) { selectedGrid.value = gridList.value[index]; + selectedPath = selectedGrid.value.overlays.getPath().join(';'); } + } + + /** + * 鍙栨秷閫変腑 + */ + function clearSelect() { + selectedGrid.value = undefined; + selectedPath = undefined; } /** @@ -36,6 +51,7 @@ */ function setGridList(list) { gridList.value = list; + hasScheme.value = true; } /** @@ -88,7 +104,14 @@ */ function saveSelectedGrid() { if (!_checkGridExist()) return; - selectedGrid.value.gSide = selectedGrid.value.overlays.getPath(); + const newPath = selectedGrid.value.overlays.getPath().join(';'); + if (selectedPath != newPath) { + const _data = parseToGridInfo(selectedGrid.value); + return gridInfoApi.updateGrid(_data).then(() => { + selectedGrid.value.sides = + selectedGrid.value.overlays.getPath(); + }); + } } /** @@ -98,7 +121,7 @@ if (!_checkGridExist()) return; baseMapUtil.removeView(selectedGrid.value.overlays); selectedGrid.value.overlays = mapGrid.drawPolygon( - selectedGrid.value.gSide + selectedGrid.value.sides ); } @@ -112,7 +135,7 @@ showGrid(i); grids.push(l.overlays); }); - baseMapUtil.setFitView(grids, 1); + baseMapUtil.setFitView(...grids); } /** @@ -123,15 +146,17 @@ if (item.overlays) { baseMapUtil.setFitView(item.overlays); } else { - item.overlays = mapGrid.drawPolygon(item.gSide); + item.overlays = mapGrid.drawPolygon(item.sides); } } return { + hasScheme, gridList, selectedGrid, isEdit, setGrid, + clearSelect, setGridList, addGrid, deleteGrid, -- Gitblit v1.9.3