import * as WebBrowser from 'expo-web-browser'; import * as React from 'react'; import { StyleSheet, View, FlatList } from 'react-native'; import { Div, Button, Text, Avatar, Image } from 'react-native-magnus'; import { Flex } from '@ant-design/react-native'; import { TouchableRipple } from 'react-native-paper'; import { useCreation, useRequest } from '@umijs/hooks'; import { useFocusEffect } from '@react-navigation/native'; import useModel from 'flooks'; import Toast from '../../flooks/Toast'; import Header from './Header'; // 头部 import Time from '../../Utils/TimeUtils'; import MapMarkImg from '../Map/MapMarkImg'; import { getStatusInfo } from '../../Utils/OrderUtils'; export default function OrderScreen({ navigation }) { const [orderList, setorderList] = React.useState(); const { success, warnning } = useModel(Toast, []); const orderRequest = useRequest('/orderInfo/my?sort=id,desc', { manual: true, onSuccess: (result) => { setorderList(result.content); }, }); useFocusEffect( React.useCallback(() => { orderRequest.run(); }, []) ); return ( <> orderRequest.run()} refreshing={orderRequest.loading} contentContainerStyle={styles.list} data={orderList} renderItem={({ item, index }) => ( { navigation.navigate(name || 'OrderDetail', { orderId: item.id, }); }} goMerchant={() => { navigation.navigate('MerchantDetail', { merchantId: item.merchantId, }); }} index={index} connect={(type) => { if (type === 'merchant') { warnning('正在帮您联系商家'); } }} /> )} keyExtractor={(item) => item.id.toString()} /> > ); } // 订单组件 function Item({ merchant, info, goNext, orderGoodsSpecs, goMerchant, connect, }) { const orderInfo = orderGoodsSpecs.length > 0 ? orderGoodsSpecs[0].goods.name : ''; const statusInfo = getStatusInfo(info); const finish = info.riderStatus === 'CARRY_OUT'; const Allfinish = info.status === 'COMPLETED'; return ( goNext()}> goMerchant()}> {merchant.name} {finish || Allfinish ? ( 已送达 ) : ( 预计 {new Time( info.timeOfArrival, 'yyyy-MM-DD HH:mm:ss' ).getFormat('HH:mm')} 送达 )} 订单时间: {info.orderTime} 订单商品 {orderInfo}等{info.num}件 ¥{info.realAmount} {finish && !Allfinish ? ( goNext('Evaluate')} > 立即评价 ) : ( connect('merchant')} > 联系商家 )} {finish && ( 再来一单 )} ); } const styles = StyleSheet.create({ item: { paddingVertical: 20, paddingHorizontal: 10, backgroundColor: '#fff', borderRadius: 3, flex: 1, }, list: { padding: 15, }, icon: { width: 53, height: 53, borderRadius: 3, backgroundColor: '#eee', }, main: { marginLeft: 5, }, orderDetail: { paddingVertical: 10, borderTopWidth: 1, borderColor: '#E5E5E5', marginTop: 10, }, btns: { paddingTop: 15, }, });