瀏覽代碼

fix:合并冲突

YaolongHan 4 年之前
父節點
當前提交
227c07b143

+ 1 - 0
.gitignore

@@ -1,6 +1,7 @@
 .DS_Store
 node_modules
 /dist
+/wandaEditer
 package-lock.json
 
 # local env files

+ 10 - 1
src/api/editer.js

@@ -1,6 +1,7 @@
 // 登录校验接口
 import httputils from '@/api/httputils'
 const testApi = '/serve/topology-wanda';
+const dataApi = '/data';
 // const testApi = '/serve'
 //获取图例分类结构
 export function queryByGroup(params) {
@@ -25,4 +26,12 @@ export function uploadImg({
     postParams
 }) {
     return httputils.postJson(`${testApi}/Picture/create`, postParams)
-}
+}
+//查询图元素类型信息
+export function getGraphElementType(params){
+    return httputils.postJson(`${testApi}/graphElement/type/query`, params)
+}
+//查询工程信息化tree数据
+export function querySystem(params){
+    return httputils.postJson(`${dataApi}/data/t_system_wzfl/query`, params)
+}

+ 5 - 3
src/components/baseEditer.vue

@@ -14,7 +14,8 @@ import { EditScence } from "./mapClass/EditScence";
 import bus from "@/bus";
 import { saveGroup, readGroup } from "@/api/editer.js";
 import { STopologyParser } from "./../lib/parsers/STopologyParser";
-import { uuid } from "@/components/mapClass/until";
+import { uuid } from "@/components/mapClass/until"
+import store from '../store'
 
 let fengmap = null;
 
@@ -51,6 +52,7 @@ export default {
     this.init();
     // 挂在bus
     this.getBus();
+    store.dispatch('getElementType',{PageSize:1000})
   },
   methods: {
     init() {
@@ -228,8 +230,8 @@ export default {
             if (t.data.Type == val.key) {
               return {
                 ID: uuid(),
-                Name: t.name,
-                GraphElementType: "Zone",
+                Name: val.name,
+                GraphElementType: val.properties.Type,
                 GraphElementId: "273d633cc5c54a4882794b34843d1a00",
                 AttachObjectIds: [],
                 Pos: { x: t.x, y: t.y },

+ 1 - 1
src/components/baseEditertest.vue

@@ -73,7 +73,7 @@ export default {
         new SPoint(0, 50)
       ];
       const Polylines = new SPolygonItem(null);
-      Polylines.setStatus = 3;
+      Polylines.status = 3;
       // Polylines.setPointList = PointList
       this.scene.addItem(Polylines);
       this.scene.grabItem = Polylines;

+ 2 - 2
src/components/baseEditerzy.vue

@@ -2,7 +2,7 @@
  * @Author: zhangyu
  * @Date: 2020-06-03 17:21:15
  * @Info: 
- * @LastEditTime: 2020-06-03 18:32:53
+ * @LastEditTime: 2020-06-20 14:33:27
 --> 
 <template>
   <div id="baseEditer">
@@ -83,7 +83,7 @@ export default {
         ]
       };
       const Polylines = new SPolygonItem(null);
-      Polylines.setStatus = 2;
+      Polylines.status = 2;
       this.scene.addItem(Polylines);
       this.scene.grabItem = Polylines;
     },

+ 2 - 2
src/components/edit/attr_select.vue

@@ -121,9 +121,9 @@
         <div class="row-tit">字号</div>
         <div class="grid-content">
           <a-input-number
-            v-model="lineWidth"
+            v-model="fontSize"
             :min="1"
-            @change="changeLineWidth"
+            @change="changeFont"
             style="width: 168px"
           />
         </div>

+ 4 - 1
src/components/edit/edit-dialog.vue

@@ -35,7 +35,7 @@
           </div>
         </div>
         <div class="tree">
-          <searchTree/>
+          <searchTree  @getTreeId="getTreeId"/>
         </div>
         <div class="checkbox">
           <a-checkbox-group @change="ChangeCheckbox">
@@ -122,6 +122,9 @@
             },
             pressEnter(e) {
                 console.log(e)
+            },
+          getTreeId(id){
+              console.log(id);
             }
         }
 

+ 7 - 2
src/components/edit/left_toolbar.vue

@@ -250,7 +250,8 @@ export default {
   },
   computed: {
     ...mapState({
-      GraphCategoryIds: "GraphCategoryIds"
+      GraphCategoryIds: "GraphCategoryIds",
+      TypeIdToGraphElement: "TypeIdToGraphElement"
     })
   },
   methods: {
@@ -322,7 +323,11 @@ export default {
     },
     getBus() {
       bus.$on("exportItem", data => {
-        this.data = data;
+        this.data = data.map(t => {
+          t.name = this.TypeIdToGraphElement[t.key].Name,
+          t.properties = this.TypeIdToGraphElement[t.key];
+          return t;
+        });
       });
     },
     pickUp(text, record, index) {

+ 59 - 92
src/components/edit/search_tree.vue

@@ -1,114 +1,81 @@
 <template>
   <div>
     <a-input-search style="margin: 10px;width: 90%" placeholder="搜索" @change="onChange" />
-    <a-tree
-        :expanded-keys="expandedKeys"
-        :auto-expand-parent="autoExpandParent"
-        :tree-data="gData"
-        @expand="onExpand"
-    >
-      <template slot="title" slot-scope="{ title }">
-        <span v-if="title.indexOf(searchValue) > -1">
-          {{ title.substr(0, title.indexOf(searchValue)) }}
-          <span style="color: #f50">{{ searchValue }}</span>
-          {{ title.substr(title.indexOf(searchValue) + searchValue.length) }}
-        </span>
-        <span v-else>{{ title }}</span>
-      </template>
-    </a-tree>
+    <el-tree
+            class="filter-tree"
+            :data="treeData"
+            :props="defaultProps"  :default-expand-all="false"
+            :filter-node-method="filterNode" highlight-current  @node-click="checkChange"
+            ref="tree">
+    </el-tree>
   </div>
 </template>
 
 <script>
-    const x = 3;
-    const y = 2;
-    const z = 1;
-    const gData = [];
+    import {querySystem} from "@/api/editer";
 
-    const generateData = (_level, _preKey, _tns) => {
-        const preKey = _preKey || '0';
-        const tns = _tns || gData;
-
-        const children = [];
-        for (let i = 0; i < x; i++) {
-            const key = `${preKey}-${i}`;
-            tns.push({ title: key, key, scopedSlots: { title: 'title' } });
-            if (i < y) {
-                children.push(key);
-            }
-        }
-        if (_level < 0) {
-            return tns;
-        }
-        const level = _level - 1;
-        children.forEach((key, index) => {
-            tns[index].children = [];
-            return generateData(level, key, tns[index].children);
-        });
-    };
-    generateData(z);
-
-    const dataList = [];
-    const generateList = data => {
-        for (let i = 0; i < data.length; i++) {
-            const node = data[i];
-            const key = node.key;
-            dataList.push({ key, title: key });
-            if (node.children) {
-                generateList(node.children);
-            }
-        }
-    };
-    generateList(gData);
-
-    const getParentKey = (key, tree) => {
-        let parentKey;
-        for (let i = 0; i < tree.length; i++) {
-            const node = tree[i];
-            if (node.children) {
-                if (node.children.some(item => item.key === key)) {
-                    parentKey = node.key;
-                } else if (getParentKey(key, node.children)) {
-                    parentKey = getParentKey(key, node.children);
-                }
-            }
-        }
-        return parentKey;
-    };
     export default {
         data() {
             return {
-                expandedKeys: [],
-                searchValue: '',
-                autoExpandParent: true,
-                gData,
+              treeData: [],
+              filterText: '',
+              defaultProps: {
+                children: 'children',
+                label: 'label'
+              }
             };
         },
         methods: {
-            onExpand(expandedKeys) {
-                this.expandedKeys = expandedKeys;
-                this.autoExpandParent = false;
+          onChange(e){
+            this.$refs.tree.filter(e.target.value);
+            if(e.target.value==''){
+              for(let i=0;i<this.$refs.tree.$children.length;i++){
+                this.$refs.tree.$children[i].expanded = false;
+              }
+            }
+          },
+            filterNode(value, data) {
+              if (!value) return true;
+              return data.label.indexOf(value) !== -1;
             },
-            onChange(e) {
-                const value = e.target.value;
-                const expandedKeys = dataList
-                    .map(item => {
-                        if (item.title.indexOf(value) > -1) {
-                            return getParentKey(item.key, gData);
-                        }
-                        return null;
+            querySystem(){
+              querySystem().then(res =>{
+                if(res.result == 'success') {
+                  let data = res.data;
+                  (function recursion(newObj) {
+                    newObj.map(item=>{
+                      item.label = item.name;
+                      if(item.children){
+                        recursion(item.children);
+                      }
                     })
-                    .filter((item, i, self) => item && self.indexOf(item) === i);
-                Object.assign(this, {
-                    expandedKeys,
-                    searchValue: value,
-                    autoExpandParent: true,
-                });
+                  })(data)
+
+                  this.treeData = data;
+                }else{
+                  this.$message.error('获取失败');
+                }
+              })
+            },
+            checkChange(data) {
+              this.$emit('getTreeId',data.id)
             },
         },
+      mounted() {
+          this.querySystem();
+      }
     };
 </script>
 
-<style scoped>
-
+<style scoped lang="less">
+.filter-tree{
+  padding: 0 10px;
+  /deep/ .el-tree-node__content{
+    height:38px;
+  }
+  /deep/.el-tree-node:focus >.el-tree-node__content {
+    background-color: #E1F2FF!important;
+    color: #0091FF!important;
+  }
+}
 </style>

+ 2 - 1
src/components/mapClass/EditScence.ts

@@ -205,6 +205,7 @@ export class EditScence extends SGraphScene {
             Pos: { X: event.x, Y: event.y },
             OutLine: [[new SPoint(event.x, event.y)]],
             Properties: {
+                Text: "区域类型",
                 strokeColor: this._legend.Color,
                 fillColor: this._legend.FillColor,
                 LineDash: this._legend.LineDash,
@@ -216,7 +217,7 @@ export class EditScence extends SGraphScene {
         const Polylines = new SZoneLegendItem(null, LegendData);
         Polylines.selectable = true;
         //设置状态
-        Polylines.setStatus = SItemStatus.Create;
+        Polylines.status = SItemStatus.Create;
         Polylines.zOrder = ItemOrder.polygonOrder;
         // Polylines.moveable = true;
         this.addItem(Polylines);

+ 31 - 27
src/components/mapClass/SPolygonItem.ts

@@ -59,13 +59,13 @@ export class SPolygonItem extends SGraphItem {
     /** 是否闭合    */
     closeFlag: boolean = false;
     // 当前状态
-    _status: number = SItemStatus.Normal;
+    protected _status: number = SItemStatus.Normal;
     // 获取当前状态
-    get getStatus(): number {
+    get status(): SItemStatus {
         return this._status;
     }
     // 编辑当前状态
-    set setStatus(value: number) {
+    set status(value: SItemStatus) {
         this._status = value;
         // 如果状态为show则需清栈
         if (value == SItemStatus.Normal) {
@@ -116,7 +116,7 @@ export class SPolygonItem extends SGraphItem {
     /** 场景像素  */
     private isAlt: boolean = false;
     /** undoredo堆栈 */
-    private undoStack: SUndoStack | null = new SUndoStack();
+    protected undoStack: SUndoStack | null = new SUndoStack();
 
     /**
     * 构造函数
@@ -347,12 +347,16 @@ export class SPolygonItem extends SGraphItem {
                         }
                     }
                 }
-                // 如果再线上则为新增
+                // 判断是否有
                 if (len.Point) {
+                    console.log(index,len.Point);
+                    // 点在了多边形的边上
                     if (len.MinDis <= this.scenceLen) {
                         this.pointList.splice(index + 1, 0, len.Point);
                         // 记录新增顶点操作记录压入堆栈
-                        this.recordAction(SGraphPointListInsert, [this.pointList, len.Point, index + 1])
+                        this.recordAction(SGraphPointListInsert, [this.pointList, len.Point, index + 1]);
+                    } else { //没点在多边形边上也没点在多边形顶点上
+                        super.onMouseDown(event);
                     }
                 }
             } else {
@@ -385,7 +389,7 @@ export class SPolygonItem extends SGraphItem {
      * 执行取消操作执行
      */
     undo(): void {
-        if (this._status == SItemStatus.Normal) {
+        if (this.status == SItemStatus.Normal) {
             return
         }
         if (this.undoStack) {
@@ -397,7 +401,7 @@ export class SPolygonItem extends SGraphItem {
      * 执行重做操作执行
      */
     redo(): void {
-        if (this._status == SItemStatus.Normal) {
+        if (this.status == SItemStatus.Normal) {
             return
         }
         if (this.undoStack) {
@@ -416,11 +420,11 @@ export class SPolygonItem extends SGraphItem {
      */
     onDoubleClick(event: SMouseEvent): boolean {
         // 如果位show状态 双击改对象则需改为编辑状态
-        if (SItemStatus.Normal == this._status) {
-            this._status = SItemStatus.Edit;
+        if (SItemStatus.Normal == this.status) {
+            this.status = SItemStatus.Edit;
             this.grabItem(this);
-        } else if (SItemStatus.Edit == this._status) {
-            this._status = SItemStatus.Normal;
+        } else if (SItemStatus.Edit == this.status) {
+            this.status = SItemStatus.Normal;
             this.releaseItem();
             if (this.undoStack) {
                 this.undoStack.clear()
@@ -439,13 +443,13 @@ export class SPolygonItem extends SGraphItem {
      */
 
     onKeyDown(event: KeyboardEvent): boolean {
-        if (this._status == SItemStatus.Normal) {
+        if (this.status == SItemStatus.Normal) {
             return false;
-        } else if (this._status == SItemStatus.Create) {
+        } else if (this.status == SItemStatus.Create) {
             if (event.code == 'Enter') {
                 // 当顶点大于二个时才又条件执行闭合操作并清空堆栈
                 if (this.pointList.length > 2) {
-                    this._status = SItemStatus.Normal;
+                    this.status = SItemStatus.Normal;
                     //3 传递完成事件状态
                     this.$emit('finishCreated')
                     //1 grabItem 置为null
@@ -456,7 +460,7 @@ export class SPolygonItem extends SGraphItem {
                     }
                 }
             }
-        } else if (this._status == SItemStatus.Edit) {
+        } else if (this.status == SItemStatus.Edit) {
             if (event.key == 'Alt') {
                 this.isAlt = true;
             }
@@ -473,7 +477,7 @@ export class SPolygonItem extends SGraphItem {
      * @return	boolean
      */
     onKeyUp(event: KeyboardEvent): void {
-        if (this._status == SItemStatus.Edit) {
+        if (this.status == SItemStatus.Edit) {
             if (event.key == 'Alt') {
                 this.isAlt = false;
             }
@@ -489,13 +493,13 @@ export class SPolygonItem extends SGraphItem {
      */
     onMouseDown(event: SMouseEvent): boolean {
         // 如果状态为编辑状态则添加点
-        if (this._status == SItemStatus.Create) {
+        if (this.status == SItemStatus.Create) {
             // 新增顶点
             this.insertPoint(event.x, event.y);
             // 记录新增顶点操作记录压入堆栈
             let pos = new SPoint(event.x, event.y);
             this.recordAction(SGraphPointListInsert, [this.pointList, pos]);
-        } else if (this._status == SItemStatus.Edit) {
+        } else if (this.status == SItemStatus.Edit) {
             // 对多边形数组做编辑操作
             this.editPolygonPoint(event);
         } else {
@@ -535,12 +539,12 @@ export class SPolygonItem extends SGraphItem {
      */
 
     onMouseMove(event: SMouseEvent): boolean {
-        if (this._status == SItemStatus.Create) {
+        if (this.status == SItemStatus.Create) {
             this.lastPoint = new SPoint
             this.lastPoint.x = event.x;
             this.lastPoint.y = event.y;
             this.update();
-        } else if (this._status == SItemStatus.Edit) {
+        } else if (this.status == SItemStatus.Edit) {
             if (-1 != this.curIndex) {
                 this.pointList[this.curIndex].x = event.x;
                 this.pointList[this.curIndex].y = event.y;
@@ -561,7 +565,7 @@ export class SPolygonItem extends SGraphItem {
      * @return	boolean
      */
     onMouseUp(event: SMouseEvent): boolean {
-        if (this._status == SItemStatus.Edit) {
+        if (this.status == SItemStatus.Edit) {
             if (-1 != this.curIndex) {
                 const pos = new SPoint(this.pointList[this.curIndex].x, this.pointList[this.curIndex].y)
                 this.recordAction(SGraphPointListUpdate, [this.pointList, this.curPoint, pos, this.curIndex])
@@ -592,12 +596,12 @@ export class SPolygonItem extends SGraphItem {
      */
     cancelOperate(): void {
         // 当状态为展示状态
-        if (this._status == SItemStatus.Create) {
+        if (this.status == SItemStatus.Create) {
             // 闭合多边形
             this.parent = null
-        } else if (this._status == SItemStatus.Edit) {
+        } else if (this.status == SItemStatus.Edit) {
             // 编辑状态
-            this._status = SItemStatus.Normal
+            this.status = SItemStatus.Normal
         }
         this.update()
     } // Function cancelOperate()
@@ -660,10 +664,10 @@ export class SPolygonItem extends SGraphItem {
     onDraw(painter: SPainter): void {
         this.scenceLen = painter.toPx(this.len)
         // 当状态为展示状态
-        if (this._status == SItemStatus.Normal) {
+        if (this.status == SItemStatus.Normal) {
             // 闭合多边形
             this.drawShowPolygon(painter, this.pointList);
-        } else if (this._status == SItemStatus.Create) {
+        } else if (this.status == SItemStatus.Create) {
             // 创建状态
             this.drawCreatePolygon(painter, this.pointList)
         } else {

+ 66 - 6
src/lib/items/SZoneLegendItem.ts

@@ -5,6 +5,7 @@ import { Legend } from '../types/Legend';
 import { SPainter, SColor, SFont, SPoint } from "@saga-web/draw";
 import { STextItem } from '@saga-web/graph/lib';
 import { hexify } from "@/components/mapClass/until"
+import { SItemStatus, ItemOrder } from '@saga-web/big/lib';
 /**
  * 图例节点Item(区域类型)
  *
@@ -36,6 +37,39 @@ export class SZoneLegendItem extends SPolygonItem {
     set font(v: SFont) {
         this.textItem.font = v
     }
+
+    get status(): SItemStatus {
+        return this._status;
+    }
+    // 编辑当前状态
+    set status(value: SItemStatus) {
+        this._status = value;
+        // 如果状态为show则需清栈
+        if (value == SItemStatus.Normal) {
+            // 切换显示状态显示文本
+            this.showText = true;
+            // 切换显示状态不可移动文本
+            this.textItem.moveable = false;
+
+            if (this.undoStack) {
+                this.undoStack.clear();
+            }
+        } else if (value == SItemStatus.Edit) {
+            // 切换编辑状态显示文本
+            this.showText = true;
+            // 切换编辑状态可移动文本
+            this.textItem.moveable = true;
+        } else if (value == SItemStatus.Create) {
+            // 切换创建状态不显示文本
+            this.showText = false;
+            // 切换创建状态不可移动文本
+            this.textItem.moveable = false;
+        }
+        this.update();
+        console.log("多边形item", this);
+        console.log("文本item", this.textItem);
+    };
+
     /** 是否显示文字  */
     _showText: boolean = true;
     get showText(): boolean {
@@ -63,20 +97,24 @@ export class SZoneLegendItem extends SPolygonItem {
         super(parent);
         this.data = data;
         this.id = data.ID;
+        this.name = data.Name;
+        this.font = new SFont("sans-serif", 2);
         if (data) {
             this.setPointList = [];
             let setPointList: SPoint[];
             if (data.OutLine) {
-                if (data.OutLine[0][0] instanceof SPoint) {
-                    this.setPointList = data.OutLine[0];
+                if (data.OutLine[0] instanceof SPoint) {
+                    this.setPointList = data.OutLine;
                 } else {
-                    setPointList = data.OutLine[0].map(i => {
+                    setPointList = data.OutLine.map(i => {
                         return (new SPoint(i.X, i.Y))
                     })
                     this.setPointList = setPointList;
                 }
             }
-
+            if (data.Properties.Text) {
+                this.text = data.Properties.Text;
+            }
             // 设置线宽
             if (data.Properties.LineWidth) {
                 this.lineWidth = data.Properties.LineWidth
@@ -87,17 +125,39 @@ export class SZoneLegendItem extends SPolygonItem {
             if (data.Properties.fillColor) {
                 this.fillColor = data.Properties.fillColor.includes('#') ? new SColor(data.Properties.fillColor) : new SColor(hexify(data.Properties.fillColor))
             }
+            if (data.Properties.TextPos) {
+                this.textItem.moveTo(data.Properties.TextPos.x, data.Properties.TextPos.y);
+            }
             //    if( data.Properties.LineDash){
             //     this.LineDash =this._legend.Properties.LineDash
             //    }
-
         }
+        // 监听多边形创建完成事件,并动态计算文本位置
+        this.connect("finishCreated",this, () => {
+            // 计算文本位置
+            let x: number = this.getPointList.reduce((pre, cur, index, arr) => {
+                                return pre + (cur.x / arr.length)
+                            }, 0),
+                y: number = this.getPointList.reduce((pre, cur, index, arr) => {
+                                return pre + (cur.y / arr.length)
+                            }, 0);
+            this.textItem.moveTo(x, y);
+        })
     }
+
     toData(): any {
+        this.data.Pos = {X: this.x, Y: this.y};
+        this.data.Properties.Text = this.text;
         this.data.Properties.fillColor = this.fillColor.value;
         this.data.Properties.strokeColor = this.strokeColor.value;
         this.data.Properties.lineWidth = this.lineWidth;
-        this.data.OutLine = [this.getPointList];
+        this.data.OutLine = this.getPointList.map(pos => {
+            return {
+                X: pos.x,
+                Y: pos.y
+            }
+        });
+        this.data.Properties.TextPos = this.textItem.pos;
         return this.data;
     }
 

+ 1 - 1
src/lib/types/Legend.ts

@@ -55,7 +55,7 @@ export interface Legend {
     /** 锚点List  */
     AnchorList?: Anchor[];
     /** 轮廓线  */
-    OutLine?: Point[][];
+    OutLine?: Point[];
     /** 由应用自己定义  */
     Properties?: any;
 } // Interface Legend

+ 12 - 6
src/router/index.ts

@@ -1,23 +1,29 @@
 import Vue from 'vue'
 import VueRouter, { RouteConfig } from 'vue-router'
-import editer from '../views/editer.vue'
-import drafts from '../views/drafts.vue'
+const Editer = () => import('../views/editer.vue')
+const Drafts = () => import('../views/drafts.vue')
 Vue.use(VueRouter)
 
-  const routes: Array<RouteConfig> = [
+const routes: Array<RouteConfig> = [
   {
     path: '/',
+    redirect: '/editer'
+  },
+  {
+    path: '/editer',
     name: 'editer',
-    component: editer
+    component: Editer
   },
   {
     path: '/drafts',
     name: 'drafts',
-    component: drafts
+    component: Drafts
   }
 ]
-
+// 使用histroy模式
 const router = new VueRouter({
+  mode: 'history',
+  base: process.env.BASE_URL,
   routes
 })
 

+ 16 - 1
src/store/index.ts

@@ -1,15 +1,30 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
+import { getGraphElementType } from "@/api/editer.js"
 
 Vue.use(Vuex)
 
 export default new Vuex.Store({
   state: {
-    GraphCategoryIds: ['NTXT'] //系统类型
+    GraphCategoryIds: ['NTXT'], //系统类型
+    TypeIdToGraphElement:{}, //typeid到图例元素的映射
   },
   mutations: {
+    TypeIdToGraphElement(state,data){
+      if (data.length) {
+        state.TypeIdToGraphElement = {}
+        data.forEach(t => {
+          state.TypeIdToGraphElement[t.Id] = t;
+        })
+      }
+    }
   },
   actions: {
+    getElementType({ commit }, params) {
+      getGraphElementType(params).then(res => {
+        commit('TypeIdToGraphElement',res.Content)
+      })
+    }
   },
   modules: {
   }

+ 13 - 0
vue.config.js

@@ -22,6 +22,14 @@ module.exports = {
                     "^/serve": "",
                 },
             },
+            "/data": {
+                target: "http://192.168.200.87:9003",
+                changeOrigin: true,
+                secure: false,
+                pathRewrite: {
+                    "^/data": "",
+                },
+            },
         }
     },
     chainWebpack: (config) => {
@@ -36,4 +44,9 @@ module.exports = {
     },
     lintOnSave: false,
     // publicPath: '/dist',
+    publicPath: '/wandaEditer',
+    // 打包名称
+    outputDir: 'wandaEditer',
+    // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
+    assetsDir: "static",
 }