From 664db98c9e8595ce4dd636a27f480e3a08b81ff5 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期五, 21 二月 2025 11:13:51 +0800
Subject: [PATCH] 新增可忽略的维修时间

---
 web/src/views/modules/taskReliability/RBD-edit-img.vue |  122 +++++++++++++++++++++++++---------------
 1 files changed, 77 insertions(+), 45 deletions(-)

diff --git a/web/src/views/modules/taskReliability/RBD-edit-img.vue b/web/src/views/modules/taskReliability/RBD-edit-img.vue
index b818414..a83d7e4 100644
--- a/web/src/views/modules/taskReliability/RBD-edit-img.vue
+++ b/web/src/views/modules/taskReliability/RBD-edit-img.vue
@@ -18,7 +18,10 @@
               <el-button type="primary" @click="saveDiagram()">鏆傚瓨</el-button>
               <el-button type="primary" @click="analyzeDiagram()">鎻愪氦</el-button>
               <el-button type="primary" @click="clearDiagram()">娓呯┖鍥惧舰</el-button>
-              <el-button type="primary" @click="layoutDiagram()">涓�閿帓鐗�</el-button>
+              <el-checkbox style="margin: 0 10px 0 10px" v-model="dataForm.autoLayout" :true-label="1" :false-label="0">
+                鏄惁寮�鍚竴閿帓鐗�
+              </el-checkbox>
+              <el-button type="primary" @click="layoutDiagram()" :disabled="!dataForm.autoLayout">涓�閿帓鐗�</el-button>
               <el-button @click="leftAlign()">
                 <i style="font-size: 1rem;" class="wt-iconfont icon-zuoduiqi"></i>
               </el-button>
@@ -576,7 +579,8 @@
           publishContent: null,
           hasPublish: 0,
           urlPref: '',
-          nodeArr: []
+          nodeArr: [],
+          autoLayout: 1,
         },
         type: '',
         id: '',
@@ -754,6 +758,7 @@
         }
         let res = await this.$http.get(`/taskReliability/ModelLine/getDiagram`, {params: params})
         this.dataForm = res.data
+        this.dataForm.autoLayout = parseInt(this.dataForm.autoLayout)
         if (res.data.content != null) {
           console.log(this.dataForm, 'getDiagram datafrom')
           console.log(res.data, 'getDiagram res.data')
@@ -930,9 +935,11 @@
               for (let i = 1; i <= node.getData().basicUnitNum; i++) {
                 if (deviceNoArr.findIndex(item => item === i) === -1) {
                   no = i
-                  if (node.getData().basicUnitNum>1){
+                  if (node.getData().basicUnitNum >= 1) {
                     node.getData().deviceNo = i
-                    node.attr('text/text', node.attr('text/text') + '-' + i)
+                    if(node.getData().deviceNo > 1){
+                      node.attr('text/text', node.attr('text/text') + '-' + i)
+                    }
                   }
                   break
                 }
@@ -1026,14 +1033,14 @@
           this.graph.createNode({
             shape: 'image',
             //imageUrl: `${window.SITE_CONFIG['apiURL']}/sysPictureBase/getProductImg?token=${Cookies.get('token')}&id=${item.imgPath}`,
-            width: 100,
+            width: 60,
             height: 70,
             //id: item.dataId, // 鎵嬪姩璁剧疆鑺傜偣鐨� ID
             data: {
               type: 'imageNodes2',
               dataId: item.dataId,
               basicUnitNum: item.basicUnitNum,
-              deviceNo: 0,
+              deviceNo: 1,
               nodeType: item.nodeType,
               nodeTypeExt: item.nodeTypeExt,
               productType: item.productType,
@@ -1057,16 +1064,16 @@
             },
             attrs: {
               image: {
-                'xlink:href': `${window.SITE_CONFIG['apiURL']}/sysPictureBase/getSvgImage?token=${Cookies.get('token')}&id=${item.imgPath}`,
+                'xlink:href': `${window.SITE_CONFIG['apiURL']}/basicInfo/XhProductModel/getImg?token=${Cookies.get('token')}&id=${item.dataId}&t=${new Date().getTime()}`,
                 //'xlink:href': urlObject.createObjectURL(new Blob([item.svgContent])),
               },
               title: {
-                text: item.basicUnitNum>=1?item.basicUnitNum:'',
+                text: item.basicUnitNum > 1 ? item.basicUnitNum : '',
                 refX: 15,
                 refY: 10,
                 fill: '#748be7',
                 fontSize: 14,
-                fontWeight:'bold',
+                fontWeight: 'bold',
                 'text-anchor': 'start',
               },
               text: {
@@ -1219,7 +1226,7 @@
         // 鐩戝惉鑺傜偣娣诲姞浜嬩欢
         this.graph.on('node:added', ({node}) => {
           node.setAttrs({
-            title: { text: '' },
+            title: {text: ''},
           })
           if (this.isFirstLoad) {
             return
@@ -1580,26 +1587,28 @@
         })
       },
       async layoutDiagram() {
-        console.log(JSON.stringify(this.graph.toJSON()), 'graph.toJSON()')
-        this.dataForm.content = JSON.stringify(this.graph.toJSON())
-        this.dataForm.urlPref = window.SITE_CONFIG['apiURL']
-        await this.$http['post'](`/taskReliability/ModelLine/layout`, this.dataForm).then(async res => {
-          if (res.msg === 'success') {
-            // this.$emit('refreshDataList')
-            // this.$alert('瑙f瀽鎴愬姛', '鎻愮ず', {
-            //   confirmButtonText: '纭畾'
-            // })
-            console.log(res.data, 'layoutDiagram res.data')
-            this.dataForm.content = res.data.content
-            console.log(this.dataForm.content, 'layoutDiagram dataForm.content')
-            this.diagramJson = JSON.parse(this.dataForm.content)
-            this.graph.fromJSON(this.diagramJson)
-            this.isFirstLoad = false;
-            // console.log(this.diagramJson.cells.length, 'this.diagramJson.cells.length')
+        if (this.dataForm.autoLayout == 1) {
+          console.log(JSON.stringify(this.graph.toJSON()), 'graph.toJSON()')
+          this.dataForm.content = JSON.stringify(this.graph.toJSON())
+          this.dataForm.urlPref = window.SITE_CONFIG['apiURL']
+          await this.$http['post'](`/taskReliability/ModelLine/layout`, this.dataForm).then(async res => {
+            if (res.msg === 'success') {
+              // this.$emit('refreshDataList')
+              // this.$alert('瑙f瀽鎴愬姛', '鎻愮ず', {
+              //   confirmButtonText: '纭畾'
+              // })
+              console.log(res.data, 'layoutDiagram res.data')
+              this.dataForm.content = res.data.content
+              console.log(this.dataForm.content, 'layoutDiagram dataForm.content')
+              this.diagramJson = JSON.parse(this.dataForm.content)
+              this.graph.fromJSON(this.diagramJson)
+              this.isFirstLoad = false;
+              // console.log(this.diagramJson.cells.length, 'this.diagramJson.cells.length')
 
-            this.graph.positionContent('left')
-          }
-        })
+              this.graph.positionContent('left')
+            }
+          })
+        }
       },
       leftAlign() {
         const NODE = this.graph.getSelectedCells()
@@ -1739,7 +1748,7 @@
         let dragNodeType = dragNode.getData().nodeType
         let offHeight = 50
         if (dragNodeType === 'node') {
-          offHeight = 60
+          offHeight = 70
         } else if (dragNodeType === 'bridgeConnection') {
           offHeight = 175
         } else {
@@ -1776,9 +1785,11 @@
             inEdges[0].target = {cell: result.newStartNode.id}
             outEdges[0].source = {cell: result.newEndNode.id}
             graphNode.remove()
-            if (!result.canPlace) {
-//璋冪敤鑷姩鎺掔増
-              this.layoutDiagram()
+            if (this.dataForm.autoLayout == 1) {
+              if (!result.canPlace) {
+                //璋冪敤鑷姩鎺掔増
+                this.layoutDiagram()
+              }
             }
           }
         } else { //骞惰缁撴瀯
@@ -1797,13 +1808,13 @@
           this.getYRange(inEdges, graphNodeStartNode, pointXY)
           console.log(pointXY, 'new')
 
-          let minX = graphNodeStartNode.position().x + graphNode.getBBox().width + 15
-          let maxX = graphNode.position().x
+          let minX = graphNodeStartNode.position().x + graphNode.getBBox().width
+          let maxX = graphNode.position().x - dragNode.getBBox().width / 2
           let centerX = minX + (maxX - minX) / 2
           let centerY = graphNodeY + graphNode.getBBox().height / 2 - pointXY.minY > pointXY.maxY - (graphNodeY + graphNode.getBBox().height / 2) ?
             pointXY.maxY + offHeight / 2 + 30 : pointXY.minY - offHeight / 2 - 30
 
-          let result = this.addNodeAndConnect(null, dragNode, minX, centerY)
+          let result = this.addNodeAndConnect(null, dragNode, centerX, centerY)
           console.log(result, 'result111')
           this.graph.addEdge({
             source: {cell: graphNodeStartNode},
@@ -1831,9 +1842,11 @@
             connector: {name: 'rounded'},
             zIndex: -1
           })
-          if (!result.canPlace) {
-//璋冪敤鑷姩鎺掔増
-            this.layoutDiagram()
+          if (this.dataForm.autoLayout == 1) {
+            if (!result.canPlace) {
+              //璋冪敤鑷姩鎺掔増
+              this.layoutDiagram()
+            }
           }
         }
       },
@@ -1844,8 +1857,8 @@
           leftTopY = centerY
         let dragNodeType = dragNode.getData().nodeType
         if (dragNodeType === 'node') {
-          width = 60
-          height = 60
+          width = 100
+          height = 70
         } else if (dragNodeType === 'dashedBox') {
           width = 60
           height = 40
@@ -1854,7 +1867,7 @@
           height = 175
         } else {
           width = 270
-          height = 60
+          height = 70
         }
         leftTopX = centerX - width / 2
         leftTopY = centerY - height / 2
@@ -1963,8 +1976,11 @@
             })
             graphEdge.source = {cell: result.newEndNode.id}
           }
-          if (!result.canPlace) {
-            this.layoutDiagram()
+          if (this.dataForm.autoLayout == 1) {
+            if (!result.canPlace) {
+              //璋冪敤鑷姩鎺掔増
+              this.layoutDiagram()
+            }
           }
           // graphEdge.remove()
         }
@@ -2465,7 +2481,7 @@
 <style>
   #containerImg {
     display: flex;
-    border: 1px solid #dfe3e8;
+    /*border: 1px solid #dfe3e8;*/
     height: 400px;
     width: 100% !important;
   }
@@ -2499,4 +2515,20 @@
     top: 0
   }
 
+  #containerImg .x6-graph-pagebreak>.x6-graph-pagebreak-horizontal {
+    position: absolute;
+    right: 0;
+    left: 0;
+    box-sizing: border-box;
+    height: 0;
+    border-top: none;
+  }
+  #containerImg .x6-graph-pagebreak>.x6-graph-pagebreak-vertical {
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    box-sizing: border-box;
+    width: 0;
+    border-left: none;
+  }
 </style>

--
Gitblit v1.9.1