AccountInfoView

196 阅读9分钟
import React from 'react';
import {
  View,
  Text,
  StyleSheet,
  ScrollView,
  TouchableOpacity,
  KeyboardAvoidingView,
  TextInput,
  SafeAreaView,
  Platform,
  Dimensions
} from 'react-native';
import PropTypes from 'prop-types';
import { createForm } from 'rc-form';
import { connect } from 'react-redux';
import PAOCR from 'react-native-ocr';
import RNFetchBlob from 'rn-fetch-blob';
import { fileUploadToIOBS, getImagePostToken } from '../../../../apis/common';
import { uploadOCR } from '../../../../apis/uploadFile';
import {
  CommonButton,
  Cell,
  AreaPicker,
  InputItem,
  Toast,
  Back,
  Dialog,
  Photo,
  LoginChecked,
  LoginUnChecked
} from '../../../../components';
import { ColorCommon, GapCommon } from '../../../../assets/publicConsts';
import GlobalStyles from '../../../../assets/globalStyles';
import { RNLog, Px2Dp } from '../../../../utils/Tool';

let isEdit = true;
const screenW = Dimensions.get('window').width;
class AccountInfoView extends React.Component {
  static navigationOptions = ({ navigation }) => ({
    headerLeft: <Back navigation={navigation} onBeforeUnload={navigation.getParam('onBeforeUnload')} />,
  });

  state = {
    // lba50033: '', // 省
    // lba50034: '', // 市
    bankTotal: '', // 总行id
    bank: '', // 分行id
    bankTotalName: '',
    bankName: '',
    beosbankid: '', // Beos银行ID
    bankfullname: '', // Beos银行名称
    beosId: '', // id
    ocrBase64: '', // ocr识别的图片base64
    // bankValue: '', //  开户行
    // userValue: '', // 账户名
    // accountValue: '' // 开户账户,
    protocolChecked: -1, // 勾选
    disableButton: -1, // 按钮禁用
    chenkNum: -1
  }

  list = [
    { id: 1, name: '总行', content: 'ba50032Name' },
    { id: 2, name: '分行', content: 'ba50035Name' },
    { id: 3, name: '开户行', content: 'ba50036' },
    { id: 4, name: '账户名', content: 'ba50038' },
    { id: 5, name: '开户账户', content: 'ba50039' },
  ]

  static propTypes = {
    navigation: PropTypes.object.isRequired,
    dispatch: PropTypes.func.isRequired,
    bankaccountInfoList: PropTypes.array.isRequired,
    form: PropTypes.object.isRequired,
    projectAccountForm2: PropTypes.array.isRequired,
  };

  componentDidMount() {
    const { navigation } = this.props;
    const flagKey = navigation.getParam('flagKey');
    navigation.setParams({
      onBeforeUnload: this.onBeforeUnload
    });
    if (flagKey === 1) {
      this.handleflagKey1();
    }

    if (flagKey === 2) {
      this.handleflagkey2();
    }

    if (flagKey === 3) {
      this.handleflagKey3();
    }
  }

  componentWillUnmount() {
    const { dispatch } = this.props;
    dispatch({ type: 'SAVEPAYEE_SUCCESS', data: {} });
  }

  // 离开页面
  onBeforeUnload = () => {
    const {
      navigation, form, dispatch, projectAccountForm2, bankaccountInfoList
    } = this.props;
    const routerParam = navigation.getParam('data');
    const loanID = navigation.getParam('loanID');
    const { getFieldsValue } = form;
    const data = getFieldsValue();
    if ((bankaccountInfoList && Object.values(bankaccountInfoList).length > 0 && bankaccountInfoList[0].loanid)
      || (routerParam && !routerParam.flagButton)) { // 若为编辑或者审批中查看,直接返回
      navigation.goBack();
      return;
    }
    // 判断表单是否修改
    if (isEdit) { // 没有更改表单值,直接返回
      navigation.goBack();
      return;
    }
    Dialog.show({
      title: '提示信息',
      notice: '保留此次编辑?',
      confirm: '保留',
      cancel: '不保留',
      cancelDoIt: () => {
        isEdit = true; // 操作后恢复初始值
        projectAccountForm2[loanID] = {}; // 不保存将数据清空
        Dialog.hide();
        dispatch({ type: 'SET_PROJECT_ACCOUNT_FORM_2', data: projectAccountForm2 });
        navigation.goBack();
      },
      confirmDoIt: () => {
        isEdit = true; // 操作后恢复初始值
        [data.ba50033, data.ba50034] = data.provinces;
        data.ba50036 = data.lba50036;
        data.ba50038 = data.lba50038;
        data.ba50039 = data.lba50039;
        projectAccountForm2[loanID] = data; // 列表存在多条数据,若保存数据需要将ID对应起来便于回显
        Dialog.hide();
        dispatch({ type: 'SET_PROJECT_ACCOUNT_FORM_2', data: projectAccountForm2 }); // 将更改的值保存在redux中
        navigation.goBack();
      },
    });
  }

  handleflagKey1 = () => {
    const { dispatch, navigation } = this.props;
    const customerId = navigation.getParam('autherID');
    const loanId = navigation.getParam('loanID');
    const _data = navigation.getParam('_data');
    const bankInfoParams = {
      loanId,
      accountType: 1,
      customerId,
      bankType: _data && _data[0] && _data[0].value ? _data[0].value : ''
    };
    if (bankInfoParams.loanId
      && bankInfoParams.accountType
      && bankInfoParams.customerId
      && bankInfoParams.customerId !== 0
      && bankInfoParams.bankType) {
      dispatch({
        type: 'GET_BANKINFO', // 查看经销商\授信方账户信息
        bankInfoParams,
        callback: (res) => {
          if (res.status === 0) {
            const chenkNum = res.data && res.data.findIndex((item) => item.flag === 1);
            this.setState({ chenkNum });
            this.setState({ disableButton: chenkNum });
          }
        }
      });
    }
  }

  handleflagkey2 = () => {
    const { dispatch, navigation } = this.props;
    const customerId = navigation.getParam('dealerID');
    const loanId = navigation.getParam('loanID');
    const _data = navigation.getParam('_data');
    const bankInfoParams = {
      loanId,
      accountType: 2,
      customerId,
      bankType: _data && _data[0] && _data[0].value ? _data[0].value : ''
    };
    if (bankInfoParams.loanId
      && bankInfoParams.accountType
      && bankInfoParams.customerId
      && bankInfoParams.customerId !== 0
      && bankInfoParams.bankType) {
      dispatch({
        type: 'GET_BANKINFO', //  查看经销商\授信方账户信息
        bankInfoParams,
        callback: (res) => {
          if (res.status === 0) {
            const chenkNum = res.data && res.data.findIndex((item) => item.flag === 1);
            this.setState({ chenkNum });
            this.setState({ disableButton: chenkNum });
          }
        }
      });
    }
  }

  handleflagKey3 = () => {
    const { dispatch, navigation } = this.props;
    const loanId = navigation.getParam('loanID');
    const _data = navigation.getParam('_data');
    const bankInfoParams = {
      loanId,
      accountType: 3,
      bankType: _data && _data[0] && _data[0].value ? _data[0].value : ''
    };
    if (bankInfoParams.loanId
      && bankInfoParams.accountType
      && bankInfoParams.bankType) {
      dispatch({
        type: 'GET_BANKINFO', //  查看经销商\授信方账户信息
        bankInfoParams,
      });
    }
  }

  // 勾选
  handleChecked = (i) => {
    this.setState({ protocolChecked: i });
    this.setState({ disableButton: i });
    this.setState({ chenkNum: -1 });
  }

  handleEdit = (bankaccountInfoList, _data, protocolChecked, chenkNum) => (
    <ScrollView>
      {bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList.map((listItem, aIndex) => (
        <View style={styles.accountList}>
          <TouchableOpacity
            onPress={() => this.handleChecked(aIndex)}
            style={styles.radio}
          >
            { protocolChecked === aIndex || chenkNum === aIndex ? (
              <LoginChecked width={Px2Dp(16)} height={Px2Dp(16)} />
            ) : (
              <LoginUnChecked width={Px2Dp(16)} height={Px2Dp(16)} />
            )}
          </TouchableOpacity>
          <View style={styles.accountContent}>
            <Text style={styles.accountName}>账户类型:</Text>
            <Text style={styles.accountDesc}>{_data && _data[0] && _data[0].label ? _data[0].label : ''}</Text>
          </View>
          {this.list.map((item) => (
            <View style={styles.accountContent} key={item.customerid}>
              <Text style={styles.accountName}>{item.name}</Text>
              <Text style={styles.accountDesc}>{listItem[item.content]}</Text>
            </View>
          ))}
        </View>
      ))
      }
    </ScrollView>
  )

  handleView = (
    navigation, bankTotal, bankName, getFieldDecorator,
    getFieldError, bankTotalName, AddressLive, setFieldsValue, bankaccountInfoList,
    bankfullname, _data
  ) => (
    <View>
      {getFieldDecorator('bankType', {
        initialValue: _data && _data[0] && _data[0].label ? _data[0].label : '',
        validateFirst: true,
        rules: [
          { required: true, message: '请输入!' },
        ],
      })(
        <InputItem
          autoFocus
          placeholder="请输入"
          error={getFieldError('bankType')}
          editable={false}
        >
          <Text style={styles.name}>账户类型</Text>
        </InputItem>
      )}

      {_data && _data[0] && _data[0].value === 2 ? (
        <TouchableOpacity onPress={() => { navigation.navigate('ProjectInfoSearch', { returnData: this.returnData.bind(this), key: 7, bankTotal }); }}>
          <Cell label="承兑银行">
            {(bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].baBeosName) || bankfullname
              ? (<Text style={styles.content}>{bankfullname || (bankaccountInfoList && bankaccountInfoList[0].baBeosName)}</Text>)
              : <Text style={styles.content}>请输入</Text>}
          </Cell>
          {getFieldDecorator('bankno', {
            initialValue: bankaccountInfoList && bankaccountInfoList[0] ? bankaccountInfoList[0].baBeosName : '',
          })(
            <TextInput style={{ display: 'none' }} />
          )}
          {getFieldDecorator('beosId', {
            initialValue: bankaccountInfoList && bankaccountInfoList[0] ? bankaccountInfoList[0].baBeosid : '',
          })(
            <TextInput style={{ display: 'none' }} />
          )}
          {getFieldDecorator('baBeosName', {
            initialValue: bankaccountInfoList && bankaccountInfoList[0] ? bankaccountInfoList[0].baBeosName : '',
          })(
            <TextInput style={{ display: 'none' }} />
          )}
        </TouchableOpacity>
      ) : null}


      <TouchableOpacity onPress={() => { navigation.navigate('ProjectInfoSearch', { returnData: this.returnData.bind(this), key: 1, bankTotal }); }}>
        <Cell label="总行">
          {(bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50032Name) || bankTotalName
            ? (
              <Text style={styles.content}>
                {bankTotalName || (bankaccountInfoList && bankaccountInfoList[0].ba50032Name)}
              </Text>
            )
            : <Text style={styles.content}>请输入</Text>}
        </Cell>
        {getFieldDecorator('lba50032', {
          initialValue: bankaccountInfoList && bankaccountInfoList[0] ? bankaccountInfoList[0].ba50032 : '',
        })(
          <TextInput style={{ display: 'none' }} />
        )}
        {getFieldDecorator('ba50032Name', {
          initialValue: bankaccountInfoList && bankaccountInfoList[0] ? bankaccountInfoList[0].ba50032Name : '',
        })(
          <TextInput style={{ display: 'none' }} />
        )}
      </TouchableOpacity>

      <TouchableOpacity onPress={() => {
        if (!bankTotalName && !(bankaccountInfoList && bankaccountInfoList[0].ba50032Name)) {
          Toast.show('请输入总行');
          return;
        }
        navigation.navigate('ProjectInfoSearch', { returnData: this.returnData.bind(this), key: 2, bankTotal: bankTotal || bankaccountInfoList[0].ba50035 });
      }}
      >
        <Cell label="分行">
          {(bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50035Name) || bankName
            ? (<Text style={styles.content}>{bankName || (bankaccountInfoList[0] && bankaccountInfoList[0].ba50035Name)}</Text>)
            : <Text style={styles.content}>请输入</Text>}
        </Cell>
        {getFieldDecorator('lba50035', {
          initialValue: bankaccountInfoList && bankaccountInfoList[0] ? bankaccountInfoList[0].ba50035 : '',
        })(
          <TextInput style={{ display: 'none' }} />
        )}
        {getFieldDecorator('ba50035Name', {
          initialValue: bankaccountInfoList && bankaccountInfoList[0] ? bankaccountInfoList[0].ba50035Name : '',
        })(
          <TextInput style={{ display: 'none' }} />
        )}
      </TouchableOpacity>

      {/* 省市 */}
      {bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50033 && bankaccountInfoList[0].ba50034
        ? (
          <Cell label="省市">
            {getFieldDecorator('provinces', {
              initialValue: AddressLive(),
              validateFirst: true,
              rules: [{ required: true, message: '请选择!' }],
            })(
              <AreaPicker isRequiredName placeholder="请选择" error={getFieldError('provinces')} />
            )}
          </Cell>
        ) : (
          <Cell label="省市">
            {getFieldDecorator('provinces', {
              initialValue: [],
              validateFirst: true,
              rules: [{ required: true, message: '请选择!' }],
            })(
              <AreaPicker isRequiredName placeholder="请选择" error={getFieldError('provinces')} />
            )}
          </Cell>
        )}
      {getFieldDecorator('lba50036', {
        initialValue: bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50036 ? bankaccountInfoList[0].ba50036 : '',
        validateFirst: true,
        rules: [
          { required: true, message: '请输入!' },
        ],
      })(
        <InputItem
          autoFocus
          placeholder="请输入"
          error={getFieldError('lba50036')}
        >
          <Text style={styles.name}>开户行</Text>
        </InputItem>
      )}
      {getFieldDecorator('lba50038', {
        initialValue: bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50038 ? bankaccountInfoList[0].ba50038 : '',
        validateFirst: true,
        // getValueFromEvent: (e) => {
        //   const inputValue = e.replace(/[^a-zA-Z0-9\u4E00-\u9FA5]/g, '');
        //   setFieldsValue({ lba50038: 'inputValue' }, () => { setFieldsValue({ lba50038: inputValue }); });
        //   return inputValue;
        // },
        rules: [
          { required: true, message: '请输入内容!' },
          { pattern: /^[A-Za-z0-9\u4e00-\u9fa5]+$/, message: '请输入正确的内容' }
        ],
      })(
        <InputItem
          autoFocus
          placeholder="请输入"
          error={getFieldError('lba50038')}
        >
          <Text style={styles.name}>账户名</Text>
        </InputItem>
      )}
      {getFieldDecorator('lba50039', {
        initialValue: bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50039 ? bankaccountInfoList[0].ba50039 : '',
        validateFirst: true,
        rules: [
          { required: true, message: '请输入!' },
          {
            pattern: /^([1-9]{1})(\d{15}|\d{18})$/,
            message: '请输入正确的银行卡号',
          }
        ],
      })(
        <InputItem
          autoFocus
          placeholder="请输入"
          error={getFieldError('lba50039')}
          keyboardType="numeric"
          icon={(
            <TouchableOpacity onPress={this.OCRScan}>
              <Photo />
            </TouchableOpacity>
            )}
        >
          <Text style={styles.name}>开户账号</Text>
        </InputItem>
      )}
    </View>
  )

  // 调取OCR
  OCRScan = async () => {
    const { form } = this.props;
    const { setFieldsValue } = form;
    const appKey = Platform.OS === 'ios' ? '947ab5a4-1fe0-11ea-a401-06b84c001f36' : 'a8cfea24-1fe0-11ea-a401-06b84c001f36';
    const data = await PAOCR.launch({
      appKey,
      env: 'prd',
    });
    if (data && data.card_number) {
      setFieldsValue({ lba50039: data.card_number });
      this.setState({
        ocrBase64: data.image,
      });
    }
  }

  handleSubmit = () => {
    const { dispatch } = this.props;
    const { ocrBase64, protocolChecked, chenkNum } = this.state;
    const { navigation, bankaccountInfoList, projectAccountForm2 } = this.props;
    const flagKey = navigation.getParam('flagKey');
    const _data = navigation.getParam('_data');
    const { form } = this.props;
    const { resetFields } = form;
    const { beosbankid, beosId } = this.state;
    const loanID = navigation.getParam('loanID');
    if (flagKey === 3) {
      const {
        bankTotal,
        bank,
      } = this.state;
      if (!bankTotal && !(bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50032Name)) {
        Toast.show('请输入总行');
        return;
      }
      if (!bank && !(bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50035Name)) {
        Toast.show('请输入分行');
        return;
      }

      form.validateFields(async (error, value) => {
        if (error) return;
        const params = {
          loanId: loanID || (bankaccountInfoList[0] && bankaccountInfoList[0].loanid), // 贷款id
          accountType: 3, // 收款方类型
          lba50032: bankTotal || (bankaccountInfoList && bankaccountInfoList[0].ba50032), // 总行
          lba50033: bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50033, // 省
          lba50034: bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50034, // 市
          lba50035: bank || (bankaccountInfoList && bankaccountInfoList[0].ba50035), // 分行
          lba50036: bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50036, // 开户行
          lba50038: bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50038, // 账户号
          lba50039: bankaccountInfoList && bankaccountInfoList[0] && bankaccountInfoList[0].ba50039, // 开户号
          bankno: beosbankid,
          beosId,
          ...value,
        };
        delete params.bankType;
        params.bankType = _data && _data[0] && _data[0].value ? _data[0].value : '';
        [params.lba50033, params.lba50034] = params.provinces;
        delete params.provinces;
        try {
          if (ocrBase64) {
            const resToken = await getImagePostToken(); // 获取上传图片token
            const curFileUUID = `IOBS_BUCKET_NAME_APOLLO${(new Date()).getTime().toString()}`;// 待上传图片唯一标识
            if (resToken) {
              const res = await fileUploadToIOBS([
                { name: 'key', data: curFileUUID },
                { name: 'token', data: resToken.data },
                {
                  name: 'file',
                  filename: `${curFileUUID}`,
                  data: RNFetchBlob.base64.encode(`data:image/jpeg;base64,${ocrBase64}`)
                }
              ], true);
              if (res && res.status === 0) {
                const { key } = JSON.parse(res.data);
                await uploadOCR({
                  fileKey: key,
                  ocrRes: value.lba50039,
                  ocrType: 5
                });
              }
            }
          }
        } catch (err) {
          RNLog(err);
        }
        dispatch({
          type: 'GET_SAVEPAYEE',
          params,
          callback: (res) => {
            if (res.status === 0) {
              Toast.show('提交成功');
              resetFields('');
              projectAccountForm2[loanID] = {}; // 保存成功后将本地数据清空
              dispatch({ type: 'SET_PROJECT_ACCOUNT_FORM_2', data: projectAccountForm2 });
              navigation.navigate('ProjectInformation', { accViewFlag: flagKey });
            }
          }
        });
      });
    } else if ((flagKey === 1 || flagKey === 2) && protocolChecked !== -1) {
      const params = {
        // ...bankaccountInfoList[protocolChecked],
        lba50032: bankaccountInfoList[protocolChecked].ba50032,
        lba50033: bankaccountInfoList[protocolChecked].ba50033,
        lba50034: bankaccountInfoList[protocolChecked].ba50034,
        lba50035: bankaccountInfoList[protocolChecked].ba50035,
        lba50036: bankaccountInfoList[protocolChecked].ba50036,
        lba50038: bankaccountInfoList[protocolChecked].ba50038,
        lba50039: bankaccountInfoList[protocolChecked].ba50039,
        bankno: '',
        beosId: '',
        baId: bankaccountInfoList[protocolChecked].baId,
        accountType: flagKey,
        loanId: loanID || bankaccountInfoList[protocolChecked].loanid, // 贷款id
        customerId: bankaccountInfoList[protocolChecked].customerid,
        bankType: _data && _data[0] && _data[0].value ? _data[0].value : '', // 付款方式
      };
      delete params.loanid;
      delete params.customerid;
      RNLog(params);
      dispatch({
        type: 'GET_SAVEPAYEE',
        params,
        callback: (res) => {
          if (res.status === 0) {
            Toast.show('提交成功');
            navigation.navigate('ProjectInformation', { accViewFlag: flagKey });
          }
        }
      });
    } else if ((flagKey === 1 || flagKey === 2) && chenkNum !== -1) {
      const params = {
        // ...bankaccountInfoList[chenkNum],
        lba50032: bankaccountInfoList[chenkNum].ba50032,
        lba50033: bankaccountInfoList[chenkNum].ba50033,
        lba50034: bankaccountInfoList[chenkNum].ba50034,
        lba50035: bankaccountInfoList[chenkNum].ba50035,
        lba50036: bankaccountInfoList[chenkNum].ba50036,
        lba50038: bankaccountInfoList[chenkNum].ba50038,
        lba50039: bankaccountInfoList[chenkNum].ba50039,
        bankno: '',
        beosId: '',
        baId: bankaccountInfoList[chenkNum].baId,
        accountType: flagKey,
        loanId: loanID || bankaccountInfoList[chenkNum].loanid, // 贷款id
        customerId: bankaccountInfoList[chenkNum].customerid,
        bankType: _data && _data[0] && _data[0].value ? _data[0].value : '', // 付款方式
      };
      delete params.loanid;
      delete params.customerid;
      RNLog(params);
      dispatch({
        type: 'GET_SAVEPAYEE',
        params,
        callback: (res) => {
          if (res.status === 0) {
            Toast.show('提交成功');
            navigation.navigate('ProjectInformation', { accViewFlag: flagKey });
          }
        }
      });
    } else if ((flagKey === 1 || flagKey === 2) && chenkNum === -1) {
      this.setState({ disableButton: -1 });
    }
  }


  returnData(obj) {
    const { form } = this.props;
    const { setFieldsValue } = form;
    if (obj.key === 1) {
      setFieldsValue({
        lba50032: String(obj.bhfId),
        ba50032Name: obj.name,
      });
      this.setState({ bankTotal: obj.bhfId, bankTotalName: obj.name });
    }
    if (obj.key === 2) {
      setFieldsValue({
        lba50035: String(obj.bbId),
        ba50035Name: obj.name,
      });
      this.setState({ bank: obj.bbId, bankName: obj.name });
    }
    if (obj.key === 7) {
      setFieldsValue({
        bankno: String(obj.beosbankid),
        ba50035Name: obj.name,
      });
      this.setState({
        beosbankid: obj.beosbankid,
        bankfullname: obj.bankfullname,
        beosId: obj.beosId
      });
    }
  }


  render() {
    const {
      navigation,
      form,
      bankaccountInfoList,
      projectAccountForm2
    } = this.props;
    const flagKey = navigation.getParam('flagKey');
    const _data = navigation.getParam('_data');
    const loanID = navigation.getParam('loanID');
    const {
      bankTotal, bankName, bankTotalName, bankfullname, disableButton, protocolChecked, chenkNum
    } = this.state;
    const { getFieldDecorator, getFieldError, setFieldsValue } = form;
    // 判断本地有存储未完成的账户信息,回显到表单中
    if (projectAccountForm2[loanID] && Object.values(projectAccountForm2[loanID]).length > 0) {
      Object.assign(bankaccountInfoList[0], projectAccountForm2[loanID]);
    }
    // 格式化省市
    const AddressLive = () => {
      if (bankaccountInfoList && bankaccountInfoList[0].ba50033 && bankaccountInfoList[0].ba50034) {
        return [bankaccountInfoList[0].ba50033, bankaccountInfoList[0].ba50034];
      }
      return [];
    };

    const handleflagButton = () => {
      if (flagKey === 1 || flagKey === 2 || flagKey === 3) {
        const data = navigation.getParam('data');
        const { flagButton } = data;
        return flagButton;
      }
      return '';
    };
    return (
      <View style={GlobalStyles.container}>
        <KeyboardAvoidingView
          behavior="padding"
          style={{ flex: 1 }}
        >
          <ScrollView style={styles.main}>
            {
              flagKey === 1 || flagKey === 2
                ? (this.handleEdit(bankaccountInfoList, _data, protocolChecked, chenkNum)) : <View />
            }
            {
              flagKey === 3
                ? (this.handleView(navigation, bankTotal, bankName,
                  getFieldDecorator, getFieldError, bankTotalName,
                  AddressLive, setFieldsValue, bankaccountInfoList, bankfullname, _data))
                : <View />
            }

          </ScrollView>
          <SafeAreaView style={styles.protocolWrap}>
            { (flagKey === 1 || flagKey === 2) && handleflagButton() === 1
              ? (
                <CommonButton
                  text="确认"
                  disable={disableButton === -1}
                  onPressButton={this.handleSubmit}
                />
              ) : null
            }
            {
              flagKey === 3 && handleflagButton() === 1
                ? (
                  <CommonButton
                    text="提交"
                    onPressButton={this.handleSubmit}
                  />
                ) : null
            }
          </SafeAreaView>
        </KeyboardAvoidingView>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  main: {
    marginTop: GapCommon.gapBase * 2
  },
  list: {
    backgroundColor: ColorCommon.white
  },
  name: {
    color: ColorCommon.grayish,
    fontSize: 16
  },
  right: {
    flexDirection: 'row',
    alignItems: 'center'
  },
  content: {
    color: ColorCommon.dark,
    fontSize: 16,
  },
  protocolWrap: {
    paddingTop: GapCommon.gapBase * 4,
    paddingBottom: GapCommon.gapBase * 4,
    paddingLeft: GapCommon.gapBase * 4,
    paddingRight: GapCommon.gapBase * 4
  },
  accountList: {
    marginTop: GapCommon.gapBase * 4,
    marginLeft: GapCommon.gapBase * 4,
    marginRight: GapCommon.gapBase * 4,
    backgroundColor: ColorCommon.white,
    width: screenW - 32,
    paddingLeft: GapCommon.gapBase * 3,
    paddingRight: GapCommon.gapBase * 3,
    paddingTop: GapCommon.gapBase * 5,
    paddingBottom: GapCommon.gapBase * 5
  },
  accountContent: {
    flexDirection: 'row',
    justifyContent: 'space-between',
    marginLeft: GapCommon.gapBase * 7,
    marginBottom: GapCommon.gapBase * 3
  },
  radio: {
    position: 'absolute',
    left: 16,
    top: 20
  },
  accountName: {
    fontSize: 15,
    color: ColorCommon.lightGray
  },
  accountDesc: {
    fontSize: 15,
    color: ColorCommon.dark
  }
});

const mapStateToProps = (state) => ({
  bankaccountInfoList: state.bankaccountInfoList,
  saveReceivingList: state.saveReceivingList,
  projectAccountForm2: state.projectAccountForm2
});
const AccountInfoViewForm = createForm({
  // 表单域改变时设置isEdit为false
  onValuesChange() {
    isEdit = false;
  }
})(AccountInfoView);
export default connect(mapStateToProps)(AccountInfoViewForm);