瀏覽代碼

add example page

Pan 7 年之前
父節點
當前提交
2bc84413e3
共有 6 個文件被更改,包括 170 次插入12 次删除
  1. 11 0
      src/api/table.js
  2. 14 4
      src/router/index.js
  3. 16 3
      src/views/dashboard/index.vue
  4. 72 0
      src/views/page/form.vue
  5. 0 5
      src/views/page/index.vue
  6. 57 0
      src/views/table/index.vue

+ 11 - 0
src/api/table.js

@@ -0,0 +1,11 @@
1
+import fetch from '@/utils/fetch';
2
+
3
+export function getList(params) {
4
+  return fetch({
5
+    url: '/table/list',
6
+    method: 'get',
7
+    params
8
+  });
9
+}
10
+
11
+

+ 14 - 4
src/router/index.js

@@ -16,7 +16,8 @@ const dashboard = _import('dashboard/index');
16 16
 /* error page */
17 17
 const Err404 = _import('404');
18 18
 
19
-const Page = _import('page/index');
19
+const Form = _import('page/form');
20
+const Table = _import('table/index');
20 21
 
21 22
 Vue.use(Router);
22 23
 
@@ -51,11 +52,20 @@ export const asyncRouterMap = [
51 52
     path: '/example',
52 53
     component: Layout,
53 54
     redirect: 'noredirect',
54
-    name: 'page',
55
-    icon: 'zonghe',
55
+    name: 'Example',
56
+    icon: 'zujian',
56 57
     children: [
57
-      { path: 'index', component: Page, name: 'page' }
58
+      { path: 'index', component: Form, name: 'Form', icon: 'zonghe' }
58 59
     ]
59 60
   },
61
+  {
62
+    path: '/table',
63
+    component: Layout,
64
+    redirect: '/table/index',
65
+    name: 'Table',
66
+    icon: 'tubiaoleixingzhengchang',
67
+    noDropdown: true,
68
+    children: [{ path: 'index', component: Table, name: 'Table', meta: { role: ['admin'] } }]
69
+  },
60 70
   { path: '*', redirect: '/404', hidden: true }
61 71
 ];

+ 16 - 3
src/views/dashboard/index.vue

@@ -1,7 +1,8 @@
1 1
 <template>
2
-    <div class="dashboard-container">
3
-      {{name}}
4
-    </div>
2
+  <div class="dashboard-container">
3
+    <div class='dashboard-text'>name:{{name}}</div>
4
+    <div class='dashboard-text'>role:<span v-for='role in roles' :key='role'>{{role}}</span></div>
5
+  </div>
5 6
 </template>
6 7
 
7 8
 <script>
@@ -16,3 +17,15 @@
16 17
       }
17 18
     }
18 19
 </script>
20
+
21
+<style rel="stylesheet/scss" lang="scss">
22
+.dashboard {
23
+  &-container {
24
+    margin: 30px;
25
+  }
26
+  &-text {
27
+    font-size: 30px;
28
+    line-height: 46px;
29
+  }
30
+}
31
+</style>

+ 72 - 0
src/views/page/form.vue

@@ -0,0 +1,72 @@
1
+<template>
2
+    <div class="app-container">
3
+        <el-form ref="form" :model="form" label-width="80px">
4
+            <el-form-item label="活动名称">
5
+                <el-input v-model="form.name"></el-input>
6
+            </el-form-item>
7
+            <el-form-item label="活动区域">
8
+                <el-select v-model="form.region" placeholder="请选择活动区域">
9
+                    <el-option label="区域一" value="shanghai"></el-option>
10
+                    <el-option label="区域二" value="beijing"></el-option>
11
+                </el-select>
12
+            </el-form-item>
13
+            <el-form-item label="活动时间">
14
+                <el-col :span="11">
15
+                    <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
16
+                </el-col>
17
+                <el-col class="line" :span="2">-</el-col>
18
+                <el-col :span="11">
19
+                    <el-time-picker type="fixed-time" placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
20
+                </el-col>
21
+            </el-form-item>
22
+            <el-form-item label="即时配送">
23
+                <el-switch on-text="" off-text="" v-model="form.delivery"></el-switch>
24
+            </el-form-item>
25
+            <el-form-item label="活动性质">
26
+                <el-checkbox-group v-model="form.type">
27
+                    <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
28
+                    <el-checkbox label="地推活动" name="type"></el-checkbox>
29
+                    <el-checkbox label="线下主题活动" name="type"></el-checkbox>
30
+                    <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
31
+                </el-checkbox-group>
32
+            </el-form-item>
33
+            <el-form-item label="特殊资源">
34
+                <el-radio-group v-model="form.resource">
35
+                    <el-radio label="线上品牌商赞助"></el-radio>
36
+                    <el-radio label="线下场地免费"></el-radio>
37
+                </el-radio-group>
38
+            </el-form-item>
39
+            <el-form-item label="活动形式">
40
+                <el-input type="textarea" v-model="form.desc"></el-input>
41
+            </el-form-item>
42
+            <el-form-item>
43
+                <el-button type="primary" @click="onSubmit">立即创建</el-button>
44
+                <el-button>取消</el-button>
45
+            </el-form-item>
46
+        </el-form>
47
+    </div>
48
+</template>
49
+
50
+<script>
51
+  export default {
52
+    data() {
53
+      return {
54
+        form: {
55
+          name: '',
56
+          region: '',
57
+          date1: '',
58
+          date2: '',
59
+          delivery: false,
60
+          type: [],
61
+          resource: '',
62
+          desc: ''
63
+        }
64
+      }
65
+    },
66
+    methods: {
67
+      onSubmit() {
68
+        console.log('submit!');
69
+      }
70
+    }
71
+  }
72
+</script>

+ 0 - 5
src/views/page/index.vue

@@ -1,5 +0,0 @@
1
-<template>
2
-    <div class="login-container">
3
-        a
4
-    </div>
5
-</template>

+ 57 - 0
src/views/table/index.vue

@@ -0,0 +1,57 @@
1
+<template>
2
+  <div class="app-container">
3
+    <el-table :data="list" v-loading.body="listLoading" element-loading-text="拼命加载中" border fit highlight-current-row>
4
+      <el-table-column align="center" label='ID' width="95">
5
+        <template scope="scope">
6
+          {{scope.$index}}
7
+        </template>
8
+      </el-table-column>
9
+      <el-table-column label="Title">
10
+        <template scope="scope">
11
+          {{scope.row.title}}
12
+        </template>
13
+      </el-table-column>
14
+
15
+      <el-table-column label="Author" width="110" align="center">
16
+        <template scope="scope">
17
+          <span>{{scope.row.author}}</span>
18
+        </template>
19
+      </el-table-column>
20
+      <el-table-column label="Pageviews" width="110" align="center">
21
+        <template scope="scope">
22
+          {{scope.row.pageviews}}
23
+        </template>
24
+      </el-table-column>
25
+      <el-table-column align="center" prop="created_at" label="Display_time" width="200">
26
+        <template scope="scope">
27
+          <i class="el-icon-time"></i>
28
+          <span>{{scope.row.display_time}}</span>
29
+        </template>
30
+      </el-table-column>
31
+    </el-table>
32
+  </div>
33
+</template>
34
+
35
+<script>
36
+import { getList } from '@/api/table';
37
+export default {
38
+  data() {
39
+    return {
40
+      list: null,
41
+      listLoading: true
42
+    }
43
+  },
44
+  created() {
45
+    this.fetchData();
46
+  },
47
+  methods: {
48
+    fetchData() {
49
+      this.listLoading = true;
50
+      getList(this.listQuery).then(response => {
51
+        this.list = response.data.items;
52
+        this.listLoading = false;
53
+      })
54
+    }
55
+  }
56
+};
57
+</script>