import React, {Component} from 'react';
import {
View,
Text,
StyleSheet,
ScrollView,
Dimensions, DeviceEventEmitter,
} from 'react-native';
import {Tabs, Provider, Button, Modal, List} from '@ant-design/react-native';
import {createAction} from '../../utils';
import {connect} from 'react-redux';
import CallPhone from '../../components/CallPhone';
import ComponentsStyles from '../../components/ComponentsStyles';
import RefreshFlatList from 'react-native-refresh-flatlist';
const tabs = [
{title: '基本信息', id: 1},
{title: '跟踪记录', id: 2},
];
const {width} = Dimensions.get('window');
@connect(customer => ({...customer}))
class ReviewDetail extends Component {
// 潜客跟踪
constructor(props) {
super(props);
this.state = {
getParm: {
page: 1,
rows: 10,
customer: this.props.navigation.state.params.item.id,
},
moreModelVisible: false,
};
};
componentDidMount() {
this._fetchReviewReoprt();
this._fetchData();
this.refeshReport = DeviceEventEmitter.addListener('refeshReport', (param) => {
this._fetchReviewReoprt(1);
});
this.refeshCustomerDetail = DeviceEventEmitter.addListener('refeshCustomerDetail', (param) => {
this._fetchData(1);
});
}
componentWillUnmount() {
this.refeshReport.remove();
this.refeshCustomerDetail.remove();
}
_fetchData = () => {
this.props.dispatch({
type: 'customer/fetchCustomerDetail',
payload: {id: this.state.getParm.customer},
});
};
_fetchMore = () => {
const {page, total} = this.props.customer;
if (page * this.state.getParm.rows >= total) {
return;
}
const currentPage = page + 1;
this._fetchReviewReoprt(currentPage);
};
_keyExtractor = (item, index) => {
return index.toString();
};
_fetchReviewReoprt = (page) => {
if (page) {
this.state.getParm.page = page;
}
this.props.dispatch(createAction('customer/fetchReviewRecord')(this.state.getParm));
};
baseInfo = (reviewDetailData) => {
return
{reviewDetailData.name}} arrow="empty">
姓名
{reviewDetailData.gender_text}}
arrow="empty">
性别
电话
{'\ue61a'}
CallPhone(reviewDetailData.tel, 1)}>
{reviewDetailData.tel}
{reviewDetailData.address}}
wrap
multipleLine arrow="empty">
地址
{reviewDetailData.village}}
wrap
multipleLine arrow="empty">
小区
{reviewDetailData.source_text}}
arrow="empty">
来源
{reviewDetailData.project_text}}
arrow="empty">
项目
{reviewDetailData.stage_progress_text}}
arrow="empty">
阶段进度
{reviewDetailData.status_text}}
arrow="empty">
状态
{reviewDetailData.track_user_text}}
arrow="empty">
跟踪人员
{reviewDetailData.store_text}}
arrow="empty">
门店
{reviewDetailData.next_time_f}}
arrow="empty">
下次跟踪
{reviewDetailData.enter_count}}
arrow="empty">
进店次数
{reviewDetailData.last_enter_time}}
arrow="empty">
最后进店时间
{reviewDetailData.create_time_f}}
arrow="empty">
建档时间
{reviewDetailData.create_user_text}}
arrow="empty">
建档人
{reviewDetailData.notes}}
arrow="empty">
备注
;
};
renderItem = (data) => {
const item = data.item;
return
{'\ue619'}
{item.create_user_text}
{'\ue6ed'}
{item.description}
{'\ue6cc'}
{item.create_time_f}
支援或放弃:
{item.instruction}
审核:
{item.check_status_text}--{item.check_comment}
;
};
render() {
const {reviewRecordData, reviewRecordRState, customerDetail} = this.props.customer;
return (
{/*基本信息*/}
{this.baseInfo(customerDetail)}
{/* 跟踪记录*/}
this.renderItem(item)}
keyExtractor={this._keyExtractor}
themeColor="#5eafe4"
refreshState={reviewRecordRState}
footerRefreshingText="正在加载"
footerFailureText="加载失败"
onHeaderRefresh={() => this._fetchReviewReoprt(1)}
onFooterRefresh={() => this._fetchMore()}
ListHeaderComponent={() => }
ItemSeparatorComponent={() => }
/>
this.setState({moreModelVisible: false})}
>
{
this.props.navigation.navigate('WriteInternalReport',
{
item: customerDetail,
});
this.setState({moreModelVisible: false});
}
}
>内部跟踪
{
this.props.navigation.navigate('EditCustomer',
{
item: customerDetail,
});
this.setState({moreModelVisible: false});
}
}
>修改信息
this.setState({moreModelVisible: false})}>
取消
);
}
}
const styles = StyleSheet.create({
modalText: {
color: '#333',
fontSize: 16,
textAlign: 'center',
textAlignVertical: 'center',
},
textInput: {
width: '80%',
textAlign: 'left',
paddingHorizontal: 10,
},
modalContainer: {
flexDirection: 'row',
paddingHorizontal: 10,
paddingLeft: 13,
borderBottomWidth: 1,
borderBottomColor: '#eee',
},
textStyle: {
fontSize: 16,
paddingVertical: 10,
},
telItemView: {
flex: 1,
flexDirection: 'row',
marginLeft: 15,
paddingRight: 18,
paddingVertical: 8,
borderBottomWidth: 0.5,
borderBottomColor: '#eaeaea',
},
telName: {
color: '#333',
fontSize: 18,
},
telView: {
flex: 1,
flexDirection: 'row',
justifyContent: 'flex-end',
alignItems: 'center',
},
telText: {
color: '#2b90ea',
fontSize: 15,
},
listStyle: {
borderBottomWidth: 10,
borderBottomColor: '#f6f7f8',
},
reportMain: {
marginTop: 5,
// marginBottom: 5,
backgroundColor: '#fff',
paddingHorizontal: 10,
// borderWidth:1,
},
customerText: {
color: '#333',
fontSize: 16,
},
row5: {
flexDirection: 'row',
paddingVertical: 5,
},
red5: {
fontSize: 15,
color: 'red',
padding: 2,
},
});
export default ReviewDetail;