import { View, Input, Button } from '@tarojs/components' import { useCallback, useEffect, useMemo, useRef, useState, } from 'react' import Search from '@/components/search' import { dataLoadingStatus, getFilterData } from '@/common/util' import styles from "./index.module.scss" import classnames from "classnames"; import Popup from '@/components/popup' import InfiniteScroll from '@/components/infiniteScroll' import Taro, { faceVerifyForPay, useDidShow } from '@tarojs/taro' import ItemList from './components/itemList' import { formatDateTime, formatHashTag, formatImgUrl, formatPriceDiv, formatWeightDiv } from '@/common/format' import { mpcashManagementOrderlist } from "@/api/newCollection" import TimePicker from "@/components/timePicker" import dayjs from 'dayjs' import IconFont from '@/components/iconfont/iconfont' export default () => { let myDate = new Date(); const [searchField, setSearchField] = useState< { page: number; size: number; search_name: string; start_time: number | string; end_time: number | string; }>({ page: 1, size: 10, search_name: '', start_time: `${dayjs(new Date(myDate?.toLocaleDateString() + ' ' + '00:00:00',)).format('YYYY-MM-DD')} 00:00:00`, end_time: `${dayjs(new Date(myDate?.toLocaleDateString() + ' ' + '00:00:00',)).add(14, 'day').format('YYYY-MM-DD')} 00:00:00`, }) const pageNum = useRef({ size: searchField.size, page: searchField.page }) useDidShow(() => { getOrderList() }) //监听筛选条件变化 useEffect(() => { getOrderList() }, [searchField.size, searchField.search_name]) //输入了搜索关键字 const getSearchData = useCallback((e) => { pageNum.current.page = 1 setOrderData(() => ({ list: [], total: 0 })) setSearchField((val) => ({ ...val, search_name: e, size: 10 })) }, []) //获取订单列表 const { fetchData: listFetchData, state: orderState } = mpcashManagementOrderlist() const [orderData, setOrderData] = useState<{ list: any[]; total: number, summary?: any }>({ list: [], total: 0, summary: {} }) const getOrderList = async () => { let res = await listFetchData({ ...searchField }) setOrderData((e) => ({ ...e, list: res.data?.list, total: res.data?.total, summary: res.data?.summary })) // setshowPopup(false) setRefresherTriggeredStatus(false) } //列表下拉刷新 const [refresherTriggeredStatus, setRefresherTriggeredStatus] = useState(false) const getRefresherRefresh = async () => { pageNum.current.page = 1 // pageNum.current.size = 10 setRefresherTriggeredStatus(true) getOrderList() setSearchField((val) => ({ ...val, size: 10 })) } //数据加载状态 const statusMore = useMemo(() => { return dataLoadingStatus({ list: orderData.list, total: orderData.total, status: orderState.loading }) }, [orderData, orderState]) //上拉加载数据 const getScrolltolower = useCallback(() => { if (orderData.list.length < orderData.total) { pageNum.current.page++ const size = pageNum.current.size * pageNum.current.page console.log(pageNum.current.page, 'pageNum.current.page') console.log(size, 123123) setSearchField({ ...searchField, size }) } }, [orderData]) //是否不允许确认筛选 const isDisabled = useMemo(() => { // if (searchField.stage !== '不限' || // searchField.sale_mode !== '不限' || // searchField.return_type !== '不限' || // searchField.start_time !== '' || // searchField.end_time !== '' // ) { // return false // } else { // return true // } return false }, []) //新建收款 const handAdd = () => { Taro.navigateTo({ url: '/pages/addCollection/index' }) } //筛选弹出 const [SelectPopup, setSelectPopup] = useState(false) //时间数组 const [TimeList, setTimeList] = useState( [ { id: 1, name: '默认14天内', start_time: `${dayjs(new Date(myDate?.toLocaleDateString() + ' ' + '00:00:00',)).format('YYYY-MM-DD')} 00:00:00`, end_time: `${dayjs(new Date(myDate?.toLocaleDateString() + ' ' + '00:00:00',)).add(14, 'day').format('YYYY-MM-DD')} 00:00:00`, checked: true }, { id: 2, name: '展示全部日期', start_time: '', end_time: '', checked: false } ] ) //选择时间item const handSelect = (it) => { TimeList.map(item => { if (item.id == it.id) { item.checked = true } else { item.checked = false } return item }) setTimeList([...TimeList]) pageNum.current.size = 10 setSearchField({ ...searchField, start_time: it.start_time, end_time: it.end_time, size: 10 }) setEnd('') } //重置 const handReset = () => { TimeList.map(item => { if (item.id == 1) { item.checked = true } else { item.checked = false } return item }) setTimeList([...TimeList]) pageNum.current.size = 10 setSearchField({ ...searchField, start_time: `${dayjs(new Date(myDate?.toLocaleDateString() + ' ' + '00:00:00',)).format('YYYY-MM-DD')} 00:00:00`, end_time: `${dayjs(new Date(myDate?.toLocaleDateString() + ' ' + '00:00:00',)).add(14, 'day').format('YYYY-MM-DD')} 00:00:00`, size: 10 }) setStart(myDate.toLocaleDateString()) setEnd('') } //弹窗确认选择 const handSureSelect = () => { pageNum.current.size = 10 setSearchField({ ...searchField, size: 10 }) getOrderList() setSelectPopup(false) } //展示时间筛选 const [showTime, setShowTime] = useState(false) //关闭时间筛选 const handClose = () => { setShowTime(false) } const [start, setStart] = useState(myDate.toLocaleDateString()) const [end, setEnd] = useState('') //选择时间 const handTime = (eq) => { //直接进来点确定的时候做处理 if (Object.keys(eq).length === 0) { let obj = { start: '', end: '' } obj.start = `${dayjs(new Date(myDate?.toLocaleDateString() + ' ' + '00:00:00',)).format('YYYY-MM-DD')} 00:00:00`, obj.end = `${dayjs(new Date(obj?.start)).add(1, 'day').format('YYYY-MM-DD')} 00:00:00` eq.value = obj } setSearchField((val) => ({ ...val, start_time: eq?.value?.start, end_time: eq?.value?.end })) setStart(eq?.value?.start) setEnd(eq?.value?.end) setShowTime(false) pageNum.current.size = 10 } const timeArea = useMemo(() => { // const res = TimeList.filter(item => { // return item.checked // }) // && res.length > 0 if (end !== '') { return start + ' ' + '-' + ' ' + end } else { return '自定义起始时间' } }, [end]) useEffect(() => { setSearchField(searchField) }, [searchField]) return ( <> { setSelectPopup(true) }}> {/* */} 筛选 时间默认14天内 金额汇总:{formatPriceDiv(orderData.summary.receipt_amount)} {orderData?.list?.map((item, index) => { return ( ) })} handAdd()}>新建收款 { setSelectPopup(false) }}> { TimeList.map((item, index) => { return ( handSelect(item)} className={classnames((item.checked && timeArea == '自定义起始时间') ? styles.activetimeOne : styles.timeOne)} key={index}>{item.name} ) }) } { setShowTime(true) }}>{timeArea} { timeArea == '自定义起始时间' && } {/* { timeArea == '自定义起始时间' && } */} handTime(e)} > ) }