Browse Source

Merge branch 'master' into dev_duxiangyu

duxiangyu 3 years ago
parent
commit
4158c2ca3c

+ 168 - 15
src/components/systemGraph/edit.vue

@@ -74,7 +74,9 @@
           class="imgLeftTop"
           src="../../assets/images/systemGraph/text.svg"
         /> -->
-        <span class="resetBtn" v-if="operState == 1">重置为自动出图样式</span>
+        <span class="resetBtn" v-if="operState == 1" @click="resetGraph"
+          >重置为自动出图样式</span
+        >
       </div>
     </div>
     <div class="secondRow">
@@ -131,7 +133,11 @@
         </div>
       </div>
       <div class="graphRegion">
-        <graph ref="graphc" @click="graphClickCall"></graph>
+        <graph
+          ref="graphc"
+          @click="graphClickCall"
+          @closeright="closeRight"
+        ></graph>
       </div>
       <div class="rightDetail" v-if="selGraphPartType != -1">
         <div v-if="selGraphPartType == 1">
@@ -190,7 +196,7 @@
           </div>
           <div class="detailSplitLine"></div>
           <div class="title titleMargin">连接关系</div>
-          <div class="titleMargin">
+          <div class="titleMargin lianjieguanxi">
             <el-select
               v-model="selLineStartPoint"
               value-key="id"
@@ -206,7 +212,7 @@
               </el-option>
             </el-select>
           </div>
-          <div class="titleMargin">
+          <div class="titleMargin lianjieguanxi">
             <el-select
               v-model="selLineEndPoint"
               value-key="id"
@@ -225,9 +231,16 @@
         </div>
         <div v-if="selGraphPartType == 3">
           <div class="title titleMargin">文字</div>
-          <div class="titleText eqName" v-text="selText.text">1#进线柜</div>
+          <div class="titleText eqName">
+            <span v-text="selText.text" v-if="operState == 0"></span>
+            <el-input
+              v-model="selText.text"
+              v-if="operState == 1"
+              @change="textContentChange"
+            ></el-input>
+          </div>
           <div class="detailSplitLine"></div>
-          <div class="title titleMargin">
+          <div class="title titleMargin" v-if="operState == 0">
             <span>x</span>
             <span
               class="coridTitleText titleText"
@@ -241,6 +254,28 @@
               >100</span
             >
           </div>
+          <div class="title titleMargin" v-if="operState == 1">
+            <div>
+              <span>x</span>
+              <div class="textCrodDiv" v-if="operState == 1">
+                <el-input
+                  v-model="(selText.absolutePosition || {}).x"
+                  @change="textXChange"
+                >
+                </el-input>
+              </div>
+            </div>
+            <div style="margin-top: 10px">
+              <span>y</span>
+              <div class="textCrodDiv" v-if="operState == 1">
+                <el-input
+                  v-model="(selText.absolutePosition || {}).y"
+                  @change="textYChange"
+                >
+                </el-input>
+              </div>
+            </div>
+          </div>
           <div class="detailSplitLine"></div>
           <div class="title titleMargin">字体样式</div>
           <div class="titleMargin fontSizeContainer">
@@ -266,6 +301,7 @@
           <div class="title titleMargin">字体颜色</div>
           <div class="titleMargin fontColor">
             <input
+              v-if="operState == 1"
               type="color"
               v-model="fontColor"
               @change="selFontColorChange"
@@ -276,6 +312,7 @@
           <div class="title titleMargin">背景颜色</div>
           <div class="titleMargin fontColor">
             <input
+              v-if="operState == 1"
               type="color"
               v-model="fontBackColor"
               @change="selFontBackColorChange"
@@ -447,9 +484,9 @@ export default {
           id:'',
           text:'',
           style:{
-            color: '',
+            fontColor: '',
             fontSize: '',
-            backGround:'',
+            backColor:'',
             fontWeight:1
           },
           //文本的绝对位置
@@ -514,6 +551,63 @@ export default {
         fontColor: this.fontBackColor,
       });
     },
+    //文本X轴坐标变化后事件
+    textXChange: function () {
+      this.selText.absolutePosition.x = parseFloat(
+        this.selText.absolutePosition.x
+      );
+      this.selText.oldAbsolutePosition.x = parseFloat(
+        this.selText.oldAbsolutePosition.x
+      );
+      var xChange =
+        this.selText.absolutePosition.x - this.selText.oldAbsolutePosition.x;
+      this.selText.oldAbsolutePosition.x = this.selText.absolutePosition.x;
+      //更新graphInfo中的数据
+      this.updateGraphInfo(3, 6, {
+        id: this.selText.id,
+        text: { xChange: xChange, yChange: 0 },
+      });
+      //更新图形以及图形数据源
+      this.$refs.graphc.updateDataAndGraph(3, 6, {
+        id: this.selText.id,
+        text: { xChange: xChange, yChange: 0 },
+      });
+    },
+    //文本Y轴坐标变化后事件
+    textYChange: function () {
+      this.selText.absolutePosition.y = parseFloat(
+        this.selText.absolutePosition.y
+      );
+      this.selText.oldAbsolutePosition.y = parseFloat(
+        this.selText.oldAbsolutePosition.y
+      );
+      var yChange =
+        this.selText.absolutePosition.y - this.selText.oldAbsolutePosition.y;
+      this.selText.oldAbsolutePosition.y = this.selText.absolutePosition.y;
+      //更新graphInfo中的数据
+      this.updateGraphInfo(3, 6, {
+        id: this.selText.id,
+        text: { xChange: 0, yChange: yChange },
+      });
+      //更新图形以及图形数据源
+      this.$refs.graphc.updateDataAndGraph(3, 6, {
+        id: this.selText.id,
+        text: { xChange: 0, yChange: yChange },
+      });
+    },
+    //文本内容改变后的事件
+    textContentChange: function () {
+      //更新graphInfo中的数据
+      this.updateGraphInfo(3, 7, {
+        id: this.selText.id,
+        text: { content: this.selText.text },
+      });
+      //更新图形以及图形数据源
+      this.$refs.graphc.updateDataAndGraph(3, 7, {
+        id: this.selText.id,
+        text: { content: this.selText.text },
+      });
+    },
     //删除选择的文本节点
     delText: function () {
       this.$refs.graphc.updateDataAndGraph(3, 5, { id: this.selText.id });
@@ -565,8 +659,8 @@ export default {
             _this.fontSizeArr.filter((_c) => {
               return _c.id == _this.selText.style.fontSize;
             })[0] || {};
-          this.fontColor = this.selText.style.color;
-          this.fontBackColor = this.selText.style.backGround;
+          this.fontColor = this.selText.style.fontColor;
+          this.fontBackColor = this.selText.style.backColor;
           break;
       }
 
@@ -578,6 +672,14 @@ export default {
         });
       }
     },
+    //关闭右侧详情框
+    closeRight: function () {
+      var _this = this;
+      this.selGraphPartType = -1;
+      Vue.nextTick(function () {
+        _this.$refs.graphc.resetDraw();
+      });
+    },
     /**
      * 保存图纸按钮事件
      */
@@ -617,9 +719,13 @@ export default {
      * 放弃编辑按钮事件
      */
     cancelClick: function () {
+      var _this = this;
       this.graphInfo = JSON.parse(JSON.stringify(this.graphOriginInfo));
-      this.$refs.graphc.drawEntry(this.graphInfo);
       this.operState = 0;
+      this.selGraphPartType = -1;
+      Vue.nextTick(function () {
+        _this.$refs.graphc.drawEntry(_this.graphInfo);
+      });
     },
     //上架系统图
     publishGraph: async function () {
@@ -736,8 +842,8 @@ export default {
     /**
      * 更新graphInfo中的数据
      * dataType 1 设备;  2 线;  3 文本
-     * operType 1 移除设备节点;  2 更新文本字体大小;  3 更新文本颜色;  4 更新文本背景色;  5 移除文本节点
-     * exprObj 扩展数据,支持:{id:'数据id'}
+     * operType 1 移除设备节点;  2 更新文本字体大小;  3 更新文本颜色;  4 更新文本背景色;  5 移除文本节点;  6 修改文本位置;  7 修改文本内容
+     * exprObj 扩展数据,支持:{id:'数据id',text:{xChange:1 新的绝对坐标减去旧的绝对坐标得出的值 ,yChange:1 新的绝对坐标减去旧的绝对坐标得出的值,content:'文本内容'}}
      */
     updateGraphInfo: function (dataType, operType, exprObj) {
       var _this = this;
@@ -765,11 +871,20 @@ export default {
                 _dataObj.label.style.color = _this.fontColor;
                 break;
               case 4:
-                _dataObj.label.style.backGround = _this.fontBackColor;
+                _dataObj.label.style.backColor = _this.fontBackColor;
                 break;
               case 5:
                 _dataObj.label.content = "";
                 break;
+              case 6:
+                _dataObj.label.location.x =
+                  _dataObj.label.location.x + exprObj.text.xChange;
+                _dataObj.label.location.y =
+                  _dataObj.label.location.y + exprObj.text.yChange;
+                break;
+              case 7:
+                _dataObj.label.content = exprObj.text.content;
+                break;
             }
 
             return dataArr;
@@ -785,6 +900,34 @@ export default {
         return null;
       }
     },
+    //重置为自动出图样式点击事件
+    resetGraph: async function () {
+      this.$confirm("重置后将不可进行恢复, 是否继续?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(async () => {
+          this.fullscreenLoading = true;
+          this.selGraphPartType = -1;
+          var resultObj = await sysGraphController.resetData({
+            id: this.diagramId,
+            groupCode: this.project.groupCode,
+            projectId: this.project.id,
+          });
+          if (resultObj.result != logicConfig.resultObj.success) {
+            this.fullscreenLoading = false;
+            Message.error("重置失败:" + resultObj.message);
+            return;
+          }
+          this.graphOriginInfo = JSON.parse(JSON.stringify(resultObj.data));
+          this.graphInfo = resultObj.data;
+          this.$refs.graphc.drawEntry(this.graphInfo);
+          this.fullscreenLoading = false;
+          Message.success("重置成功");
+        })
+        .catch(() => {});
+    },
   },
   created() {
     this.operState = !this.$route.query.ost
@@ -1009,6 +1152,16 @@ export default {
   margin-left: 23px;
 }
 
+#divGraphEdit .rightDetail .textCrodDiv {
+  display: inline-block;
+  width: 158px;
+  margin-left: 10px;
+}
+
+#divGraphEdit .rightDetail .textCrodDiv .el-input__inner {
+  padding-left: 20px;
+}
+
 #divGraphEdit .rightDetail .scaleTitleText {
   margin-left: 6px;
 }
@@ -1035,7 +1188,7 @@ export default {
   line-height: 32px;
 }
 
-#divGraphEdit .rightDetail .el-input__inner {
+#divGraphEdit .rightDetail .lianjieguanxi .el-input__inner {
   padding-left: 42px;
 }
 

+ 79 - 31
src/components/systemGraph/graph.vue

@@ -57,9 +57,9 @@ export default {
           id:'',
           text:'',
           style:{
-            color: '',
+            fontColor: '',
             fontSize: '',
-            backGround:'',
+            backColor:'',
             fontWeight:1
           },
           //文本的绝对位置
@@ -95,6 +95,8 @@ export default {
         //上一个鼠标位置信息
         prevMousePosition: {},
       },
+      //是否是点击的图形上的元素
+      isClickGraphNode: false,
     };
   },
   computed: {},
@@ -143,7 +145,21 @@ export default {
           //backgroundColor: "0xffffff",
         });
         pixiApp.renderer.autoResize = true;
+
+        pixiApp.view.addEventListener("click", (event) => {
+          //是点击的图形上元素节点冒泡上来时什么也不坐
+          if (_this.isClickGraphNode == true) {
+            _this.isClickGraphNode = false;
+            return;
+          }
+          //关闭右侧详情框
+          this.$emit("closeright");
+        });
         pixiContainer.appendChild(pixiApp.view);
+        // pixiApp.stage.interactive = true;
+        // pixiApp.view.on("click", (event) => {
+        //   alert(1);
+        // });
         _this.pixiApp = pixiApp;
       } else pixiApp = _this.pixiApp;
 
@@ -175,6 +191,7 @@ export default {
         //启用事件
         graphicsRect.interactive = true;
         graphicsRect.on("click", (event) => {
+          _this.isClickGraphNode = true;
           _this.clickEventCall(event, 1);
         });
 
@@ -211,7 +228,7 @@ export default {
       //文本
       _this.labelArr.forEach((_labelObj) => {
         var pixiTextStyle = new PIXI.TextStyle({
-          fill: _labelObj.style.color,
+          fill: _labelObj.style.fontColor,
           fontSize: _labelObj.style.fontSize,
           fontWeight: _labelObj.style.fontWeight,
           // stroke: "#ffffff",
@@ -230,6 +247,7 @@ export default {
         //启用事件
         textInstance.interactive = true;
         textInstance.on("click", (event) => {
+          _this.isClickGraphNode = true;
           _this.clickEventCall(event, 3);
         });
         pixiApp.stage.addChild(textInstance);
@@ -242,24 +260,29 @@ export default {
         lineInstance.lineStyle(_cLine.style.lineWidth, lineColor, 1, 0, false);
         lineInstance.name = _cLine.id;
 
-        var _newStart = _this.convertCoordToLeftOrigina({
-          x: _cLine.path[0].x,
-          y: _cLine.path[0].y,
+        var _movePath = _cLine.path[0];
+        let _newMove = _this.convertCoordToLeftOrigina({
+          x: _movePath.x,
+          y: _movePath.y,
         });
+        lineInstance.moveTo(_newMove.x, _newMove.y);
 
-        var _newEnd = _this.convertCoordToLeftOrigina({
-          x: _cLine.path[1].x,
-          y: _cLine.path[1].y,
-        });
+        for (let i = 1; i < _cLine.path.length; i = i + 1) {
+          let _toPath = _cLine.path[i];
+          let _newTo = _this.convertCoordToLeftOrigina({
+            x: _toPath.x,
+            y: _toPath.y,
+          });
 
-        lineInstance.moveTo(_newStart.x, _newStart.y);
-        lineInstance.lineTo(_newEnd.x, _newEnd.y);
+          lineInstance.lineTo(_newTo.x, _newTo.y);
+        }
 
         //设置点击范围,不然click事件不会触发
         lineInstance.hitArea = lineInstance.getBounds();
         //启用事件
         lineInstance.interactive = true;
         lineInstance.on("click", (event) => {
+          _this.isClickGraphNode = true;
           _this.clickEventCall(event, 2);
         });
 
@@ -309,14 +332,14 @@ export default {
             _labelObj.id = _labelObj.id || Math.random().toString();
 
             let _style = _labelObj.style || {};
-            _style.color =
-              _style.color ||
+            _style.fontColor =
+              _style.fontColor ||
               window.__systemConf.systemGraph.peiDian.text.color;
             _style.fontSize =
               _style.fontSize ||
               window.__systemConf.systemGraph.peiDian.text.size;
-            _style.backGround =
-              _style.backGround ||
+            _style.backColor =
+              _style.backColor ||
               window.__systemConf.systemGraph.peiDian.text.backGround;
             _style.fontWeight =
               _style.fontWeight ||
@@ -330,14 +353,13 @@ export default {
             labelArr.push({
               id: _labelObj.id,
               text: _labelObj.content,
-              style: {
-                color: _style.color,
-                fontSize: _style.fontSize,
-                backGround: _style.backGround,
-                fontWeight: _style.fontWeight,
-              },
+              style: _style,
               //文本的绝对位置
               absolutePosition: textNewAbsolutePosition,
+              //旧的绝对位置,用于文本位置调整
+              oldAbsolutePosition: JSON.parse(
+                JSON.stringify(textNewAbsolutePosition)
+              ),
             });
 
             _labelObj.style = _style;
@@ -408,6 +430,25 @@ export default {
           _data.id = _data.id || _data.dataObjectId;
           let lineDefaultStyle = window.__systemConf.systemGraph.peiDian.line;
 
+          var pathArr = [];
+          (_data.locationPath || []).forEach((_c1) => {
+            _c1.forEach((_c2) => {
+              pathArr.push({
+                x: _c2.x,
+                y: _c2.y,
+              });
+            });
+          });
+          lineArr.push({
+            id: _data.id,
+            path: pathArr,
+            style: {
+              lineWidth: lineDefaultStyle.width,
+              lineColor: lineDefaultStyle.color,
+            },
+          });
+          return;
+
           var pathArr = eachPathArr(_data.locationPath || [], []);
 
           lineArr.push({
@@ -557,6 +598,7 @@ export default {
      * type 1 设备;  2 线;  3 文本
      */
     clickEventCall: function (event, type) {
+      event.stopPropagation();
       var graphInstance = event.target || event.currentTarget;
       var dataId = graphInstance.name;
       var dataArr =
@@ -604,13 +646,10 @@ export default {
     /**
      * 更新graphInfo中的数据
      * dataType 1 设备;  2 线;  3 文本
-     * operType 1 移除设备节点;  2 更新文本字体大小;  3 更新文本颜色;  4 更新文本背景色;  5 移除文本节点
-     * exprObj 扩展数据,支持:{id:'数据id',fontSize:'字体大小',fontColor:'文本颜色',fontBackColor:'文本背景色'}
+     * operType 1 移除设备节点;  2 更新文本字体大小;  3 更新文本颜色;  4 更新文本背景色;  5 移除文本节点  6 修改文本位置;  7 修改文本内容
+     * exprObj 扩展数据,支持:{id:'数据id',fontSize:'字体大小',fontColor:'文本颜色',fontBackColor:'文本背景色',text:{xChange:1 新的绝对坐标减去旧的绝对坐标得出的值 ,yChange:1 新的绝对坐标减去旧的绝对坐标得出的值,content:'文本内容'}}
      */
     updateDataAndGraph: function (dataType, operType, exprObj) {
-      // fill: _labelObj.style.color,
-      //     fontSize: _labelObj.style.fontSize,
-      //     fontWeight: _labelObj.style.fontWeight,
       var dataArr =
         dataType == 1
           ? this.nodeArr
@@ -636,14 +675,23 @@ export default {
               stageChild.style = _stageStyle;
               break;
             case 3:
-              _dataObj.style.color = exprObj.fontColor;
+              _dataObj.style.fontColor = exprObj.fontColor;
+              _dataObj.style.backColor = exprObj.fontBackColor;
               _stageStyle.fill = exprObj.fontColor;
               stageChild.style = _stageStyle;
               break;
             case 4:
-              _dataObj.style.backGround = exprObj.fontBackColor;
-              // _stageStyle.fontSize = exprObj.fontSize;
-              // stageChild.style = _stageStyle;
+              _dataObj.style.backColor = exprObj.fontBackColor;
+              break;
+            case 6:
+              let newCordObj = this.convertCoordToLeftOrigina({
+                x: _dataObj.absolutePosition.x,
+                y: _dataObj.absolutePosition.y,
+              });
+              stageChild.position.set(newCordObj.x, newCordObj.y);
+              break;
+            case 7:
+              stageChild.text = exprObj.text.content;
               break;
           }
 

+ 46 - 7
src/controller/old-adm/businessSpaceController.ts

@@ -1,11 +1,50 @@
-import {graphhic_pre} from './preTypes'
 import { middlewareHttpUtils } from '@/utils/http/middlewareHttpUtils';
 
-export class businessSpaceController{
-    static middlewareHttpUtilsInstance = new middlewareHttpUtils();
+export class businessSpaceController {
+  static middlewareHttpUtilsInstance = new middlewareHttpUtils();
+
+  //项目关系类型查询
+  static async getrelationTypeProject(param, call) {
+    var result = await this.middlewareHttpUtilsInstance.postRequest('/graphic/relation_type_project', param);
+    result.content = result.data || [];
+    call(result);
+
+    // let url = '/datacenter/graphic/relation_type_project';
+    // http.postJson(url, param, success)
+  }
+
+  //关系-----统计 属于多建筑楼层的空间
+  static async getSpaceBdFlCount(param, call) {
+    var result = await this.middlewareHttpUtilsInstance.postRequest('/space/space-bd-fl', param);
+    call(result);
+    // let url = '/equip-component/space/space-bd-fl';
+    // http.postJson(url, param, success)
+  }
+
+  // 查询业务空间分区类型包含其他
+  static async queryAllZoneType(param, call) {
+    var result = await this.middlewareHttpUtilsInstance.postRequest('/object/zone/type', param);
+    result.content = result.data || [];
+    call(result);
+    // let url = '/datacenter/object/zone/type';
+    // http.postJson(url, param, success)
+  }
+
+  // 查询建筑楼层-统计业务空间state
+  static async queryBFloorWithState(param, call) {
+    var result = await this.middlewareHttpUtilsInstance.postRequest('/object/zone/building-floor', param);
+    result.content = result.data || [];
+    call(result);
+    // let url = '/datacenter/object/zone/building-floor';
+    // http.postJson(url, param, success)
+  }
+
+  //查询分区对象信息
+  static async zoneCount(param, call) {
+    var result = await this.middlewareHttpUtilsInstance.postRequest('/object/zone/count', param);
+    call(result);
+    // let url = '/datacenter/object/zone/count'
+    // http.postJson(url, param, success)
+  }
 
-    static async getrelationTypeProject(param, success) {
-        let url = `${graphhic_pre}/relation_type_project`;
-        // http.postJson(url, param, success)
-      }
 }

+ 33 - 10
src/controller/systemGraph/sysGraphController.ts

@@ -35,7 +35,7 @@ export class sysGraphController {
             return (_c.extraProps || {}).state != graphStateEnum.Recyle;
         });
         dataArr.sort(function (a, b) {
-            return (b.extraProps || {}).createTime - (a.extraProps || {}).createTime;
+            return ((b.extraProps || {}).createTime || {}).calendar - ((a.extraProps || {}).createTime || {}).calendar;
         });
 
 
@@ -65,7 +65,7 @@ export class sysGraphController {
             let templateName = ((_templateObj || {}).template || {}).name || '';
 
             //格式化日期时间
-            let momentInstance = moment((_c.extraProps || {}).createTime);
+            let momentInstance = moment(((_c.extraProps || {}).createTime || {}).calendar);
             let timeStr = momentInstance.format('YYYY[/]MM[/]DD[ ]HH[:]mm');
 
             newDataArr.push({
@@ -221,24 +221,47 @@ export class sysGraphController {
             return { result: logicConfig.resultObj.failure, message: '缺少系统图ID' };
 
         //新增成功后,要加载数据
-        var loadDataUrl = '/diagram/loadData?groupCode=' + _paramObj.groupCode + '&projectId=' + _paramObj.projectId;
-        var loadResultObj = await this.sysGraphHttpUtilsInstance.postRequest(loadDataUrl, { id: dataObj.id });
+        // var loadDataUrl = '/diagram/loadData?groupCode=' + _paramObj.groupCode + '&projectId=' + _paramObj.projectId;
+        // var loadResultObj = await this.sysGraphHttpUtilsInstance.postRequest(loadDataUrl, { id: dataObj.id });
+        var loadResultObj = await this.loadData({ id: dataObj.id, projectId: _paramObj.projectId, groupCode: _paramObj.groupCode });
         if (loadResultObj.result != logicConfig.resultObj.success) {
             loadResultObj.message = '加载模板数据失败:' + loadResultObj.message;
             return loadResultObj;
         }
 
-        //加载数据成功后保存数据
-        var saveResultObj = await this.saveSysGraph(loadResultObj.data, _paramObj.projectId, _paramObj.groupCode);
-        if (saveResultObj.result != logicConfig.resultObj.success) {
-            saveResultObj.message = '保存系统图数据失败:' + saveResultObj.message;
-            return saveResultObj;
-        }
+        // //加载数据成功后保存数据
+        // var saveResultObj = await this.saveSysGraph(loadResultObj.data, _paramObj.projectId, _paramObj.groupCode);
+        // if (saveResultObj.result != logicConfig.resultObj.success) {
+        //     saveResultObj.message = '保存系统图数据失败:' + saveResultObj.message;
+        //     return saveResultObj;
+        // }
         //因为保存数据成功返回的data里的数据不全,所以返回加载数据成功后的数据给页面
         return loadResultObj;
     }
 
     /**
+     * 加载数据
+     * @param _paramObj {projectId:'项目id',groupCode:'集团编码',id:'系统图ID'}
+     */
+     static async loadData(_paramObj: any) {
+        var loadDataUrl = '/diagram/loadData?groupCode=' + _paramObj.groupCode + '&projectId=' + _paramObj.projectId;
+        var loadResultObj = await this.sysGraphHttpUtilsInstance.postRequest(loadDataUrl, { id: _paramObj.id });
+        return loadResultObj;
+    }
+
+    /**
+     * 重置数据
+     * @param _paramObj {projectId:'项目id',groupCode:'集团编码',id:'系统图ID'}
+     */
+     static async resetData(_paramObj: any) {
+        var loadDataUrl = '/diagram/reset?groupCode=' + _paramObj.groupCode + '&projectId=' + _paramObj.projectId;
+        var loadResultObj = await this.sysGraphHttpUtilsInstance.postRequest(loadDataUrl, { id: _paramObj.id });
+        return loadResultObj;
+    }
+
+
+
+    /**
      * 保存系统图数据
      * @param _paramObj 参见后台loadData接口的返回
      * @param projectId 项目ID

+ 12 - 2
src/utils/http/basic/axiosUtils.ts

@@ -101,6 +101,8 @@ export class axiosUtils {
     method: string = "post"
   ) {
     try {
+      data = data || {};
+
       //headers里放入 groupCode、projectId  为了兼顾老ADM的写法,以后可删除
       headers = headers || {};
       headers.groupCode =
@@ -112,13 +114,21 @@ export class axiosUtils {
       var urlParamStr = urlArr[1] || "";
       if (urlParamStr.indexOf("projectId=") == -1) {
         urlParamStr =
-          "projectId=" + vueStore.state.selectProject.id + "&" + urlParamStr;
+          "projectId=" + (data.projectId || vueStore.state.selectProject.id) + "&" + urlParamStr;
       }
 
       if (urlParamStr.indexOf("groupCode=") == -1) {
         urlParamStr =
           "groupCode=" +
-          vueStore.state.selectProject.groupCode +
+        (data.groupCode || vueStore.state.selectProject.groupCode) +
+          "&" +
+          urlParamStr;
+      }
+
+      if (urlParamStr.indexOf("userId=") == -1) {
+        urlParamStr =
+          "userId=" +
+        (data.userId || vueStore.state.user.id) +
           "&" +
           urlParamStr;
       }