houseManage.jsx 3.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import Taro from '@tarojs/taro'
  2. import see from '@/assets/icons/landlord/查看入住人.png'
  3. import share from '@/assets/icons/landlord/分享链接.png'
  4. import del from '@/assets/icons/landlord/删除.png'
  5. import addImg from '@/assets/icons/landlord/添加.png'
  6. import iconsearch from '@/assets/icons/housemantj/search.png'
  7. import './houseManage.less'
  8. import {useState, useEffect,useRef } from 'react'
  9. import {useDidShow } from '@tarojs/taro'
  10. import {getRoomList,deleteRoom} from '@/services/landlord'
  11. import ShareRoom from '../shareRoom/ShareRoom.jsx'
  12. export default (props) => {
  13. const {hotel}=props
  14. const [detail, setDetail] = useState([])
  15. // 判断是否首次加载
  16. const mounted = useRef(false)
  17. const handelClick=()=>{
  18. Taro.navigateTo({ url: `/hotel/pages/landlord/addRoom/addRoom?hotelId=${hotel.hotelId}&hotelName=${hotel.hotelName}` });
  19. }
  20. const handelDelete=(roomId)=>{
  21. deleteRoom(roomId).then(()=>{
  22. Taro.showToast({
  23. title: '删除房源成功',
  24. icon: 'none',
  25. })
  26. getRoomList({hotelId:hotel.hotelId}).then((res)=>{
  27. setDetail(res.records||[])
  28. })
  29. })
  30. }
  31. const [showCutover, setShowCutover] = useState(false)
  32. const [roomId, setRoomId] = useState()
  33. const ShowMoldeOn = (roomId) => {
  34. setRoomId(roomId)
  35. setShowCutover(true)
  36. }
  37. const onClose = () => {
  38. setShowCutover(false)
  39. }
  40. useEffect(()=>{
  41. //首次加载页面时
  42. if (!mounted.current && hotel.hotelId) {
  43. getRoomList({hotelId:hotel.hotelId}).then((res)=>{
  44. setDetail(res.records||[])
  45. mounted.current = true
  46. })
  47. }
  48. },[hotel?.hotelId])
  49. //当前页面切换到前台时
  50. useDidShow(() => {
  51. if (mounted.current) {
  52. getRoomList({hotelId:hotel.hotelId}).then((res)=>{
  53. setDetail(res.records||[])
  54. })
  55. }
  56. })
  57. return (
  58. <view>
  59. <view style={{ padding: '0 30rpx', height: '100%' }}>
  60. <view className='search'>
  61. <input className='searchInput' disabled />
  62. <image className='searchicon' src={iconsearch} />
  63. <view className="searchword">请输入关键字搜索</view>
  64. </view>
  65. <ShareRoom showCutover={showCutover} onClose={onClose} roomId={roomId}/>
  66. <scroll-view scroll-y="true" scroll-view='true' bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" style={{ height: 'calc(100vh - 255px)' }}>
  67. <view>
  68. {
  69. detail?.map((item)=>
  70. <view className='houseCard'>
  71. <view className='houseName'>{item.roomName}</view>
  72. <view className='operation'>
  73. <view><image src={see} />查看入住人</view>
  74. <view onClick={()=>ShowMoldeOn(item.roomId)}><image src={share}/>分享链接</view>
  75. <view onClick={()=>{handelDelete(item.roomId)}}><image src={del} />删除房源</view>
  76. </view>
  77. </view>
  78. )
  79. }
  80. </view>
  81. </scroll-view>
  82. </view>
  83. <view className='addHouse' onClick={handelClick}>
  84. <image className='addImg' src={addImg} />添加房源
  85. </view>
  86. </view>
  87. )
  88. }