success.vue 3.83 KB
<template>
  <view class="page-shell booking-success-page">
    <view class="page-blur"></view>
    <view class="page-blur-secondary"></view>
    <view class="page-blur-tertiary"></view>

    <view class="page-content subpage-content">
      <view class="subpage-nav">
        <view class="subpage-back" @tap="goHome">‹</view>
        <view class="subpage-title-wrap">
          <text class="subpage-title">预约提交成功</text>
          <text class="subpage-subtitle">门店已收到你的预约,稍后会电话联系你确认到店安排</text>
        </view>
      </view>

      <view class="subpage-hero glass-card success-hero">
        <view class="success-mark">
          <view class="success-mark-ring"></view>
          <text class="success-mark-check">✓</text>
        </view>
        <text class="hero-kicker">BOOKING SUBMITTED</text>
        <text class="hero-title">预约需求已进入门店确认流程</text>
        <text class="hero-desc">{{ summary.date }} · {{ summary.time }} · {{ summary.store }}</text>
      </view>

      <view class="subpage-card">
        <view class="info-list">
          <view class="info-row">
            <text class="info-label">到店日期</text>
            <text class="info-value">{{ summary.date }}</text>
          </view>
          <view class="info-row">
            <text class="info-label">到店时间</text>
            <text class="info-value">{{ summary.time }}</text>
          </view>
          <view class="info-row">
            <text class="info-label">预约门店</text>
            <text class="info-value">{{ summary.store }}</text>
          </view>
          <view class="info-row">
            <text class="info-label">当前状态</text>
            <text class="info-value">待门店电话确认</text>
          </view>
          <view class="info-row">
            <text class="info-label">后续流程</text>
            <text class="info-value">确认后会补充本次护理安排,房间与健康师也会按沟通结果为你留好</text>
          </view>
        </view>
      </view>

      <view class="cta-row">
        <view class="secondary-button" @tap="viewProgress">查看确认进度</view>
        <view class="primary-button" @tap="goHome">返回首页</view>
      </view>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      summary: {
        date: '今天 03/19',
        time: '14:00',
        store: '绿纤大源店'
      }
    }
  },
  onLoad(options) {
    this.summary.date = options.date ? decodeURIComponent(options.date) : this.summary.date
    this.summary.time = options.time ? decodeURIComponent(options.time) : this.summary.time
    this.summary.store = options.store ? decodeURIComponent(options.store) : this.summary.store
  },
  methods: {
    goHome() {
      uni.reLaunch({ url: '/pages/home/home' })
    },
    viewProgress() {
      uni.navigateTo({
        url: `/packageBooking/consume/consume?date=${encodeURIComponent(this.summary.date)}&time=${encodeURIComponent(this.summary.time)}&store=${encodeURIComponent(this.summary.store)}`
      })
    }
  }
}
</script>

<style lang="scss" scoped>
@import '@/styles/mixins.scss';
@import '@/styles/subpage.scss';

.success-hero {
  min-height: 260rpx;
  padding-right: 180rpx;
}

.success-mark {
  position: absolute;
  right: 40rpx;
  top: 34rpx;
  width: 112rpx;
  height: 112rpx;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.7);
  box-shadow: 0 18rpx 40rpx rgba(54, 77, 64, 0.08);
}

.success-mark-ring {
  position: absolute;
  inset: 10rpx;
  border-radius: 50%;
  border: 2rpx solid rgba(100, 140, 118, 0.2);
  animation: lfPulseSoft 4.8s ease-in-out infinite;
}

.success-mark-check {
  position: relative;
  z-index: 2;
  font-size: 42rpx;
  font-weight: 700;
  color: $brand-primary-deep;
}
</style>