Guide.jsx 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. import { useState, useEffect, useRef } from "react";
  2. import Taro from '@tarojs/taro'
  3. import MoreGuide from "@/components/MoreGuide";
  4. import BossCard from '@/components/BossCard'
  5. import Taxi from '@/assets/icons/GuideCheck/taxi.png'
  6. import WiFi from '@/assets/icons/GuideCheck/WiFi.png'
  7. import GoHere from '@/assets/icons/GuideCheck/GoHere.png'
  8. import Cup from '@/assets/icons/GuideCheck/Cup.png'
  9. import BlackSpot from '@/assets/icons/GuideCheck/BlackSpot.png'
  10. import { getRecommendList, getExtendContent } from '@/services/home'
  11. import sleep from '@/assets/icons/GuideCheck/sleep_logo.png'
  12. import { getTaRoom, goToRoomForm } from '@/services/taRoom​'
  13. import showMore from '../../../assets/icons/housemantj/查看更多.png'
  14. import './GuideCss/style.less'
  15. export default (props) => {
  16. const { router, person, iflocation } = props
  17. const { roomId, roomOrderId } = router.params
  18. const [extend, setExtend] = useState([])
  19. const [ifroomId, setIfroomId] = useState('havenot')
  20. const [spackage, setPackage] = useState([])
  21. const cardNavigateTo = undefined
  22. // 住宿经纬度
  23. const Roomlog = useRef('')
  24. const Roomlat = useRef('')
  25. // 停车场经纬度
  26. const Parklog = useRef('')
  27. const Parklat = useRef('')
  28. const [taRoomContent, setTaRoomContent] = useState([])
  29. const RoomLocation = taRoomContent?.location
  30. //没有停车 wifi的就不显示按钮
  31. const [wifiButtonStyle, setWifiButtonStyle] = useState('')
  32. const [parkingButtonStyle, setParkingButtonStyle] = useState('')
  33. const [guideStyle, setGuideStyle] = useState('')
  34. //当前指南总数
  35. const [newextNum, setNewextNum] = useState(0)
  36. //全部指南个数
  37. const [AllextNum, setAllextNum] = useState(0)
  38. //指南当前页数
  39. const [epage, setEpage] = useState(2)
  40. const extendMore = () => {
  41. setEpage(epage + 1)
  42. getExtendContent('room', roomId, { pageNum: epage }).then((res) => {
  43. setExtend([...extend, ...res.records])
  44. setNewextNum(newextNum + res.records.length)
  45. })
  46. }
  47. useEffect(() => {
  48. if (roomOrderId) {
  49. goToRoomForm(roomOrderId).then((res) => {
  50. if (res.status !== 1) {
  51. Taro.navigateTo({
  52. url: `/pages/RoomOrder/index?roomOrderId=${roomOrderId}&status=${res.status}&roomId=${roomId}`,
  53. })
  54. }
  55. })
  56. }
  57. }, [roomOrderId])
  58. useEffect(() => {
  59. if (roomId) {
  60. // 点击’去这里‘跳转导航
  61. getTaRoom(roomId).then((res) => {
  62. Roomlog.current = (res.location).toString().split(',')[0]
  63. Roomlat.current = (res.location).toString().split(',')[1]
  64. Parklog.current = (res.parkingLocation).toString().split(',')[0]
  65. Parklat.current = (res.parkingLocation).toString().split(',')[1]
  66. setTaRoomContent(res || [])
  67. })
  68. //更多指引
  69. getExtendContent('room', roomId).then((res) => {
  70. setExtend(res.records || [])
  71. setIfroomId('reality')
  72. setAllextNum(res.total)
  73. setNewextNum(res.records.length)
  74. })
  75. getRecommendList({ location: RoomLocation }).then((res) => {
  76. setPackage(res || [])
  77. })
  78. } else {
  79. getRecommendList({ location: iflocation }).then((res) => {
  80. setPackage(res || [])
  81. })
  82. return
  83. }
  84. // extend?.records === []
  85. if (taRoomContent?.wifiPassword === "") {
  86. setWifiButtonStyle('none')
  87. }
  88. if (taRoomContent?.parkingAddress === "") {
  89. setParkingButtonStyle('none')
  90. }
  91. // if (extend.length === 0) {
  92. // setGuideStyle('none')
  93. // }
  94. // if (extend) {
  95. // extend.map(item => {
  96. // if (item.pages) {
  97. // setGuideStyle('none')
  98. // } else {
  99. // setGuideStyle('')
  100. // }
  101. // })
  102. // }
  103. }, [roomId, RoomLocation])
  104. const goRoomMap = () => {
  105. Taro.openLocation({
  106. longitude: Roomlog.current - 0,
  107. latitude: Roomlat.current - 0,
  108. name: taRoomContent.roomName,
  109. address: taRoomContent.address,
  110. scale: 12,
  111. })
  112. }
  113. const goParkMap = () => {
  114. Taro.openLocation({
  115. longitude: Parklog.current - 0,
  116. latitude: Parklat.current - 0,
  117. name: taRoomContent.parkingAddress,
  118. address: taRoomContent.parkingAddress,
  119. scale: 12,
  120. })
  121. }
  122. const wifiCopy = () => {
  123. Taro.setClipboardData({
  124. data: taRoomContent?.wifiPassword,
  125. success: e => {
  126. Taro.showToast({
  127. title: '密码已复制',
  128. icon: 'success',
  129. duration: 2000,
  130. })
  131. }
  132. })
  133. }
  134. return (
  135. <scroll-view scroll-y style='height:100%;' >
  136. <view className='Guide-Home-box'>
  137. {
  138. ifroomId === 'havenot' && (
  139. <view className='Guide-image-text-box'>
  140. <image className='Guide-images' src={sleep} />
  141. <view className='Guide-text'>休息一下,休息一下~</view>
  142. </view>
  143. )
  144. }
  145. {/* 有民宿的情况下 */}
  146. {
  147. ifroomId === 'reality' && (
  148. <view>
  149. <view className='MessageCard'>
  150. <view className='MessageCard-title1'>
  151. <text className='MessageCard-left'>----------</text>
  152. 名称
  153. <text className='MessageCard-right'>----------</text>
  154. </view>
  155. <view className='MessageCard-content'>
  156. <view className='MessageCard-name' >{taRoomContent?.roomName}</view>
  157. </view>
  158. </view>
  159. <view className='MessageCard'>
  160. <view className='MessageCard-title1'>
  161. <text className='MessageCard-left'>----------</text>
  162. 民宿位置
  163. <text className='MessageCard-right'>----------</text>
  164. </view>
  165. <view className='MessageCard-content'>
  166. <view className='MessageCard-name' >{taRoomContent?.address}</view>
  167. </view>
  168. <view className='MessageCard-button-RoomName' onClick={() => { goRoomMap() }}>
  169. <image className='MessageCard-image' src={GoHere} />
  170. <text className='MessageCard-text' >去这里</text>
  171. </view>
  172. </view>
  173. <view className='MessageCard'>
  174. <view className='MessageCard-title1'>
  175. <text className='MessageCard-left'>----------</text>
  176. 停车位置
  177. <text className='MessageCard-right'>----------</text>
  178. </view>
  179. <view className='MessageCard-content'>
  180. <view className='MessageCard-name' >{taRoomContent?.parkingAddress}</view>
  181. </view>
  182. <view className='MessageCard-button-Park' onClick={() => { goParkMap() }} style={{ display: parkingButtonStyle }} >
  183. <image className='MessageCard-image' src={Taxi} />
  184. <text className='MessageCard-text' >去这里</text>
  185. </view>
  186. </view>
  187. <view className='MessageCard'>
  188. <view className='MessageCard-title1'>
  189. <text className='MessageCard-left'>----------</text>
  190. WiFi信息
  191. <text className='MessageCard-right'>----------</text>
  192. </view>
  193. <view className='MessageCard-content' style={{ display: wifiButtonStyle }} >
  194. <view className='MessageCard-name' >名称:{taRoomContent?.wifiName}</view>
  195. <view className='MessageCard-info' ><text className='MessageCard-name'>密码:</text>{taRoomContent?.wifiPassword}</view>
  196. </view>
  197. <view className='MessageCard-button' onClick={() => { wifiCopy() }} style={{ display: wifiButtonStyle }}>
  198. <image className='MessageCard-image' src={WiFi} />
  199. <text className='MessageCard-text'>复制</text>
  200. </view>
  201. </view>
  202. <view className='Guide-Content-box' >
  203. <view className='title-image' style={{ display: guideStyle }} >
  204. <image mode='scaleToFill' className='title-image-cup' src={BlackSpot} />
  205. <text className='title-title-boss' >更多指引</text>
  206. </view>
  207. {(extend || []).map((item, index) => <MoreGuide key={(index)} item={item} />)}
  208. <view className='showMore' style={{ display: newextNum == AllextNum ? 'none' : '' }} onClick={extendMore}>
  209. <view>点击查看更多</view>
  210. <image src={showMore} className='moreTip' />
  211. </view>
  212. </view>
  213. </view>
  214. )
  215. }
  216. <view className='Guide-Content-box'>
  217. <view className='title-image'>
  218. <image mode='scaleToFill' className='title-image-cup' src={Cup} />
  219. <text className='title-title-boss' >老板推荐好吃的</text>
  220. </view>
  221. </view>
  222. {(spackage || []).map((item, index) => <BossCard cardNavigateTo={cardNavigateTo} key={(index)} item={item} />)}
  223. {/* 卡片------------- */}
  224. {/* <view className='Guide-Content-box-two'>
  225. <view className='title-image-two'>
  226. <image mode='scaleToFill' className='title-image-cup-two' src={Cup} />
  227. <text className='title-title-boss-two' >老板推荐的攻略</text>
  228. </view>
  229. </view>
  230. <view className='Raiders-box-one'>
  231. <view className='Raiders-imageLove'>
  232. <image className='Raiders-image-Raiders' src={Raiders} />
  233. <image className='Raiders-image-loveOn' src={loveOn} />
  234. </view>
  235. <view className='Raiders-box'>
  236. <image className='Raiders-image' mode='widthFix' src={RaidersImage} />
  237. <text className='Raiders-text'>南京古称金陵,自东吴孙权迁都南京以来,多个汉字汉字汉字汉字</text>
  238. <view className='Raiders-kilometer-on'>
  239. <image className='Raiders-kilometer' src={position} />
  240. <text className='Raiders-kilometer-image'>12.8公里</text>
  241. <text className='Raiders-on-text'>¥8888/人</text>
  242. </view>
  243. </view>
  244. <view className='Raiders-box' style='padding-lift:10px'>
  245. <view className='Raiders-imageLove'>
  246. <image className='Raiders-image-Raiders' src={Raiders} />
  247. <image className='Raiders-image-loveOn' src={loveOn} />
  248. </view>
  249. <image className='Raiders-image' mode='widthFix' src={RaidersImage} />
  250. <text className='Raiders-text'>南京古称金陵,自东吴孙权迁都南京以来,多个汉字汉字汉字汉字</text>
  251. <view className='Raiders-kilometer-on'>
  252. <image className='Raiders-kilometer' src={position} />
  253. <text className='Raiders-kilometer-image'>12.8公里</text>
  254. <text className='Raiders-on-text'>¥8888/人</text>
  255. </view>
  256. </view>
  257. </view> */}
  258. </view>
  259. </scroll-view>
  260. )
  261. }