瀏覽代碼

Merge branch 'pre'

sunlupeng 1 年之前
父節點
當前提交
d4effbd427

二進制
src/assets/image/answerGame/kaijiang/answer.png


二進制
src/assets/image/answerGame/kaijiang/exit.png


二進制
src/assets/image/answerGame/kaijiang/finish.png


二進制
src/assets/image/answerGame/kaijiang/homeBg.png


二進制
src/assets/image/answerGame/kaijiang/rules.png


二進制
src/assets/image/answerGame/kaijiang/关闭按钮.png


二進制
src/assets/image/answerGame/kaijiang/前往充值.png


二進制
src/assets/image/answerGame/kaijiang/提示.png


二進制
src/assets/image/answerGame/kaijiang/确认兑换.png


二進制
src/assets/image/answerGame/zhongqiu/answer.png


二進制
src/assets/image/answerGame/zhongqiu/exit.png


二進制
src/assets/image/answerGame/zhongqiu/finish.png


二進制
src/assets/image/answerGame/zhongqiu/homeBg.jpg


二進制
src/assets/image/answerGame/zhongqiu/rules.png


二進制
src/assets/image/answerGame/zhongqiu/中秋封面.jpg


+ 2 - 2
src/main.js

@@ -9,9 +9,9 @@ import './assets/css/global.css';
 import './assets/icon/iconfont.css';
 import './permission' // permission control
 
-// const prodUrl = 'https://xiaoyou.dgtis.com/admin/storage/create';//正式地址
+const prodUrl = 'https://xiaoyou.dgtis.com/admin/storage/create';//正式地址
 
-const prodUrl = 'http://47.103.79.143:9085/admin/storage/create';//阿里云地址
+// const prodUrl = 'http://47.103.79.143:9085/admin/storage/create';//阿里云地址
 
 const devUrl = 'http://192.168.100.208:8080/admin/storage/create';//测试地址
 

+ 3 - 3
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('1899ad90994fee4b22c722a9ce5c9a7b');
+  // setToken('aad99e8f2a2997d2bdc2a9ac6c87ec8d');
   const path = to.path;
   const Authorization = to.query.Authorization
   if (path.indexOf('auth') != -1 && Authorization) { 
@@ -33,9 +33,9 @@ router.beforeEach((to, _from, next) => {
       
     }else{
       
-      // const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
+      const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
 
-      const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
+      // const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
       
       const devHref = 'http://192.168.100.208:8080/oneportal/login';//测试地址
 

+ 12 - 0
src/router/index.js

@@ -82,6 +82,14 @@ const routes = [
         path: '/home/festiveEvents/game',
         component: () => import('@/views/HomeView/Game.vue')
       },
+      {
+        path: '/home/festiveEvents/zhongQiuQianDao',
+        component: () => import('@/views/HomeView/AnswerGame/ZhongQiuQianDao.vue')
+      },
+      {
+        path: '/home/festiveEvents/kaijiang',
+        component: () => import('@/views/HomeView/AnswerGame/Kaijiang.vue')
+      },
       {
         path: '/home/festiveEvents/answerGame',
         component: () => import('@/views/HomeView/AnswerGame/AnswerGame.vue')
@@ -108,6 +116,10 @@ const routes = [
       },
     ]
   },
+  {
+    path: '/rechargeAgreement',
+    component: () => import('../views/RechargeAgreement.vue'),
+  },
   {
     path: '/noticeCenter',
     component: () => import('../views/NoticeCenter.vue'),

+ 4 - 4
src/utils/request.js

@@ -2,9 +2,9 @@ import axios from 'axios'
 import { Message, MessageBox } from 'element-ui'
 import { getToken } from '@/utils/auth'
 
-// let prodBaseURL = 'https://xiaoyou.dgtis.com/admin';//正式地址
+let prodBaseURL = 'https://xiaoyou.dgtis.com/admin';//正式地址
 
-let prodBaseURL = 'https://malltest.dgtis.com/admin';//阿里云地址
+// let prodBaseURL = 'https://malltest.dgtis.com/admin';//阿里云地址
 
 let devBaseURL = 'https://malltest.dgtis.com/admin';//测试地址
 
@@ -39,9 +39,9 @@ service.interceptors.response.use(
           type: 'error'
         }).then(() => {
             
-            // const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
+            const prodHref = 'http://dgt.dgtis.com/oneportal/login';//正式地址
 
-            const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
+            // const prodHref = 'http://dgtcloud.dgtis.com/oneportal/login';//阿里云地址
           
             const devHref = 'http://192.168.100.208:8080/oneportal/login'; //测试地址
 

+ 353 - 0
src/views/HomeView/AnswerGame/Kaijiang.vue

@@ -0,0 +1,353 @@
+<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/kaijiang/rules.png" alt="互动规则" @click="clickRuleWrapper">
+                            <div class="top" v-if="top">
+                                <span style="font-size: 18px;color: #fff;font-weight: 600;">当前拥有抽奖券:{{ top }}张</span>
+                            </div>
+                            <img class="answer" src="@/assets/image/answerGame/kaijiang/answer.png" alt="答题按钮" @click="clickAnswer">
+                            <img class="exit" src="@/assets/image/answerGame/kaijiang/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:'',
+        top:'1',
+        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(){
+        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/kaijiang/homeBg.png) no-repeat;
+    background-size: 100% 100%;
+    width: 375px;
+    height: 667px;
+}
+.home .rules{
+    cursor: pointer;
+    position: absolute;
+    width: 35px;
+    top: 35%;
+    left: 5%;
+}
+.home .top{
+    position: absolute;
+    bottom: 20%;
+    left: 0;
+    right: 0;
+    margin:auto;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+}
+.home .answer{
+    cursor: pointer;
+    position: absolute;
+    width: 280px;
+    bottom: 10%;
+    left: 0;
+    right: 0;
+    margin:auto;
+}
+.home .exit{
+    cursor: pointer;
+    position: absolute;
+    width: 280px;
+    bottom: 2%;
+    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/kaijiang/finish.png) no-repeat;
+    background-size: 100% 100%;
+    width: 271px;
+    height: 326px;
+    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>

+ 349 - 0
src/views/HomeView/AnswerGame/ZhongQiuQianDao.vue

@@ -0,0 +1,349 @@
+<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/zhongqiu/rules.png" alt="互动规则" @click="clickRuleWrapper">
+                            <img class="answer" src="@/assets/image/answerGame/zhongqiu/answer.png" alt="答题按钮" @click="clickAnswer">
+                            <img class="exit" src="@/assets/image/answerGame/zhongqiu/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(){
+        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/zhongqiu/homeBg.jpg) 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: 200px;
+    bottom: 22%;
+    left: 0;
+    right: 0;
+    margin:auto;
+}
+.home .exit{
+    cursor: pointer;
+    position: absolute;
+    width: 200px;
+    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/zhongqiu/finish.png) no-repeat;
+    background-size: 100% 100%;
+    width: 271px;
+    height: 326px;
+    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 - 3
src/views/HomeView/EarnPoints.vue

@@ -200,7 +200,9 @@
           <el-empty v-if="!integralRules" :image-size="200"></el-empty>
           <div v-else v-html="integralRules"></div>
         </el-tab-pane>
-
+        <el-tab-pane label="积分充值" name="fifth">
+          <Ipay></Ipay>
+        </el-tab-pane>
       </el-tabs>
     </div>
     <el-dialog title="上传证书" :visible.sync="dialogVisible" width="40%">
@@ -273,12 +275,12 @@
         </el-form-item>
         <el-form-item label="开始时间:" prop="startTime">
           <el-date-picker :disabled="dialogStatus=='view'?true:false" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
-            :picker-options="setDisabled" v-model="dataFormTrain.startTime" placeholder="请选择开始时间" style="width: 95%">
+            v-model="dataFormTrain.startTime" placeholder="请选择开始时间" style="width: 95%">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="结束时间:" prop="endTime">
           <el-date-picker :disabled="dialogStatus=='view'?true:false" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" type="datetime"
-            :picker-options="setDisabled" v-model="dataFormTrain.endTime" placeholder="请选择结束时间" style="width: 95%">
+            v-model="dataFormTrain.endTime" placeholder="请选择结束时间" style="width: 95%">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="培训讲师:" prop="lecturer">
@@ -337,11 +339,16 @@
   </div>
 </template>
 <script scoped>
+import Ipay from '@/views/Ipay.vue'
 import { certificatePage, certificateUpload, notice, certificatType, dictList, allUserList, citeList, uploadCite, editCite, trainList, uploadTrain,editTrain,remarkHtml } from "@/api/allApi";
 import { handleTree } from '@/utils/index'
 export default {
+  components: {
+    Ipay
+  },
   data() {
     return {
+      currentPage: 1,
       remarkHtml:'',
       citeLogsList:[],
       trainLogsList:[],

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

@@ -78,8 +78,17 @@ export default {
             console.log(val);
             //节日游戏
             if(val.type=='1'){
+                //中秋节签到
+                if(val.actId==23){
+                    this.$router.push({
+                        path: '/home/festiveEvents/kaijiang',
+                        query: {
+                            actId:val.actId
+                        }
+                    });
+                }
                  //元宵节答题
-                if(val.actId==13){
+                else if(val.actId==13){
                     this.$router.push({
                         path: '/home/festiveEvents/lanternFestival',
                         query: {

+ 3 - 3
src/views/HomeView/PointsMall.vue

@@ -512,7 +512,7 @@ export default {
         },
         getFirstList() {
             let params = {
-                limit: 8,
+                limit: 16,
                 page: this.page,
                 name: this.goodsName,
                 productAttribute: this.productAttribute,
@@ -593,7 +593,7 @@ export default {
             var scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight;
             //滚动条到底部的条件
             console.log("距顶部---" + scrollTop + "可视区高度---" + windowHeight + "滚动条总高度---" + scrollHeight);
-            if (scrollHeight - (scrollTop + windowHeight) < 1) {
+            if (scrollHeight - (scrollTop + windowHeight) < 500) {
                 if (this.page > this.pages) {
                     return
                 } else {
@@ -603,7 +603,7 @@ export default {
         },
     },
     mounted() {
-        window.addEventListener('scroll', debounce(this.handleScroll,500));
+        window.addEventListener('scroll', debounce(this.handleScroll,100));
     },
     destroyed() {
         console.log('lalalal')

+ 12 - 7
src/views/HomeView/RedeemView.vue

@@ -442,7 +442,7 @@
         <el-dialog title="物品详情" :visible.sync="dialogVisibleGoods" width="40%">
             <div v-html="data.skuDesc"></div>
         </el-dialog>
-        <el-dialog title="扫码充值" :visible.sync="recharge" width="40%" :before-close="beforeClose">
+        <el-dialog title="扫码充值" :visible.sync="recharge" width="30%" :before-close="beforeClose">
             <div class="payBox-way">
                 <div class="way-item">
                     <div class="item-left">
@@ -453,14 +453,14 @@
                             <div>应付金额</div>
                             <div style="color: #fe2c55;margin-left: 8px;">¥ {{ money }}</div>
                         </div>
-                        <div class="center">
+                        <div class="down">
                             <img style="height: 18px;" src="../../assets/icon/weixinPay.png" alt="weixinpay">
                             <div class="textStyle">微信扫码支付</div>
                         </div>
-                        <div class="down">
+                        <!-- <div class="down">
                             <div>扫码支付代表已阅读并同意</div>
                             <div style="color: #04498d;cursor: pointer;">《充值协议》</div>
-                        </div>
+                        </div> -->
                     </div>
                 </div>
             </div>
@@ -645,8 +645,11 @@ export default {
                     this.handleQueryWxPayStatus(data.orderNo);
                 }, 1000);
                 this.timerPayWxQRcode = setInterval(() => {    // 刷新微信支付二维码
+                    console.log('刷新微信支付二维码');
+                    clearInterval(this.timer);    // 清除定时器;   
+                    clearInterval(this.timerPayWxQRcode);
                     this.handlePayWxQRcode();
-                }, 180000);
+                }, 60000);
             })
         },
         handleQueryWxPayStatus(orderNo) {  // 查询微信支付状态
@@ -654,8 +657,8 @@ export default {
                 orderNo: orderNo,
             }).then(res => {
                 let data = res.data.data;
-                if (data != "订单未支付") {    // 当查询到支付成功时
-                    this.$store.dispatch('GetUserInfo');
+                if (data == '支付成功') {    // 当查询到支付成功时
+                    this.$store.dispatch('GetUserInfo');   
                     this.$message({
                         type: 'success',
                         message: '支付成功!'
@@ -665,6 +668,8 @@ export default {
                     clearInterval(this.timer);    // 清除定时器;   
                     clearInterval(this.timerPayWxQRcode);
                 }
+            }).catch(err => {
+                console.log(err)
             })
         },
         // 清空二维码,避免生成多个二维码

+ 69 - 11
src/views/Ipay.vue

@@ -53,8 +53,8 @@
             <div class="payBox-way">
               <div class="way-item">
                 <div class="item-left">
-                  <div :class="{ 'gray': integralMoney  ? false : true }" id="expCode" ref="expCodeRef"></div>
-                  <div v-if="!integralMoney" style="position: absolute;top: 70px;left: 30px;color: #fff;">请先选择套餐</div>
+                  <div :class="{ 'gray': checked  ? false : true }" id="expCode" ref="expCodeRef"></div>
+                  <div v-if="!checked" class="grayText">请先阅读并同意相关协议再扫码支付</div>
                 </div>
                 <div class="item-right">
                   <div class="up">
@@ -66,8 +66,11 @@
                     <div class="textStyle">微信扫码支付</div>
                   </div>
                   <div class="down">
-                    <div>扫码支付代表已阅读并同意</div>
-                    <div style="color: #04498d;cursor: pointer;">《充值协议》</div>
+                    <el-checkbox v-model="checked" style="margin-right: 5px;font-size: 16px;"></el-checkbox>
+                    <div>
+                      请阅读并同意
+                    </div>
+                    <span style="color: #04498d;cursor: pointer;" @click="getHtmldata()">《充值协议》</span>
                   </div>
                 </div>
               </div>
@@ -76,21 +79,34 @@
         </div>
       </div>
     </div>
+    <el-dialog
+      title="用户充值协议"
+      :visible.sync="dialogVisible"
+      width="50%">
+      <div v-html="htmlData"></div>
+      <span slot="footer" class="dialog-footer" style="display: flex;justify-content: center">
+        <el-button style="width:50%;font-size: 24px;" type="danger" @click="dialogVisible = false">我已知晓</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 <script>
 import QRCode from 'qrcodejs2';
+import { dictList } from "@/api/allApi";
 import { payList, getWxPayCode,queryWxPayStatus } from "@/api/pay";
 export default {
   data() {
     return {
+      checked:false,
+      htmlData:'',
+      dialogVisible: false,
       timerPayWxQRcode: null,
       timer: null,
       fullscreenLoading: false,
       money: undefined,
       integralMoney: undefined,
       visible: false,
-      selected: -2,
+      selected: 0,
       orderNo: undefined,
       rate:undefined,
       payList: [],
@@ -99,11 +115,18 @@ export default {
   },
   created() {
     this.getPayList();
-    this.$nextTick (function () {
-      this.qrcode(this.payUrl);
-    })
+    // this.$nextTick (function () {
+    //   this.handlePayWxQRcode()
+    //   this.qrcode(this.payUrl);
+    // })
   },
   methods: {
+    getHtmldata(){
+      dictList({dictType:'recharge_agreement'}).then(response => {
+          this.htmlData = response.data.data[0].remark; 
+          this.dialogVisible = true;
+      })
+    },
     // 清空二维码,避免生成多个二维码
     delQrcode() {
             this.$refs.expCodeRef.innerHTML = ""
@@ -130,8 +153,11 @@ export default {
           this.handleQueryWxPayStatus(data.orderNo);
         }, 1000);
         this.timerPayWxQRcode = setInterval(() => {    // 刷新微信支付二维码
+          console.log('刷新微信支付二维码');
+          clearInterval(this.timer);    // 清除定时器;   
+          clearInterval(this.timerPayWxQRcode);
           this.handlePayWxQRcode();
-        }, 180000);
+        }, 60000);
       }).catch(err => {
         this.fullscreenLoading = false;
         console.log(err)
@@ -142,7 +168,7 @@ export default {
         orderNo: orderNo,
       }).then(res => {
         let data = res.data.data;
-        if (data != "订单未支付") {    // 当查询到支付成功时
+        if (data == '支付成功') {    // 当查询到支付成功时
           this.$store.dispatch('GetUserInfo'); 
           this.$message({
             type: 'success',
@@ -180,6 +206,8 @@ export default {
       payList().then(response => {
         this.rate = response.data.data.rate;
         this.payList = response.data.data.items;
+        this.integralMoney = response.data.data.items[0].integralMoney;
+        this.handlePayWxQRcode();
       })
     },
   },
@@ -191,6 +219,28 @@ export default {
 }
 </script>
 <style scoped>
+::v-deep .el-dialog {
+  left: 50%;
+  top: 5%;
+  transform: translate(-50%, -5%);
+  margin: 0px !important;
+  border-radius: 8px;
+}
+::v-deep .el-dialog__title,::v-deep .el-dialog__headerbtn{
+  font-size: 24px;
+}
+::v-deep .el-dialog__header {
+    -webkit-box-shadow: 0 1px 4px 0 rgba(31, 45, 61, .12);
+    box-shadow: 0 1px 4px 0 rgba(31, 45, 61, .12);
+}
+::v-deep .el-dialog__body{
+    overflow: auto;
+    overflow-x: hidden;
+    max-height: 70vh!important;
+}
+::v-deep .el-dialog__footer {
+    border-top: 1px solid #d7d9dc;
+}
 .gray {
   filter: blur(4px);
 }
@@ -301,7 +351,15 @@ export default {
   border-radius: 6px;
   padding: 7px;
 }
-
+.item-left .grayText{
+  width: 100px;
+  position: absolute;
+  left: 50%;    
+	top:50%;      
+	transform:translate(-50%,-50%);
+  color: #fff;
+  text-align: center;
+}
 .item-right {
   margin-left: 12px;
 }

+ 18 - 0
src/views/RechargeAgreement.vue

@@ -0,0 +1,18 @@
+<template>
+    <div v-html="htmlData"></div>
+  </template>
+  <script>
+  import { dictList } from "@/api/allApi";
+  export default {
+    data() {
+      return {
+        htmlData:'',
+      };
+    },
+    created() {
+        dictList({dictType:'recharge_agreement'}).then(response => {
+          this.htmlData = response.data.data[0].remark; 
+        })
+    }
+  }
+  </script>