diff --git a/src/pages/user/components/UserCard.tsx b/src/pages/user/components/UserCard.tsx index 2e3fedd..154f261 100644 --- a/src/pages/user/components/UserCard.tsx +++ b/src/pages/user/components/UserCard.tsx @@ -71,7 +71,7 @@ function UserCard() { // 加载用户统计数据 if (data.userId) { - loadUserStats(data.userId) + // loadUserStats(data.userId) } // 获取openId diff --git a/src/user/order/components/OrderList.tsx b/src/user/order/components/OrderList.tsx index d82faa8..b22b56b 100644 --- a/src/user/order/components/OrderList.tsx +++ b/src/user/order/components/OrderList.tsx @@ -72,7 +72,6 @@ interface OrderWithGoods extends ShopOrder { } interface OrderListProps { - data: ShopOrder[]; onReload?: () => void; searchParams?: ShopOrderParam; showSearch?: boolean; @@ -87,7 +86,6 @@ function OrderList(props: OrderListProps) { // 获取订单状态文本 const getOrderStatusText = (order: ShopOrder) => { - console.log(order,'order') // 优先检查订单状态 if (order.orderStatus === 2) return '已取消'; @@ -239,7 +237,7 @@ function OrderList(props: OrderListProps) { Taro.showToast({ title: '订单已删除', }); - reload(true); // 重新加载列表 + reload(true).then(); // 重新加载列表 props.onReload?.(); // 通知父组件刷新 } catch (error) { console.error('取消订单失败:', error); @@ -250,11 +248,11 @@ function OrderList(props: OrderListProps) { }; useEffect(() => { - reload(true); // 首次加载或tab切换时重置页码 + reload(true).then(); // 首次加载或tab切换时重置页码 }, [tapIndex]); // 监听tapIndex变化 useEffect(() => { - reload(true); // 搜索参数变化时重置页码 + reload(true).then(); // 搜索参数变化时重置页码 }, [props.searchParams]); // 监听搜索参数变化 return ( diff --git a/src/user/order/components/OrderSearch.scss b/src/user/order/components/OrderSearch.scss deleted file mode 100644 index 0f7862b..0000000 --- a/src/user/order/components/OrderSearch.scss +++ /dev/null @@ -1,47 +0,0 @@ -.order-search { - .search-bar { - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); - } - - .filter-popup { - .grid { - display: grid; - } - - .grid-cols-2 { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } - - .gap-2 { - gap: 0.5rem; - } - - .flex-wrap { - flex-wrap: wrap; - } - } -} - -// 修复Radio按钮样式 -.nut-radio { - &.nut-radio--button { - margin: 2px; - - .nut-radio__label { - padding: 8px 12px; - border-radius: 4px; - font-size: 12px; - } - } -} - -// 修复Input样式 -.nut-input { - &.bg-transparent { - background: transparent !important; - } - - &.border-none { - border: none !important; - } -} diff --git a/src/user/order/components/OrderSearch.tsx b/src/user/order/components/OrderSearch.tsx deleted file mode 100644 index 98bfc8c..0000000 --- a/src/user/order/components/OrderSearch.tsx +++ /dev/null @@ -1,263 +0,0 @@ -import React, { useState } from 'react'; -import { View } from '@tarojs/components'; -import { - Input, - Button, - Popup, - Cell, - CellGroup, - Radio, - Space -} from '@nutui/nutui-react-taro'; -import { Search, Filter, Close } from '@nutui/icons-react-taro'; -import { ShopOrderParam } from '@/api/shop/shopOrder/model'; -import './OrderSearch.scss'; - -interface OrderSearchProps { - onSearch: (params: ShopOrderParam) => void; - onReset: () => void; -} - -// 订单状态选项 -const orderStatusOptions = [ - { text: '全部', value: '' }, - { text: '未使用', value: 0 }, - { text: '已完成', value: 1 }, - { text: '已取消', value: 2 }, - { text: '取消中', value: 3 }, - { text: '退款申请中', value: 4 }, - { text: '退款被拒绝', value: 5 }, - { text: '退款成功', value: 6 }, - { text: '客户端申请退款', value: 7 } -]; - -// 支付状态选项 -const payStatusOptions = [ - { text: '全部', value: '' }, - { text: '未付款', value: 0 }, - { text: '已付款', value: 1 } -]; - -// 支付方式选项 -const payTypeOptions = [ - { text: '全部', value: '' }, - { text: '余额支付', value: 0 }, - { text: '微信支付', value: 1 }, - { text: '会员卡支付', value: 2 }, - { text: '支付宝', value: 3 }, - { text: '现金', value: 4 }, - { text: 'POS机', value: 5 } -]; - -const OrderSearch: React.FC = ({ onSearch, onReset }) => { - const [showFilter, setShowFilter] = useState(false); - const [searchParams, setSearchParams] = useState({ - keywords: '', - orderNo: '', - phone: '', - orderStatus: undefined, - payStatus: undefined, - payType: undefined - }); - - // 搜索关键词 - const handleKeywordSearch = () => { - if (!searchParams.keywords?.trim()) { - return; - } - onSearch({ keywords: searchParams.keywords.trim() }); - }; - - // 重置搜索条件 - const handleReset = () => { - setSearchParams({ - keywords: '', - orderNo: '', - phone: '', - orderStatus: undefined, - payStatus: undefined, - payType: undefined - }); - onReset(); - }; - - // 应用筛选条件 - const handleFilter = () => { - const filterParams: ShopOrderParam = {}; - - if (searchParams.orderNo?.trim()) { - filterParams.orderNo = searchParams.orderNo.trim(); - } - if (searchParams.phone?.trim()) { - filterParams.phone = searchParams.phone.trim(); - } - if (searchParams.orderStatus !== undefined) { - filterParams.orderStatus = searchParams.orderStatus; - } - if (searchParams.payStatus !== undefined) { - filterParams.payStatus = searchParams.payStatus; - } - if (searchParams.payType !== undefined) { - filterParams.payType = searchParams.payType; - } - - onSearch(filterParams); - setShowFilter(false); - }; - - return ( - - {/* 搜索栏 */} - - - - setSearchParams(prev => ({ ...prev, keywords: value }))} - onConfirm={handleKeywordSearch} - className="flex-1 bg-transparent border-none" - style={{ padding: 0 }} - /> - - - setShowFilter(true)} - > - - - - - {/* 筛选弹窗 */} - setShowFilter(false)} - style={{ width: '80%', height: '100%' }} - > - - {/* 头部 */} - - 筛选条件 - setShowFilter(false)} /> - - - {/* 筛选内容 */} - - - {/* 订单号 */} - - - 订单号 - setSearchParams(prev => ({ ...prev, orderNo: value }))} - /> - - - - {/* 手机号 */} - - - 手机号 - setSearchParams(prev => ({ ...prev, phone: value }))} - /> - - - - {/* 订单状态 */} - - - 订单状态 - setSearchParams(prev => ({ ...prev, orderStatus: Number(value) }))} - > - - {orderStatusOptions.map((option) => ( - - {option.text} - - ))} - - - - - - {/* 支付状态 */} - - - 支付状态 - setSearchParams(prev => ({ ...prev, payStatus: Number(value) }))} - > - - {payStatusOptions.map((option) => ( - - {option.text} - - ))} - - - - - - {/* 支付方式 */} - - - 支付方式 - setSearchParams(prev => ({ ...prev, payType: Number(value) }))} - > - - {payTypeOptions.map((option) => ( - - {option.text} - - ))} - - - - - - - - {/* 底部按钮 */} - - - - - - - - - - ); -}; - -export default OrderSearch; diff --git a/src/user/order/order.tsx b/src/user/order/order.tsx index a023949..18ca8b1 100644 --- a/src/user/order/order.tsx +++ b/src/user/order/order.tsx @@ -1,42 +1,37 @@ import {useState} from "react"; import Taro, {useDidShow} from '@tarojs/taro' -import {Space, NavBar, Empty, Button, ConfigProvider, Input} from '@nutui/nutui-react-taro' +import {Space, NavBar, Button, Input} from '@nutui/nutui-react-taro' import {Search, Filter, ArrowLeft} from '@nutui/icons-react-taro' import {View} from '@tarojs/components'; import OrderList from "./components/OrderList"; -// import OrderSearch from "./components/OrderSearch"; -import {ShopOrder, ShopOrderParam} from "@/api/shop/shopOrder/model"; -import {pageShopOrder} from "@/api/shop/shopOrder"; +import {useRouter} from '@tarojs/taro' +import {ShopOrderParam} from "@/api/shop/shopOrder/model"; import './order.scss' function Order() { + const {params} = useRouter(); const [statusBarHeight, setStatusBarHeight] = useState() - const [list, setList] = useState([]) - const [searchParams, setSearchParams] = useState({}) + const [searchParams, setSearchParams] = useState({ + statusFilter: params.statusFilter != undefined && params.statusFilter != '' ? parseInt(params.statusFilter) : -1 + }) const [showSearch, setShowSearch] = useState(false) const [searchKeyword, setSearchKeyword] = useState('') - const reload = async (params?: ShopOrderParam) => { - const searchConditions = { - userId: Taro.getStorageSync('UserId'), - ...params - } - const orders = await pageShopOrder(searchConditions) - if (orders) { - setList(orders.list || []) - } + const reload = async (where?: ShopOrderParam) => { + console.log(where,'where...') + setSearchParams(prev => ({ ...prev, ...where })) } // 处理搜索 - const handleSearch = (params: ShopOrderParam) => { - setSearchParams(params) - reload(params) + const handleSearch = (where: ShopOrderParam) => { + setSearchParams(where) + reload(where).then() } // 重置搜索 const handleResetSearch = () => { setSearchParams({}) - reload() + reload().then() } useDidShow(() => { @@ -96,9 +91,6 @@ function Order() { onClick={() => setShowSearch(!showSearch)} /> - - 共{list.length}个订单 - {/* 搜索组件 */} @@ -147,36 +139,31 @@ function Order() { )} {/*暂无订单*/} - {list.length == 0 && ( - -
- - - - -
-
- )} + {/*{list.length == 0 && (*/} + {/* */} + {/*
*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/*
*/} + {/*
*/} + {/*)}*/} {/*订单列表*/} - { - list.length > 0 && ( - reload(searchParams)} - searchParams={searchParams} - showSearch={showSearch} - /> - ) - } + reload(searchParams)} + searchParams={searchParams} + showSearch={showSearch} + /> ); }