1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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 tabList from './tabbar'
  7. import Homes from './tabs/Homes'
  8. import Orders from './tabs/Orders'
  9. import Mine from './tabs/Mine'
  10. import './index.less'
  11. export default withLayout((props) => {
  12. const { router } = props
  13. const { person } = useModel('userData')
  14. const { params, path } = router
  15. const { tab } = params || {}
  16. const [currentTab, setCurrentTab] = useState(0)
  17. const [isDidShow, setIsDidShow] = useState(0)
  18. useDidShow(() => {
  19. if (!person?.phone) {
  20. console.log("🚀 ~ file: index.jsx ~ line 28 ~ useDidShow ~ person?.phone", person?.phone)
  21. Taro.navigateTo({ url: `/pages/UserLogin/index` })
  22. } else {
  23. setIsDidShow(isDidShow + 1)
  24. }
  25. }, [person?.phone])
  26. useEffect(() => {
  27. if (tab) {
  28. setCurrentTab(tab - 0)
  29. }
  30. }, [tab,])
  31. const handleTabChange = (e) => {
  32. if (!person?.phone) {
  33. Taro.navigateTo({ url: `/pages/UserLogin/index` })
  34. } else {
  35. const { index } = e.detail
  36. setCurrentTab(index)
  37. }
  38. }
  39. return (
  40. <view className='page-index'>
  41. <view className='index-navbar'>
  42. <CustomNav title='首页' home />
  43. </view>
  44. <view className='index-container'>
  45. {currentTab === 0 && <Homes />}
  46. {currentTab === 1 && <Orders router={router} />}
  47. {/* {currentTab === 2 && <Strategy />} */}
  48. {currentTab === 2 && <Mine isDidShow={isDidShow} router={router} />}
  49. </view>
  50. <view className='index-tabbar'>
  51. <mp-tabbar extClass='custom-tabbar' current={currentTab} list={tabList} onChange={handleTabChange}></mp-tabbar>
  52. </view>
  53. </view>
  54. )
  55. })