Browse Source

Merge branch 'develop' of http://39.106.8.246:3003/web/wanda-editer into develop

YaolongHan 4 năm trước cách đây
mục cha
commit
cd2eb2df63

+ 4 - 4
package.json

@@ -9,10 +9,10 @@
   },
   "dependencies": {
     "@saga-web/base": "2.1.22",
-    "@saga-web/big": "1.0.81",
-    "@saga-web/draw": "2.1.101",
-    "@saga-web/feng-map": "1.0.24",
-    "@saga-web/graph": "2.1.109",
+    "@saga-web/big": "1.0.83",
+    "@saga-web/draw": "2.1.102",
+    "@saga-web/feng-map": "1.0.25",
+    "@saga-web/graph": "2.1.111",
     "ant-design-vue": "^1.6.0",
     "core-js": "^3.6.4",
     "element-ui": "^2.13.2",

BIN
src/assets/images/order-after-d.png


BIN
src/assets/images/order-after.png


BIN
src/assets/images/order-before-d.png


BIN
src/assets/images/order-before.png


BIN
src/assets/images/order-bottom-d.png


BIN
src/assets/images/order-bottom.png


BIN
src/assets/images/order-top-d.png


BIN
src/assets/images/order-top.png


+ 4 - 0
src/components/baseEditer.vue

@@ -157,6 +157,7 @@ export default {
             this.fParser.parseData(res);
             this.scene.fidToItem = {};
             this.fParser.spaceList.forEach(t => {
+              t.nameColor = '#2a2a2a';
               t.zOrder = t.zOrder + t.data.Height;
               t.selectable = true;
               this.scene.fidToItem[t.data.SourceId] = t;
@@ -329,6 +330,9 @@ export default {
       bus.$on("changeAlignItem", val => {
         this.scene.changeAlignItem(val);
       });
+      bus.$on("changeOrderItem", val => {
+        this.scene.changeOrderItem(val);
+      });
       bus.$on("extractItem", () => {
         const map = {},type={};
         this.fParser.spaceList.forEach(t => {

+ 18 - 7
src/components/edit/attr_select.vue

@@ -115,7 +115,7 @@
       <div v-if="type =='Image'|| type == 'Line'">
         <div class="row">
           <div class="row-tit">显示名称</div>
-          <a-button type="link" class="edit-option-btn" @click="OpenEditStatus">{{editStatus[type]}}</a-button>
+          <a-button type="link" class="edit-option-btn" @click="OpenEditStatus">{{isEdit? "取消编辑" : editStatus[type]}}</a-button>
         </div>
         <div class="row">
           <a-textarea :disabled="type == 'Line'"
@@ -123,7 +123,7 @@
                   v-model="lengedName"
                   allow-clear
                   @change="changeLengedName"
-                  :rows="2"
+                      :auto-size="{ minRows: 2}"
           />
 <!--          <a-input v-model="lengedName" @change="changeLengedName" />-->
         </div>
@@ -175,7 +175,7 @@
               type="link"
               class="edit-option-btn"
               @click="OpenEditStatus"
-            >{{editStatus[type]}}</a-button>
+            >{{isEdit? "取消编辑" : editStatus[type]}}</a-button>
           </div>
           <div class="row">
             <a-textarea
@@ -183,7 +183,7 @@
                     v-model="lengedName"
                     allow-clear
                     @change="changeLengedName"
-                    :rows="2"
+                    :auto-size="{ minRows: 2}"
             />
 <!--            <a-input v-model="lengedName" @change="changeLengedName" />-->
           </div>
@@ -206,7 +206,7 @@
           <!-- 石材铺装 -->
           <div class="row">
             <div class="row-tit">图例说明</div>
-            <a-button type="link" class="edit-option-btn" @click="OpenEditStatus">编辑区域</a-button>
+            <a-button type="link" class="edit-option-btn" @click="OpenEditStatus">{{isEdit? "取消编辑" : editStatus[type]}}</a-button>
           </div>
           <div class="row">
             <a-textarea
@@ -245,7 +245,7 @@
               type="link"
               class="edit-option-btn"
               @click="OpenEditStatus"
-            >{{editStatus[type]}}</a-button>
+            >{{isEdit? "取消编辑" : editStatus[type]}}</a-button>
           </div>
           <div class="row">
             <a-textarea
@@ -253,7 +253,7 @@
                     v-model="lengedName"
                     allow-clear
                     @change="changeLengedName"
-                    :rows="2"
+                    :auto-size="{ minRows: 2}"
             />
 <!--            <a-input v-model="lengedName" @change="changeLengedName" />-->
           </div>
@@ -333,6 +333,7 @@ import Swatches from "vue-swatches";
 import bus from "@/bus";
 import "vue-swatches/dist/vue-swatches.css";
 import { SLineStyle } from "@saga-web/graph/lib";
+import { SItemStatus } from "@saga-web/big";
 import {
   uploadImg,
   queryGlsmsLocation,
@@ -437,6 +438,7 @@ export default {
       itemExplain: "", //图例说明 只针对石材铺装
       attrCards: [],
       spinning: false,
+      isEdit: false,
       getmajorId: "",
       InfoLocal:[]
     };
@@ -540,6 +542,7 @@ export default {
     },
     //设置缩小item为编辑状态
     OpenEditStatus() {
+      this.isEdit = !this.isEdit;
       bus.$emit("OpenEditStatus");
     },
     // 编辑图例说明
@@ -615,6 +618,13 @@ export default {
           newval.itemType == "Line" ||
           newval.itemType == "Image"
         ) {
+          setTimeout(() => {
+            if (Item.status == SItemStatus.Edit) {
+              this.isEdit = true;
+            } else {
+              this.isEdit = false;
+            }
+          }, 300)
           if (newval.itemType == "Image") {
             this.imageNum = Item.num;
             this.lengedName = Item.name;
@@ -732,6 +742,7 @@ export default {
         width: 26px !important;
         height: 26px !important;
         border-radius: 2px !important;
+        border: 1px solid #dcdcdc;
       }
     }
     .row-tit {

+ 48 - 1
src/components/edit/top_toolbar.vue

@@ -42,6 +42,23 @@
             <div class="ant-dropdown-link dropdown-flex" @click="e => e.preventDefault()">
               <div>
                 <img class="lock" :src="require(`./../../assets/images/t-format.png`)" alt />
+                <div>图层</div>
+              </div>
+              <a-icon type="caret-down" class="down-icon" />
+            </div>
+            <a-menu slot="overlay">
+              <a-menu-item :disabled='item.disable' v-for="item in orderOptions" :key="item.value" @click="changeOrderItem(item.value)">
+                <img style="width: 16px;margin-right: 5px;" :src="require(`./../../assets/images/`+item.img+`.png`)" alt />
+                <span>{{item.label}}</span>
+              </a-menu-item>
+            </a-menu>
+          </a-dropdown>
+        </li>
+        <li>
+          <a-dropdown :trigger="['click']">
+            <div class="ant-dropdown-link dropdown-flex" @click="e => e.preventDefault()">
+              <div>
+                <img class="lock" :src="require(`./../../assets/images/t-format.png`)" alt />
                 <div>对齐</div>
               </div>
               <a-icon type="caret-down" class="down-icon" />
@@ -95,7 +112,7 @@
 </template>
 <script>
 import bus from "@/bus";
-import { SGraphLayoutType } from "@saga-web/graph/lib";
+import { SGraphLayoutType, SOrderSetType } from "@saga-web/graph/lib";
 import systym from "./codeMapSystem.js";
 import { MessageBox } from "element-ui";
 export default {
@@ -154,6 +171,32 @@ export default {
           disable: true
         }
       ],
+      orderOptions:[//图层
+        {
+          value: SOrderSetType.Top,
+          label: "同类置顶",
+          img: "order-top",
+          disable:false,
+        },
+        {
+          value: SOrderSetType.Bottom,
+          label: "同类置底",
+          img: "order-bottom",
+          disable:false,
+        },
+        {
+          value: SOrderSetType.After,
+          label: "上移一层",
+          img: "order-after",
+          disable:false,
+        },
+        {
+          value: SOrderSetType.Before,
+          label: "下移一层",
+          img: "order-before",
+          disable:false,
+        },
+      ],
       scale: 0.5, //底图缩放比例
       initScale: 0.5, //初始 底图缩放比例
       baseScale: 1.0, //底图基础缩放比例,由底图加载完成后,传入进来
@@ -269,6 +312,10 @@ export default {
     changeAlignItem(val) {
       bus.$emit("changeAlignItem", val);
     },
+    // 图层顺序
+    changeOrderItem(val){
+      bus.$emit('changeOrderItem', val )
+    },
     // 撤销
     undo() {
       bus.$emit("changeUndo");

+ 14 - 13
src/components/mapClass/EditScence.ts

@@ -84,12 +84,12 @@ export class EditScence extends SGraphScene {
         super();
         // // 选择绑定选额item事件
         this.selectContainer.connect("listChange", this, this.listChange);
-        ItemColor.spaceColor = new SColor("#A4ABB22B")
-        ItemColor.wallColor = new SColor("#A7AEB3FF")
-        ItemColor.columnColor = new SColor("#A7AEB3FF")
-        ItemColor.virtualWallColor = new SColor("#A7AEB3FF")
-        ItemColor.selectColor = new SColor("#84A0BB2B")
-        ItemColor.spaceBorderColor = new SColor("#A7AEB3FF")
+        ItemColor.spaceColor = new SColor("#f0f0f0")
+        ItemColor.wallColor = new SColor("#d4d4d4")
+        ItemColor.columnColor = new SColor("#d4d4d4")
+        ItemColor.virtualWallColor = new SColor("#d4d4d4")
+        ItemColor.selectColor = new SColor("#f0f0f0")
+        ItemColor.spaceBorderColor = new SColor("#d4d4d4")
     }
     /** 绘制图例样式 */
     _legend: any | null = null;
@@ -176,7 +176,6 @@ export class EditScence extends SGraphScene {
         }
         const item = new SLineMarkerItem(null, data);
         item.status = SItemStatus.Create;
-        item.zOrder = ItemOrder.lineOrder;
         item.selectable = true;
         this.addItem(item);
         // this.Markers.push(item);
@@ -200,7 +199,6 @@ export class EditScence extends SGraphScene {
         //设置状态
         item.selectable = true;
         item.status = SItemStatus.Create;
-        item.zOrder = ItemOrder.polylineOrder
         this.addItem(item);
         item.connect("finishCreated", this, this.finishCreated);
         this.grabItem = item;
@@ -237,7 +235,6 @@ export class EditScence extends SGraphScene {
         //设置状态
         item.selectable = true;
         item.status = SItemStatus.Create;
-        item.zOrder = ItemOrder.polylineOrder
         this.addItem(item);
         // this.Relations.push(item);
         item.connect("finishCreated", this, this.finishCreated);
@@ -294,7 +291,6 @@ export class EditScence extends SGraphScene {
         Polylines.selectable = true;
         //设置状态
         Polylines.status = SItemStatus.Create;
-        Polylines.zOrder = ItemOrder.polygonOrder;
         // Polylines.moveable = true;
         this.addItem(Polylines);
         Polylines.connect("finishCreated", this, this.finishCreated);
@@ -380,7 +376,6 @@ export class EditScence extends SGraphScene {
             }
         }
         const item = new SImageMarkerItem(null, data);
-        item.zOrder = ItemOrder.imageOrder;
         item.selectable = true;
         item.moveable = true;
         this.addItem(item);
@@ -417,7 +412,6 @@ export class EditScence extends SGraphScene {
         item.moveTo(event.x, event.y);
         item.selectable = true;
         item.moveable = true;
-        item.zOrder = ItemOrder.textOrder;
         this.addItem(item);
         this.Markers.push(item);
         this.grabItem = null;
@@ -463,7 +457,6 @@ export class EditScence extends SGraphScene {
         this.cmd = 'choice';
         item.selectable = true;
         item.moveable = true;
-        item.zOrder = ItemOrder.markOrder;
         this.addItem(item);
         this.Nodes.push(item);
         this.grabItem = null;
@@ -850,6 +843,14 @@ export class EditScence extends SGraphScene {
     }
 
     /**
+     * 图层排序
+     * @param v
+     */
+    changeOrderItem(v: any): void {
+        this.selectContainer.setOrder(v);
+    }
+
+    /**
      * 提取item
      */
     extractItem(): void {

+ 3 - 2
src/lib/items/SFHFQZoneLegendItem.ts

@@ -1,5 +1,5 @@
 
-import { SGraphItem, SLineStyle } from "@saga-web/graph/lib";
+import { SGraphItem, SLineStyle, STextOrigin } from "@saga-web/graph/lib";
 import { Legend } from '../types/Legend';
 import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from "@saga-web/draw";
 import { STextItem } from '@saga-web/graph/lib';
@@ -120,8 +120,9 @@ export class SFHFQZoneLegendItem extends SPolygonItem {
      */
     constructor(parent: SGraphItem | null, data: Legend) {
         super(parent);
+        this.textItem.originPosition = STextOrigin.Centrum;
         this.textItem.isTransform = false;
-        this.zOrder = ItemOrder.polygonOrder;
+        this.zOrder = ItemOrder.polygonOrder - 0.00005;
         this.data = data;
         this.id = data.ID;
         this.name = data.Name;

+ 1 - 1
src/lib/items/SLineMarkerItem.ts

@@ -25,7 +25,7 @@ export class SLineMarkerItem extends SLineItem {
     set status(v: SItemStatus) {
         this._status = v;
         if (v == SItemStatus.Edit) {
-            this.zOrder = ItemOrder.markOrder;
+            this.zOrder = ItemOrder.highLightOrder;
         } else {
             this.zOrder = ItemOrder.lineOrder;
         }

+ 4 - 2
src/lib/items/SSCPZZoneLegendItem.ts

@@ -1,5 +1,5 @@
 
-import { SGraphItem, SLineStyle } from "@saga-web/graph/lib";
+import { SGraphItem, SLineStyle, STextOrigin } from "@saga-web/graph/lib";
 import { Legend } from '../types/Legend';
 import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from "@saga-web/draw";
 import { STextItem } from '@saga-web/graph/lib';
@@ -128,8 +128,9 @@ export class SSCPZZoneLegendItem extends SPolygonItem {
      */
     constructor(parent: SGraphItem | null, data: Legend) {
         super(parent);
+        this.textItem.originPosition = STextOrigin.Centrum;
         this.textItem.isTransform = false;
-        this.zOrder = ItemOrder.polygonOrder;
+        this.zOrder = ItemOrder.polygonOrder - 0.0005;
         this.data = data;
         this.id = data.ID;
         this.name = data.Name;
@@ -205,6 +206,7 @@ export class SSCPZZoneLegendItem extends SPolygonItem {
     toData(): any {
         this.data.Pos = { X: this.x, Y: this.y };
         this.data.Name = this.name;
+        console.log(this.zOrder);
         this.data.Properties.Zorder = this.zOrder;
         this.data.Properties.FillColor = this.fillColor.value;
         this.data.Properties.StrokeColor = this.strokeColor.value;

+ 2 - 1
src/lib/items/SZoneLegendItem.ts

@@ -1,5 +1,5 @@
 
-import { SGraphItem, SLineStyle } from "@saga-web/graph/lib";
+import { SGraphItem, SLineStyle, STextOrigin } from "@saga-web/graph/lib";
 import { Legend } from '../types/Legend';
 import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from "@saga-web/draw";
 import { STextItem } from '@saga-web/graph/lib';
@@ -120,6 +120,7 @@ export class SZoneLegendItem extends SPolygonItem {
      */
     constructor(parent: SGraphItem | null, data: Legend) {
         super(parent);
+        this.textItem.originPosition = STextOrigin.Centrum;
         this.textItem.isTransform = false;
         this.zOrder = ItemOrder.polygonOrder;
         this.data = data;