Browse Source

【u审批】审批时不同意增加回退节点功能

samhoo 3 years ago
parent
commit
909cd43250

+ 1 - 0
uas-office-web/wxuasapproval/src/configs/router.config.js

@@ -67,6 +67,7 @@ export class Routes extends React.Component {
           {/*U审批过渡页面(入口页面)*/}
           <Route path='/uasApproval/:master/:type?'
                  component={UasApprovalPage}/>
+          {/* http://erp.yitoa.com:8888/ERP/uas/approvalHome/YITOA_DATACENTER */}
           {/*U审批首页*/}
           <Route path='/approvalHome/:master/:type?'
                  component={ApprovalHomePage}/>

+ 101 - 6
uas-office-web/wxuasapproval/src/pages/approval/Approval.jsx

@@ -101,6 +101,11 @@ const defaultApprovalState = {
     rowHasChanged: (row1, row2) => row1 !== row2,
   }),//变更处理人列表
   selectModel: {},//被选中的item
+
+  changeRollBackOpen: false,//指定回退弹框是否显示
+  changeRollBaceDataSource: new ListView.DataSource({
+    rowHasChanged: (row1, row2) => row1 !== row2,
+  }),//指定回退数据源
 }
 
 class Approval extends Component {
@@ -218,6 +223,9 @@ class Approval extends Component {
       changeModalOpen,//变更处理人弹框是否显示
       changeDataSource,//变更处理人列表
       selectModel,
+
+      changeRollBackOpen,//指定回退弹框是否显示
+      changeRollBaceDataSource//指定回退数据源
     } = this.state
 
     //审批常用语
@@ -457,7 +465,7 @@ class Approval extends Component {
                        }}></div>
 
                   <div className={disagreeAble ? 'menuItem' : 'displayNone'}
-                       onClick={this.approvalDisagree}>不同意
+                       onClick={this.getRollBackNode}>不同意
                   </div>
                   <div className={disagreeAble ? '' : 'displayNone'}
                        style={{
@@ -523,6 +531,8 @@ class Approval extends Component {
         }
         {/*变更处理人、放大镜弹出框*/}
         {this.getChangeModal()}
+        {/* 不同意时选择回退节点 */}
+        {this.getRollBackModal()}
       </div>
     </div>
   }
@@ -648,6 +658,41 @@ class Approval extends Component {
     </Modal>
   }
 
+  // 不同意时选择回退节点
+  getRollBackModal() {
+    const {
+      changeRollBackOpen
+    } = this.state
+    return <Modal visible={changeRollBackOpen}
+      animationType={'slide-up'}
+      onClose={() => {
+        this.setState({
+          changeRollBackOpen: false
+        })
+      }}
+      title={'指定回退节点'}
+      popup
+    >
+      <ListView
+        dataSource={this.state.changeRollBaceDataSource}
+        initialListSize={30}
+        renderRow={(rowData, sectionID, rowID) => {
+          return <List.Item
+            key={rowID}
+            wrap
+            onClick={this.approvalDisagree.bind(this,
+              rowData)}
+            >{rowData.JP_NODENAME}</List.Item>
+        }}
+        style={{
+          height: '50vh',
+          overflow: 'auto',
+        }}
+        pageSize={20}
+      />
+    </Modal>
+  }
+
   initPageState = () => {
     this.initData()
     this.setState(defaultApprovalState)
@@ -2140,11 +2185,61 @@ class Approval extends Component {
     this.loadProcessUpdate()
   }
 
+  //点击不同意获取以往节点
+  getRollBackNode = () => {
+    const {
+      changeRollBaceDataSource
+    } = this.state
+    let originNode = [{
+      JP_NODENAME:'制单人',
+      backTaskName:'RECORDER'
+    }]
+    this.setState({
+      changeRollBackOpen: true
+    })
+    fetchPost(mBaseUrl + '/common/getCurrentJnodes.action', {
+      'caller': mApprovalRecord.caller,
+      'keyValue':mApprovalRecord.id,
+      '_noc': 1,
+    }, {
+      // 'Cookie': 'JSESSIONID=' + mSessionId
+    }).then(response => {
+      let data = response.data;
+      let nodeData = [];
+      let currentNode = mApprovalRecord.nodeName;
+      for (let i = 0; i < data.length; i++) {
+        if(data[i].JP_NODENAME != currentNode){
+          nodeData.push(data[i])
+        }else{
+          break;
+        }
+      }
+      this.setState({
+        changeRollBaceDataSource: changeRollBaceDataSource.cloneWithRows(
+          originNode.concat(nodeData))
+      })
+    }).catch(error => {
+      if (typeof error === 'string') {
+        message.error(error)
+      } else {
+        message.error('请求异常')
+      }
+      this.setState({
+        changeRollBaceDataSource: changeRollBaceDataSource.cloneWithRows(
+          originNode)
+      })
+    })
+  }
   //不同意审批
-  approvalDisagree = () => {
-    // this.setState({
-    //   loading: true,
-    // })
+  approvalDisagree = (rowData) => {
+    let backTaskName = rowData.JP_NODENAME;
+    if(backTaskName == '制单人'){
+      backTaskName = 'RECORDER'
+    }
+    this.setState({
+      changeRollBackOpen: false,
+      loading: true
+    })
     Toast.loading('正在审批...', 0)
     fetchPost(mBaseUrl + '/common/review.action', {
       'taskId': mNodeId,
@@ -2152,7 +2247,7 @@ class Approval extends Component {
       'nodeLog': this.state.approvalContent,
       'master': mMaster,
       'result': false,
-      'backTaskName': 'RECORDER',
+      'backTaskName': backTaskName,
       'attachs': '',
       '_noc': 1,
       'holdtime': 4311,