Przeglądaj źródła

Merge branch 'master' of http://git.cc-lotus.info/live-platform/live-cms

reloaded 4 lat temu
rodzic
commit
47df4b95bb

+ 3 - 1
src/layout/layout-part/heads.vue

@@ -58,7 +58,9 @@ export default {
       form: {},
     };
   },
-  created() {},
+  created() {
+    console.log(this.user);
+  },
   methods: {
     ...login({ loginUpdate: 'update', logout: 'logout' }),
     // 绑定微信

+ 13 - 15
src/layout/layout-part/menus.vue

@@ -56,18 +56,16 @@ export default {
       menu: [],
     };
   },
-  created() {
-    this.search();
-  },
+  created() {},
   methods: {
     search() {
+      let menu = [];
       if (this.user.role == '1') {
-        this.menu.push(index, user, role, room, stat);
-        return;
+        menu.push(index, user, role, room);
       } else {
-        this.menu.push(index, live, stat);
-        return;
+        menu.push(index, live);
       }
+      this.$set(this, `menu`, menu);
     },
     selectMenu(path) {
       this.$router.push({ path: path });
@@ -82,14 +80,14 @@ export default {
   metaInfo() {
     return { title: this.$route.meta.title };
   },
-  // watch: {
-  //   user: {
-  //     handler(val, oval) {
-  //       if (val && !_.isEqual(val, oval)) this.search();
-  //     },
-  //     immediate: true,
-  //   },
-  // },
+  watch: {
+    user: {
+      handler(val, oval) {
+        if (val && !_.isEqual(val, oval)) this.search();
+      },
+      immediate: true,
+    },
+  },
 };
 </script>
 

+ 3 - 1
src/layout/main-layout.vue

@@ -37,7 +37,9 @@ export default {
   data: () => ({
     loginBei: require('@/assets/beijing.jpg'),
   }),
-  created() {},
+  created() {
+    console.log(this.user);
+  },
   computed: {
     ...mapState(['user']),
   },

+ 5 - 3
src/router/index.js

@@ -63,11 +63,13 @@ const routes = [
     meta: { title: '房间状态审核' },
     component: () => import('../views/room/detailStatus.vue'),
   },
+  // 统计
   {
-    path: '/stat/index',
-    meta: { title: '统计管理' },
-    component: () => import('../views/stat/index.vue'),
+    path: '/room/statList',
+    meta: { title: '房间观看人数统计' },
+    component: () => import('../views/room/statList.vue'),
   },
+
   {
     path: '/test/index',
     meta: { title: '测试管理' },

+ 1 - 0
src/store/user/mutations.js

@@ -2,6 +2,7 @@ const jwt = require('jsonwebtoken');
 export const setUser = (state, payload) => {
   let res = true;
   //登陆时
+  console.log(payload);
   if (payload) {
     state.user = payload;
   } else {

+ 1 - 0
src/views/live/index.vue

@@ -32,6 +32,7 @@ export default {
   },
   created() {
     this.searchInfo();
+    console.log(this.user);
   },
   methods: {
     ...room(['query', 'delete', 'update', 'fetch']),

+ 11 - 0
src/views/room/index.vue

@@ -13,6 +13,7 @@
         <data-table
           :fields="fields"
           @edit="toEdit"
+          @stat="stat"
           @delete="toDelete"
           @order="order"
           :data="list"
@@ -64,6 +65,11 @@ export default {
           return item.status == '0' ? true : false;
         },
       },
+      {
+        label: '统计',
+        icon: 'el-icon-view',
+        method: 'stat',
+      },
       {
         label: '删除',
         icon: 'el-icon-delete',
@@ -114,6 +120,11 @@ export default {
     toEdit({ data }) {
       this.$router.push({ path: './detail', query: { id: data.id } });
     },
+    // 统计查看
+    stat({ data }) {
+      this.$router.push({ path: './statList', query: { id: data.id, name: data.name } });
+      console.log(data);
+    },
     async toDelete({ data }) {
       const res = await this.delete(data.id);
       this.$checkRes(res, '删除成功', '删除失败');

+ 66 - 0
src/views/room/statList.vue

@@ -0,0 +1,66 @@
+<template>
+  <div id="statList">
+    <el-row>
+      <el-col :span="24" class="index">
+        <el-col :span="24" class="top">
+          <topInfo :topTitle="pageTitle"></topInfo>
+        </el-col>
+      </el-col>
+      <el-col :span="24" class="info">
+        <data-table :fields="fields" @delete="toDelete" :data="list" :opera="opera" @edit="toEdit" :total="total" @query="search"></data-table>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+<script>
+import topInfo from '@/layout/public/top.vue';
+import dataTable from '@/components/data-table.vue';
+import { mapActions, mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: lookuser } = createNamespacedHelpers('lookuser');
+export default {
+  name: 'statList',
+  props: {},
+  components: {
+    topInfo,
+    dataTable,
+  },
+  data: () => ({
+    opera: [],
+    fields: [{ label: '机构名称', prop: 'username', filter: 'input' }],
+    list: [],
+    total: 0,
+  }),
+  created() {
+    this.searchInfo();
+  },
+  methods: {
+    ...lookuser(['query']),
+    async searchInfo() {
+      const res = await this.query({ roomname: this.name });
+      if (this.$checkRes(res)) {
+        this.$set(this, `list`, res.data);
+        this.$set(this, `total`, res.total);
+      }
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    name() {
+      return this.$route.query.name;
+    },
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+<style lang="less" scoped>
+.add {
+  height: 40px;
+  line-height: 35px;
+  padding: 0 15px;
+}
+</style>

+ 0 - 68
src/views/stat/index.vue

@@ -1,68 +0,0 @@
-<template>
-  <div id="index">
-    <el-row>
-      <el-col :span="24" class="index">
-        <el-col :span="24" class="top">
-          <topInfo :topTitle="pageTitle"></topInfo>
-        </el-col>
-        <el-col :span="24" class="main">
-          <el-col :span="8" class="left"> </el-col>
-          <el-col :span="8" class="left">
-            统计
-          </el-col>
-          <el-col :span="8" class="left">
-            统计
-          </el-col>
-          <el-col :span="8" class="left">
-            统计
-          </el-col>
-          <el-col :span="8" class="left">
-            统计
-          </el-col>
-          <el-col :span="8" class="left">
-            统计
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import topInfo from '@/layout/public/top.vue';
-
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  name: 'index',
-  props: {},
-  components: {
-    topInfo,
-  },
-  data: function() {
-    return {};
-  },
-  created() {},
-
-  methods: {},
-  computed: {
-    ...mapState(['user']),
-    pageTitle() {
-      return `${this.$route.meta.title}`;
-    },
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .left {
-    width: 32%;
-    height: 410px;
-    border: 1px solid red;
-    margin: 0 20px 20px 0;
-  }
-}
-</style>