import React, { Component } from 'react' import { StyleSheet, View, Image, ImageBackground, StatusBar, Text, TouchableOpacity, Dimensions, PixelRatio, ScrollView, FlatList, } from 'react-native' import { connect } from 'react-redux' import StatusBacg from '../../static/images/Order-status.png' import png from '../../static/images/defaultimg.jpg' import Icon from '../../components/Iconfont/Iconfont' import { NavigationActions, createAction } from '../../utils' import { ScaleUtil, ReturnDate, accSub } from '../../utils/utils' import redblue from '../../static/images/ic-redblue.png' import { ImageBaseUrl } from '../../utils/fetch/Fetchx' import { transrefFn } from '../common/datamodel/dataModel' const { width, height } = Dimensions.get('window') /** * TEMPORY_STORAGE("01","暂存","暂存"), * AUDIT_PENDING("02","待审核","待审核"), * DELIVERY_PENDING("03","待发货","待发货"), * SIGN_IN_PENDING("04","待签收","待签收"), * TRANS_COMPLETE("05","交易完成","交易完成"), * REJECT("06","驳回","驳回"), * CANCEL("07","取消","取消"); */ // [0]:暂存; [1]:待审核; [2]:待发货; [3]:待签收; [4]:交易完成; [5]:驳回; [6]:取消 const iconArr = [ 'icon-icon-zancun', 'icon-icon-dingdandaishenhe', 'icon-icon-dingdandaifahuo', 'icon-icon-dingdandaiqianshou', 'icon-icon-jiaoyiwancheng', 'icon-icon-dingdanbohui', 'icon-icon-dingdanquxiao', ] @connect(({ theme, orderdetail, orderlist }) => ({ ...theme, ...orderdetail, ...orderlist, })) class OrderDetail extends Component { constructor() { super() this.state = { trackIndex: 0, trackName: '待发货', iconName: 'icon-icon-dingdan', } } componentDidMount = () => { // 订单跟踪开始偏移量 trackOffset = 0 if (this.state.trackIndex <= 2) { trackOffset = 0 } else if (this.state.trackIndex == 3) { trackOffset = 120 } else { trackOffset = 240 } this._scrollView.scrollTo({ x: trackOffset, y: 0, animated: true, }) if ( this.props.navigation.state.params && Object.keys(this.props.navigation.state.params).indexOf('comeFrom') == -1 ) { const { reqOrderItems, orderStatusCode, } = this.props.navigation.state.params.orderData // 每个商品行的 累计签收数量 - 累计退货数量 > 0 则可以进行整单退货 ---- signNum - returnNum >0 if ( orderStatusCode == '03' || orderStatusCode == '04' || (orderStatusCode == '05' && reqOrderItems.some( item => accSub(item.signNum || 0, item.refundNum || 0) > 0 )) ) { this.setState({ isReturn: true }) } } } // 头部 header(orderData) { console.log(orderData); return ( this.props.dispatch(NavigationActions.back())} > 返回 {this.props.navigation.state.params && this.props.navigation.state.params.comeFrom && this.props.navigation.state.params.comeFrom == 'Refund' ? '退货单详情' : '订单详情'} { this.setState({ activeAllCollaps: !this.state.activeAllCollaps, }) // this._info.setActive() this.copyToEdit(orderData) }} > 复制 ) } // 复制订单并跳转到编辑页 async copyToEdit(item) { this.setState({ Loading: true }) await this.props.dispatch( createAction('orderlist/copyFromReq')({ id: item.id, }) ) this.setState({ Loading: false }) const { copyData } = this.props let SaleOrSupplier = transrefFn(copyData, 'saleOrg'), billwayDefault = transrefFn(copyData, 'billWay'), transportDefault = transrefFn(copyData, 'transport') this.props.dispatch( NavigationActions.navigate({ routeName: 'OrderEdit', params: { ShopData: copyData.reqOrderItems, data: copyData, SaleOrSupplier: SaleOrSupplier, reqOrderInvoice: copyData.reqOrderInvoice, reqOrderReceiveAddress: copyData.reqOrderReceiveAddress, transportDefault: transportDefault, billwayDefault: billwayDefault, comefrom: 'temporarily', }, }) ) } // 流程跟踪 processTrack(orderData) { let track = [], trackVal = orderData.reqOrderTracks.sort((a, b) => a.sort - b.sort) for (let i = 0; i < trackVal.length; i++) { if (trackVal[i].finish && trackVal[i + 1] && !trackVal[i + 1].finish) { this.state.trackIndex = i } if (i == trackVal.length - 1 && trackVal[i].finish) { this.state.trackIndex = i } track.push( {this.state.trackIndex == i ? ( ) : ( )} {trackVal[i].content} {/* {ReturnDate(trackVal[i].date)} */} {trackVal[i].finish ? ReturnDate(trackVal[i].operateTime) : ''} ) } return track } // 底部按钮 bottomTouch(orderData) { let ParamsOrder = orderData ParamsOrder.reqOrderItems.map(data => { if (data.signNum <= data.orderNum) { data.orderNum = data.signNum } }) let touchArr = [], touchAtt = [ { touchName: '退货', background: this.state.isReturn ? '#E70013' : '#969696', textColor: '#FFF', disabled: this.state.isReturn ? false : true, touchonpress: () => { // this.props.dispatch( // NavigationActions.navigate({ // routeName: "ReturnApplication", // params: { orderData: JSON.parse(JSON.stringify(ParamsOrder)) } // }) // ); this.props.dispatch( createAction('orderlist/returnFromReq')({ id: orderData.id, orderData: JSON.parse(JSON.stringify(ParamsOrder)), }) ) }, }, ] for (let i = 0; i < touchAtt.length; i++) { touchArr.push( touchAtt[i].touchonpress ? touchAtt[i].touchonpress() : {} } key={i} style={{ flex: 1, borderTopColor: '#eee', borderTopWidth: 1 / PixelRatio.get(), backgroundColor: touchAtt[i].background, justifyContent: 'center', borderRightColor: '#eee', borderRightWidth: 1 / PixelRatio.get(), }} > {touchAtt[i].touchName} ) } return touchArr } goodsInfo(item, index, comeFrom) { console.log(item); return ( {item.goodsDisplayName || item.goodsName} {comeFrom && comeFrom == 'Refund' ? null : ( 编码:{item.goodsCode} 型号:{item.model?item.model:""} 规格:{item.specification?(item.specification.split("/")[0]+"/"+item.mainNumUnitName):""} )} {comeFrom && comeFrom == 'Refund' ? `单价${item.currencySign || ''}${item.salePrice}${ item.mainNumUnitName ? '/' : '' }${item.mainNumUnitName || ''}` : `数量:${item.mainNum}${item.orderNumUnitName || ''}`} {'重量:'+(item.rowWeight?item.rowWeight:item.mainNum*item.weight)+'KG'} {comeFrom && comeFrom == 'Refund' ? `退货量:${item.orderNum}`:""} {/* : `主数量:${item.mainNum}${item.mainNumUnitName || ''}`} */} {comeFrom && comeFrom == 'Refund' ? ( 成交金额: {CURRENCY.currencySign} {item.dealAmount} this.props.dispatch( NavigationActions.navigate({ routeName: 'ReturnDetail', params: { detailData: item }, }) ) } style={{ flexDirection: 'row' }} > 详情 ) : ( 单价: {`${item.currencySign || ''}${item.salePrice}${ item.mainNumUnitName ? '/' : '' }${item.mainNumUnitName || ''}`} 金额: {item.currencySign} {item.amount} )} ) } render() { let comeFrom, arr = [1, 2, 3, 4, 5], imageArr = [] if (arr.length > 3) { imageArr = arr.slice(0, 3) } else { imageArr = arr } if ( this.props.navigation.state.params && this.props.navigation.state.params.comeFrom ) { comeFrom = this.props.navigation.state.params.comeFrom } const { orderData } = this.props.navigation.state.params return ( {/* 头部 */} {this.header(orderData)} {/* 流程状态 */} {orderData.orderStatusName} this.props.dispatch( NavigationActions.navigate({ routeName: 'OrderLog', params: { logData: orderData.reqOrderLogs.sort( (a, b) => b.creationTime - a.creationTime ), }, }) ) } > 操作详情> {/* 流程跟踪 */} (this._scrollView = component)} horizontal={true} showsHorizontalScrollIndicator={false} overScrollMode={'auto'} style={{ paddingVertical: 10, flexDirection: 'row', }} > {this.processTrack(orderData)} {/* {this.processTrack(orderData)} */} {/* 驳回理由 */} {/* {comeFrom && comeFrom == "Refund" ? ( 驳回原因:由于商品已经出库,不能进行退货,等客户接收后请自行手工联系退货。 ) : null} */} {comeFrom && comeFrom == 'Refund' ? ( 退货总金额 {CURRENCY.currencySign} {ScaleUtil(orderData.totalReturnAmount)} ) : null} {/* 选地址 */} {orderData.reqOrderReceiveAddress ? ( {orderData.reqOrderReceiveAddress.receiver} {orderData.reqOrderReceiveAddress.receiverPhone} {(orderData.reqOrderReceiveAddress.receiverProvince || '') + (orderData.reqOrderReceiveAddress.receiverCity || '') + (orderData.reqOrderReceiveAddress.receiverTown || '') + (orderData.reqOrderReceiveAddress.receiverAddress || '')} ) : null} {/* Image地址下边框 */} {/* 商品信息 */} index} data={orderData.reqOrderItems} extraData={this.state} renderItem={({ item, index }) => this.goodsInfo(item, index, comeFrom) } /> {/* 信息组 */} {/* 订单编号 */} {comeFrom && comeFrom == 'Refund' ? `退货单编号:${orderData.orderCode}` : `订单编号:${orderData.orderCode}`} {/* 运输结算方式 */} 运输方式:{orderData.transportModeName} {/* 结算方式:{orderData.settleModeName} */} {/* 支付方式:{orderData.underPaymentModeName} */} {/* 发票抬头类型 */} {orderData.reqOrderInvoice ? ( 发票类型:{orderData.reqOrderInvoice.invoiceType} 发票抬头:{orderData.reqOrderInvoice.invoiceTitle} ) : null} {/* 纳税人号、开户行、账号 */} {orderData.reqOrderInvoice ? ( 纳税人号:{orderData.reqOrderInvoice.invoiceTaxId} 开户行:{(orderData.reqOrderInvoice.invoiceBank || '') + (orderData.reqOrderInvoice.invoiceSubBank || '')} 账号:{orderData.reqOrderInvoice.invoiceAccount} ) : null} {/* 备注 */} {comeFrom && comeFrom == 'Refund' ? ( {/* 退货日期:2018-05-06 */} 退货原因:{orderData.returnReasonName} ) : null} 备注:{orderData.remark} {/* 商品金额 */} {comeFrom && comeFrom == 'Refund' ? null : ( 商品金额:{orderData.currencySign} {orderData.totalAmount} 订单总重量:{orderData.totalWeight+'KG'} {/* 费用冲抵:{orderData.currencySign} {orderData.offsetAmount} */} 订单总金额: {orderData.currencySign} {orderData.totalDealAmount+(orderData.offsetAmount?orderData.offsetAmount:0)} )} {/* 发货信息 */} {comeFrom && comeFrom == 'Refund' ? ( 退货照片 {imageArr.map((item, index) => ( ))} ...... ) : null // ( // // // 发货信息 // // // // 查看详情 // // // // // ) } {/* 底部 */} {/* {comeFrom && comeFrom == 'Refund' ? null : ( {this.bottomTouch(orderData)} )} */} ) } } const styles = StyleSheet.create({ container: { flex: 1, }, text333: { fontSize: 14, lineHeight: 20, letterSpacing: 0.17, color: '#333', }, text666: { fontSize: 13, lineHeight: 18, color: '#666', }, text666red: { fontSize: 14, lineHeight: 25, color: '#E14C46', }, text999: { fontSize: 12, lineHeight: 17, color: '#999', }, }) export default OrderDetail