wushaodong vor 4 Jahren
Ursprung
Commit
9a236f2264
3 geänderte Dateien mit 85 neuen und 2 gelöschten Zeilen
  1. 10 0
      jscore/models/customer.js
  2. 66 2
      jscore/pages/Sales/ReviewDetail.js
  3. 9 0
      jscore/services/customer.js

+ 10 - 0
jscore/models/customer.js

@@ -97,6 +97,16 @@ export default {
                 ResponseError(response);
             }
         },
+        * againDispatchUser({payload, callback}, {call, put}) {
+            const response = yield call(customer.againDispatchUser, payload);
+            if (!response.code) {
+                if (callback) {
+                    callback(response.data);
+                }
+            } else {
+                ResponseError(response);
+            }
+        },
         * fetchReviewToday({payload}, {call, put}) {
             if (payload.page > 1) {
                 yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.FooterRefreshing}));

+ 66 - 2
jscore/pages/Sales/ReviewDetail.js

@@ -6,7 +6,7 @@ import {
     ScrollView,
     Dimensions, DeviceEventEmitter,
 } from 'react-native';
-import {Tabs, Provider, Button, Modal, Toast, List} from '@ant-design/react-native';
+import {Tabs, Provider, Button, Modal, Toast, List, Picker} from '@ant-design/react-native';
 import {createAction} from '../../utils';
 import {connect} from 'react-redux';
 import CallPhone from '../../components/CallPhone';
@@ -31,6 +31,10 @@ class ReviewDetail extends Component {
                 customer: this.props.navigation.state.params.item.id,
             },
             moreModelVisible: false,
+            dispatchVisible: false,
+
+            USERS: [],
+            new_user: '',
         };
 
     };
@@ -210,9 +214,44 @@ class ReviewDetail extends Component {
         });
     };
 
+    getUsers = () => {
+        this.setState({moreModelVisible: false, dispatchVisible: true});
+        this.props.dispatch({
+            type: 'customer/getUser',
+            callback: (data) => {
+                let USERS = [];
+                data.map((item, index) => {
+                    USERS.push({
+                        value: item.value, label: item.lable,
+                    });
+                });
+                this.setState({USERS});
+            },
+        });
+    };
+
+    againDispatch = (id) => {
+        if (!this.state.new_user) {
+            Toast.info('请选择人员', 1);
+            return;
+        }
+
+        this.props.dispatch({
+            type: 'customer/againDispatchUser',
+            payload: {id: id, user: this.state.new_user},
+            callback: () => {
+                DeviceEventEmitter.emit('backRefesh');
+                this.props.navigation.goBack();
+            },
+        });
+    };
+
     render() {
         const {reviewRecordData, reviewRecordRState, customerDetail} = this.props.customer;
-
+        const dispatchButtons = [
+            {text: '取消', onPress: () => this.setState({dispatchVisible: false})},
+            {text: '保存', onPress: () => this.againDispatch(customerDetail.id)},
+        ];
         return (
             <Provider>
                 <Tabs
@@ -325,12 +364,37 @@ class ReviewDetail extends Component {
                                 >添加项目</Text>
                             </List.Item>
 
+                            <List.Item>
+                                <Text
+                                    style={styles.modalText}
+                                    onPress={() => this.getUsers()
+                                    }
+                                >重新分配</Text>
+                            </List.Item>
+
                             <List.Item onPress={() => this.setState({moreModelVisible: false})}>
                                 <Text style={styles.modalText}>取消</Text>
                             </List.Item>
                         </List>
                     </View>
                 </Modal>
+                <Modal
+                    transparent
+                    maskClosable
+                    visible={this.state.dispatchVisible}
+                    footer={dispatchButtons}
+                >
+                    <Picker
+                        data={this.state.USERS}
+                        cols={1}
+                        value={this.state.new_user}
+                        onChange={(val) => this.setState({new_user: val})}
+                    >
+                        <List.Item arrow="horizontal">
+                            选择人员
+                        </List.Item>
+                    </Picker>
+                </Modal>
             </Provider>
         );
     }

+ 9 - 0
jscore/services/customer.js

@@ -34,6 +34,15 @@ export async function dispatchUser(params) {
     });
 }
 
+export async function againDispatchUser(params) {
+    let formdata = new FormData();
+    formdata.append('track_user', params.user[0]);
+    return request('/customer/new_customer/' + params.id + '/again_dispatch/', {
+        method: 'POST',
+        body: formdata,
+    });
+}
+
 export async function addCustomerProject(params) {
     let formdata = new FormData();
     formdata.append('projects', JSON.stringify(params.projects));