From e1dbc27fbe3f083322f87fc46070191c619c5199 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 07 八月 2023 20:31:06 +0800
Subject: [PATCH] 2023-08-07

---
 src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.scss     |   25 ++++++
 src/tabviews/custom/components/chart/antv-X6/index.jsx                 |  106 +++++++++++++++++++++++++-
 src/menu/components/share/actioncomponent/actionform/index.jsx         |    4 +
 src/tabviews/custom/components/chart/antv-X6/nodeupdate/nodeform.jsx   |   26 +-----
 src/tabviews/custom/components/chart/antv-X6/nodeupdate/memberform.jsx |   26 +-----
 src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx      |    4 
 6 files changed, 141 insertions(+), 50 deletions(-)

diff --git a/src/menu/components/share/actioncomponent/actionform/index.jsx b/src/menu/components/share/actioncomponent/actionform/index.jsx
index 260dedd..bcba0e8 100644
--- a/src/menu/components/share/actioncomponent/actionform/index.jsx
+++ b/src/menu/components/share/actioncomponent/actionform/index.jsx
@@ -800,6 +800,10 @@
             { pattern: formRule.func.pattern, message: formRule.func.message },
             { max: formRule.func.max, message: formRule.func.maxMessage }
           )
+        } else if (item.key === 'outerBlacklist') {
+          rules.push(
+            { max: 512, message: '鏈�澶�512涓瓧绗�' }
+          )
         } else if (item.key === 'output') {
           if (this.record.intertype === 'system' || ((this.record.intertype === 'outer' || this.record.intertype === 'custom') && this.record.callbackType === 'script')) {
             rules = [{
diff --git a/src/tabviews/custom/components/chart/antv-X6/index.jsx b/src/tabviews/custom/components/chart/antv-X6/index.jsx
index 693f914..87c4c48 100644
--- a/src/tabviews/custom/components/chart/antv-X6/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-X6/index.jsx
@@ -386,7 +386,7 @@
     node: null,
     loading: false,
     status: 0,
-    rolelist: []
+    orgs: []
   }
 
   selectNode = null
@@ -424,7 +424,7 @@
       this.loadData()
 
       if (_config.plot.function === 'edit') {
-        this.getrolelist()
+        this.getorganizations()
       }
     })
   }
@@ -469,7 +469,7 @@
     }
   }
 
-  getrolelist = () => {
+  getorganizations = () => {
     Api.genericInterface({func: 's_get_organizations_v1'}).then(res => {
       if (!res.status) {
         notification.error({
@@ -480,7 +480,101 @@
         return
       }
 
-      this.setState({rolelist: res.data || []})
+      let orgs = []
+      res.organizations && res.organizations.forEach(com => {
+        let _com = {
+          key: com.OrgCode,
+          title: com.OrgName,
+          shortName: com.ShortName,
+          checkable: false,
+          disabled: true,
+          children: []
+        }
+
+        com.departments.forEach(dep => {
+          let _dep = {
+            key: dep.co_pro_code,
+            title: dep.co_pro_name,
+            checkable: false,
+            disabled: true,
+            children: []
+          }
+
+          dep.jobs.forEach(job => {
+            let _job = {
+              key: job.jobcode,
+              title: job.jobname,
+              checkable: false,
+              disabled: true,
+              children: []
+            }
+  
+            job.work_group.forEach(group => {
+              if (group.work_group === 'normal') {
+                group.workers.forEach(work => {
+                  let _work = {
+                    key: work.worker_id,
+                    title: work.workername,
+                    email: work.email || '',
+                    images: work.images || '',
+                    mob: work.mob || '',
+                    sex: work.sex || '',
+                    work_grade: work.work_grade || '',
+                    worker_id: work.worker_id || '',
+                    workercode: work.workercode || '',
+                    workername: work.workername || '',
+                  }
+  
+                  _job.children.push(_work)
+                })
+              } else {
+                let _group = {
+                  key: group.work_group,
+                  title: group.work_group,
+                  checkable: false,
+                  disabled: true,
+                  children: []
+                }
+
+                group.workers.forEach(work => {
+                  let _work = {
+                    key: work.worker_id,
+                    title: work.workername,
+                    email: work.email || '',
+                    images: work.images || '',
+                    mob: work.mob || '',
+                    sex: work.sex || '',
+                    work_grade: work.work_grade || '',
+                    worker_id: work.worker_id || '',
+                    workercode: work.workercode || '',
+                    workername: work.workername || '',
+                  }
+  
+                  _group.children.push(_work)
+                })
+
+                if (_group.children.length > 0) {
+                  _job.children.push(_group)
+                }
+              }
+            })
+
+            if (_job.children.length > 0) {
+              _dep.children.push(_job)
+            }
+          })
+
+          if (_dep.children.length > 0) {
+            _com.children.push(_dep)
+          }
+        })
+
+        if (_com.children.length > 0) {
+          orgs.push(_com)
+        }
+      })
+
+      this.setState({orgs: orgs})
     })
   }
 
@@ -1867,7 +1961,7 @@
   }
 
   render() {
-    const { loading, config, node, rolelist, status } = this.state
+    const { loading, config, node, orgs, status } = this.state
 
     let style = {...config.style}
 
@@ -1947,7 +2041,7 @@
           <div id={config.uuid + 'container'} className="mk-container"></div>
           <div className="mk-node-edit">
             <div className="header">璁剧疆</div>
-            {!node ? <div className="empty">鏈�変腑</div> : <NodeUpdate node={node} rolelist={rolelist} onChange={this.changeProps}/>}
+            {!node ? <div className="empty">鏈�変腑</div> : <NodeUpdate node={node} orgs={orgs} onChange={this.changeProps}/>}
           </div>
         </div>
       </div>
diff --git a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx
index b3d977c..722012a 100644
--- a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.jsx
@@ -13,7 +13,7 @@
 class NodeUpdate extends Component {
   static propTpyes = {
     node: PropTypes.object,
-    rolelist: PropTypes.array
+    orgs: PropTypes.array
   }
 
   state = {
@@ -503,7 +503,7 @@
           onCancel={() => this.setState({visible: false})}
           destroyOnClose
         >
-          <NodeForm node={mknode} data={mkdata} rolelist={this.props.rolelist} handleSubmit={() => this.confirm()} wrappedComponentRef={(inst) => this.nodeRef = inst}/>
+          <NodeForm node={mknode} data={mkdata} orgs={this.props.orgs} handleSubmit={() => this.confirm()} wrappedComponentRef={(inst) => this.nodeRef = inst}/>
         </Modal>
       </div>
     )
diff --git a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.scss b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.scss
index 93d919a..b9da954 100644
--- a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.scss
+++ b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/index.scss
@@ -154,4 +154,29 @@
       }
     }
   }
+}
+
+.member-modal {
+  .ant-modal {
+    top: 50px;
+  }
+  .ant-modal-body {
+    min-height: 150px;
+    max-height: calc(100vh - 200px);
+    overflow-y: auto;
+  }
+  .ant-modal-body::-webkit-scrollbar {
+    width: 7px;
+  }
+  .ant-modal-body::-webkit-scrollbar-thumb {
+    border-radius: 5px;
+    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13);
+    background: rgba(0, 0, 0, 0.13);
+  }
+  .ant-modal-body::-webkit-scrollbar-track {
+    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05);
+    border-radius: 3px;
+    border: 1px solid rgba(0, 0, 0, 0.07);
+    background: rgba(0, 0, 0, 0);
+  }
 }
\ No newline at end of file
diff --git a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/memberform.jsx b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/memberform.jsx
index 8013724..4602e47 100644
--- a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/memberform.jsx
+++ b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/memberform.jsx
@@ -63,32 +63,16 @@
   )
 }
 
-const treeData = [
-  {
-    key: '0-0',
-    title: '0-0',
-    checkable: false,
-    children: [{ key: '0-0-0', title: '0-0-0' }, { key: '0-0-1', title: '0-0-1' }]
-  },
-  {
-    key: '0-1',
-    title: '0-1',
-    checkable: false,
-    children: [{ key: '0-1-0', title: '0-1-0' }, { key: '0-1-1', title: '0-1-1' }],
-  },
-  { key: '0-2', title: '0-3' },
-]
-
 class MemberForm extends Component {
   static propTpyes = {
     node: PropTypes.any,
     data: PropTypes.any,
-    rolelist: PropTypes.array
+    orgs: PropTypes.array
   }
 
   state = {
     visible: false,
-    targetKeys: []
+    targetKeys: ['sifuweoifuweifuo']
   }
 
   onChange = targetKeys => {
@@ -96,22 +80,24 @@
   }
 
   render() {
+    const { orgs } = this.props
     const { visible, targetKeys } = this.state
 
     return (
       <>
         <div className="member-input">0浜�<FormOutlined onClick={() => this.setState({visible: true})} /></div>
         <Modal
+          wrapClassName="member-modal"
           title="閫夋嫨浜哄憳"
           visible={visible}
           closable={false}
           maskClosable={false}
-          width={800}
+          width={1000}
           onOk={this.confirm}
           onCancel={() => this.setState({visible: false})}
           destroyOnClose
         >
-          <TreeTransfer dataSource={treeData} targetKeys={targetKeys} onChange={this.onChange} />
+          <TreeTransfer dataSource={orgs} targetKeys={targetKeys} onChange={this.onChange} />
         </Modal>
       </>
     )
diff --git a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/nodeform.jsx b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/nodeform.jsx
index 8572bfb..a47936b 100644
--- a/src/tabviews/custom/components/chart/antv-X6/nodeupdate/nodeform.jsx
+++ b/src/tabviews/custom/components/chart/antv-X6/nodeupdate/nodeform.jsx
@@ -10,33 +10,15 @@
   static propTpyes = {
     node: PropTypes.any,
     data: PropTypes.any,
-    rolelist: PropTypes.array
+    orgs: PropTypes.array
   }
 
   state = {}
 
   handleConfirm = () => {
-    const { rolelist } = this.props
-
     return new Promise((resolve, reject) => {
       this.props.form.validateFieldsAndScroll((err, values) => {
         if (!err) {
-          if (values.roleId) {
-            values.roleName = ''
-            rolelist.forEach(item => {
-              if (item.RoleID === values.roleId) {
-                values.roleName = item.RoleName
-              }
-            })
-          }
-          if (values.depId) {
-            values.depName = ''
-            rolelist.forEach(item => {
-              if (item.RoleID === values.depId) {
-                values.depName = item.RoleName
-              }
-            })
-          }
           resolve(values)
         } else {
           reject(err)
@@ -46,7 +28,7 @@
   }
 
   render() {
-    const { node } = this.props
+    const { node, orgs } = this.props
     const { getFieldDecorator } = this.props.form
     const formItemLayout = {
       labelCol: {
@@ -143,7 +125,7 @@
                   }
                 ]
               })(
-                <MemberForm />
+                <MemberForm orgs={orgs}/>
               )}
             </Form.Item>
           </Col>
@@ -152,7 +134,7 @@
               {getFieldDecorator('depId', {
                 initialValue: data.depId || ''
               })(
-                <MemberForm />
+                <MemberForm orgs={orgs}/>
               )}
             </Form.Item>
           </Col>

--
Gitblit v1.8.0