sunny 2 yıl önce
ebeveyn
işleme
10d3fa028d

+ 26 - 1
src/api/allApi.js

@@ -32,7 +32,7 @@ export function festivalInfo(query) {
   return request({
     url: '/admin/mall-sku/festival/info',
     method: 'get',
-    param: query
+    params: query
   })
 }
 // 兑换须知   商品兑换须知 goodsNotice 礼品兑换须知giftNotice
@@ -53,7 +53,32 @@ export function start(data) {
   })
 }
 
+//福利分类
+export function welfareType(data) {
+  return request({
+    url: '/admin/mall-sku/user/getWelfare',
+    method: 'post',
+    data
+  })
+}
+
 
+//用户福利、兑换券列表
+export function welfareList(data) {
+  return request({
+    url: '/admin/mall-welfare/welfare/user/list',
+    method: 'post',
+    data
+  })
+}
+//用户福利领取
+export function receiveWelfare(data) {
+  return request({
+    url: '/admin/mall-welfare/modify/status',
+    method: 'post',
+    data
+  })
+}
 
 export function createNews(data) {
   return request({

+ 47 - 2
src/assets/css/global.css

@@ -4,7 +4,8 @@ html {
     color: #333;
     background-color: #f2f3f5;
 }
-body{
+
+body {
     margin: 0;
     line-height: normal;
 }
@@ -13,10 +14,54 @@ ul {
     padding: 0;
     margin: 0;
 }
+
 li {
     list-style: none;
 }
+
 a {
     text-decoration: none;
     background-color: transparent;
-  }
+}
+
+.right-wrap {
+    width: 100%;
+}
+
+.wrapper {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin: 0 20px;
+    position: relative;
+}
+.wrapper .success-icon {
+    position: absolute;
+    top: -25px;
+    left: -15px;
+}
+.wrapper .header {
+    font-weight: 500;
+    font-size: 20px;
+    line-height: 28px;
+    text-align: center;
+    color: #d25f00;
+    opacity: .8;
+    margin: 32px 0 24px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+.wrapper .icon {
+    height: 88px;
+    margin-bottom: 24px;
+}
+.wrapper .desc {
+    font-size: 14px;
+    line-height: 24px;
+    text-align: center;
+    color: #515767;
+}
+.wrapper .link {
+    color: #1e80ff;
+}

+ 40 - 42
src/components/AppSidebar.vue

@@ -1,33 +1,15 @@
 <template>
     <div class="index-nav" :class="{'index-nav-top':isActive}">
         <nav class="side-navigator-wrap">
-        <div class="nav-item-wrap">
-            <div class="nav-item-content" :class="{ active: employeeDynamics }">
-                <router-link to="/home/employeeDynamics" class="nav-item">
-                    <i class="el-icon-s-home"></i>
-                    <span class="nav-item-text">首页</span>
-                </router-link>
-            </div>
-        </div>
-
-        <div class="nav-item-wrap">
-            <div class="nav-item-content" :class="{ active: pointsMall }">
-                <router-link to="/home/pointsMall" class="nav-item">
-                        <i class="el-icon-s-home"></i>
-                        <span class="nav-item-text">积分商城</span>
-                    </router-link>
-            </div>
-        </div>
-        <div class="nav-item-wrap">
-            <div class="nav-item-content" :class="{ active: festiveEvents }">
-                <router-link to="/home/festiveEvents" class="nav-item">
+            <div v-for="(item,index) in sideBarList" :key="index" class="nav-item-wrap">
+                <div class="nav-item-content" :class="{ active: item.checked }">
+                    <router-link :to="item.path" class="nav-item">
                         <i class="el-icon-s-home"></i>
-                        <span class="nav-item-text">福利领取</span>
+                        <span class="nav-item-text">{{ item.name }}</span>
                     </router-link>
+                </div>
             </div>
-        </div>
-        
-    </nav>
+        </nav>
     </div>
     
 </template>
@@ -36,8 +18,35 @@ export default {
   name: 'AppSidebar',
   data() {
     return {
+        sideBarList:[
+            {
+                value:'employeeDynamics',
+                name:'首页',
+                path:'/home/employeeDynamics',
+                checked:false,
+            },
+            {
+                value:'pointsMall',
+                name:'积分商城',
+                path:'/home/pointsMall',
+                checked:false,
+            },
+            {
+                value:'welfareList',
+                name:'福利领取',
+                path:'/home/welfareList',
+                checked:false,
+            },
+            {
+                value:'festiveEvents',
+                name:'个人中心',
+                path:'/home/festiveEvents',
+                checked:false,
+            }
+        ],
         employeeDynamics: false,
         pointsMall: false,
+        welfareList: false,
         festiveEvents: false,
         scrollTop: 0,
         isActive:false,
@@ -46,24 +55,13 @@ export default {
   methods:{
     getRoute(){
         var path = this.$route.path;
-        
-        if(path.indexOf("pointsMall") != -1){
-            this.employeeDynamics = false;
-            this.pointsMall = true;
-            this.festiveEvents = false;
-        }
-        
-        if(path.indexOf("employeeDynamics") != -1){
-            this.employeeDynamics = true;
-            this.pointsMall = false;
-            this.festiveEvents = false;
-        }
-        
-        if(path.indexOf("festiveEvents") != -1){
-            this.employeeDynamics = false;
-            this.pointsMall = false;
-            this.festiveEvents = true;
-        }
+        this.sideBarList.forEach(item => {
+            if(path.indexOf(item.value) != -1){
+                item.checked = true;
+            } else{
+                item.checked = false;
+            }     
+        });
     },
     // 保存滚动值,这是兼容的写法
     handleScroll () {

+ 4 - 0
src/router/index.js

@@ -26,6 +26,10 @@ const routes = [
         path: '/home/pointsMall/redeem',
         component: () => import('@/views/HomeView/RedeemView.vue')
       },
+      {
+        path: '/home/welfareList',
+        component: () => import('@/views/HomeView/WelfareList.vue')
+      },
       {
         path: '/home/festiveEvents',
         component: () => import('@/views/HomeView/FestiveEvents.vue')

+ 2 - 2
src/utils/request.js

@@ -25,7 +25,7 @@ service.interceptors.request.use(config => {
 service.interceptors.response.use(
   response => {
     const res = response.data
-    let errmsg = res.errmsg;
+    let errmsg = res.message;
     if (res.errno !== 0) {
       if(res.errno==503){
         MessageBox.alert('超时自动退出系统,请重新登录', '已退出', {
@@ -48,7 +48,7 @@ service.interceptors.response.use(
   }, error => {
     console.log('err' + error)// for debug
     Message({
-      message: '登录连接超时(后台不能连接,请联系系统管理员)',
+      message: '连接超时',
       type: 'error',
       duration: 5 * 1000
     })

Dosya farkı çok büyük olduğundan ihmal edildi
+ 302 - 104
src/views/HomeView/PointsMall.vue


Dosya farkı çok büyük olduğundan ihmal edildi
+ 28 - 55
src/views/HomeView/RedeemView.vue


Dosya farkı çok büyük olduğundan ihmal edildi
+ 302 - 0
src/views/HomeView/WelfareList.vue


+ 5 - 1
vue.config.js

@@ -1,4 +1,8 @@
 const { defineConfig } = require('@vue/cli-service')
 module.exports = defineConfig({
-  transpileDependencies: true
+  transpileDependencies: true,
+  lintOnSave:false //关闭eslint检查
 })
+
+
+