|
|
@@ -4,6 +4,7 @@
|
|
|
*/
|
|
|
|
|
|
import React from 'react';
|
|
|
+import ReactDOM from 'react-dom';
|
|
|
import 'bootstrap/dist/css/bootstrap.css'
|
|
|
import 'bootstrap/dist/css/bootstrap.min.css'
|
|
|
import './LeaveListPage.css'
|
|
|
@@ -16,11 +17,13 @@ import {API,_baseURL} from "../../configs/api.config";
|
|
|
import {connect} from 'react-redux'
|
|
|
import LeaveItem from './LeaveItem';
|
|
|
import RefreshLayout from "../../components/RefreshLayout";
|
|
|
+import {saveListState} from "../../redux/actions/listState";
|
|
|
+import {getIntValue, getStrValue, isObjEmpty} from "../../utils/common";
|
|
|
+import {Toast} from 'antd-mobile';
|
|
|
|
|
|
let LEAVE_LIST_URL = ''
|
|
|
-/**
|
|
|
- * Created by Arison on 11:22.
|
|
|
- */
|
|
|
+let mPageIndex = 0
|
|
|
+
|
|
|
class LeaveListPage extends React.Component{
|
|
|
constructor(props){
|
|
|
super(props);
|
|
|
@@ -28,7 +31,7 @@ class LeaveListPage extends React.Component{
|
|
|
name:'LeaveListPage',
|
|
|
detailVisible: false,
|
|
|
pageIndex:1,
|
|
|
- pageSize:5,
|
|
|
+ pageSize:10,
|
|
|
listItem:null,
|
|
|
index:null,
|
|
|
role:this.props.match.params.role,
|
|
|
@@ -44,7 +47,20 @@ class LeaveListPage extends React.Component{
|
|
|
}
|
|
|
|
|
|
componentDidMount(){
|
|
|
- this.getLeaveListData();
|
|
|
+ console.log('listState', this.props.listState)
|
|
|
+ if (this.props.listState && !isObjEmpty(this.props.listState.listData)) {
|
|
|
+ this.setState({
|
|
|
+ data: this.props.listState.listData,
|
|
|
+ isLoading: false,
|
|
|
+ }, () => {
|
|
|
+ ReactDOM.findDOMNode(this.container).scrollTop = this.props.listState.scrollTop
|
|
|
+ })
|
|
|
+ mPageIndex = this.props.listState.pageIndex
|
|
|
+ } else {
|
|
|
+ // Toast.loading('数据加载中...', 0)
|
|
|
+ mPageIndex = 0
|
|
|
+ this.getLeaveListData();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -54,15 +70,15 @@ class LeaveListPage extends React.Component{
|
|
|
|
|
|
<RefreshLayout
|
|
|
refreshing={this.state.isRefreshing}
|
|
|
- // ref={el => {
|
|
|
- // this.container = el
|
|
|
- // }}
|
|
|
+ ref={el => {
|
|
|
+ this.container = el
|
|
|
+ }}
|
|
|
onRefresh={this.getListData}>
|
|
|
<Skeleton loading={this.state.isLoading} active paragraph={{rows: 3}}>
|
|
|
<List dataSource={this.state.data}
|
|
|
- renderItem={itemdata =>(
|
|
|
+ renderItem={(itemdata,index) =>(
|
|
|
<List.Item id="row_background" >
|
|
|
- <LeaveItem itemdata={itemdata} role={this.state.role}></LeaveItem>
|
|
|
+ <LeaveItem itemdata={itemdata} role={this.state.role} index = {index} onItemClick={this.onItemClick.bind(this)}></LeaveItem>
|
|
|
</List.Item>
|
|
|
)}/>
|
|
|
</Skeleton>
|
|
|
@@ -82,14 +98,15 @@ class LeaveListPage extends React.Component{
|
|
|
})
|
|
|
} catch (e) {
|
|
|
}
|
|
|
-
|
|
|
+ mPageIndex = 1
|
|
|
if (this.state.role === "teacher") {
|
|
|
console.log("pageIndex",this.state.pageIndex);
|
|
|
fetchPost(API.leaveListTeacher, {
|
|
|
teacherId: this.props.userInfo.user.userFunId,
|
|
|
- pageIndex: this.state.pageIndex,
|
|
|
+ pageIndex: mPageIndex,
|
|
|
pageSize: this.state.pageSize
|
|
|
}).then((response) => {
|
|
|
+ Toast.hide()
|
|
|
this.state.data.length = 0;
|
|
|
for (let i = 0; i < response.data.length; i++) {
|
|
|
let model = {
|
|
|
@@ -123,7 +140,7 @@ class LeaveListPage extends React.Component{
|
|
|
if (this.state.role === "parent") {
|
|
|
fetchPost(API.leaveListParent, {
|
|
|
stuId: this.props.userInfo.user.student.stuId,
|
|
|
- pageIndex: this.state.pageIndex,
|
|
|
+ pageIndex: mPageIndex,
|
|
|
pageSize: this.state.pageSize
|
|
|
}).then((response) => {
|
|
|
this.state.data.length = 0;
|
|
|
@@ -156,7 +173,16 @@ class LeaveListPage extends React.Component{
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ onItemClick = (index) => {
|
|
|
+ console.log('onItemClick',index)
|
|
|
+ console.log('listState', ReactDOM.findDOMNode(this.container).scrollTop)
|
|
|
+ saveListState({
|
|
|
+ scrollTop: ReactDOM.findDOMNode(this.container).scrollTop,
|
|
|
+ listData: this.state.data,
|
|
|
+ pageIndex: mPageIndex,
|
|
|
+ itemIndex: index,
|
|
|
+ })()
|
|
|
+ }
|
|
|
loadMoreAction=()=> {
|
|
|
try {
|
|
|
this.setState({
|
|
|
@@ -165,23 +191,22 @@ class LeaveListPage extends React.Component{
|
|
|
} catch (e) {
|
|
|
}
|
|
|
setTimeout(() => {
|
|
|
- this.state.pageIndex++;
|
|
|
if (this.state.role === "teacher") {
|
|
|
- fetchGet(API.leaveListTeacher, {
|
|
|
+ fetchPost(API.leaveListTeacher, {
|
|
|
userId: this.props.userInfo.user.userFunId,
|
|
|
- pageIndex: this.state.pageIndex,
|
|
|
+ pageIndex:mPageIndex,
|
|
|
pageSize: this.state.pageSize
|
|
|
}).then((response) => {
|
|
|
if(response.data.leaveNotify.length>0){
|
|
|
for (let i = 0; i < response.data.leaveNotify.length; i++) {
|
|
|
let model = {
|
|
|
- lvId:response.data.leaveNotify[i].lvId,
|
|
|
- title: response.data.leaveNotify[i].lvName,
|
|
|
- endTime: response.data.leaveNotify[i].endDate,
|
|
|
- startTime: response.data.leaveNotify[i].startDate,
|
|
|
- content: response.data.leaveNotify[i].lvDetails,
|
|
|
- enclosure:response.data.leaveNotify[i].enclosure,
|
|
|
- leaveMessages:response.data.leaveNotify[i].leaveMessages
|
|
|
+ lvId:response.data[i].lvId,
|
|
|
+ title: response.data[i].lvTitle,
|
|
|
+ endTime: response.data[i].endDate,
|
|
|
+ startTime: response.data[i].startDate,
|
|
|
+ content: response.data[i].lvDetails,
|
|
|
+ enclosure:response.data[i].enclosure,
|
|
|
+ leaveMessages:response.data[i].oaLeaveReplyDOS
|
|
|
};
|
|
|
this.state.data.push(model);
|
|
|
}
|
|
|
@@ -204,9 +229,9 @@ class LeaveListPage extends React.Component{
|
|
|
})
|
|
|
}
|
|
|
if (this.state.role === "parent") {
|
|
|
- fetchGet(API.leaveListParent, {
|
|
|
+ fetchPost(API.leaveListParent, {
|
|
|
stuId: this.props.userInfo.user.student.stuId,
|
|
|
- pageIndex: this.state.pageIndex,
|
|
|
+ pageIndex: mPageIndex,
|
|
|
pageSize: this.state.pageSize
|
|
|
}).then((response) => {
|
|
|
console.log("response:" + JSON.stringify(response));
|
|
|
@@ -214,12 +239,12 @@ class LeaveListPage extends React.Component{
|
|
|
for (let i = 0; i < response.data.length; i++) {
|
|
|
let model = {
|
|
|
lvId:response.data[i].lvId,
|
|
|
- title: response.data[i].lvName,
|
|
|
+ title: response.data[i].lvTitle,
|
|
|
endTime: response.data[i].endDate,
|
|
|
startTime: response.data[i].startDate,
|
|
|
content: response.data[i].lvDetails,
|
|
|
enclosure:response.data[i].enclosure,
|
|
|
- leaveMessages:response.data[i].leaveMessages
|
|
|
+ leaveMessages:response.data[i].oaLeaveReplyDOS
|
|
|
};
|
|
|
this.state.data.push(model);
|
|
|
}
|
|
|
@@ -245,9 +270,11 @@ class LeaveListPage extends React.Component{
|
|
|
|
|
|
}
|
|
|
getListData= () =>{
|
|
|
- if(this.state.pageIndex == 1){
|
|
|
+ if(mPageIndex == 0){
|
|
|
+ mPageIndex = 1
|
|
|
this.getLeaveListData()
|
|
|
}else {
|
|
|
+ mPageIndex++;
|
|
|
this.loadMoreAction()
|
|
|
}
|
|
|
}
|
|
|
@@ -269,6 +296,7 @@ class LeaveListPage extends React.Component{
|
|
|
|
|
|
let mapStateToProps = (state) => ({
|
|
|
userInfo: {...state.redUserInfo},
|
|
|
+ listState: {...state.redListState}
|
|
|
})
|
|
|
|
|
|
let mapDispatchToProps = (dispatch) => ({})
|