Sfoglia il codice sorgente

新增活跃用户,积分抽奖菜单

sunlupeng 5 mesi fa
parent
commit
b4ddf5aa0b
4 ha cambiato i file con 454 aggiunte e 4 eliminazioni
  1. 4 4
      config/dev.env.js
  2. 26 0
      src/router/index.js
  3. 212 0
      src/views/activeUsers/index.vue
  4. 212 0
      src/views/pointsLottery/index.vue

+ 4 - 4
config/dev.env.js

@@ -4,10 +4,10 @@ module.exports = {
   // 本地数据库:登录用户名 admin123,密码 admin123
   // BASE_API: '"http://192.168.100.87:9083/admin"',
   // OS_API: '"http://192.168.100.87:9083/admin"',
-  BASE_API: '"http://47.103.79.143:9085/admin"',
-  OS_API: '"http://47.103.79.143:9085/admin"',
-  // OS_API: '"https://xiaoyou.dgtis.com/admin"',
-  // BASE_API: '"https://xiaoyou.dgtis.com/admin"',
+  // BASE_API: '"http://47.103.79.143:9085/admin"',
+  // OS_API: '"http://47.103.79.143:9085/admin"',
+  OS_API: '"https://xiaoyou.dgtis.com/admin"',
+  BASE_API: '"https://xiaoyou.dgtis.com/admin"',
   
   
   

+ 26 - 0
src/router/index.js

@@ -52,6 +52,32 @@ export default new Router({
 })
 
 export const asyncRouterMap = [
+  {
+    path: '/activeUsers',
+    component: Layout,
+    redirect: 'noredirect',
+    name: 'activeUsers',
+    meta: {
+      title: '活跃用户',
+      icon: 'paihang'
+    },
+    children: [
+      { path: 'activeUsers', component: _import('activeUsers/index'), name: 'activeUsers', meta: { title: '活跃用户', icon: 'paihang', noCache: true }},
+    ]
+  },
+  {
+    path: '/pointsLottery',
+    component: Layout,
+    redirect: 'noredirect',
+    name: 'pointsLottery',
+    meta: {
+      title: '积分抽奖',
+      icon: 'paihang'
+    },
+    children: [
+      { path: 'pointsLottery', component: _import('pointsLottery/index'), name: 'pointsLottery', meta: { title: '积分抽奖', icon: 'paihang', noCache: true }},
+    ]
+  },
   {
     path: '/pointManage',
     component: Layout,

+ 212 - 0
src/views/activeUsers/index.vue

@@ -0,0 +1,212 @@
+<template>
+  <div style="height: 100vh;width: 100%;">
+    <iframe src="https://dgtbi.dgtis.com/cboard/render.html?shareid=t46EABnC#/" width="100%" height="100%"></iframe>
+  </div>
+  
+  <!-- <el-row class="panel-group" :gutter="40">
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-people">
+          <svg-icon icon-class="peoples" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">员工数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="userTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-message">
+          <svg-icon icon-class="people" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">游客数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="visitorsTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-people">
+          <svg-icon icon-class="magnifying-glass" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">待审核数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="awaitAuditTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-shoppingCard">
+          <svg-icon icon-class="user" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">昨日浏览人数</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="yesterdayTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-shoppingCard">
+          <svg-icon icon-class="group" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">待审核圈子数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="groupTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-shoppingCard">
+          <svg-icon icon-class="raise-your-hand-to-ask" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">提问待回答数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="questionTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-shoppingCard">
+          <svg-icon icon-class="edit" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">今日评论数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="todayTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+  </el-row> -->
+</template>
+
+<script>
+import { info } from '@/api/dashboard'
+import CountTo from 'vue-count-to'
+
+export default {
+  components: {
+    CountTo
+  },
+  data() {
+    return {
+      userTotal: 0,//校友录数量
+      visitorsTotal: 0,//游客数量
+      awaitAuditTotal: 0,//待审核数量
+      yesterdayTotal: 0,//昨日浏览人数
+      todayTotal:0,//今日评论数量
+      groupTotal:0,//圈子待审核数量
+      questionTotal:0,//提问待回答数量
+      goodsTotal: 0,
+      productTotal: 0,
+      orderTotal: 0
+    }
+  },
+  methods: {
+    handleSetLineChartData(type) {
+      this.$emit('handleSetLineChartData', type)
+    }
+  },
+  created() {
+    info(this.listQuery).then(response => {
+      this.userTotal = response.data.data.userTotal
+      this.visitorsTotal = response.data.data.visitorsTotal
+      this.awaitAuditTotal = response.data.data.awaitAuditTotal
+      this.yesterdayTotal = response.data.data.yesterdayTotal
+      this.todayTotal = response.data.data.todayTotal
+      this.groupTotal = response.data.data.groupTotal
+      this.questionTotal = response.data.data.questionTotal
+      // this.goodsTotal = response.data.data.goodsTotal
+      // this.productTotal = response.data.data.productTotal
+      // this.orderTotal = response.data.data.orderTotal
+    })
+  }
+}
+</script>
+
+<style rel="stylesheet/scss" lang="scss" scoped>
+.panel-group {
+  margin-top: 18px;
+
+  .card-panel-col{
+    margin-bottom: 32px;
+  }
+  .card-panel {
+    height: 108px;
+    cursor: pointer;
+    font-size: 12px;
+    position: relative;
+    overflow: hidden;
+    color: #666;
+    background: #fff;
+    box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
+    border-color: rgba(0, 0, 0, .05);
+    &:hover {
+      .card-panel-icon-wrapper {
+        color: #fff;
+      }
+      .icon-people {
+         background: #40c9c6;
+      }
+      .icon-message {
+        background: #36a3f7;
+      }
+      .icon-money {
+        background: #f4516c;
+      }
+      .icon-shoppingCard {
+        background: #34bfa3
+      }
+    }
+    .icon-people {
+      color: #40c9c6;
+    }
+    .icon-message {
+      color: #36a3f7;
+    }
+    .icon-money {
+      color: #f4516c;
+    }
+    .icon-shoppingCard {
+      color: #34bfa3
+    }
+    .card-panel-icon-wrapper {
+      float: left;
+      margin: 14px 0 0 14px;
+      padding: 16px;
+      transition: all 0.38s ease-out;
+      border-radius: 6px;
+    }
+    .card-panel-icon {
+      float: left;
+      font-size: 48px;
+    }
+    .card-panel-description {
+      float: right;
+      font-weight: bold;
+      margin: 26px;
+      margin-left: 0px;
+      .card-panel-text {
+        line-height: 18px;
+        color: rgba(0, 0, 0, 0.45);
+        font-size: 16px;
+        margin-bottom: 12px;
+      }
+      .card-panel-num {
+        font-size: 20px;
+      }
+    }
+  }
+}
+</style>

+ 212 - 0
src/views/pointsLottery/index.vue

@@ -0,0 +1,212 @@
+<template>
+  <div style="height: 100vh;width: 100%;">
+    <iframe src="https://dgtbi.dgtis.com/cboard/render.html?shareid=keiLNUBc#/" width="100%" height="100%"></iframe>
+  </div>
+  
+  <!-- <el-row class="panel-group" :gutter="40">
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-people">
+          <svg-icon icon-class="peoples" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">员工数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="userTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-message">
+          <svg-icon icon-class="people" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">游客数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="visitorsTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-people">
+          <svg-icon icon-class="magnifying-glass" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">待审核数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="awaitAuditTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-shoppingCard">
+          <svg-icon icon-class="user" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">昨日浏览人数</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="yesterdayTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-shoppingCard">
+          <svg-icon icon-class="group" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">待审核圈子数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="groupTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-shoppingCard">
+          <svg-icon icon-class="raise-your-hand-to-ask" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">提问待回答数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="questionTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
+      <div class='card-panel' @click="handleSetLineChartData('newVisitis')">
+        <div class="card-panel-icon-wrapper icon-shoppingCard">
+          <svg-icon icon-class="edit" class-name="card-panel-icon" />
+        </div>
+        <div class="card-panel-description">
+          <div class="card-panel-text">今日评论数量</div>
+          <count-to class="card-panel-num" :startVal="0" :endVal="todayTotal" :duration="2600"></count-to>
+        </div>
+      </div>
+    </el-col>
+
+  </el-row> -->
+</template>
+
+<script>
+import { info } from '@/api/dashboard'
+import CountTo from 'vue-count-to'
+
+export default {
+  components: {
+    CountTo
+  },
+  data() {
+    return {
+      userTotal: 0,//校友录数量
+      visitorsTotal: 0,//游客数量
+      awaitAuditTotal: 0,//待审核数量
+      yesterdayTotal: 0,//昨日浏览人数
+      todayTotal:0,//今日评论数量
+      groupTotal:0,//圈子待审核数量
+      questionTotal:0,//提问待回答数量
+      goodsTotal: 0,
+      productTotal: 0,
+      orderTotal: 0
+    }
+  },
+  methods: {
+    handleSetLineChartData(type) {
+      this.$emit('handleSetLineChartData', type)
+    }
+  },
+  created() {
+    info(this.listQuery).then(response => {
+      this.userTotal = response.data.data.userTotal
+      this.visitorsTotal = response.data.data.visitorsTotal
+      this.awaitAuditTotal = response.data.data.awaitAuditTotal
+      this.yesterdayTotal = response.data.data.yesterdayTotal
+      this.todayTotal = response.data.data.todayTotal
+      this.groupTotal = response.data.data.groupTotal
+      this.questionTotal = response.data.data.questionTotal
+      // this.goodsTotal = response.data.data.goodsTotal
+      // this.productTotal = response.data.data.productTotal
+      // this.orderTotal = response.data.data.orderTotal
+    })
+  }
+}
+</script>
+
+<style rel="stylesheet/scss" lang="scss" scoped>
+.panel-group {
+  margin-top: 18px;
+
+  .card-panel-col{
+    margin-bottom: 32px;
+  }
+  .card-panel {
+    height: 108px;
+    cursor: pointer;
+    font-size: 12px;
+    position: relative;
+    overflow: hidden;
+    color: #666;
+    background: #fff;
+    box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
+    border-color: rgba(0, 0, 0, .05);
+    &:hover {
+      .card-panel-icon-wrapper {
+        color: #fff;
+      }
+      .icon-people {
+         background: #40c9c6;
+      }
+      .icon-message {
+        background: #36a3f7;
+      }
+      .icon-money {
+        background: #f4516c;
+      }
+      .icon-shoppingCard {
+        background: #34bfa3
+      }
+    }
+    .icon-people {
+      color: #40c9c6;
+    }
+    .icon-message {
+      color: #36a3f7;
+    }
+    .icon-money {
+      color: #f4516c;
+    }
+    .icon-shoppingCard {
+      color: #34bfa3
+    }
+    .card-panel-icon-wrapper {
+      float: left;
+      margin: 14px 0 0 14px;
+      padding: 16px;
+      transition: all 0.38s ease-out;
+      border-radius: 6px;
+    }
+    .card-panel-icon {
+      float: left;
+      font-size: 48px;
+    }
+    .card-panel-description {
+      float: right;
+      font-weight: bold;
+      margin: 26px;
+      margin-left: 0px;
+      .card-panel-text {
+        line-height: 18px;
+        color: rgba(0, 0, 0, 0.45);
+        font-size: 16px;
+        margin-bottom: 12px;
+      }
+      .card-panel-num {
+        font-size: 20px;
+      }
+    }
+  }
+}
+</style>