index.jsx 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import React, { useState, useEffect } from 'react'
  2. import Taro, { useDidShow } from '@tarojs/taro'
  3. import withLayout from '@/layouts'
  4. import CustomNav from '@/components/CustomNav'
  5. import { useModel } from '@/store'
  6. import LoginModel from "@/components/LoginModel"
  7. import { View, Image } from '@tarojs/components'
  8. //分别是 首页 订单 资讯 我的
  9. import HomesOFFImgaes from '@/assets/tabbar/HomesOFFImgaes.png'
  10. import HomesNOImgaes from '@/assets/tabbar/HomesNOImgaes.png'
  11. import OrdersOFFImgaes from '@/assets/tabbar/OrdersOFFImgaes.png'
  12. import OrdersNOImgaes from '@/assets/tabbar/OrdersNOImgaes.png'
  13. import newsONImages from '@/assets/tabbar/newsONImages.png'
  14. import newsOFFImages from '@/assets/tabbar/newsOFFImages.png'
  15. import MineOFFImgaes from '@/assets/tabbar/MineOFFImgaes.png'
  16. import MineNOImgaes from '@/assets/tabbar/MineNOImgaes.png'
  17. import Homes from './tabs/Homes'
  18. import Orders from './tabs/Orders'
  19. import Mine from './tabs/Mine'
  20. import Information from './tabs/Information'
  21. import './index.less'
  22. export default withLayout((props) => {
  23. const { router } = props
  24. const { person } = useModel('userData')
  25. const { params, path } = router
  26. const { tab } = params || {}
  27. console.log("🚀 ~ file: index.jsx ~ line 24 ~ withLayout ~ tab", tab)
  28. const [currentTab, setCurrentTab] = useState(0)
  29. // const [isShow, setIsShow] = useState(false)
  30. useDidShow(() => {
  31. console.log('useDidShow',);
  32. if (!person?.phone) {
  33. console.log('还是未登录',);
  34. setCurrentTab(0)
  35. }
  36. })
  37. useEffect(() => {
  38. // setCurrentTab(index)
  39. if (tab) {
  40. setCurrentTab(tab - 0)
  41. }
  42. // setIsShow(true)
  43. }, [tab,])
  44. const handleClick = (index) => {
  45. // Taro.switchTab({
  46. // url: '/pages/InformationPage/index'
  47. // })
  48. if (!person?.phone) {
  49. Taro.navigateTo({ url: `/pages/LoginPage/index?login=true&tab=${index}` })
  50. // setIsShow(true)
  51. } else {
  52. Taro.redirectTo({ url: `/pages/index/index?tab=${index}` });
  53. // setCurrentTab(index)
  54. }
  55. }
  56. return (
  57. <view className='page-index'>
  58. {/* <LoginModel isLoginVisible={isShow} /> */}
  59. <view className='index-navbar'>
  60. <CustomNav title={currentTab === 0 ? '首页' : currentTab === 1 ? '订单' : currentTab === 2 ? '资讯' : '我的'} home />
  61. </view>
  62. <view className='index-container'>
  63. {currentTab === 0 && <Homes />}
  64. {currentTab === 1 && <Orders router={router} />}
  65. {currentTab === 2 && <Information router={router} />}
  66. {currentTab === 3 && <Mine router={router} />}
  67. </view>
  68. <view className='index-tabbar'>
  69. <View
  70. className={['tabberItem', currentTab == 0 ? "activeTabber" : '']}
  71. onClick={() => handleClick(0)}
  72. >
  73. <Image className='tabberImg' src={currentTab == 0 ? HomesNOImgaes : HomesOFFImgaes}></Image>
  74. <View className='text'>首页</View>
  75. </View>
  76. <View
  77. className={['tabberItem', currentTab === 1 ? "activeTabber" : '']}
  78. onClick={() => handleClick(1)}
  79. >
  80. <Image className='tabberImg' src={currentTab == 1 ? OrdersNOImgaes : OrdersOFFImgaes}></Image>
  81. <View className='text'>订单</View>
  82. </View>
  83. <View
  84. className={['tabberItem', currentTab === 2 ? "activeTabber" : '']}
  85. onClick={() => handleClick(2)}
  86. >
  87. <Image className='tabberImg' src={currentTab == 2 ? newsOFFImages : newsONImages}></Image>
  88. <View className='text'>资讯</View>
  89. </View>
  90. <View
  91. className={['tabberItem', currentTab === 3 ? "activeTabber" : '']}
  92. onClick={() => handleClick(3)}
  93. >
  94. <Image className='tabberImg' src={currentTab == 3 ? MineNOImgaes : MineOFFImgaes}></Image>
  95. <View className='text'>我的</View>
  96. </View>
  97. {/* <mp-tabbar extClass='custom-tabbar' autoSelect={false} current={currentTab} list={tabList} onChange={handleTabChange}></mp-tabbar> */}
  98. </view>
  99. </view>
  100. )
  101. })