index.jsx 1.8KB

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