142 lines
5.3 KiB
TypeScript
142 lines
5.3 KiB
TypeScript
import { Image, Text, View } from '@tarojs/components'
|
|
import Taro, { useDidShow, usePullDownRefresh, useRouter } from '@tarojs/taro'
|
|
import { useEffect, useRef, useState } from 'react'
|
|
import classnames from 'classnames'
|
|
import styles from './index.module.scss'
|
|
import { formatDateTime, formatPriceDiv, formatRemoveHashTag, formatWeightDiv } from '@/common/fotmat'
|
|
import { PAY_H5_CODE_URL } from '@/common/constant'
|
|
import { GetCodePic } from '@/api/onlinePay'
|
|
|
|
enum CodeEnum {
|
|
oldCode = 1, // 传统码单
|
|
customCode = 2, // 自定义码单
|
|
}
|
|
|
|
interface Props {
|
|
handClose?: () => void
|
|
showPopup?: boolean
|
|
orderObj?: any
|
|
}
|
|
|
|
export default (props: Props) => {
|
|
const [codePic, setcodePic] = useState<any[]>([])
|
|
|
|
// 手机号
|
|
const userPhone = (addressInfo) => {
|
|
return addressInfo?.shipment_mode == 2 ? props.orderObj.target_user_phone : props.orderObj.take_goods_phone
|
|
}
|
|
|
|
// 收货地址
|
|
const address = (addressInfo) => {
|
|
if (addressInfo?.shipment_mode == 2) {
|
|
return addressInfo?.province_name ? addressInfo.province_name + addressInfo.city_name + addressInfo.district_name + addressInfo.address_detail : ''
|
|
}
|
|
else {
|
|
return addressInfo?.take_goods_address
|
|
}
|
|
}
|
|
|
|
// 收件人
|
|
const userName = (addressInfo) => {
|
|
return addressInfo?.shipment_mode == 2 ? props?.orderObj.target_user_name : ''
|
|
}
|
|
|
|
// 预览图片
|
|
const showImage = (e) => {
|
|
e.stopPropagation()
|
|
Taro.previewImage({
|
|
current: codePic[0], // 当前显示
|
|
urls: codePic, // 需要预览的图片http链接列表
|
|
})
|
|
}
|
|
const { fetchData } = GetCodePic()
|
|
const getPic = async() => {
|
|
Taro.showLoading({
|
|
title: '加载中...',
|
|
})
|
|
const lists: any[] = []
|
|
props.orderObj?.dyelot_number_list?.forEach((item) => {
|
|
lists.push({
|
|
product_code: item.product_code,
|
|
product_name: item.product_name,
|
|
product_color_code: item.product_color_code,
|
|
product_color_name: item.product_color_name,
|
|
num: item.roll.toString(),
|
|
weight: formatWeightDiv(item.weight).toString(),
|
|
sale_price: formatPriceDiv(item.sale_price).toString(),
|
|
total_price: formatPriceDiv(item?.total_price).toString(),
|
|
deduction_weight: formatWeightDiv(item.deduction_weight).toString(),
|
|
deduction_amount: formatWeightDiv(item.deduction_amount).toString(),
|
|
// settle_weight: formatPriceDiv(item?.total_price).toString(),
|
|
weight_error: formatWeightDiv(item.weight_error).toString(),
|
|
dryelot_number: item.dyelot_number,
|
|
product_id: item.product_id.toString(),
|
|
product_color_id: item.product_color_id.toString(),
|
|
})
|
|
})
|
|
const query: any = {
|
|
page_size: '4',
|
|
title: '面料销售电子确认单',
|
|
company: props.orderObj.company_name, // 后端公司
|
|
order_type: props.orderObj.sale_mode_name, // 类型:大货
|
|
sale_user: props.orderObj.sale_user_name, // 业务员
|
|
order_created_time: formatDateTime(props.orderObj.create_time),
|
|
order_no: props.orderObj.order_no,
|
|
shipment_mode: props.orderObj.shipment_mode_name, // 发货方式
|
|
target_user_name: userName(props.orderObj), // 收件人
|
|
target_address: address(props.orderObj), // 收货地址
|
|
target_description: props.orderObj.remark, // 发货备注
|
|
pay_account: props.orderObj.transfer_remittance_account, // 专属收款账号
|
|
bank_account_name: props.orderObj.account_name, // 账户名称
|
|
bank_name: props.orderObj.bank_of_deposit, // 开户银行
|
|
client: props.orderObj.purchaser_name, // 客户名称
|
|
phone: userPhone(props.orderObj), // 收货手机号码
|
|
order_total_length: (props.orderObj.total_number / 100).toString(), // 订单布匹长度
|
|
order_total_price: formatPriceDiv(props.orderObj.bill_total_sale_price).toString(), // 订单价格
|
|
qrcode: `${PAY_H5_CODE_URL}?key=${props.orderObj.md5_key}`, // 跳转链接
|
|
order_total_weight: formatWeightDiv(props.orderObj.total_weight || props.orderObj.total_estimate_weight).toString(), // 订单布匹重量
|
|
list: lists,
|
|
order_total_weight_error: formatWeightDiv(props.orderObj.total_weight_error).toString(), // 总空差重量
|
|
order_total_deduction_weight: formatWeightDiv(props.orderObj.total_deduction_weight).toString(),
|
|
order_total_deduction_amount: formatPriceDiv(props.orderObj.total_deduction_amount).toString(),
|
|
order_total_settle_weight: formatWeightDiv(props.orderObj.total_settle_weight).toString(),
|
|
pay_type: props.orderObj?.settle_mode_name,
|
|
|
|
show_deduction_amount: false,
|
|
show_sale_price: props.orderObj.is_display_price,
|
|
show_barcode: true, // 条形码
|
|
show_qrcode: true,
|
|
}
|
|
const res = await fetchData(query)
|
|
if (res.data) {
|
|
setcodePic(res.data?.base64_list)
|
|
Taro.hideLoading()
|
|
}
|
|
else {
|
|
Taro.hideLoading()
|
|
Taro.showToast({
|
|
title: res.data?.message,
|
|
icon: 'error',
|
|
})
|
|
}
|
|
}
|
|
|
|
useEffect(() => {
|
|
if (props.showPopup) {
|
|
getPic()
|
|
}
|
|
}, [props.showPopup])
|
|
|
|
return (
|
|
<>
|
|
{
|
|
props?.showPopup && <View className={styles.main} onClick={() => props?.handClose?.()}>
|
|
<View className={styles.picBox}>
|
|
<Image onClick={e => showImage(e)} className={styles.pic} mode="aspectFit" src={codePic[0]}></Image>
|
|
</View>
|
|
</View>
|
|
}
|
|
</>
|
|
)
|
|
}
|