Browse Source

gambleMember list &pagination

Unknown 7 years ago
parent
commit
4074079cf9
5 changed files with 133 additions and 55 deletions
  1. 12 0
      src/api/gambleMember.js
  2. 1 1
      src/api/table.js
  3. 38 26
      src/router/index.js
  4. 75 0
      src/views/gambleMember/index.vue
  5. 7 28
      src/views/table/index.vue

+ 12 - 0
src/api/gambleMember.js

@@ -0,0 +1,12 @@
1
+import request from '@/utils/request'
2
+
3
+export function fetchList(query) {
4
+  return request({
5
+    url: '/gambleMembers',
6
+    method: 'get',
7
+    params: {
8
+      limit: query.limit,
9
+      offset: (query.page - 1) * query.limit
10
+    }
11
+  })
12
+}

+ 1 - 1
src/api/table.js

@@ -2,7 +2,7 @@ import request from '@/utils/request'
2 2
 
3 3
 export function getList(params) {
4 4
   return request({
5
-    url: '/table/list',
5
+    url: '/gambleMembers',
6 6
     method: 'get',
7 7
     params
8 8
   })

+ 38 - 26
src/router/index.js

@@ -34,41 +34,53 @@ export const constantRouterMap = [
34 34
     }]
35 35
   },
36 36
 
37
-  {
38
-    path: '/example',
39
-    component: Layout,
40
-    redirect: '/example/table',
41
-    name: 'Example',
42
-    meta: { title: 'Example', icon: 'example' },
43
-    children: [
44
-      {
45
-        path: 'table',
46
-        name: 'Table',
47
-        component: _import('table/index'),
48
-        meta: { title: 'Table', icon: 'table' }
49
-      },
50
-      {
51
-        path: 'tree',
52
-        name: 'Tree',
53
-        component: _import('tree/index'),
54
-        meta: { title: 'Tree', icon: 'tree' }
55
-      }
56
-    ]
57
-  },
37
+  // {
38
+  //   path: '/example',
39
+  //   component: Layout,
40
+  //   redirect: '/example/table',
41
+  //   name: 'Example',
42
+  //   meta: { title: 'Example', icon: 'example' },
43
+  //   children: [
44
+  //     {
45
+  //       path: 'table',
46
+  //       name: 'Table',
47
+  //       component: _import('table/index'),
48
+  //       meta: { title: 'Table', icon: 'table' }
49
+  //     },
50
+  //     {
51
+  //       path: 'tree',
52
+  //       name: 'Tree',
53
+  //       component: _import('tree/index'),
54
+  //       meta: { title: 'Tree', icon: 'tree' }
55
+  //     }
56
+  //   ]
57
+  // },
58
+
59
+  // {
60
+  //   path: '/form',
61
+  //   component: Layout,
62
+  //   children: [
63
+  //     {
64
+  //       path: 'index',
65
+  //       name: 'Form',
66
+  //       component: _import('form/index'),
67
+  //       meta: { title: 'Form', icon: 'form' }
68
+  //     }
69
+  //   ]
70
+  // },
58 71
 
59 72
   {
60
-    path: '/form',
73
+    path: '/gambleMember',
61 74
     component: Layout,
62 75
     children: [
63 76
       {
64 77
         path: 'index',
65
-        name: 'Form',
66
-        component: _import('form/index'),
67
-        meta: { title: 'Form', icon: 'form' }
78
+        name: 'gambleMember',
79
+        component: _import('gambleMember/index'),
80
+        meta: { title: '會員管理', icon: 'form' }
68 81
       }
69 82
     ]
70 83
   },
71
-
72 84
   { path: '*', redirect: '/404', hidden: true }
73 85
 ]
74 86
 

+ 75 - 0
src/views/gambleMember/index.vue

@@ -0,0 +1,75 @@
1
+<template>
2
+  <div class="app-container">
3
+    <el-table :data="list" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row>
4
+      <el-table-column align="center" label='ID' >
5
+        <template slot-scope="scope">
6
+          {{scope.row.id}}
7
+        </template>
8
+      </el-table-column>
9
+      <el-table-column label="名稱" align="center" width="200">
10
+        <template slot-scope="scope">
11
+          {{scope.row.name}}
12
+        </template>
13
+      </el-table-column>
14
+      <el-table-column label="點數" width="150" align="center">
15
+        <template slot-scope="scope">
16
+          <span>{{scope.row.chips}}</span>
17
+        </template>
18
+      </el-table-column>
19
+      <el-table-column align="center" label="操作">
20
+        <template slot-scope="scope">
21
+          <!-- <span>{{scope.row.display_time}}</span> -->
22
+        </template>
23
+      </el-table-column>
24
+    </el-table>
25
+
26
+    <div v-show="!listLoading" class="pagination-container">
27
+      <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page.sync="listQuery.page"
28
+        :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit" layout="total, sizes, prev, pager, next, jumper" :total="total">
29
+      </el-pagination>
30
+    </div>
31
+  </div>
32
+</template>
33
+
34
+<script>
35
+import { fetchList } from '@/api/gambleMember'
36
+
37
+export default {
38
+  data() {
39
+    return {
40
+      list: null,
41
+      total: null,
42
+      listLoading: true,
43
+      listQuery: {
44
+        page: 1,
45
+        limit: 20,
46
+        importance: undefined,
47
+        title: undefined,
48
+        type: undefined,
49
+        sort: '+id'
50
+      }
51
+    }
52
+  },
53
+  created() {
54
+    this.getList()
55
+  },
56
+  methods: {
57
+    getList() {
58
+      this.listLoading = true
59
+      fetchList(this.listQuery).then(response => {
60
+        this.list = response.data.rows
61
+        this.total = response.data.count
62
+        this.listLoading = false
63
+      })
64
+    },
65
+    handleSizeChange(val) {
66
+      this.listQuery.limit = val
67
+      this.getList()
68
+    },
69
+    handleCurrentChange(val) {
70
+      this.listQuery.page = val
71
+      this.getList()
72
+    }
73
+  }
74
+}
75
+</script>

+ 7 - 28
src/views/table/index.vue

@@ -6,30 +6,19 @@
6 6
           {{scope.$index}}
7 7
         </template>
8 8
       </el-table-column>
9
-      <el-table-column label="Title">
9
+      <el-table-column label="名稱">
10 10
         <template slot-scope="scope">
11
-          {{scope.row.title}}
11
+          {{scope.row.name}}
12 12
         </template>
13 13
       </el-table-column>
14
-      <el-table-column label="Author" width="110" align="center">
14
+      <el-table-column label="點數" width="110" align="center">
15 15
         <template slot-scope="scope">
16
-          <span>{{scope.row.author}}</span>
16
+          <span>{{scope.row.chips}}</span>
17 17
         </template>
18 18
       </el-table-column>
19
-      <el-table-column label="Pageviews" width="110" align="center">
19
+      <el-table-column align="center" prop="created_at" label="操作" width="200">
20 20
         <template slot-scope="scope">
21
-          {{scope.row.pageviews}}
22
-        </template>
23
-      </el-table-column>
24
-      <el-table-column class-name="status-col" label="Status" width="110" align="center">
25
-        <template slot-scope="scope">
26
-          <el-tag :type="scope.row.status | statusFilter">{{scope.row.status}}</el-tag>
27
-        </template>
28
-      </el-table-column>
29
-      <el-table-column align="center" prop="created_at" label="Display_time" width="200">
30
-        <template slot-scope="scope">
31
-          <i class="el-icon-time"></i>
32
-          <span>{{scope.row.display_time}}</span>
21
+          <!-- <span>{{scope.row.display_time}}</span> -->
33 22
         </template>
34 23
       </el-table-column>
35 24
     </el-table>
@@ -46,16 +35,6 @@ export default {
46 35
       listLoading: true
47 36
     }
48 37
   },
49
-  filters: {
50
-    statusFilter(status) {
51
-      const statusMap = {
52
-        published: 'success',
53
-        draft: 'gray',
54
-        deleted: 'danger'
55
-      }
56
-      return statusMap[status]
57
-    }
58
-  },
59 38
   created() {
60 39
     this.fetchData()
61 40
   },
@@ -63,7 +42,7 @@ export default {
63 42
     fetchData() {
64 43
       this.listLoading = true
65 44
       getList(this.listQuery).then(response => {
66
-        this.list = response.data.items
45
+        this.list = response.data
67 46
         this.listLoading = false
68 47
       })
69 48
     }