ソースを参照

每日抽奖十连抽;司庆日活动

sunlupeng 1 年間 前
コミット
bf6a18f0f3

+ 18 - 17
public/dailyDrawCarousel.html

@@ -89,12 +89,12 @@
       align-items: center;
       font-size: 14px;
       font-weight: 600;
-      right: 8%;
-      top: 22%;
+      right: 10%;
+      bottom: 7%;
     }
 
     .recordBtn>img {
-      width: 80px;
+      width: 75px;
       height: auto;
     }
 
@@ -188,12 +188,10 @@
     <div class="rules" @click="showRules">
       抽奖<br>规则
     </div>
-    <!-- <div class="recordBtn" @click="showRecordList">
-      获奖<br>名单
-    </div> -->
-    <!-- <div class="recordBtn" @click="showRecordList">
-      <img src="https://xiaoyou.dgtis.com/images/image/2023/09/06/lt1vbg426idwq725ysdm.png" alt="抽奖记录">
-    </div> -->
+    <div class="recordBtn" @click="showRecordList">
+      <!-- <img src="https://xiaoyou.dgtis.com/images/image/2023/09/06/lt1vbg426idwq725ysdm.png" alt="抽奖记录"> -->
+      <img src="https://xiaoyou.dgtis.com/images/image/2024/11/28/9p4ts0l94ngnz9rac48b.png" alt="十连抽奖">
+    </div>
     <div class="container">
       <div class="prize-list" ref="prizeWrap" :style="bgColor">
         <div class="prize-item" v-for="(item, index) in prizeList" :style="prizeStyle(index)">
@@ -206,19 +204,22 @@
     <el-dialog v-model="dialogVisible" title="抽奖规则" width="70%" center>
       <div style="max-height: 400px;overflow: auto;" v-html="rule"></div>
     </el-dialog>
-    <el-dialog v-model="dialogRecordList" title="获奖名单" width="80%" center>
+    <el-dialog v-model="dialogRecordList" title="中奖记录" width="40%" center>
       <div class="recordListBox">
-        <div class="recordItem title">
+        <!-- <div class="recordItem title">
           <div style="width: 30%;text-align: center;">姓名</div>
           <div style="width: 30%;text-align: center;">奖品</div>
           <div style="width: 40%;text-align: center;">获奖时间</div>
+        </div> -->
+        <!-- <el-empty description="暂无数据" v-if="recordList.length==0" :image-size="20"></el-empty> -->
+        <div class="recordItem">
+          <div style="width: 100%;text-align: center;">恭喜,你中了10积分</div>
         </div>
-        <el-empty description="暂无数据" v-if="recordList.length==0" :image-size="20"></el-empty>
-        <div class="recordItem" v-for="(item, index) in recordList">
-          <div style="width: 30%;text-align: center;">{{item.userName}}</div>
+        <!-- <div class="recordItem" v-for="(item, index) in recordList">
+          <div style="width: 100%;text-align: center;">{{item.userName}}</div>
           <div style="width: 30%;text-align: center;">{{item.prizeName}}</div>
           <div style="width: 40%;text-align: center;">{{item.createTime}}</div>
-        </div>
+        </div> -->
       </div>
     </el-dialog>
   </div>
@@ -420,8 +421,8 @@
           $.ajax({
             type: type,
             // url: 'http://192.168.100.208:9083/admin' + url, //本地
-            // url: "http://47.103.79.143:9085/admin" + url,//测试环境
-            url:"https://xiaoyou.dgtis.com/admin"+ url,//正式环境
+            url: "http://47.103.79.143:9085/admin" + url,//测试环境
+            // url:"https://xiaoyou.dgtis.com/admin"+ url,//正式环境
             data: data,
             contentType: type === 'post' ? false : true,
             processData: type === 'post' ? false : true,

BIN
src/assets/image/answerGame/siQingRi/answer.png


BIN
src/assets/image/answerGame/siQingRi/exit.png


BIN
src/assets/image/answerGame/siQingRi/finish.png


BIN
src/assets/image/answerGame/siQingRi/homeBg.png


BIN
src/assets/image/answerGame/siQingRi/rules.png


+ 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('58be5aebe9aba9a1db7b24e052f59bf5');
+  setToken('96fcd42ce2f48d221d7fe73b9634aaaa');
   const path = to.path;
   const Authorization = to.query.Authorization
   if (path.indexOf('auth') != -1 && Authorization) { 

+ 4 - 0
src/router/index.js

@@ -82,6 +82,10 @@ const routes = [
         path: '/home/festiveEvents/game',
         component: () => import('@/views/HomeView/Game.vue')
       },
+      {
+        path: '/home/festiveEvents/siQingRiQianDao',
+        component: () => import('@/views/HomeView/AnswerGame/SiQingRiQianDao.vue')
+      },
       {
         path: '/home/festiveEvents/shuangShiYiQianDao',
         component: () => import('@/views/HomeView/AnswerGame/ShuangShiYIQianDao.vue')

+ 351 - 0
src/views/HomeView/AnswerGame/SiQingRiQianDao.vue

@@ -0,0 +1,351 @@
+<template>
+    <div class="timeline-container">
+        <div class="timeline-content">
+            <div class="timeline-entry-list">
+                <div class="gameBox">
+                    <div class="home">
+                        <div :class="{ 'dim': isDim }">
+                            <!-- <img class="rules" src="@/assets/image/answerGame/siQingRi/rules.png" alt="互动规则" @click="clickRuleWrapper"> -->
+                            <img class="answer" src="@/assets/image/answerGame/siQingRi/answer.png" alt="答题按钮" @click="clickAnswer">
+                            <img class="exit" src="@/assets/image/answerGame/siQingRi/exit.png" alt="退出互动" @click="getOut">
+                        </div>
+                        
+                    </div>
+                    <div class="ruleWrapper" v-if="isRuleWrapper">
+                        <el-card class="box-card">
+                            <div slot="header" class="clearfix">
+                                <span>互动规则</span>
+                                <span style="float: right; font-size: 20px;cursor: pointer;" @click="closeRuleWrapper">
+                                    <i class="el-icon-close"></i>
+                                </span>
+                            </div>
+                            <div v-html="rule"></div>
+                        </el-card>
+                    </div>
+                    <div class="confirmWrapper" v-if="isConfirmWrapper" @click="getOut">
+                    </div>
+                </div>
+            </div>
+            <SiderInfo></SiderInfo>
+        </div>
+    </div>
+</template>
+<script>
+import { homeData,MidAutumnSignIn } from "@/api/allApi";
+import SiderInfo from '@/components/SiderInfo.vue';
+export default{
+  components: {
+    SiderInfo
+  },
+  data() {
+    return {
+        actId:this.$route.query.actId,
+        rule:'',
+        isConfirmWrapper:false,
+        isRuleWrapper: false,
+        isDim:false,
+    };
+  },
+  created(){
+    this.getHomeData();
+  },
+  methods:{
+    getOut(){
+        this.$router.push({
+                path: '/home/festiveEvents',
+            });
+    },
+    getHomeData(){
+        homeData({actId:this.actId}).then(response=>{
+                console.log(response.data.data);
+                this.rule = response.data.data.rule;
+            }).catch(err => {
+                console.log(err)
+            })
+    },
+    clickAnswer(){
+        // this.isDim = true;
+        // this.isConfirmWrapper = true;
+        MidAutumnSignIn({actId:this.actId}).then(response=>{
+            this.isDim = true;
+            this.isConfirmWrapper = true;
+        })
+    },
+    clickRuleWrapper(){
+        this.isDim = true;
+        this.isRuleWrapper = true;
+    },
+    closeRuleWrapper(){
+        this.isDim = false;
+        this.isRuleWrapper = false;
+    }
+  },
+}
+</script>
+<style scoped>
+.timeline-container{
+    margin: 0 auto;
+}
+.timeline-entry-list{
+    margin-right: 17.5rem;
+    border-radius: 2px;
+    width: 720px;
+    position: relative;
+}
+.timeline-entry-list .gameBox{
+    border-radius: 4px 4px 0 0;
+    position: relative;
+    padding: 2.667rem 0;
+    z-index: 1;
+    overflow: hidden;
+    background-color: #fff;
+    padding-left: 2.67rem;
+    padding-right: 2.67rem;
+    margin-bottom: 2rem;
+    box-sizing: border-box;
+    min-height: 280px;
+    display: flex;
+    justify-content: center;
+    align-content: center;
+}
+.gameBox .item{
+    position: relative;
+    z-index: 10;
+    background: url(@/assets/image/answerGame/item/itemBg.png) no-repeat;
+    background-size: 100% 100%;
+    width: 375px;
+    height: 667px;
+}
+.item .integralBox{
+    position: absolute;
+    top: 7.3%;
+    right: 8%;
+    width: 90px;
+    height: 35.2px;
+    /* background: greenyellow; */
+    display: flex;
+    justify-content: center;
+    line-height: 35.2px;
+}
+.integralBox .integral{
+    font-size: 16px;
+    color: orange;
+    font-weight: 600;
+}
+.item .timer{
+    position: absolute;
+    background: url(@/assets/image/answerGame/item/timer.png) no-repeat;
+    background-size: 100% 100%;
+    width: 80px;
+    height: 80px;
+    top: 15%;
+    right: 10%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+.timer .second{
+    font-size: 16px;
+    color: #fff;
+    font-weight: 600;
+}
+.item .topicNum{
+    position: absolute;
+    background: url(@/assets/image/answerGame/item/topicNum.png) no-repeat;
+    background-size: 100% 100%;
+    width: 120px;
+    height: 42px;
+    top: 25%;
+    left: 4.8%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+.topicNum .topic{
+    font-size: 16px;
+    color: #fff;
+    font-weight: 600;
+}
+.item .questionBox{
+    position: absolute;
+    width: 375px;
+    top: 28%;
+    left: 0;
+    right: 0;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+}
+.questionBox .title{
+    margin:auto 50px;
+    height: 180px;
+    font-size: 18px;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    /* font-weight: 600; */
+}
+.content{
+    width: 100%;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+}
+.answerItem{
+    cursor: pointer;
+    margin: 10px 0;
+    color: #3883fa;
+    background: rgb(221, 218, 218);
+    border-radius: 20px;
+    width: 80%;
+    height: 40px;
+    line-height: 40px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    position: relative;
+}
+.right {
+  /*选择正确的答案颜色*/
+  background: #3ede58;
+  color: #fff;
+}
+
+.error {
+  /*选择错误的答案颜色*/
+  background: #e53117;
+  color: #fff;
+}
+.invisible{
+    width: 25px;
+    position: absolute;
+    right: 15px;
+}
+.gameBox .home{
+    position: relative;
+    z-index: 10;
+    background: url(@/assets/image/answerGame/siQingRi/homeBg.png) no-repeat;
+    background-size: 100% 100%;
+    width: 375px;
+    height: 667px;
+}
+.home .rules{
+    cursor: pointer;
+    position: absolute;
+    width: 50px;
+    top: 20%;
+    left: 5%;
+}
+.home .top{
+    position: absolute;
+    bottom: 23%;
+    left: 0;
+    right: 0;
+    margin:auto;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+.home .answer{
+    cursor: pointer;
+    position: absolute;
+    width: 180px;
+    bottom: 22%;
+    left: 0;
+    right: 0;
+    margin:auto;
+}
+.home .exit{
+    cursor: pointer;
+    position: absolute;
+    width: 180px;
+    bottom: 12%;
+    left: 0;
+    right: 0;
+    margin:auto;
+}
+.hidden {
+    display: none;
+}
+
+.show {
+    display: block;
+}
+
+.dim {
+    /* opacity:0.6; */
+    height:100%;
+    width:100%;
+    background: rgba(0,0,0,.4);
+    pointer-events: none;
+}
+
+  .clearfix:before,
+  .clearfix:after {
+    display: table;
+    content: "";
+  }
+  .clearfix:after {
+    clear: both
+  }
+  .ruleWrapper{
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    z-index: 12;
+  }
+  .box-card {
+    width: 350px;
+  }
+
+  .confirmWrapper{
+    cursor: pointer;
+    position: absolute;
+    background: url(@/assets/image/answerGame/siQingRi/finish.png) no-repeat;
+    background-size: 100% 100%;
+    width: 253px;
+    height: 213px;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    z-index: 12;
+    display: flex;
+    justify-content: center;
+    align-items: flex-end;
+  }
+  .confirmWrapper .goHome{
+    cursor: pointer;
+    width: 112px;
+    height: 55px;
+  }
+
+  .failWrapper{
+    position: absolute;
+    background: url(@/assets/image/answerGame/item/fail.png) no-repeat;
+    background-size: 100% 100%;
+    width: 240px;
+    height: 208.5px;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    z-index: 12;
+    display: flex;
+    justify-content: center;
+    align-items: flex-end;
+  }
+  .failWrapper .goHome{
+    cursor: pointer;
+    width: 112px;
+    height: 55px;
+  }
+  
+</style>
+<style>
+.el-card__header {
+    padding: 10px 20px !important;
+}
+</style>

+ 10 - 0
src/views/HomeView/FestiveEvents.vue

@@ -78,6 +78,16 @@ export default {
             console.log(val);
             //节日游戏
             if(val.type=='1'){
+                //司庆日签到 测试 正式44
+                if(val.actId==44){
+                    this.$router.push({
+                        path: '/home/festiveEvents/siQingRiQianDao',
+                        query: {
+                            actId:val.actId
+                        }
+                    });
+                    return;
+                }
                 //双十一签到 测试 正式43
                 if(val.actId==43){
                     this.$router.push({