剪板流程
This commit is contained in:
parent
86a8a76b27
commit
cef0a4c2af
@ -30,16 +30,18 @@ export const AFTER_ORDER_STATUS = {
|
|||||||
export const PAYMENT_METHOD = {
|
export const PAYMENT_METHOD = {
|
||||||
PaymentMethodPreDeposit: {value:1, label:'预存款'},
|
PaymentMethodPreDeposit: {value:1, label:'预存款'},
|
||||||
PaymentMethodAccountPeriod : {value:2, label:'账期'},
|
PaymentMethodAccountPeriod : {value:2, label:'账期'},
|
||||||
PaymentMethodofflineRemittance: {value:3, label:'线下汇款'},
|
PaymentMethodofflineRemittance: {value:0, label:'线下汇款'},
|
||||||
PaymentMethodScanCodeToPay: {value:4, label:'扫码支付'},
|
PaymentMethodScanCodeToPay: {value:3, label:'扫码支付'},
|
||||||
PaymentMethodCashOnDelivery: {value:5, label:'货到付款'},
|
PaymentMethodCashOnDelivery: {value:4, label:'货到付款'},
|
||||||
}
|
}
|
||||||
export type PAYMENT_METHOD_PARAM = 1|2|3|4|5
|
export type PAYMENT_METHOD_PARAM = 0|1|2|3|4
|
||||||
|
|
||||||
|
|
||||||
//订单模式
|
//订单类型
|
||||||
export const SALE_MODE = {
|
export const SALE_MODE = {
|
||||||
|
SaLeModeBulk: {value:0, label:'大货'},
|
||||||
|
SaleModeLengthCut: {value:1, label:'剪版'},
|
||||||
|
SaLeModeWeightCut: {value:2, label:'散剪'},
|
||||||
}
|
}
|
||||||
|
|
||||||
//分享场景枚举
|
//分享场景枚举
|
||||||
|
202
src/components/orderBtns/index copy.tsx
Normal file
202
src/components/orderBtns/index copy.tsx
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
import { CancelOrderApi, ReceiveOrderApi } from "@/api/order"
|
||||||
|
import { alert } from "@/common/common"
|
||||||
|
import { ORDER_STATUS, SALE_MODE } from "@/common/enum"
|
||||||
|
import { ScrollView, Text, View } from "@tarojs/components"
|
||||||
|
import Taro from "@tarojs/taro"
|
||||||
|
import { useCallback, useRef, memo, useState, useEffect, useMemo } from "react"
|
||||||
|
import styles from './index.module.scss'
|
||||||
|
|
||||||
|
type Param = {
|
||||||
|
orderInfo: {
|
||||||
|
status: number, //订单状态
|
||||||
|
orderId: number, //订单id
|
||||||
|
actual_amount: number, //实付金额
|
||||||
|
wait_pay_amount: number, //待付金额
|
||||||
|
sale_mode: number //订单类型
|
||||||
|
}|null,
|
||||||
|
onClick?: (val: number) => void //点击后触发的事件,返回订单状态
|
||||||
|
}
|
||||||
|
|
||||||
|
export default memo(({orderInfo, onClick}:Param) => {
|
||||||
|
//订单状态枚举
|
||||||
|
const {
|
||||||
|
SaleOrderStatusBooking,
|
||||||
|
SaleOrderStatusArranging,
|
||||||
|
SaleOrderStatusArranged,
|
||||||
|
SaleOrderStatusWaitingDelivery,
|
||||||
|
SaleOrderStatusComplete,
|
||||||
|
SaleOrderStatusRefund,
|
||||||
|
SaleOrderStatusWaitingPayment,
|
||||||
|
SaleOrderStatusWaitingReceipt,
|
||||||
|
SaleOrderStatusAlreadyReceipt,
|
||||||
|
SaleorderstatusWaitingPrePayment
|
||||||
|
} = ORDER_STATUS
|
||||||
|
|
||||||
|
//订单类型
|
||||||
|
const {
|
||||||
|
SaLeModeBulk,
|
||||||
|
SaleModeLengthCut,
|
||||||
|
SaLeModeWeightCut,
|
||||||
|
} = SALE_MODE
|
||||||
|
|
||||||
|
//订单按钮按订单状态归类, value是该订单状态,可能该按钮会出现
|
||||||
|
const orderBtnsList = useRef([
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
value: [SaleOrderStatusBooking.value,
|
||||||
|
SaleOrderStatusArranging.value,
|
||||||
|
SaleOrderStatusArranged.value,
|
||||||
|
SaleOrderStatusWaitingPayment.value,
|
||||||
|
SaleOrderStatusWaitingDelivery.value], //取消订单按钮对应: 待接单,配布中,已配布, 待付款, 待发货
|
||||||
|
label: '取消订单'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
value: [SaleorderstatusWaitingPrePayment.value, SaleOrderStatusWaitingPayment.value, SaleOrderStatusWaitingDelivery.value, SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value], //去付款按钮对应:待付款, 待发货, 待收货, 已收货, 已完成
|
||||||
|
label: '去付款'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
value: [SaleOrderStatusWaitingDelivery.value], //申请退款按钮对应: 待发货
|
||||||
|
label: '申请退款'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
value: [SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value], //取消订单按钮对应: 待收货, 已收货, 已完成, 已退款
|
||||||
|
label: '查看物流'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
value: [SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusRefund.value], //申请退货按钮对应: 待收货, 已收货, 已退款
|
||||||
|
label: '申请退货'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 6,
|
||||||
|
value: [SaleOrderStatusWaitingReceipt.value], //确认收货按钮对应: 待收货
|
||||||
|
label: '确认收货'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 7,
|
||||||
|
value: [SaleOrderStatusWaitingReceipt.value,SaleOrderStatusAlreadyReceipt.value,SaleOrderStatusComplete.value,SaleOrderStatusRefund.value], //再次购买按钮对应: 待收货,已收货,已完成, 已退款
|
||||||
|
label: '再次购买'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 8,
|
||||||
|
value: [SaleOrderStatusBooking.value], //按钮对应: 待接单
|
||||||
|
label: '退款'
|
||||||
|
},
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
//判断是否显示该按钮
|
||||||
|
const orderBtnsShow = (item) => {
|
||||||
|
if(orderInfo) {
|
||||||
|
if(item.id == 1) {
|
||||||
|
//取消订单按钮
|
||||||
|
return( orderInfo.actual_amount == 0 && item.value.includes(orderInfo.status)) //在待发货之前没有付过款
|
||||||
|
} else if (item.id == 2) {
|
||||||
|
//去付款按钮
|
||||||
|
return( orderInfo.wait_pay_amount != 0 && item.value.includes(orderInfo.status)) //只要没有付完款就显示
|
||||||
|
} else if(item.id == 3 ) {
|
||||||
|
//申请退款, 只有大货才有
|
||||||
|
return (orderInfo.sale_mode == SaLeModeBulk.value && orderInfo.actual_amount != 0 && item.value.includes(orderInfo.status)) //大货在待发货付过款
|
||||||
|
} else if( item.id == 8) {
|
||||||
|
//退款按钮(直接退款不用申请), 只有散剪和剪板有
|
||||||
|
return (orderInfo.sale_mode != SaLeModeBulk.value && orderInfo.actual_amount != 0 && item.value.includes(orderInfo.status)) //散剪和剪板在待接单时付过款
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//其他按钮
|
||||||
|
return item.value.includes(orderInfo.status)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//显示的按钮数组
|
||||||
|
const orderBtnsShowList: {id: number, value: any, label: string}[] = useMemo(() => {
|
||||||
|
return orderBtnsList.current.filter(item => {
|
||||||
|
return orderBtnsShow(item)
|
||||||
|
})
|
||||||
|
}, [orderInfo])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//点击按钮操作
|
||||||
|
const submitBtns = (val, index) => {
|
||||||
|
(val == 1)&&cancelOrder(); //取消订单按钮
|
||||||
|
(val == 2)&&onClick?.(2); //去付款按钮
|
||||||
|
(val == 6)&&receiveOrder(); //确认收货
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//取消订单
|
||||||
|
const {fetchData: cancelFetchData} = CancelOrderApi()
|
||||||
|
const cancelOrder = () => {
|
||||||
|
Taro.showModal({
|
||||||
|
title: '要取消该订单吗?',
|
||||||
|
success: async function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
let res = await cancelFetchData({id: orderInfo?.orderId})
|
||||||
|
if(res.success) {
|
||||||
|
alert.success('取消成功')
|
||||||
|
onClick?.(1)
|
||||||
|
} else {
|
||||||
|
alert.none(res.msg)
|
||||||
|
}
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//确认订单
|
||||||
|
const {fetchData: receiveOrderFetchData} = ReceiveOrderApi()
|
||||||
|
const receiveOrder = async () => {
|
||||||
|
console.log('123456')
|
||||||
|
Taro.showModal({
|
||||||
|
title: '确定收货?',
|
||||||
|
success: async function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
let res = await receiveOrderFetchData({sale_order_id: orderInfo?.orderId})
|
||||||
|
if(res.success){
|
||||||
|
onClick?.(6)
|
||||||
|
alert.success('收货成功')
|
||||||
|
} else {
|
||||||
|
alert.error('收货失败')
|
||||||
|
}
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//显示更多按钮
|
||||||
|
const [showMore, setShowMore] = useState(false)
|
||||||
|
const styleTop = useMemo(() => {
|
||||||
|
return {top:`-${(orderBtnsShowList.length - 3)*70 + 10}rpx`, left: `-${10}rpx`}
|
||||||
|
}, [orderBtnsShowList])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View className={styles.btns_list}>
|
||||||
|
{(orderBtnsShowList.length > 3)&&<View className={styles.more}>
|
||||||
|
<Text onClick={() => setShowMore(true)}>更多</Text>
|
||||||
|
{showMore&&<View className={styles.more_con}>
|
||||||
|
<View className={styles.more_list} style={styleTop}>
|
||||||
|
{orderBtnsShowList.map((item, index) => {
|
||||||
|
return ((index >= 3) &&<View className={styles.more_item} key={item.id} onClick={() => submitBtns(item.id, index)}>{item.label}</View>)
|
||||||
|
})}
|
||||||
|
</View>
|
||||||
|
<View className={styles.more_bg} catchMove onClick={() => setShowMore(false)}></View>
|
||||||
|
</View>}
|
||||||
|
</View>}
|
||||||
|
|
||||||
|
<View className={styles.list_scroll}>
|
||||||
|
{orderBtnsShowList.map((item, index) =>
|
||||||
|
(index < 3)&&<View key={item.id} className={styles.btns_item} onClick={() => submitBtns(item.id, index)}>{item.label}</View>
|
||||||
|
)}
|
||||||
|
</View>
|
||||||
|
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
})
|
@ -1,6 +1,6 @@
|
|||||||
import { CancelOrderApi, ReceiveOrderApi } from "@/api/order"
|
import { CancelOrderApi, ReceiveOrderApi } from "@/api/order"
|
||||||
import { alert } from "@/common/common"
|
import { alert } from "@/common/common"
|
||||||
import { ORDER_STATUS } from "@/common/enum"
|
import { ORDER_STATUS, SALE_MODE } from "@/common/enum"
|
||||||
import { ScrollView, Text, View } from "@tarojs/components"
|
import { ScrollView, Text, View } from "@tarojs/components"
|
||||||
import Taro from "@tarojs/taro"
|
import Taro from "@tarojs/taro"
|
||||||
import { useCallback, useRef, memo, useState, useEffect, useMemo } from "react"
|
import { useCallback, useRef, memo, useState, useEffect, useMemo } from "react"
|
||||||
@ -12,12 +12,13 @@ type Param = {
|
|||||||
orderId: number, //订单id
|
orderId: number, //订单id
|
||||||
actual_amount: number, //实付金额
|
actual_amount: number, //实付金额
|
||||||
wait_pay_amount: number, //待付金额
|
wait_pay_amount: number, //待付金额
|
||||||
|
sale_mode: number //订单类型
|
||||||
}|null,
|
}|null,
|
||||||
onClick?: (val: number) => void //点击后触发的事件,返回订单状态
|
onClick?: (val: number) => void //点击后触发的事件,返回订单状态
|
||||||
}
|
}
|
||||||
|
|
||||||
// export const OrderBtnsemus = [{id:1, label:'取消订单'},{id:2, label:'去付款'},{id:3, label:'申请退款'},{id:4, label:'查看物流'}, {id:5, label:'申请退货'}, {id:6, label:'确认收货'}, {id:7, label:'再次购买'}]
|
|
||||||
export default memo(({orderInfo, onClick}:Param) => {
|
export default memo(({orderInfo, onClick}:Param) => {
|
||||||
|
//订单状态枚举
|
||||||
const {
|
const {
|
||||||
SaleOrderStatusBooking,
|
SaleOrderStatusBooking,
|
||||||
SaleOrderStatusArranging,
|
SaleOrderStatusArranging,
|
||||||
@ -30,11 +31,23 @@ export default memo(({orderInfo, onClick}:Param) => {
|
|||||||
SaleOrderStatusAlreadyReceipt,
|
SaleOrderStatusAlreadyReceipt,
|
||||||
SaleorderstatusWaitingPrePayment
|
SaleorderstatusWaitingPrePayment
|
||||||
} = ORDER_STATUS
|
} = ORDER_STATUS
|
||||||
|
|
||||||
|
//订单类型
|
||||||
|
const {
|
||||||
|
SaLeModeBulk,
|
||||||
|
SaleModeLengthCut,
|
||||||
|
SaLeModeWeightCut,
|
||||||
|
} = SALE_MODE
|
||||||
|
|
||||||
//订单按钮按订单状态归类, value是该订单状态,可能该按钮会出现
|
//订单按钮按订单状态归类, value是该订单状态,可能该按钮会出现
|
||||||
const orderBtnsList = useRef([
|
const orderBtnsList = useRef([
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
value: [SaleOrderStatusBooking.value, SaleOrderStatusArranging.value, SaleOrderStatusArranged.value, SaleOrderStatusWaitingPayment.value, SaleOrderStatusWaitingDelivery.value], //取消订单按钮对应: 待接单,配布中,已配布, 待付款, 待发货
|
value: [SaleOrderStatusBooking.value,
|
||||||
|
SaleOrderStatusArranging.value,
|
||||||
|
SaleOrderStatusArranged.value,
|
||||||
|
SaleOrderStatusWaitingPayment.value,
|
||||||
|
SaleOrderStatusWaitingDelivery.value], //取消订单按钮对应: 待接单,配布中,已配布, 待付款, 待发货
|
||||||
label: '取消订单'
|
label: '取消订单'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -44,27 +57,27 @@ export default memo(({orderInfo, onClick}:Param) => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 3,
|
id: 3,
|
||||||
value: [SaleOrderStatusWaitingDelivery.value], //取消订单按钮对应: 待发货
|
value: [SaleOrderStatusWaitingDelivery.value], //申请退款按钮对应: 待发货
|
||||||
label: '申请退款'
|
label: '申请退款'
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
id: 4,
|
// id: 4,
|
||||||
value: [SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value], //取消订单按钮对应: 待收货, 已收货, 已完成, 已退款
|
// value: [SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value], //取消订单按钮对应: 待收货, 已收货, 已完成, 已退款
|
||||||
label: '查看物流'
|
// label: '查看物流'
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
id: 5,
|
id: 5,
|
||||||
value: [SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusRefund.value], //取消订单按钮对应: 待收货, 已收货, 已退款
|
value: [SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusRefund.value], //申请退货按钮对应:已收货, 已退款
|
||||||
label: '申请退货'
|
label: '申请退货'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 6,
|
id: 6,
|
||||||
value: [SaleOrderStatusWaitingReceipt.value], //取消订单按钮对应: 待收货
|
value: [SaleOrderStatusWaitingReceipt.value], //确认收货按钮对应: 待收货
|
||||||
label: '确认收货'
|
label: '确认收货'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 7,
|
id: 7,
|
||||||
value: [SaleOrderStatusWaitingReceipt.value,SaleOrderStatusAlreadyReceipt.value,SaleOrderStatusComplete.value,SaleOrderStatusRefund.value], //取消订单按钮对应: 待收货,已收货,已完成, 已退款
|
value: [SaleOrderStatusWaitingReceipt.value,SaleOrderStatusAlreadyReceipt.value,SaleOrderStatusComplete.value,SaleOrderStatusRefund.value], //再次购买按钮对应: 待收货,已收货,已完成, 已退款
|
||||||
label: '再次购买'
|
label: '再次购买'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -85,8 +98,13 @@ export default memo(({orderInfo, onClick}:Param) => {
|
|||||||
//去付款按钮
|
//去付款按钮
|
||||||
return( orderInfo.wait_pay_amount != 0 && item.value.includes(orderInfo.status)) //只要没有付完款就显示
|
return( orderInfo.wait_pay_amount != 0 && item.value.includes(orderInfo.status)) //只要没有付完款就显示
|
||||||
} else if(item.id == 3 ) {
|
} else if(item.id == 3 ) {
|
||||||
//申请退款
|
//申请退款, 只有大货才有
|
||||||
return (orderInfo.actual_amount != 0 && item.value.includes(orderInfo.status)) //在待发货之前付过款
|
return (orderInfo.sale_mode == SaLeModeBulk.value && orderInfo.actual_amount != 0 && item.value.includes(orderInfo.status)) //大货在待发货付过款
|
||||||
|
} else if( item.id == 8) {
|
||||||
|
//退款按钮(直接退款不用申请), 只有散剪和剪板有
|
||||||
|
return (orderInfo.sale_mode != SaLeModeBulk.value && orderInfo.actual_amount != 0 && item.value.includes(orderInfo.status)) //散剪和剪板在待接单时付过款
|
||||||
|
} else if (item.id == 7) {
|
||||||
|
return true //再次购买按钮一直存在
|
||||||
} else {
|
} else {
|
||||||
//其他按钮
|
//其他按钮
|
||||||
return item.value.includes(orderInfo.status)
|
return item.value.includes(orderInfo.status)
|
||||||
|
@ -144,16 +144,15 @@ export default memo(({show = false, onClose, title = '', productId = 0}: param)
|
|||||||
const {getSelfUserInfo} = UseLogin()
|
const {getSelfUserInfo} = UseLogin()
|
||||||
const {fetchData:addFetchData} = AddShoppingCartApi()
|
const {fetchData:addFetchData} = AddShoppingCartApi()
|
||||||
const addShopCart = async () => {
|
const addShopCart = async () => {
|
||||||
// try {
|
try {
|
||||||
// await getSelfUserInfo()
|
await getSelfUserInfo()
|
||||||
// } catch(msg) {
|
} catch(msg) {
|
||||||
// Taro.showToast({
|
Taro.showToast({
|
||||||
// icon:'none',
|
icon:'none',
|
||||||
// title:'授权失败,请求完善授权'
|
title:'授权失败,请求完善授权'
|
||||||
// })
|
})
|
||||||
// return false
|
return false
|
||||||
// }
|
}
|
||||||
|
|
||||||
if(selectCount.sumCount == 0) {
|
if(selectCount.sumCount == 0) {
|
||||||
Taro.showToast({
|
Taro.showToast({
|
||||||
icon:'none',
|
icon:'none',
|
||||||
@ -161,6 +160,7 @@ export default memo(({show = false, onClose, title = '', productId = 0}: param)
|
|||||||
})
|
})
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
const state = await addFetchData({
|
const state = await addFetchData({
|
||||||
"sale_mode": selectIndex,
|
"sale_mode": selectIndex,
|
||||||
color_list: selectCount.color_list
|
color_list: selectCount.color_list
|
||||||
|
@ -89,6 +89,21 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
.logisticsBtn{
|
||||||
|
width: 152px;
|
||||||
|
height: 72px;
|
||||||
|
background: #ffffff;
|
||||||
|
border: 2px solid #dddddd;
|
||||||
|
border-radius: 38px;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 10px;
|
||||||
|
right: 10px;
|
||||||
|
z-index: 999;
|
||||||
|
font-size: 28px;
|
||||||
|
color: #707070;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 72px;
|
||||||
|
}
|
||||||
.order_address_text_no{
|
.order_address_text_no{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
font-size: $font_size;
|
font-size: $font_size;
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
import { EditSaleOrderAddressApi, EditSaleOrderShipmentModeApi } from "@/api/order";
|
import { EditSaleOrderAddressApi, EditSaleOrderShipmentModeApi } from "@/api/order";
|
||||||
import { alert } from "@/common/common";
|
import { alert } from "@/common/common";
|
||||||
|
import { ORDER_STATUS } from "@/common/enum";
|
||||||
import { debounce } from "@/common/util";
|
import { debounce } from "@/common/util";
|
||||||
import AddressList from "@/components/AddressList";
|
import AddressList from "@/components/AddressList";
|
||||||
import Popup from "@/components/popup";
|
import Popup from "@/components/popup";
|
||||||
import { Text, View } from "@tarojs/components"
|
import { Text, View } from "@tarojs/components"
|
||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useState } from "react";
|
import { forwardRef, memo, useEffect, useImperativeHandle, useMemo, useState } from "react";
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
|
|
||||||
export type AddressInfoParam = {
|
export type AddressInfoParam = {
|
||||||
@ -18,15 +19,18 @@ export type AddressInfoParam = {
|
|||||||
phone: string,
|
phone: string,
|
||||||
}
|
}
|
||||||
type Param = {
|
type Param = {
|
||||||
onSelect?: (val:any) => void, //选择
|
onSelect?: (val:any) => void, //选择地址
|
||||||
defaultValue?: AddressInfoParam|null, //默认值
|
defaultValue?: AddressInfoParam|null, //默认值
|
||||||
disabled?: false|true, //true禁用后只用于展示
|
disabled?: false|true, //true禁用后只用于展示
|
||||||
shipment_mode?: 1|2, //1自提 2物流
|
|
||||||
onChangeShipmentMode?: (val: number) => void, //返回收货方式
|
onChangeShipmentMode?: (val: number) => void, //返回收货方式
|
||||||
orderId?: number //订单id
|
orderInfo?: {
|
||||||
|
orderId: number //订单id
|
||||||
|
shipment_mode: 1|2, //1自提 2物流
|
||||||
|
status: number //订单状态
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default memo(forwardRef(({onSelect, onChangeShipmentMode, defaultValue = null, orderId = 0, shipment_mode = 1}: Param, ref) => {
|
export default memo(forwardRef(({onSelect, onChangeShipmentMode, defaultValue = null, orderInfo}: Param, ref) => {
|
||||||
const [showAddressList, setShowAddressList] = useState(false)
|
const [showAddressList, setShowAddressList] = useState(false)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -42,13 +46,14 @@ export default memo(forwardRef(({onSelect, onChangeShipmentMode, defaultValue =
|
|||||||
}, [userInfo])
|
}, [userInfo])
|
||||||
|
|
||||||
const changeShow = () => {
|
const changeShow = () => {
|
||||||
if(receivingStatus == 2)
|
if(receivingStatus == 2 && !logisticsShow)
|
||||||
setShowAddressList(() => true)
|
setShowAddressList(() => true)
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setReceivingStatus(() => shipment_mode)
|
if(orderInfo)
|
||||||
}, [shipment_mode])
|
setReceivingStatus(() => orderInfo.shipment_mode)
|
||||||
|
}, [orderInfo])
|
||||||
|
|
||||||
//把内部方法提供给外部
|
//把内部方法提供给外部
|
||||||
useImperativeHandle(ref, () => ({
|
useImperativeHandle(ref, () => ({
|
||||||
@ -63,8 +68,9 @@ export default memo(forwardRef(({onSelect, onChangeShipmentMode, defaultValue =
|
|||||||
changeReceivingStatus(value)
|
changeReceivingStatus(value)
|
||||||
}
|
}
|
||||||
const changeReceivingStatus = debounce(async (value) => {
|
const changeReceivingStatus = debounce(async (value) => {
|
||||||
|
if(!orderInfo) return false
|
||||||
alert.loading('正在修改')
|
alert.loading('正在修改')
|
||||||
const res = await shipmentModeFetchData({id: orderId, shipment_mode:value})
|
const res = await shipmentModeFetchData({id: orderInfo.orderId, shipment_mode:value})
|
||||||
if(res.success) {
|
if(res.success) {
|
||||||
alert.success('收货方式修改成功')
|
alert.success('收货方式修改成功')
|
||||||
onChangeShipmentMode?.(value)
|
onChangeShipmentMode?.(value)
|
||||||
@ -78,8 +84,9 @@ export default memo(forwardRef(({onSelect, onChangeShipmentMode, defaultValue =
|
|||||||
const [addressId, setAddressId] = useState(0)
|
const [addressId, setAddressId] = useState(0)
|
||||||
const {fetchData: addressFetchData} = EditSaleOrderAddressApi()
|
const {fetchData: addressFetchData} = EditSaleOrderAddressApi()
|
||||||
const getAddress = async (value) => {
|
const getAddress = async (value) => {
|
||||||
|
if(!orderInfo) return false
|
||||||
alert.loading('正在修改')
|
alert.loading('正在修改')
|
||||||
const res = await addressFetchData({id: orderId, address_id: value.id})
|
const res = await addressFetchData({id: orderInfo.orderId, address_id: value.id})
|
||||||
if(res.success) {
|
if(res.success) {
|
||||||
alert.success('地址修改成功')
|
alert.success('地址修改成功')
|
||||||
onSelect?.(value)
|
onSelect?.(value)
|
||||||
@ -91,6 +98,21 @@ export default memo(forwardRef(({onSelect, onChangeShipmentMode, defaultValue =
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//订单状态
|
||||||
|
const {
|
||||||
|
SaleOrderStatusWaitingReceipt,
|
||||||
|
SaleOrderStatusAlreadyReceipt,
|
||||||
|
SaleOrderStatusComplete,
|
||||||
|
SaleOrderStatusRefund,
|
||||||
|
SaleOrderStatusCancel
|
||||||
|
} = ORDER_STATUS
|
||||||
|
|
||||||
|
//根据订单状态判断是否显示物流
|
||||||
|
const logisticsShowList = [SaleOrderStatusWaitingReceipt.value, SaleOrderStatusAlreadyReceipt.value, SaleOrderStatusComplete.value, SaleOrderStatusRefund.value, SaleOrderStatusCancel.value]
|
||||||
|
const logisticsShow = useMemo(() => {
|
||||||
|
return logisticsShowList.includes(orderInfo?.status as number)
|
||||||
|
}, [orderInfo])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View>
|
<View>
|
||||||
<View className={styles.order_address} onClick={() => changeShow()}>
|
<View className={styles.order_address} onClick={() => changeShow()}>
|
||||||
@ -98,20 +120,23 @@ export default memo(forwardRef(({onSelect, onChangeShipmentMode, defaultValue =
|
|||||||
<View className={styles.order_address_text_con}>
|
<View className={styles.order_address_text_con}>
|
||||||
<View className={styles.order_address_text_title}>
|
<View className={styles.order_address_text_title}>
|
||||||
<Text className={styles.address_text}>{formatAddress}</Text>
|
<Text className={styles.address_text}>{formatAddress}</Text>
|
||||||
{(receivingStatus == 2)&&<Text className={classnames(styles.moreIconfont,'iconfont icon-a-moreback')}></Text>}
|
{(receivingStatus == 2 && !logisticsShow)&&<Text className={classnames(styles.moreIconfont,'iconfont icon-a-moreback')}></Text>}
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.order_address_text_name}>
|
<View className={styles.order_address_text_name}>
|
||||||
<Text>{userInfo?.name}</Text>
|
<Text>{userInfo?.name}</Text>
|
||||||
<Text>{userInfo?.phone}</Text>
|
<Text>{userInfo?.phone}</Text>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.updateBtn}>
|
{!logisticsShow&&<View className={styles.updateBtn}>
|
||||||
<View className={styles.updateBtn_list}>
|
<View className={styles.updateBtn_list}>
|
||||||
<View className={classnames(styles.updateBtn_item, receivingStatus==1&&styles.updateBtn_item_select)} onClick={(e) => onReceivingStatus(1,e)}>自提</View>
|
<View className={classnames(styles.updateBtn_item, receivingStatus==1&&styles.updateBtn_item_select)} onClick={(e) => onReceivingStatus(1,e)}>自提</View>
|
||||||
<View className={classnames(styles.updateBtn_item, receivingStatus==2&&styles.updateBtn_item_select)} onClick={(e) => onReceivingStatus(2,e)}>物流</View>
|
<View className={classnames(styles.updateBtn_item, receivingStatus==2&&styles.updateBtn_item_select)} onClick={(e) => onReceivingStatus(2,e)}>物流</View>
|
||||||
</View>
|
</View>
|
||||||
<View style={{transform: receivingStatus==1?'translateX(0)':'translateX(100%)'}} className={classnames(styles.updateBtn_select)}></View>
|
<View style={{transform: receivingStatus==1?'translateX(0)':'translateX(100%)'}} className={classnames(styles.updateBtn_select)}></View>
|
||||||
</View>
|
</View>||
|
||||||
|
<View className={styles.logisticsBtn}>
|
||||||
|
查看物流
|
||||||
|
</View>}
|
||||||
</View>
|
</View>
|
||||||
<Popup show={showAddressList} showTitle={false} onClose={() => setShowAddressList(false)}>
|
<Popup show={showAddressList} showTitle={false} onClose={() => setShowAddressList(false)}>
|
||||||
<View className={styles.order_address_list}>
|
<View className={styles.order_address_list}>
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
.order_list_item {
|
.order_list_item {
|
||||||
display: flex;
|
display: flex;
|
||||||
&:nth-child(2) {
|
&:nth-child(n + 2) {
|
||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
}
|
}
|
||||||
.order_list_item_img{
|
.order_list_item_img{
|
||||||
|
@ -40,8 +40,10 @@ export default memo(({order, comfirm = false}:Param) => {
|
|||||||
|
|
||||||
//数量格式
|
//数量格式
|
||||||
const numText = useMemo(() => {
|
const numText = useMemo(() => {
|
||||||
if(order)
|
if(order) {
|
||||||
return `${order?.total_fabrics}种面料,${order?.total_colors}种颜色,共${order?.total_number}${order?.unit}`
|
let total_number = order?.sale_mode == 0?order?.total_number:(order?.total_number/100)
|
||||||
|
return `${order?.total_fabrics}种面料,${order?.total_colors}种颜色,共${total_number}${order?.unit}`
|
||||||
|
}
|
||||||
}, [order])
|
}, [order])
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
}
|
}
|
||||||
.order_status_item{
|
.order_status_item{
|
||||||
position: relative;
|
position: relative;
|
||||||
padding-left: 50px;
|
// padding-left: 50px;
|
||||||
&:nth-last-child(n+2) {
|
&:nth-last-child(n+2) {
|
||||||
padding-bottom: 30px;
|
padding-bottom: 30px;
|
||||||
}
|
}
|
||||||
@ -44,6 +44,7 @@
|
|||||||
.order_status_content{
|
.order_status_content{
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
padding: 0 30px;
|
||||||
.order_status_title{
|
.order_status_title{
|
||||||
color: $color_font_two;
|
color: $color_font_two;
|
||||||
font-size: $font_size;
|
font-size: $font_size;
|
||||||
@ -75,6 +76,24 @@
|
|||||||
.order_status_des_select{
|
.order_status_des_select{
|
||||||
color: $color_font_one;
|
color: $color_font_one;
|
||||||
}
|
}
|
||||||
|
.pay_time{
|
||||||
|
height: 56px;
|
||||||
|
background: #f6f6f6;
|
||||||
|
border-radius: 20px;
|
||||||
|
color: #3C3C3C;
|
||||||
|
font-size: 24px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-top: 20px;
|
||||||
|
text{
|
||||||
|
font-size: 28px;
|
||||||
|
color: $color_main;
|
||||||
|
padding: 0 10px;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.more{
|
.more{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -102,4 +121,17 @@
|
|||||||
top: -10px;
|
top: -10px;
|
||||||
right: -10px;
|
right: -10px;
|
||||||
}
|
}
|
||||||
|
.refresh{
|
||||||
|
position: absolute;
|
||||||
|
top: 23px;
|
||||||
|
right: 20px;
|
||||||
|
display: flex;
|
||||||
|
color: #707070;
|
||||||
|
.mconfont{
|
||||||
|
font-size: 30px;
|
||||||
|
}
|
||||||
|
.refresh_text{
|
||||||
|
font-size: 23px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -3,40 +3,53 @@ import { memo, useMemo, useState } from "react"
|
|||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import { formatDateTime, formatImgUrl } from "@/common/fotmat";
|
import { formatDateTime, formatImgUrl } from "@/common/fotmat";
|
||||||
import { PAYMENT_METHOD, PAYMENT_METHOD_PARAM } from "@/common/enum";
|
import { ORDER_STATUS, PAYMENT_METHOD, PAYMENT_METHOD_PARAM } from "@/common/enum";
|
||||||
|
|
||||||
|
type List = {
|
||||||
|
|
||||||
type Param = {
|
|
||||||
list: {
|
|
||||||
status: string,
|
status: string,
|
||||||
time: string,
|
time: string,
|
||||||
tag: string,
|
tag: string,
|
||||||
desc: string
|
desc: string
|
||||||
}[],
|
|
||||||
payment_method: 0|PAYMENT_METHOD_PARAM,
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Param = {
|
||||||
|
onRefresh?: () => void,
|
||||||
|
orderInfo?: {
|
||||||
|
logistics_details:List[], //订单状态列表
|
||||||
|
payment_method: 0|PAYMENT_METHOD_PARAM, //支付方式
|
||||||
|
status: number //订单状态
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export default memo(({orderInfo = {logistics_details: [],payment_method: 0, status: 0}, onRefresh}:Param) => {
|
||||||
|
|
||||||
|
const [showMore, setShowMore] = useState(false)
|
||||||
|
const changeMore = () => {
|
||||||
|
setShowMore(() => !showMore)
|
||||||
|
}
|
||||||
|
const dataList = useMemo(() => {
|
||||||
|
return orderInfo?.logistics_details?.reverse()||[]
|
||||||
|
}, [orderInfo])
|
||||||
|
|
||||||
|
//订单状态枚举
|
||||||
|
const {SaleorderstatusWaitingPrePayment} = ORDER_STATUS
|
||||||
|
|
||||||
//支付方式枚举
|
//支付方式枚举
|
||||||
const {
|
const {
|
||||||
PaymentMethodAccountPeriod,
|
PaymentMethodAccountPeriod,
|
||||||
PaymentMethodCashOnDelivery,
|
PaymentMethodCashOnDelivery,
|
||||||
} = PAYMENT_METHOD
|
} = PAYMENT_METHOD
|
||||||
|
|
||||||
export default memo(({list = [], payment_method = 0}:Param) => {
|
//倒计时
|
||||||
|
const count_down = useMemo(() => {
|
||||||
|
|
||||||
const [showMore, setShowMore] = useState(false)
|
}, [orderInfo])
|
||||||
const changeMore = () => {
|
|
||||||
setShowMore(() => !showMore)
|
|
||||||
}
|
|
||||||
const dataList = useMemo(() => {
|
|
||||||
return list.reverse()
|
|
||||||
}, [list])
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{(dataList.length > 0)&&<View className={styles.order_flow_state}>
|
{(dataList?.length > 0)&&<View className={styles.order_flow_state}>
|
||||||
<View className={classnames(styles.order_status_list, showMore&&styles.order_status_list_show)}>
|
<View className={classnames(styles.order_status_list, showMore&&styles.order_status_list_show)}>
|
||||||
{dataList.map((item, index) => <View className={styles.order_status_item}>
|
{dataList.map((item, index) => <View className={styles.order_status_item}>
|
||||||
{(dataList.length > 1)&&<View className={classnames(styles.order_status_tail, (index == 0)&&styles.order_status_tail_end)}></View>}
|
{(dataList.length > 1)&&<View className={classnames(styles.order_status_tail, (index == 0)&&styles.order_status_tail_end)}></View>}
|
||||||
@ -47,6 +60,9 @@ export default memo(({list = [], payment_method = 0}:Param) => {
|
|||||||
{/* <View className={classnames(styles.order_status_tag, (index == 0)&&styles.order_status_tag_select)}>{item.tag}</View> */}
|
{/* <View className={classnames(styles.order_status_tag, (index == 0)&&styles.order_status_tag_select)}>{item.tag}</View> */}
|
||||||
</View>
|
</View>
|
||||||
<Text className={classnames(styles.order_status_des, (index == 0)&&styles.order_status_des_select)}>{item.desc}</Text>
|
<Text className={classnames(styles.order_status_des, (index == 0)&&styles.order_status_des_select)}>{item.desc}</Text>
|
||||||
|
{(orderInfo.status == SaleorderstatusWaitingPrePayment.value)&&<View className={styles.pay_time}>
|
||||||
|
剩<Text>23:58:55</Text>支付关闭,订单自动取消
|
||||||
|
</View>}
|
||||||
</View>)}
|
</View>)}
|
||||||
</View>
|
</View>
|
||||||
{(dataList.length > 2) && <View className={styles.more} onClick={() => changeMore()}>
|
{(dataList.length > 2) && <View className={styles.more} onClick={() => changeMore()}>
|
||||||
@ -54,8 +70,12 @@ export default memo(({list = [], payment_method = 0}:Param) => {
|
|||||||
<Text className={classnames('iconfont icon-a-moreback', styles.miconfonts, showMore&&styles.open_miconfonts)}></Text>
|
<Text className={classnames('iconfont icon-a-moreback', styles.miconfonts, showMore&&styles.open_miconfonts)}></Text>
|
||||||
</View>}
|
</View>}
|
||||||
<View className={styles.image_tag}>
|
<View className={styles.image_tag}>
|
||||||
{(payment_method == PaymentMethodCashOnDelivery.value)&&<Image mode="aspectFit" src={formatImgUrl('/mall/order_pay_status.png')} className={styles.image}/>}
|
{(orderInfo.payment_method == PaymentMethodCashOnDelivery.value)&&<Image mode="aspectFit" src={formatImgUrl('/mall/order_pay_status.png')} className={styles.image}/>}
|
||||||
{(payment_method == PaymentMethodAccountPeriod.value)&&<Image mode="aspectFit" src={formatImgUrl('/mall/order_pay_status_7day.png')} className={styles.image}/>}
|
{(orderInfo.payment_method == PaymentMethodAccountPeriod.value)&&<Image mode="aspectFit" src={formatImgUrl('/mall/order_pay_status_7day.png')} className={styles.image}/>}
|
||||||
|
</View>
|
||||||
|
<View className={styles.refresh} onClick={onRefresh}>
|
||||||
|
<Text className={classnames(styles.mconfont, 'iconfont icon-xianxiahuikuan')}></Text>
|
||||||
|
<Text className={classnames(styles.refresh_text)}>刷新</Text>
|
||||||
</View>
|
</View>
|
||||||
</View>}
|
</View>}
|
||||||
</>
|
</>
|
||||||
|
@ -126,6 +126,11 @@ import styles from './index.module.scss'
|
|||||||
setPayMentShow(true)
|
setPayMentShow(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//地址组件所需数据
|
||||||
|
const addressInfoDetailData = useMemo(() => {
|
||||||
|
return {orderId:orderDetail?.id, shipment_mode:orderDetail?.shipment_mode, status: orderDetail?.status}
|
||||||
|
}, [orderDetail])
|
||||||
|
|
||||||
//打开地址修改
|
//打开地址修改
|
||||||
const addressRef = useRef<any>(null)
|
const addressRef = useRef<any>(null)
|
||||||
|
|
||||||
@ -174,6 +179,7 @@ import styles from './index.module.scss'
|
|||||||
settle_mode: orderDetail?.settle_mode,
|
settle_mode: orderDetail?.settle_mode,
|
||||||
actual_amount: orderDetail?.actual_amount, //实付金额
|
actual_amount: orderDetail?.actual_amount, //实付金额
|
||||||
wait_pay_amount: orderDetail?.wait_pay_amount, //待付金额
|
wait_pay_amount: orderDetail?.wait_pay_amount, //待付金额
|
||||||
|
sale_mode: orderDetail?.sale_mode, //订单类型
|
||||||
}
|
}
|
||||||
}, [orderDetail])
|
}, [orderDetail])
|
||||||
|
|
||||||
@ -184,12 +190,9 @@ import styles from './index.module.scss'
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<View className={styles.order_main}>
|
<View className={styles.order_main}>
|
||||||
{/* <View className={styles.weight_memo_con}>
|
<OrderState orderInfo={{logistics_details:orderDetail?.logistics_details, payment_method: orderDetail?.payment_method, status:orderDetail?.status}}/>
|
||||||
<WeightMemo/>
|
|
||||||
</View> */}
|
|
||||||
<OrderState list={orderDetail?.logistics_details} payment_method={orderDetail?.payment_method}/>
|
|
||||||
<View >
|
<View >
|
||||||
<AddressInfoDetail orderId={orderDetail?.id} onSelect={getAddress} onChangeShipmentMode={getShipmentMode} ref={addressRef} defaultValue={defaultAddress} shipment_mode={orderDetail?.shipment_mode}/>
|
<AddressInfoDetail orderInfo={addressInfoDetailData} onSelect={getAddress} onChangeShipmentMode={getShipmentMode} ref={addressRef} defaultValue={defaultAddress} />
|
||||||
</View>
|
</View>
|
||||||
<KindList order={formatPreViewOrderMemo}/>
|
<KindList order={formatPreViewOrderMemo}/>
|
||||||
<View className={styles.order_info} >
|
<View className={styles.order_info} >
|
||||||
|
@ -55,6 +55,7 @@ export default memo(({value, onClickBtn}: Param) => {
|
|||||||
orderId: value?.id,
|
orderId: value?.id,
|
||||||
actual_amount: value?.actual_amount, //实付金额
|
actual_amount: value?.actual_amount, //实付金额
|
||||||
wait_pay_amount: value?.wait_pay_amount, //待付金额
|
wait_pay_amount: value?.wait_pay_amount, //待付金额
|
||||||
|
sale_mode: value?.sale_mode, //订单类型
|
||||||
}
|
}
|
||||||
}, [value])
|
}, [value])
|
||||||
|
|
||||||
|
@ -75,10 +75,9 @@ export default () => {
|
|||||||
})
|
})
|
||||||
if(user_res.success) {
|
if(user_res.success) {
|
||||||
setUserInfo({...user_res.data})
|
setUserInfo({...user_res.data})
|
||||||
|
|
||||||
getAdminUserInfo()
|
getAdminUserInfo()
|
||||||
|
reslove(true)
|
||||||
} else {
|
} else {
|
||||||
console.log('aaa:::',user_res.msg)
|
|
||||||
reject(user_res.msg)
|
reject(user_res.msg)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user