瀏覽代碼

feat: 新增订阅推送页面

zhangyuhan 4 年之前
父節點
當前提交
c00e48fa98
共有 3 個文件被更改,包括 69 次插入1 次删除
  1. 6 0
      src/router.js
  2. 1 1
      src/views/Home.vue
  3. 62 0
      src/views/SubPush.vue

+ 6 - 0
src/router.js

@@ -12,6 +12,12 @@ export default new Router({
       name: 'home',
       component: () => import('@/views/Home.vue')
     },
+    // 订阅推送
+    {
+      path: '/sub-push',
+      name: 'sub-push',
+      component: () => import('@/views/SubPush.vue')
+    },
     // 周报详情
     {
       path: '/empty-demo',

+ 1 - 1
src/views/Home.vue

@@ -10,7 +10,7 @@
             <div class="nav-item--text">{{item.text}}</div>
           </div>
         </div>
-        <push-list></push-list>
+        <push-list @getMore="$router.push('/sub-push')"></push-list>
       </div>
     </forLayOut>
     <div class="flex-c-c float-side-group-for-right">

+ 62 - 0
src/views/SubPush.vue

@@ -0,0 +1,62 @@
+<template>
+  <div class="page--sub-push">
+    <div class="page-content">
+      <AreaSelector class="border-box" @onChange="changeArea" ref="areaSelector" selectorType="line"></AreaSelector>
+      <push-list :filters="filters" class="m-24" ref="pushList" :showMore="false"></push-list>
+    </div>
+  </div>
+</template>
+
+<script>
+import PushList from '@/components/push-list/PushList.vue'
+import AreaSelector from '@/components/selector/AreaSelector.vue'
+export default {
+  name: 'SubPush',
+  components: {
+    PushList,
+    AreaSelector
+  },
+  data () {
+    return {
+      filters: {
+        area: ''
+      }
+    }
+  },
+  methods: {
+    changeArea (item) {
+      const area = Object.keys(item).map(v => {
+        if (item[v].length) {
+          return item[v].join(',')
+        }
+        return v
+      })
+      this.filters = {
+        area: area.join(',')
+      }
+      this.$refs.pushList.doQuery(this.filters)
+    }
+  },
+  computed: {},
+  created () {}
+}
+</script>
+
+<style lang="scss" scoped>
+  .page--sub-push {
+    background-color: #fff;
+    .page-content {
+      width: 1200px;
+      margin: 0 auto;
+      padding-top: 40px;
+      padding-bottom: 80px;
+    }
+    .border-box {
+      border: 1px solid #ececec;
+      border-radius: 5px;
+    }
+    .m-24 {
+      margin-top: 24px;
+    }
+  }
+</style>