|
@@ -22,10 +22,30 @@ const { proxy } = getCurrentInstance()
|
|
|
|
|
|
const mapDeptRow = localStorage.getItem('mapDeptRow')
|
|
const mapDeptRow = localStorage.getItem('mapDeptRow')
|
|
|
|
|
|
-const storePolygonArr = ref(JSON.parse(JSON.parse(mapDeptRow).pointList).map((i) => {
|
|
|
|
- return [i.lat, i.lng]
|
|
|
|
-}))
|
|
|
|
-
|
|
|
|
|
|
+const storePolygonArr = ref([]);
|
|
|
|
+
|
|
|
|
+try {
|
|
|
|
+ const parsed = JSON.parse(mapDeptRow);
|
|
|
|
+ if (parsed && parsed.pointList) {
|
|
|
|
+ const points = JSON.parse(parsed.pointList);
|
|
|
|
+ if (Array.isArray(points)) {
|
|
|
|
+ storePolygonArr.value = points.map(point => {
|
|
|
|
+ if (!Array.isArray(point) || point.length !== 2) {
|
|
|
|
+ console.error('Invalid coordinate format:', point);
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ const [lat, lng] = point;
|
|
|
|
+ if (isNaN(Number(lat)) || isNaN(Number(lng))) {
|
|
|
|
+ console.error('Invalid coordinate values:', point);
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ return [Number(lat), Number(lng)];
|
|
|
|
+ }).filter(Boolean);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+} catch (error) {
|
|
|
|
+ console.error('Error parsing coordinates:', error);
|
|
|
|
+}
|
|
|
|
|
|
console.log(storePolygonArr.value, '>>>>>>>>>');
|
|
console.log(storePolygonArr.value, '>>>>>>>>>');
|
|
|
|
|
|
@@ -63,8 +83,20 @@ function initMap() {
|
|
// 绘制多边形公共方法
|
|
// 绘制多边形公共方法
|
|
function drawPolygon(pathArr = polygonArr.value) {
|
|
function drawPolygon(pathArr = polygonArr.value) {
|
|
let path = pathArr.map(p => {
|
|
let path = pathArr.map(p => {
|
|
- return new TMap.LatLng(p[0], p[1])
|
|
|
|
- })
|
|
|
|
|
|
+ // Validate that both lat and lng are valid numbers
|
|
|
|
+ const lat = Number(p[0]);
|
|
|
|
+ const lng = Number(p[1]);
|
|
|
|
+ if (isNaN(lat) || isNaN(lng)) {
|
|
|
|
+ console.error('Invalid coordinates:', p);
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ return new TMap.LatLng(lat, lng);
|
|
|
|
+ }).filter(Boolean); // Remove any null entries
|
|
|
|
+
|
|
|
|
+ if (path.length === 0) {
|
|
|
|
+ console.error('No valid coordinates to draw polygon');
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
|
|
//初始化polygon
|
|
//初始化polygon
|
|
polygon = new TMap.MultiPolygon({
|
|
polygon = new TMap.MultiPolygon({
|
|
@@ -204,12 +236,9 @@ function editDrawingPolygon() {
|
|
function saveDrawingPolygon() {
|
|
function saveDrawingPolygon() {
|
|
if (!polygonArr.value || !polygonArr.value.length) {
|
|
if (!polygonArr.value || !polygonArr.value.length) {
|
|
console.log('>>>>>>xian hui zhi');
|
|
console.log('>>>>>>xian hui zhi');
|
|
-
|
|
|
|
- // ElMessage.error('请先绘制或调整图形');
|
|
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
editor.stop()
|
|
editor.stop()
|
|
|
|
|
|
console.log(polygonArr.value, '.>>>>>pointList');
|
|
console.log(polygonArr.value, '.>>>>>pointList');
|
|
@@ -218,11 +247,13 @@ function saveDrawingPolygon() {
|
|
...JSON.parse(mapDeptRow),
|
|
...JSON.parse(mapDeptRow),
|
|
pointList: JSON.stringify(polygonArr.value)
|
|
pointList: JSON.stringify(polygonArr.value)
|
|
}
|
|
}
|
|
|
|
+
|
|
updateDept(payload).then((response) => {
|
|
updateDept(payload).then((response) => {
|
|
if (response.code === 200) {
|
|
if (response.code === 200) {
|
|
|
|
+ // 更新 localStorage
|
|
|
|
+ localStorage.setItem('mapDeptRow', JSON.stringify(payload));
|
|
proxy.$modal.msgSuccess('地址保存成功');
|
|
proxy.$modal.msgSuccess('地址保存成功');
|
|
open.value = false;
|
|
open.value = false;
|
|
- //getList();
|
|
|
|
} else {
|
|
} else {
|
|
proxy.$modal.msgError(response.msg || '地址保存失败');
|
|
proxy.$modal.msgError(response.msg || '地址保存失败');
|
|
}
|
|
}
|