From 783ab4e467c95e26f7f031151507bd7ad8333a63 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 08 九月 2023 17:34:47 +0800
Subject: [PATCH] 2023-09-08

---
 src/tabviews/custom/components/chart/antv-X6/index.jsx |  100 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 76 insertions(+), 24 deletions(-)

diff --git a/src/tabviews/custom/components/chart/antv-X6/index.jsx b/src/tabviews/custom/components/chart/antv-X6/index.jsx
index 6e05732..3b654c5 100644
--- a/src/tabviews/custom/components/chart/antv-X6/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-X6/index.jsx
@@ -386,6 +386,8 @@
     node: null,
     loading: false,
     status: 0,
+    flowname: '',
+    flowcode: '',
     orgs: []
   }
 
@@ -487,7 +489,7 @@
           title: com.OrgName,
           shortName: com.ShortName,
           checkable: false,
-          disabled: true,
+          selectable: false,
           children: []
         }
         let _works = []
@@ -497,7 +499,7 @@
             key: dep.co_pro_code,
             title: dep.co_pro_name,
             checkable: false,
-            disabled: true,
+            selectable: false,
             children: []
           }
 
@@ -506,7 +508,7 @@
               key: job.jobcode,
               title: job.jobname,
               checkable: false,
-              disabled: true,
+              selectable: false,
               children: []
             }
   
@@ -535,7 +537,7 @@
                   key: group.work_group,
                   title: group.work_group,
                   checkable: false,
-                  disabled: true,
+                  selectable: false,
                   children: []
                 }
 
@@ -620,6 +622,8 @@
 
       this.setState({
         status: item.status || 0,
+        flowname: item.works_flow_name || '',
+        flowcode: item.works_flow_code || '',
         loading: false
       })
 
@@ -995,11 +999,21 @@
       
       this.setState({node: null})
     })
+    graph.on('edge:connected', ({ isNew, edge }) => {
+      if (!isNew) return
+
+      let target = edge.getTargetCell()
+      let mkdata = target ? target.prop('mkdata') : null
+
+      if (mkdata) {
+        edge.prop('mkdata', {status: mkdata.status, statusName: mkdata.statusName})
+      }
+    })
     
     const r1 = graph.createNode({
       shape: 'mk-rect',
       mknode: 'start',
-      mkdata: {status: 0, statusName: '寮�濮�'},
+      mkdata: {status: 0, statusName: '鏈彁浜�'},
       attrs: {
         body: {
           rx: 20,
@@ -1097,7 +1111,7 @@
     const r8 = graph.createNode({
       shape: 'mk-rect',
       mknode: 'end',
-      mkdata: {status: '', statusName: '缁撴潫'},
+      mkdata: {status: 888, statusName: '宸插畬鎴�'},
       attrs: {
         body: {
           rx: 20,
@@ -1523,7 +1537,7 @@
   }
 
   save = () => {
-    const { BID, plot, status } = this.state
+    const { BID, plot, status, flowname, flowcode } = this.state
 
     if (!BID) {
       Modal.error({
@@ -1557,18 +1571,52 @@
         ID: BID,
         BID: ''
       }
+
+      let ssoParam = {
+        func: 's_works_flow_param_sso_upt_v6',
+        status: status,
+        ID: BID,
+        works_flow_code: flowcode,
+        works_flow_name: flowname,
+        long_param: window.btoa(window.encodeURIComponent(JSON.stringify(nodes)))
+      }
   
       Api.genericInterface(param).then(res => {
         if (res.status) {
-          notification.success({
-            top: 92,
-            message: '淇濆瓨鎴愬姛锛�',
-            duration: 2
-          })
-          this.setState({
-            loading: false,
-            status: _status
-          })
+          if (plot.subtype === 'xflow') {
+            Api.getSystemConfig(ssoParam).then(result => {
+              if (result.status) {
+                notification.success({
+                  top: 92,
+                  message: '淇濆瓨鎴愬姛锛�',
+                  duration: 2
+                })
+                this.setState({
+                  loading: false,
+                  status: _status
+                })
+              } else {
+                notification.error({
+                  top: 92,
+                  message: result.message,
+                  duration: 10
+                })
+                this.setState({
+                  loading: false
+                })
+              }
+            })
+          } else {
+            notification.success({
+              top: 92,
+              message: '淇濆瓨鎴愬姛锛�',
+              duration: 2
+            })
+            this.setState({
+              loading: false,
+              status: _status
+            })
+          }
         } else {
           notification.error({
             top: 92,
@@ -1891,20 +1939,23 @@
       MKEmitter.emit('modifyTabs', newtab, true)
     } else if (plot.click === 'menu') {
       let menuId = plot.menu.slice(-1)[0]
-      let newtab = window.GLOB.mkThdMenus.filter(m => m.MenuID === menuId)[0]
+      let menu = null
 
-      if (!newtab && plot.MenuID) {
-        newtab = {
+      if (window.GLOB.mkThdMenus.has(menuId)) {
+        menu = {...window.GLOB.mkThdMenus.get(menuId)}
+      } else if (plot.MenuID) {
+        menu = {
           MenuID: plot.MenuID,
           MenuName: plot.MenuName,
-          MenuNo: plot.MenuNo,
           type: plot.tabType
         }
-      } else if (!newtab) {
-        return
       }
 
-      MKEmitter.emit('modifyTabs', {...newtab, param: {$BID: sign}}, true)
+      if (!menu) return
+
+      menu.param = {$BID: sign}
+
+      MKEmitter.emit('modifyTabs', menu, true)
     } else {
       MKEmitter.emit('resetSelectLine', config.uuid, sign, {})
     }
@@ -1967,7 +2018,7 @@
   }
 
   render() {
-    const { loading, config, node, orgs, status } = this.state
+    const { loading, config, node, orgs, status, flowname } = this.state
 
     let style = {...config.style}
 
@@ -2033,6 +2084,7 @@
               <QuestionCircleOutlined />
             </Tooltip>
           </div>
+          <div className="flow-name">{flowname}</div>
           <div className="right-tool">
             <Tooltip title="鍚敤/鍋滅敤">
               <Switch size="small" style={{marginRight: '10px'}} checked={status === 10} onChange={this.changeStatus} />

--
Gitblit v1.8.0