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