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;