CheckCustomer.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. import React, {Component} from 'react';
  2. import {
  3. View,
  4. Text,
  5. StatusBar,
  6. DeviceEventEmitter,
  7. StyleSheet,
  8. TextInput,
  9. ScrollView,
  10. } from 'react-native';
  11. import {Provider, Toast, Button, List} from '@ant-design/react-native';
  12. import {connect} from 'react-redux';
  13. import DatePicker from 'react-native-datepicker';
  14. import FormateDate from '../../components/FormateDate';
  15. import {ComponentsStyles} from '../../components/ComponentsStyles';
  16. import RadioModal from '../../components/RadioModal';
  17. @connect(customer => ({...customer}))
  18. class CheckCustomer extends Component {
  19. // 跟踪审核
  20. constructor(props) {
  21. super(props);
  22. const item = this.props.navigation.state.params.item;
  23. this.state = {
  24. item: this.props.navigation.state.params.item,
  25. next_time: item.next_time_f,
  26. check_comment: '',
  27. check_status: 1,
  28. };
  29. };
  30. onSave = () => {
  31. if (!this.state.next_time) {
  32. Toast.info('请填写下次回访日期', 1);
  33. return;
  34. }
  35. const date = new Date();
  36. const today = FormateDate(date, 'YYYY-MM-DD');
  37. if (this.state.next_time < today) {
  38. Toast.info('下次回访日期不能早于今天', 1);
  39. return;
  40. }
  41. this.props.dispatch({
  42. type: 'customer/checkReview',
  43. payload: this.state,
  44. callback: () => {
  45. // 返回审核列表
  46. Toast.info('审核成功!', 1, () => {
  47. DeviceEventEmitter.emit('backRefesh');
  48. this.props.navigation.navigate('CheckCustomerList');
  49. });
  50. },
  51. });
  52. };
  53. render() {
  54. const {loading} = this.props.customer;
  55. return (
  56. <Provider>
  57. <StatusBar backgroundColor={'#fff'} barStyle='dark-content'/>
  58. <ScrollView>
  59. <View style={styles.infoContent}>
  60. <List>
  61. <List.Item extra={<Text style={ComponentsStyles.font15}>{this.state.item.name}</Text>}
  62. arrow="empty">
  63. <Text style={ComponentsStyles.font15}>姓名</Text>
  64. </List.Item>
  65. <List.Item extra={<Text style={ComponentsStyles.font15}>{this.state.item.tel}</Text>}
  66. arrow="empty">
  67. <Text style={ComponentsStyles.font15}>电话</Text>
  68. </List.Item>
  69. <List.Item
  70. extra={<Text style={ComponentsStyles.font15}>{this.state.item.project_text}</Text>}
  71. arrow="empty">
  72. <Text style={ComponentsStyles.font15}>项目</Text>
  73. </List.Item>
  74. </List>
  75. <View style={ComponentsStyles.genderStyle}>
  76. <Text style={[ComponentsStyles.font15, {textAlignVertical: 'center'}]}>审核状态</Text>
  77. <RadioModal
  78. selectedValue={this.state.check_status.toString()}
  79. onValueChange={id => this.setState({check_status: id})}
  80. style={ComponentsStyles.radioStyle}
  81. innerStyle={{
  82. width: 70,
  83. }}
  84. >
  85. <Text value="1">继续跟踪</Text>
  86. <Text value="2">放弃</Text>
  87. </RadioModal>
  88. </View>
  89. <TextInput
  90. style={{
  91. height: 140,
  92. borderColor: '#eee',
  93. textAlignVertical: 'top',
  94. borderBottomWidth: 1,
  95. paddingTop: 10,
  96. paddingHorizontal: 10,
  97. }}
  98. onChangeText={text => this.setState({check_comment: text})}
  99. value={this.state.check_comment}
  100. multiline={true}
  101. numberOfLines={4}
  102. maxLength={1000}
  103. placeholder={'请填审核批示'}
  104. />
  105. <List.Item
  106. extra={
  107. <DatePicker
  108. placeholder="日期"
  109. customStyles={styles}
  110. date={this.state.next_time}
  111. mode="date"
  112. confirmBtnText="确定"
  113. cancelBtnText="取消"
  114. showIcon={true}
  115. onDateChange={(datetime) => this.setState({next_time: datetime})}
  116. />
  117. }
  118. >
  119. <Text style={ComponentsStyles.font15}>
  120. 下次回访日期
  121. </Text>
  122. </List.Item>
  123. </View>
  124. </ScrollView>
  125. <Button
  126. type="primary"
  127. disabled={loading}
  128. onPress={() => this.onSave()}
  129. style={ComponentsStyles.button}
  130. >
  131. <Text style={{color: '#fff'}}>提交审核</Text></Button>
  132. </Provider>
  133. );
  134. }
  135. }
  136. const styles = StyleSheet.create({
  137. dateInput: {
  138. borderWidth: 0,
  139. alignItems: 'flex-end',
  140. },
  141. infoContent: {
  142. marginTop: 5,
  143. backgroundColor: '#fff',
  144. },
  145. infoItem: {
  146. flexDirection: 'row',
  147. paddingVertical: 10,
  148. borderBottomWidth: 1,
  149. borderColor: '#eaeaea',
  150. justifyContent: 'space-between',
  151. },
  152. infoItemLeft: {color: '#000', fontSize: 19},
  153. infoItemRight: {fontSize: 15, paddingTop: 2},
  154. modelItem: {
  155. borderBottomWidth: 1,
  156. borderColor: '#eaeaea',
  157. textAlign: 'center',
  158. paddingVertical: 8,
  159. fontSize: 18,
  160. color: '#000',
  161. },
  162. });
  163. export default CheckCustomer;