|
|
@@ -15,16 +15,27 @@ import { isObjEmpty } from '../../utils/common'
|
|
|
import { fetchGet } from '../../utils/fetchRequest'
|
|
|
import { connect } from 'react-redux'
|
|
|
import {
|
|
|
- saveNewListState,
|
|
|
- saveReceiveListState,
|
|
|
+ clearHomeState,
|
|
|
+ clearNewState,
|
|
|
+ clearReceiveState,
|
|
|
+ clearSendState,
|
|
|
+ freshHomeState,
|
|
|
+ saveNewState,
|
|
|
+ saveReceiveState,
|
|
|
+ saveSendState,
|
|
|
} from '../../redux/actions/homeState'
|
|
|
import ApprovalItem from '../../components/approvalItem/ApprovalItem'
|
|
|
|
|
|
-let mBaseUrl = 'https://218.17.253.75:9443/uas_dev'
|
|
|
-// let mBaseUrl = 'http://erp.yitoa.com:8888/ERP'
|
|
|
+let mBaseUrl = 'http://29226oq576.qicp.vip/uas/'
|
|
|
+// let mBaseUrl = 'https://218.17.253.75:9443/uas_dev/'
|
|
|
+// let mBaseUrl = 'http://erp.yitoa.com:8888/ERP/'
|
|
|
+
|
|
|
+let mMaster = 'UAS_DEV'
|
|
|
+
|
|
|
const mPageSize = 20
|
|
|
let mTodoIndex = 0
|
|
|
let mDoneIndex = 0
|
|
|
+let mSendIndex = 0
|
|
|
|
|
|
class ApprovalHome extends Component {
|
|
|
|
|
|
@@ -32,14 +43,16 @@ class ApprovalHome extends Component {
|
|
|
super()
|
|
|
|
|
|
this.state = {
|
|
|
- selectedTab: 0,
|
|
|
tabHidden: false,
|
|
|
isNewMenuLoading: true,
|
|
|
isReceiveTodoLoading: true,
|
|
|
isReceiveDoneLoading: true,
|
|
|
- isReceiveTodoRefresh: true,
|
|
|
- isReceiveDoneRefresh: true,
|
|
|
+ isReceiveTodoRefresh: false,
|
|
|
+ isReceiveDoneRefresh: false,
|
|
|
receiveHeight: document.documentElement.clientHeight,
|
|
|
+ sendHeight: document.documentElement.clientHeight,
|
|
|
+ isSendRefresh: false,
|
|
|
+ isSendLoading: true,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -47,30 +60,25 @@ class ApprovalHome extends Component {
|
|
|
// 用于刷新组建确认高度
|
|
|
if (ReactDOM.findDOMNode(this.contain)) {
|
|
|
const hei = this.state.receiveHeight -
|
|
|
- ReactDOM.findDOMNode(this.contain).offsetTop
|
|
|
+ ReactDOM.findDOMNode(this.contain).offsetTop - 50
|
|
|
this.setState({
|
|
|
receiveHeight: hei,
|
|
|
})
|
|
|
}
|
|
|
+ if (ReactDOM.findDOMNode(this.sendList)) {
|
|
|
+ const hei = this.state.sendHeight -
|
|
|
+ ReactDOM.findDOMNode(this.sendList).offsetTop - 50
|
|
|
+ this.setState({
|
|
|
+ sendHeight: hei,
|
|
|
+ })
|
|
|
+ }
|
|
|
document.title = '审批'
|
|
|
|
|
|
const { homeState } = this.props
|
|
|
- const { newState, receiveState, sendState } = homeState
|
|
|
- this.mySwiper = new Swiper('.swiper-container', {
|
|
|
- autoplay: false,
|
|
|
- loop: false,
|
|
|
- noSwiping: false,
|
|
|
- initialSlide: receiveState.tabIndex,
|
|
|
- on: {
|
|
|
- slideChangeTransitionEnd: function () {
|
|
|
- saveReceiveListState({
|
|
|
- tabIndex: this.activeIndex,
|
|
|
- })()
|
|
|
- },
|
|
|
- },
|
|
|
- })
|
|
|
+ const { newState, receiveState, sendState, selectedTab } = homeState
|
|
|
+
|
|
|
+ this.initSwiper(receiveState)
|
|
|
|
|
|
- const { selectedTab } = this.state
|
|
|
switch (selectedTab) {
|
|
|
case 0: {
|
|
|
this.initNew(newState)
|
|
|
@@ -81,6 +89,7 @@ class ApprovalHome extends Component {
|
|
|
break
|
|
|
}
|
|
|
case 2: {
|
|
|
+ this.initSend(sendState)
|
|
|
break
|
|
|
}
|
|
|
default:
|
|
|
@@ -88,6 +97,22 @@ class ApprovalHome extends Component {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ initSwiper (receiveState) {
|
|
|
+ this.mySwiper = new Swiper('.swiper-container', {
|
|
|
+ autoplay: false,
|
|
|
+ loop: false,
|
|
|
+ noSwiping: false,
|
|
|
+ initialSlide: receiveState.tabIndex,
|
|
|
+ on: {
|
|
|
+ slideChangeTransitionEnd: function () {
|
|
|
+ saveReceiveState({
|
|
|
+ tabIndex: this.activeIndex,
|
|
|
+ })()
|
|
|
+ },
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
initNew (newState) {
|
|
|
if (!isObjEmpty(newState.newMenuList)) {
|
|
|
this.setState({
|
|
|
@@ -133,8 +158,21 @@ class ApprovalHome extends Component {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- componentWillUnmount () {
|
|
|
+ initSend (sendState) {
|
|
|
+ if (!isObjEmpty(sendState.sendList)) {
|
|
|
+ this.setState({
|
|
|
+ isSendLoading: false,
|
|
|
+ }, () => {
|
|
|
+ ReactDOM.findDOMNode(this.sendList).scrollTop =
|
|
|
+ sendState.scrollTop
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.loadSendList()
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ componentWillUnmount () {
|
|
|
+ // clearHomeState()()
|
|
|
}
|
|
|
|
|
|
render () {
|
|
|
@@ -168,7 +206,7 @@ class ApprovalHome extends Component {
|
|
|
style={{ color: '#949494' }}/>}
|
|
|
selectedIcon={<Icon type="file-add" theme={'filled'}
|
|
|
style={{ color: '#33A3F4' }}/>}
|
|
|
- selected={this.state.selectedTab === 0}
|
|
|
+ selected={this.props.homeState.selectedTab === 0}
|
|
|
// badge={''}
|
|
|
onPress={this.onTab1Selected}
|
|
|
>
|
|
|
@@ -190,7 +228,7 @@ class ApprovalHome extends Component {
|
|
|
style={{ color: '#949494' }}/>}
|
|
|
selectedIcon={<Icon type="file-add" theme={'filled'}
|
|
|
style={{ color: '#33A3F4' }}/>}
|
|
|
- selected={this.state.selectedTab === 1}
|
|
|
+ selected={this.props.homeState.selectedTab === 1}
|
|
|
// badge={''}
|
|
|
onPress={this.onTab2Selected}
|
|
|
>
|
|
|
@@ -212,7 +250,7 @@ class ApprovalHome extends Component {
|
|
|
style={{ color: '#949494' }}/>}
|
|
|
selectedIcon={<Icon type="file-add" theme={'filled'}
|
|
|
style={{ color: '#33A3F4' }}/>}
|
|
|
- selected={this.state.selectedTab === 2}
|
|
|
+ selected={this.props.homeState.selectedTab === 2}
|
|
|
// badge={''}
|
|
|
onPress={this.onTab3Selected}
|
|
|
>
|
|
|
@@ -222,28 +260,44 @@ class ApprovalHome extends Component {
|
|
|
}
|
|
|
|
|
|
onTab1Selected = () => {
|
|
|
- const { selectedTab, isNewMenuLoading } = this.state
|
|
|
- const { homeState: { newState } } = this.props
|
|
|
+ const { isNewMenuLoading } = this.state
|
|
|
+ const { homeState: { newState, selectedTab } } = this.props
|
|
|
if (selectedTab === 0) {
|
|
|
// 刷新页面
|
|
|
if (!isNewMenuLoading) {
|
|
|
+ this.setState({
|
|
|
+ isNewMenuLoading: true,
|
|
|
+ })
|
|
|
+ clearNewState()()
|
|
|
this.getNewMenuData()
|
|
|
}
|
|
|
} else {
|
|
|
if (isObjEmpty(newState.newMenuList)) {
|
|
|
+ this.setState({
|
|
|
+ isNewMenuLoading: true,
|
|
|
+ })
|
|
|
this.getNewMenuData()
|
|
|
+ } else {
|
|
|
+ this.setState({
|
|
|
+ isNewMenuLoading: false,
|
|
|
+ }, () => {
|
|
|
+ ReactDOM.findDOMNode(this.newList).scrollTop =
|
|
|
+ newState.scrollTop
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
- this.setState({
|
|
|
+ freshHomeState({
|
|
|
selectedTab: 0,
|
|
|
- })
|
|
|
+ })()
|
|
|
}
|
|
|
|
|
|
onTab2Selected = () => {
|
|
|
- const { selectedTab, isReceiveTodoLoading, isReceiveDoneLoading } = this.state
|
|
|
- const { homeState: { receiveState } } = this.props
|
|
|
+ const { isReceiveTodoLoading, isReceiveDoneLoading } = this.state
|
|
|
+ const { homeState: { receiveState, selectedTab } } = this.props
|
|
|
if (selectedTab === 1) {
|
|
|
// 刷新页面
|
|
|
+ clearReceiveState()()
|
|
|
+ this.mySwiper.slideTo(0, 0, false)
|
|
|
if (!isReceiveTodoLoading) {
|
|
|
this.setState({
|
|
|
isReceiveTodoLoading: true,
|
|
|
@@ -290,21 +344,41 @@ class ApprovalHome extends Component {
|
|
|
mDoneIndex = receiveState.pageIndex2
|
|
|
}
|
|
|
}
|
|
|
- this.setState({
|
|
|
+ freshHomeState({
|
|
|
selectedTab: 1,
|
|
|
- })
|
|
|
+ })()
|
|
|
}
|
|
|
|
|
|
onTab3Selected = () => {
|
|
|
- const { selectedTab } = this.state
|
|
|
+ const { isSendLoading } = this.state
|
|
|
+ const { homeState: { sendState, selectedTab } } = this.props
|
|
|
if (selectedTab === 2) {
|
|
|
// 刷新页面
|
|
|
- console.log('raomeng', 'tab3')
|
|
|
+ clearSendState()()
|
|
|
+ if (!isSendLoading) {
|
|
|
+ this.setState({
|
|
|
+ isSendLoading: true,
|
|
|
+ })
|
|
|
+ this.loadSendList()
|
|
|
+ }
|
|
|
} else {
|
|
|
+ if (isObjEmpty(sendState.sendList)) {
|
|
|
+ this.setState({
|
|
|
+ isSendLoading: true,
|
|
|
+ })
|
|
|
+ this.loadSendList()
|
|
|
+ } else {
|
|
|
+ this.setState({
|
|
|
+ isSendLoading: false,
|
|
|
+ }, () => {
|
|
|
+ ReactDOM.findDOMNode(this.sendList).scrollTop =
|
|
|
+ sendState.scrollTop
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
- this.setState({
|
|
|
+ freshHomeState({
|
|
|
selectedTab: 2,
|
|
|
- })
|
|
|
+ })()
|
|
|
}
|
|
|
|
|
|
renderNewTab = () => {
|
|
|
@@ -343,7 +417,7 @@ class ApprovalHome extends Component {
|
|
|
this.loadTodoList()
|
|
|
}
|
|
|
} else {
|
|
|
- saveReceiveListState({
|
|
|
+ saveReceiveState({
|
|
|
tabIndex: 0,
|
|
|
})()
|
|
|
this.mySwiper.slideTo(0, 300, false)
|
|
|
@@ -362,7 +436,7 @@ class ApprovalHome extends Component {
|
|
|
this.loadDoneList()
|
|
|
}
|
|
|
} else {
|
|
|
- saveReceiveListState({
|
|
|
+ saveReceiveState({
|
|
|
tabIndex: 1,
|
|
|
})()
|
|
|
this.mySwiper.slideTo(1, 300, false)
|
|
|
@@ -386,6 +460,31 @@ class ApprovalHome extends Component {
|
|
|
</div>
|
|
|
)
|
|
|
}
|
|
|
+ renderSendTab = () => {
|
|
|
+ return (
|
|
|
+ <div className='receive-content-root'>
|
|
|
+ <RefreshLayout
|
|
|
+ ref={el => {
|
|
|
+ this.sendList = el
|
|
|
+ }}
|
|
|
+ refreshing={this.state.isSendRefresh}
|
|
|
+ onRefresh={this.loadSendList}
|
|
|
+ height={this.state.sendHeight}>
|
|
|
+ <Skeleton loading={this.state.isSendLoading} active
|
|
|
+ paragraph={{ rows: 4 }}>
|
|
|
+ <List split={false}
|
|
|
+ dataSource={this.props.homeState.sendState.sendList}
|
|
|
+ renderItem={(item, index) => (
|
|
|
+ <ApprovalItem approval={item}
|
|
|
+ onItemClick={this.onSendItemClick.bind(this)}
|
|
|
+ index={index}/>
|
|
|
+ )}/>
|
|
|
+ </Skeleton>
|
|
|
+ </RefreshLayout>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
renderReceiveTodoItems = () => (
|
|
|
<div className='receive-content-root'>
|
|
|
<RefreshLayout
|
|
|
@@ -432,12 +531,6 @@ class ApprovalHome extends Component {
|
|
|
</div>
|
|
|
)
|
|
|
|
|
|
- renderSendTab = () => {
|
|
|
- return (
|
|
|
- <div>我发起的</div>
|
|
|
- )
|
|
|
- }
|
|
|
-
|
|
|
getNewMenu = () => {
|
|
|
const { homeState } = this.props
|
|
|
let newMenu = []
|
|
|
@@ -463,11 +556,49 @@ class ApprovalHome extends Component {
|
|
|
}
|
|
|
|
|
|
onFuncClick = (obj) => {
|
|
|
+ saveNewState({
|
|
|
+ scrollTop: ReactDOM.findDOMNode(this.newList).scrollTop,
|
|
|
+ })()
|
|
|
+ }
|
|
|
|
|
|
+ onReceiveItemClick = (index, approval) => {
|
|
|
+ saveReceiveState({
|
|
|
+ scrollTop: ReactDOM.findDOMNode(this.todoTab).scrollTop,
|
|
|
+ scrollTop2: ReactDOM.findDOMNode(this.doneTab).scrollTop,
|
|
|
+ itemIndex: index,
|
|
|
+ })()
|
|
|
+ let jp_form = approval.JP_FORM
|
|
|
+ let currentmaster = approval.CURRENTMASTER
|
|
|
+ if (!isObjEmpty(jp_form) && !isObjEmpty(currentmaster) &&
|
|
|
+ (jp_form.indexOf(currentmaster) != -1)) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ currentmaster = mMaster
|
|
|
+ }
|
|
|
+ this.props.history.push('/approval/%7B%22' +
|
|
|
+ 'master%22%3A%22' + currentmaster
|
|
|
+ + '%22%2C%22nodeId%22%3A' + approval.JP_NODEID
|
|
|
+ + '%2C%22baseUrl%22%3A%22' + encodeURIComponent(mBaseUrl)
|
|
|
+ + '%22%7D')
|
|
|
}
|
|
|
|
|
|
- onReceiveItemClick = () => {
|
|
|
+ onSendItemClick = (index, approval) => {
|
|
|
+ saveSendState({
|
|
|
+ scrollTop: ReactDOM.findDOMNode(this.sendList).scrollTop,
|
|
|
+ })()
|
|
|
+ let jp_form = approval.JP_FORM
|
|
|
+ let currentmaster = approval.CURRENTMASTER
|
|
|
+ if (!isObjEmpty(jp_form) && !isObjEmpty(currentmaster) &&
|
|
|
+ (jp_form.indexOf(currentmaster) != -1)) {
|
|
|
|
|
|
+ } else {
|
|
|
+ currentmaster = mMaster
|
|
|
+ }
|
|
|
+ this.props.history.push('/approval/%7B%22' +
|
|
|
+ 'master%22%3A%22' + currentmaster
|
|
|
+ + '%22%2C%22nodeId%22%3A' + approval.JP_NODEID
|
|
|
+ + '%2C%22baseUrl%22%3A%22' + encodeURIComponent(mBaseUrl)
|
|
|
+ + '%22%7D')
|
|
|
}
|
|
|
|
|
|
getNewMenuData = () => {
|
|
|
@@ -475,7 +606,7 @@ class ApprovalHome extends Component {
|
|
|
isNewMenuLoading: true,
|
|
|
})
|
|
|
|
|
|
- fetchGet(mBaseUrl + '/api/serve/mainPage/getServices.action', {
|
|
|
+ fetchGet(mBaseUrl + 'api/serve/mainPage/getServices.action', {
|
|
|
kind: 'app',
|
|
|
}).then(response => {
|
|
|
this.setState({
|
|
|
@@ -486,7 +617,7 @@ class ApprovalHome extends Component {
|
|
|
if (isObjEmpty(configs)) {
|
|
|
message.warn('菜单数据为空')
|
|
|
} else {
|
|
|
- saveNewListState({
|
|
|
+ saveNewState({
|
|
|
newMenuList: configs,
|
|
|
})()
|
|
|
}
|
|
|
@@ -515,7 +646,7 @@ class ApprovalHome extends Component {
|
|
|
listData.length = 0
|
|
|
}
|
|
|
|
|
|
- fetchGet(mBaseUrl + '/common/desktop/process/toDo.action', {
|
|
|
+ fetchGet(mBaseUrl + 'common/desktop/process/toDo.action', {
|
|
|
count: mPageSize,
|
|
|
page: mTodoIndex,
|
|
|
}).then(response => {
|
|
|
@@ -531,7 +662,7 @@ class ApprovalHome extends Component {
|
|
|
mTodoIndex--
|
|
|
}
|
|
|
}
|
|
|
- saveReceiveListState({
|
|
|
+ saveReceiveState({
|
|
|
listData,
|
|
|
pageIndex: mTodoIndex,
|
|
|
})()
|
|
|
@@ -539,7 +670,7 @@ class ApprovalHome extends Component {
|
|
|
if (mTodoIndex > 1) {
|
|
|
mTodoIndex--
|
|
|
}
|
|
|
- saveReceiveListState({
|
|
|
+ saveReceiveState({
|
|
|
listData,
|
|
|
pageIndex: mTodoIndex,
|
|
|
})()
|
|
|
@@ -568,7 +699,7 @@ class ApprovalHome extends Component {
|
|
|
listData2.length = 0
|
|
|
}
|
|
|
|
|
|
- fetchGet(mBaseUrl + '/common/desktop/process/alreadyDo.action', {
|
|
|
+ fetchGet(mBaseUrl + 'common/desktop/process/alreadyDo.action', {
|
|
|
count: mPageSize,
|
|
|
page: mDoneIndex,
|
|
|
isMobile: 1,
|
|
|
@@ -586,7 +717,7 @@ class ApprovalHome extends Component {
|
|
|
mDoneIndex--
|
|
|
}
|
|
|
}
|
|
|
- saveReceiveListState({
|
|
|
+ saveReceiveState({
|
|
|
listData2,
|
|
|
pageIndex: mDoneIndex,
|
|
|
})()
|
|
|
@@ -594,7 +725,7 @@ class ApprovalHome extends Component {
|
|
|
if (mDoneIndex > 1) {
|
|
|
mDoneIndex--
|
|
|
}
|
|
|
- saveReceiveListState({
|
|
|
+ saveReceiveState({
|
|
|
listData2,
|
|
|
pageIndex: mDoneIndex,
|
|
|
})()
|
|
|
@@ -609,6 +740,61 @@ class ApprovalHome extends Component {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
+
|
|
|
+ loadSendList = () => {
|
|
|
+ mSendIndex++
|
|
|
+ if (!this.state.isSendLoading) {
|
|
|
+ this.setState({
|
|
|
+ isSendRefresh: true,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ let { homeState: { sendState: { sendList } } } = this.props
|
|
|
+ if (mSendIndex === 1) {
|
|
|
+ sendList.length = 0
|
|
|
+ }
|
|
|
+
|
|
|
+ fetchGet(mBaseUrl + 'common/desktop/process/alreadyLaunch.action', {
|
|
|
+ count: mPageSize,
|
|
|
+ page: mSendIndex,
|
|
|
+ isMobile: 1,
|
|
|
+ _do: 1,
|
|
|
+ }).then(response => {
|
|
|
+ this.setState({
|
|
|
+ isSendLoading: false,
|
|
|
+ isSendRefresh: false,
|
|
|
+ })
|
|
|
+ console.log('raomeng', response)
|
|
|
+ if (response && !isObjEmpty(response.data)) {
|
|
|
+ sendList = sendList.concat(response.data)
|
|
|
+ } else {
|
|
|
+ if (mSendIndex > 1) {
|
|
|
+ mSendIndex--
|
|
|
+ }
|
|
|
+ }
|
|
|
+ saveSendState({
|
|
|
+ sendList,
|
|
|
+ pageIndex: mSendIndex,
|
|
|
+ })()
|
|
|
+ }).catch(error => {
|
|
|
+ if (mSendIndex > 1) {
|
|
|
+ mSendIndex--
|
|
|
+ }
|
|
|
+ saveSendState({
|
|
|
+ sendList,
|
|
|
+ pageIndex: mSendIndex,
|
|
|
+ })()
|
|
|
+ this.setState({
|
|
|
+ isSendLoading: false,
|
|
|
+ isSendRefresh: false,
|
|
|
+ })
|
|
|
+ if (typeof error === 'string') {
|
|
|
+ message.error(error)
|
|
|
+ } else {
|
|
|
+ message.error('列表请求异常')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
class MenuGroup extends Component {
|