123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. import React, { useEffect, useState } from "react";
  2. import Taro, { useDidShow } from "@tarojs/taro";
  3. import { View, Text, Image } from "@tarojs/components";
  4. import ContainerLayout from "../../compents/container/index";
  5. import icon from "../../assets/icon.png";
  6. import "./index.scss";
  7. import userRloe from "../../util/userRole";
  8. import { useSelector } from "react-redux";
  9. import request, { uploadFiles } from "@/util/request";
  10. import uploadicon from "../../assets/uploadicon.png";
  11. // import copy from '../../assets/copy.png'
  12. const guide = props => {
  13. const user = useSelector(state => state.user);
  14. // const guide = useSelector(state => state.guide)
  15. const { value, houseId, ...prop } = props;
  16. const [state, setState] = useState(1);
  17. const [imgurl, setImgurl] = useState("");
  18. // const [detail, setDetail] = useState({})
  19. const detail = props.dataSource || {};
  20. const onOpenLocation = lngLat => {
  21. const [latitude, longitude] = lngLat.split(",");
  22. wx.openLocation({
  23. latitude: latitude ? latitude - 0 : undefined,
  24. longitude: longitude ? longitude - 0 : undefined,
  25. scale: 18,
  26. fail: err => {
  27. console.log(err);
  28. }
  29. });
  30. };
  31. const handleCopy = v => {
  32. wx.setClipboardData({
  33. data: v,
  34. success(res) {}
  35. });
  36. }
  37. const onToMap = type => {
  38. if (user.role == userRloe.customer) return;
  39. switch (type) {
  40. case "address":
  41. Taro.navigateTo({
  42. url: `/pages/map/index?houseId=${houseId}&type=${type}`
  43. });
  44. break;
  45. case "park":
  46. Taro.navigateTo({
  47. url: `/pages/map/index?houseId=${houseId}&type=${type}`
  48. });
  49. break;
  50. case "wifi":
  51. Taro.navigateTo({ url: `/pages/wifi/index?houseId=${houseId}` });
  52. break;
  53. case "housename":
  54. Taro.navigateTo({ url: `/pages/housename/index?houseId=${houseId}` });
  55. break;
  56. case "image": {
  57. if (user.role == userRloe.customer) return;
  58. wx.chooseImage({
  59. count: 1,
  60. sizeType: ["original", "compressed"],
  61. sourceType: ["album"],
  62. success: res => {
  63. // tempFilePath可以作为img标签的src属性显示图片
  64. const tempFilePaths = res.tempFilePaths;
  65. uploadFiles(tempFilePaths)
  66. .then(res => {
  67. console.log(res, "uploadFiles");
  68. // setImgUrl(res[0])
  69. setImgurl(res[0]);
  70. request({
  71. url: `/taHouse/${houseId}`,
  72. method: "put",
  73. data: { ...detail, desc: res[0] }
  74. }).then(res => {});
  75. })
  76. .catch(e => {
  77. console.log(e, "err");
  78. });
  79. // setImgurl(tempFilePaths[0])
  80. }
  81. // success: (res) => {
  82. // // tempFilePath可以作为img标签的src属性显示图片
  83. // console.log(res)
  84. // const tempFilePaths = res.tempFilePaths
  85. // setImgurl(tempFilePaths[0])
  86. // }
  87. });
  88. break;
  89. }
  90. }
  91. // Taro.navigateTo({ url: `/pages/map/index?type=${type}` })
  92. };
  93. // const [addressName,addressDetail] = (detail.address||'').split('____')
  94. // const [parkingName,parkingDetail] = (detail.parking||'').split('____')
  95. return (
  96. <View className="guide">
  97. {!!houseId && (
  98. <View>
  99. <View className="guide-view">
  100. <Text className="guide-view-info">房屋名称</Text>
  101. <ContainerLayout
  102. className="guide-view-layout guide-view-wifi"
  103. onClick={() => onToMap("housename")}
  104. >
  105. <View className="guide-view-layout-text1" style={{ margin: 0 }}>
  106. {detail.title}
  107. </View>
  108. </ContainerLayout>
  109. </View>
  110. <View className="guide-view">
  111. <Text className="guide-view-info">房屋位置</Text>
  112. <ContainerLayout
  113. className="guide-view-layout"
  114. style={{ display: "flex", justifyContent: "space-between" }}
  115. onClick={() => onToMap("address")}
  116. >
  117. <View>
  118. <View className="guide-view-layout-text1">
  119. {detail.shortAddress}
  120. </View>
  121. <View className="guide-view-layout-text2">
  122. {detail.address}
  123. </View>
  124. </View>
  125. {user.role == userRloe.customer && (
  126. <View
  127. style={{
  128. float: "right",
  129. display: "flex",
  130. justifyContent: "center",
  131. flexDirection: "column"
  132. }}
  133. onClick={() => onOpenLocation(detail.lngLat)}
  134. >
  135. <Image className="icon" src={icon} />
  136. <View className="icontext">去这里</View>
  137. </View>
  138. )}
  139. </ContainerLayout>
  140. </View>
  141. {
  142. detail.parking &&
  143. (
  144. <View className="guide-view">
  145. <Text className="guide-view-info">停车位置</Text>
  146. <ContainerLayout
  147. className="guide-view-layout"
  148. style={{ display: "flex", justifyContent: "space-between" }}
  149. onClick={() => onToMap("park")}
  150. >
  151. <View>
  152. <View className="guide-view-layout-text1">
  153. {detail.shortParking}
  154. </View>
  155. <View className="guide-view-layout-text2">
  156. {detail.parking}
  157. </View>
  158. </View>
  159. {user.role == userRloe.customer && (
  160. <View
  161. style={{
  162. float: "right",
  163. display: "flex",
  164. justifyContent: "center",
  165. flexDirection: "column"
  166. }}
  167. onClick={() => onOpenLocation(detail.parkLngLat)}
  168. >
  169. <Image className="icon" src={icon} />
  170. <View className="icontext">去这里</View>
  171. </View>
  172. )}
  173. </ContainerLayout>
  174. </View>
  175. )
  176. }
  177. { detail.wifiName &&
  178. (
  179. <View className="guide-view">
  180. <Text className="guide-view-info">wifi信息</Text>
  181. <ContainerLayout
  182. className="guide-view-layout guide-view-wifi"
  183. onClick={() => onToMap("wifi")}
  184. >
  185. <View>
  186. <Text>名称:</Text>
  187. <Text>{detail.wifiName}</Text>
  188. </View>
  189. <View onClick={() => handleCopy(detail.wifiPassword)}>
  190. <Text>密码:</Text>
  191. <Text style="display: inline-block; margin-right: 6px">{detail.wifiPassword}</Text>
  192. <mp-icon icon="copy" size={12}></mp-icon>
  193. </View>
  194. </ContainerLayout>
  195. </View>
  196. )
  197. }
  198. <View className="guide-view">
  199. <Text className="guide-view-info">其他指引</Text>
  200. {/* <ContainerLayout className='guide-view-layout guide-view-img'> */}
  201. {(detail.desc || imgurl) && (
  202. <Image
  203. className="guide-view-img"
  204. mode="widthFix"
  205. onClick={() => onToMap("image")}
  206. src={imgurl || detail.desc}
  207. ></Image>
  208. )}
  209. {!detail.desc && !imgurl && (
  210. <View style={{ padding: "300rpx" }}>
  211. <Image
  212. className="guide-view-img"
  213. mode="widthFix"
  214. onClick={() => onToMap("image")}
  215. src={uploadicon}
  216. ></Image>
  217. </View>
  218. )}
  219. </View>
  220. </View>
  221. )}
  222. {!houseId && (
  223. <View
  224. className="recommend-noorder"
  225. style={{ marginTop: "calc(40vh)", textAlign: "center" }}
  226. >
  227. <Text>哎呀</Text>
  228. <Text>暂时没发现您的入住订单呢~</Text>
  229. </View>
  230. )}
  231. </View>
  232. );
  233. };
  234. export default guide;