Kaynağa Gözat

文案样式调整

longyang 1 hafta önce
ebeveyn
işleme
e2a33b7ec3

+ 1 - 1
src/components/NewUserGuide/index.vue

@@ -37,7 +37,7 @@
 <script>
 import { checkFirstLogin } from '@/api/allApi'
 import WelcomeGuide from './steps/WelcomeGuide.vue'
-import SignInGuide from './steps/SignInGuide.vue'
+import SignInGuide from './steps/SignInGuideV2.vue'
 import PointsMallGuide from './steps/PointsMallGuide.vue'
 import ActivityGuide from './steps/ActivityGuide.vue'
 import EarnPointsGuide from './steps/EarnPointsGuide.vue'

+ 1 - 1
src/components/NewUserGuide/steps/ActivityGuide.vue

@@ -13,7 +13,7 @@
       <div class="guide-badge">Step 4</div>
       <h2 class="guide-title">参与活动,赢取大奖</h2>
       <p class="guide-desc">
-        节日活动、答题游戏、转盘抽奖...<br />
+        <!-- 节日活动、答题游戏、转盘抽奖...<br /> -->
         参与活动可解锁<strong>限时积分奖励</strong>!
       </p>
 

+ 2 - 2
src/components/NewUserGuide/steps/EarnPointsGuide.vue

@@ -13,8 +13,8 @@
       <div class="guide-badge">Step 5</div>
       <h2 class="guide-title">完成任务,积分翻倍</h2>
       <p class="guide-desc">
-        多种积分获取渠道,轻松累积积分!<br />
-        完成不同任务获取丰厚积分奖励。
+        <!-- 多种积分获取渠道,轻松累积积分!<br /> -->
+         完成不同任务获取丰厚积分奖励。
       </p>
 
       <!-- 积分渠道 -->

+ 2 - 2
src/components/NewUserGuide/steps/ExchangeGuide.vue

@@ -22,9 +22,9 @@
         </div>
       </div>
 
-      <div class="flow-tip-box">
+      <!-- <div class="flow-tip-box">
         <span class="flow-tip">💡 支持按状态筛选订单,点击「查看信息」查看兑换详情</span>
-      </div>
+      </div> -->
     </div>
 
     <div class="guide-footer compact">

+ 238 - 0
src/components/NewUserGuide/steps/SignInGuideV2.vue

@@ -0,0 +1,238 @@
+<template>
+  <div class="step2v2-card">
+    <!-- 顶部插画 -->
+    <div
+      class="guide-illustration"
+      style="background: linear-gradient(135deg, #2C6FBF 0%, #5B9FE6 50%, #87CEEB 100%);"
+    >
+      <div class="illus-bubble bubble-1">✅</div>
+      <div class="illus-bubble bubble-2">📅</div>
+      <div class="illus-center">🏷️</div>
+    </div>
+
+    <!-- 信息区域 -->
+    <div class="guide-body">
+      <div class="step2-badge">Step 2</div>
+      <h2 class="step2-title">每日签到,积分到手</h2>
+      <p class="step2-desc">
+        当月工作日满签可领取额外奖励大礼包
+      </p>
+
+      <!-- 签到日历示意 -->
+      <div class="checkin-preview">
+        <div class="preview-header">
+          <span class="preview-weekday" v-for="d in weekDays" :key="d">{{ d }}</span>
+        </div>
+        <div class="preview-row">
+          <div
+            v-for="(day, idx) in checkinDays"
+            :key="idx"
+            class="preview-day"
+            :class="{
+              checked: day.checked,
+              today: day.isToday,
+              reward: day.isReward,
+            }"
+          >
+            <span class="day-num">{{ day.num }}</span>
+            <span v-if="day.isReward" class="day-bonus">+{{ day.bonus }}</span>
+          </div>
+        </div>
+      </div>
+
+      <div class="step2-tip">
+        <span class="tip-icon">💡</span>
+        <span>连续签到 7 天可领取额外积分大礼包</span>
+      </div>
+    </div>
+
+    <!-- 底部按钮 -->
+    <div class="guide-footer">
+      <button class="btn-primary" @click="handleGoSignIn">
+        <span>✅</span> 去签到
+      </button>
+      <button v-if="!isFirst" class="btn-prev" @click="$emit('prev')">
+        上一步
+      </button>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'SignInGuideV2',
+
+  props: {
+    isLast: { type: Boolean, default: false },
+    isFirst: { type: Boolean, default: false },
+    isReplay: { type: Boolean, default: false },
+  },
+
+  data() {
+    return {
+      weekDays: ['一', '二', '三', '四', '五', '六', '日'],
+      checkinDays: [
+        { num: 1, checked: true, isToday: false, isReward: false, bonus: 0 },
+        { num: 2, checked: true, isToday: false, isReward: false, bonus: 0 },
+        { num: 3, checked: true, isToday: false, isReward: false, bonus: 0 },
+        { num: 4, checked: true, isToday: true, isReward: true, bonus: 10 },
+        { num: 5, checked: false, isToday: false, isReward: false, bonus: 0 },
+        { num: 6, checked: false, isToday: false, isReward: false, bonus: 0 },
+        { num: 7, checked: false, isToday: false, isReward: true, bonus: 30 },
+      ],
+    }
+  },
+
+  methods: {
+    handleGoSignIn() {
+      this.$router.push('/home/signIn')
+      setTimeout(() => {
+        this.$emit('next')
+      }, 500)
+    },
+  },
+}
+</script>
+
+<style scoped>
+@import './guide-common.css';
+
+/* Step2V2 卡片 — 上下布局,宽度与其他步骤统一 */
+.step2v2-card {
+  width: 500px;
+  max-width: 90vw;
+  background: #fff;
+  border-radius: 20px;
+  overflow: hidden;
+  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
+  animation: cardFloat 0.5s ease-out;
+}
+
+/* ---- 信息区域 ---- */
+.step2-info {
+  padding: 28px 28px 16px;
+}
+
+.step2-badge {
+  display: inline-block;
+  padding: 3px 12px;
+  font-size: 12px;
+  font-weight: 600;
+  color: #2C6FBF;
+  background: #eaf2ff;
+  border-radius: 12px;
+  margin-bottom: 14px;
+}
+
+.step2-title {
+  font-size: 20px;
+  font-weight: 700;
+  color: #1d2129;
+  margin: 0 0 10px;
+}
+
+.step2-desc {
+  font-size: 13px;
+  line-height: 1.7;
+  color: #86909c;
+  margin: 0 0 18px;
+}
+
+.step2-desc strong {
+  color: #2C6FBF;
+}
+
+/* ---- 签到日历预览 ---- */
+.checkin-preview {
+  background: #f7f9fc;
+  border-radius: 12px;
+  padding: 12px;
+  margin-bottom: 14px;
+}
+
+.preview-header {
+  display: flex;
+  margin-bottom: 8px;
+}
+
+.preview-weekday {
+  flex: 1;
+  text-align: center;
+  font-size: 11px;
+  color: #86909c;
+  font-weight: 500;
+}
+
+.preview-row {
+  display: flex;
+  gap: 4px;
+}
+
+.preview-day {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  gap: 2px;
+  padding: 6px 0;
+  border-radius: 8px;
+  transition: all 0.25s;
+}
+
+.preview-day.checked {
+  background: #eaf2ff;
+}
+
+.preview-day.today {
+  background: #2C6FBF;
+  box-shadow: 0 2px 8px rgba(44, 111, 191, 0.3);
+}
+
+.preview-day.today .day-num {
+  color: #fff;
+  font-weight: 700;
+}
+
+.preview-day.reward:not(.checked) {
+  background: linear-gradient(135deg, #fff5e6, #fff0d6);
+  border: 1px dashed #f5a623;
+}
+
+.day-num {
+  font-size: 14px;
+  font-weight: 600;
+  color: #4e5969;
+}
+
+.day-bonus {
+  font-size: 9px;
+  color: #f5a623;
+  font-weight: 700;
+}
+
+/* ---- 提示条 ---- */
+.step2-tip {
+  display: flex;
+  align-items: center;
+  gap: 8px;
+  padding: 10px 14px;
+  background: linear-gradient(135deg, #fff9e6, #fff3cc);
+  border-radius: 8px;
+  font-size: 12px;
+  color: #b8860b;
+}
+
+.tip-icon {
+  font-size: 16px;
+}
+
+/* ---- 底部按钮 — 复用 guide-common.css ---- */
+.btn-primary {
+  background: linear-gradient(135deg, #2C6FBF, #5B9FE6);
+  box-shadow: 0 4px 14px rgba(44, 111, 191, 0.3);
+}
+
+.btn-primary:hover {
+  box-shadow: 0 6px 18px rgba(44, 111, 191, 0.45);
+}
+</style>

+ 3 - 3
src/components/NewUserGuide/steps/WelcomeGuide.vue

@@ -13,7 +13,7 @@
     </div>
 
     <!-- 文字内容 -->
-    <div class="step1-body">
+    <div class="guide-body step1-body">
       <h2 class="step1-title">欢迎来到誉商城!</h2>
       <p class="step1-desc">
         这里是你的<strong>专属积分奖励平台</strong><br />
@@ -70,7 +70,7 @@ export default {
 
 <style scoped>
 .step1-card {
-  width: 440px;
+  width: 500px;
   max-width: 90vw;
   background: #fff;
   border-radius: 20px;
@@ -184,8 +184,8 @@ export default {
 
 /* ---- 内容区域 ---- */
 .step1-body {
-  padding: 28px 32px 20px;
   text-align: center;
+  min-height: calc(300px + 18px);
 }
 
 .step1-title {

+ 4 - 6
src/components/NewUserGuide/steps/guide-common.css

@@ -5,7 +5,7 @@
 
 /* ---- 卡片基础 ---- */
 .guide-card {
-  width: 440px;
+  width: 500px;
   max-width: 90vw;
   background: #fff;
   border-radius: 20px;
@@ -13,9 +13,6 @@
   box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
   animation: cardFloat 0.5s ease-out;
 }
-.guide-card.wide {
-  width: 500px;
-}
 
 @keyframes cardFloat {
   from {
@@ -37,9 +34,9 @@
   justify-content: center;
   overflow: hidden;
 }
-.guide-illustration.short {
+/* .guide-illustration.short {
   height: 130px;
-}
+} */
 
 .illus-center {
   font-size: 56px;
@@ -73,6 +70,7 @@
 /* ---- 内容区域 ---- */
 .guide-body {
   padding: 24px 28px 16px;
+  min-height: 300px;
 }
 .guide-body.compact {
   padding: 20px 28px 14px;