对接售后列表订单状态
This commit is contained in:
parent
8c6392c90e
commit
ed90e50092
@ -22,3 +22,15 @@ export const CreateFavoriteApi = () => {
|
|||||||
method: "post",
|
method: "post",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除收藏夹列表
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export const DelFavoriteApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/favorite`,
|
||||||
|
method: "delete",
|
||||||
|
})
|
||||||
|
}
|
@ -90,3 +90,13 @@ export const GetSaleOrderListApi = () => {
|
|||||||
method: "post",
|
method: "post",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 售后订单状态列表
|
||||||
|
*/
|
||||||
|
export const RefundOrderSatausApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/enum/filterReturnStage`,
|
||||||
|
method: "get",
|
||||||
|
})
|
||||||
|
}
|
@ -4,14 +4,14 @@
|
|||||||
// export const BASE_URL = `http://10.0.0.5:50001/lymarket`
|
// export const BASE_URL = `http://10.0.0.5:50001/lymarket`
|
||||||
// export const BASE_URL = `http://192.168.0.89:40001/lymarket`
|
// export const BASE_URL = `http://192.168.0.89:40001/lymarket`
|
||||||
// export const BASE_URL = `http://192.168.1.165:40001/lymarket` // 王霞
|
// export const BASE_URL = `http://192.168.1.165:40001/lymarket` // 王霞
|
||||||
export const BASE_URL = `https://test.zzfzyc.com/lymarket` // 测试环境
|
// export const BASE_URL = `https://test.zzfzyc.com/lymarket` // 测试环境
|
||||||
// export const BASE_URL = `http://192.168.1.30:40001/lymarket` // 发
|
// export const BASE_URL = `http://192.168.1.9:40001/lymarket` // 发
|
||||||
// export const BASE_URL = `http://192.168.1.30:50001/lymarket` // 发
|
// export const BASE_URL = `http://192.168.1.30:50001/lymarket` // 发
|
||||||
// export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境
|
// export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境
|
||||||
// export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境
|
// export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境
|
||||||
// export const BASE_URL = `http://192.168.1.5:40001/lymarket` // 王霞
|
// export const BASE_URL = `http://192.168.1.5:40001/lymarket` // 王霞
|
||||||
// export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添
|
export const BASE_URL = `http://192.168.1.7:50002/lymarket` // 添
|
||||||
// export const BASE_URL = `http://192.168.1.15:50001/lymarket` // 杰
|
// export const BASE_URL = `http://192.168.1.42:50001/lymarket` // 杰
|
||||||
|
|
||||||
// CDN
|
// CDN
|
||||||
// 生成密钥
|
// 生成密钥
|
||||||
|
@ -142,8 +142,8 @@ export const toDecimal2 = (x) => {
|
|||||||
* @status true|false
|
* @status true|false
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export const formatImgUrl = (url, status = false ,suffix="!w200") => {
|
export const formatImgUrl = (url ,suffix="!w200") => {
|
||||||
return url? (status?IMG_CND_Prefix:'') +url + suffix:IMG_CND_Prefix +'/mall/no_img.png'
|
return url? IMG_CND_Prefix +url + suffix:IMG_CND_Prefix +'/mall/no_img.png'
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -190,7 +190,7 @@ export default memo(({orderInfo, onClick}:Param) => {
|
|||||||
//退款
|
//退款
|
||||||
const {fetchData: fetchDataApplyRefund} = ApplyRefundApi()
|
const {fetchData: fetchDataApplyRefund} = ApplyRefundApi()
|
||||||
const applyRefund = async () => {
|
const applyRefund = async () => {
|
||||||
if(!orderInfo?.av_return_roll) return alert.none('该订单没有可退条数')
|
// if(!orderInfo?.av_return_roll) return alert.none('该订单没有可退条数')
|
||||||
Taro.showModal({
|
Taro.showModal({
|
||||||
title: '确定退款?',
|
title: '确定退款?',
|
||||||
success: async function async (res) {
|
success: async function async (res) {
|
||||||
|
@ -7,9 +7,10 @@ import classnames from "classnames";
|
|||||||
type Param = {
|
type Param = {
|
||||||
title?: string,
|
title?: string,
|
||||||
onChange?: (val: string) => void,
|
onChange?: (val: string) => void,
|
||||||
placeholder?: string
|
placeholder?: string,
|
||||||
|
defaultValue?: string
|
||||||
}
|
}
|
||||||
export default memo(({onChange, title = '', placeholder = '请输入'}:Param) => {
|
export default memo(({onChange, title = '', placeholder = '请输入', defaultValue}:Param) => {
|
||||||
const [descData, setDescData] = useState({
|
const [descData, setDescData] = useState({
|
||||||
number: 0,
|
number: 0,
|
||||||
value: '',
|
value: '',
|
||||||
|
@ -12,8 +12,12 @@ type ReasonInfoParam = {
|
|||||||
show?: boolean, //显示
|
show?: boolean, //显示
|
||||||
onClose?: () => void, //关闭
|
onClose?: () => void, //关闭
|
||||||
onSuccess?: () => void, //成功
|
onSuccess?: () => void, //成功
|
||||||
|
defaultValue?: {
|
||||||
|
remark: string,
|
||||||
|
name: string
|
||||||
|
}, //默认数据
|
||||||
}
|
}
|
||||||
export default memo(({show = false, onClose, onSuccess}: ReasonInfoParam) => {
|
export default memo(({show = false, onClose, onSuccess, defaultValue}: ReasonInfoParam) => {
|
||||||
|
|
||||||
const submitData = useRef({
|
const submitData = useRef({
|
||||||
"name": '',
|
"name": '',
|
||||||
@ -47,7 +51,7 @@ export default memo(({show = false, onClose, onSuccess}: ReasonInfoParam) => {
|
|||||||
<View className={styles.title_item}>
|
<View className={styles.title_item}>
|
||||||
<View className={styles.title}>名称</View>
|
<View className={styles.title}>名称</View>
|
||||||
<View className={styles.select}>
|
<View className={styles.select}>
|
||||||
<Input placeholder="请输入文件夹名称" className={styles.input} onInput={changeInput}/>
|
<Input placeholder="请输入文件夹名称" className={styles.input} onInput={changeInput} value={defaultValue?.remark}/>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.desc_item}>
|
<View className={styles.desc_item}>
|
||||||
|
@ -2,6 +2,17 @@
|
|||||||
.collection_con{
|
.collection_con{
|
||||||
padding: 20px ;
|
padding: 20px ;
|
||||||
.collection_item{
|
.collection_item{
|
||||||
|
display: flex;
|
||||||
|
font-size: 26px;
|
||||||
|
padding: 30px 10px;
|
||||||
|
border-bottom: 1PX solid #F3F3F3;
|
||||||
|
align-items: center;
|
||||||
|
.miconfont{
|
||||||
|
font-size: 36px;
|
||||||
|
color: #007AFF;
|
||||||
|
}
|
||||||
|
.text{
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -11,50 +11,35 @@ import { alert } from "@/common/common";
|
|||||||
type ReasonInfoParam = {
|
type ReasonInfoParam = {
|
||||||
show?: boolean, //显示
|
show?: boolean, //显示
|
||||||
onClose?: () => void, //关闭
|
onClose?: () => void, //关闭
|
||||||
onSuccess?: () => void, //成功
|
onUpdate?: () => void, //编辑
|
||||||
|
onBatchManagement?: () => void, //批量管理
|
||||||
|
onDelete?: () => void, //删除
|
||||||
|
|
||||||
}
|
}
|
||||||
export default memo(({show = false, onClose, onSuccess}: ReasonInfoParam) => {
|
export default memo(({show = false, onClose, onUpdate, onBatchManagement, onDelete}: ReasonInfoParam) => {
|
||||||
|
const onClickEven = (val) => {
|
||||||
const submitData = useRef({
|
if (val == 1) {
|
||||||
"name": '',
|
onUpdate?.()
|
||||||
"remark": ''
|
} else if (val == 2) {
|
||||||
})
|
onBatchManagement?.()
|
||||||
|
|
||||||
const getOtherReason = useCallback((val) => {
|
|
||||||
submitData.current.remark = val
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
const changeInput = useCallback((val) => {
|
|
||||||
submitData.current.name = val.detail.value
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
//创建
|
|
||||||
const {fetchData} = CreateFavoriteApi()
|
|
||||||
const onSubmit = async () => {
|
|
||||||
if(!submitData.current.name) return alert.none('请输入收藏夹名称!')
|
|
||||||
let res = await fetchData(submitData.current)
|
|
||||||
if(res.success) {
|
|
||||||
alert.success('创建成功')
|
|
||||||
onSuccess?.()
|
|
||||||
} else {
|
} else {
|
||||||
alert.error('创建失败')
|
onDelete?.()
|
||||||
}
|
}
|
||||||
onClose?.()
|
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<Popup show={show} onClose={onClose} >
|
<Popup show={show} onClose={onClose} showTitle={false} >
|
||||||
<View className={styles.collection_con}>
|
<View className={styles.collection_con}>
|
||||||
<View className={styles.collection_item}>
|
<View className={styles.collection_item} onClick={() => onClickEven(1)}>
|
||||||
<Text className={classnames(styles.miconfont, 'iconfont icon-bianji')}></Text>
|
<Text className={classnames(styles.miconfont, 'iconfont icon-bianji')}></Text>
|
||||||
<Text>编辑收藏夹</Text>
|
<Text className={styles.text}>编辑收藏夹</Text>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.collection_item}>
|
<View className={styles.collection_item} onClick={() => onClickEven(2)}>
|
||||||
<Text className={classnames(styles.miconfont, 'iconfont icon-fenlei')}></Text>
|
<Text className={classnames(styles.miconfont, 'iconfont icon-fenlei')}></Text>
|
||||||
<Text>批量管理</Text>
|
<Text className={styles.text}>批量管理</Text>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.collection_item}>
|
<View className={styles.collection_item} onClick={() => onClickEven(3)}>
|
||||||
<Text className={classnames(styles.miconfont, 'iconfont icon-shanchu')}></Text>
|
<Text className={classnames(styles.miconfont, 'iconfont icon-shanchu')}></Text>
|
||||||
<Text>删除该收藏夹</Text>
|
<Text className={styles.text}>删除该收藏夹</Text>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</Popup>
|
</Popup>
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
import { FavoriteListApi } from "@/api/favorite";
|
import { DelFavoriteApi, FavoriteListApi } from "@/api/favorite";
|
||||||
|
import { alert } from "@/common/common";
|
||||||
|
import { getFilterData } from "@/common/util";
|
||||||
import Product from "@/components/product";
|
import Product from "@/components/product";
|
||||||
import Search from "@/components/search"
|
import Search from "@/components/search"
|
||||||
import { Text, View } from "@tarojs/components"
|
import { Text, View } from "@tarojs/components"
|
||||||
|
import Taro from "@tarojs/taro";
|
||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import { useCallback, useEffect, useState } from "react";
|
import { useCallback, useEffect, useRef, useState } from "react";
|
||||||
import CreatePopup from "./components/createPopup";
|
import CreatePopup from "./components/createPopup";
|
||||||
import UpdatePopup from "./components/updatePopup";
|
import UpdatePopup from "./components/updatePopup";
|
||||||
import styles from './index.module.scss'
|
import styles from './index.module.scss'
|
||||||
@ -13,12 +16,20 @@ export default () => {
|
|||||||
item.openStatus = !item.openStatus
|
item.openStatus = !item.openStatus
|
||||||
setList((e) => [...e])
|
setList((e) => [...e])
|
||||||
}
|
}
|
||||||
|
//获取搜索数据
|
||||||
|
const [searchData, setSearchData] = useState('')
|
||||||
|
const onSearch = useCallback((e) => {
|
||||||
|
setSearchData(() => e)
|
||||||
|
}, [])
|
||||||
|
useEffect(() => {
|
||||||
|
getFavoriteList()
|
||||||
|
}, [searchData])
|
||||||
|
|
||||||
//获取列表
|
//获取列表
|
||||||
const [list, setList] = useState([])
|
const [list, setList] = useState([])
|
||||||
const {fetchData: fetchDataList} = FavoriteListApi()
|
const {fetchData: fetchDataList} = FavoriteListApi()
|
||||||
const getFavoriteList = async () => {
|
const getFavoriteList = async () => {
|
||||||
let res = await fetchDataList()
|
let res = await fetchDataList(getFilterData({name: searchData}))
|
||||||
setList(() => res.data.list)
|
setList(() => res.data.list)
|
||||||
}
|
}
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -36,11 +47,51 @@ export default () => {
|
|||||||
getFavoriteList()
|
getFavoriteList()
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
|
//更多编辑
|
||||||
|
const selectInfo = useRef<any>(null)
|
||||||
|
const [updateShow, setUpdateShow] = useState(false)
|
||||||
|
const closeUpdate = useCallback(() => {
|
||||||
|
setUpdateShow(false)
|
||||||
|
}, [])
|
||||||
|
const moreUpdate = (item,e) => {
|
||||||
|
e.stopPropagation()
|
||||||
|
selectInfo.current = item
|
||||||
|
setUpdateShow(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除改收藏夹
|
||||||
|
const {fetchData: delFetchData} = DelFavoriteApi()
|
||||||
|
const onDeleteCollect = useCallback(() => {
|
||||||
|
if(!selectInfo.current.id) return alert.error('参数不正确!')
|
||||||
|
if(selectInfo.current.id == 1) return alert.none('删除失败,该文件夹不能删除!')
|
||||||
|
Taro.showModal({
|
||||||
|
content: '确认删除该文件夹?',
|
||||||
|
success: async function (res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
let res = await delFetchData({id: selectInfo.current.id})
|
||||||
|
if(res.success) {
|
||||||
|
alert.success('删除成功')
|
||||||
|
getFavoriteList()
|
||||||
|
} else {
|
||||||
|
alert.error('删除失败')
|
||||||
|
}
|
||||||
|
} else if (res.cancel) {
|
||||||
|
console.log('用户点击取消')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
closeUpdate()
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
//编辑
|
||||||
|
const onUpdate = useCallback(() => {
|
||||||
|
|
||||||
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View className={styles.collection_main}>
|
<View className={styles.collection_main}>
|
||||||
<View className={styles.search}>
|
<View className={styles.search}>
|
||||||
<Search style={{width: '100%'}} debounceTime={300} changeOnSearch={(e) => console.log(e)} placeholder="请输入面料关键词" />
|
<Search style={{width: '100%'}} debounceTime={300} changeOnSearch={onSearch} placeholder="请输入面料关键词" />
|
||||||
<View className={styles.miconfont_con} onClick={() => setCollectioinShow(true)}><Text className={classnames(styles.miconfont, 'iconfont icon-jia')}></Text></View>
|
<View className={styles.miconfont_con} onClick={() => setCollectioinShow(true)}><Text className={classnames(styles.miconfont, 'iconfont icon-jia')}></Text></View>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.class_list}>
|
<View className={styles.class_list}>
|
||||||
@ -50,7 +101,7 @@ export default () => {
|
|||||||
<View className={styles.title}>{item.name}
|
<View className={styles.title}>{item.name}
|
||||||
{item.product_color_list&&<><Text className={styles.fg}>·</Text><Text className={styles.num}>{item.product_color_list.length}</Text></>}
|
{item.product_color_list&&<><Text className={styles.fg}>·</Text><Text className={styles.num}>{item.product_color_list.length}</Text></>}
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.more} >更多</View>
|
<View className={styles.more} onClick={(e) => moreUpdate(item,e)}>更多</View>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.class_con} style={item.openStatus?{maxHeight: 10*260 + 'rpx'}:{maxHeight: 0}} >
|
<View className={styles.class_con} style={item.openStatus?{maxHeight: 10*260 + 'rpx'}:{maxHeight: 0}} >
|
||||||
<Product productList={new Array(10).fill('')}/>
|
<Product productList={new Array(10).fill('')}/>
|
||||||
@ -58,7 +109,7 @@ export default () => {
|
|||||||
</View>)}
|
</View>)}
|
||||||
</View>
|
</View>
|
||||||
<CreatePopup show={collectioinShow} onClose={closeCollection} onSuccess={onCreatSuccess}/>
|
<CreatePopup show={collectioinShow} onClose={closeCollection} onSuccess={onCreatSuccess}/>
|
||||||
<UpdatePopup show={true} onClose={closeCollection} onSuccess={onCreatSuccess}/>
|
<UpdatePopup show={updateShow} onClose={closeUpdate} onDelete={onDeleteCollect} onUpdate={onUpdate}/>
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
@ -63,7 +63,7 @@ export default memo(({orderInfo, onRefresh}:Param) => {
|
|||||||
<Text>支付关闭,订单自动取消</Text>
|
<Text>支付关闭,订单自动取消</Text>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.cardIcon}>
|
<View className={styles.cardIcon}>
|
||||||
<Image className={styles.image} src={formatImgUrl("/mall/my_cart.png", true)}/>
|
<Image className={styles.image} src={formatImgUrl("/mall/my_cart.png")}/>
|
||||||
</View>
|
</View>
|
||||||
<View className={styles.refresh} onClick={() => onRefresh?.()}>
|
<View className={styles.refresh} onClick={() => onRefresh?.()}>
|
||||||
<Text className={classnames(styles.mconfont, 'iconfont icon-xianxiahuikuan')}></Text>
|
<Text className={classnames(styles.mconfont, 'iconfont icon-xianxiahuikuan')}></Text>
|
||||||
|
@ -71,8 +71,8 @@ export default memo(({orderInfo = {logistics_details: [],payment_method: 0, stat
|
|||||||
<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}>
|
||||||
{(orderInfo.payment_method == PaymentMethodCashOnDelivery.value)&&<Image mode="aspectFit" src={formatImgUrl('/mall/order_pay_status.png', true)} className={styles.image}/>}
|
{(orderInfo.payment_method == PaymentMethodCashOnDelivery.value)&&<Image mode="aspectFit" src={formatImgUrl('/mall/order_pay_status.png')} className={styles.image}/>}
|
||||||
{(orderInfo.payment_method == PaymentMethodAccountPeriod.value)&&<Image mode="aspectFit" src={formatImgUrl('/mall/order_pay_status_7day.png', true)} className={styles.image}/>}
|
{(orderInfo.payment_method == PaymentMethodAccountPeriod.value)&&<Image mode="aspectFit" src={formatImgUrl('/mall/order_pay_status_7day.png')} className={styles.image}/>}
|
||||||
</View>
|
</View>
|
||||||
{(orderInfo.status == SaleorderstatusWaitingPrePayment.value)&&<View className={styles.refresh} onClick={onRefresh}>
|
{(orderInfo.status == SaleorderstatusWaitingPrePayment.value)&&<View className={styles.refresh} onClick={onRefresh}>
|
||||||
<Text className={classnames(styles.mconfont, 'iconfont icon-xianxiahuikuan')}></Text>
|
<Text className={classnames(styles.mconfont, 'iconfont icon-xianxiahuikuan')}></Text>
|
||||||
|
123
src/pages/salesAfterList/index copy 2.tsx
Normal file
123
src/pages/salesAfterList/index copy 2.tsx
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
import Search from "@/components/search"
|
||||||
|
import useLogin from "@/use/useLogin"
|
||||||
|
import { Image, ScrollView, Text, View } from "@tarojs/components"
|
||||||
|
import Taro, { useDidShow, usePullDownRefresh, useRouter } from "@tarojs/taro"
|
||||||
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react"
|
||||||
|
import styles from './index.module.scss'
|
||||||
|
import classnames from "classnames";
|
||||||
|
import Order from "./components/order"
|
||||||
|
import InfiniteScroll from "@/components/infiniteScroll"
|
||||||
|
import { dataLoadingStatus, getFilterData } from "@/common/util"
|
||||||
|
import OrderStatusList from "./components/orderStatusList"
|
||||||
|
import { AFTER_ORDER_STATUS } from "@/common/enum"
|
||||||
|
import { GetSaleOrderListApi, RefundOrderSatausApi } from "@/api/salesAfterOrder"
|
||||||
|
import ReturnLogistics from "./components/returnLogistics"
|
||||||
|
|
||||||
|
export default () => {
|
||||||
|
const {checkLogin} = useLogin()
|
||||||
|
useDidShow(async () => {
|
||||||
|
await checkLogin()
|
||||||
|
})
|
||||||
|
|
||||||
|
//搜索参数
|
||||||
|
const [searchField, setSearchField] = useState({
|
||||||
|
status: -1,
|
||||||
|
page : 1,
|
||||||
|
size : 10,
|
||||||
|
Name:''
|
||||||
|
})
|
||||||
|
|
||||||
|
//获取订单状态
|
||||||
|
const [statusList, setStatusList] = useState<any[]>([{id: -1, name: '全部'}])
|
||||||
|
const {fetchData: fetchDataStatus} = RefundOrderSatausApi()
|
||||||
|
const getOrderStatusList = async () => {
|
||||||
|
let res = await fetchDataStatus()
|
||||||
|
setStatusList((e) => [...e, ...res.data.list])
|
||||||
|
}
|
||||||
|
useEffect(() => {
|
||||||
|
getOrderStatusList()
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
//获取订单列表
|
||||||
|
const {fetchData: listFetchData, state:orderState} = GetSaleOrderListApi()
|
||||||
|
const [orderData, setOrderData] = useState<{list:any[], total:number}>({list:[], total:0})
|
||||||
|
const getOrderList = async () => {
|
||||||
|
let res = await listFetchData(getFilterData(searchField))
|
||||||
|
setOrderData({list: res.data.list, total: res.data.total})
|
||||||
|
setRefresherTriggeredStatus(() => false)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//监听筛选条件变化
|
||||||
|
useEffect(() => {
|
||||||
|
getOrderList()
|
||||||
|
}, [searchField])
|
||||||
|
|
||||||
|
//上拉加载数据
|
||||||
|
const pageNum = useRef({size: searchField.size, page: searchField.page})
|
||||||
|
const getScrolltolower = useCallback(() => {
|
||||||
|
if(orderData.list.length < orderData.total) {
|
||||||
|
pageNum.current.page++
|
||||||
|
const size = pageNum.current.size * pageNum.current.page
|
||||||
|
setSearchField({...searchField, size })
|
||||||
|
}
|
||||||
|
}, [orderData])
|
||||||
|
|
||||||
|
//状态改变
|
||||||
|
const changeStatus = useCallback((e) => {
|
||||||
|
pageNum.current.page = 1
|
||||||
|
setSearchField((value) => ({...value, status:e, size:10}))
|
||||||
|
setOrderData(() => ({list:[], total:0}))
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
|
||||||
|
//数据加载状态
|
||||||
|
const statusMore = useMemo(() => {
|
||||||
|
return dataLoadingStatus({list:orderData.list, total: orderData.total, status: orderState.loading})
|
||||||
|
}, [orderData, orderState])
|
||||||
|
|
||||||
|
//输入了搜索关键字
|
||||||
|
const getSearchData = useCallback((e) => {
|
||||||
|
pageNum.current.page = 1
|
||||||
|
setOrderData(() => ({list:[], total:0}))
|
||||||
|
setSearchField((val) => ({...val, name:e, size:10}))
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
|
||||||
|
//列表下拉刷新
|
||||||
|
const [refresherTriggeredStatus, setRefresherTriggeredStatus] = useState(false)
|
||||||
|
const getRefresherRefresh = async () => {
|
||||||
|
pageNum.current.size = 1
|
||||||
|
setRefresherTriggeredStatus(true)
|
||||||
|
setSearchField((val) => ({...val, size:10}))
|
||||||
|
}
|
||||||
|
|
||||||
|
//监听点击的按钮
|
||||||
|
const clickOrderBtn = useCallback(({status, orderInfo}) => {
|
||||||
|
if(status == 2) {
|
||||||
|
//退货物流
|
||||||
|
|
||||||
|
}
|
||||||
|
}, [orderData])
|
||||||
|
|
||||||
|
//物流显示
|
||||||
|
const [logisticsShow, setLogisticsShow] = useState(false)
|
||||||
|
const onCloseLogistics = useCallback(() => setLogisticsShow(false), [])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View className={styles.order_list_main}>
|
||||||
|
<View className={styles.title}>
|
||||||
|
<Search placeIcon="out" placeholder="搜索商品/名称/颜色/订单号" showBtn={true} changeOnSearch={getSearchData} debounceTime={300}/>
|
||||||
|
<OrderStatusList list={statusList} onSelect={changeStatus} defaultId={1}/>
|
||||||
|
</View>
|
||||||
|
<View className={styles.order_list}>
|
||||||
|
<InfiniteScroll statusMore={statusMore} selfonScrollToLower={getScrolltolower} refresherEnabled={true} refresherTriggered={refresherTriggeredStatus} selfOnRefresherRefresh={getRefresherRefresh}>
|
||||||
|
{orderData?.list.map(item => {
|
||||||
|
return <View key={item.id} className={styles.order_item_con}> <Order value={item} onClickBtn={clickOrderBtn}/></View>
|
||||||
|
})}
|
||||||
|
</InfiniteScroll>
|
||||||
|
<ReturnLogistics show={logisticsShow} onClose={onCloseLogistics}/>
|
||||||
|
</View>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
@ -7,10 +7,8 @@ import styles from './index.module.scss'
|
|||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import Order from "./components/order"
|
import Order from "./components/order"
|
||||||
import InfiniteScroll from "@/components/infiniteScroll"
|
import InfiniteScroll from "@/components/infiniteScroll"
|
||||||
import {GetOrderStatusListApi, GetOrderListApi} from '@/api/order'
|
|
||||||
import { dataLoadingStatus, getFilterData } from "@/common/util"
|
import { dataLoadingStatus, getFilterData } from "@/common/util"
|
||||||
import OrderStatusList from "./components/orderStatusList"
|
import OrderStatusList from "./components/orderStatusList"
|
||||||
import Payment from "../order/components/payment"
|
|
||||||
import { AFTER_ORDER_STATUS } from "@/common/enum"
|
import { AFTER_ORDER_STATUS } from "@/common/enum"
|
||||||
import { GetSaleOrderListApi } from "@/api/salesAfterOrder"
|
import { GetSaleOrderListApi } from "@/api/salesAfterOrder"
|
||||||
import ReturnLogistics from "./components/returnLogistics"
|
import ReturnLogistics from "./components/returnLogistics"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user