tweetDetail.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927
  1. <template>
  2. <view class="container" :style="'overflow:' + (showPage ? 'hidden' : 'visible')" v-if="info">
  3. <!-- 作者信息区域 -->
  4. <view class="author">
  5. <img mode="aspectFill" :src="info.coverImg" />
  6. <view class="author_name">{{ info.hotel_name }}</view>
  7. <view class="author_btn">关注</view>
  8. </view>
  9. <!-- 轮播图区域 -->
  10. <swiper indicator-color="#ccc" indicator-active-color="#096562" indicator-dots autoplay circular class="swiper">
  11. <swiper-item class="swiper_item" v-for="(item, current) in info.hotelFileInfoList" :key="item.id" @click="handleClickSwiper(info.hotelFileInfoList, current)">
  12. <img mode="aspectFill" class="img" :src="item.url" />
  13. </swiper-item>
  14. </swiper>
  15. <!-- 推文信息区域 -->
  16. <view class="tweet">
  17. <view class="tweet_title">{{ info.hposition }}</view>
  18. <view class="tweet_msg">{{ info.remark }}</view>
  19. <view class="tweet_info">{{ info.openTime.slice(5, 10) }} {{ info.hotelTownshipName }}</view>
  20. </view>
  21. <!-- 关联民宿区域 -->
  22. <view class="and">
  23. <!-- 每一个关联民宿区域 -->
  24. <view class="and_box" v-for="item in info.houseList.slice(0, 2)" :key="item.id">
  25. <img mode="aspectFill" :src="item.fileInfoList[0].url" />
  26. <view class="box_detail">
  27. <view class="detail_name">
  28. {{ item.hName }}
  29. <img class="img" src="../../static/index/like.png" />
  30. </view>
  31. <view class="detail_leave">
  32. {{ item.hName }}
  33. </view>
  34. <view class="detail_num">
  35. <view class="num_rate">{{ item.number.toFixed(1) }}分</view>
  36. <view class="num_comment">{{ item.number }}条评论</view>
  37. <view class="num_price">
  38. ¥{{ item.price }}
  39. <text>起</text>
  40. </view>
  41. </view>
  42. </view>
  43. </view>
  44. <!-- 关联民宿查看全部区域 -->
  45. <view class="and_all" @click="handleClickALL">查看全部 >></view>
  46. </view>
  47. <!-- 点赞人数区域 -->
  48. <view class="like">
  49. <uv-avatar-group :urls="info.hotelFileInfoList" keyName="url" size="30" gap="0.3" maxCount="10"></uv-avatar-group>
  50. <view class="like_text" @click="handleGoPage('/pages/likeList/likeList')">{{ info.roomNumber }}人已赞</view>
  51. </view>
  52. <!-- 评论总条数区域 -->
  53. <view class="total">共15条评论</view>
  54. <!-- 评论输入框区域 -->
  55. <view class="input_box">
  56. <input type="text" confirm-type="send" placeholder="爱评论的人运气都不差" @confirm="handleInput" />
  57. </view>
  58. <!-- 评论列表区域 -->
  59. <view class="comment_list">
  60. <!-- 每一个评论区域 -->
  61. <view class="comment_box" v-for="item in info.houseList.slice(0, 3)" :key="item.id">
  62. <view class="box_left">
  63. <img mode="aspectFill" :src="item.fileInfoList[0].url" />
  64. </view>
  65. <view class="box_right">
  66. <view class="right_name">{{ item.hName }}</view>
  67. <view class="right_content">{{ item.hConfig }}</view>
  68. <view class="right_time">{{ item.createDate.slice(6, 11) }}</view>
  69. </view>
  70. </view>
  71. <!-- 查看全部评论区域 -->
  72. <view class="comment_all" @click="handleClickComment">查看全部评论 >></view>
  73. </view>
  74. <!-- 相关推文区域 -->
  75. <view class="related" v-if="info.houseList.length">
  76. <view class="related_title">相关推文</view>
  77. <!-- 相关推文列表区域 -->
  78. <view class="related_list">
  79. <!-- 每一个推文区域 -->
  80. <view class="related_box" v-for="item in info.houseList.slice(0, 2)" :key="item.id">
  81. <img mode="aspectFill" :src="item.fileInfoList[0].url" />
  82. <view class="box_content">{{ item.hConfig }}</view>
  83. <view class="box_info">
  84. <img class="img" mode="aspectFill" :src="item.fileInfoList[0].url" />
  85. <view class="info_name">{{ item.hName }}</view>
  86. <img class="img2" mode="aspectFill" src="../../static/index/like.png" />
  87. <view class="info_count">{{ item.number }}</view>
  88. </view>
  89. <!-- 乡镇信息区域 -->
  90. <view class="box_town">{{ item.hName }}</view>
  91. </view>
  92. </view>
  93. </view>
  94. <!-- 底部点赞 评论 收藏区域 -->
  95. <view class="tab">
  96. <!-- 点赞 -->
  97. <view class="tab_box">
  98. <img class="img" src="../../static/index/upvote.png" />
  99. 123
  100. </view>
  101. <!-- 评论 -->
  102. <view class="tab_box" @click="handleClickComment">
  103. <img class="img2" src="../../static/index/comment.png" />
  104. 123
  105. </view>
  106. <!-- 收藏 -->
  107. <view class="tab_box">
  108. <img class="img" src="../../static/index/like.png" />
  109. 123
  110. </view>
  111. </view>
  112. <!-- 点击评论弹窗区域 -->
  113. <uv-popup ref="popup" bgColor="none" :safeAreaInsetBottom="false">
  114. <view class="body_pop">
  115. <!-- 评论总数区域 -->
  116. <view class="pop_title">
  117. 共25条评论
  118. <img class="pop_icon" src="../../static/index/close3.png" @click="handleClosePop" />
  119. </view>
  120. <!-- 评论列表区域 -->
  121. <view class="pop_list" v-if="commentList.length">
  122. <!-- 每一条评论区域 -->
  123. <view class="pop_item" v-for="item in commentList" :key="item.id">
  124. <!-- 用户区域 -->
  125. <view class="item_user" @click="handleComment(item)">
  126. <img mode="aspectFill" :src="item.headPhoto" />
  127. <view class="user_info">
  128. {{ item.userName }}
  129. </view>
  130. </view>
  131. <!-- 评价内容区域 -->
  132. <view class="item_content" @click="handleComment(item)">
  133. <view class="content_top">
  134. {{ item.content }}
  135. </view>
  136. <view class="content_bottom">
  137. {{ item.dateTime }}
  138. </view>
  139. </view>
  140. <!-- 二级评论区域 -->
  141. <view class="item_child">
  142. <CommentChild v-if="item.commentVoList" :list="item.commentVoList" :commentParentId="info.id" />
  143. </view>
  144. </view>
  145. </view>
  146. </view>
  147. <!-- 评论输入框区域 -->
  148. <view class="body_input">
  149. <view class="input_box">
  150. <input type="text" placeholder="说点什么呢~" @confirm="handleInputPop" />
  151. </view>
  152. </view>
  153. </uv-popup>
  154. <!-- 点击关联民宿弹窗区域 -->
  155. <uv-popup ref="popup_bind" bgColor="none" :safeAreaInsetBottom="false">
  156. <view class="body_pop">
  157. <!-- 评论总数区域 -->
  158. <view class="pop_title">
  159. 全部
  160. <img class="pop_icon" src="../../static/index/close3.png" @click="handleClosePopBind" />
  161. </view>
  162. <!-- 关联民宿列表区域 -->
  163. <view class="pop_list" v-if="bindList.length">
  164. <!-- 每一个民宿区域 -->
  165. <view class="pop_item_bind" v-for="item in bindList" :key="item.id">
  166. <img mode="aspectFill" :src="item.url" />
  167. <view class="box_detail">
  168. <view class="detail_name">
  169. {{ item.hName }}
  170. <img class="img" src="../../static/index/like.png" />
  171. </view>
  172. <view class="detail_leave">
  173. {{ item.hName }}
  174. </view>
  175. <view class="detail_num">
  176. <view class="num_rate">{{ item.number.toFixed(1) }}分</view>
  177. <view class="num_comment">{{ item.number }}条评论</view>
  178. <view class="num_price">
  179. ¥{{ item.price }}
  180. <text>起</text>
  181. </view>
  182. </view>
  183. </view>
  184. </view>
  185. </view>
  186. </view>
  187. </uv-popup>
  188. </view>
  189. </template>
  190. <script>
  191. import CommentChild from '@/components/commentChild2.vue'
  192. export default {
  193. components: { CommentChild },
  194. data() {
  195. return {
  196. // 滚动穿透控制
  197. showPage: false,
  198. hotelId: '',
  199. startTime: '',
  200. endTime: '',
  201. info: null,
  202. commentList: [
  203. {
  204. id: 1,
  205. headPhoto: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/1374205869tmp_ec40ba855cc6003b2a47877a654dceaf9fc74230a8e9cf25.jpg',
  206. userName: '张三',
  207. dateTime: '2023-09-22 16:54:38',
  208. content: '策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬',
  209. commentVoList: [
  210. {
  211. id: 11,
  212. headPhoto: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/1374205869tmp_ec40ba855cc6003b2a47877a654dceaf9fc74230a8e9cf25.jpg',
  213. userName: '小王',
  214. commentName: '老六',
  215. dateTime: '2023-09-22 16:54:38',
  216. content: '策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬',
  217. commentVoList: [
  218. {
  219. id: 111,
  220. headPhoto: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/1374205869tmp_ec40ba855cc6003b2a47877a654dceaf9fc74230a8e9cf25.jpg',
  221. userName: '小王',
  222. commentName: '老六',
  223. dateTime: '2023-09-22 16:54:38',
  224. content: '策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬',
  225. commentVoList: []
  226. }
  227. ]
  228. }
  229. ]
  230. },
  231. {
  232. id: 2,
  233. headPhoto: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/1374205869tmp_ec40ba855cc6003b2a47877a654dceaf9fc74230a8e9cf25.jpg',
  234. userName: '李四',
  235. dateTime: '2023-09-22 16:54:38',
  236. content: '呜呜呜呜呜呜吾问无为谓策划斯哈斯是回家哦啊好啦干哈会离开是尴尬尬',
  237. commentVoList: []
  238. }
  239. ],
  240. bindList: [
  241. {
  242. id: 1,
  243. url: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/14479079250812_2.jpg',
  244. hName: '开心',
  245. number: 5,
  246. price: 166
  247. },
  248. {
  249. id: 2,
  250. url: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/14479079250812_2.jpg',
  251. hName: '健康',
  252. number: 6,
  253. price: 186
  254. },
  255. {
  256. id: 3,
  257. url: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/14479079250812_2.jpg',
  258. hName: '幸福',
  259. number: 9,
  260. price: 126
  261. },
  262. {
  263. id: 4,
  264. url: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/14479079250812_2.jpg',
  265. hName: '开心',
  266. number: 5,
  267. price: 166
  268. },
  269. {
  270. id: 5,
  271. url: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/14479079250812_2.jpg',
  272. hName: '健康',
  273. number: 6,
  274. price: 186
  275. },
  276. {
  277. id: 6,
  278. url: 'https://chtech.ncjti.edu.cn/hotelReservation/fileload/download/14479079250812_2.jpg',
  279. hName: '幸福',
  280. number: 9,
  281. price: 126
  282. }
  283. ]
  284. }
  285. },
  286. onLoad(options) {
  287. this.hotelId = options.id
  288. this.getTimes()
  289. this.getHotelInfo()
  290. },
  291. methods: {
  292. // 获取民宿信息
  293. async getHotelInfo(id) {
  294. const res = await this.$myRequest({
  295. url: '/mhotel/ahpgetHouseByHotelId.action',
  296. data: {
  297. hotelId: id ? id : this.hotelId,
  298. userId: uni.getStorageSync('userInfo').id,
  299. queryStartTime: this.startTime,
  300. queryEndTime: this.endTime
  301. }
  302. })
  303. // console.log(res)
  304. if (res.code === 200) {
  305. this.info = res.data.data
  306. }
  307. },
  308. // 点击轮播图图片回调
  309. handleClickSwiper(urls, current) {
  310. const temList = urls.map((ele) => ele.url)
  311. uni.previewImage({
  312. urls: temList,
  313. current
  314. })
  315. },
  316. handleInput(e) {
  317. console.log(e)
  318. console.log(999)
  319. },
  320. // 评论弹窗输入框回调
  321. handleInputPop(e) {
  322. console.log(e)
  323. },
  324. // 点击底部tab评论按钮回调
  325. handleClickComment() {
  326. this.showPage = true
  327. this.$refs.popup.open('bottom')
  328. },
  329. // 点击评论弹窗关闭图标回调
  330. handleClosePop() {
  331. this.showPage = false
  332. this.$refs.popup.close()
  333. },
  334. // 点击关联民宿查看全部按钮回调
  335. handleClickALL() {
  336. this.showPage = true
  337. this.$refs.popup_bind.open('bottom')
  338. },
  339. // 点击关联民宿弹窗关闭图标回调
  340. handleClosePopBind() {
  341. this.showPage = false
  342. this.$refs.popup_bind.close()
  343. },
  344. handleGoPage(url) {
  345. uni.navigateTo({
  346. url
  347. })
  348. },
  349. handleComment() {},
  350. // 获取今明两天的日期 YYYY-MM-DD
  351. getTimes() {
  352. // 今天
  353. let today = new Date()
  354. // 明天
  355. let tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000)
  356. let late = new Date(today.getTime() + 24 * 60 * 60 * 1000 * 14)
  357. this.startTime = `${today.getFullYear()}-${(today.getMonth() + 1).toString().padStart(2, 0)}-${today.getDate().toString().padStart(2, 0)}`
  358. this.endTime = `${tomorrow.getFullYear()}-${(tomorrow.getMonth() + 1).toString().padStart(2, 0)}-${tomorrow.getDate().toString().padStart(2, 0)}`
  359. }
  360. }
  361. }
  362. </script>
  363. <style lang="scss" scoped>
  364. .container {
  365. min-height: 100vh;
  366. background-color: #fff;
  367. .author {
  368. display: flex;
  369. align-items: center;
  370. padding: 0 20rpx;
  371. height: 100rpx;
  372. img {
  373. width: 50rpx;
  374. height: 50rpx;
  375. border-radius: 50%;
  376. }
  377. .author_name {
  378. margin-left: 15rpx;
  379. font-size: 28rpx;
  380. font-weight: bold;
  381. }
  382. .author_btn {
  383. display: flex;
  384. justify-content: center;
  385. align-items: center;
  386. margin-left: auto;
  387. width: 107rpx;
  388. height: 50rpx;
  389. color: #096562;
  390. font-size: 24rpx;
  391. border-radius: 69rpx;
  392. border: 1rpx solid #096562;
  393. }
  394. }
  395. .swiper {
  396. height: 495rpx;
  397. .swiper_item {
  398. width: 100%;
  399. height: 100%;
  400. .img {
  401. width: 100%;
  402. height: 440rpx;
  403. }
  404. }
  405. }
  406. .tweet {
  407. margin: auto;
  408. width: 710rpx;
  409. border-bottom: 1rpx solid #e6e6e6;
  410. .tweet_title {
  411. line-height: 50rpx;
  412. font-size: 32rpx;
  413. font-weight: bold;
  414. }
  415. .tweet_msg {
  416. margin-top: 10rpx;
  417. line-height: 40rpx;
  418. font-size: 28rpx;
  419. }
  420. .tweet_info {
  421. margin-top: 20rpx;
  422. height: 55rpx;
  423. color: #999999;
  424. font-size: 24rpx;
  425. }
  426. }
  427. .and {
  428. padding: 20rpx 0;
  429. margin: auto;
  430. width: 710rpx;
  431. border-bottom: 1rpx solid #e6e6e6;
  432. .and_box {
  433. display: flex;
  434. margin-bottom: 20rpx;
  435. width: 710rpx;
  436. height: 150rpx;
  437. background-color: #f2f2f2;
  438. img {
  439. width: 126rpx;
  440. height: 150rpx;
  441. }
  442. .box_detail {
  443. flex: 1;
  444. display: flex;
  445. flex-direction: column;
  446. justify-content: space-evenly;
  447. padding: 0 23rpx;
  448. overflow: hidden;
  449. .detail_name {
  450. display: flex;
  451. justify-content: space-between;
  452. align-items: center;
  453. font-size: 28rpx;
  454. font-weight: bold;
  455. overflow: hidden;
  456. text-overflow: ellipsis;
  457. white-space: nowrap;
  458. .img {
  459. width: 40rpx;
  460. height: 40rpx;
  461. }
  462. }
  463. .detail_leave {
  464. color: #808080;
  465. font-size: 24rpx;
  466. }
  467. .detail_num {
  468. display: flex;
  469. align-items: center;
  470. font-size: 24rpx;
  471. .num_rate {
  472. color: #ff5733;
  473. }
  474. .num_comment {
  475. margin-left: 15rpx;
  476. color: #a6a6a6;
  477. }
  478. .num_price {
  479. margin-left: auto;
  480. font-size: 28rpx;
  481. color: #ff5733;
  482. text {
  483. margin-left: 5rpx;
  484. font-size: 20rpx;
  485. color: #a6a6a6;
  486. }
  487. }
  488. }
  489. }
  490. }
  491. .and_all {
  492. display: flex;
  493. justify-content: center;
  494. align-items: center;
  495. width: 710rpx;
  496. height: 80rpx;
  497. color: #096562;
  498. font-size: 28rpx;
  499. background-color: #f2f2f2;
  500. }
  501. }
  502. .like {
  503. display: flex;
  504. align-items: center;
  505. padding: 0 20rpx;
  506. height: 108rpx;
  507. color: #808080;
  508. font-size: 28rpx;
  509. .like_text {
  510. margin-left: 18rpx;
  511. }
  512. }
  513. .total {
  514. margin: auto;
  515. width: 710rpx;
  516. height: 60rpx;
  517. line-height: 60rpx;
  518. font-size: 28rpx;
  519. color: #808080;
  520. }
  521. .input_box {
  522. margin: auto;
  523. width: 710rpx;
  524. height: 66rpx;
  525. font-size: 24rpx;
  526. border-radius: 47rpx;
  527. background-color: #f2f2f2;
  528. input {
  529. box-sizing: border-box;
  530. padding: 0 33rpx;
  531. width: 100%;
  532. height: 100%;
  533. }
  534. }
  535. .comment_list {
  536. margin: auto;
  537. width: 710rpx;
  538. .comment_box {
  539. display: flex;
  540. box-sizing: border-box;
  541. padding-top: 30rpx;
  542. .box_left {
  543. width: 75rpx;
  544. img {
  545. width: 60rpx;
  546. height: 60rpx;
  547. border-radius: 50%;
  548. }
  549. }
  550. .box_right {
  551. flex: 1;
  552. flex-wrap: wrap;
  553. font-size: 24rpx;
  554. border-bottom: 1rpx solid #e6e6e6;
  555. .right_name {
  556. color: #808080;
  557. }
  558. .right_content {
  559. margin-top: 12rpx;
  560. word-break: break-all;
  561. }
  562. .right_time {
  563. margin: 12rpx 0 20rpx;
  564. color: #808080;
  565. }
  566. }
  567. }
  568. .comment_all {
  569. display: flex;
  570. justify-content: center;
  571. align-items: center;
  572. width: 710rpx;
  573. height: 80rpx;
  574. color: #096562;
  575. font-size: 28rpx;
  576. background-color: #f2f2f2;
  577. }
  578. }
  579. .related {
  580. margin: auto;
  581. padding-bottom: 130rpx;
  582. width: 710rpx;
  583. .related_title {
  584. line-height: 105rpx;
  585. font-size: 32rpx;
  586. font-weight: bold;
  587. }
  588. .related_list {
  589. display: grid;
  590. grid-template-columns: 1fr 1fr;
  591. grid-auto-rows: auto;
  592. gap: 40rpx;
  593. .related_box {
  594. position: relative;
  595. width: 335rpx;
  596. background-color: #f7f7f7;
  597. img {
  598. width: 335rpx;
  599. height: 463rpx;
  600. border-radius: 10rpx 10rpx 0 0;
  601. }
  602. .box_content {
  603. padding: 10rpx 60rpx 10rpx 20rpx;
  604. font-size: 28rpx;
  605. font-weight: bold;
  606. word-break: break-all;
  607. overflow: hidden;
  608. text-overflow: ellipsis;
  609. white-space: nowrap;
  610. }
  611. .box_info {
  612. padding: 0 20rpx;
  613. display: flex;
  614. align-items: center;
  615. height: 50rpx;
  616. font-size: 20rpx;
  617. color: #666666;
  618. .img {
  619. width: 30rpx;
  620. height: 30rpx;
  621. border-radius: 50%;
  622. }
  623. .info_name {
  624. margin-left: 10rpx;
  625. }
  626. .img2 {
  627. margin-left: auto;
  628. width: 28rpx;
  629. height: 28rpx;
  630. }
  631. .info_count {
  632. margin-left: 5rpx;
  633. }
  634. }
  635. .box_town {
  636. position: absolute;
  637. top: 405rpx;
  638. left: 22rpx;
  639. padding: 0 20rpx;
  640. display: flex;
  641. justify-content: center;
  642. align-items: center;
  643. height: 43rpx;
  644. color: #fff;
  645. font-size: 20rpx;
  646. border-radius: 42rpx;
  647. background-color: rgba(0, 0, 0, 0.3);
  648. }
  649. }
  650. }
  651. }
  652. .tab {
  653. position: fixed;
  654. bottom: 0;
  655. left: 0;
  656. z-index: 999;
  657. display: flex;
  658. justify-content: space-evenly;
  659. align-items: center;
  660. width: 100%;
  661. height: 110rpx;
  662. border-top: 1rpx solid #e6e6e6;
  663. background-color: #fff;
  664. .tab_box {
  665. display: flex;
  666. justify-content: center;
  667. align-items: center;
  668. width: 200rpx;
  669. .img {
  670. margin-right: 10rpx;
  671. width: 45rpx;
  672. height: 45rpx;
  673. }
  674. .img2 {
  675. margin-right: 10rpx;
  676. width: 35rpx;
  677. height: 35rpx;
  678. }
  679. }
  680. }
  681. .body_pop {
  682. position: relative;
  683. max-height: 955rpx;
  684. border-radius: 22rpx 22rpx 0 0;
  685. background-color: #fff;
  686. overflow-y: auto;
  687. .pop_title {
  688. position: fixed;
  689. top: 0;
  690. left: 0;
  691. right: 0;
  692. display: flex;
  693. justify-content: center;
  694. align-items: center;
  695. height: 110rpx;
  696. font-size: 28rpx;
  697. background-color: #fff;
  698. .pop_icon {
  699. position: absolute;
  700. top: 35rpx;
  701. right: 35rpx;
  702. width: 36rpx;
  703. height: 36rpx;
  704. }
  705. }
  706. .pop_list {
  707. padding: 110rpx 20rpx 30rpx;
  708. .pop_item {
  709. margin-bottom: 10rpx;
  710. padding-bottom: 10rpx;
  711. border-bottom: 1rpx solid #e6e6e6;
  712. .item_user {
  713. display: flex;
  714. align-items: center;
  715. height: 70rpx;
  716. img {
  717. width: 60rpx;
  718. height: 60rpx;
  719. border-radius: 50%;
  720. }
  721. .user_info {
  722. display: flex;
  723. align-items: center;
  724. margin-left: 18rpx;
  725. height: 70rpx;
  726. color: #808080;
  727. font-size: 24rpx;
  728. }
  729. }
  730. .item_content {
  731. margin-left: 80rpx;
  732. font-size: 24rpx;
  733. .content_top {
  734. }
  735. .content_bottom {
  736. margin: 10rpx 0;
  737. color: #808080;
  738. }
  739. .content_key {
  740. color: #808080;
  741. }
  742. }
  743. .item_child {
  744. margin-left: 50rpx;
  745. }
  746. }
  747. .pop_item_bind {
  748. display: flex;
  749. margin-bottom: 20rpx;
  750. width: 710rpx;
  751. height: 150rpx;
  752. background-color: #f2f2f2;
  753. img {
  754. width: 126rpx;
  755. height: 150rpx;
  756. }
  757. .box_detail {
  758. flex: 1;
  759. display: flex;
  760. flex-direction: column;
  761. justify-content: space-evenly;
  762. padding: 0 23rpx;
  763. overflow: hidden;
  764. .detail_name {
  765. display: flex;
  766. justify-content: space-between;
  767. align-items: center;
  768. font-size: 28rpx;
  769. font-weight: bold;
  770. overflow: hidden;
  771. text-overflow: ellipsis;
  772. white-space: nowrap;
  773. .img {
  774. width: 40rpx;
  775. height: 40rpx;
  776. }
  777. }
  778. .detail_leave {
  779. color: #808080;
  780. font-size: 24rpx;
  781. }
  782. .detail_num {
  783. display: flex;
  784. align-items: center;
  785. font-size: 24rpx;
  786. .num_rate {
  787. color: #ff5733;
  788. }
  789. .num_comment {
  790. margin-left: 15rpx;
  791. color: #a6a6a6;
  792. }
  793. .num_price {
  794. margin-left: auto;
  795. font-size: 28rpx;
  796. color: #ff5733;
  797. text {
  798. margin-left: 5rpx;
  799. font-size: 20rpx;
  800. color: #a6a6a6;
  801. }
  802. }
  803. }
  804. }
  805. }
  806. }
  807. }
  808. .body_input {
  809. display: flex;
  810. justify-content: center;
  811. align-items: center;
  812. height: 118rpx;
  813. border-top: 1rpx solid #cccccc;
  814. background-color: #fff;
  815. .input_box {
  816. width: 710rpx;
  817. border-radius: 77rpx;
  818. font-size: 24rpx;
  819. background-color: #f2f2f2;
  820. input {
  821. box-sizing: border-box;
  822. padding: 0 30rpx;
  823. width: 100%;
  824. height: 100%;
  825. }
  826. }
  827. }
  828. }
  829. </style>