小程序农机手端

index.jsx 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import Taro from "@tarojs/taro";
  2. import { useState, useEffect } from "react";
  3. import { View, Input, Image, Text, ScrollView } from "@tarojs/components"
  4. import CustomNav from "@/components/CustomNav";
  5. import searchImg from '@/assets/comm/search.png'
  6. import withLayout from '@/layouts'
  7. import NullCard from "@/components/NullCard";
  8. import MyCard from "@/components/MyCard";
  9. import Footer from "@/components/Footer";
  10. import { getOrderList } from "@/services/order";
  11. import './style.less'
  12. export default () => {
  13. const [imageShow, setImageShow] = useState(true)
  14. const [currentTab, setCurrentTab] = useState(0);
  15. const [orderList, setOrderList] = useState([])
  16. const [currentPage, setCurrentPage] = useState(1)
  17. const [isMore, setIsMore] = useState(false)
  18. const [q, setQ] = useState()
  19. const handleSearch = (e) => {
  20. if (e.detail.value) {
  21. console.log(e.detail.value)
  22. setImageShow(false)
  23. } else {
  24. setImageShow(true)
  25. }
  26. setIsMore(false)
  27. setCurrentPage(1)
  28. setQ(e.detail.value)
  29. }
  30. // 上拉加载
  31. const handleScrollToLower = () => {
  32. setCurrentPage(currentPage + 1)
  33. }
  34. const handleClick = () => {
  35. setImageShow(false)
  36. }
  37. const handleChange = (val) => {
  38. setCurrentPage(1)
  39. setCurrentTab(val)
  40. }
  41. const handleDetail = (val) => {
  42. Taro.navigateTo({ url: `/pages/orderDetail/index?id=${val}` });
  43. }
  44. useEffect(() => {
  45. getOrderList({workStatus:currentTab, pageNum: currentPage, q: q }).then(res => {
  46. const lst = currentPage === 1 ? res.records || [] : orderList.concat(res.records || [])
  47. //长列表加载当下一页没有数据时
  48. if (res.records.length == 0 && currentPage != 1) {
  49. setIsMore(true)
  50. return
  51. }
  52. setOrderList(lst)
  53. })
  54. }, [currentPage, q,currentTab])
  55. return (
  56. <>
  57. <View className='searchOrderClass'>
  58. <Input type='text' className='searchInput' onClick={handleClick} onBlur={handleSearch} placeholder='搜索关键字查询订单' />
  59. {
  60. imageShow && (
  61. <Image src={searchImg} className='searchImg' />
  62. )
  63. }
  64. </View>
  65. <View className='tabbar'>
  66. <View
  67. className={['tabberItem', currentTab === 0 ? "activeTabber" : '']}
  68. onClick={() => handleChange(0)}
  69. >
  70. <View>
  71. <Text className='text'>待作业</Text>
  72. {
  73. currentTab === 0 && <View className='line' />
  74. }
  75. </View>
  76. </View>
  77. <View
  78. className={['tabberItem', currentTab === 1 ? "activeTabber" : '']}
  79. onClick={() => handleChange(1)}
  80. >
  81. <View>
  82. <Text className='text'>进行中</Text>
  83. {
  84. currentTab === 1 && <View className='line' />
  85. }
  86. </View>
  87. </View>
  88. <View
  89. className={['tabberItem', currentTab === 3 ? "activeTabber" : '']}
  90. onClick={() => handleChange(3)}
  91. >
  92. <View>
  93. <Text className='text'>已完成</Text>
  94. {
  95. currentTab === 3 && <View className='line' />
  96. }
  97. </View>
  98. </View>
  99. </View>
  100. <ScrollView
  101. scrollY
  102. enhanced
  103. onScrollToLower={isMore ? '' : handleScrollToLower}
  104. style={{ height: 'calc(100% - 108px)' }}
  105. >
  106. {
  107. orderList.length===0?<NullCard value='您还没有新的订单!' />:
  108. orderList.map((item)=>{
  109. return <MyCard order value={item} key={item.orderId} goDetail={()=>handleDetail(item.orderId)} />
  110. })
  111. }
  112. {
  113. isMore && <Footer />
  114. }
  115. </ScrollView>
  116. </>
  117. )
  118. }