bill пре 1 година
родитељ
комит
8d1171b765
4 измењених фајлова са 33 додато и 9 уклоњено
  1. 11 5
      src/lib/board/4dmap.js
  2. 1 1
      src/lib/board/4dmap.umd.cjs
  3. 3 0
      src/view/map/polygons.vue
  4. 18 3
      src/view/step-tree-v2/helper-v2.ts

+ 11 - 5
src/lib/board/4dmap.js

@@ -13668,7 +13668,7 @@ gu("compass", (s, t) => {
 });
 class Hu extends ie {
   constructor(t) {
-    t.name = t.name || "pixel-scale", t.zIndex = 1e3, !t.attrib.left && !t.attrib.right && (t.attrib.left = 10), !t.attrib.top && !t.attrib.bottom && (t.attrib.bottom = 10), super(t), this.allowable = 1e-3, this.fontSize = 12, this.padding = 4, this.getScaleUnit = (e) => Math.max(...e) * 1e4, this.getScaleText = (e) => e + "";
+    t.name = t.name || "pixel-scale", t.zIndex = 1e3, !t.attrib.left && !t.attrib.right && (t.attrib.left = 10), !t.attrib.top && !t.attrib.bottom && (t.attrib.bottom = 10), super(t), this.allowable = 0.01, this.fontSize = 12, this.padding = 4, this.getScaleUnit = (e) => Math.max(...e) * 1e4, this.getScaleText = (e) => e + "";
   }
   get height() {
     return this.fontSize + this.padding;
@@ -13712,8 +13712,8 @@ class Hu extends ie {
       return;
     let t = 1, e, i;
     for (let c = this.attrib.minWidth; c <= this.attrib.maxWidth; c++) {
-      const d = c * this.pixelScale, p = Ot(d, 10) - d;
-      if (p < this.allowable && d % 5 < 1) {
+      const d = c * this.pixelScale, p = Ot(d, 10) - d, m = d < 1e3 ? 5 : 500;
+      if (p < this.allowable && d % m < 1) {
         e = c, i = d;
         break;
       } else
@@ -13824,12 +13824,18 @@ const v1 = (s = {}) => {
   a(s);
   let o;
   const h = n.tree.entrys.scale[0];
-  return h.allowable = 1e-11, h.getScaleUnit = (l) => {
+  return h.allowable = 0.01, h.getScaleUnit = (l) => {
     if (!s.map)
       return;
     const f = s.map.getView().getProjection().getMetersPerUnit();
     return l[0] * f;
-  }, h.getScaleText = (l) => l > 1e3 ? Ot(l / 1e3, 1) + " km" : Math.floor(l) + " m", {
+  }, h.getScaleText = (l) => {
+    if (l > 1e3) {
+      let A = Ot(l / 1e3, 1), u = A % 1;
+      return A = Math.floor(A) + (u > 0.5 ? 1 : u < 0.5 ? -1 : 0.5), A + " km";
+    } else
+      return Math.floor(l) + " m";
+  }, {
     raw: n,
     scale: h,
     setProps: a,

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
src/lib/board/4dmap.umd.cjs


+ 3 - 0
src/view/map/polygons.vue

@@ -165,6 +165,9 @@ const handleShowEditModel = (item: PolyDataType) => {
 
 const del = async (id: string) => {
   if ((await confirm("确定要删除吗")) && !currentItem.value) {
+    if (selectId.value === id) {
+      selectChange(null);
+    }
     boardDataChange(() => board.polygon.removePolygon(id));
   }
 };

+ 18 - 3
src/view/step-tree-v2/helper-v2.ts

@@ -58,9 +58,11 @@ const _flatSteps = <T extends DataStep>(
   return lonelySteps;
 };
 
+const start: any = { displayName: "开始", type: "startEnd" };
+const end: any = { displayName: "结束", type: "startEnd" };
 export const flatSteps = <T extends DataStep>(steps: DataStepTree<T>[]) => {
   const nsteps: NStep<DataStepTree<T>>[] = [];
-  _flatSteps(steps, nsteps);
+  _flatSteps([start, ...steps, end] as any, nsteps);
   return nsteps;
 };
 
@@ -155,7 +157,14 @@ const setGroupOffset = <T>(
   const offsetLYs: number[] = [];
   for (let i = 0; i < groupSteps.length; i++) {
     const groupStep = groupSteps[i];
-    if (i > 0) {
+    if (start === groupStep.raw) {
+      offsetYs[i] = 0;
+      offsetLYs[i] = 0;
+      // offsetLYs[i] = -groupStep.box.size.h + margin;
+    } else if (end === groupStep.raw) {
+      offsetYs[i] = offsetYs[i - 1];
+      offsetLYs[i] = offsetLYs[i - 1];
+    } else if (i > 0) {
       offsetYs[i] = -groupStep.box.size.h + offsetYs[i - 1] + margin;
       offsetLYs[i] = offsetLYs[i - 1] - groupStep.box.size.h + margin;
     } else {
@@ -165,8 +174,10 @@ const setGroupOffset = <T>(
 
     groupStep.box.offset.y += margin;
   }
+
   let offsetNdx = offsetYs.length - 1;
   let offsetLNdx = offsetYs.length - 1;
+  let prevG = null;
 
   levelTraversalSteps(
     steps,
@@ -177,8 +188,10 @@ const setGroupOffset = <T>(
       }
 
       for (const current of currents) {
-        if (offsetNdx === -1) {
+        if (end === prevG || offsetNdx <= 0) {
           current.box.lines = [];
+        }
+        if (offsetNdx === -1) {
           break;
         }
         current.box.offset.y += offsetYs[offsetNdx];
@@ -188,6 +201,7 @@ const setGroupOffset = <T>(
           }
         }
       }
+      prevG = currents[0].raw;
       if (isBorder) {
         offsetLNdx -= 1;
       }
@@ -222,6 +236,7 @@ export const getStepsTreeCtx = <T extends DataStep>(
   const ctx = getStepsTreeCtxRaw(steps, margin, getStepSize) as StepsCtx<
     DataStepTree<T>
   >;
+  groups = [start, ...groups, end];
   const groupSteps = groups.map((group) =>
     steps.find((step) => group === step.raw)
   );