diff --git a/src/api/order.ts b/src/api/order.ts index 83cbdae..10318d3 100644 --- a/src/api/order.ts +++ b/src/api/order.ts @@ -29,3 +29,34 @@ export const SaleOrderApi = () => { method: "get", }) } + + +/** + * 修改销售单备注 + */ + export const EditSaleOrderRemarkApi = () => { + return useRequest({ + url: `/v1/mall/saleOrder/remark`, + method: "put", + }) +} + +/** + * 修改销售单地址 + */ + export const EditSaleOrderAddressApi = () => { + return useRequest({ + url: `/v1/mall/saleOrder/address`, + method: "put", + }) +} + +/** + * 修改销售单收货方法 + */ + export const EditSaleOrderShipmentModeApi = () => { + return useRequest({ + url: `/v1/mall/saleOrder/shipmentMode`, + method: "put", + }) +} \ No newline at end of file diff --git a/src/common/constant.js b/src/common/constant.js index ff94106..b4f2b9a 100644 --- a/src/common/constant.js +++ b/src/common/constant.js @@ -5,8 +5,8 @@ // 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 = `https://test.zzfzyc.com/lymarket` // 测试环境 -export const BASE_URL = `http://192.168.1.30:40001/lymarket` // 发 -// export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境 +// export const BASE_URL = `http://192.168.1.30:40001/lymarket` // 发 +export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境 // export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境 // export const BASE_URL = `http://192.168.1.4:40001/lymarket` // 王霞 // export const BASE_URL = `http://192.168.1.224:50002/lymarket` // 添 diff --git a/src/common/util.js b/src/common/util.ts similarity index 74% rename from src/common/util.js rename to src/common/util.ts index 6c131c9..15f5d6b 100644 --- a/src/common/util.js +++ b/src/common/util.ts @@ -5,7 +5,7 @@ * @returns */ export const debounce = (fn, delay) => { - let timer = null; + let timer:any = null; return (...param) => { if (timer) clearTimeout(timer); timer = setTimeout(() => { @@ -90,4 +90,17 @@ export const throttle = (fn, delay) => { */ export const screenshot = (url, suffix="!w200")=>{ return url+suffix; + } + + //获取数据加载状态 //0:数据从无到有加载数据,1,没有任何数据, 2:下拉加载,3:下拉没有数据 + export const dataLoadingStatus = ({list = [], total = 0, status = false}:{list:any[], total:number, status:true|false}) => { + if(list.length == 0 && status) { + return 0 + } else if (list.length == 0 && !status) { + return 1 + } else if (list.length < total) { + return 2 + } else { + return 3 + } } \ No newline at end of file diff --git a/src/components/infiniteScroll/index.tsx b/src/components/infiniteScroll/index.tsx index 99dbbaf..26ab828 100644 --- a/src/components/infiniteScroll/index.tsx +++ b/src/components/infiniteScroll/index.tsx @@ -4,12 +4,14 @@ import style from "./index.module.scss" import DotLoading from "@/components/dotLoading" import LoadingCard from "../loadingCard" +export type StatusParam = 0|1|2|3 + type Params = { styleObj?: Object, selfonScrollToLower?: () => void, - hasMore?: false|true, + hasMore?: false|true, moreStatus?: false|true, - statusMore?: 0|1|2, //0:没数据加载,1:下拉加载,2:没有数据 + statusMore?: StatusParam //0:数据从无到有加载数据,1,没有任何数据, 2:下拉加载,3:下拉没有数据 children?: ReactNode, lowerThresholdNum?: number, selfOnScrollToUpper?:() => void @@ -80,20 +82,28 @@ export default memo(({ onRefresherAbort = {() => refresherAbort()} refresherBackground ='#F8F8F8' > - {(statusMore != 0)&& - {children} - {moreStatus&& - { - hasMore&&加载中|| - 没有更多数据了 - } - } - || - - } + {!moreStatus&&<> + + {children} + + || + <> + {(statusMore == 2 || statusMore == 3)&& + {children} + + { + (statusMore == 2)&&加载中|| + 没有更多数据了 + } + + + } + {(statusMore == 0)&&} + {(statusMore == 1)&&} + } + - ) }) \ No newline at end of file diff --git a/src/components/sideBar/index.tsx b/src/components/sideBar/index.tsx index 8245770..78ceec0 100644 --- a/src/components/sideBar/index.tsx +++ b/src/components/sideBar/index.tsx @@ -1,13 +1,12 @@ import { ScrollView, View } from "@tarojs/components" -import { memo, ReactNode, useEffect, useRef, useState } from "react" +import React, { memo, ReactNode, useEffect, useRef, useState } from "react" import styles from "./index.module.scss" import classnames from "classnames"; import Taro, { useReady } from "@tarojs/taro"; -import InfiniteScroll from "../infiniteScroll"; +import InfiniteScroll, {StatusParam} from "../infiniteScroll"; import LoadingCard from "../loadingCard"; - type Params = { list?: any[], defaultValue?: number|string, @@ -18,7 +17,8 @@ type Params = { refresherTriggered?: true|false, selfOnRefresherRefresh?: () => void selfOnScrolltolower?: () => void, - hasMore?: true|false + hasMore?: true|false, + statusMore?: StatusParam } export default memo(({list = [], @@ -30,7 +30,8 @@ export default memo(({list = [], refresherTriggered = false, selfOnRefresherRefresh, selfOnScrolltolower, - hasMore = true + hasMore = true, + statusMore = 0 }: Params) => { let num_half = useRef(0) @@ -82,8 +83,6 @@ export default memo(({list = [], }) }) - - return ( <> @@ -108,8 +107,7 @@ export default memo(({list = [], - - selfOnScrolltolower?.()} refresherTriggered={refresherTriggered} refresherEnabled={true} selfOnRefresherRefresh={() => selfOnRefresherRefresh?.()}> + selfOnScrolltolower?.()} refresherTriggered={refresherTriggered} refresherEnabled={true} selfOnRefresherRefresh={() => selfOnRefresherRefresh?.()}> {children} diff --git a/src/pages/classList/index.tsx b/src/pages/classList/index.tsx index 5d79601..c2a46c9 100644 --- a/src/pages/classList/index.tsx +++ b/src/pages/classList/index.tsx @@ -4,13 +4,13 @@ import Search from '@/components/search' import Product from '@/components/product' import InfiniteScroll from '@/components/infiniteScroll' import styles from './index.module.scss' -import { useCallback, useEffect, useRef, useState } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import Filter from "@/components/filter"; import SortBtn from "@/components/sortBtn"; import SelectData, {ListProps} from "../searchList/components/selectData"; import {GetProductListApi} from '@/api/material' import { useRouter } from "@tarojs/taro"; -import { getFilterData } from "@/common/util"; +import { dataLoadingStatus, getFilterData } from "@/common/util"; import LoadingCard from "@/components/loadingCard"; export default () => { @@ -56,9 +56,9 @@ export default () => { } } - //监听获得的数据变化 - useEffect(() => { - (categoryList.list.length < categoryList.total)?setHasMore(true):setHasMore(false) + //数据加载状态 + const statusMore = useMemo(() => { + return dataLoadingStatus({list:categoryList.list, total: categoryList.total, status: state.loading}) }, [categoryList]) //获取筛选条件 @@ -118,11 +118,9 @@ export default () => { - {(categoryList.list.length == 0&&state.loading)&&} - {(categoryList.list.length == 0 && !state.loading)&&} - {(categoryList.list.length > 0)&& getScrolltolower()} hasMore={hasMore}> + getScrolltolower()} statusMore={statusMore}> - } + setShowPopup(false)} onFiltr={getFiltr}/> diff --git a/src/pages/editOrder/components/shipmentMode/index.tsx b/src/pages/editOrder/components/shipmentMode/index.tsx index 235591c..9ee03ae 100644 --- a/src/pages/editOrder/components/shipmentMode/index.tsx +++ b/src/pages/editOrder/components/shipmentMode/index.tsx @@ -1,18 +1,22 @@ import { Text, View } from "@tarojs/components" import styles from './index.module.scss' import classnames from "classnames"; -import { memo, useRef, useState } from "react"; +import { memo, useEffect, useRef, useState } from "react"; type Param = { onSelect?:(val:number) => void + defaultValue?: 0|1|2 } -export default memo(({onSelect}: Param) => { - //收货方法 1:自提,2:物流 +export default memo(({onSelect, defaultValue = 0}: Param) => { + //收货方法 0:没选择, 1:自提,2:物流 const shipmentMode = useRef([ {value:1, label:'上门自提', selected:false}, {value:2, label:'物流', selected:false} ]) - const [selectValue, setSelectValue] = useState() + const [selectValue, setSelectValue] = useState() + useEffect(() => { + setSelectValue(defaultValue) + }, [defaultValue]) const selectShipmentMode = (value) => { setSelectValue(() => value) onSelect?.(value) diff --git a/src/pages/editOrder/index.tsx b/src/pages/editOrder/index.tsx index 31fcd81..627165c 100644 --- a/src/pages/editOrder/index.tsx +++ b/src/pages/editOrder/index.tsx @@ -1,21 +1,62 @@ import { Text, View } from "@tarojs/components" import styles from './index.module.scss' import classnames from "classnames"; -import { useCallback, useRef, useState } from "react"; +import { useCallback, useMemo, useRef, useState } from "react"; import ShipmentMode from "./components/shipmentMode"; import AddressList from "@/components/AddressList"; -import { goLink } from "@/common/common"; +import { alert, goLink } from "@/common/common"; +import { getParam } from "@/common/system"; +import {EditSaleOrderAddressApi, EditSaleOrderShipmentModeApi} from "@/api/order"; +import Taro from "@tarojs/taro"; + export default () => { + + //获取临时传递的数据 + const params = getParam() + const [paramsData, setParamsData] = useState(params) + //提交的数据 const [submitData, setSubmitData] = useState({ address_id:0, - id:0, - shipment_mode: 0 + id:params.id, + shipment_mode: params.shipment_mode }) + + + //格式化地址 + const address = useMemo(() => { + return paramsData.province_name+' '+paramsData.city_name+' '+paramsData.district_name+' '+paramsData.address_detail + }, [paramsData]) + //获取收货方法 const getShipmentMode = useCallback((num) => { setSubmitData((val) => ({...val, shipment_mode:num})) }, []) + + //获取地址 + const getSelectAddress = useCallback((e) => { + setSubmitData((val) => ({...val, address_id:e.id})) + }, []) + + //修改请求 + const {fetchData: addressFetchData} = EditSaleOrderAddressApi() + const {fetchData: shipmentFetchData} = EditSaleOrderShipmentModeApi() + const editData = async () => { + if(submitData.address_id) { + let res = await addressFetchData(submitData) + if(!res.success) { + alert.error(res.msg) + return false + } + } + let res = await shipmentFetchData(submitData) + if(!res.success) { + alert.error(res.msg) + return false + } + Taro.navigateBack() + } + return ( @@ -26,24 +67,24 @@ export default () => { - + 原地址: - 广东省 佛山市 禅城区 张槎街道 清风路1988号麦兜的大 大仓库 + {address} - 陈先生 - 1818877790 + {paramsData.name} + {paramsData.phone} 重新选择收货地址 - + goLink('/pages/addressAdd/index', {type:'add'})} className={classnames(styles.addAddress, styles.addressBtn)}>添加新地址 - 提交修改 + editData()}>提交修改 diff --git a/src/pages/index/context.ts b/src/pages/index/context.ts new file mode 100644 index 0000000..f7db244 --- /dev/null +++ b/src/pages/index/context.ts @@ -0,0 +1,3 @@ +import React from "react"; + +export const ParamsContext = React.createContext(null) \ No newline at end of file diff --git a/src/pages/index/index.config.ts b/src/pages/index/index.config.ts index a025a3d..86e3b2e 100644 --- a/src/pages/index/index.config.ts +++ b/src/pages/index/index.config.ts @@ -1,3 +1,3 @@ export default { - navigationBarTitleText: '修改地址', + navigationBarTitleText: '首页', } diff --git a/src/pages/index/index.tsx b/src/pages/index/index.tsx index 5653f8d..de0e0b0 100644 --- a/src/pages/index/index.tsx +++ b/src/pages/index/index.tsx @@ -7,11 +7,12 @@ import MoveBtn from '@/components/moveBtn' import ShopCart from '@/components/shopCart' import { goLink } from '@/common/common' import styles from './index.module.scss' -import { useEffect, useRef, useState } from 'react' +import React, { useEffect, useMemo, useRef, useState } from 'react' import Taro, { Events, useDidShow, usePullDownRefresh, useRouter } from '@tarojs/taro' import {GetProductKindListApi, GetProductListApi} from '@/api/material' import useLogin from '@/use/useLogin' import LoadingCard from '@/components/loadingCard' +import { dataLoadingStatus } from '@/common/util' export default () => { @@ -54,6 +55,7 @@ export default () => { getProductList() }, [filtrate]) + //点击面料类型 const getProductKindId = async (e) => { pageNum.current.page = 1 @@ -90,6 +92,11 @@ export default () => { usePullDownRefresh(() => { console.log('123') }) + + //数据加载状态 + const statusMore = useMemo(() => { + return dataLoadingStatus({list:productData.list, total: productData.total, status: productState.loading}) + }, [productData]) return ( setShowShopCart(!showShopCart)}> @@ -102,9 +109,9 @@ export default () => { - getScrolltolower()} sideBarOnClick={(e) => getProductKindId(e)} heightItem={150} refresherTriggered={refresherTriggeredStatus} selfOnRefresherRefresh={() => getRefresherRefresh()}> - - + getScrolltolower()} sideBarOnClick={(e) => getProductKindId(e)} heightItem={150} refresherTriggered={refresherTriggeredStatus} selfOnRefresherRefresh={() => getRefresherRefresh()}> + + setShowShopCart(false)}/> @@ -112,3 +119,4 @@ export default () => { ) } + diff --git a/src/pages/order/components/addressInfo/index.tsx b/src/pages/order/components/addressInfo/index.tsx index e8c5276..4225fea 100644 --- a/src/pages/order/components/addressInfo/index.tsx +++ b/src/pages/order/components/addressInfo/index.tsx @@ -10,7 +10,7 @@ export type AddressInfoParam = { city_name: string, district_name: string, address_detail: string, - id: number, + id?: number, name: string, phone: string } diff --git a/src/pages/order/components/estimatedAmount/index.tsx b/src/pages/order/components/estimatedAmount/index.tsx index c1f360d..269487e 100644 --- a/src/pages/order/components/estimatedAmount/index.tsx +++ b/src/pages/order/components/estimatedAmount/index.tsx @@ -5,9 +5,11 @@ import classnames from "classnames"; import styles from './index.module.scss' type Param = { style?: Object, - number?: number + number?: number, + title?: string, + status?: true|false, //true 加大加深 } -export default memo(({style, number = 0}:Param) => { +export default memo(({style, number = 0, status = true, title = ''}:Param) => { const priceDom = useCallback(() => { let res = number.toFixed(2).split('.') let int_num = parseInt(res[0]) + '' @@ -21,40 +23,16 @@ export default memo(({style, number = 0}:Param) => { ) }, [number]) return ( - <> + <> - - 合计金额 + + {title} {/* 123123123121212312312312312 */} - - {priceDom()} - - - - - 空差优惠 - - - {/* 123123123121212312312312312 */} - - - - {priceDom()} - - - - - 应付金额 - - - {/* 123123123121212312312312312 */} - - - + {priceDom()} diff --git a/src/pages/order/components/kindList/index.tsx b/src/pages/order/components/kindList/index.tsx index 7dc81eb..1a42f7e 100644 --- a/src/pages/order/components/kindList/index.tsx +++ b/src/pages/order/components/kindList/index.tsx @@ -64,7 +64,7 @@ export default memo(({value}:{value:OrderParam|null}) => { }) } - + diff --git a/src/pages/order/index.config.ts b/src/pages/order/index.config.ts index b0cb522..d88c826 100644 --- a/src/pages/order/index.config.ts +++ b/src/pages/order/index.config.ts @@ -1,3 +1,3 @@ export default { - navigationBarTitleText: '确认订单' + navigationBarTitleText: '订单详情' } diff --git a/src/pages/order/index.tsx b/src/pages/order/index.tsx index a2aee83..600443e 100644 --- a/src/pages/order/index.tsx +++ b/src/pages/order/index.tsx @@ -1,10 +1,11 @@ -import { GetSaleOrderDetailApi } from "@/api/order"; -import { goLink } from "@/common/common"; +import { GetSaleOrderDetailApi, EditSaleOrderRemarkApi } from "@/api/order"; +import { alert, goLink } from "@/common/common"; import { formatDateTime, formatPriceDiv } from "@/common/fotmat"; +import { setParam } from "@/common/system"; import Popup from "@/components/popup"; import SearchInput from "@/components/searchInput"; import { Text, Textarea, View } from "@tarojs/components" -import Taro, { useRouter } from "@tarojs/taro"; +import Taro, { useDidShow, useRouter } from "@tarojs/taro"; import classnames from "classnames"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import AddressInfo from "./components/addressInfo"; @@ -18,17 +19,20 @@ import styles from './index.module.scss' const [showDesc, setShowDesc] = useState(false) const router = useRouter() - useEffect(() => { + const orderId = useRef(Number(router.params.id)) + + useDidShow(() => { getSaleOrderPreView() - }, []) + }) //获取订单详情 const [orderDetail, setOrderDetail] = useState() //获取到的原始数据 const {fetchData: getOrderFetchData} = GetSaleOrderDetailApi() const getSaleOrderPreView = async () => { - if(router.params.id) { - let res = await getOrderFetchData({id: router.params.id}) + if(orderId.current) { + let res = await getOrderFetchData({id: orderId.current}) setOrderDetail(res.data) + setOrderRemark(res.data.remark) } } @@ -89,32 +93,48 @@ import styles from './index.module.scss' //格式化初始地址 const defaultAddress = useMemo(() => { - const address = orderDetail?.default_address - if(address) { - return { - province_name: address.province_name, - city_name: address.city_name, - district_name: address.district_name, - address_detail: address.address_detail, - id: address.id, - name: address.name, - phone: address.phone - } + return { + province_name: orderDetail?.province_name, + city_name: orderDetail?.city_name, + district_name: orderDetail?.district_name, + address_detail: orderDetail?.address_detail, + // id: address.id, + name: orderDetail?.target_user_name, + phone: orderDetail?.target_user_phone } - return null + }, [orderDetail]) //订单备注 + const {fetchData: remarkFetchData} = EditSaleOrderRemarkApi() const [orderRemark, setOrderRemark] = useState('') - const getRemark = useCallback((e) => { + const getRemark = useCallback(async (e) => { setOrderRemark(() => e) + let res = await remarkFetchData({remark:e, id: orderId.current}) + if(res.success) { + alert.success('修改成功') + } else { + alert.error(res.msg) + } setShowDesc(() => false) }, []) //修改地址 - const changeAddress = useCallback(() => { - goLink('/pages/editOrder/index', {id: router.params.id}) - }, [router.params]) + const changeAddress = () => { + //临时传递数据 + setParam({ + province_name: orderDetail?.province_name, + city_name: orderDetail?.city_name, + district_name: orderDetail?.district_name, + address_detail: orderDetail?.address_detail, + id: orderId.current, + name: orderDetail?.target_user_name, + phone: orderDetail?.target_user_phone, + shipment_mode: orderDetail?.shipment_mode, + } + ) + goLink('/pages/editOrder/index') + } return ( diff --git a/src/pages/orderList/index.tsx b/src/pages/orderList/index.tsx index 4741c48..010f815 100644 --- a/src/pages/orderList/index.tsx +++ b/src/pages/orderList/index.tsx @@ -58,7 +58,6 @@ export default () => { return })} - diff --git a/src/pages/searchList/hightSearchList.tsx b/src/pages/searchList/hightSearchList.tsx index f563b90..f7d31db 100644 --- a/src/pages/searchList/hightSearchList.tsx +++ b/src/pages/searchList/hightSearchList.tsx @@ -8,10 +8,10 @@ import LinkBlueTooth from "@/components/bluetooth/LinkBlueTooth"; import {useBluetooth} from "@/use/contextBlueTooth" import {toRgb} from '@/common/bluetooth/color/colorSpace' import styles from './hightSearchList.module.scss' -import { useCallback, useEffect, useRef, useState } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import Taro, { useDidShow, usePullDownRefresh, useReady } from "@tarojs/taro"; import {GetLabProductApi} from "@/api/material" -import { getFilterData } from "@/common/util"; +import { dataLoadingStatus, getFilterData } from "@/common/util"; import { formatHashTag, formatImgUrl } from "@/common/fotmat"; import LoadingCard from "@/components/loadingCard"; import useLogin from "@/use/useLogin"; @@ -64,11 +64,11 @@ export default () => { } } - //监听获得的数据变化 - useEffect(() => { - (materialList.list.length < materialList.total)?setHasMore(true):setHasMore(false) - }, [materialList]) + //数据加载状态 + const statusMore = useMemo(() => { + return dataLoadingStatus({list:materialList.list, total: materialList.total, status: materialState.loading}) + }, [materialList]) const [scrollStatus, setScrollStatus] = useState(false) const onscroll = useCallback((e) => { @@ -176,12 +176,11 @@ export default () => { 搜索结果 ({materialList.total}条记录) - {(materialList.list.length == 0&&materialState.loading)&&} - {(materialList.list.length == 0 && !materialState.loading)&&} - {(materialList.list.length > 0)&& getScrolltolower()} selfOnScroll={(e) => onscroll(e)} - hasMore={hasMore} + statusMore={statusMore} > {materialList.list.map(item => { @@ -197,7 +196,7 @@ export default () => { })} - } + getFiltr(e)} onClose={() => setShowFilter(false)}/> diff --git a/src/pages/searchList/searchList.tsx b/src/pages/searchList/searchList.tsx index 9eee0c0..2fe2769 100644 --- a/src/pages/searchList/searchList.tsx +++ b/src/pages/searchList/searchList.tsx @@ -7,12 +7,12 @@ import SortBtn from "@/components/sortBtn"; import SelectData, {ListProps} from "./components/selectData"; import { goLink } from "@/common/common"; import styles from './searchList.module.scss' -import { useCallback, useEffect, useRef, useState } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import useManualPullDownRefresh from "@/use/useManualPullDownRefresh"; import {GetProductListApi} from "@/api/material" import Taro, { useDidShow, usePullDownRefresh, useRouter } from "@tarojs/taro"; import { formatHashTag, formatImgUrl } from "@/common/fotmat"; -import { getFilterData } from "@/common/util"; +import { dataLoadingStatus, getFilterData } from "@/common/util"; import LoadingCard from "@/components/loadingCard"; import useLogin from "@/use/useLogin"; @@ -53,7 +53,6 @@ export default () => { //上拉加载数据 const pageNum = useRef({size: searchField.size, page: searchField.page}) - const [hasMore, setHasMore] = useState(true) const getScrolltolower = () => { if(materialList.list.length < materialList.total) { pageNum.current.page++ @@ -62,9 +61,9 @@ export default () => { } } - //监听获得的数据变化 - useEffect(() => { - (materialList.list.length < materialList.total)?setHasMore(true):setHasMore(false) + //数据加载状态 + const statusMore = useMemo(() => { + return dataLoadingStatus({list:materialList.list, total: materialList.total, status: materialState.loading}) }, [materialList]) //输入了搜索关键字 @@ -156,12 +155,10 @@ export default () => { 搜索结果 ({materialList.total}条记录) - {(materialList.list.length == 0&&materialState.loading)&&} - {(materialList.list.length == 0 && !materialState.loading)&&} - {(materialList.list.length > 0)&& getScrolltolower()} - hasMore={hasMore} selfOnScroll={(e) => onscroll(e)} + statusMore={statusMore} > {materialList.list.map(item => { @@ -181,7 +178,7 @@ export default () => { })} - } + setShowFilter(false)} onFiltr={(e) => getFiltr(e)} /> diff --git a/src/pages/subjectList/index.tsx b/src/pages/subjectList/index.tsx index ad8c921..2c1a07a 100644 --- a/src/pages/subjectList/index.tsx +++ b/src/pages/subjectList/index.tsx @@ -4,13 +4,13 @@ import Search from '@/components/search' import Product from '@/components/product' import InfiniteScroll from '@/components/infiniteScroll' import styles from './index.module.scss' -import { useCallback, useEffect, useRef, useState } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import Filter from "@/components/filter"; import SortBtn from "@/components/sortBtn"; import SelectData, {ListProps} from "../searchList/components/selectData"; import {GetProductListApi} from '@/api/material' import { useRouter } from "@tarojs/taro"; -import { getFilterData } from "@/common/util"; +import { dataLoadingStatus, getFilterData } from "@/common/util"; import LoadingCard from "@/components/loadingCard"; export default () => { @@ -56,9 +56,9 @@ export default () => { } } - //监听获得的数据变化 - useEffect(() => { - (subjectList.list.length < subjectList.total)?setHasMore(true):setHasMore(false) + //数据加载状态 + const statusMore = useMemo(() => { + return dataLoadingStatus({list:subjectList.list, total: subjectList.total, status: state.loading}) }, [subjectList]) //获取筛选条件 @@ -118,11 +118,9 @@ export default () => { - {(subjectList.list.length == 0&&state.loading)&&} - {(subjectList.list.length == 0 && !state.loading)&&} - {(subjectList.list.length > 0)&& getScrolltolower()} hasMore={hasMore}> + getScrolltolower()} statusMore={statusMore}> - } + setShowPopup(false)} onFiltr={getFiltr}/> diff --git a/src/use/useHttp.ts b/src/use/useHttp.ts index feea9e9..05b143b 100644 --- a/src/use/useHttp.ts +++ b/src/use/useHttp.ts @@ -107,7 +107,7 @@ export const useRequest = (options:option = { success: false, // 请求是否成功 data: {}, msg: '', - loading: false, + loading: true, error: null, query: {}, filter: null, @@ -170,7 +170,6 @@ export const useRequest = (options:option = { if (statusCode === 401) { removeToken() removeSessionKey() - // remove // Taro.reLaunch({ // url: router.path +'?' + qs.stringify(router.params) // })