import { TakeGoodsOrder, TakeGoodsOrderAudit, TakeGoodsOrderRefuse } from '@/api' import { formatDateTime, formatMeterDiv, formatWeightDiv } from '@/common/format' import Cell from '@/components/cell' import Divider from '@/components/divider' import LayoutBlock from '@/components/layoutBlock' import NormalButton from '@/components/normalButton' import SaleModeTag from '@/components/saleModeTag' import UploadImage from '@/components/uploadImage' import { View, Text } from '@tarojs/components' import Taro from '@tarojs/taro' import { useRouter } from '@tarojs/taro' import { alert } from '@/common/common' import { FC, useCallback, useEffect, useMemo, useState } from 'react' import styles from './index.module.scss' import Popup from '@/components/popup' import Remark from '../takeDelivery/components/remark' const TakeDeliveryDetail: FC = () => { const router = useRouter() const { fetchData } = TakeGoodsOrder() const [detailInfo, setDetailInfo] = useState>({}) const getData = async () => { const { id } = router.params const res = await fetchData({ id, }) console.log('res==>', res.data) setDetailInfo(res.data) // 动态设置标题 Taro.setNavigationBarTitle({ title: res.data.take_goods_order_type_name, }) } useEffect(() => { getData() }, []) const { fetchData: FetchAudit } = TakeGoodsOrderAudit() const DetailItem = useMemo(() => { const element = !!detailInfo?.dyelot_number_list?.length && detailInfo?.dyelot_number_list.map((weightItem) => { return ( {weightItem.product_code}# {weightItem.product_name} 共 {weightItem?.sale_mode === 0 ? `${weightItem.sale_roll} 条` : `${formatMeterDiv(weightItem?.sale_length || 0)} 米`} {weightItem.product_color_code}# {weightItem.product_color_name} x{weightItem?.sale_mode === 0 ? `${weightItem.sale_roll} 条` : `${formatMeterDiv(weightItem?.sale_length || 0)} 米`} {formatWeightDiv(weightItem.weight)}/kg ) }) return <>{element} }, [detailInfo]) const [readyToUploadList, setReadyToUploadList] = useState([]) const handleUploadChange = (imageList: string[]) => { console.log('imageList===>', imageList) setReadyToUploadList((prev) => [...prev, ...imageList]) } const { fetchData: refuseOrder } = TakeGoodsOrderRefuse() const [showRemarkModal, setShowRemarkModal] = useState(false) const handleRefuseOrder = async (remark: string) => { const res = await refuseOrder({ id: Number(router.params.id), remark: remark, }) if (res.success) { alert.success('拒收成功') getData() } else { alert.error('该操作失败') } } const onRemarkSave = async (remark: string) => { handleRefuseOrder(remark) } // 拒收 const handleRefuse = useCallback(() => { setShowRemarkModal(true) }, []) // 审核 const handleAudit = useCallback(() => { Taro.showModal({ confirmColor: '#337FFF', title: '确定要提货?', success: async function (res) { if (res.confirm) { const res = await FetchAudit({ id: Number(router.params.id) }) if (res.success) { alert.success('提货成功') getData() } else { alert.error('请求失败') } } }, }) }, [readyToUploadList]) // 底部按钮栏 const BottomBar = useMemo(() => { if (detailInfo?.take_goods_order_type !== 0) { // 采购提货 return ( 确认提货 ) } else { // 退货提货 return ( 拒收 确认提货 ) } }, [handleRefuse, handleAudit]) return ( 提货单号:{detailInfo?.take_order_no} {detailInfo?.take_goods_status === 0 ? ( {detailInfo?.take_goods_status_name} ) : ( {detailInfo?.take_goods_status_name} )} {detailInfo?.take_goods_order_type === 0 && 供应信息:{detailInfo?.supplier_name}} {DetailItem} 汇总: 共{detailInfo?.dyelot_number_list?.length || 0}种面料,4种颜色,共 {detailInfo?.sale_mode === 0 ? `${detailInfo?.take_roll}条` : `${formatMeterDiv(detailInfo?.take_meters)}米`} ,重量{detailInfo?.weight}kg {detailInfo?.take_goods_order_type !== 0 && ( <> 退货布匹附件 退货物流附件 )} 订单信息 {detailInfo?.take_goods_order_type !== 0 && ( 备注信息 {detailInfo?.remark} )} {detailInfo?.take_goods_status === 0 && BottomBar} setShowRemarkModal(false)}> ) } export default TakeDeliveryDetail