From 21dff46677c9172c98d38192bc2982a8764f65fc Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期二, 26 三月 2024 08:37:15 +0800
Subject: [PATCH] 修改

---
 web/src/views/modules/taskReliability/RBD-edit-img.vue |  101 +++++++++++++++++++++++++++++---------------------
 1 files changed, 59 insertions(+), 42 deletions(-)

diff --git a/web/src/views/modules/taskReliability/RBD-edit-img.vue b/web/src/views/modules/taskReliability/RBD-edit-img.vue
index b3fe5d6..b4b9bf1 100644
--- a/web/src/views/modules/taskReliability/RBD-edit-img.vue
+++ b/web/src/views/modules/taskReliability/RBD-edit-img.vue
@@ -3,7 +3,7 @@
     <el-row :gutter="[8,8]">
       <el-col :span="4">
         <div :style="'height:' +left_p+'px'">
-          <div class="fa-card-a" style="height: 100%">
+          <div  style="height: 100%">
             <div id="stencilImg"></div>
           </div>
         </div>
@@ -184,7 +184,8 @@
         id: '',
         graph: null,
         globalGridAttr: {
-          voteSum: '',
+          productType:'',
+          voteNum: null,
           repairMttcr: '',
           repairMttcrOther: '',
           repairDistribType: '',
@@ -339,15 +340,18 @@
         }
         let res = await this.$http.get(`/taskReliability/ModelLine/getDiagram`, {params: params})
         console.log(res, 'async getDiagram( res')
-        if (res.data !== null && res.data.content != null) {
+        if (res.data !== null && (res.data.content != null)) {
           this.dataForm = res.data
           console.log(this.dataForm, 'this.dataForm in getDiagram')
-          this.diagramJson = JSON.parse(this.dataForm.content)
+          if(this.dataForm.content!=''){
+            this.diagramJson = JSON.parse(this.dataForm.content)
+          }
           // console.log(this.dataForm.content,'this.Diagram content')
           console.log(this.diagramJson, 'this.Diagram json')
           this.graph.fromJSON(this.diagramJson)
-          this.graph.centerContent()
-          this.graph.zoomToFit()
+          this.graph.positionContent('left')
+          // this.graph.centerContent()
+          // this.graph.zoomToFit()
         } else {
           await this.clearDiagram()
         }
@@ -356,8 +360,8 @@
         this.dataForm.id = null
         // this.graph.fromJSON(this.emptyJson)
         this.graph.fromJSON('')
-        this.graph.centerContent()
-        this.graph.zoomToFit()
+        // this.graph.centerContent()
+        // this.graph.zoomToFit()
         // this.graph.freeze()
       },
       async initDigram(productId) {
@@ -372,15 +376,16 @@
           grid: {
             visible: true,
           },
-          onToolItemCreated({tool}) {
-            const handle = tool
-            const options = handle.options
-            if (options && options.index % 2 === 1) {
-              tool.setAttrs({fill: 'red'})
-            }
-          },
           autoResize: true,
-          history: true,
+            history: {
+                enabled: true,
+                beforeAddCommand(event, args) {
+                    if (args.key==='tools') {
+                        console.log(args.key,'event, args')
+                        return false
+                    }
+                },
+            },
           // panning: {
           //   enabled: true,
           // },
@@ -450,6 +455,12 @@
                     }
                   }
                 }],
+                tools: {
+                  name: 'segments',
+                  args: {
+                    attrs: { fill: '#666' },
+                  },
+                },
                 zIndex: 0,
               })
             },
@@ -485,6 +496,7 @@
         })
         this.graph.centerContent()
         const stencil = new Addon.Stencil({
+          getDragNode: (node) => node.clone({ keepId: true }),
           getDropNode(node) {
             let {width, height} = node.size()
             if (node.getData().imgWidth) {
@@ -493,31 +505,33 @@
             if (node.getData().imgHeight) {
               height = node.getData().imgHeight
             }
-            console.log(node.getData().imgWidth, node.getData().imgHeight, 'node.size()')
-            return node.clone().size(width, height)
+            return node.clone({ keepId: true }).size(width, height)
           },
-        // 杩斿洖涓�涓柊鐨勮妭鐐逛綔涓哄疄闄呮斁缃埌鐢诲竷涓婄殑鑺傜偣
+            validateNode(node){
+              console.log(node.id)
+            },
           title: '',
           target: this.graph,
-          stencilGraphWidth: 230,
-          stencilGraphHeight: 300,
-          collapsable: false,
+            stencilGraphWidth: 200,
+            stencilGraphHeight: 280,
+            collapsable: true,
           groups: [
             {
               title: '杩愮畻绗﹀彿',
               name: 'group1',
-              collapsable: false
             },
             {
               title: '璁惧鑺傜偣',
               name: 'group2',
-              collapsable: false
+                graphHeight: '',
+                layoutOptions: {
+                    rowHeight: 90,
+                },
             }
           ],
           layoutOptions: {
             columns: 2,
-            columnWidth: 110,
-            // rowHeight: 75,
+            columnWidth: 105,
           },
         })
         document.getElementById('stencilImg').appendChild(stencil.container)
@@ -532,7 +546,8 @@
             data: {
               dataId: '',
               nodeType: item.nodeType,
-              nodeTypeExt: ''
+              nodeTypeExt: '',
+              voteNum:null
             },
             attrs: {
               text: {
@@ -563,8 +578,9 @@
             imageUrl: `${window.SITE_CONFIG['apiURL']}/sysPictureBase/getProductImg?token=${Cookies.get('token')}&id=${item.imgPath}`,
             width: 60,
             height: 60,
+            id: item.dataId, // 鎵嬪姩璁剧疆鑺傜偣鐨� ID
             data: {
-              isRepair: false,
+              isRepair: item.isRepair,
               dataId: item.dataId,
               nodeType: item.nodeType,
               nodeTypeExt: item.nodeTypeExt,
@@ -576,9 +592,9 @@
               repairMttcrOther: item.repairMttcrOther,
               taskMtbcf: item.taskMtbcf,
               taskMtbcfOther: item.taskMtbcfOther,
-              voteSum: '',
               imgHeight: item.imgHeight,
-              imgWidth: item.imgWidth
+              imgWidth: item.imgWidth,
+              voteNum:null,
             },
             attrs: {
               text: {
@@ -718,7 +734,7 @@
           this.id = cell.id
           if (this.type === 'node') {
             this.nodeType = cell.getData().nodeType
-            console.log(this.nodeType, 'this.nodeType')
+            console.log(this.nodeType,cell.id,'this.nodeType')
           }
           console.log(this.shape, 'this.shape')
           // this.nodeOpt(this.id, this.globalGridAttr)
@@ -799,7 +815,7 @@
           this.showPorts(ports, false)
         })
 
-        this.graph.on('edge:mouseenter', ({cell, view}) => {
+        this.graph.on('edge:mouseenter', ({cell}) => {
           // alert(123)
           cell.addTools([
             {
@@ -813,15 +829,11 @@
                 },
               },
             },
-          ])
-          cell.addTools(
-            [
               {
-                name: 'segments',
-                args: {snapRadius: 20, attrs: {fill: '#444'}}
-              }
-            ]
-          )
+                  name: 'segments',
+                  args: {snapRadius: 20, attrs: {fill: '#444'}}
+              },
+          ])
         })
 
         this.graph.on('edge:mouseleave', ({cell}) => {
@@ -1055,10 +1067,15 @@
     position: relative;
     height: 100%;
   }
-
+#stencilImg .x6-graph-svg-viewport{
+    height: 100%;
+}
   .x6-widget-stencil-content {
     position: relative;
-    height: 100%;
+  height: calc(100% - 32px);
+}
+#stencilImg .x6-widget-stencil.collapsable > .x6-widget-stencil-content{
+    top:0
   }
 
 </style>

--
Gitblit v1.9.1