Przeglądaj źródła

Merge branch 'dev' of http://git.ycjcjy.com/SpaceOfCheng/admin into dev

wangfei 6 lat temu
rodzic
commit
afafb0cbf4

+ 593
- 75
package-lock.json
Plik diff jest za duży
Wyświetl plik


+ 4
- 0
package.json Wyświetl plik

@@ -14,14 +14,17 @@
14 14
     "build": "node build/build.js"
15 15
   },
16 16
   "dependencies": {
17
+    "@antv/g2": "^3.2.7",
17 18
     "axios": "^0.18.0",
18 19
     "element-ui": "^2.4.5",
20
+    "g2-vue": "^1.0.1",
19 21
     "js-base64": "^2.4.8",
20 22
     "js-md5": "^0.7.3",
21 23
     "vue": "^2.5.2",
22 24
     "vue-amap": "^0.5.8",
23 25
     "vue-cookie": "^1.1.4",
24 26
     "vue-fullcalendar": "^1.0.9",
27
+    "vue-morris": "0.0.13",
25 28
     "vue-router": "^3.0.1",
26 29
     "vuex": "^3.0.1"
27 30
   },
@@ -78,6 +81,7 @@
78 81
     "style-loader": "^0.22.0",
79 82
     "uglifyjs-webpack-plugin": "^1.1.1",
80 83
     "url-loader": "^0.5.8",
84
+    "vue-fullcalendar": "^1.0.9",
81 85
     "vue-jest": "^1.0.2",
82 86
     "vue-loader": "^13.3.0",
83 87
     "vue-style-loader": "^3.0.1",

BIN
src/assets/logo.png Wyświetl plik


+ 61
- 0
src/components/brokenLineGraph/index.vue Wyświetl plik

@@ -0,0 +1,61 @@
1
+<template>
2
+  <div class="component">
3
+    <h6 class="title">{{data.title}}</h6>
4
+    <div id="brokenLineGraph" ref="box"></div>
5
+  </div>
6
+</template>
7
+
8
+<script>
9
+import G2 from '@antv/g2'
10
+
11
+export default {
12
+  name: '',
13
+  props: ['data'],
14
+  data () {
15
+    return {
16
+    }
17
+  },
18
+  components: {
19
+    G2,
20
+  },
21
+  mounted () {
22
+    this.$nextTick(function () {
23
+      this.init()
24
+    })
25
+  },
26
+  methods: {
27
+    init () {
28
+      var _that = this
29
+      var chart = new G2.Chart({
30
+        container: 'brokenLineGraph',
31
+        forceFit: true,
32
+        width: _that.$refs.box.clientWidth,
33
+        height: 400
34
+      })
35
+      chart.source(_that.data.list)
36
+      chart.scale('y', {
37
+        min: 0
38
+      })
39
+      chart.scale('x', {
40
+        range: [0, 1]
41
+      })
42
+      chart.tooltip({
43
+        crosshairs: {
44
+          type: 'line'
45
+        }
46
+      })
47
+      chart.line().position('x*y')
48
+      chart.point().position('x*y').size(4).shape('circle').style({
49
+        stroke: '#fff',
50
+        lineWidth: 1
51
+      })
52
+      chart.render()
53
+    },
54
+  }
55
+}
56
+</script>
57
+
58
+<!-- Add "scoped" attribute to limit CSS to this component only -->
59
+<style lang="scss" scoped>
60
+@import "page.scss"
61
+</style>

+ 28
- 0
src/components/brokenLineGraph/page.scss Wyświetl plik

@@ -0,0 +1,28 @@
1
+
2
+.component{
3
+  
4
+}
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+

+ 36
- 0
src/components/dashboardList/index.vue Wyświetl plik

@@ -0,0 +1,36 @@
1
+<template>
2
+  <div class="dashboardList">
3
+    <ul class="flex-h">
4
+      <li class="flex-item" v-for="(item,index) in data.list" :key="index">
5
+        <div :style="{background:colorList[index%colorList.length]}">
6
+          <div class="centerLabel">
7
+            <span>{{item.name}}</span>
8
+            <span>{{item.value}}</span>
9
+          </div>
10
+        </div>
11
+      </li>
12
+    </ul>
13
+  </div>
14
+</template>
15
+
16
+<script>
17
+export default {
18
+  name: '',
19
+  props: ['data'],
20
+  data () {
21
+    return {
22
+      colorList: ['#fc6243', '#409EFF', '#4ddea2', '#f6e259', '#5c59f6', '#f66f59'],
23
+    }
24
+  },
25
+  mounted () {
26
+    this.$nextTick(function () {})
27
+  },
28
+  methods: {
29
+  }
30
+}
31
+</script>
32
+
33
+<!-- Add "scoped" attribute to limit CSS to this component only -->
34
+<style lang="scss" scoped>
35
+@import "page.scss";
36
+</style>

+ 57
- 0
src/components/dashboardList/page.scss Wyświetl plik

@@ -0,0 +1,57 @@
1
+
2
+.dashboardList{
3
+  >ul{
4
+    >li{
5
+      margin-left: 20px;
6
+      position: relative;
7
+      overflow: hidden;
8
+      &:first-child{
9
+        margin-left: 0;
10
+      }
11
+      >div{
12
+        width: 100%;
13
+        position: relative;
14
+        overflow: hidden;
15
+        padding-bottom: 30%;
16
+        border-radius: 10px;
17
+        background: #ccc;
18
+        >div{
19
+          width: 100%;
20
+          >*{
21
+            width: 100%;
22
+            display: block;
23
+            text-align: center;
24
+            font-size: 18px;
25
+            color: #fff;
26
+            font-weight: bolder;
27
+            line-height: 1.6;
28
+          }
29
+        }
30
+      }
31
+    }
32
+  }
33
+}
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+

+ 49
- 0
src/components/histogram/index.vue Wyświetl plik

@@ -0,0 +1,49 @@
1
+<template>
2
+  <div class="component">
3
+    <h6 class="title">{{data.title}}</h6>
4
+    <div id="histogram" ref="box"></div>
5
+  </div>
6
+</template>
7
+
8
+<script>
9
+import G2 from '@antv/g2'
10
+
11
+export default {
12
+  name: '',
13
+  props: ['data'],
14
+  data () {
15
+    return {
16
+    }
17
+  },
18
+  components: {
19
+    G2,
20
+  },
21
+  mounted () {
22
+    this.$nextTick(function () {
23
+      this.init()
24
+    })
25
+  },
26
+  methods: {
27
+    init () {
28
+      var _that = this
29
+      var chart = new G2.Chart({
30
+        container: 'histogram',
31
+        forceFit: true,
32
+        width: _that.$refs.box.clientWidth,
33
+        height: 400
34
+      })
35
+      chart.source(_that.data.list)
36
+      chart.scale('y', {
37
+        tickInterval: 20
38
+      })
39
+      chart.interval().position('x*y')
40
+      chart.render()
41
+    },
42
+  }
43
+}
44
+</script>
45
+
46
+<!-- Add "scoped" attribute to limit CSS to this component only -->
47
+<style lang="scss" scoped>
48
+@import "page.scss";
49
+</style>

+ 28
- 0
src/components/histogram/page.scss Wyświetl plik

@@ -0,0 +1,28 @@
1
+
2
+.component{
3
+  
4
+}
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+

+ 73
- 0
src/components/pieDiagram/index.vue Wyświetl plik

@@ -0,0 +1,73 @@
1
+<template>
2
+  <div class="component">
3
+    <h6 class="title">{{data.title}}</h6>
4
+    <div id="pieDiagram" ref="box"></div>
5
+  </div>
6
+</template>
7
+
8
+<script>
9
+import G2 from '@antv/g2'
10
+
11
+export default {
12
+  name: '',
13
+  props: ['data'],
14
+  data () {
15
+    return {
16
+    }
17
+  },
18
+  components: {
19
+    G2,
20
+  },
21
+  mounted () {
22
+    this.$nextTick(function () {
23
+      this.init()
24
+    })
25
+  },
26
+  methods: {
27
+    init () {
28
+      var _that = this
29
+      var chart = new G2.Chart({
30
+        container: 'pieDiagram',
31
+        forceFit: true,
32
+        width: _that.$refs.box.clientWidth,
33
+        height: 400
34
+      })
35
+      chart.source(_that.data.list, {
36
+        percent: {
37
+          formatter: function formatter (val) {
38
+            val = val * 100 + '%'
39
+            return val
40
+          }
41
+        }
42
+      })
43
+      chart.coord('theta', {
44
+        radius: 0.75
45
+      })
46
+      chart.tooltip({
47
+        showTitle: false,
48
+        itemTpl: '<li><span style="background-color:{color}" class="g2-tooltip-marker"></span>{name}: {value}</li>'
49
+      })
50
+      chart.intervalStack().position('percent').color('item').label('percent', {
51
+        formatter: (val, item) => {
52
+          return item.point.item + ': ' + val
53
+        }
54
+      }).tooltip('item*percent', function (item, percent) {
55
+        percent = percent * 100 + '%'
56
+        return {
57
+          name: item,
58
+          value: percent
59
+        }
60
+      }).style({
61
+        lineWidth: 1,
62
+        stroke: '#fff'
63
+      })
64
+      chart.render()
65
+    },
66
+  }
67
+}
68
+</script>
69
+
70
+<!-- Add "scoped" attribute to limit CSS to this component only -->
71
+<style lang="scss" scoped>
72
+@import "page.scss";
73
+</style>

+ 26
- 0
src/components/pieDiagram/page.scss Wyświetl plik

@@ -0,0 +1,26 @@
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+

+ 86
- 0
src/components/ringChart/index.vue Wyświetl plik

@@ -0,0 +1,86 @@
1
+<template>
2
+  <div class="component">
3
+    <h6 class="title">{{data.title}}</h6>
4
+    <div id="ringChart" ref="box"></div>
5
+  </div>
6
+</template>
7
+
8
+<script>
9
+import G2 from '@antv/g2'
10
+
11
+export default {
12
+  name: '',
13
+  props: ['data'],
14
+  data () {
15
+    return {
16
+    }
17
+  },
18
+  components: {
19
+    G2,
20
+  },
21
+  mounted () {
22
+    this.$nextTick(function () {
23
+      this.init()
24
+    })
25
+  },
26
+  methods: {
27
+    init () {
28
+      var _that = this
29
+      var chart = new G2.Chart({
30
+        container: 'ringChart',
31
+        forceFit: true,
32
+        width: _that.$refs.box.clientWidth,
33
+        height: 400
34
+      })
35
+      chart.source(_that.data.list, {
36
+        percent: {
37
+          formatter: function formatter (val) {
38
+            val = val * 100 + '%'
39
+            return val
40
+          }
41
+        }
42
+      })
43
+      chart.coord('theta', {
44
+        radius: 0.75,
45
+        innerRadius: 0.6
46
+      })
47
+      chart.tooltip({
48
+        showTitle: false,
49
+        itemTpl: '<li><span style="background-color:{color};" class="g2-tooltip-marker"></span>{name}: {value}</li>'
50
+      })
51
+      var num = 0
52
+      for (var n = 0; n < _that.data.list.length; n++) {
53
+        num += _that.data.list[n].count
54
+      }
55
+      // 辅助文本
56
+      chart.guide().html({
57
+        position: ['50%', '50%'],
58
+        html: '<div style="color:#8c8c8c;font-size: 14px;text-align: center;width: 10em;">' + _that.data.title + '<br><span style="color:#8c8c8c;font-size:20px">' + num + '</span></div>',
59
+        alignX: 'middle',
60
+        alignY: 'middle'
61
+      })
62
+      var interval = chart.intervalStack().position('percent').color('item').label('percent', {
63
+        formatter: function formatter (val, item) {
64
+          return item.point.item + ': ' + val
65
+        }
66
+      }).tooltip('item*percent', function (item, percent) {
67
+        percent = percent * 100 + '%'
68
+        return {
69
+          name: item,
70
+          value: percent
71
+        }
72
+      }).style({
73
+        lineWidth: 1,
74
+        stroke: '#fff'
75
+      })
76
+      chart.render()
77
+      interval.setSelected(_that.data.list[0])
78
+    },
79
+  }
80
+}
81
+</script>
82
+
83
+<!-- Add "scoped" attribute to limit CSS to this component only -->
84
+<style lang="scss" scoped>
85
+@import "page.scss";
86
+</style>

+ 28
- 0
src/components/ringChart/page.scss Wyświetl plik

@@ -0,0 +1,28 @@
1
+
2
+.component{
3
+  
4
+}
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+

+ 1
- 1
src/components/siderBar/index.vue Wyświetl plik

@@ -31,7 +31,7 @@
31 31
               </el-menu-item-group>
32 32
             </el-submenu>
33 33
             <el-menu-item v-else :index="String(index)" :key="index">
34
-              <span slot="title">{{item.MenuName}}</span>
34
+              <router-link :to="{name:item.Url,query:{}}" active-class="active">{{item.MenuName}}</router-link>
35 35
             </el-menu-item>
36 36
           </template>
37 37
         </el-menu>

+ 1
- 1
src/pages/login/index.vue Wyświetl plik

@@ -71,7 +71,7 @@ export default {
71 71
           duration: 1000
72 72
         })
73 73
         setTimeout(() => {
74
-          this.$router.push({ name: 'userManager' })
74
+          this.$router.push({ name: 'dashboard' })
75 75
         }, 1000)
76 76
       }).catch(msg => {
77 77
 

+ 105
- 0
src/pages/system/dashboard/index.vue Wyświetl plik

@@ -0,0 +1,105 @@
1
+<template>
2
+  <div class="subPage">
3
+    <div class="selectCase">
4
+      <el-select v-model="CaseId" placeholder="请选择">
5
+        <el-option
6
+          v-for="item in cases"
7
+          :key="item.CaseId"
8
+          :label="item.CaseName"
9
+          :value="item.CaseId">
10
+        </el-option>
11
+      </el-select>
12
+    </div>
13
+    <div class="flex-h" v-for="(item,index) in pageData" :key="index">
14
+      <div class="flex-item" v-for="(subItem,subIndex) in item" :key="subIndex">
15
+        <div v-if="subItem.type === 'dashboardList'">
16
+          <dashboardList :data="subItem.data"></dashboardList>
17
+        </div>
18
+        <div v-if="subItem.type === 'histogram'">
19
+          <histogram :data="subItem.data"></histogram>
20
+        </div>
21
+        <div v-if="subItem.type === 'pieDiagram'">
22
+          <pieDiagram :data="subItem.data"></pieDiagram>
23
+        </div>
24
+        <div v-if="subItem.type === 'brokenLineGraph'">
25
+          <brokenLineGraph :data="subItem.data"></brokenLineGraph>
26
+        </div>
27
+        <div v-if="subItem.type === 'ringChart'">
28
+          <ringChart :data="subItem.data"></ringChart>
29
+        </div>
30
+      </div>
31
+    </div>
32
+  </div>
33
+</template>
34
+
35
+<script>
36
+import { mapState } from 'vuex'
37
+import dashboardList from '../../../components/dashboardList/index'
38
+import histogram from '../../../components/histogram/index'
39
+import pieDiagram from '../../../components/pieDiagram/index'
40
+import brokenLineGraph from '../../../components/brokenLineGraph/index'
41
+import ringChart from '../../../components/ringChart/index'
42
+
43
+export default {
44
+  name: '',
45
+  data () {
46
+    return {
47
+      postData: {
48
+        caseid: ''
49
+      },
50
+      pageData: [
51
+        [
52
+          { type: 'dashboardList', remark: '列表面板', data: { title: '', list: [{ name: '会员总数', value: '1000', }, { name: '课程预约总量', value: '1000', }, { name: '饮品下单总量', value: '1000', }] } }
53
+        ],
54
+        [
55
+          { type: 'histogram', remark: '柱状图', data: { title: '今日数据', list: [{ x: '推荐会员新增', y: 38 }, { x: '课程数', y: 52 }, { x: '预约数', y: 61 }, { x: '到场人次', y: 145 }] } },
56
+          { type: 'pieDiagram', remark: '扇形图', data: { title: '明日课程预约数据', list: [{ item: '小小体验官', count: 40, percent: 0.4 }, { item: '哈他瑜伽', count: 52, percent: 0.52 }, { item: '小小飞行家', count: 8, percent: 0.08 }] } }
57
+        ],
58
+        [
59
+          { type: 'brokenLineGraph', remark: '折线图', data: { title: '下单饮品数据', list: [{ x: '09/05', y: 3 }, { x: '09/06', y: 4 }, { x: '09/07', y: 3.5 }, { x: '09/08', y: 5 }, { x: '09/09', y: 4.9 }, { x: '09/10', y: 6 }, { x: '09/11', y: 7 }, { x: '09/12', y: 9 }, { x: '09/13', y: 13 }] } },
60
+          { type: 'ringChart', remark: '环形图', data: { title: '本月课程预约', list: [{ item: '健身课程', count: 40, percent: 0.4 }, { item: '社交课程', count: 21, percent: 0.21 }, { item: '教育课程', count: 17, percent: 0.17 }, { item: '健康课程', count: 13, percent: 0.13 }, { item: '艺术课程', count: 9, percent: 0.09 }] } },
61
+        ],
62
+        [
63
+          { type: '', remark: '', data: { title: '', list: [] } },
64
+        ],
65
+      ],
66
+    }
67
+  },
68
+  components: {
69
+    dashboardList,
70
+    histogram,
71
+    pieDiagram,
72
+    brokenLineGraph,
73
+    ringChart,
74
+  },
75
+  computed: {
76
+    ...mapState({
77
+      cases: x => x.app.cases.list,
78
+      defaultCaseId: x => x.app.cases.default
79
+    }),
80
+    CaseId: {
81
+      get () {
82
+        return this.postData.caseid || this.defaultCaseId
83
+      },
84
+      set (val) {
85
+        this.postData.caseid = val
86
+      }
87
+    }
88
+  },
89
+  mounted () {
90
+    this.$nextTick(function () {
91
+      this.drawHistogram()
92
+    })
93
+  },
94
+  methods: {
95
+    drawHistogram () { // 绘制柱状图
96
+      // this.histogramInit.source(this.histogramParams)
97
+    },
98
+  }
99
+}
100
+</script>
101
+
102
+<!-- Add "scoped" attribute to limit CSS to this component only -->
103
+<style lang="scss" scoped>
104
+@import "page.scss";
105
+</style>

+ 54
- 0
src/pages/system/dashboard/page.scss Wyświetl plik

@@ -0,0 +1,54 @@
1
+
2
+.subPage{
3
+  >*{
4
+    width: calc(100% - 40px);
5
+    position: relative;
6
+    overflow: hidden;
7
+    margin: 20px auto 0;
8
+    >div{
9
+      >div{
10
+        >div{
11
+          
12
+        }
13
+      }
14
+    }
15
+  }
16
+  >*:last-child{
17
+    margin-bottom: 20px;
18
+  }
19
+  .selectCase{
20
+    text-align: right;
21
+  }
22
+  .top{
23
+    
24
+  }
25
+}
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+

+ 19
- 0
src/pages/system/newOrder/index.vue Wyświetl plik

@@ -0,0 +1,19 @@
1
+<template>
2
+  <div class="mainPage">
3
+    <router-view></router-view>
4
+  </div>
5
+</template>
6
+
7
+<script>
8
+export default {
9
+  name: '',
10
+  data () {
11
+    return {}
12
+  },
13
+  components: {}
14
+}
15
+</script>
16
+
17
+<!-- Add "scoped" attribute to limit CSS to this component only -->
18
+<style lang="scss" scoped>
19
+</style>

+ 107
- 0
src/pages/system/newOrder/newOrderList/index.vue Wyświetl plik

@@ -0,0 +1,107 @@
1
+<template>
2
+  <div class="subPage">
3
+    <div class="system-table-search">
4
+      <div class="flex-h">
5
+        <div class="flex-item flex-h">
6
+          <el-button size="mini" type="danger">营业</el-button>
7
+        </div>
8
+      </div>
9
+      <div class="moreFilter"></div>
10
+    </div>
11
+    <div class="order-list-box">
12
+      <div v-for="(item,index) in list" :key="index">
13
+        <div class="print-area">
14
+          <div style="padding:25px 20px 5px;border-bottom:2px solid #cccccc;">
15
+            <i class="iconfont icon-yinchenglogo" style="font-size:70px;color:red;position: relative;bottom: 20px;margin-right:10px;"></i>
16
+            <div style="display:inline-block;">
17
+              <span style="display:block;font-size:20px;font-weight:700;">A区域1号桌</span>
18
+              <span style="display:block;margin-top:10px">下单时间:21:30:39</span>
19
+              <span style="display:block;margin-top:10px">已等待:<span style="color:red;font-weight:700;">30:29</span></span>
20
+            </div>
21
+          </div>
22
+          <div style="padding:10px 20px 5px;border-bottom:1px solid #cccccc;">
23
+            <div>卡布奇诺</div>
24
+            <div style="margin-top:8px;">
25
+              <span style="display:inline-block;width:75%;text-align:left;color:#cccccc">热</span>
26
+              <span style="display:inline-block;width:20%;text-align:right">x 1</span>
27
+            </div>
28
+            <div style="margin-top:8px;">
29
+              <span style="display:inline-block;width:75%;text-align:left;color:#cccccc">冷</span>
30
+              <span style="display:inline-block;width:20%;text-align:right">x 2</span>
31
+            </div>
32
+          </div>
33
+          <div style="padding:10px 20px 5px;border-bottom:1px solid #cccccc;">
34
+            <div>卡布奇诺</div>
35
+            <div style="margin-top:8px;">
36
+              <span style="display:inline-block;width:75%;text-align:left;color:#cccccc">热</span>
37
+              <span style="display:inline-block;width:20%;text-align:right">x 1</span>
38
+            </div>
39
+            <div style="margin-top:8px;">
40
+              <span style="display:inline-block;width:75%;text-align:left;color:#cccccc">冷</span>
41
+              <span style="display:inline-block;width:20%;text-align:right">x 2</span>
42
+            </div>
43
+          </div>
44
+          <div style="padding:10px 20px;border-bottom:1px solid #cccccc">备注:请赶快制作</div>
45
+          <div style="padding:10px 20px;">下单人:xxxxx</div>
46
+        </div>
47
+        <div class="btns">
48
+          <span>取消</span>
49
+          <span>确定</span>
50
+        </div>
51
+      </div>
52
+    </div>
53
+  </div>
54
+</template>
55
+
56
+<script>
57
+export default {
58
+  name: '',
59
+  data () {
60
+    return {
61
+      total: 0,
62
+      postData: { // 表格搜索条件
63
+        phone: '', // 手机号
64
+        page: 1, // 当前页码
65
+        pagesize: 10, // 请求数据量
66
+      },
67
+      currentList: [],
68
+      list: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
69
+    }
70
+  },
71
+  components: {
72
+  },
73
+  mounted () {
74
+    this.$nextTick(function () {
75
+      this.getList()
76
+    })
77
+  },
78
+  methods: {
79
+    FormatDate (date) {
80
+      return this.toolClass.dateFormat(date)
81
+    },
82
+    handleCurrentChange (val) {
83
+      this.getList()
84
+    },
85
+    searchList (key) { // 搜索列表
86
+      this.postData.phone = key
87
+      this.postData.page = 1
88
+      this.getList()
89
+    },
90
+    getList () {
91
+      this.$ajax(this.$api.dataStatistics.getCustomerList.url, {
92
+        method: this.$api.dataStatistics.getCustomerList.method,
93
+        queryData: this.postData
94
+      }).then(res => {
95
+        this.currentList = res.list
96
+        this.postData.page = res.page
97
+        this.total = res.pagenum
98
+      })
99
+    }
100
+  }
101
+}
102
+</script>
103
+
104
+<!-- Add "scoped" attribute to limit CSS to this component only -->
105
+<style lang="scss" scoped>
106
+@import "page.scss";
107
+</style>

+ 33
- 0
src/pages/system/newOrder/newOrderList/page.scss Wyświetl plik

@@ -0,0 +1,33 @@
1
+.order-list-box{
2
+  padding: 50px;
3
+  border-radius: 3px;
4
+  overflow: scroll;
5
+  width: 95%;
6
+  height: 100%;
7
+  >div{
8
+    display: inline-block;
9
+    width:300px;
10
+    height:400px;
11
+    margin:10px;
12
+    box-shadow: 0px 2px 10px 0px rgba(193, 204, 217, 0.5);
13
+  }
14
+  .btns{
15
+    display: flex;
16
+    justify-content: center;
17
+    align-items: center;
18
+    span{
19
+      padding: 5px 25px;
20
+      border-radius: 8px;
21
+      display: block;
22
+    }
23
+    span:nth-of-type(1){
24
+      color: red;
25
+      border:1px solid red;
26
+      margin-right: 10px;
27
+    }
28
+    span:nth-of-type(2){
29
+      color: #fff;
30
+      background-color: red;
31
+    }
32
+  }
33
+}

+ 21
- 1
src/pages/system/page.js Wyświetl plik

@@ -1,6 +1,8 @@
1 1
 
2 2
 import system from './index' // 系统首页
3 3
 
4
+import dashboard from './dashboard/index' // 控制板
5
+
4 6
 import systemSet from './systemSet/index' // 系统设置
5 7
 import userManager from './systemSet/userManager/index' // 用户管理
6 8
 import addUser from './systemSet/userManager/add' // 添加用户
@@ -76,13 +78,21 @@ import phoneVerificationList from './verificationManager/phoneVerification/verif
76 78
 import dataStatistics from './dataStatistics/index' // 数据统计
77 79
 import frontEndUserList from './dataStatistics/frontEndUserList/index' // 课程管理
78 80
 
81
+import newOrder from './newOrder/index' // 商品订单系统
82
+import newOrderList from './newOrder/newOrderList/index' // 新订单列表
83
+
79 84
 export default {
80 85
   router: [
81 86
     {
82 87
       path: '/system',
83 88
       name: 'system',
84 89
       component: system,
85
-      children: [{ // 系统设置
90
+      children: [{ // 首页控制板
91
+        path: 'dashboard',
92
+        name: 'dashboard',
93
+        component: dashboard,
94
+        children: []
95
+      }, { // 系统设置
86 96
         path: 'systemSet',
87 97
         name: 'systemSet',
88 98
         component: systemSet,
@@ -407,6 +417,16 @@ export default {
407 417
             children: []
408 418
           }]
409 419
         }]
420
+      }, { // 商品订单系统
421
+        path: 'newOrder',
422
+        name: 'newOrder',
423
+        component: newOrder,
424
+        children: [{ // 新订单列表
425
+          path: 'newOrderList',
426
+          name: 'newOrderList',
427
+          component: newOrderList,
428
+          children: []
429
+        }]
410 430
       }, { // 数据统计
411 431
         path: 'dataStatistics',
412 432
         name: 'dataStatistics',

+ 9
- 0
src/style/main.css Wyświetl plik

@@ -388,6 +388,15 @@ select:focus {
388 388
   display: inline-block;
389 389
 }
390 390
 
391
+.component,
392
+.component>div,
393
+#mountNode>div{
394
+  width: 100%;
395
+  height: 100%;
396
+}
397
+
398
+
399
+
391 400
 
392 401
 
393 402