detail.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <template>
  2. <view class="house">
  3. <!-- :style="'padding-top:'+nvaHeight+'px;'" -->
  4. <view class="navbox">
  5. <uni-nav-bar color="#272727" left-icon="left" @clickLeft="getBackFn" :background-color="backgroundColor" :border="false" statusBar='true' fixed="true">
  6. <!-- 暂放详情,评价 -->
  7. </uni-nav-bar>
  8. </view>
  9. <view>
  10. <swiper class="swiper" circular :indicator-color="incolorh" :indicator-active-color="activecolorh" :indicator-dots="indicatorDotsh" :autoplay="autoplay">
  11. <!-- v-if="checkPermi(['system:application:list'])" -->
  12. <swiper-item>
  13. <image :src="housebg"></image>
  14. </swiper-item>
  15. <swiper-item>
  16. <image :src="housebg"></image>
  17. </swiper-item>
  18. </swiper>
  19. </view>
  20. <!-- <image :src="housebg" class="navbg"></image> -->
  21. <view class="wymain">
  22. <view class="plr15">
  23. <view class="detop flex mb16">
  24. <view class="tit"><text class="f13">¥</text> 299</view>
  25. <view class="tbtn">券后¥249</view>
  26. </view>
  27. <view class="detopa mb7 flex">
  28. <view class="tit">单次深度清洁</view>
  29. <view class="txt">销量1.2W+单</view>
  30. </view>
  31. <view class="detip mb10">单次服务时长3小时(超出部分须支付超时费)</view>
  32. <view class="detbtns mb15">
  33. <view>三级证书</view>
  34. <view>慢必赔</view>
  35. </view>
  36. <view class="detlists flexcw mb6">
  37. <view class="dlist">
  38. <view class="img">
  39. <image :src="cleara" class="imga"></image>
  40. </view>
  41. <view>全屋整理</view>
  42. </view>
  43. <view class="dlist">
  44. <view class="img">
  45. <image :src="clearb" class="imgb"></image>
  46. </view>
  47. <view>深度清洁</view>
  48. </view>
  49. <view class="dlist">
  50. <view class="img">
  51. <image :src="clearc" class="imgb"></image>
  52. </view>
  53. <view>3重消杀</view>
  54. </view>
  55. </view>
  56. </view>
  57. <!-- 评价 -->
  58. <view class="evaluate">
  59. <view class="tit">用户评价</view>
  60. <view class="evalist">
  61. <image :src="housebg" class="limg"></image>
  62. <view class="flex1 overh">
  63. <view class="evalr mb14 plr5">
  64. <view class="flex1 overh">
  65. <view class="evatit over">183****0624</view>
  66. <view class="evatime">2024-11-17</view>
  67. </view>
  68. <view class="evaimgs flexc flex0">
  69. <image :src="start"></image>
  70. <image :src="nstart"></image>
  71. <view>非常满意</view>
  72. </view>
  73. </view>
  74. <view class="evatxt">按时上门,打扫的特别干净,阿姨干活非常专业,也很认真,速度很快,但是保质保量!</view>
  75. </view>
  76. </view>
  77. </view>
  78. </view>
  79. <view style="height: 100rpx;"></view>
  80. <view class="rfbtn" @click="getBuyFn">券后 ¥249 | 立即购买</view>
  81. <buy-pay :type="type" @getAddressFn="getAddressFn" @getClose="getClose"></buy-pay>
  82. <loading></loading>
  83. </view>
  84. </template>
  85. <script>
  86. import config from '@/config'
  87. const baseUrl = config.baseUrl
  88. import buyPay from "@/work/components/popup/pay.vue"
  89. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  90. export default{
  91. components:{buyPay},
  92. data(){
  93. return{
  94. housebg:require('@/static/images/home/cbga.png'),
  95. cleara:require('@/work/static/clear/cleara.png'),
  96. clearb:require('@/work/static/clear/clearb.png'),
  97. clearc:require('@/work/static/clear/clearc.png'),
  98. start:require('@/work/static/clear/start.png'),
  99. nstart:require('@/work/static/clear/nstart.png'),
  100. backgroundColor: "transparent",
  101. nvaHeight:44,
  102. list:[{tit:'123'}],
  103. pageSize: 10,
  104. pageNum: 1,
  105. reachflag: true,
  106. wtdt:'',
  107. autoplay:false,
  108. incolorh:'#E6E6E6',
  109. activecolorh:'#A7A7A7',
  110. indicatorDotsh: true,
  111. type:"buy",
  112. pjlist:[{tit:"非常满意"},{tit:"满意"},{tit:"一般"},{tit:"差"},{tit:"非常差"},],
  113. }
  114. },
  115. onLoad: function() {
  116. uni.getSystemInfo({
  117. success: (e) => {
  118. this.nvaHeight = Number(e.statusBarHeight)+44;
  119. }
  120. })
  121. },
  122. onPageScroll(e) {
  123. var scrollTop = Number(e.scrollTop);
  124. if (scrollTop > 0) {
  125. this.backgroundColor = '#ffffff'
  126. } else {
  127. this.backgroundColor = 'transparent'
  128. }
  129. },
  130. methods:{
  131. checkPermi, checkRole,
  132. getBuyFn(){
  133. this.type='buy'
  134. // this.$tab.navigateTo("/work/pages/clean/order")
  135. },
  136. getAddressFn(){
  137. this.$tab.navigateTo("/my/pages/house/address")
  138. },
  139. getClose(){
  140. this.type=''
  141. },
  142. getBackFn(){
  143. uni.navigateBack({
  144. delta:1
  145. })
  146. },
  147. getDataFn(){
  148. return
  149. var params={
  150. pageSize:this.pageSize,
  151. pageNum: this.pageNum,
  152. }
  153. params.noticeType=this.tabidx
  154. getNoticeList(params).then(res=>{
  155. if(res.code==200){
  156. }else{
  157. this.$toast(res.msg)
  158. }
  159. })
  160. },
  161. }
  162. }
  163. </script>
  164. <style lang="scss" scoped>
  165. .navbox{position: fixed;left: 0;right: 0;top: 0;z-index: 4; }
  166. .swiper{height: 504rpx;image{width: 100%;height: 100%;}}
  167. .wymain{background: #FFFFFF;border-radius: 20rpx 20rpx 0 0;margin-top: -26rpx;z-index: 1;position: relative;padding-top: 40rpx;
  168. .detop{
  169. .tit{font-weight: bold;font-size: 40rpx;color: #161616;margin-right: 30rpx;word-break: break-all;}
  170. .tbtn{background: #FF9E00;height: 46rpx;font-weight: 500;
  171. font-size:24rpx;padding: 0 12rpx;flex: 0 0 auto;color: #FFFFFF;border-radius: 10rpx;line-height: 46rpx;}
  172. }
  173. .detopa{
  174. .tit{font-size: 32rpx;color: #161616;font-weight: bold;flex: 1;}
  175. .txt{font-weight: 500;margin-left: 30rpx;flex: 0 0 auto;font-size: 24rpx;color: #808080;line-height: 42rpx;}
  176. }
  177. .detip{font-weight: 500;font-size: 22rpx;color: #808080;}
  178. .detbtns{
  179. display: flex;flex-wrap: wrap;
  180. view{font-weight: 500;font-size: 24rpx;color: #45CB99;border-radius: 10rpx;height: 44rpx;padding: 4rpx 12rpx;margin-right: 26rpx;border: 2rpx solid #45CB99;margin-bottom: 10rpx;}
  181. }
  182. .detlists{padding: 0 30rpx;
  183. .dlist{display: flex;flex-direction: column;align-items: center;justify-content: center;width: 33.3%;margin-bottom: 20rpx;
  184. .img{width: 52rpx;height: 52rpx;display: flex;align-items: center;justify-content: center;margin-bottom: 20rpx;
  185. .imga{width: 52rpx;height: 48rpx;}
  186. .imgb{width: 44rpx;height: 52rpx;}
  187. }
  188. view{font-weight: 500;font-size: 24rpx;color: #666666;}
  189. }
  190. }
  191. // 评价
  192. .evaluate{border-top: 2rpx solid #E5E5E5;padding:36rpx 18rpx 0;
  193. .tit{font-weight: bold;font-size: 30rpx;color: #272727;padding-left: 14rpx;}
  194. // 评价列表
  195. .evalist{padding: 30rpx 16rpx 32rpx 14rpx;border-bottom: 2rpx solid #E5E5E5;display: flex;margin-bottom: 10rpx;
  196. .limg{
  197. width: 78rpx;height: 78rpx;margin-right: 10rpx;flex: 0 0 auto;border-radius: 50%;
  198. }
  199. .evaimgs{margin-left: 12rpx;margin-top:22rpx;
  200. image{width: 20rpx;height: 20rpx;margin-left: 4rpx;}
  201. view{margin-left: 14rpx;font-weight: 500;font-size: 20rpx;color: #AAAAAA;min-width: 90rpx;}
  202. }
  203. .evalr{display: flex;align-items: flex-start;
  204. .evatit{font-size: 28rpx;font-weight: bold;color: #272727;margin-bottom: 6rpx;margin-top: 8rpx;word-break: break-all;}
  205. .evatime{font-weight: 500;font-size: 24rpx;color: #AAAAAA;}
  206. }
  207. .evatxt{font-weight: 500;font-size: 26rpx;color: #272727;line-height: 36rpx;}
  208. }
  209. }
  210. }
  211. </style>