Browse Source

gift-card

冯诚 3 years ago
parent
commit
8c688015e3
4 changed files with 179 additions and 0 deletions
  1. 0 0
      src/assets/coupon2.png
  2. 171 0
      src/pages/gift-card/index.vue
  3. 4 0
      src/router.ts
  4. 4 0
      src/style/atom.scss

src/assets/coupon-2.png → src/assets/coupon2.png


+ 171 - 0
src/pages/gift-card/index.vue

@@ -0,0 +1,171 @@
+<template>
+  <div class="p-gift-card">
+    <div class="fixed">
+      <h3 class="ptc-title bg-gray">My gift card</h3>
+      <div class="tabs border-bottom">
+        <div class="tab" :class="{ active: type === 0 }" @click="type = 0">
+          <span>NOT USED</span>
+          <span class="num">13</span>
+        </div>
+        <div class="tab" :class="{ active: type === 1 }" @click="type = 1">
+          <span>USED</span>
+          <span class="num">1</span>
+        </div>
+        <div class="tab" :class="{ active: type === 2 }" @click="type = 2">
+          <span>EXPIRED</span>
+          <span class="num">1</span>
+        </div>
+      </div>
+    </div>
+    <div class="card-list">
+      <div class="card card-a">
+        <p class="card-title">Pull new reward gift card</p>
+        <p class="card-period">Validity: 2020/12/01-2020/05/01</p>
+        <p class="card-value">- $10</p>
+        <p class="card-desc">PTC offline store use</p>
+      </div>
+      <div class="card card-b">
+        <p class="card-title">Pull new reward gift card</p>
+        <p class="card-period">Validity: 2020/12/01-2020/05/01</p>
+        <p class="card-value">- $10 <span class="sub">100 available</span></p>
+        <p class="card-desc">PTC offline store use</p>
+      </div>
+      <div class="card card-c">
+        <p class="card-title">Pull new reward gift card</p>
+        <p class="card-period">Validity: 2020/12/01-2020/05/01</p>
+        <p class="card-value">- $10</p>
+        <p class="card-desc">PTC offline store use</p>
+      </div>
+      <div class="card card-d">
+        <p class="card-title">Pull new reward gift card</p>
+        <p class="card-period">Validity: 2020/12/01-2020/05/01</p>
+        <p class="card-value">- $10 <span class="sub">100 available</span></p>
+        <p class="card-desc">PTC offline store use</p>
+      </div>
+      <div class="card card-e">
+        <p class="card-title">Pull new reward gift card</p>
+        <p class="card-period">Validity: 2020/12/01-2020/05/01</p>
+        <p class="card-value">- $10 <span class="sub">100 available</span></p>
+        <p class="card-desc">PTC offline store use</p>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+
+const type = ref(0)
+</script>
+
+<style lang="scss">
+.p-gift-card {
+  .fixed {
+    position: fixed;
+    top: $nav-bar-height;
+    left: 0;
+    right: 0;
+  }
+  .tabs {
+    display: flex;
+    justify-content: space-around;
+    line-height: 104px;
+    background: #fff;
+  }
+  .tab {
+    position: relative;
+    font-size: 32px;
+    font-weight: 500;
+    color: #666;
+    &.active {
+      font-weight: bold;
+      color: $primary-color;
+
+      &::after {
+        content: '';
+        position: absolute;
+        bottom: 0;
+        left: 50%;
+        transform: translateX(-50%);
+        width: 92px;
+        height: 4px;
+        background: #193059;
+        border-radius: 2px;
+      }
+    }
+    .num {
+      position: absolute;
+      top: 22px;
+      right: -4px;
+      transform: translateX(100%);
+      font-size: 24px;
+      line-height: 1;
+    }
+  }
+
+  .card-list {
+    margin-top: 232px;
+    padding: 50px 34px 0;
+  }
+  .card {
+    margin-bottom: 48px;
+    height: 296px;
+    text-align: center;
+    font-weight: bold;
+    background-size: 100% 100%;
+    line-height: 1;
+    overflow: hidden;
+
+    &-title {
+      margin: 32px 0 16px;
+      font-size: 32px;
+    }
+    &-period,
+    &-desc {
+      font-size: 28px;
+    }
+    &-value {
+      margin: 40px 0 32px;
+      font-size: 56px;
+      .sub {
+        font-size: 40px;
+      }
+    }
+
+    &-a {
+      background-image: url(@img/coupon0.png);
+      .card-title,
+      .card-value {
+        color: $primary-color;
+      }
+      .card-period,
+      .card-desc {
+        color: #9aa8c5;
+      }
+    }
+    &-b {
+      background-image: url(@img/coupon1.png);
+      .card-title,
+      .card-value {
+        color: #cb2927;
+      }
+      .card-period,
+      .card-desc {
+        color: #f8a7a6;
+      }
+    }
+    &-c {
+      background-image: url(@img/coupon2.png);
+      color: #9aa8c5;
+    }
+    &-d {
+      background-image: url(@img/coupon3.png);
+      color: #f8a7a6;
+    }
+    &-e {
+      background-image: url(@img/coupon4.png);
+      color: #999;
+    }
+  }
+}
+</style>

+ 4 - 0
src/router.ts

@@ -37,5 +37,9 @@ export default createRouter({
       path: '/order',
       component: () => import('./pages/my-order/index.vue'),
     },
+    {
+      path: '/gift-card',
+      component: () => import('./pages/gift-card/index.vue'),
+    },
   ],
 })

+ 4 - 0
src/style/atom.scss

@@ -35,3 +35,7 @@
 .border-bottom {
   @include thin-border(bottom);
 }
+
+.bg-gray {
+  background: #f7f7f7;
+}