暂存
This commit is contained in:
parent
790e46a8a0
commit
c4ba25ac84
@ -14,6 +14,13 @@
|
|||||||
"query": "",
|
"query": "",
|
||||||
"launchMode": "default",
|
"launchMode": "default",
|
||||||
"scene": null
|
"scene": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "",
|
||||||
|
"pathName": "pages/order/index",
|
||||||
|
"query": "",
|
||||||
|
"launchMode": "default",
|
||||||
|
"scene": null
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
7
src/api/order.ts
Normal file
7
src/api/order.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
import { useRequest } from "@/use/useHttp"
|
||||||
|
export const mpenumsaleorderstatus = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mp/enum/sale/order/status`,
|
||||||
|
method: "get",
|
||||||
|
})
|
||||||
|
}
|
18
src/pages/order/components/orderStatusList/index.module.scss
Normal file
18
src/pages/order/components/orderStatusList/index.module.scss
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
.order_status_list{
|
||||||
|
font-size: $font_size;
|
||||||
|
color: #9E9E9E;
|
||||||
|
margin-top: 20px;
|
||||||
|
.order_status_item{
|
||||||
|
padding: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.selected{
|
||||||
|
font-weight: 700;
|
||||||
|
color: #000;
|
||||||
|
border-bottom: 4px solid #707070;
|
||||||
|
}
|
||||||
|
.order_list_scroll{
|
||||||
|
white-space: nowrap;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
54
src/pages/order/components/orderStatusList/index.tsx
Normal file
54
src/pages/order/components/orderStatusList/index.tsx
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
import { ScrollView, View } from '@tarojs/components'
|
||||||
|
import { memo, useEffect, useState } from 'react'
|
||||||
|
import styles from './index.module.scss'
|
||||||
|
import classnames from 'classnames'
|
||||||
|
|
||||||
|
type Param = {
|
||||||
|
list: { id: number; name: string }[]
|
||||||
|
defaultId?: number | null
|
||||||
|
onSelect?: (val: number) => void
|
||||||
|
}
|
||||||
|
export default memo(({ list = [], defaultId = null, onSelect }: Param) => {
|
||||||
|
const [selectInfo, setSelectInfo] = useState({
|
||||||
|
selected: -1, //当前选中的id
|
||||||
|
tabId: '', //需要滚动到的id
|
||||||
|
})
|
||||||
|
useEffect(() => {
|
||||||
|
if (defaultId) {
|
||||||
|
console.log('defaultId:::', defaultId)
|
||||||
|
const index = list?.findIndex((item) => {
|
||||||
|
return item.id == defaultId
|
||||||
|
})
|
||||||
|
if (index !== -1) {
|
||||||
|
const num = index > 0 ? index - 1 : 0
|
||||||
|
setSelectInfo((e) => ({ ...e, tabId: list[num].id.toString() }))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setSelectInfo((e) => ({ ...e, selected: defaultId || -1 }))
|
||||||
|
}, [defaultId])
|
||||||
|
const clickEvent = ({ item, index }: { item: any; index: number }) => {
|
||||||
|
const num = index > 0 ? index - 1 : 0
|
||||||
|
setSelectInfo((e) => ({ ...e, tabId: list[num].id.toString(), selected: item.id }))
|
||||||
|
onSelect?.(item.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View className={styles.order_status_list}>
|
||||||
|
<ScrollView scrollX scrollIntoView={`tabs_${selectInfo.tabId}`} scrollWithAnimation={true}>
|
||||||
|
<View className={styles.order_list_scroll}>
|
||||||
|
{list.map((item, index) => {
|
||||||
|
return (
|
||||||
|
<View
|
||||||
|
key={item.id}
|
||||||
|
id={`tabs_${item.id}`}
|
||||||
|
onClick={() => clickEvent({ item, index })}
|
||||||
|
className={classnames(styles.order_status_item, selectInfo.selected == item.id && styles.selected)}>
|
||||||
|
{item.name}
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
</View>
|
||||||
|
</ScrollView>
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
})
|
@ -1,7 +1,44 @@
|
|||||||
import { View } from "@tarojs/components"
|
import { View } from '@tarojs/components'
|
||||||
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||||
|
import { mpenumsaleorderstatus } from '@/api/order'
|
||||||
|
import OrderStatusList from './components/orderStatusList'
|
||||||
|
|
||||||
const Order = () => {
|
//页码和页数
|
||||||
return <View></View>
|
const [searchField, setSearchField] = useState<{ status: number | unknown; page: number; size: number; name: string }>({
|
||||||
|
status: null,
|
||||||
|
page: 1,
|
||||||
|
size: 10,
|
||||||
|
name: '',
|
||||||
|
})
|
||||||
|
const pageNum = useRef({ size: searchField.size, page: searchField.page })
|
||||||
|
|
||||||
|
|
||||||
|
//获取订单状态
|
||||||
|
const { fetchData: orderStatusListFetchData } = mpenumsaleorderstatus()
|
||||||
|
const [statusList, setStatusList] = useState<any[]>([{ id: -1, name: '全部' }])
|
||||||
|
const getOrderStatusList = async () => {
|
||||||
|
let res = await orderStatusListFetchData()
|
||||||
|
setStatusList((e) => [...e, ...res.data.list])
|
||||||
|
}
|
||||||
|
|
||||||
|
//状态改变
|
||||||
|
const changeStatus = useCallback((e) => {
|
||||||
|
pageNum.current.page = 1
|
||||||
|
setSearchField((value) => ({ ...value, status: e, size: 10 }))
|
||||||
|
// setOrderData(() => ({ list: [], total: 0 }))
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getOrderStatusList()
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
|
||||||
|
export default () => {
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
<OrderStatusList list={statusList} onSelect={changeStatus} defaultId={-1} />
|
||||||
|
</View>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Order
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user