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.

1644 lines
42 KiB

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