订单按钮优化完成

This commit is contained in:
2022-07-15 21:09:46 +08:00
parent b688195a60
commit 3eafc7539f
18 changed files with 158 additions and 875 deletions
+27 -51
View File
@@ -38,73 +38,49 @@ export default memo(({orderInfo, onClick, fixedBottom = true}:Param) => {
ReturnApplyOrderTypeSalesRefund // 销售退款
} = REFUND_STATUS_ORDER
//订单类型
// const {
// SaLeModeBulk,
// SaleModeLengthCut,
// SaLeModeWeightCut,
// } = SALE_MODE
//注册订单
const orderBtnsList = useRef([
//注册按钮
type orderBtnsListParams = {id: number, label: string, validatarFunc: (val: typeof orderInfo) => any}
const orderBtnsList = useRef<orderBtnsListParams[]>([
{
id: 8,
big_value: [ReturnStageQualityCheckPendingRefund.value, ReturnStageServiceOrderPendingRefund.value],
cut_value: [ReturnStageQualityCheckPendingRefund.value, ReturnStageServiceOrderPendingRefund.value, ReturnStageReturned.value ],
model_value: [],
label: '申请记录'
label: '申请记录',
validatarFunc: (orderInfo) => {
if(orderInfo.sale_mode !== 1) return [ReturnStageQualityCheckPendingRefund.value, ReturnStageServiceOrderPendingRefund.value, ReturnStageReturned.value].includes(orderInfo.stage)
return false
},
},
{
id: 1,
big_value: [ReturnStageApplying.value, ReturnStageWaitCheck.value],
cut_value: [ReturnStageApplying.value, ReturnStageWaitCheck.value, ],
model_value: [],
label: '取消退货'
label: '取消退货',
validatarFunc: (orderInfo) => {
if(orderInfo.sale_mode !== 1) return [ReturnStageApplying.value, ReturnStageWaitCheck.value].includes(orderInfo.stage)
return false
}
},
{
id: 4,
big_value: [ReturnStageQualityCheckPendingRefund.value, ReturnStageServiceOrderPendingRefund.value, ReturnStageReturned.value],
cut_value: [ReturnStageQualityCheckPendingRefund.value, ReturnStageServiceOrderPendingRefund.value, ReturnStageReturned.value],
model_value: [],
label: '质检结果'
label: '质检结果',
validatarFunc: (orderInfo) => {
if(orderInfo.sale_mode !== 1) return [ReturnStageQualityCheckPendingRefund.value, ReturnStageServiceOrderPendingRefund.value, ReturnStageReturned.value].includes(orderInfo.stage)
return false
}
},
{
id: 6,
big_value: [ReturnStageApplying.value, ReturnStageServiceOrderPendingRefund.value],
cut_value: [ReturnStageWaitCheck.value, ReturnStageApplying.value],
model_value: [ReturnStageApplying.value],
label: '取消退款'
},
])
//判断是否显示该按钮
const orderBtnsShow = (item) => {
let key = ['big_value', 'model_value', 'cut_value']
if(item.id == 1) {
//取消退货
return (orderInfo.type == ReturnApplyOrderTypeReturnForRefund.value)&&item[key[orderInfo?.sale_mode]]?.includes(orderInfo.stage)
} else if (item.id == 6) {
//取消退款
if(orderInfo?.sale_mode == 0) {
return (orderInfo.type != ReturnApplyOrderTypeReturnForRefund.value)&&item[key[orderInfo?.sale_mode]]?.includes(orderInfo.stage)
} else {
return item[key[orderInfo?.sale_mode]]?.includes(orderInfo.stage)
label: '取消退款',
validatarFunc: (orderInfo) => {
//大货 是销售退款时
if(orderInfo?.sale_mode == 0 && orderInfo.type != ReturnApplyOrderTypeReturnForRefund.value) return [ReturnStageApplying.value, ReturnStageServiceOrderPendingRefund.value]?.includes(orderInfo.stage)
if(orderInfo?.sale_mode == 1) return [ReturnStageApplying.value].includes(orderInfo.stage)
return false
}
} else if (item.id == 4) {
//质检结果
return (orderInfo?.type == ReturnApplyOrderTypeReturnForRefund.value)&&item[key[orderInfo?.sale_mode]]?.includes(orderInfo.stage) //退货才有
} else {
return item[key[orderInfo?.sale_mode]]?.includes(orderInfo.stage)
}
}
},
])
//显示的按钮数组
const orderBtnsShowList: any[] = useMemo(() => {
return orderBtnsList.current.filter(item => {
return orderBtnsShow(item)
return item.validatarFunc(orderInfo)
})
}, [orderInfo])
+33 -36
View File
@@ -19,6 +19,7 @@ type Param = {
wait_pay_amount: number, //待付金额
sale_mode: number, //订单类型
av_return_roll?: number, //可退数量
is_return?: true|false, //是否申请了售后
},
onClick?: (val: number) => void //点击后触发的事件,返回订单状态
@@ -67,38 +68,6 @@ export default memo(({orderInfo, onClick}:Param) => {
return orderInfo.actual_amount == 0 && orderStatus.includes(orderInfo.status)
}
},
{
id: 3,
label: '申请退款',
validatarFunc: (orderInfo) => {
//大货在待发货付过款
let orderStatus = [
SaleOrderStatusWaitingDelivery.value,
SaleOrderStatusTaking.value
]
return orderInfo.sale_mode == SaLeModeBulk.value && orderInfo.actual_amount != 0 && orderInfo.av_return_roll && orderStatus.includes(orderInfo.status)
}
},
{
id: 5,
label: '申请退货',
validatarFunc: (orderInfo) => {
let orderStatus = [
SaleOrderStatusAlreadyReceipt.value,
]
return orderInfo&&orderStatus.includes(orderInfo.status)
}
},
{
id: 6,
label: '确认收货',
validatarFunc: (orderInfo) => {
let orderStatus = [
SaleOrderStatusWaitingReceipt.value
]
return orderStatus.includes(orderInfo.status)
}
},
{
id: 7,
label: '再次购买',
@@ -121,10 +90,39 @@ export default memo(({orderInfo, onClick}:Param) => {
id: 9,
label: '售后记录',
validatarFunc: (orderInfo) => {
return orderInfo.is_return
}
},
{
id: 3,
label: '申请退款',
validatarFunc: (orderInfo) => {
//大货在待发货付过款
let orderStatus = [
SaleOrderStatusRefund.value
SaleOrderStatusWaitingDelivery.value,
SaleOrderStatusTaking.value
]
return orderInfo&&orderStatus.includes(orderInfo.status)
return orderInfo.sale_mode == SaLeModeBulk.value && orderInfo.actual_amount != 0 && orderInfo.av_return_roll && orderStatus.includes(orderInfo.status)
}
},
{
id: 5,
label: '申请退货',
validatarFunc: (orderInfo) => {
let orderStatus = [
SaleOrderStatusAlreadyReceipt.value,
]
return orderStatus.includes(orderInfo.status)
}
},
{
id: 6,
label: '确认收货',
validatarFunc: (orderInfo) => {
let orderStatus = [
SaleOrderStatusWaitingReceipt.value
]
return orderStatus.includes(orderInfo.status)
}
},
{
@@ -153,7 +151,7 @@ export default memo(({orderInfo, onClick}:Param) => {
})
}, [orderInfo])
//订阅消息
//小程序订阅
const {ApplyGoods} = SUBSCRIPTION_MESSAGE_SCENE
const {openSubscriptionMessage} = UseSubscriptionMessage()
@@ -236,7 +234,6 @@ export default memo(({orderInfo, onClick}:Param) => {
//退款
const {fetchData: fetchDataApplyRefund} = ApplyRefundApi()
const applyRefund = async () => {
// if(!orderInfo?.av_return_roll) return alert.none('该订单没有可退条数')
Taro.showModal({
title: '确定退款?',
success: async function async (res) {