You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1600 lines
41 KiB

3 months ago
  1. <template>
  2. <view class="home-content">
  3. <view class="banner">
  4. <uni-swiper-dot class="uni-swiper-dot-box" field="content">
  5. <swiper class="swiper" indicator-dots indicator-color="rgba(255, 255, 255, 0.50)"
  6. indicator-active-color="#ffffff" autoplay interval="5000">
  7. <swiper-item v-for="(item,i) in bannerList" :key="i">
  8. <img :src="item&&item.dictValue" style="width: 100%;" mode="widthFix" />
  9. </swiper-item>
  10. <!-- <swiper-item>
  11. <img src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/banner/banner/banner2_3x.png"
  12. style="width: 100%;" mode="widthFix" />
  13. </swiper-item> -->
  14. </swiper>
  15. </uni-swiper-dot>
  16. </view>
  17. <view style="margin: -250px 20rpx 0 20rpx;">
  18. <image style="width: 710rpx; height: 176rpx;" slot='cover'
  19. src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/TopDetail.png" />
  20. </view>
  21. <view class="card-container">
  22. <uni-card :is-shadow="false" padding="40rpx 20rpx 40rpx 20rpx" margin="20rpx">
  23. <view class="normal-bolb-text">
  24. <view @click="getLocationInfo"
  25. style="display: flex; align-items: center; justify-content: space-between;">
  26. <text v-if="isCheckLocation"
  27. style="color: #333333 ;font-size: 32rpx;font-weight: 600; font-style: normal; width: 450rpx; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">{{locationName}}</text>
  28. <text v-else
  29. style="color: #C4C4C4 ;font-size: 32rpx;font-weight: 500; font-style: normal;">请选择宠物上门服务地址</text>
  30. <uni-icons type="location-filled" size="20" color="#FFB13F"></uni-icons>
  31. </view>
  32. </view>
  33. <view class="line" style="background-color: #EFEFEF;"></view>
  34. <view class="content-container">
  35. <view class="example-body hideOnPc">
  36. <view class="normal-bolb-text">
  37. <view @click="toggleCalendar('bottom')">
  38. <view v-if="isCheckTime"
  39. style="display: flex; align-items: center; justify-content: space-between;">
  40. <text
  41. style="color: #333333 ;font-size: 32rpx;font-weight: 600; font-style: normal; width: 450rpx; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">{{selectedDateShowText}}</text>
  42. <text
  43. style="color: #333333 ;font-size: 32rpx;font-weight: 600; font-style: normal;">共选择
  44. <text style="color: #FFB13F;">{{selectedDate.length}}</text>
  45. </text>
  46. </view>
  47. <view v-else
  48. style="display: flex; align-items: center; justify-content: space-between;">
  49. <text
  50. style="color: #C4C4C4 ;font-size: 32rpx;font-weight: 500; font-style: normal;">请选择宠物上门服务时间</text>
  51. <uni-icons type="right" size="20" color="#FFB13F"></uni-icons>
  52. </view>
  53. </view>
  54. </view>
  55. </view>
  56. <view>
  57. <uni-popup ref="popup" background-color="#fff" @change="changePopup">
  58. <view class="popupBottom">
  59. <uni-calendar ref="calendar" class="uni-calendar--hook" :selected="selectedDate"
  60. :startDate="startDate" :endDate="endDate" :showMonth="false"
  61. @change="changeCalendar" @confirm="changeCalendar" @close="close" />
  62. <view style="display: flex; justify-content: center; align-items: center;">
  63. <!-- <button class="bottom-btn" @click="closePopup">确定</button> -->
  64. <image @click="closePopup" style="width: 670rpx; height: 80rpx;" slot='cover' src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/yesButton.png" />
  65. </view>
  66. </view>
  67. </uni-popup>
  68. </view>
  69. </view>
  70. <view class="line" style="background-color: #EFEFEF;"></view>
  71. <view>
  72. <view style="display: flex;">
  73. <view @click="getOrder(true)" style="margin-right: 20rpx;">
  74. <image style="width: 304rpx; height: 100rpx;" slot='cover'
  75. src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/OrderByCompanion.png">
  76. </view>
  77. <view @click="getOrder(false)">
  78. <image style="width: 304rpx; height: 100rpx;"
  79. src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/OrderBySystem.png">
  80. </view>
  81. </view>
  82. </view>
  83. </uni-card>
  84. </view>
  85. <view class="coupon-list">
  86. <uni-card :is-shadow="false" padding=0 margin="10px">
  87. <view class="coupon-title" slot="title">
  88. <view class="coupon-title-left">
  89. <view class="coupon-flag"></view>
  90. <view>领券中心</view>
  91. </view>
  92. <view class="coupon-title-right">
  93. <view @click="getAllCoupon">
  94. 更多 <uni-icons type="right" size="14px" color="#AAAAAA"></uni-icons>
  95. </view>
  96. </view>
  97. </view>
  98. <view class="split-line"></view>
  99. <view class="coupon-content">
  100. <view v-for="(item,index) in couponData" style="padding:20rpx;" :key="index">
  101. <view style="border: 1px solid #FFBF60; border-radius: 8px;">
  102. <view class="card">
  103. <view class="card-left">{{switchType(item.stockType)}}</view>
  104. <view class="card-center">
  105. <view class="card-center-top"></view>
  106. <view class="card-center-bottom"></view>
  107. </view>
  108. <view class="card-right">
  109. <view class="card-content">
  110. <view class="card-info">{{item.stockName}}</view>
  111. <view class="card-type">可用于
  112. <text class="card-type-text">专业喂养</text>
  113. <text class="card-type-text">专业遛狗</text>
  114. </view>
  115. <view class="card-time">有效期至: {{item.availableEndTime.slice(0, 16)}}</view>
  116. </view>
  117. <view>
  118. <!-- <u-button @click="receiveCoupon(item.id)" shape="circle" size="mini"
  119. color="#ffaa48" text="立即领取"></u-button> -->
  120. <view style="width: 132rpx;height: 52rpx;background-color: #FFAA48; display: flex;align-items: center;justify-content: center;border-radius: 56rpx;">
  121. <text style="font-size: 24rpx; font-weight: 500; color: #FFFFFF;">立即领取</text>
  122. </view>
  123. </view>
  124. </view>
  125. </view>
  126. <view class="card-bottom">
  127. <view class="card-bottom-text">
  128. 优惠券不可兑换现金
  129. </view>
  130. <view class="card-bottom-text">
  131. 查看详细规则>
  132. </view>
  133. </view>
  134. </view>
  135. </view>
  136. </view>
  137. </uni-card>
  138. </view>
  139. <view class="companion-list">
  140. <uni-card :is-shadow="false" padding=0 margin="10px">
  141. <view class="companion-title" slot="title">
  142. <view class="companion-title-left">
  143. <view class="companion-flag"></view>
  144. <view>周边伴宠师</view>
  145. </view>
  146. <view class="companion-title-right" @click="getAllCompanion">
  147. <view>
  148. 更多 <uni-icons type="right" size="14px" color="#AAA"></uni-icons>
  149. </view>
  150. </view>
  151. </view>
  152. <view class="split-line"></view>
  153. <view class="companion-content">
  154. <view class="companion-item">
  155. <view class="companion-info">
  156. <image class="companion-img" slot='cover'
  157. :src="defaultCompanion&&defaultCompanion.staffImages&&defaultCompanion.staffImages.length>0?defaultCompanion.staffImages[0].url:defaultStaffIamge">
  158. </image>
  159. <view class="companion-info-1">
  160. <view class="companion-info-2">
  161. <view class="companion-info-title">
  162. <view class="companion-name">
  163. {{defaultCompanion.name}}
  164. </view>
  165. <view class="companion-sex">
  166. <img :src="defaultCompanion.gender=='1'?'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/personal/pet/sex_m.png':
  167. 'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/personal/pet/sex_f.png'" alt="sex"
  168. style="width: 40rpx;height: 40rpx;" />
  169. </view>
  170. </view>
  171. <view class="companion-info-star">
  172. <text style="color: #FFB13F;">客户点赞数{{defaultCompanion.star}}</text>
  173. <uni-icons type="hand-up-filled" size="18" color="#FFB13F"></uni-icons>
  174. </view>
  175. </view>
  176. <view class="companion-info-3" style="width: 100%;">
  177. <view class="ellipsis">
  178. 距离{{defaultCompanion.distance}}km
  179. </view>
  180. </view>
  181. <view class="companion-info-4" style="width: 100%;">
  182. <view class="ellipsis" style="max-width: 450rpx;">
  183. 简介{{defaultCompanion.shortDescription}}
  184. </view>
  185. </view>
  186. </view>
  187. </view>
  188. </view>
  189. <view>
  190. <view class="companion-item-bottom">
  191. <text class="companion-item-bottom-text">养宠{{defaultCompanion.year}} | 评价{{defaultCompanion.record}} | 服务小结{{defaultCompanion.serviceNum}}</text>
  192. </view>
  193. </view>
  194. </view>
  195. </uni-card>
  196. </view>
  197. <view class="history-record">
  198. <uni-card :is-shadow="false" padding=0 margin="10px">
  199. <view class="history-record-title" slot="title">
  200. <view class="history-record-title-left">
  201. <view class="history-record-flag"></view>
  202. <view>历史记录</view>
  203. </view>
  204. <view class="history-record-title-right">
  205. <view @click="getAllRecord">
  206. 查看服务记录和评价详情 <uni-icons type="right" size="14px" color="#AAAAAA"></uni-icons>
  207. </view>
  208. </view>
  209. </view>
  210. <view class="split-line"></view>
  211. <view class="history-record-content">
  212. <view class="history-record-content-image">
  213. <view class="history-record-content-image-1">
  214. <view class="history-record-content-image-1-text">
  215. <view class="history-record-content-image-1-text-1">{{historyRecord.dog}}</view>
  216. <view class="history-record-content-image-1-text-2">{{historyRecord.dogTime}}</view>
  217. </view>
  218. </view>
  219. <view class="history-record-content-image-2">
  220. <view class="history-record-content-image-2-text">
  221. <view class="history-record-content-image-2-text-1">{{historyRecord.cat}}</view>
  222. <view class="history-record-content-image-2-text-2">至2{{historyRecord.catTime}}</view>
  223. </view>
  224. </view>
  225. <view class="history-record-content-image-3">
  226. <view class="history-record-content-image-3-text">
  227. <view class="history-record-content-image-3-text-1">{{historyRecord.num}}</view>
  228. <view class="history-record-content-image-3-text-2">{{historyRecord.numTime}}</view>
  229. </view>
  230. </view>
  231. </view>
  232. <view class="history-record-content-text">
  233. <text>*数据来源于布丁猫妈狗爸平台</text>
  234. </view>
  235. </view>
  236. </uni-card>
  237. </view>
  238. <view class="service-content">
  239. <img src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/second_stage/ysbz.png"
  240. style="width: 100%;" mode="widthFix" alt="service">
  241. </view>
  242. <view class="card-container">
  243. <uni-card :is-shadow="false" padding="0px" margin="10px">
  244. <view class="title-img4"></view>
  245. <uni-row class="demo-uni-row">
  246. <uni-col :span="12" v-for="(item,index) in peopleList" :key="index">
  247. <uni-card :is-shadow="false" margin="5px" padding="0" spacing="0" :border="false"
  248. shadow="0px 0px 0px 0px rgba(0, 0, 0, 0.08)">
  249. <image class="people-img" slot='cover' style="width: 100%;"
  250. :src="item&&item.staffImages&&item.staffImages.length>0?item.staffImages[0].url:defaultStaffIamge">
  251. </image>
  252. <text class="people-year">{{item.serviceAge}}年从业经验</text>
  253. <text class="show-text-1">姓名{{item.nickName}}</text>
  254. <text class="show-text-2">简介{{item.shortDescription}}</text>
  255. </uni-card>
  256. </uni-col>
  257. </uni-row>
  258. </uni-card>
  259. </view>
  260. <view>
  261. <image style="height: 132rpx; width: 710rpx; margin: 0 20rpx 20rpx 20rpx;"
  262. slot='cover'
  263. src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/joinus.png">
  264. </view>
  265. <Kefu></Kefu>
  266. <view class="coupon_wrap" v-if="envVersion == 'dev'">
  267. <view class="details-subscribe">
  268. <view @click="getCoupon" class="details-btn">点击领取到卡包</view>
  269. </view>
  270. <!-- 领取弹窗 -->
  271. <view v-if="showMask" @closeMask="closeMask">
  272. <view class="mask-coupon" @click="closeMask">
  273. <view class="wx-coupon">
  274. <view class="title">
  275. 领取优惠券
  276. <i>*</i>
  277. </view>
  278. <view class="content">
  279. 优惠券列表显示
  280. </view>
  281. <!-- 小程序领券插件 -->
  282. <view class="" v-for="(item,index) in couponList" :key="index">
  283. <send-coupon @sendcoupon="getSendCoupon" @userconfirm="redirectuser" :sign="item.sign"
  284. :send_coupon_params="item.sendCouponParams"
  285. :send_coupon_merchant="item.send_coupon_merchant">
  286. <view class="text-button">{{item.wechatStock.stockName}}</view>
  287. </send-coupon>
  288. </view>
  289. </view>
  290. </view>
  291. </view>
  292. </view>
  293. </view>
  294. </template>
  295. <script>
  296. import {
  297. getStaffList,
  298. getProductList,
  299. getBannerList,
  300. getCouponList,
  301. getCouponListNoAuth,
  302. getOpenId,
  303. receiveCoupon,
  304. } from "@/api/system/user"
  305. import {
  306. getCompanionList
  307. } from "@/api/system/companion"
  308. import {
  309. setToken,
  310. getToken,
  311. getOpenIdKey,
  312. setOpenIdKey
  313. } from '@/utils/auth'
  314. import Kefu from './common/kefu.vue'
  315. import uniPopup from '@/uni_modules/uni-popup/components/uni-popup/uni-popup.vue';
  316. export default {
  317. data() {
  318. return {
  319. current: 0,
  320. swiperDotIndex: 0,
  321. defaultSkuImage: 'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/banner/%E5%96%82%E5%85%BB.png',
  322. defaultStaffIamge: 'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/banner/gold_people.png',
  323. defaultLink: '/pages/details/feed',
  324. skuData: [],
  325. peopleList: [],
  326. cover: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
  327. bannerList: [],
  328. couponList: [],
  329. showMask: false,
  330. envVersion: 'develop',
  331. selectedDate: [],
  332. startDate: '',
  333. endDate: '',
  334. isCheckTime: false,
  335. selectedDateShowText: '',
  336. isCheckLocation: false,
  337. locationName: '',
  338. locationLatitude: '',
  339. locationLongitude: '',
  340. locationAddress: '',
  341. allInfo: {
  342. isCheckLocation: false,
  343. locationName: '',
  344. locationLatitude: '',
  345. locationLongitude: '',
  346. locationAddress: '',
  347. selectedDate: [],
  348. isCheckTime: false,
  349. selectedDateShowText: '',
  350. },
  351. defaultCompanion: {
  352. name: '宠小二',
  353. gender: 0,
  354. star: 560,
  355. distance: 1.5,
  356. shortDescription: '有一只三岁蓝猫叫憨憨,热爱小宠物,心地善良,喜欢动物',
  357. staffImages: [{
  358. url: "https://catmdogf.oss-cn-shanghai.aliyuncs.com/2024/01/2634af25c5bf294f39b795ecc9d3c4eefa微信图片_20240126125100.png"
  359. }],
  360. year: 4,
  361. record: 11,
  362. serviceNum: 13,
  363. },
  364. couponData: [],
  365. historyRecord: {
  366. dog: "47131",
  367. dogTime: "2024.12.12",
  368. cat: "47131",
  369. catTime: "2024.12.12",
  370. num: "47131",
  371. numTime: "2024.12.12",
  372. },
  373. }
  374. },
  375. components: {
  376. Kefu,
  377. uniPopup,
  378. },
  379. mounted() {
  380. this.getCalendarDate();
  381. },
  382. methods: {
  383. getAllCoupon() {
  384. uni.navigateTo({
  385. url: '/pages/companionPetList/couponList'
  386. });
  387. },
  388. getAllCompanion() {
  389. if (!this.isCheckLocation) {
  390. uni.showToast({
  391. title: '请先选择地址',
  392. duration: 1500,
  393. icon: "none"
  394. })
  395. } else {
  396. uni.navigateTo({
  397. url: `/pages/companionPetList/companionPetList?info=` + encodeURIComponent(JSON
  398. .stringify(this.allInfo))
  399. });
  400. }
  401. },
  402. getAllRecord () {
  403. },
  404. toggleCalendar(type) {
  405. this.type = type
  406. uni.hideTabBar()
  407. this.$refs.popup.open(type)
  408. },
  409. closePopup() {
  410. this.$refs.popup.close()
  411. setTimeout(() => {
  412. uni.showTabBar()
  413. }, 300)
  414. },
  415. changePopup(e) {
  416. console.log('当前模式:' + e.type + ',状态:' + e.show);
  417. if (e.show) {
  418. uni.hideTabBar()
  419. } else {
  420. setTimeout(() => {
  421. uni.showTabBar()
  422. }, 300)
  423. }
  424. },
  425. close() {
  426. console.log('弹窗关闭');
  427. },
  428. confirm(e) {
  429. console.log('confirm 返回:', e)
  430. },
  431. changeCalendar(e) {
  432. console.log('change 返回:', e)
  433. this.selectedDateShowText = ''
  434. // 选中日期
  435. const selectedValue = this.selectedDate.find(item => item.date === e.fulldate)
  436. console.log('const selectedValue', selectedValue)
  437. if (selectedValue) {
  438. // 存在则移除
  439. this.selectedDate = this.selectedDate.filter(item => item.date !== e.fulldate);
  440. this.allInfo.selectedDate = this.selectedDate;
  441. } else {
  442. this.selectedDate.push({
  443. date: e.fulldate,
  444. info: 'time'
  445. })
  446. this.allInfo.selectedDate = this.selectedDate
  447. console.log('this.selectedDate', this.selectedDate)
  448. }
  449. console.log("this.selectedDate.length", this.selectedDate.length)
  450. console.log("this.selectedDate", this.selectedDate)
  451. if (this.selectedDate.length > 0) {
  452. this.isCheckTime = true
  453. this.allInfo.isCheckTime = this.isCheckTime
  454. if (this.selectedDate.length == 1) {
  455. this.selectedDateShowText = this.selectedDate[0].date + ''
  456. this.selectedDateShowText = this.selectedDateShowText.replace(/-/g, "/");
  457. this.allInfo.selectedDateShowText = this.selectedDateShowText
  458. } else if (this.selectedDate.length == 2) {
  459. this.selectedDateShowText = this.selectedDate[0].date + "," + this.selectedDate[1].date
  460. this.selectedDateShowText = this.selectedDateShowText.replace(/-/g, "/");
  461. this.allInfo.selectedDateShowText = this.selectedDateShowText
  462. } else if (this.selectedDate.length > 2) {
  463. this.selectedDateShowText = this.selectedDate[0].date + '...' + this.selectedDate[this.selectedDate
  464. .length - 1].date
  465. this.selectedDateShowText = this.selectedDateShowText.replace(/-/g, "/");
  466. this.allInfo.selectedDateShowText = this.selectedDateShowText
  467. }
  468. } else {
  469. this.isCheckTime = false
  470. this.allInfo.isCheckTime = this.isCheckTime
  471. }
  472. },
  473. getCalendarDate() {
  474. let tomorrow = new Date()
  475. tomorrow.setDate(tomorrow.getDate() + 2);
  476. this.startDate = this.formatDate(tomorrow);
  477. // 获取三个月后的日期
  478. let threeMonthsLater = new Date();
  479. threeMonthsLater.setMonth(threeMonthsLater.getMonth() + 3);
  480. this.endDate = this.formatDate(threeMonthsLater);
  481. },
  482. formatDate(date) {
  483. let year = date.getFullYear();
  484. let month = (date.getMonth() + 1).toString().padStart(2, '0');
  485. let day = date.getDate().toString().padStart(2, '0');
  486. return year + '-' + month + '-' + day;
  487. },
  488. getLocationInfo() {
  489. wx.chooseLocation({
  490. type: 'gcj02', // 坐标系,默认为 wgs84 返回 gps 原始坐标,gcj02 返回可用于 wx.openLocation 的坐标
  491. success: (res) => {
  492. // 成功回调
  493. this.isCheckLocation = true
  494. this.locationName = res.address
  495. this.locationLongitude = res.longitude
  496. this.locationLatitude = res.latitude
  497. this.locationAddress = res.address
  498. console.log('选择的位置:', res);
  499. this.allInfo.isCheckLocation = true
  500. this.allInfo.locationName = res.address
  501. this.allInfo.locationLongitude = res.longitude
  502. this.allInfo.locationLatitude = res.latitude
  503. this.allInfo.locationAddress = res.address
  504. },
  505. fail: (err) => {
  506. // 失败回调
  507. console.error('选择位置失败:', err);
  508. }
  509. });
  510. },
  511. getLocationFirst() {
  512. wx.chooseLocation({
  513. type: 'gcj02', // 坐标系,默认为 wgs84 返回 gps 原始坐标,gcj02 返回可用于 wx.openLocation 的坐标
  514. success: (res) => {
  515. // 成功回调
  516. this.isCheckLocation = true
  517. this.locationName = res.address
  518. this.locationLongitude = res.longitude
  519. this.locationLatitude = res.latitude
  520. this.locationAddress = res.address
  521. this.allInfo.isCheckLocation = true
  522. this.allInfo.locationName = res.address
  523. this.allInfo.locationLongitude = res.longitude
  524. this.allInfo.locationLatitude = res.latitude
  525. this.allInfo.locationAddress = res.address
  526. this.getCompanionList()
  527. },
  528. fail: (err) => {
  529. // 失败回调
  530. console.error('选择位置失败:', err);
  531. }
  532. });
  533. },
  534. getCompanionList() {
  535. // let data = {
  536. // longitude: this.locationLongitude,
  537. // latitude: this.locationLatitude,
  538. // petTypes: this.selectedPet,
  539. // staffName: '',
  540. // address: this.locationAddress
  541. // }
  542. let data = {
  543. address: "上海市浦东新区浦东南路150弄",
  544. latitude: 29.56471,
  545. longitude: 106.55073,
  546. petTypes: ["1", "2"],
  547. staffName: "君"
  548. }
  549. console.log('data', data);
  550. getCompanionList(data).then(response => {
  551. if (response.code == 200) {
  552. // this.companionList = response.rows
  553. this.defaultCompanion.name = response.rows[0].name
  554. this.defaultCompanion.gender = response.rows[0].gender
  555. this.defaultCompanion.star = response.rows[0].id
  556. this.defaultCompanion.distance = response.rows[0].id
  557. this.defaultCompanion.shortDescription = response.rows[0].shortDescription
  558. this.defaultCompanion.staffImages = response.rows[0].staffImages
  559. this.defaultCompanion.year = 4
  560. this.defaultCompanion.record = 11
  561. this.defaultCompanion.serviceNum = 13
  562. }
  563. console.log(response);
  564. })
  565. },
  566. getOrder(value) {
  567. if (value) {
  568. if (!this.isCheckLocation) {
  569. uni.showToast({
  570. title: '请先选择地址',
  571. duration: 1500,
  572. icon: "none"
  573. })
  574. } else {
  575. uni.navigateTo({
  576. // url: '/pages/companionPetList/companionPetList',
  577. url: `/pages/companionPetList/companionPetList?info=` + encodeURIComponent(JSON
  578. .stringify(this.allInfo))
  579. });
  580. }
  581. } else {
  582. uni.navigateTo({
  583. url: '/pages/newOrder/serviceNew2'
  584. });
  585. }
  586. },
  587. getCoupon() {
  588. getCouponList().then(res => {
  589. if (res.code == 200) {
  590. this.couponList = res.rows
  591. this.showMask = true
  592. } else {
  593. this.$modal.showToast('获取优惠券失败')
  594. }
  595. })
  596. },
  597. getCouponListAuth() {
  598. getCouponList().then(res => {
  599. if (res.code == 200) {
  600. this.couponData.push(res.data[0])
  601. console.log("this.couponData", this.couponData)
  602. } else {
  603. this.$modal.showToast('获取优惠券失败')
  604. }
  605. })
  606. },
  607. switchType(type) {
  608. if (type == 'PNORMAL') {
  609. return '满减券'
  610. }
  611. if (type == 'PDISCOUNT') {
  612. return '折扣券'
  613. }
  614. if (type == 'PTRAIL') {
  615. return '体验券'
  616. }
  617. return '优惠券'
  618. },
  619. receiveCoupon(id) {
  620. let data = {
  621. stockId: id
  622. }
  623. receiveCoupon(data).then(res => {
  624. console.log("this.receiveCoupon", res)
  625. if (res.code == 200) {
  626. this.$modal.showToast('优惠券领取成功')
  627. } else {
  628. this.$modal.showToast('领取优惠券失败')
  629. }
  630. })
  631. },
  632. getCouponListNoAuth() {
  633. console.log('进入 getCouponListNoAuth:');
  634. getCouponListNoAuth().then(res => {
  635. if (res.code == 200) {
  636. this.couponData = res.rows
  637. } else {
  638. this.$modal.showToast('获取优惠券失败')
  639. }
  640. })
  641. },
  642. closeMask() {
  643. this.showMask = false
  644. },
  645. // 点击领券获取优惠券信息
  646. getSendCoupon(res) {
  647. let that = this
  648. console.log('res', res)
  649. if (res.detail.errcode == 'OK') {
  650. console.log(222)
  651. if (res.detail.send_coupon_result[0].code == 'SUCCESS') {
  652. that.showMask = false
  653. uni.showToast({
  654. title: '领取成功',
  655. icon: 'success',
  656. duration: 2000,
  657. })
  658. } else {
  659. uni.showModal({
  660. title: '领取失败',
  661. content: res.detail.send_coupon_result[0].message,
  662. showCancel: false,
  663. success: function(res) {
  664. that.showMask = false
  665. }
  666. })
  667. }
  668. } else {
  669. uni.showToast({
  670. title: '领取失败',
  671. icon: 'none'
  672. })
  673. that.showMask = false
  674. }
  675. },
  676. // 点击确认收券按钮后回调
  677. redirectuser() {},
  678. getBanner() {
  679. getBannerList().then(res => {
  680. if (res.code == 200) {
  681. this.bannerList = res.data
  682. } else {
  683. this.$modal.showToast('获取Banner失败')
  684. }
  685. })
  686. },
  687. changeSwiper(e) {
  688. this.current = e.detail.current
  689. },
  690. getPeopleList() {
  691. getStaffList().then(response => {
  692. if (response.code == 200) {
  693. this.peopleList = response.rows
  694. }
  695. console.log(response);
  696. })
  697. },
  698. getProductList() {
  699. getProductList({
  700. "publishStatus": 1,
  701. "categoryId": 76
  702. }).then(response => {
  703. if (response && response.content && response.content.length > 0) {
  704. this.skuData = response.content;
  705. }
  706. console.log(response);
  707. })
  708. },
  709. goDetails(item) {
  710. if (item) {
  711. // uni.navigateTo({
  712. // url: `/pages/details/successful`
  713. // });
  714. uni.navigateTo({
  715. url: `/pages/details/detail?id=${item.id}`
  716. });
  717. } else {
  718. this.$modal.showToast('数据有误,请联系管理员')
  719. }
  720. },
  721. init() {
  722. this.$globalData.itemPrice = []
  723. this.$globalData.submitData = {
  724. "phone": "",
  725. "wechatId": "",
  726. "note": "",
  727. "totalPrice": "",
  728. "address": {
  729. "province": "",
  730. "city": "",
  731. "district": "",
  732. "detailAddress": ""
  733. },
  734. "skuList": [],
  735. "service": {
  736. "serviceFrequency": "once_a_day",
  737. "serviceDate": [],
  738. "serviceTimeFirst": "",
  739. "serviceTimeSecond": "",
  740. "pet": []
  741. }
  742. }
  743. },
  744. login() {
  745. uni.login({
  746. provider: 'weixin',
  747. success: (loginRes) => {
  748. console.log("login", loginRes)
  749. this.getOpenId(loginRes.code)
  750. },
  751. fail: function(error) {
  752. // 授权失败处理
  753. uni.showToast('授权失败,请授权后再试')
  754. }
  755. });
  756. },
  757. getOpenId(code) {
  758. getOpenId(code).then(res => {
  759. if (res.code == 200 && res.data) {
  760. let resData = JSON.parse(res.data)
  761. let token = resData.token;
  762. let openId = resData.openId;
  763. setOpenIdKey(openId)
  764. if (token) {
  765. setToken(token)
  766. }
  767. }
  768. })
  769. },
  770. },
  771. onLoad: function() {
  772. this.init()
  773. this.getPeopleList()
  774. this.getProductList()
  775. this.getBanner()
  776. // this.getCouponListNoAuth()
  777. const accountInfo = wx.getAccountInfoSync();
  778. this.envVersion = accountInfo.miniProgram.envVersion;
  779. if (!getToken() || !getOpenIdKey()) {
  780. this.login()
  781. } else {
  782. // this.getLocationFirst()
  783. this.getCouponListAuth()
  784. }
  785. }
  786. }
  787. </script>
  788. <style lang="scss">
  789. page {
  790. background-color: #F5F5F7 !important;
  791. }
  792. .home-content {
  793. position: relative;
  794. // background: linear-gradient(360deg, #F5F5F7 0%, #FFBF60 99%);
  795. .swiper {
  796. height: calc(100vw * 1098/1125);
  797. // background-image: linear-gradient(180deg, #FFBF60 0%, #FFBF60 90%, #ffffff 99.41%);
  798. }
  799. .banner {
  800. height: calc(100vw * 1098/1125 + 250px);
  801. background-image: linear-gradient(180deg, #FFBF60 0%, #FFBF60 90%, #F5F5F7 99.41%);
  802. }
  803. .uni-card {
  804. border-radius: 16rpx;
  805. }
  806. .float-button {
  807. position: fixed;
  808. bottom: 150px;
  809. /* 距离底部的距离 */
  810. right: 10px;
  811. /* 距离右侧的距离 */
  812. width: 50px;
  813. /* 按钮的宽度 */
  814. height: 50px;
  815. /* 按钮的高度 */
  816. /* 其他样式 */
  817. .kf-btn {
  818. background-color: rgba(255, 255, 255, 1);
  819. height: 52px;
  820. width: 52px;
  821. border-radius: 50%;
  822. display: flex;
  823. align-items: center;
  824. }
  825. }
  826. .coupon-list {
  827. width: 100%;
  828. .coupon-title {
  829. display: flex;
  830. line-height: 33rpx;
  831. margin: 42rpx 0 30rpx;
  832. justify-content: space-between;
  833. .coupon-title-left {
  834. display: flex;
  835. align-items: center;
  836. font-weight: 900;
  837. font-size: 30rpx;
  838. color: #333333;
  839. .coupon-flag {
  840. width: 8rpx;
  841. height: 33rpx;
  842. background: #FFBF60;
  843. border-radius: 30rpx 30rpx 30rpx 30rpx;
  844. margin-right: 10rpx;
  845. }
  846. }
  847. .coupon-title-right {
  848. color: #7D8196;
  849. font-size: 24rpx;
  850. font-style: normal;
  851. font-weight: 500;
  852. line-height: 28rpx;
  853. }
  854. }
  855. .split-line {
  856. width: 100%;
  857. height: 1rpx;
  858. background: #EFEFEF;
  859. }
  860. .coupon-content {
  861. .card {
  862. display: flex;
  863. align-items: center;
  864. width: 100%;
  865. padding: 10px 0;
  866. // background: #fff;
  867. // background: #f6f5f8;
  868. // border: 1px solid #FFBF60;
  869. border-radius: 8px 8px 0 0;
  870. // -webkit-mask-image: radial-gradient(circle at 88px 4px, transparent 4px, #d8d8d8 4.5px), radial-gradient(closest-side circle at 50%, #d8d8d8 99%, transparent 100%);
  871. // -webkit-mask-size: 100%, 2px 4px;
  872. // -webkit-mask-repeat: repeat, repeat-y;
  873. // -webkit-mask-position: 0 -4px, 87px;
  874. // -webkit-mask-composite: source-out;
  875. // mask-composite: subtract;
  876. // background: linear-gradient(45deg, orange, red);
  877. }
  878. .card-bottom {
  879. display: flex;
  880. background-color: #FFF1E0;
  881. height: 50rpx;
  882. align-items: center;
  883. justify-content: space-between;
  884. padding: 0 20rpx 0 20rpx;
  885. border-radius: 0 0 8px 8px;
  886. .card-bottom-text {
  887. color: #AAAAAA;
  888. font-size: 24rpx;
  889. font-weight: 400;
  890. }
  891. }
  892. .card-left {
  893. width: 88px;
  894. text-align: center;
  895. color: #FF530A;
  896. font-size: 28rpx;
  897. font-weight: 900;
  898. }
  899. .card-center {
  900. display: flex;
  901. flex-direction: column;
  902. // align-items: center;
  903. .card-center-top {
  904. width: 40rpx;
  905. height: 20rpx;
  906. border-radius: 0 0 20rpx 20rpx;
  907. background-color: #fff;
  908. line-height: 20rpx;
  909. border-bottom: 1px solid #FDA714;
  910. border-left: 1px solid #FDA714;
  911. border-right: 1px solid #FDA714;
  912. margin-top: -22rpx;
  913. margin-bottom: 20rpx;
  914. margin-left: -19rpx;
  915. }
  916. .card-center-bottom {
  917. border-right: 1px dashed #AAAAAA;
  918. width: 1px;
  919. height: 120rpx;
  920. }
  921. }
  922. .card-right {
  923. padding: 0 16rpx 0 0;
  924. display: flex;
  925. flex: 1;
  926. /* flex-direction: column; */
  927. justify-content: space-between;
  928. align-items: center;
  929. height: 60px;
  930. .card-content {
  931. width: 77%;
  932. }
  933. .card-icon {
  934. position: relative;
  935. right: -10px;
  936. top: -10px;
  937. }
  938. }
  939. .card-info {
  940. margin: 0;
  941. font-size: 28rpx;
  942. line-height: 28rpx;
  943. color: #333333;
  944. font-weight: 500;
  945. }
  946. .card-type {
  947. font-size: 24rpx;
  948. font-weight: 400;
  949. line-height: 24rpx;
  950. font-weight: 400;
  951. color: #AAAAAA;
  952. margin-top: 10rpx;
  953. .card-type-text {
  954. color: #FFAA48;
  955. font-size: 24rpx;
  956. font-weight: 400;
  957. line-height: 24rpx;
  958. border: #FFAA48 1px solid;
  959. border-radius: 7rpx;
  960. margin-left: 8rpx;
  961. }
  962. }
  963. .card-time {
  964. font-size: 24rpx;
  965. font-weight: 400;
  966. line-height: 24rpx;
  967. font-weight: 400;
  968. color: #AAAAAA;
  969. margin-top: 10rpx;
  970. }
  971. }
  972. }
  973. .companion-list {
  974. width: 100%;
  975. .companion-title {
  976. display: flex;
  977. line-height: 33rpx;
  978. margin: 42rpx 0 30rpx;
  979. justify-content: space-between;
  980. .companion-title-left {
  981. display: flex;
  982. align-items: center;
  983. font-weight: 900;
  984. font-size: 30rpx;
  985. color: #333333;
  986. .companion-flag {
  987. width: 8rpx;
  988. height: 33rpx;
  989. background: #FFBF60;
  990. border-radius: 30rpx 30rpx 30rpx 30rpx;
  991. margin-right: 10rpx;
  992. }
  993. }
  994. .companion-title-right {
  995. color: #7D8196;
  996. font-size: 24rpx;
  997. font-style: normal;
  998. font-weight: 500;
  999. line-height: 28rpx;
  1000. }
  1001. }
  1002. .split-line {
  1003. width: 100%;
  1004. height: 1rpx;
  1005. background: #EFEFEF;
  1006. }
  1007. .companion-content {
  1008. .companion-item {
  1009. padding: 10px 0px 0px 0;
  1010. .companion-info {
  1011. display: flex;
  1012. align-items: center;
  1013. justify-content: flex-start;
  1014. .companion-img {
  1015. width: 168rpx;
  1016. height: 168rpx;
  1017. border: #FEA714 5rpx solid;
  1018. border-radius: 20rpx;
  1019. }
  1020. .companion-info-1 {
  1021. margin-left: 10px;
  1022. width: 80%;
  1023. .companion-info-2 {
  1024. display: flex;
  1025. flex-wrap: wrap;
  1026. .companion-info-title {
  1027. display: flex;
  1028. flex-wrap: wrap;
  1029. width: 60%;
  1030. }
  1031. .companion-name {
  1032. color: #333;
  1033. font-size: 32rpx;
  1034. // line-height: 32rpx;
  1035. margin-right: 10rpx;
  1036. font-weight: 900;
  1037. font-style: normal;
  1038. }
  1039. .companion-info-star {
  1040. color: #FFAA48;
  1041. font-size: 24rpx;
  1042. font-weight: 400;
  1043. line-height: 28rpx;
  1044. display: flex;
  1045. align-items: center;
  1046. }
  1047. }
  1048. .companion-info-3 {
  1049. display: flex;
  1050. align-items: baseline;
  1051. font-size: 28rpx;
  1052. line-height: 32rpx;
  1053. margin-top: 5px;
  1054. color: #FFAA48;
  1055. font-weight: 900;
  1056. }
  1057. .companion-info-4 {
  1058. display: flex;
  1059. align-items: baseline;
  1060. font-size: 24rpx;
  1061. margin-top: 10px;
  1062. color: #7D8196;
  1063. font-weight: 400;
  1064. line-height: 32rpx;
  1065. }
  1066. }
  1067. }
  1068. }
  1069. .companion-item-bottom {
  1070. height: 60rpx;
  1071. background-color: #FFF4E5;
  1072. margin: 20rpx 0 20rpx 0;
  1073. display: flex;
  1074. align-items: center;
  1075. justify-content: center;
  1076. border-radius: 8rpx;
  1077. .companion-item-bottom-text {
  1078. color: #A94F20;
  1079. margin: 14rpx;
  1080. font-size: 24rpx;
  1081. font-weight: 400;
  1082. }
  1083. }
  1084. }
  1085. }
  1086. .history-record {
  1087. width: 100%;
  1088. .history-record-title {
  1089. display: flex;
  1090. line-height: 33rpx;
  1091. margin: 42rpx 0 30rpx;
  1092. justify-content: space-between;
  1093. .history-record-title-left {
  1094. display: flex;
  1095. align-items: center;
  1096. font-weight: 900;
  1097. font-size: 30rpx;
  1098. color: #333333;
  1099. .history-record-flag {
  1100. width: 8rpx;
  1101. height: 33rpx;
  1102. background: #FFBF60;
  1103. border-radius: 30rpx 30rpx 30rpx 30rpx;
  1104. margin-right: 10rpx;
  1105. }
  1106. }
  1107. .history-record-title-right {
  1108. color: #7D8196;
  1109. font-size: 24rpx;
  1110. font-style: normal;
  1111. font-weight: 500;
  1112. line-height: 28rpx;
  1113. }
  1114. }
  1115. .split-line {
  1116. width: 100%;
  1117. height: 1rpx;
  1118. background: #EFEFEF;
  1119. }
  1120. .history-record-content {
  1121. padding: 20rpx 0 20rpx 0;
  1122. .history-record-content-image {
  1123. display: flex;
  1124. flex-wrap: nowrap;
  1125. margin-bottom: 10rpx;
  1126. .history-record-content-image-1 {
  1127. background-image: url("https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/catNum.png");
  1128. background-size: cover;
  1129. width: 208rpx;
  1130. height: 260rpx;
  1131. margin-right: 20rpx;
  1132. .history-record-content-image-1-text {
  1133. .history-record-content-image-1-text-1 {
  1134. width: 100%;
  1135. display: flex;
  1136. justify-content: center;
  1137. height: 156rpx;
  1138. align-items: flex-end;
  1139. color: #FF8D00;
  1140. font-size: 32rpx;
  1141. font-weight: 900;
  1142. }
  1143. .history-record-content-image-1-text-2 {
  1144. width: 100%;
  1145. display: flex;
  1146. justify-content: center;
  1147. height: 90rpx;
  1148. align-items: flex-end;
  1149. color: #AAAAAA;
  1150. font-size: 24rpx;
  1151. font-weight: 400;
  1152. }
  1153. }
  1154. }
  1155. .history-record-content-image-2 {
  1156. background-image: url("https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/dogNum.png");
  1157. background-size: cover;
  1158. width: 208rpx;
  1159. height: 260rpx;
  1160. margin-right: 20rpx;
  1161. .history-record-content-image-2-text {
  1162. .history-record-content-image-2-text-1 {
  1163. width: 100%;
  1164. display: flex;
  1165. justify-content: center;
  1166. height: 156rpx;
  1167. align-items: flex-end;
  1168. color: #FF8D00;
  1169. font-size: 32rpx;
  1170. font-weight: 900;
  1171. }
  1172. .history-record-content-image-2-text-2 {
  1173. width: 100%;
  1174. display: flex;
  1175. justify-content: center;
  1176. height: 90rpx;
  1177. align-items: flex-end;
  1178. color: #AAAAAA;
  1179. font-size: 24rpx;
  1180. font-weight: 400;
  1181. }
  1182. }
  1183. }
  1184. .history-record-content-image-3 {
  1185. background-image: url("https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/goodNum.png");
  1186. background-size: cover;
  1187. width: 208rpx;
  1188. height: 260rpx;
  1189. .history-record-content-image-3-text {
  1190. .history-record-content-image-3-text-1 {
  1191. width: 100%;
  1192. display: flex;
  1193. justify-content: center;
  1194. height: 156rpx;
  1195. align-items: flex-end;
  1196. color: #FF8D00;
  1197. font-size: 32rpx;
  1198. font-weight: 900;
  1199. }
  1200. .history-record-content-image-3-text-2 {
  1201. width: 100%;
  1202. display: flex;
  1203. justify-content: center;
  1204. height: 90rpx;
  1205. align-items: flex-end;
  1206. color: #AAAAAA;
  1207. font-size: 24rpx;
  1208. font-weight: 400;
  1209. }
  1210. }
  1211. }
  1212. }
  1213. .history-record-content-text {
  1214. font-size: 24rpx;
  1215. font-weight: 400;
  1216. color: #A94F20;
  1217. }
  1218. }
  1219. }
  1220. }
  1221. /* #ifndef APP-NVUE */
  1222. page {
  1223. display: flex;
  1224. flex-direction: column;
  1225. box-sizing: border-box;
  1226. background-color: #fff;
  1227. min-height: 100%;
  1228. height: auto;
  1229. }
  1230. /* #endif */
  1231. .text {
  1232. text-align: center;
  1233. font-size: 26rpx;
  1234. margin-top: 10rpx;
  1235. }
  1236. .popupBottom {
  1237. height: 950rpx;
  1238. overflow: hidden;
  1239. position: fixed;
  1240. bottom: 0;
  1241. left: 0;
  1242. right: 0;
  1243. padding: 10rpx 20rpx;
  1244. border-radius: 20rpx 20rpx 0 0;
  1245. background-color: #fff;
  1246. .bottom-btn {
  1247. width: 100%;
  1248. border-radius: 120rpx;
  1249. background: #FFB13F;
  1250. font-size: 32rpx;
  1251. color: #FFFFFF;
  1252. }
  1253. }
  1254. .line {
  1255. height: 1px;
  1256. width: 100%;
  1257. margin: 16px 0;
  1258. }
  1259. .swiper-item {
  1260. /* #ifndef APP-NVUE */
  1261. display: flex;
  1262. /* #endif */
  1263. flex-direction: column;
  1264. justify-content: center;
  1265. align-items: center;
  1266. color: #fff;
  1267. height: 500rpx;
  1268. line-height: 300rpx;
  1269. }
  1270. .card-container {
  1271. margin: 0;
  1272. padding: 0;
  1273. }
  1274. .title-img1 {
  1275. height: 30px;
  1276. width: 104px;
  1277. background-repeat: no-repeat;
  1278. background-position: left;
  1279. background-size: 104px 30px;
  1280. background-image: url('/static/images/pages/cwfw.png');
  1281. }
  1282. .service-content-img {
  1283. // height: 208px;
  1284. padding: 5px;
  1285. margin-top: 5px;
  1286. border-radius: 8px;
  1287. }
  1288. #myVideo {
  1289. width: 100%;
  1290. border-radius: 5px;
  1291. }
  1292. .service-content {
  1293. width: 100%;
  1294. padding: 0 10px;
  1295. }
  1296. .title-img4 {
  1297. height: 30px;
  1298. width: 202px;
  1299. background-repeat: no-repeat;
  1300. background-position: center;
  1301. background-size: 202px 30px;
  1302. background-image: url('/static/images/pages/jppcs.png');
  1303. margin: 10px 0;
  1304. }
  1305. .demo-uni-row {
  1306. margin: 0;
  1307. padding: 0;
  1308. }
  1309. .people-img {
  1310. width: 190px;
  1311. height: 163px;
  1312. border: #FFBF60 1px solid;
  1313. border-radius: 5px;
  1314. }
  1315. .people-year {
  1316. display: flex;
  1317. width: 68px;
  1318. padding: 1px 4px;
  1319. justify-content: space-between;
  1320. align-items: center;
  1321. border-radius: 0px 10px 10px 0px;
  1322. background: linear-gradient(90deg, #FDA714 0%, #FD8B04 99.41%);
  1323. color: #FFF;
  1324. font-family: PingFang SC;
  1325. font-size: 10px;
  1326. font-style: normal;
  1327. line-height: 14px;
  1328. /* 140% */
  1329. position: absolute;
  1330. top: 15px;
  1331. left: 0;
  1332. }
  1333. .service-people {
  1334. display: flex;
  1335. }
  1336. .service-people-text {
  1337. display: flex;
  1338. align-items: center;
  1339. line-height: 24px;
  1340. }
  1341. .service-people-text::before {
  1342. content: "";
  1343. background-color: black;
  1344. border-radius: 50%;
  1345. display: inline-block;
  1346. height: 5px;
  1347. width: 5px;
  1348. margin-right: 5px;
  1349. }
  1350. .show-text-1 {
  1351. display: block;
  1352. color: var(--Color-, #222229);
  1353. font-family: PingFang SC;
  1354. font-size: 14px;
  1355. font-style: normal;
  1356. font-weight: 600;
  1357. line-height: 24px;
  1358. }
  1359. .show-text-2 {
  1360. display: block;
  1361. color: var(--Color-, #222229);
  1362. font-family: PingFang SC;
  1363. font-size: 12px;
  1364. font-style: normal;
  1365. line-height: 18px;
  1366. }
  1367. .image-wrapper {
  1368. position: relative;
  1369. }
  1370. .text-wrapper {
  1371. position: absolute;
  1372. bottom: 83px;
  1373. /* 根据需要调整文字距离图片底部的距离 */
  1374. left: 10px;
  1375. /* 根据需要调整文字距离图片左边的距离 */
  1376. color: #fff;
  1377. /* 根据需要调整文字颜色 */
  1378. font-size: 10px;
  1379. font-weight: blod;
  1380. font-family: PingFang SC;
  1381. }
  1382. .coupone_wrap {
  1383. margin-top: 200px;
  1384. }
  1385. .details-subscribe {
  1386. background-color: #FFFFFF;
  1387. padding: 10px;
  1388. width: 100%;
  1389. height: 58px;
  1390. position: fixed;
  1391. bottom: 0;
  1392. z-index: 100;
  1393. .details-btn {
  1394. width: 100%;
  1395. border-radius: 6px;
  1396. background: #FFB13F;
  1397. font-size: 16px;
  1398. color: #FFFFFF;
  1399. }
  1400. }
  1401. .text-button {
  1402. height: 100rpx;
  1403. border-radius: 0px 0px 6rpx 0;
  1404. background: rgba(255, 208, 0, 1);
  1405. font-weight: 500;
  1406. font-size: 36rpx;
  1407. display: flex;
  1408. align-items: center;
  1409. justify-content: center;
  1410. }
  1411. .couponItem {
  1412. width: 100%;
  1413. padding: 0 30rpx;
  1414. margin-top: 24rpx;
  1415. -webkit-overflow-scrolling: touch;
  1416. }
  1417. .couponItem:last-child {
  1418. margin-bottom: 24rpx;
  1419. }
  1420. .mask-coupon {
  1421. background: rgba(0, 0, 0, .5);
  1422. width: 100vw;
  1423. height: 100vh;
  1424. position: fixed;
  1425. left: 0;
  1426. top: 0;
  1427. padding-bottom: 120rpx;
  1428. .wx-coupon {
  1429. background: #F2F2F2;
  1430. min-height: 300px;
  1431. position: fixed;
  1432. bottom: 0;
  1433. left: 0;
  1434. width: 100%;
  1435. }
  1436. .title {
  1437. font-size: 24px;
  1438. display: flex;
  1439. align-items: center;
  1440. justify-content: center;
  1441. padding: 20rpx 0 10rpx;
  1442. }
  1443. .content {
  1444. height: 80%;
  1445. overflow-y: auto;
  1446. }
  1447. .text-button {
  1448. height: 100rpx;
  1449. border-radius: 0px 0px 6rpx 0;
  1450. background: rgba(255, 208, 0, 1);
  1451. font-weight: 500;
  1452. font-size: 36rpx;
  1453. display: flex;
  1454. align-items: center;
  1455. justify-content: center;
  1456. }
  1457. }
  1458. @media screen and (min-width: 500px) {
  1459. .uni-swiper-dot-box {
  1460. width: 400px;
  1461. /* #ifndef APP-NVUE */
  1462. margin: 0 auto;
  1463. /* #endif */
  1464. margin-top: 8px;
  1465. }
  1466. .image {
  1467. width: 100%;
  1468. }
  1469. }
  1470. </style>