From 46773828b8c46e450a67eb1fc5e6124d87d97ab6 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 23 九月 2023 19:51:11 +0800
Subject: [PATCH] 2023-09-23

---
 src/tabviews/custom/components/chart/antv-X6/index.jsx |   64 +++++++++++++++++++++++++++++---
 1 files changed, 58 insertions(+), 6 deletions(-)

diff --git a/src/tabviews/custom/components/chart/antv-X6/index.jsx b/src/tabviews/custom/components/chart/antv-X6/index.jsx
index 3b654c5..97525bc 100644
--- a/src/tabviews/custom/components/chart/antv-X6/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-X6/index.jsx
@@ -1003,8 +1003,16 @@
       if (!isNew) return
 
       let target = edge.getTargetCell()
-      let mkdata = target ? target.prop('mkdata') : null
 
+      if (!target) return
+
+      let mkdata = target.prop('mkdata')
+
+      if (target.prop('mknode') === 'end') {
+        edge.prop('mknode', 'endEdge')
+      } else if (target.prop('mknode') === 'start') {
+        edge.prop('mknode', 'startEdge')
+      }
       if (mkdata) {
         edge.prop('mkdata', {status: mkdata.status, statusName: mkdata.statusName})
       }
@@ -1550,10 +1558,23 @@
     let _status = status
 
     if (plot.subtype === 'xflow' && status === 10) {
-      let start_num = nodes.cells.filter(cell => cell.mknode === 'start').length
-      let end_num = nodes.cells.filter(cell => cell.mknode === 'end').length
+      let start_num = 0
+      let end_num = 0
+      let unvalid = false
       
-      if (start_num !== 1 || end_num !== 1) {
+      nodes.cells.forEach(item => {
+        if (item.mknode === 'start') {
+          start_num++
+        } else if (item.mknode === 'end') {
+          end_num++
+        } else if (item.shape === 'edge' && item.mknode !== 'endEdge' && item.mknode !== 'startEdge') {
+          if (!item.mkdata.members || item.mkdata.members.length === 0) {
+            unvalid = true
+          }
+        }
+
+      })
+      if (start_num !== 1 || end_num !== 1 || unvalid) {
         _status = 0
       }
     }
@@ -1968,8 +1989,22 @@
     
     if (plot.subtype === 'xflow' && _status === 10) {
       let nodes = this.mkGraph.toJSON()
-      let start_num = nodes.cells.filter(cell => cell.mknode === 'start').length
-      let end_num = nodes.cells.filter(cell => cell.mknode === 'end').length
+
+      let start_num = 0
+      let end_num = 0
+      let unvalidId = ''
+      
+      nodes.cells.forEach(item => {
+        if (item.mknode === 'start') {
+          start_num++
+        } else if (item.mknode === 'end') {
+          end_num++
+        } else if (item.shape === 'edge' && item.mknode !== 'endEdge' && item.mknode !== 'startEdge') {
+          if (!item.mkdata.members || item.mkdata.members.length === 0) {
+            unvalidId = item.id
+          }
+        }
+      })
 
       if (start_num === 0) {
         notification.warning({
@@ -1995,6 +2030,23 @@
           message: '缁撴潫鑺傜偣涓嶅彲娣诲姞澶氫釜锛�',
           duration: 2
         })
+      } else if (unvalidId) {
+        let edge = this.mkGraph.getCellById(unvalidId)
+
+        let node = edge.getTargetCell()
+
+        let title = ''
+        if (node.attrs && node.attrs.text) {
+          title = node.attrs.text.text + ''
+        } else if (node.mkdata) {
+          title = '鐘舵�侊細' + node.mkdata.status + ' - ' + node.mkdata.statusName
+        }
+
+        notification.warning({
+          top: 92,
+          message: '杩炴帴锛�' + title + '锛夌殑绾挎湭璁剧疆瀹℃壒浜猴紒',
+          duration: 2
+        })
       } else {
         this.setState({status: _status})
       }

--
Gitblit v1.8.0