import { SaleOrderOrderDetailApi } from '@/api/salesAfterOrder' import { AFTER_ORDER_STATUS, ORDER_STATUS } from '@/common/enum' import { formatDateTime, formatImgUrl, formatPriceDiv } from '@/common/fotmat' import AfterOrderBtns from '@/components/afterOrderBtns' import SearchInput from '@/components/searchInput' import useLogin from '@/use/useLogin' import { Image, Text, Textarea, View } from '@tarojs/components' import Taro, { useDidShow, usePullDownRefresh, useRouter } from '@tarojs/taro' import classnames from 'classnames' import { useCallback, useEffect, useMemo, useRef, useState, memo } from 'react' import AddressInfoDetail from './components/addressInfoDetail' import ApplyRecord from './components/applyRecord' import ContentBox from './components/contentBox' import KindList from './components/kindList' import OrderState from './components/orderState' import ReturnLogistics from './components/returnLogistics' import styles from './index.module.scss' export default () => { useLogin() const router = useRouter() const orderId = useRef(Number(router.params.id)) useDidShow(() => { getSaleOrderPreView() }) //获取订单详情 const [orderDetail, setOrderDetail] = useState() //获取到的原始数据 const { fetchData: saleOrderOrderDetailData } = SaleOrderOrderDetailApi() const getSaleOrderPreView = async () => { if (orderId.current) { let res = await saleOrderOrderDetailData({ id: orderId.current }) setOrderDetail(res.data) } Taro.stopPullDownRefresh() } //监听获取到的数据 useEffect(() => { if (orderDetail) formatData() }, [orderDetail]) //格式化数据格式 const [formatDetailOrder, setFormatDetailOrder] = useState() //格式化后的数据 const formatData = () => { setFormatDetailOrder({ ...orderDetail, unit: orderDetail.sale_mode == 0 ? '条' : 'm', //单位 }) } const formatPreViewOrderMemo = useMemo(() => { return formatDetailOrder }, [formatDetailOrder]) //获取底部按钮点击, 获取按钮状态 const orderStateClick = useCallback( (val) => { if (val == 1 || val == 6) { getSaleOrderPreView() } else if (val == 8) { //申请记录 setApplyRecord(true) } else if (val == 5) { onShowLogistics(1) } }, [orderDetail], ) //页面下拉刷新 usePullDownRefresh(() => { getSaleOrderPreView() }) //按钮所需数据 const orderInfo = useMemo(() => { return { ...orderDetail, } }, [orderDetail]) //售后订单状态枚举 const {} = AFTER_ORDER_STATUS //物流显示 const [logisticsShow, setLogisticsShow] = useState(false) const [logistics, setLogistics] = useState(false) const onShowLogistics = useCallback((val) => { setLogisticsShow(true) if (val != 1) setLogistics(true) }, []) const onCloseLogistics = useCallback(() => { setLogisticsShow(false) }, []) //物流成功上传 const logisticsSuccess = useCallback(() => { setLogisticsShow(false) getSaleOrderPreView() }, []) //显示记录 const [applyRecord, setApplyRecord] = useState(false) return ( setApplyRecord(false)} /> ) } const OrderDes = memo(({ orderInfo }: { orderInfo?: any }) => { //复制功能 const clipboardData = (val) => { Taro.setClipboardData({ data: val, success: function (res) { Taro.showToast({ icon: 'none', title: '复制成功', }) }, }) } return ( 订单信息 {orderInfo?.return_order_no} clipboardData(orderInfo?.return_order_no)}> 复制 {orderInfo?.order_no} clipboardData(orderInfo?.order_no)}> 复制 {orderInfo?.return_reason_name} {orderInfo?.return_explain_name} {orderInfo?.goods_status_name} {formatDateTime(orderInfo?.apply_time)} {orderInfo?.reason_describe} ) }) const AfterSalePricture = memo(({ urls = [] }: { urls: string[] }) => { const showList = useMemo(() => { let res = urls.map((item) => { return formatImgUrl(item, '!w800') }) return res }, [urls]) //预览图片 const showImage = () => { Taro.previewImage({ current: showList[0], // 当前显示 urls: showList, // 需要预览的图片http链接列表 }) } return ( {urls?.map((item) => ( ))} ) })