|
|
@@ -1,26 +1,35 @@
|
|
|
import React, { Component } from 'react'
|
|
|
import './approval.css'
|
|
|
import '../../index.css'
|
|
|
-import { TextArea, Icon, Loader } from 'semantic-ui-react'
|
|
|
+import { Icon, TextArea } from 'semantic-ui-react'
|
|
|
import PointsItem from '@/components/pointsItem/PointsItem'
|
|
|
import TableItem from '@/components/tableItem/TableItem'
|
|
|
import ApprovalNode from '@/components/approvalNode/ApprovalNode'
|
|
|
-import { Popover, Spin, Avatar, message } from 'antd'
|
|
|
+import { Avatar, message, Popover, Spin } from 'antd'
|
|
|
import ApprovalBean from '../../model/ApprovalBean'
|
|
|
import ApprovalRecordBean from '@/model/ApprovalRecordBean'
|
|
|
-import { Toast } from 'antd-mobile'
|
|
|
-import { fetchPost, fetchGet } from '../../utils/fetchRequest'
|
|
|
+import { ListView, Modal, SearchBar, Toast, List } from 'antd-mobile'
|
|
|
+import { fetchGet, fetchPost } from '../../utils/fetchRequest'
|
|
|
import { connect } from 'react-redux'
|
|
|
import {
|
|
|
- isObjNull, strContain, isObjEmpty, isEmptyObject, getStrValue,
|
|
|
- getIntValue, getArrayValue, getObjValue, getBracketStr, MapToJson,
|
|
|
- getParenthesesStr, getTimeValue, getSessionId,
|
|
|
+ getArrayValue,
|
|
|
+ getBracketStr,
|
|
|
+ getIntValue,
|
|
|
+ getObjValue,
|
|
|
+ getParenthesesStr,
|
|
|
+ getStrValue,
|
|
|
+ getTimeValue,
|
|
|
+ isEmptyObject,
|
|
|
+ isObjEmpty,
|
|
|
+ isObjNull,
|
|
|
+ MapToJson,
|
|
|
+ strContain,
|
|
|
} from '@/utils/common'
|
|
|
-
|
|
|
// import FileViewer from 'react-file-viewer'
|
|
|
// import Cookies from 'js-cookie'
|
|
|
import EnclosureItem from '../../components/enclosureItem/EnclosureItem'
|
|
|
import { saveReceiveState } from '../../redux/actions/homeState'
|
|
|
+import EmployeeItem from '../../components/employeeItem/EmployeeItem'
|
|
|
|
|
|
//==============================================================================================
|
|
|
let mMaster, mSessionId, mEmcode, mNodeId, mType, mCachePoints
|
|
|
@@ -39,6 +48,8 @@ let mEnclosureList = []//附件
|
|
|
let mNodeList = []//审批节点
|
|
|
let mPointsList = []//要点
|
|
|
|
|
|
+let mEmployeeList = []//组织架构
|
|
|
+
|
|
|
let mBaseUrl
|
|
|
|
|
|
class Approval extends Component {
|
|
|
@@ -61,13 +72,15 @@ class Approval extends Component {
|
|
|
finished: false,
|
|
|
finishSuccess: true,
|
|
|
finishMsg: '审批流程结束',
|
|
|
+
|
|
|
disagreeAble: true,//不同意按钮是否显示
|
|
|
agreeAble: true,//同意按钮是否显示
|
|
|
takeoverAble: false,//接管按钮是否显示
|
|
|
+ changeAble: false,//变更处理人按钮是否显示
|
|
|
optionAble: false,//底部审批操作布局是否显示
|
|
|
nodesTagAble: false,//审批节点切换是否显示
|
|
|
|
|
|
- approvalStatus: 0,
|
|
|
+ approvalStatus: 0,//审批状态 0:待审批;1:审批通过;2:审批不通过:3:异常结束
|
|
|
|
|
|
titleApproval: {
|
|
|
caption: '',
|
|
|
@@ -79,6 +92,11 @@ class Approval extends Component {
|
|
|
enclosureList: [],//附件
|
|
|
nodeList: [],//审批节点
|
|
|
pointsList: [],//要点
|
|
|
+
|
|
|
+ changeModalOpen: false,//变更处理人弹框是否显示
|
|
|
+ changeDataSource: new ListView.DataSource({
|
|
|
+ rowHasChanged: (row1, row2) => row1 !== row2,
|
|
|
+ }),//变更处理人列表
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -103,7 +121,7 @@ class Approval extends Component {
|
|
|
mNodeId = paramsJson.nodeId
|
|
|
mType = paramsJson.type
|
|
|
this.setState({
|
|
|
- approvalStatus: (mType === undefined || mType == 0) ? 0 : 3,
|
|
|
+ approvalStatus: (mType === undefined || mType == 0) ? 0 : 4,
|
|
|
})
|
|
|
|
|
|
// mSessionId = window.sessionId
|
|
|
@@ -144,6 +162,7 @@ class Approval extends Component {
|
|
|
mEnclosureList = []//附件
|
|
|
mNodeList = []//审批节点
|
|
|
mPointsList = []//要点
|
|
|
+ mEmployeeList = []
|
|
|
}
|
|
|
|
|
|
getSessionId () {
|
|
|
@@ -174,6 +193,7 @@ class Approval extends Component {
|
|
|
disagreeAble,//不同意按钮是否显示
|
|
|
agreeAble,//同意按钮是否显示
|
|
|
takeoverAble,//接管按钮是否显示
|
|
|
+ changeAble,//变更处理人按钮是否显示
|
|
|
optionAble,
|
|
|
titleApproval,
|
|
|
nodesTagAble,
|
|
|
@@ -185,6 +205,9 @@ class Approval extends Component {
|
|
|
nodeList,//审批节点
|
|
|
pointsList,//要点
|
|
|
approvalStatus,//审批状态
|
|
|
+
|
|
|
+ changeModalOpen,//变更处理人弹框是否显示
|
|
|
+ changeDataSource,//变更处理人列表
|
|
|
} = this.state
|
|
|
|
|
|
//审批常用语
|
|
|
@@ -200,6 +223,7 @@ class Approval extends Component {
|
|
|
for (let i = 0; i < mainList.length; i++) {
|
|
|
tableItems.push(<TableItem key={'main' + i} approval={mainList[i]}
|
|
|
index={i}
|
|
|
+ approvalStatus={approvalStatus}
|
|
|
valueListener={this.childStateListener.bind(
|
|
|
this)}></TableItem>)
|
|
|
}
|
|
|
@@ -216,6 +240,7 @@ class Approval extends Component {
|
|
|
} else {
|
|
|
tableItems.push(<TableItem key={'detail' + i} approval={detailList[i]}
|
|
|
index={i}
|
|
|
+ approvalStatus={approvalStatus}
|
|
|
valueListener={this.childStateListener.bind(
|
|
|
this)}></TableItem>)
|
|
|
}
|
|
|
@@ -234,6 +259,7 @@ class Approval extends Component {
|
|
|
} else {
|
|
|
tableItems.push(<TableItem key={'setup' + i}
|
|
|
approval={setuptasList[i]} index={i}
|
|
|
+ approvalStatus={approvalStatus}
|
|
|
valueListener={this.childStateListener.bind(
|
|
|
this)}></TableItem>)
|
|
|
}
|
|
|
@@ -269,6 +295,7 @@ class Approval extends Component {
|
|
|
} else {
|
|
|
pointItems.push(<PointsItem key={'points' + i} approval={pointsList[i]}
|
|
|
index={i}
|
|
|
+ approvalStatus={approvalStatus}
|
|
|
valueListener={this.childStateListener.bind(
|
|
|
this)}></PointsItem>)
|
|
|
}
|
|
|
@@ -334,27 +361,26 @@ class Approval extends Component {
|
|
|
tip='数据请求中...'>
|
|
|
</Spin>
|
|
|
|
|
|
- <div className='root'
|
|
|
+ <div className='approval-detail-root'
|
|
|
style={{ display: finished ? 'none' : (loading ? 'none' : 'flex') }}>
|
|
|
<div className='content'>
|
|
|
- {/*<FileViewer
|
|
|
- fileType={'png'}
|
|
|
- filePath={'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png'}
|
|
|
- // onError={}
|
|
|
- // errorComponent={}
|
|
|
- // unsupportComponent={}
|
|
|
- />*/}
|
|
|
-
|
|
|
<div className='headerLayout'>
|
|
|
<Avatar size={42} src={require('@/images/default_header.png')}/>
|
|
|
<div className='headerText'>{titleApproval.caption}</div>
|
|
|
{
|
|
|
- approvalStatus === 0 ? null : approvalStatus == 1 ? <Avatar
|
|
|
- size={54} style={{ marginRight: 10 }}
|
|
|
- src={require('@/images/approved.png')}/> : approvalStatus == 2 ?
|
|
|
+ approvalStatus === 0 ? null
|
|
|
+ : approvalStatus == 1 ?
|
|
|
<Avatar
|
|
|
size={54} style={{ marginRight: 10 }}
|
|
|
- src={require('@/images/unapproved.png')}/> : null
|
|
|
+ src={require('@/images/approved.png')}/>
|
|
|
+ : approvalStatus == 2 ?
|
|
|
+ <Avatar
|
|
|
+ size={54} style={{ marginRight: 10 }}
|
|
|
+ src={require('@/images/unapproved.png')}/>
|
|
|
+ : approvalStatus == 3 ?
|
|
|
+ <Avatar
|
|
|
+ size={54} style={{ marginRight: 10 }}
|
|
|
+ src={require('@/images/endapproved.png')}/> : null
|
|
|
}
|
|
|
</div>
|
|
|
<div className='gray-line' style={{ height: '1px' }}></div>
|
|
|
@@ -370,7 +396,6 @@ class Approval extends Component {
|
|
|
<div className='gray-line' style={{ height: '6px' }}></div>
|
|
|
{approvalPoint}
|
|
|
</div>
|
|
|
-
|
|
|
{
|
|
|
approvalStatus === 0 &&
|
|
|
<div className={optionAble ? 'bottomMenu' : 'displayNone'}>
|
|
|
@@ -381,16 +406,6 @@ class Approval extends Component {
|
|
|
value={approvalContent}
|
|
|
placeholder='请输入审批意见...'
|
|
|
onChange={this.approvalEdit}/>
|
|
|
- {/*<Modal trigger={<div className='fastWords' onClick={this.fastClick}>常</div>}
|
|
|
- open={fastModalOpen}
|
|
|
- onClose={this.fastModalClose}
|
|
|
- size='small'>
|
|
|
- <Modal.Content image>
|
|
|
- <Modal.Description>
|
|
|
- {fastItems}
|
|
|
- </Modal.Description>
|
|
|
- </Modal.Content>
|
|
|
- </Modal>*/}
|
|
|
<Popover title='常用语' trigger='click'
|
|
|
content={fastItems}
|
|
|
visible={fastModalOpen}
|
|
|
@@ -401,8 +416,6 @@ class Approval extends Component {
|
|
|
<div className='gray-line' style={{ height: '6px' }}></div>
|
|
|
<div className='menuParent'>
|
|
|
<div className={takeoverAble ? 'menuItem' : 'displayNone'}
|
|
|
- // 接管逻辑暂未实现
|
|
|
- // <div className={takeoverAble ? 'displayNone' : 'displayNone'}
|
|
|
onClick={this.approvalTakeover}>接管
|
|
|
</div>
|
|
|
<div className={takeoverAble ? '' : 'displayNone'}
|
|
|
@@ -412,6 +425,20 @@ class Approval extends Component {
|
|
|
height: '24px',
|
|
|
}}></div>
|
|
|
|
|
|
+ <div className={(approvalStatus === 0 && !takeoverAble)
|
|
|
+ ? 'menuItem'
|
|
|
+ : 'displayNone'}
|
|
|
+ onClick={this.approvalChange}>变更
|
|
|
+ </div>
|
|
|
+ <div className={(approvalStatus === 0 && !takeoverAble)
|
|
|
+ ? ''
|
|
|
+ : 'displayNone'}
|
|
|
+ style={{
|
|
|
+ background: '#cccccc',
|
|
|
+ width: '1px',
|
|
|
+ height: '24px',
|
|
|
+ }}></div>
|
|
|
+
|
|
|
<div className={agreeAble ? 'menuItem' : 'displayNone'}
|
|
|
onClick={this.approvalAgree}>同意
|
|
|
</div>
|
|
|
@@ -428,10 +455,103 @@ class Approval extends Component {
|
|
|
</div>
|
|
|
</div>
|
|
|
}
|
|
|
+ {/*变更处理人弹出框*/}
|
|
|
+ {this.getChangeModal()}
|
|
|
</div>
|
|
|
</div>
|
|
|
}
|
|
|
|
|
|
+ getChangeModal () {
|
|
|
+ const {
|
|
|
+ changeModalOpen,//变更处理人弹框是否显示
|
|
|
+ changeDataSource,//变更处理人列表
|
|
|
+ } = this.state
|
|
|
+ return <Modal visible={changeModalOpen}
|
|
|
+ animationType={'slide-up'}
|
|
|
+ onClose={() => {
|
|
|
+ this.setState({
|
|
|
+ changeModalOpen: false,
|
|
|
+ })
|
|
|
+ }}
|
|
|
+ style={{
|
|
|
+ height: '80vh',
|
|
|
+ }}
|
|
|
+ title={'变更处理人'}
|
|
|
+ popup
|
|
|
+ >
|
|
|
+ <SearchBar
|
|
|
+ placeholder={'搜索人员'}
|
|
|
+ maxLength={12}
|
|
|
+ onChange={value => {
|
|
|
+ if (isObjEmpty(value)) {
|
|
|
+ this.setState({
|
|
|
+ changeDataSource: changeDataSource.cloneWithRows(
|
|
|
+ mEmployeeList),
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ let searchList = []
|
|
|
+ if (!isObjEmpty(mEmployeeList)) {
|
|
|
+ mEmployeeList.forEach(item => {
|
|
|
+ if (!isObjNull(item)
|
|
|
+ && (
|
|
|
+ strContain(item.EM_CODE, value)
|
|
|
+ || strContain(item.EM_NAME, value)
|
|
|
+ || strContain(item.EM_POSITION, value)
|
|
|
+ || strContain(item.EM_DEFAULTORNAME, value)
|
|
|
+ || strContain(item.EM_DEPART, value)
|
|
|
+ || strContain(item.EM_MOBILE, value)
|
|
|
+ || strContain(item.EM_EMAIL, value)
|
|
|
+ || strContain(item.COMPANY, value)
|
|
|
+ )) {
|
|
|
+ searchList.push(item)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.setState({
|
|
|
+ changeDataSource: changeDataSource.cloneWithRows(
|
|
|
+ searchList),
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }}
|
|
|
+ onClear={value => {
|
|
|
+ this.setState({
|
|
|
+ changeDataSource: changeDataSource.cloneWithRows(
|
|
|
+ mEmployeeList),
|
|
|
+ })
|
|
|
+ }}
|
|
|
+ onCancel={() => {
|
|
|
+ this.setState({
|
|
|
+ changeDataSource: changeDataSource.cloneWithRows(
|
|
|
+ mEmployeeList),
|
|
|
+ })
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <ListView
|
|
|
+ dataSource={this.state.changeDataSource}
|
|
|
+ renderRow={(rowData, sectionID, rowID) => {
|
|
|
+ // console.log('raomeng', rowData)
|
|
|
+ // console.log('raomeng', sectionID)
|
|
|
+ // console.log('raomeng', rowID)
|
|
|
+ return <List.Item
|
|
|
+ key={rowID}
|
|
|
+ wrap
|
|
|
+ onClick={this.onChangeSelect.bind(this,
|
|
|
+ rowData)}>
|
|
|
+ <EmployeeItem employee={rowData}/>
|
|
|
+ </List.Item>
|
|
|
+ }}
|
|
|
+ style={{
|
|
|
+ height: '80vh',
|
|
|
+ overflow: 'auto',
|
|
|
+ }}
|
|
|
+ pageSize={4}
|
|
|
+ onScroll={() => {}}
|
|
|
+ scrollRenderAheadDistance={500}
|
|
|
+ onEndReachedThreshold={10}
|
|
|
+ />
|
|
|
+ </Modal>
|
|
|
+ }
|
|
|
+
|
|
|
initPageState = () => {
|
|
|
this.initData()
|
|
|
this.setState({
|
|
|
@@ -445,6 +565,7 @@ class Approval extends Component {
|
|
|
disagreeAble: true,//不同意按钮是否显示
|
|
|
agreeAble: true,//同意按钮是否显示
|
|
|
takeoverAble: false,//接管按钮是否显示
|
|
|
+ changeAble: false,//变更处理人按钮是否显示
|
|
|
optionAble: false,//底部审批操作布局是否显示
|
|
|
nodesTagAble: false,//审批节点切换是否显示
|
|
|
|
|
|
@@ -458,6 +579,11 @@ class Approval extends Component {
|
|
|
enclosureList: [],//附件
|
|
|
nodeList: [],//审批节点
|
|
|
pointsList: [],//要点
|
|
|
+
|
|
|
+ changeModalOpen: false,//变更处理人弹框是否显示
|
|
|
+ changeDataSource: new ListView.DataSource({
|
|
|
+ rowHasChanged: (row1, row2) => row1 !== row2,
|
|
|
+ }),//变更处理人列表
|
|
|
},
|
|
|
)
|
|
|
}
|
|
|
@@ -583,6 +709,7 @@ class Approval extends Component {
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
+ mEmcode = infoObject.dealmancode
|
|
|
mApprovalRecord.processInstanceId = infoObject.InstanceId
|
|
|
mApprovalRecord.isForknode = (getIntValue(infoObject, 'forknode') ===
|
|
|
0)
|
|
|
@@ -591,7 +718,7 @@ class Approval extends Component {
|
|
|
let recordName = getStrValue(currentnode, 'jp_launcherName')
|
|
|
let jp_nodeDealMan = getStrValue(currentnode, 'jp_nodeDealMan')
|
|
|
mApprovalRecord.currentNodeMan = jp_nodeDealMan
|
|
|
- if (isObjNull(jp_nodeDealMan)) {
|
|
|
+ if (isObjEmpty(jp_nodeDealMan)) {
|
|
|
this.setState({
|
|
|
disagreeAble: false,
|
|
|
agreeAble: false,
|
|
|
@@ -627,7 +754,7 @@ class Approval extends Component {
|
|
|
})
|
|
|
} else {
|
|
|
this.setState({
|
|
|
- approvalStatus: (mType === undefined || mType == 0) ? 0 : 3,
|
|
|
+ approvalStatus: (mType === undefined || mType == 0) ? 0 : 4,
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
@@ -1624,11 +1751,42 @@ class Approval extends Component {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 变更处理人
|
|
|
+ */
|
|
|
+ approvalChange = () => {
|
|
|
+ if (!isObjEmpty(mEmployeeList)) {
|
|
|
+ this.setState({
|
|
|
+ changeModalOpen: true,
|
|
|
+ changeDataSource: this.state.changeDataSource.cloneWithRows(
|
|
|
+ mEmployeeList),
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ Toast.loading('人员资料获取中', 0)
|
|
|
+ fetchGet(mBaseUrl + '/mobile/getAllHrorgEmps.action', {
|
|
|
+ master: mMaster,
|
|
|
+ }).then(response => {
|
|
|
+ Toast.hide()
|
|
|
+ mEmployeeList = response.employees
|
|
|
+ this.setState({
|
|
|
+ changeModalOpen: true,
|
|
|
+ changeDataSource: this.state.changeDataSource.cloneWithRows(
|
|
|
+ mEmployeeList),
|
|
|
+ })
|
|
|
+ }).catch(error => {
|
|
|
+ Toast.hide()
|
|
|
+ if (typeof error === 'string') {
|
|
|
+ message.error(error)
|
|
|
+ } else {
|
|
|
+ message.error('组织架构获取失败')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//接管单据
|
|
|
approvalTakeover = () => {
|
|
|
- console.log('接管')
|
|
|
- // common/takeOverTask.action
|
|
|
- Toast.loading('正在接管单据...', 0)
|
|
|
+ Toast.loading('正在接管单据', 0)
|
|
|
fetchPost(mBaseUrl + '/common/takeOverTask.action', {
|
|
|
em_code: mEmcode,
|
|
|
nodeId: mNodeId,
|
|
|
@@ -1685,9 +1843,10 @@ class Approval extends Component {
|
|
|
Toast.hide()
|
|
|
this.setState({
|
|
|
loading: false,
|
|
|
- finished: true,
|
|
|
- finishMsg: '单据不同意成功',
|
|
|
- finishSuccess: true,
|
|
|
+ // finished: true,
|
|
|
+ // finishMsg: '单据不同意成功',
|
|
|
+ // finishSuccess: true,
|
|
|
+ approvalStatus: 2,
|
|
|
})
|
|
|
if (mType == 0) {
|
|
|
let { homeState: { receiveState: { tabIndex, itemIndex, listData } } } = this.props
|
|
|
@@ -1793,9 +1952,10 @@ class Approval extends Component {
|
|
|
message.success('单据审批成功')
|
|
|
this.setState({
|
|
|
loading: false,
|
|
|
- finished: true,
|
|
|
- finishMsg: '单据审批成功',
|
|
|
- finishSuccess: true,
|
|
|
+ // finished: true,
|
|
|
+ // finishMsg: '单据审批成功',
|
|
|
+ // finishSuccess: true,
|
|
|
+ approvalStatus: 1,
|
|
|
})
|
|
|
if (mType == 0) {
|
|
|
let { homeState: { receiveState: { tabIndex, itemIndex, listData } } } = this.props
|
|
|
@@ -1821,6 +1981,68 @@ class Approval extends Component {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 变更处理人
|
|
|
+ * @param rowData
|
|
|
+ */
|
|
|
+ onChangeSelect = rowData => {
|
|
|
+ if (!isObjNull(rowData)) {
|
|
|
+ let selectChange = rowData
|
|
|
+
|
|
|
+ Toast.loading('处理人变更中', 0)
|
|
|
+ fetchPost(mBaseUrl + '/common/setAssignee.action', {
|
|
|
+ taskId: mNodeId,
|
|
|
+ master: mMaster,
|
|
|
+ assigneeId: selectChange.EM_CODE,
|
|
|
+ processInstanceId: mApprovalRecord.processInstanceId,
|
|
|
+ description: this.state.approvalContent,
|
|
|
+ _center: 0,
|
|
|
+ _noc: 1,
|
|
|
+ }).then(response => {
|
|
|
+ if (response.result == true) {
|
|
|
+ let nextnode = response.nextnode
|
|
|
+ // if (!isObjEmpty(nextnode)) {
|
|
|
+ // mNodeId = nextnode
|
|
|
+ // message.success('处理人变更成功')
|
|
|
+ // message.success('正在自动跳转下一条')
|
|
|
+ // this.initPageState()
|
|
|
+ // this.getCurrentNode()
|
|
|
+ // } else {
|
|
|
+ Toast.hide()
|
|
|
+ message.success('处理人变更成功')
|
|
|
+ if (mType == 0) {
|
|
|
+ let { homeState: { receiveState: { tabIndex, itemIndex, listData } } } = this.props
|
|
|
+ if (tabIndex == 0 && !isObjEmpty(listData) && listData.length >
|
|
|
+ itemIndex) {
|
|
|
+ listData.splice(itemIndex, 1)
|
|
|
+ saveReceiveState({ listData })()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // message.warn('没有下一条数据')
|
|
|
+ this.props.history.goBack()
|
|
|
+ // }
|
|
|
+ } else {
|
|
|
+ Toast.hide()
|
|
|
+ message.error('变更处理人失败')
|
|
|
+ }
|
|
|
+ }).catch(error => {
|
|
|
+ Toast.hide()
|
|
|
+ if (typeof error === 'string') {
|
|
|
+ message.error(error)
|
|
|
+ } else {
|
|
|
+ message.error('处理人变更异常')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ this.setState({
|
|
|
+ changeDataSource: new ListView.DataSource({
|
|
|
+ rowHasChanged: (row1, row2) => row1 !== row2,
|
|
|
+ }),
|
|
|
+ changeModalOpen: false,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
inputAllInput = () => {
|
|
|
const { mainList, detailList } = this.state
|
|
|
|