88 lines
3.3 KiB
TypeScript

import { View } from "@tarojs/components"
import { memo, useEffect, useState, useMemo } from "react"
import style from "./index.module.scss"
interface prosObj {
obj?: {
sale_mode?: Number,
collect_status?: Number | string,
status?: Number,
payment_method?: Number,
settle_mode?: Number | string,
}
cancle?: (any) => void,
nextBuy?: (any) => void,
toPay?: (any) => void,
}
export default memo((props: prosObj) => {
const {
obj = {
sale_mode: 0,
collect_status: '',
status: '',
payment_method: 0,
settle_mode: ''
},
cancle,
nextBuy,
toPay
} = props
//判断显示取消订单
const showCancel = useMemo(() => {
if (
(obj.sale_mode === 0 && obj.status === 0) ||
(obj.sale_mode === 0 && obj.status === 1) ||
(obj.sale_mode === 0 && obj.status === 2 && obj.collect_status == 0) ||
(obj.sale_mode === 0 && obj.status === 7 && obj.collect_status == 0) ||
(obj.sale_mode === 0 && obj.status === 11 && obj.collect_status == 0) ||
(obj.sale_mode === 0 && obj.status === 11 && obj.settle_mode == 3) ||
(obj.sale_mode === 0 && obj.status === 3 && obj.settle_mode == 3) ||
(obj.sale_mode === 1 && obj.status === 10) ||
(obj.sale_mode === 2 && obj.status === 10) ||
(obj.sale_mode === 2 && obj.status === 0 && (obj.collect_status == 1 || obj.collect_status == 2)) ||
(obj.sale_mode === 2 && obj.status === 0 && obj.collect_status == 0)
) {
return true
} else return false
}, [obj])
//判断显示再次购买
const showBuy = useMemo(() => {
if (
obj.sale_mode === 0 ||
(obj.sale_mode === 1 && obj.status !== 10) ||
(obj.sale_mode === 2 && obj.status !== 10)
) {
return true
} else return false
}, [obj])
//判断显示去付款
const canBuy = useMemo(() => {
if (
(obj.sale_mode === 0 && obj.status === 7 && obj.collect_status == 1) ||
(obj.sale_mode === 0 && obj.status === 3 && obj.collect_status == 1) ||
(obj.sale_mode === 0 && obj.status === 3 && (obj.payment_method == 3 || obj.payment_method == 5)) ||
(obj.sale_mode === 0 && obj.status === 8 && (obj.payment_method == 3 || obj.payment_method == 5 || obj.collect_status == 1)) ||
(obj.sale_mode === 0 && obj.status === 9 && (obj.payment_method == 3 || obj.payment_method == 5 || obj.collect_status == 1)) ||
(obj.sale_mode === 0 && obj.status === 7 && obj.collect_status == 0) ||
(obj.sale_mode === 2 && obj.status === 7)
) {
return true
} else return false
}, [obj])
return (
<View className={style.flexBox}>
{
showCancel && <View className={style.cancle} onClick={(e) => cancle?.(e)}></View>
}
{
showBuy && <View className={style.nextBuy} onClick={(e) => nextBuy?.(e)}></View>
}
{
canBuy && <View className={style.toBuy} onClick={(e) => toPay?.(e)}></View>
}
</View>
)
})