فهرست منبع

商城改版页面调整

sunlupeng 1 سال پیش
والد
کامیت
e679e9f2a0
3فایلهای تغییر یافته به همراه332 افزوده شده و 37 حذف شده
  1. 1 1
      src/permission.js
  2. 209 22
      src/views/HomeView/PointsMall.vue
  3. 122 14
      src/views/HomeView/RedeemView.vue

+ 1 - 1
src/permission.js

@@ -4,7 +4,7 @@ import { getToken, setToken } from '@/utils/auth' // getToken from cookie
 import { lockStatus,unlock } from "@/api/allApi";
 //路由跳转之前
 router.beforeEach((to, _from, next) => {
-  // setToken('aad99e8f2a2997d2bdc2a9ac6c87ec8d');
+  setToken('1961120e1bdc270a02b55149c4b32781');
   const path = to.path;
   const Authorization = to.query.Authorization
   if (path.indexOf('auth') != -1 && Authorization) { 

+ 209 - 22
src/views/HomeView/PointsMall.vue

@@ -12,7 +12,31 @@
                         </el-carousel-item>
                     </el-carousel>
                 </div>
-        <div class="notice-board">
+                <div class="entry-list-container">
+                    <div class="tab-header" style="border-bottom:none">
+                        <span class="tab-title">秒杀活动</span>
+                    </div>
+                    <div class="special-goods-list">
+                        <div class="special-goods-item" v-for="(item,index) in specialGoodsList" :key="index">
+                            <!-- <img width="100%" :src="item.url" alt=""> -->
+                            <div class="ctrl-box">
+                                <div class="label">
+                                    <span>{{ item.name }}</span>
+                                </div>
+                                <div class="instantPrice">
+                                    <span>秒杀价:</span><span style="color: red;font-weight: bold;">{{ item.instantPrice }}</span>
+                                </div>
+                                <div class="price line-through">
+                                    <span>原价:</span><span>{{ item.price }}</span>
+                                </div>
+                                <div class="statusButton" :class="item.status == 0 ? '' : 'disabled'" @click="specialGoods(item)">
+                                    <span>{{ item.status == 0 ? '立即秒杀' : item.status == 1 ? '已无货' : '已结束' }}</span>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+        <!-- <div class="notice-board">
             <div class="notice-header">
                 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"
                     class="icon-speaker">
@@ -34,13 +58,10 @@
             <div class="notice-content" v-html="noticeContent">
 
             </div>
-        </div>
+        </div> -->
         <div class="myTabs" style="background: #fff;">
             <el-tabs style="padding: 0 20px 40px 20px;" v-model="activeName" @tab-click="handleClick">
                 <el-tab-pane label="积分兑换" name="goodsNotice">
-                    <el-input clearable style="width: 200px;" size="small" v-model="goodsName"
-                        placeholder="物品名称" @blur="goodsName=$event.target.value.trim()"></el-input>
-                    <el-button size="small" style="margin-left: 30px;" type="primary" @click="handleFilter">查询</el-button>
                     <div class="tab-list" style="margin-top: 10px;">
                         <div :class="{ 'tab': true, 'checked': item.checked }" v-for="(item) in options"
                             :key="item.dictValue" @click="choseProductAttributeType(item)">
@@ -53,12 +74,15 @@
                             {{ item.dictLabel }}
                         </div>
                     </div>
-                    <!-- <div class="tab-list" style="margin-top: 10px;">
+                    <div class="tab-list" style="margin-top: 10px;">
                         <div :class="{ 'tab': true, 'checked': item.checked }" v-for="(item) in deliveryTypeList"
                             :key="item.type" @click="choseDeliveryType(item)">
                             {{ item.name }}
                         </div>
-                    </div> -->
+                        <el-input clearable style="width: 200px;" size="small" v-model="goodsName"
+                        placeholder="物品名称" @blur="goodsName=$event.target.value.trim()"></el-input>
+                    <el-button size="small" style="margin-left: 30px;" type="primary" @click="handleFilter">查询</el-button>
+                    </div>
                     <!-- <div class="tab-list" style="margin-top: 10px;">
                         <div :class="{ 'tab': true, 'checked': item.checked }" v-for="(item) in orderByClauseList"
                             :key="item.orderByClause" @click="changeOrderByClause(item)">
@@ -183,6 +207,44 @@ import { debounce } from '@/utils/index'
 export default {
     data() {
         return {
+            specialGoodsList:[
+        {
+                    id:1,
+                    path:'/home/pointsMall/redeem?id=20&name=goodsNotice&type=8',
+                    url:'https://xiaoyou.dgtis.com/images/image/2023/07/05/pjwrhbotzayyny9vk1be.jpg',
+                    name:'全球家居',
+                    instantPrice:2999,
+                    price:6000,
+                    status:0,
+                },
+                {
+                    id:2,
+                    path:'/home/pointsMall/redeem?id=19&name=goodsNotice&type=8',
+                    url:'https://xiaoyou.dgtis.com/images/image/2023/07/05/pjwrhbotzayyny9vk1be.jpg',
+                    name:'全球母婴',
+                    instantPrice:2999,
+                    price:6000,
+                    status:1,
+                },
+                {
+                    id:3,
+                    path:'/home/pointsMall/redeem?id=18&name=goodsNotice&type=8',
+                    url:'https://xiaoyou.dgtis.com/images/image/2023/07/05/pjwrhbotzayyny9vk1be.jpg',
+                    name:'全球保健品',
+                    instantPrice:2999,
+                    price:6000,
+                    status:2,
+                },
+                {
+                    id:4,
+                    path:'/home/pointsMall/redeem?id=18&name=goodsNotice&type=8',
+                    url:'https://xiaoyou.dgtis.com/images/image/2023/07/05/pjwrhbotzayyny9vk1be.jpg',
+                    name:'全球电器',
+                    instantPrice:2999,
+                    price:6000,
+                    status:3,
+                },
+        ],
             dialogVisible: false,
             skuDesc:'',
             bannerList: [],
@@ -197,31 +259,46 @@ export default {
             orderByClause: 'desc',//积分升降
             deliveryType: '',
             deliveryTypeList: [
-                {
+            {
                     type: '',
                     checked: true,
-                    name: '全部'
+                    name: '默认'
                 },
                 {
                     type: 0,
                     checked: false,
-                    name: '办公室领取'
+                    name: '销量'
                 },
                 {
                     type: 1,
                     checked: false,
-                    name: '快递'
-                },
-                {
-                    type: 2,
-                    checked: false,
-                    name: '卷码兑换'
-                },
-                {
-                    type: 3,
-                    checked: false,
-                    name: '线下组织'
+                    name: '价格'
                 },
+                // {
+                //     type: '',
+                //     checked: true,
+                //     name: '全部'
+                // },
+                // {
+                //     type: 0,
+                //     checked: false,
+                //     name: '办公室领取'
+                // },
+                // {
+                //     type: 1,
+                //     checked: false,
+                //     name: '快递'
+                // },
+                // {
+                //     type: 2,
+                //     checked: false,
+                //     name: '卷码兑换'
+                // },
+                // {
+                //     type: 3,
+                //     checked: false,
+                //     name: '线下组织'
+                // },
             ],
             orderByClauseList: [
                 {
@@ -256,6 +333,13 @@ export default {
         this.getNotice(this.activeName);
     },
     methods: {
+        specialGoods(val){
+            if(val.status == 0){
+                this.$router.push({
+                    path: val.path,
+                })
+            }
+        },
         getDataInfo(id){
             integralInfo({skuId:id}).then(response => {
                     this.data = response.data.data;
@@ -413,7 +497,7 @@ export default {
                 productAttribute: this.productAttribute,
                 pointsRange:this.pointsRange,
                 // orderByClause: this.orderByClause,
-                // deliveryType: this.deliveryType
+                deliveryType: this.deliveryType
             }
 
             integralList(params).then(response => {
@@ -749,4 +833,107 @@ button {
     color: #fff;
     box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05), 0 1px 2px 0 rgba(0, 0, 0, .05);
 }
+.entry-list-container{
+    background-color: #fff;
+    border-radius: 4px;
+}
+.entry-list-container .tab-header {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding: 20px 20px 16px;
+    border-bottom: 1px solid #e5e6eb;
+    overflow: hidden;
+}
+
+.tab-header .tab-title {
+    white-space: nowrap;
+    font-size: 18px;
+    font-weight: 600;
+}
+.special-goods-list{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+.special-goods-list .special-goods-item{
+    position: relative;
+    /* padding: 0 6px; */
+    width: 230px;
+    height: 169px;
+    min-width: 0;
+}
+.special-goods-item .ctrl-box .label{
+    position: absolute;
+    left: 20px;
+    top: 30px;
+    line-height: 30px;
+    height: 30px;
+    width: 100px;
+    /* text-align: center; */
+    font-size: 16px;
+    z-index: 1;
+    color: black;
+    /* background-color: #fff;
+    border: 1px solid #fff; */
+    /* border-radius: 6px; */
+    font-weight: 800;
+    
+}
+.special-goods-item .ctrl-box .instantPrice{
+    position: absolute;
+    left: 20px;
+    top: 60px;
+    line-height: 30px;
+    height: 30px;
+    width: 50%;
+    /* text-align: center; */
+    font-size: 16px;
+    z-index: 1;
+    color: black;
+    /* background-color: #fff;
+    border: 1px solid #fff;
+    border-radius: 6px; */
+    font-weight: 300;
+}
+.special-goods-item .ctrl-box .price{
+    position: absolute;
+    left: 20px;
+    top: 90px;
+    line-height: 30px;
+    height: 30px;
+    width: 100px;
+    /* text-align: center; */
+    font-size: 16px;
+    z-index: 1;
+    color: black;
+    /* background-color: rgba(0, 0, 0, .2);
+    border: 1px solid #fff;
+    border-radius: 6px; */
+    font-weight: bold;
+}
+.special-goods-item .ctrl-box .statusButton{
+    cursor: pointer;
+    position: absolute;
+    left: 20px;
+    top: 120px;
+    line-height: 30px;
+    height: 30px;
+    width: 100px;
+    text-align: center;
+    font-size: 16px;
+    z-index: 1;
+    color: #fff;
+    background-color: red;
+    border: 1px solid red;
+    border-radius: 6px;
+    font-weight: 300;
+}
+.special-goods-item .ctrl-box .disabled{
+    background-color: rgba(0, 0, 0, .2);
+    border: 1px solid #fff;
+}
+.line-through {
+    text-decoration: line-through
+}
 </style>

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 122 - 14
src/views/HomeView/RedeemView.vue