|
|
- <template>
- <view class="home-content">
-
- <NewUserCoupon v-if="isNewUser" @close="closeNewUserPopup" @getCoupon="handleGetCoupon"></NewUserCoupon>
-
- <view class="banner">
- <uni-swiper-dot class="uni-swiper-dot-box" field="content">
- <swiper class="swiper" indicator-dots indicator-color="rgba(255, 255, 255, 0.50)"
- indicator-active-color="#ffffff" autoplay interval="5000">
- <swiper-item v-for="(item,i) in bannerList" :key="i">
- <img :src="item&&item.dictValue" style="width: 100%;" mode="widthFix" />
- </swiper-item>
- <!-- <swiper-item>
- <img src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/banner/banner/banner2_3x.png"
- style="width: 100%;" mode="widthFix" />
- </swiper-item> -->
- </swiper>
- </uni-swiper-dot>
- </view>
-
- <view style="margin: -250px 20rpx 0 20rpx;">
- <image style="width: 710rpx; height: 176rpx;" slot='cover'
- src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/TopDetail.png" />
- </view>
- <view class="card-container">
- <uni-card :is-shadow="false" padding="40rpx 20rpx 40rpx 20rpx" margin="20rpx">
- <view class="normal-bolb-text">
- <view @click="getLocationInfo"
- style="display: flex; align-items: center; justify-content: space-between;">
- <text v-if="isCheckLocation"
- style="color: #333333 ;font-size: 32rpx;font-weight: 600; font-style: normal; width: 450rpx; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">{{locationName}}</text>
- <text v-else
- style="color: #C4C4C4 ;font-size: 32rpx;font-weight: 500; font-style: normal;">请选择宠物上门服务地址</text>
- <uni-icons type="location-filled" size="20" color="#FFB13F"></uni-icons>
- </view>
- </view>
- <view class="line" style="background-color: #EFEFEF;"></view>
- <view class="content-container">
- <view class="example-body hideOnPc">
- <view class="normal-bolb-text">
- <view @click="toggleCalendar('bottom')">
- <view v-if="isCheckTime"
- style="display: flex; align-items: center; justify-content: space-between;">
- <text
- style="color: #333333 ;font-size: 32rpx;font-weight: 600; font-style: normal; width: 450rpx; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">{{selectedDateShowText}}</text>
- <text
- style="color: #333333 ;font-size: 32rpx;font-weight: 600; font-style: normal;">共选择
- <text style="color: #FFB13F;">{{selectedDate.length}}</text>
- 天</text>
- </view>
- <view v-else
- style="display: flex; align-items: center; justify-content: space-between;">
- <text
- style="color: #C4C4C4 ;font-size: 32rpx;font-weight: 500; font-style: normal;">请选择宠物上门服务时间</text>
- <uni-icons type="right" size="20" color="#FFB13F"></uni-icons>
- </view>
- </view>
- </view>
- </view>
- <view>
- <uni-popup ref="popup" background-color="#fff" @change="changePopup">
- <view class="popupBottom">
- <uni-calendar ref="calendar" class="uni-calendar--hook" :selected="selectedDate"
- :startDate="startDate" :endDate="endDate" :showMonth="false"
- @change="changeCalendar" @confirm="changeCalendar" @close="close" />
- <view style="display: flex; justify-content: center; align-items: center;">
- <!-- <button class="bottom-btn" @click="closePopup">确定</button> -->
- <image @click="closePopup" style="width: 670rpx; height: 80rpx;" slot='cover' src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/yesButton.png" />
- </view>
- </view>
- </uni-popup>
- </view>
- </view>
- <view class="line" style="background-color: #EFEFEF;"></view>
- <view>
- <view style="display: flex;">
- <view @click="getOrder(true)" style="margin-right: 20rpx;">
- <image style="width: 304rpx; height: 100rpx;" slot='cover'
- src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/OrderByCompanion.png">
- </view>
- <view @click="getOrder(false)">
- <image style="width: 304rpx; height: 100rpx;"
- src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/OrderBySystem.png">
- </view>
- </view>
- </view>
- </uni-card>
- </view>
-
- <view class="coupon-list">
- <uni-card :is-shadow="false" padding=0 margin="10px">
- <view class="coupon-title" slot="title">
- <view class="coupon-title-left">
- <view class="coupon-flag"></view>
- <view>领券中心</view>
- </view>
- <view class="coupon-title-right">
- <view @click="getAllCoupon">
- 更多 <uni-icons type="right" size="14px" color="#AAAAAA"></uni-icons>
- </view>
- </view>
- </view>
- <view class="split-line"></view>
- <view class="coupon-content">
- <view v-for="(item,index) in couponData" style="padding:20rpx;" :key="index">
- <view style="border: 1px solid #FFBF60; border-radius: 8px;">
- <view class="card">
- <view class="card-left">{{switchType(item.stockType)}}</view>
- <view class="card-center">
- <view class="card-center-top"></view>
- <view class="card-center-bottom"></view>
- </view>
- <view class="card-right">
- <view class="card-content">
- <view class="card-info">{{item.stockName}}</view>
- <view class="card-type">可用于
- <text class="card-type-text">专业喂养</text>
- <text class="card-type-text">专业遛狗</text>
- </view>
- <view class="card-time">有效期至: {{item.availableEndTime.slice(0, 16)}}</view>
- </view>
- <view>
- <!-- <u-button @click="receiveCoupon(item.id)" shape="circle" size="mini"
- color="#ffaa48" text="立即领取"></u-button> -->
- <view style="width: 132rpx;height: 52rpx;background-color: #FFAA48; display: flex;align-items: center;justify-content: center;border-radius: 56rpx;">
- <text style="font-size: 24rpx; font-weight: 500; color: #FFFFFF;">立即领取</text>
- </view>
- </view>
- </view>
- </view>
- <view class="card-bottom">
- <view class="card-bottom-text">
- 优惠券不可兑换现金
- </view>
- <view class="card-bottom-text">
- 查看详细规则>
- </view>
- </view>
- </view>
- </view>
- </view>
- </uni-card>
- </view>
-
- <view class="companion-list">
- <uni-card :is-shadow="false" padding=0 margin="10px">
- <view class="companion-title" slot="title">
- <view class="companion-title-left">
- <view class="companion-flag"></view>
- <view>周边伴宠师</view>
- </view>
- <view class="companion-title-right" @click="getAllCompanion">
- <view>
- 更多 <uni-icons type="right" size="14px" color="#AAA"></uni-icons>
- </view>
- </view>
- </view>
- <view class="split-line"></view>
- <view class="companion-content">
- <view class="companion-item">
- <view class="companion-info">
- <image class="companion-img" slot='cover'
- :src="defaultCompanion&&defaultCompanion.staffImages&&defaultCompanion.staffImages.length>0?defaultCompanion.staffImages[0].url:defaultStaffIamge">
- </image>
- <view class="companion-info-1">
- <view class="companion-info-2">
- <view class="companion-info-title">
- <view class="companion-name">
- {{defaultCompanion.name}}
- </view>
- <view class="companion-sex">
- <img :src="defaultCompanion.gender=='1'?'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/personal/pet/sex_m.png':
- 'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/personal/pet/sex_f.png'" alt="sex"
- style="width: 40rpx;height: 40rpx;" />
- </view>
- </view>
- <view class="companion-info-star">
- <text style="color: #FFB13F;">客户点赞数{{defaultCompanion.star}}</text>
- <uni-icons type="hand-up-filled" size="18" color="#FFB13F"></uni-icons>
- </view>
- </view>
- <view class="companion-info-3" style="width: 100%;">
- <view class="ellipsis">
- 距离{{defaultCompanion.distance}}km
- </view>
- </view>
- <view class="companion-info-4" style="width: 100%;">
- <view class="ellipsis" style="max-width: 450rpx;">
- 简介:{{defaultCompanion.shortDescription}}
- </view>
- </view>
- </view>
- </view>
- </view>
- <view>
- <view class="companion-item-bottom">
- <text class="companion-item-bottom-text">养宠{{defaultCompanion.year}}年 | 评价{{defaultCompanion.record}}条 | 服务小结{{defaultCompanion.serviceNum}}份</text>
- </view>
- </view>
- </view>
- </uni-card>
- </view>
-
- <view class="history-record">
- <uni-card :is-shadow="false" padding=0 margin="10px">
- <view class="history-record-title" slot="title">
- <view class="history-record-title-left">
- <view class="history-record-flag"></view>
- <view>历史记录</view>
- </view>
- <view class="history-record-title-right">
- <view @click="getAllRecord">
- 查看服务记录和评价详情 <uni-icons type="right" size="14px" color="#AAAAAA"></uni-icons>
- </view>
- </view>
- </view>
- <view class="split-line"></view>
- <view class="history-record-content">
- <view class="history-record-content-image">
- <view class="history-record-content-image-1">
- <view class="history-record-content-image-1-text">
- <view class="history-record-content-image-1-text-1">{{historyRecord.dog}}只</view>
- <view class="history-record-content-image-1-text-2">至{{historyRecord.dogTime}}</view>
- </view>
- </view>
- <view class="history-record-content-image-2">
- <view class="history-record-content-image-2-text">
- <view class="history-record-content-image-2-text-1">{{historyRecord.cat}}只</view>
- <view class="history-record-content-image-2-text-2">至2{{historyRecord.catTime}}</view>
- </view>
- </view>
- <view class="history-record-content-image-3">
- <view class="history-record-content-image-3-text">
- <view class="history-record-content-image-3-text-1">{{historyRecord.num}}次</view>
- <view class="history-record-content-image-3-text-2">至{{historyRecord.numTime}}</view>
- </view>
- </view>
- </view>
- <view class="history-record-content-text">
- <text>*数据来源于布丁猫妈狗爸平台</text>
- </view>
- </view>
- </uni-card>
- </view>
-
- <view class="service-content">
- <img src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/second_stage/ysbz.png"
- style="width: 100%;" mode="widthFix" alt="service">
- </view>
-
- <view class="card-container">
- <uni-card :is-shadow="false" padding="0px" margin="10px">
- <view class="title-img4"></view>
- <uni-row class="demo-uni-row">
- <uni-col :span="12" v-for="(item,index) in peopleList" :key="index">
- <uni-card :is-shadow="false" margin="5px" padding="0" spacing="0" :border="false"
- shadow="0px 0px 0px 0px rgba(0, 0, 0, 0.08)">
- <image class="people-img" slot='cover' style="width: 100%;"
- :src="item&&item.staffImages&&item.staffImages.length>0?item.staffImages[0].url:defaultStaffIamge">
- </image>
- <text class="people-year">{{item.serviceAge}}年从业经验</text>
- <text class="show-text-1">姓名:{{item.nickName}}</text>
- <text class="show-text-2">简介:{{item.shortDescription}}</text>
- </uni-card>
- </uni-col>
-
- </uni-row>
- </uni-card>
- </view>
-
- <view>
- <image style="height: 132rpx; width: 710rpx; margin: 0 20rpx 20rpx 20rpx;"
- slot='cover'
- src="https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/joinus.png">
- </view>
-
- <Kefu></Kefu>
- <view class="coupon_wrap" v-if="envVersion == 'dev'">
- <view class="details-subscribe">
- <view @click="getCoupon" class="details-btn">点击领取到卡包</view>
- </view>
- <!-- 领取弹窗 -->
- <view v-if="showMask" @closeMask="closeMask">
- <view class="mask-coupon" @click="closeMask">
- <view class="wx-coupon">
- <view class="title">
- 领取优惠券
- <i>*</i>
- </view>
- <view class="content">
- 优惠券列表显示
- </view>
- <!-- 小程序领券插件 -->
- <view class="" v-for="(item,index) in couponList" :key="index">
- <send-coupon @sendcoupon="getSendCoupon" @userconfirm="redirectuser" :sign="item.sign"
- :send_coupon_params="item.sendCouponParams"
- :send_coupon_merchant="item.send_coupon_merchant">
- <view class="text-button">{{item.wechatStock.stockName}}</view>
- </send-coupon>
- </view>
-
- </view>
- </view>
- </view>
- </view>
-
- </view>
- </template>
-
- <script>
- import {
- getStaffList,
- getProductList,
- getBannerList,
- getCouponList,
- getCouponListNoAuth,
- getOpenId,
- receiveCoupon,
- } from "@/api/system/user"
- import {
- getCompanionList
- } from "@/api/system/companion"
- import {
- setToken,
- getToken,
- getOpenIdKey,
- setOpenIdKey
- } from '@/utils/auth'
- import Kefu from './common/kefu.vue'
- import uniPopup from '@/uni_modules/uni-popup/components/uni-popup/uni-popup.vue';
- import NewUserCoupon from './components/NewUserCoupon.vue';
- export default {
- data() {
- return {
- current: 0,
- swiperDotIndex: 0,
- defaultSkuImage: 'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/banner/%E5%96%82%E5%85%BB.png',
- defaultStaffIamge: 'https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/banner/gold_people.png',
- defaultLink: '/pages/details/feed',
- skuData: [],
- peopleList: [],
- cover: 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
- bannerList: [],
- couponList: [],
- showMask: false,
- envVersion: 'develop',
- isNewUser: false,
- selectedDate: [],
- startDate: '',
- endDate: '',
- isCheckTime: false,
- selectedDateShowText: '',
- isCheckLocation: false,
- locationName: '',
- locationLatitude: '',
- locationLongitude: '',
- locationAddress: '',
- allInfo: {
- isCheckLocation: false,
- locationName: '',
- locationLatitude: '',
- locationLongitude: '',
- locationAddress: '',
- selectedDate: [],
- isCheckTime: false,
- selectedDateShowText: '',
- },
- defaultCompanion: {
- name: '宠小二',
- gender: 0,
- star: 560,
- distance: 1.5,
- shortDescription: '有一只三岁蓝猫叫憨憨,热爱小宠物,心地善良,喜欢动物',
- staffImages: [{
- url: "https://catmdogf.oss-cn-shanghai.aliyuncs.com/2024/01/2634af25c5bf294f39b795ecc9d3c4eefa微信图片_20240126125100.png"
- }],
- year: 4,
- record: 11,
- serviceNum: 13,
- },
- couponData: [],
- historyRecord: {
- dog: "47131",
- dogTime: "2024.12.12",
- cat: "47131",
- catTime: "2024.12.12",
- num: "47131",
- numTime: "2024.12.12",
- },
- }
- },
- components: {
- Kefu,
- uniPopup,
- NewUserCoupon
- },
- mounted() {
- this.getCalendarDate();
- this.checkNewUser();
- },
- methods: {
- checkNewUser() {
- // 检查是否为新用户,这里可以根据实际需求修改判断逻辑
- // 例如:检查本地存储中是否有首次访问的标记
- const isFirstVisit = !uni.getStorageSync('hasVisited');
- if (isFirstVisit) {
- this.isNewUser = true;
- // 设置访问标记
- uni.setStorageSync('hasVisited', true);
- }
- },
- closeNewUserPopup() {
- this.isNewUser = false;
- },
- handleGetCoupon() {
- // 如果用户已登录,则直接调用领券方法
- if (getToken()) {
- this.getCoupon();
- } else {
- // 未登录,跳转到登录页面
- uni.navigateTo({
- url: '/pages/personalCenter/index'
- });
- }
- },
- getAllCoupon() {
- uni.navigateTo({
- url: '/pages/companionPetList/couponList'
- });
- },
- getAllCompanion() {
- if (!this.isCheckLocation) {
- uni.showToast({
- title: '请先选择地址',
- duration: 1500,
- icon: "none"
- })
- } else {
- uni.navigateTo({
- url: `/pages/companionPetList/companionPetList?info=` + encodeURIComponent(JSON
- .stringify(this.allInfo))
- });
- }
- },
- getAllRecord () {
-
- },
- toggleCalendar(type) {
- this.type = type
- uni.hideTabBar()
- this.$refs.popup.open(type)
- },
- closePopup() {
- this.$refs.popup.close()
- setTimeout(() => {
- uni.showTabBar()
- }, 300)
- },
- changePopup(e) {
- console.log('当前模式:' + e.type + ',状态:' + e.show);
- if (e.show) {
- uni.hideTabBar()
- } else {
- setTimeout(() => {
- uni.showTabBar()
- }, 300)
- }
- },
- close() {
- console.log('弹窗关闭');
- },
- confirm(e) {
- console.log('confirm 返回:', e)
- },
- changeCalendar(e) {
- console.log('change 返回:', e)
- this.selectedDateShowText = ''
- // 选中日期
- const selectedValue = this.selectedDate.find(item => item.date === e.fulldate)
- console.log('const selectedValue', selectedValue)
- if (selectedValue) {
- // 存在则移除
- this.selectedDate = this.selectedDate.filter(item => item.date !== e.fulldate);
- this.allInfo.selectedDate = this.selectedDate;
- } else {
- this.selectedDate.push({
- date: e.fulldate,
- info: 'time'
- })
- this.allInfo.selectedDate = this.selectedDate
- console.log('this.selectedDate', this.selectedDate)
- }
- console.log("this.selectedDate.length", this.selectedDate.length)
- console.log("this.selectedDate", this.selectedDate)
- if (this.selectedDate.length > 0) {
- this.isCheckTime = true
- this.allInfo.isCheckTime = this.isCheckTime
- if (this.selectedDate.length == 1) {
- this.selectedDateShowText = this.selectedDate[0].date + ''
- this.selectedDateShowText = this.selectedDateShowText.replace(/-/g, "/");
- this.allInfo.selectedDateShowText = this.selectedDateShowText
- } else if (this.selectedDate.length == 2) {
- this.selectedDateShowText = this.selectedDate[0].date + "," + this.selectedDate[1].date
- this.selectedDateShowText = this.selectedDateShowText.replace(/-/g, "/");
- this.allInfo.selectedDateShowText = this.selectedDateShowText
- } else if (this.selectedDate.length > 2) {
- this.selectedDateShowText = this.selectedDate[0].date + '...' + this.selectedDate[this.selectedDate
- .length - 1].date
- this.selectedDateShowText = this.selectedDateShowText.replace(/-/g, "/");
- this.allInfo.selectedDateShowText = this.selectedDateShowText
- }
- } else {
- this.isCheckTime = false
- this.allInfo.isCheckTime = this.isCheckTime
- }
- },
- getCalendarDate() {
- let tomorrow = new Date()
- tomorrow.setDate(tomorrow.getDate() + 2);
- this.startDate = this.formatDate(tomorrow);
- // 获取三个月后的日期
- let threeMonthsLater = new Date();
- threeMonthsLater.setMonth(threeMonthsLater.getMonth() + 3);
- this.endDate = this.formatDate(threeMonthsLater);
- },
- formatDate(date) {
- let year = date.getFullYear();
- let month = (date.getMonth() + 1).toString().padStart(2, '0');
- let day = date.getDate().toString().padStart(2, '0');
- return year + '-' + month + '-' + day;
- },
- getLocationInfo() {
- wx.chooseLocation({
- type: 'gcj02', // 坐标系,默认为 wgs84 返回 gps 原始坐标,gcj02 返回可用于 wx.openLocation 的坐标
- success: (res) => {
- // 成功回调
- this.isCheckLocation = true
- this.locationName = res.address
- this.locationLongitude = res.longitude
- this.locationLatitude = res.latitude
- this.locationAddress = res.address
- console.log('选择的位置:', res);
- this.allInfo.isCheckLocation = true
- this.allInfo.locationName = res.address
- this.allInfo.locationLongitude = res.longitude
- this.allInfo.locationLatitude = res.latitude
- this.allInfo.locationAddress = res.address
- },
- fail: (err) => {
- // 失败回调
- console.error('选择位置失败:', err);
- }
- });
- },
- getLocationFirst() {
- wx.chooseLocation({
- type: 'gcj02', // 坐标系,默认为 wgs84 返回 gps 原始坐标,gcj02 返回可用于 wx.openLocation 的坐标
- success: (res) => {
- // 成功回调
- this.isCheckLocation = true
- this.locationName = res.address
- this.locationLongitude = res.longitude
- this.locationLatitude = res.latitude
- this.locationAddress = res.address
- this.allInfo.isCheckLocation = true
- this.allInfo.locationName = res.address
- this.allInfo.locationLongitude = res.longitude
- this.allInfo.locationLatitude = res.latitude
- this.allInfo.locationAddress = res.address
- this.getCompanionList()
- },
- fail: (err) => {
- // 失败回调
- console.error('选择位置失败:', err);
- }
- });
- },
- getCompanionList() {
- // let data = {
- // longitude: this.locationLongitude,
- // latitude: this.locationLatitude,
- // petTypes: this.selectedPet,
- // staffName: '',
- // address: this.locationAddress
- // }
- let data = {
- address: "上海市浦东新区浦东南路150弄",
- latitude: 29.56471,
- longitude: 106.55073,
- petTypes: ["1", "2"],
- staffName: "君"
- }
- console.log('data', data);
- getCompanionList(data).then(response => {
- if (response.code == 200) {
- // this.companionList = response.rows
- this.defaultCompanion.name = response.rows[0].name
- this.defaultCompanion.gender = response.rows[0].gender
- this.defaultCompanion.star = response.rows[0].id
- this.defaultCompanion.distance = response.rows[0].id
- this.defaultCompanion.shortDescription = response.rows[0].shortDescription
- this.defaultCompanion.staffImages = response.rows[0].staffImages
- this.defaultCompanion.year = 4
- this.defaultCompanion.record = 11
- this.defaultCompanion.serviceNum = 13
- }
- console.log(response);
- })
- },
- getOrder(value) {
- if (value) {
- if (!this.isCheckLocation) {
- uni.showToast({
- title: '请先选择地址',
- duration: 1500,
- icon: "none"
- })
- } else {
-
- this.$store.commit('setPosition', {
- address: this.locationAddress,
- longitude: this.locationLongitude,
- latitude: this.locationLatitude,
- date: this.selectedDateShowText
- })
-
- uni.navigateTo({
- // url: '/pages/companionPetList/companionPetList',
- url: `/pages/companionPetList/companionPetList?info=`
- + encodeURIComponent(JSON
- .stringify(this.allInfo))
- });
- }
- } else {
- this.$store.commit('setPosition', {})
- this.buyInfo.teacher = null
- uni.navigateTo({
- // url: '/pages_order/order/payOrderSuccessful',
- url: '/pages/newOrder/serviceNew',
- // url: '/pages/newOrder/serviceNew2',
- });
- }
- },
- getCoupon() {
- getCouponList().then(res => {
- if (res.code == 200) {
- this.couponList = res.rows
- this.showMask = true
- } else {
- this.$modal.showToast('获取优惠券失败')
- }
-
- })
-
- },
- getCouponListAuth() {
- getCouponList().then(res => {
- if (res.code == 200) {
- this.couponData.push(res.data[0])
- console.log("this.couponData", this.couponData)
- } else {
- this.$modal.showToast('获取优惠券失败')
- }
- })
- },
- switchType(type) {
- if (type == 'PNORMAL') {
- return '满减券'
- }
- if (type == 'PDISCOUNT') {
- return '折扣券'
- }
- if (type == 'PTRAIL') {
- return '体验券'
- }
- return '优惠券'
- },
- receiveCoupon(id) {
- let data = {
- stockId: id
- }
- receiveCoupon(data).then(res => {
- console.log("this.receiveCoupon", res)
- if (res.code == 200) {
- this.$modal.showToast('优惠券领取成功')
- } else {
- this.$modal.showToast('领取优惠券失败')
- }
- })
- },
- getCouponListNoAuth() {
- console.log('进入 getCouponListNoAuth:');
- getCouponListNoAuth().then(res => {
- if (res.code == 200) {
- this.couponData = res.rows
- } else {
- this.$modal.showToast('获取优惠券失败')
- }
-
- })
- },
- closeMask() {
- this.showMask = false
- },
- // 点击领券获取优惠券信息
- getSendCoupon(res) {
- let that = this
- console.log('res', res)
- if (res.detail.errcode == 'OK') {
- console.log(222)
- if (res.detail.send_coupon_result[0].code == 'SUCCESS') {
- that.showMask = false
- uni.showToast({
- title: '领取成功',
- icon: 'success',
- duration: 2000,
- })
- } else {
- uni.showModal({
- title: '领取失败',
- content: res.detail.send_coupon_result[0].message,
- showCancel: false,
- success: function(res) {
- that.showMask = false
- }
- })
- }
- } else {
- uni.showToast({
- title: '领取失败',
- icon: 'none'
- })
- that.showMask = false
- }
- },
- // 点击确认收券按钮后回调
- redirectuser() {},
- getBanner() {
- getBannerList().then(res => {
- if (res.code == 200) {
- this.bannerList = res.data
- } else {
- this.$modal.showToast('获取Banner失败')
- }
- })
- },
- changeSwiper(e) {
- this.current = e.detail.current
- },
- getPeopleList() {
- getStaffList().then(response => {
-
- if (response.code == 200) {
- this.peopleList = response.rows
- }
-
- console.log(response);
- })
- },
- getProductList() {
- getProductList({
- "publishStatus": 1,
- "categoryId": 76
- }).then(response => {
- if (response && response.content && response.content.length > 0) {
- this.skuData = response.content;
- }
- console.log(response);
- })
- },
- goDetails(item) {
- if (item) {
- // uni.navigateTo({
- // url: `/pages/details/successful`
- // });
- uni.navigateTo({
- url: `/pages/details/detail?id=${item.id}`
- });
- } else {
- this.$modal.showToast('数据有误,请联系管理员')
- }
-
- },
-
- init() {
- this.$globalData.itemPrice = []
- this.$globalData.submitData = {
- "phone": "",
- "wechatId": "",
- "note": "",
- "totalPrice": "",
- "address": {
- "province": "",
- "city": "",
- "district": "",
- "detailAddress": ""
- },
- "skuList": [],
- "service": {
- "serviceFrequency": "once_a_day",
- "serviceDate": [],
- "serviceTimeFirst": "",
- "serviceTimeSecond": "",
- "pet": []
- }
- }
- },
- login() {
- uni.login({
- provider: 'weixin',
- success: (loginRes) => {
- console.log("login", loginRes)
- this.getOpenId(loginRes.code)
- },
- fail: function(error) {
- // 授权失败处理
- uni.showToast('授权失败,请授权后再试')
- }
- });
- },
- getOpenId(code) {
- getOpenId(code).then(res => {
- if (res.code == 200 && res.data) {
- let resData = JSON.parse(res.data)
- let token = resData.token;
- let openId = resData.openId;
- setOpenIdKey(openId)
- if (token) {
- setToken(token)
- }
- }
- })
- },
- },
-
-
- onLoad: function() {
- this.init()
- this.getPeopleList()
- this.getProductList()
- this.getBanner()
- // this.getCouponListNoAuth()
- const accountInfo = wx.getAccountInfoSync();
- this.envVersion = accountInfo.miniProgram.envVersion;
- if (!getToken() || !getOpenIdKey()) {
- this.login()
- } else {
- // this.getLocationFirst()
- this.getCouponListAuth()
- }
- }
- }
- </script>
-
- <style lang="scss">
- page {
- background-color: #F5F5F7 !important;
- }
-
- .home-content {
- position: relative;
- // background: linear-gradient(360deg, #F5F5F7 0%, #FFBF60 99%);
-
-
- .swiper {
- height: calc(100vw * 1098/1125);
- // background-image: linear-gradient(180deg, #FFBF60 0%, #FFBF60 90%, #ffffff 99.41%);
- }
-
- .banner {
- height: calc(100vw * 1098/1125 + 250px);
- background-image: linear-gradient(180deg, #FFBF60 0%, #FFBF60 90%, #F5F5F7 99.41%);
- }
-
- .uni-card {
- border-radius: 16rpx;
- }
-
- .float-button {
- position: fixed;
- bottom: 150px;
- /* 距离底部的距离 */
- right: 10px;
- /* 距离右侧的距离 */
- width: 50px;
- /* 按钮的宽度 */
- height: 50px;
-
- /* 按钮的高度 */
- /* 其他样式 */
- .kf-btn {
- background-color: rgba(255, 255, 255, 1);
- height: 52px;
- width: 52px;
- border-radius: 50%;
- display: flex;
- align-items: center;
- }
- }
-
- .coupon-list {
- width: 100%;
-
- .coupon-title {
- display: flex;
- line-height: 33rpx;
- margin: 42rpx 0 30rpx;
- justify-content: space-between;
-
- .coupon-title-left {
- display: flex;
- align-items: center;
- font-weight: 900;
- font-size: 30rpx;
- color: #333333;
-
- .coupon-flag {
- width: 8rpx;
- height: 33rpx;
- background: #FFBF60;
- border-radius: 30rpx 30rpx 30rpx 30rpx;
- margin-right: 10rpx;
- }
- }
-
- .coupon-title-right {
- color: #7D8196;
- font-size: 24rpx;
- font-style: normal;
- font-weight: 500;
- line-height: 28rpx;
- }
- }
-
- .split-line {
- width: 100%;
- height: 1rpx;
- background: #EFEFEF;
- }
-
- .coupon-content {
- .card {
- display: flex;
- align-items: center;
- width: 100%;
- padding: 10px 0;
- // background: #fff;
- // background: #f6f5f8;
- // border: 1px solid #FFBF60;
- border-radius: 8px 8px 0 0;
- // -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%);
- // -webkit-mask-size: 100%, 2px 4px;
- // -webkit-mask-repeat: repeat, repeat-y;
- // -webkit-mask-position: 0 -4px, 87px;
- // -webkit-mask-composite: source-out;
- // mask-composite: subtract;
- // background: linear-gradient(45deg, orange, red);
- }
-
- .card-bottom {
- display: flex;
- background-color: #FFF1E0;
- height: 50rpx;
- align-items: center;
- justify-content: space-between;
- padding: 0 20rpx 0 20rpx;
- border-radius: 0 0 8px 8px;
-
- .card-bottom-text {
- color: #AAAAAA;
- font-size: 24rpx;
- font-weight: 400;
- }
- }
-
- .card-left {
- width: 88px;
- text-align: center;
- color: #FF530A;
- font-size: 28rpx;
- font-weight: 900;
- }
-
- .card-center {
- display: flex;
- flex-direction: column;
- // align-items: center;
-
- .card-center-top {
- width: 40rpx;
- height: 20rpx;
- border-radius: 0 0 20rpx 20rpx;
- background-color: #fff;
- line-height: 20rpx;
- border-bottom: 1px solid #FDA714;
- border-left: 1px solid #FDA714;
- border-right: 1px solid #FDA714;
- margin-top: -22rpx;
- margin-bottom: 20rpx;
- margin-left: -19rpx;
- }
-
- .card-center-bottom {
- border-right: 1px dashed #AAAAAA;
- width: 1px;
- height: 120rpx;
- }
- }
-
- .card-right {
- padding: 0 16rpx 0 0;
- display: flex;
- flex: 1;
- /* flex-direction: column; */
- justify-content: space-between;
- align-items: center;
- height: 60px;
-
- .card-content {
- width: 77%;
- }
-
- .card-icon {
- position: relative;
- right: -10px;
- top: -10px;
- }
- }
-
- .card-info {
- margin: 0;
- font-size: 28rpx;
- line-height: 28rpx;
- color: #333333;
- font-weight: 500;
- }
-
- .card-type {
- font-size: 24rpx;
- font-weight: 400;
- line-height: 24rpx;
- font-weight: 400;
- color: #AAAAAA;
- margin-top: 10rpx;
-
- .card-type-text {
- color: #FFAA48;
- font-size: 24rpx;
- font-weight: 400;
- line-height: 24rpx;
- border: #FFAA48 1px solid;
- border-radius: 7rpx;
- margin-left: 8rpx;
- }
- }
-
- .card-time {
- font-size: 24rpx;
- font-weight: 400;
- line-height: 24rpx;
- font-weight: 400;
- color: #AAAAAA;
- margin-top: 10rpx;
- }
- }
- }
-
- .companion-list {
- width: 100%;
-
- .companion-title {
- display: flex;
- line-height: 33rpx;
- margin: 42rpx 0 30rpx;
- justify-content: space-between;
-
- .companion-title-left {
- display: flex;
- align-items: center;
- font-weight: 900;
- font-size: 30rpx;
- color: #333333;
-
- .companion-flag {
- width: 8rpx;
- height: 33rpx;
- background: #FFBF60;
- border-radius: 30rpx 30rpx 30rpx 30rpx;
- margin-right: 10rpx;
- }
- }
-
- .companion-title-right {
- color: #7D8196;
- font-size: 24rpx;
- font-style: normal;
- font-weight: 500;
- line-height: 28rpx;
- }
- }
-
- .split-line {
- width: 100%;
- height: 1rpx;
- background: #EFEFEF;
- }
-
- .companion-content {
- .companion-item {
- padding: 10px 0px 0px 0;
-
- .companion-info {
- display: flex;
- align-items: center;
- justify-content: flex-start;
-
- .companion-img {
- width: 168rpx;
- height: 168rpx;
- border: #FEA714 5rpx solid;
- border-radius: 20rpx;
- }
-
- .companion-info-1 {
- margin-left: 10px;
- width: 80%;
-
- .companion-info-2 {
- display: flex;
- flex-wrap: wrap;
-
- .companion-info-title {
- display: flex;
- flex-wrap: wrap;
- width: 60%;
- }
-
- .companion-name {
- color: #333;
- font-size: 32rpx;
- // line-height: 32rpx;
- margin-right: 10rpx;
- font-weight: 900;
- font-style: normal;
- }
-
- .companion-info-star {
- color: #FFAA48;
- font-size: 24rpx;
- font-weight: 400;
- line-height: 28rpx;
- display: flex;
- align-items: center;
- }
- }
-
- .companion-info-3 {
- display: flex;
- align-items: baseline;
- font-size: 28rpx;
- line-height: 32rpx;
- margin-top: 5px;
- color: #FFAA48;
- font-weight: 900;
- }
-
- .companion-info-4 {
- display: flex;
- align-items: baseline;
- font-size: 24rpx;
- margin-top: 10px;
- color: #7D8196;
- font-weight: 400;
- line-height: 32rpx;
- }
-
- }
-
- }
- }
-
- .companion-item-bottom {
- height: 60rpx;
- background-color: #FFF4E5;
- margin: 20rpx 0 20rpx 0;
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 8rpx;
-
- .companion-item-bottom-text {
- color: #A94F20;
- margin: 14rpx;
- font-size: 24rpx;
- font-weight: 400;
- }
- }
- }
- }
-
- .history-record {
- width: 100%;
-
- .history-record-title {
- display: flex;
- line-height: 33rpx;
- margin: 42rpx 0 30rpx;
- justify-content: space-between;
-
- .history-record-title-left {
- display: flex;
- align-items: center;
- font-weight: 900;
- font-size: 30rpx;
- color: #333333;
-
- .history-record-flag {
- width: 8rpx;
- height: 33rpx;
- background: #FFBF60;
- border-radius: 30rpx 30rpx 30rpx 30rpx;
- margin-right: 10rpx;
- }
- }
-
- .history-record-title-right {
- color: #7D8196;
- font-size: 24rpx;
- font-style: normal;
- font-weight: 500;
- line-height: 28rpx;
- }
- }
-
- .split-line {
- width: 100%;
- height: 1rpx;
- background: #EFEFEF;
- }
-
- .history-record-content {
- padding: 20rpx 0 20rpx 0;
-
- .history-record-content-image {
- display: flex;
- flex-wrap: nowrap;
- margin-bottom: 10rpx;
-
- .history-record-content-image-1 {
- background-image: url("https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/catNum.png");
- background-size: cover;
- width: 208rpx;
- height: 260rpx;
- margin-right: 20rpx;
-
- .history-record-content-image-1-text {
- .history-record-content-image-1-text-1 {
- width: 100%;
- display: flex;
- justify-content: center;
- height: 156rpx;
- align-items: flex-end;
- color: #FF8D00;
- font-size: 32rpx;
- font-weight: 900;
- }
-
- .history-record-content-image-1-text-2 {
- width: 100%;
- display: flex;
- justify-content: center;
- height: 90rpx;
- align-items: flex-end;
- color: #AAAAAA;
- font-size: 24rpx;
- font-weight: 400;
- }
- }
-
- }
-
- .history-record-content-image-2 {
- background-image: url("https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/dogNum.png");
- background-size: cover;
- width: 208rpx;
- height: 260rpx;
- margin-right: 20rpx;
-
- .history-record-content-image-2-text {
- .history-record-content-image-2-text-1 {
- width: 100%;
- display: flex;
- justify-content: center;
- height: 156rpx;
- align-items: flex-end;
- color: #FF8D00;
- font-size: 32rpx;
- font-weight: 900;
- }
-
- .history-record-content-image-2-text-2 {
- width: 100%;
- display: flex;
- justify-content: center;
- height: 90rpx;
- align-items: flex-end;
- color: #AAAAAA;
- font-size: 24rpx;
- font-weight: 400;
- }
- }
-
- }
-
- .history-record-content-image-3 {
- background-image: url("https://catmdogf.oss-cn-shanghai.aliyuncs.com/CMDF/front/petServiceOrder/goodNum.png");
- background-size: cover;
- width: 208rpx;
- height: 260rpx;
-
- .history-record-content-image-3-text {
- .history-record-content-image-3-text-1 {
- width: 100%;
- display: flex;
- justify-content: center;
- height: 156rpx;
- align-items: flex-end;
- color: #FF8D00;
- font-size: 32rpx;
- font-weight: 900;
- }
-
- .history-record-content-image-3-text-2 {
- width: 100%;
- display: flex;
- justify-content: center;
- height: 90rpx;
- align-items: flex-end;
- color: #AAAAAA;
- font-size: 24rpx;
- font-weight: 400;
- }
- }
-
- }
- }
-
- .history-record-content-text {
- font-size: 24rpx;
- font-weight: 400;
- color: #A94F20;
- }
- }
- }
- }
-
- /* #ifndef APP-NVUE */
- page {
- display: flex;
- flex-direction: column;
- box-sizing: border-box;
- background-color: #fff;
- min-height: 100%;
- height: auto;
- }
-
- /* #endif */
-
- .text {
- text-align: center;
- font-size: 26rpx;
- margin-top: 10rpx;
- }
-
-
- .popupBottom {
- height: 950rpx;
- overflow: hidden;
- position: fixed;
- bottom: 0;
- left: 0;
- right: 0;
- padding: 10rpx 20rpx;
- border-radius: 20rpx 20rpx 0 0;
- background-color: #fff;
-
- .bottom-btn {
- width: 100%;
- border-radius: 120rpx;
- background: #FFB13F;
- font-size: 32rpx;
- color: #FFFFFF;
- }
- }
-
- .line {
- height: 1px;
- width: 100%;
- margin: 16px 0;
- }
-
- .swiper-item {
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- flex-direction: column;
- justify-content: center;
- align-items: center;
- color: #fff;
- height: 500rpx;
- line-height: 300rpx;
- }
-
- .card-container {
- margin: 0;
- padding: 0;
- }
-
- .title-img1 {
- height: 30px;
- width: 104px;
- background-repeat: no-repeat;
- background-position: left;
- background-size: 104px 30px;
- background-image: url('/static/images/pages/cwfw.png');
- }
-
- .service-content-img {
- // height: 208px;
- padding: 5px;
- margin-top: 5px;
- border-radius: 8px;
- }
-
-
-
- #myVideo {
- width: 100%;
- border-radius: 5px;
- }
-
- .service-content {
- width: 100%;
- padding: 0 10px;
- }
-
- .title-img4 {
- height: 30px;
- width: 202px;
- background-repeat: no-repeat;
- background-position: center;
- background-size: 202px 30px;
- background-image: url('/static/images/pages/jppcs.png');
- margin: 10px 0;
- }
-
- .demo-uni-row {
- margin: 0;
- padding: 0;
- }
-
- .people-img {
- width: 190px;
- height: 163px;
- border: #FFBF60 1px solid;
- border-radius: 5px;
- }
-
- .people-year {
- display: flex;
- width: 68px;
- padding: 1px 4px;
- justify-content: space-between;
- align-items: center;
- border-radius: 0px 10px 10px 0px;
- background: linear-gradient(90deg, #FDA714 0%, #FD8B04 99.41%);
- color: #FFF;
- font-family: PingFang SC;
- font-size: 10px;
- font-style: normal;
- line-height: 14px;
- /* 140% */
- position: absolute;
- top: 15px;
- left: 0;
- }
-
- .service-people {
- display: flex;
- }
-
- .service-people-text {
- display: flex;
- align-items: center;
- line-height: 24px;
- }
-
- .service-people-text::before {
- content: "";
- background-color: black;
- border-radius: 50%;
- display: inline-block;
- height: 5px;
- width: 5px;
- margin-right: 5px;
- }
-
- .show-text-1 {
- display: block;
- color: var(--Color-, #222229);
- font-family: PingFang SC;
- font-size: 14px;
- font-style: normal;
- font-weight: 600;
- line-height: 24px;
- }
-
- .show-text-2 {
- display: block;
- color: var(--Color-, #222229);
- font-family: PingFang SC;
- font-size: 12px;
- font-style: normal;
- line-height: 18px;
- }
-
- .image-wrapper {
- position: relative;
- }
-
- .text-wrapper {
- position: absolute;
- bottom: 83px;
- /* 根据需要调整文字距离图片底部的距离 */
- left: 10px;
- /* 根据需要调整文字距离图片左边的距离 */
- color: #fff;
- /* 根据需要调整文字颜色 */
- font-size: 10px;
- font-weight: blod;
- font-family: PingFang SC;
- }
-
- .coupone_wrap {
- margin-top: 200px;
- }
-
- .details-subscribe {
- background-color: #FFFFFF;
- padding: 10px;
- width: 100%;
- height: 58px;
- position: fixed;
- bottom: 0;
- z-index: 100;
-
- .details-btn {
- width: 100%;
- border-radius: 6px;
- background: #FFB13F;
- font-size: 16px;
- color: #FFFFFF;
- }
- }
-
- .text-button {
- height: 100rpx;
- border-radius: 0px 0px 6rpx 0;
- background: rgba(255, 208, 0, 1);
- font-weight: 500;
- font-size: 36rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- .couponItem {
- width: 100%;
- padding: 0 30rpx;
- margin-top: 24rpx;
- -webkit-overflow-scrolling: touch;
- }
-
- .couponItem:last-child {
- margin-bottom: 24rpx;
- }
-
- .mask-coupon {
- background: rgba(0, 0, 0, .5);
- width: 100vw;
- height: 100vh;
- position: fixed;
- left: 0;
- top: 0;
- padding-bottom: 120rpx;
-
- .wx-coupon {
- background: #F2F2F2;
- min-height: 300px;
- position: fixed;
- bottom: 0;
- left: 0;
- width: 100%;
- }
-
- .title {
- font-size: 24px;
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 20rpx 0 10rpx;
- }
-
- .content {
- height: 80%;
- overflow-y: auto;
- }
-
- .text-button {
- height: 100rpx;
- border-radius: 0px 0px 6rpx 0;
- background: rgba(255, 208, 0, 1);
- font-weight: 500;
- font-size: 36rpx;
- display: flex;
- align-items: center;
- justify-content: center;
- }
- }
-
-
- @media screen and (min-width: 500px) {
- .uni-swiper-dot-box {
- width: 400px;
- /* #ifndef APP-NVUE */
- margin: 0 auto;
- /* #endif */
- margin-top: 8px;
- }
-
- .image {
- width: 100%;
- }
- }
- </style>
|