sunlupeng 1 year ago
parent
commit
32245e9a1c

+ 1 - 1
public/drawCarousel.html

@@ -68,7 +68,7 @@
 
     .prize-item img {
       width: 25%;
-      height: 25%;
+      /* height: 25%; */
       margin: 25px auto 10px;
       display: block;
     }

+ 29 - 0
src/api/allApi.js

@@ -1,5 +1,34 @@
 import request from '@/utils/request'
 
+
+//个人中心用户答题记录列表
+export function answerList(query) {
+  return request({
+    url: '/answer/user/list',
+    method: 'get',
+    params:query
+  })
+}
+
+//用户抽奖记录列表
+export function prizeList(query) {
+  return request({
+    url: '/mall-prize/prize/user/log',
+    method: 'get',
+    params:query
+  })
+}
+
+
+//用户阅读消息中心
+export function readMsg(query) {
+  return request({
+    url: '/mall-user/msg/read',
+    method: 'post',
+    params:query
+  })
+}
+
 //用户没过期兑换卷列表
 export function couponList(query) {
   return request({

+ 3 - 2
src/components/AppHeader.vue

@@ -9,9 +9,10 @@
             </router-link>
             <router-link to="/noticeCenter">
                 <div class="header-item">
-                    <!-- <el-badge :value="2" class="item"> -->
+                    <i v-if="userInfo.unreadNum==0" class="el-icon-message-solid"></i>
+                    <el-badge v-else :value="userInfo.unreadNum" :max="99" class="item">
                         <i class="el-icon-message-solid"></i>
-                    <!-- </el-badge> -->
+                    </el-badge>
                     消息中心
                 </div>
             </router-link>

+ 1 - 1
src/views/HomeView/AnswerGame/AnswerGame.vue

@@ -32,7 +32,7 @@
                         <div :class="{ 'dim': isDim }">
                             <img class="rules" src="@/assets/image/answerGame/home/rules.png" alt="互动规则" @click="clickRuleWrapper">
                             <div class="top" v-if="top">
-                                <span style="font-size: 18px;color: #fff;font-weight: 600;">排名:{{ top }}</span>
+                                <span style="font-size: 18px;color: #fff;font-weight: 600;">当前排名:{{ top }}</span>
                             </div>
                             <img class="answer" src="@/assets/image/answerGame/home/answer.png" alt="答题按钮" @click="clickAnswer">
                             <img class="exit" src="@/assets/image/answerGame/home/exit.png" alt="退出互动" @click="getOut">

+ 117 - 10
src/views/HomeView/MyCenter.vue

@@ -4,8 +4,7 @@
             <el-tabs style="padding: 0 20px 40px 20px;" v-model="activeName" @tab-click="handleClick">
                 <el-tab-pane label="我的积分" name="first">
                     <el-radio-group v-model="firstTabPosition" style="margin-bottom: 30px;">
-                        <el-radio-button v-for="(item, index) in firstTabsList" :key="index" :label="item.value"
-                            @click="handleClickFirstTabs(item.value)">
+                        <el-radio-button v-for="(item, index) in firstTabsList" :key="index" :label="item.value">
                             {{ item.name }}
                         </el-radio-button>
                     </el-radio-group>
@@ -119,19 +118,76 @@
                         </div>
                     </div>
                 </el-tab-pane>
+                <el-tab-pane label="参与活动记录" name="fourth">
+                    <el-radio-group v-model="fourthTabPosition" style="margin-bottom: 30px;" @change="handleClickTabs">
+                        <el-radio-button v-for="(item, index) in fourthTabsList" :key="index" :label="item.value">
+                            {{ item.name }}
+                        </el-radio-button>
+                    </el-radio-group>
+                    <div v-if="fourthTabPosition == '1'">
+                        <el-date-picker
+                        style="width: 220px; margin-right: 30px;"
+                        size="small"
+                        class="filter-item"
+                        value-format="yyyy-MM-dd"
+                        v-model="listQuery.createTime"
+                        type="date"
+                        placeholder="答题日期">
+                        </el-date-picker>
+                        <el-button size="small" style="margin-right: 30px;" type="primary" @click="handleFilter">查询</el-button>
+                        <el-table size="small" :data="answerList" border style="margin-top: 30px;width: 960px">
+                            <el-table-column align="center" type="index" width="50" label="序号"></el-table-column>
+                            <el-table-column align="center" prop="answerDate" label="答题时间"></el-table-column>
+                            <el-table-column align="center" prop="answerTime" label="用时(毫秒)"></el-table-column>
+                            <el-table-column align="center" prop="rightQuantities" label="正确数"></el-table-column>
+                            <el-table-column align="center" prop="rownum" label="当前排名"></el-table-column>
+                        </el-table>
+                        <div class="myPage">
+                            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                                :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="10"
+                                layout="total, sizes, prev, pager, next, jumper" :total="total">
+                            </el-pagination>
+                        </div>
 
+                    </div>
+                    <div v-else>
+                        <el-date-picker
+                        style="width: 220px; margin-right: 30px;"
+                        size="small"
+                        class="filter-item"
+                        value-format="yyyy-MM-dd"
+                        v-model="listQuery.createTime"
+                        type="date"
+                        placeholder="抽奖日期">
+                        </el-date-picker>
+                        <el-button size="small" style="margin-right: 30px;" type="primary" @click="handleFilter">查询</el-button>
+                        <el-table size="small" :data="prizeList" border style="margin-top: 30px;width: 960px">
+                            <el-table-column align="center" type="index" width="50" label="序号"></el-table-column>
+                            <el-table-column align="center" prop="createTime" label="得奖时间"></el-table-column>
+                            <el-table-column align="center" prop="actTitle" label="活动名称"></el-table-column>
+                            <el-table-column align="center" prop="prizeName" label="奖品"></el-table-column>
+                        </el-table>
+                        <div class="myPage">
+                            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                                :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="10"
+                                layout="total, sizes, prev, pager, next, jumper" :total="total">
+                            </el-pagination>
+                        </div>
+                    </div>
+                </el-tab-pane>
             </el-tabs>
         </div>
 
     </div>
 </template>
 <script scoped>
-import { orderList, myWelfareList,notice,integralTypes,userlogs, } from "@/api/allApi";
+import { orderList, myWelfareList,notice,integralTypes,userlogs,answerList,prizeList } from "@/api/allApi";
 import { getTab,setTab } from '@/utils/auth'
 export default {
     data() {
         return {
-            
+            answerList:[],
+            prizeList:[],
             firstList:[],
             firstTabPosition: 'integralList',
             firstTabsList: [
@@ -144,6 +200,18 @@ export default {
                     name: '积分规则',
                 },
             ],
+            fourthTabPosition:'1',
+            fourthTabsList: [
+                {
+                    value: '1',
+                    name: '答题',
+                },
+                {
+                    value: '2',
+                    name: '抽奖',
+                },
+            ],
+            
             secondList:[
                
             ],
@@ -186,7 +254,8 @@ export default {
             listQuery: {
                 page: 1,
                 limit: 10,
-                type:''
+                type:'',
+                createTime:''
             },
         };
     },
@@ -205,6 +274,18 @@ export default {
         this.getIntegralNotice();
     },
     methods: {
+        getAnswerList(){
+            answerList(this.listQuery).then(response=>{
+                this.answerList = response.data.data.items; 
+                this.total = response.data.data.total;
+            })
+        },
+        getPrizeList(){
+            prizeList(this.listQuery).then(response=>{
+                this.prizeList = response.data.data.items; 
+                this.total = response.data.data.total;
+            })
+        },
         setTab(){
             setTab('gift');
         },
@@ -251,17 +332,35 @@ export default {
         handleFilter() {
             this.listQuery.page = 1
             this.getFirstList();
+            this.getAnswerList();
+            this.getPrizeList();
         },
         handleSizeChange(val) {
             this.listQuery.limit = val;
             this.getFirstList();
+            this.getAnswerList();
+            this.getPrizeList();
         },
         handleCurrentChange(val) {
             this.listQuery.page = val;
             this.getFirstList();
+            this.getAnswerList();
+            this.getPrizeList();
         },
-        handleClickFirstTabs(val) {
-            console.log(val);
+        handleClickTabs(val) {
+            this.total = 0;
+            this.listQuery = {
+                page: 1,
+                limit: 10,
+                type:'',
+                createTime:''
+            };
+            if(val=='1'){
+                this.getAnswerList();
+            }
+            if(val=='2'){
+                this.getPrizeList();
+            }
         },
         handleClickSecondTabs(val) {
             if(val=='all'){
@@ -270,9 +369,14 @@ export default {
             this.getSecondList(val);
         },
 
-        handleClick(tab, event) {
-            console.log('111');
-            console.log(tab.name, event);
+        handleClick(tab) {
+            this.total = 0;
+            this.listQuery = {
+                page: 1,
+                limit: 10,
+                type:'',
+                createTime:''
+            };
             var name = tab.name;
             if(name=='first'){
                 this.getFirstList();
@@ -283,6 +387,9 @@ export default {
             if(name=='third'){
                 this.getThirdList();
             }
+            if(name=='fourth'){
+                this.getAnswerList();
+            }
         },
         
     }

File diff suppressed because it is too large
+ 32 - 10
src/views/NoticeCenter.vue