index.jsx 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import React, { useState, useEffect } from 'react'
  2. import withLayout from '@/layout'
  3. import './index.scss'
  4. import NeedLogin from './components/NeedLogin'
  5. import { ScrollView, Image } from '@tarojs/components'
  6. import '../../assets/css/iconfont.css'
  7. import MineMenuList from './tabData'
  8. import Taro from '@tarojs/taro'
  9. export default withLayout((props) => {
  10. // const [PageProps] = useState(props)
  11. const UserRole = 2 // 1-普通用户 2-经纪人 3-置业顾问 4-驻场管理
  12. const [MenuList, setMenuList] = useState(UserRole === 1 ? MineMenuList.User : UserRole === 2 ? MineMenuList.Broker : UserRole === 3 ? MineMenuList.Adviser : MineMenuList.Resident)
  13. const [IsPull, setPull] = useState(false)
  14. const [ShowLogin, setShowLogin] = useState(false)
  15. const [PullTimer, setPullTimer] = useState(null)
  16. const PageRefresh = () => { // 页面下拉刷新回调
  17. setPull(true)
  18. }
  19. useEffect(() => { // 下拉刷新触发
  20. if (IsPull) {
  21. clearTimeout(PullTimer)
  22. setPullTimer(setTimeout(() => {
  23. setPull(false)
  24. }, 2000))
  25. }
  26. }, [IsPull])
  27. const MenuClick = (router) => {
  28. return () => {
  29. if (router) {
  30. Taro.navigateTo({ url: router })
  31. }
  32. }
  33. }
  34. return (
  35. <view className='Page Mine'>
  36. <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
  37. <view className='PageContent'>
  38. {/* 需要登录 */}
  39. {
  40. ShowLogin &&
  41. <NeedLogin></NeedLogin>
  42. }
  43. {/* 登录后 */}
  44. {
  45. !ShowLogin &&
  46. <view className='Content'>
  47. {/* 用户信息 */}
  48. <view className='UserInfo'>
  49. <view className='UserIcon'>
  50. <Image mode='aspectFill' className='centerLabel' src={require('../../assets/mine-icon18.png')} />
  51. </view>
  52. <view className='OtherInfo'>
  53. <view className='Name'>
  54. <view>
  55. <text>用户姓名</text>
  56. <view>
  57. <text className='iconfont icon-bianji' onClick={() => { Taro.navigateTo({ url: `/pages/mine/userInfo/index` }) }}></text>
  58. <text onClick={() => { Taro.navigateTo({ url: `/pages/mine/userInfo/index` }) }}>个人信息资料修改</text>
  59. </view>
  60. </view>
  61. <text className='Role'>{UserRole === 1 ? '客户' : UserRole === 2 ? '经纪人' : UserRole === 3 ? '置业顾问' : '驻场管理'}</text>
  62. <text className='New'>NEW</text>
  63. <text className='iconfont icon-diqiu'></text>
  64. </view>
  65. </view>
  66. </view>
  67. {/* 用户菜单 */}
  68. <view className='MenuList'>
  69. {
  70. MenuList.map((item, index) => (
  71. <view>
  72. {
  73. item.map((subItem, subIndex) => (
  74. <view key={`MenuItem-${index}-${subIndex}`} className='flex-h' onClick={MenuClick(subItem.router)}>
  75. <view className='Icon'>
  76. <Image mode='aspectFit' className='centerLabel' src={subItem.icon} />
  77. </view>
  78. <view className='flex-item flex-h'>
  79. <text className='flex-item'>{subItem.name}</text>
  80. <text className='iconfont icon-jiantouright'></text>
  81. </view>
  82. </view>
  83. ))
  84. }
  85. </view>
  86. ))
  87. }
  88. </view>
  89. </view>
  90. }
  91. </view>
  92. </ScrollView>
  93. </view>
  94. )
  95. })