许成详 6 年之前
父節點
當前提交
249d35a513

+ 39
- 0
src/pages/system/cardAndCouponManager/cardManager/edit.vue 查看文件

@@ -0,0 +1,39 @@
1
+<template>
2
+  <div class="subPage">
3
+    1
4
+  </div>
5
+</template>
6
+
7
+<script>
8
+import { mapState } from 'vuex'
9
+
10
+export default {
11
+  name: '',
12
+  data () {
13
+    return {}
14
+  },
15
+  mounted () {
16
+    this.$nextTick(function () {})
17
+  },
18
+  computed: {
19
+    ...mapState({
20
+      cases: x => x.app.cases.list,
21
+      defaultCaseId: x => x.app.cases.default
22
+    }),
23
+    CaseId: {
24
+      get () {
25
+        return this.postData.caseid || this.defaultCaseId
26
+      },
27
+      set (val) {
28
+        this.postData.caseid = val
29
+      }
30
+    }
31
+  },
32
+  methods: {
33
+  }
34
+}
35
+</script>
36
+
37
+<!-- Add "scoped" attribute to limit CSS to this component only -->
38
+<style lang="scss" scoped>
39
+</style>

+ 155
- 0
src/pages/system/cardAndCouponManager/cardManager/index.vue 查看文件

@@ -0,0 +1,155 @@
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="success" @click='addChannel'>新增渠道</el-button>
7
+        </div>
8
+        <ul>
9
+          <li>
10
+            <!-- <span>选择案场:</span> -->
11
+            <el-select v-model="CaseId" placeholder="请选择">
12
+              <el-option
13
+                v-for="item in cases"
14
+                :key="item.CaseId"
15
+                :label="item.CaseName"
16
+                :value="item.CaseId">
17
+              </el-option>
18
+            </el-select>
19
+          </li>
20
+        </ul>
21
+        <el-button
22
+          size="mini"
23
+          type="primary" @click="search">搜索</el-button>
24
+      </div>
25
+      <div class="moreFilter"></div>
26
+    </div>
27
+    <div class="system-table-box">
28
+      <el-table
29
+        :data="currentList"
30
+        stripe
31
+        style="width: 100%">
32
+        <el-table-column
33
+          prop="CaseName"
34
+          label="案场">
35
+        </el-table-column>
36
+        <el-table-column
37
+          prop="ChannelName"
38
+          label="渠道名称">
39
+        </el-table-column>
40
+        <el-table-column label="操作">
41
+          <template slot-scope="scope">
42
+            <el-button
43
+              size="mini"
44
+              type="warning"
45
+              @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
46
+            <el-button
47
+              size="mini"
48
+              type="danger"
49
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
50
+          </template>
51
+        </el-table-column>
52
+      </el-table>
53
+    </div>
54
+    <el-pagination
55
+      @current-change="handleCurrentChange"
56
+      :current-page.sync="postData.page"
57
+      :page-size="postData.pagesize"
58
+      layout="prev, pager, next, jumper"
59
+      :total="total">
60
+    </el-pagination>
61
+  </div>
62
+</template>
63
+
64
+<script>
65
+import { mapState } from 'vuex'
66
+
67
+export default {
68
+  name: '',
69
+  data () {
70
+    return {
71
+      total: 0,
72
+      postData: { // 表格搜索条件
73
+        caseid: '', // 案场id
74
+        page: 1, // 当前页码
75
+        pagesize: 10, // 请求数据量
76
+      },
77
+      currentList: []
78
+    }
79
+  },
80
+  mounted () {
81
+    this.$nextTick(function () {
82
+      this.getList()
83
+    })
84
+  },
85
+  computed: {
86
+    ...mapState({
87
+      cases: x => x.app.cases.list,
88
+      defaultCaseId: x => x.app.cases.default
89
+    }),
90
+    CaseId: {
91
+      get () {
92
+        return this.postData.caseid || this.defaultCaseId
93
+      },
94
+      set (val) {
95
+        this.postData.caseid = val
96
+      }
97
+    }
98
+  },
99
+  methods: {
100
+    search () { // 搜索
101
+      this.postData.page = 1
102
+      this.currentList = []
103
+      this.getList()
104
+    },
105
+    getList () { // 获取列表
106
+      this.$ajax(this.$api.channelManager.getChannelList.url, {
107
+        method: this.$api.channelManager.getChannelList.method,
108
+        queryData: { ...this.postData, caseid: this.CaseId }
109
+      }).then(res => {
110
+        this.currentList = res.list
111
+        this.postData.page = res.page
112
+        this.total = res.pagenum
113
+      })
114
+    },
115
+    handleCurrentChange (val) { // 跳转到分页
116
+      this.getList()
117
+    },
118
+    handleEdit (index, row) { // 编辑
119
+      this.$router.push({ name: 'editChannel', query: { id: row.ChannelId } })
120
+    },
121
+    handleDelete (index, row) { // 删除
122
+      let name = '确认删除渠道“' + row.ChannelName + '”?'
123
+      this.$confirm(name, '提示', {
124
+        confirmButtonText: '确定',
125
+        cancelButtonText: '取消',
126
+        type: 'warning'
127
+      }).then(() => {
128
+        this.$ajax(this.$api.channelManager.deleteChannel.url, {
129
+          method: this.$api.channelManager.deleteChannel.method,
130
+          urlData: { channelId: row.ChannelId }
131
+        }).then(res => {
132
+          this.$message({
133
+            type: 'success',
134
+            message: '删除成功!'
135
+          })
136
+          this.search()
137
+        })
138
+      }).catch(() => {
139
+        this.$message({
140
+          type: 'info',
141
+          message: '已取消删除'
142
+        })
143
+      })
144
+    },
145
+    addChannel () {
146
+      this.$router.push({ name: 'addChannel' })
147
+    }
148
+  }
149
+}
150
+</script>
151
+
152
+<!-- Add "scoped" attribute to limit CSS to this component only -->
153
+<style lang="scss" scoped>
154
+@import "page.scss";
155
+</style>

+ 27
- 0
src/pages/system/cardAndCouponManager/cardManager/page.scss 查看文件

@@ -0,0 +1,27 @@
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
+
27
+

+ 39
- 0
src/pages/system/cardAndCouponManager/couponManager/edit.vue 查看文件

@@ -0,0 +1,39 @@
1
+<template>
2
+  <div class="subPage">
3
+    1
4
+  </div>
5
+</template>
6
+
7
+<script>
8
+import { mapState } from 'vuex'
9
+
10
+export default {
11
+  name: '',
12
+  data () {
13
+    return {}
14
+  },
15
+  mounted () {
16
+    this.$nextTick(function () {})
17
+  },
18
+  computed: {
19
+    ...mapState({
20
+      cases: x => x.app.cases.list,
21
+      defaultCaseId: x => x.app.cases.default
22
+    }),
23
+    CaseId: {
24
+      get () {
25
+        return this.postData.caseid || this.defaultCaseId
26
+      },
27
+      set (val) {
28
+        this.postData.caseid = val
29
+      }
30
+    }
31
+  },
32
+  methods: {
33
+  }
34
+}
35
+</script>
36
+
37
+<!-- Add "scoped" attribute to limit CSS to this component only -->
38
+<style lang="scss" scoped>
39
+</style>

+ 156
- 0
src/pages/system/cardAndCouponManager/couponManager/index.vue 查看文件

@@ -0,0 +1,156 @@
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="success" @click='addChannel'>新增饮品优惠券</el-button>
7
+          <el-button size="mini" type="success" @click='addChannel'>新增课程优惠券</el-button>
8
+        </div>
9
+        <ul>
10
+          <li>
11
+            <!-- <span>选择案场:</span> -->
12
+            <el-select v-model="CaseId" placeholder="请选择">
13
+              <el-option
14
+                v-for="item in cases"
15
+                :key="item.CaseId"
16
+                :label="item.CaseName"
17
+                :value="item.CaseId">
18
+              </el-option>
19
+            </el-select>
20
+          </li>
21
+        </ul>
22
+        <el-button
23
+          size="mini"
24
+          type="primary" @click="search">搜索</el-button>
25
+      </div>
26
+      <div class="moreFilter"></div>
27
+    </div>
28
+    <div class="system-table-box">
29
+      <el-table
30
+        :data="currentList"
31
+        stripe
32
+        style="width: 100%">
33
+        <el-table-column
34
+          prop="CaseName"
35
+          label="案场">
36
+        </el-table-column>
37
+        <el-table-column
38
+          prop="ChannelName"
39
+          label="渠道名称">
40
+        </el-table-column>
41
+        <el-table-column label="操作">
42
+          <template slot-scope="scope">
43
+            <el-button
44
+              size="mini"
45
+              type="warning"
46
+              @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
47
+            <el-button
48
+              size="mini"
49
+              type="danger"
50
+              @click="handleDelete(scope.$index, scope.row)">删除</el-button>
51
+          </template>
52
+        </el-table-column>
53
+      </el-table>
54
+    </div>
55
+    <el-pagination
56
+      @current-change="handleCurrentChange"
57
+      :current-page.sync="postData.page"
58
+      :page-size="postData.pagesize"
59
+      layout="prev, pager, next, jumper"
60
+      :total="total">
61
+    </el-pagination>
62
+  </div>
63
+</template>
64
+
65
+<script>
66
+import { mapState } from 'vuex'
67
+
68
+export default {
69
+  name: '',
70
+  data () {
71
+    return {
72
+      total: 0,
73
+      postData: { // 表格搜索条件
74
+        caseid: '', // 案场id
75
+        page: 1, // 当前页码
76
+        pagesize: 10, // 请求数据量
77
+      },
78
+      currentList: []
79
+    }
80
+  },
81
+  mounted () {
82
+    this.$nextTick(function () {
83
+      this.getList()
84
+    })
85
+  },
86
+  computed: {
87
+    ...mapState({
88
+      cases: x => x.app.cases.list,
89
+      defaultCaseId: x => x.app.cases.default
90
+    }),
91
+    CaseId: {
92
+      get () {
93
+        return this.postData.caseid || this.defaultCaseId
94
+      },
95
+      set (val) {
96
+        this.postData.caseid = val
97
+      }
98
+    }
99
+  },
100
+  methods: {
101
+    search () { // 搜索
102
+      this.postData.page = 1
103
+      this.currentList = []
104
+      this.getList()
105
+    },
106
+    getList () { // 获取列表
107
+      this.$ajax(this.$api.channelManager.getChannelList.url, {
108
+        method: this.$api.channelManager.getChannelList.method,
109
+        queryData: { ...this.postData, caseid: this.CaseId }
110
+      }).then(res => {
111
+        this.currentList = res.list
112
+        this.postData.page = res.page
113
+        this.total = res.pagenum
114
+      })
115
+    },
116
+    handleCurrentChange (val) { // 跳转到分页
117
+      this.getList()
118
+    },
119
+    handleEdit (index, row) { // 编辑
120
+      this.$router.push({ name: 'editChannel', query: { id: row.ChannelId } })
121
+    },
122
+    handleDelete (index, row) { // 删除
123
+      let name = '确认删除渠道“' + row.ChannelName + '”?'
124
+      this.$confirm(name, '提示', {
125
+        confirmButtonText: '确定',
126
+        cancelButtonText: '取消',
127
+        type: 'warning'
128
+      }).then(() => {
129
+        this.$ajax(this.$api.channelManager.deleteChannel.url, {
130
+          method: this.$api.channelManager.deleteChannel.method,
131
+          urlData: { channelId: row.ChannelId }
132
+        }).then(res => {
133
+          this.$message({
134
+            type: 'success',
135
+            message: '删除成功!'
136
+          })
137
+          this.search()
138
+        })
139
+      }).catch(() => {
140
+        this.$message({
141
+          type: 'info',
142
+          message: '已取消删除'
143
+        })
144
+      })
145
+    },
146
+    addChannel () {
147
+      this.$router.push({ name: 'addChannel' })
148
+    }
149
+  }
150
+}
151
+</script>
152
+
153
+<!-- Add "scoped" attribute to limit CSS to this component only -->
154
+<style lang="scss" scoped>
155
+@import "page.scss";
156
+</style>

+ 27
- 0
src/pages/system/cardAndCouponManager/couponManager/page.scss 查看文件

@@ -0,0 +1,27 @@
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
+
27
+

+ 19
- 0
src/pages/system/cardAndCouponManager/index.vue 查看文件

@@ -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>

+ 165
- 0
src/pages/system/cardAndCouponManager/vipManager/activateVip.vue 查看文件

@@ -0,0 +1,165 @@
1
+<template>
2
+  <div class="subPage">
3
+    <div class="inputCardNo flex-h">
4
+      <div class="flex-item">
5
+        <div>
6
+          <el-input
7
+            placeholder="请输入VIP卡号"
8
+            v-model="postData.CardNo"
9
+            clearable>
10
+          </el-input>
11
+        </div>
12
+      </div>
13
+      <el-button type="success" @click='activateVip'>激活</el-button>
14
+    </div>
15
+    <el-dialog
16
+      title="VIP卡激活"
17
+      :visible.sync="centerDialogVisible"
18
+      width="30%"
19
+      center>
20
+      <div>
21
+        <ul class="activateList">
22
+          <li class="flex-h">
23
+            <span>卡号:</span>
24
+            <div class="flex-item">
25
+              <div>
26
+                <span>{{activateData.CardNo}}</span>
27
+              </div>
28
+            </div>
29
+          </li>
30
+          <li class="flex-h">
31
+            <span>金额:</span>
32
+            <div class="flex-item">
33
+              <div>
34
+                <span>{{activateData.Price}}</span>
35
+              </div>
36
+            </div>
37
+          </li>
38
+          <li class="flex-h">
39
+            <span>销售:</span>
40
+            <div class="flex-item" style="margin-right:10px;">
41
+              <div>
42
+                <el-input
43
+                  placeholder="请输入销售手机号"
44
+                  v-model="sellerPhone"
45
+                  clearable>
46
+                </el-input>
47
+              </div>
48
+            </div>
49
+            <el-button type="success" @click='searchSeller'>查询</el-button>
50
+          </li>
51
+          <li class="flex-h">
52
+            <span>销售姓名:</span>
53
+            <div class="flex-item">
54
+              <div>
55
+                <span>{{activateData.SellerName}}</span>
56
+              </div>
57
+            </div>
58
+          </li>
59
+          <li class="flex-h">
60
+            <span>绑定用户:</span>
61
+            <div class="flex-item">
62
+              <div>
63
+                <el-input
64
+                  placeholder="请输入手机号"
65
+                  v-model="activateData.UserPhone"
66
+                  clearable>
67
+                </el-input>
68
+              </div>
69
+            </div>
70
+          </li>
71
+          <li class="flex-h">
72
+            <span>用户姓名:</span>
73
+            <div class="flex-item">
74
+              <div>
75
+                <el-input
76
+                  placeholder="请输入真实姓名"
77
+                  v-model="activateData.UserName"
78
+                  clearable>
79
+                </el-input>
80
+              </div>
81
+            </div>
82
+          </li>
83
+        </ul>
84
+      </div>
85
+      <span slot="footer" class="dialog-footer">
86
+        <el-button @click="centerDialogVisible = false">取 消</el-button>
87
+        <el-button type="primary" @click="centerDialogVisible = false">激 活</el-button>
88
+      </span>
89
+    </el-dialog>
90
+  </div>
91
+</template>
92
+
93
+<script>
94
+import { mapState } from 'vuex'
95
+export default {
96
+  name: '',
97
+  data () {
98
+    return {
99
+      centerDialogVisible: true,
100
+      postData: {
101
+        CardNo: '', // 卡号
102
+      },
103
+      activateData: {
104
+        CardNo: '111111111', // 卡号
105
+        Price: '1000', // 金额
106
+        SellerName: '', // 销售姓名
107
+        CaseName: 'xxx', // 案场名称
108
+        UserPhone: '', // 用户手机号
109
+        UserName: '', // 用户姓名
110
+      },
111
+      sellerPhone: '', // 销售手机号
112
+    }
113
+  },
114
+  computed: {
115
+    ...mapState({
116
+      cases: x => x.app.cases.list,
117
+      defaultCaseId: x => x.app.cases.default,
118
+      OrgId: x => x.app.user.OrgId,
119
+    }),
120
+    CaseId: {
121
+      get () {
122
+        return this.postData.CaseId === '' ? this.defaultCaseId || '' : this.postData.CaseId
123
+      },
124
+      set (val) {
125
+        this.postData.CaseId = val
126
+      }
127
+    }
128
+  },
129
+  created () { },
130
+  components: {},
131
+  methods: {
132
+    searchSeller () { // 查询销售
133
+    },
134
+    activateVip () { // 激活vip
135
+      this.centerDialogVisible = true
136
+    },
137
+  },
138
+  mounted () { }
139
+}
140
+</script>
141
+
142
+<!-- Add "scoped" attribute to limit CSS to this component only -->
143
+<style lang="scss" scoped>
144
+.subPage {
145
+  .inputCardNo {
146
+    width: 400px;
147
+    margin: 40px auto 0;
148
+    white-space: nowrap;
149
+    > div {
150
+      margin-right: 20px;
151
+    }
152
+  }
153
+  .activateList {
154
+    > li {
155
+      padding: 10px 0;
156
+      span {
157
+        line-height: 40px;
158
+      }
159
+      > span {
160
+        min-width: 80px;
161
+      }
162
+    }
163
+  }
164
+}
165
+</style>

+ 106
- 0
src/pages/system/cardAndCouponManager/vipManager/edit.vue 查看文件

@@ -0,0 +1,106 @@
1
+<template>
2
+  <div class="subPage">
3
+    <form class="mainForm">
4
+      <ul>
5
+        <li class="flex-h">
6
+          <span>选择案场:</span>
7
+          <div class="flex-item">
8
+            <div style="width:50%">
9
+              <el-select v-model="CaseId" placeholder="请选择">
10
+                <el-option
11
+                  v-for="item in cases"
12
+                  :key="item.CaseId"
13
+                  :label="item.CaseName"
14
+                  :value="item.CaseId">
15
+                </el-option>
16
+              </el-select>
17
+            </div>
18
+          </div>
19
+        </li>
20
+        <li class="flex-h">
21
+          <span>VIP卡数量:</span>
22
+          <div class="flex-item">
23
+            <div style="width:50%">
24
+              <el-input
25
+                placeholder="请输入VIP卡数量"
26
+                v-model="postData.CardNum"
27
+                clearable>
28
+              </el-input>
29
+            </div>
30
+          </div>
31
+        </li>
32
+        <li class="flex-h">
33
+          <span>价格:</span>
34
+          <div class="flex-item">
35
+            <div style="width:50%">
36
+              <el-input
37
+                placeholder="请输入价格"
38
+                v-model="postData.Price"
39
+                clearable>
40
+              </el-input>
41
+            </div>
42
+          </div>
43
+        </li>
44
+        <li style="text-align:center">
45
+          <el-button type="primary" size="mini" @click="submit">保存</el-button>
46
+          <el-button type="danger" size="mini" @click="cancel">取消</el-button>
47
+        </li>
48
+      </ul>
49
+    </form>
50
+  </div>
51
+</template>
52
+
53
+<script>
54
+import { mapState } from 'vuex'
55
+export default {
56
+  name: '',
57
+  data () {
58
+    return {
59
+      postData: {
60
+        CardNum: '', // 卡数量
61
+        Price: '', // 价格
62
+        CaseId: '', // 案场id
63
+      }
64
+    }
65
+  },
66
+  computed: {
67
+    ...mapState({
68
+      cases: x => x.app.cases.list,
69
+      defaultCaseId: x => x.app.cases.default,
70
+      OrgId: x => x.app.user.OrgId,
71
+    }),
72
+    CaseId: {
73
+      get () {
74
+        return this.postData.CaseId === '' ? this.defaultCaseId || '' : this.postData.CaseId
75
+      },
76
+      set (val) {
77
+        this.postData.CaseId = val
78
+      }
79
+    }
80
+  },
81
+  created () {
82
+    this.initData()
83
+  },
84
+  components: {},
85
+  methods: {
86
+    initData () { // 数据初始化
87
+      // this.$ajax(this.$api.channelManager.getChannelInfo.url, {
88
+      //   method: this.$api.channelManager.getChannelInfo.method,
89
+      //   urlData: { channelId: this.$route.query.id }
90
+      // }).then(res => {
91
+      //   this.postData = res
92
+      // })
93
+    },
94
+    submit () { // 提交数据
95
+    },
96
+    cancel () {
97
+      this.$router.push({ name: 'vipList' })
98
+    }
99
+  },
100
+  mounted () { }
101
+}
102
+</script>
103
+
104
+<!-- Add "scoped" attribute to limit CSS to this component only -->
105
+<style lang="scss" scoped>
106
+</style>

+ 174
- 0
src/pages/system/cardAndCouponManager/vipManager/index.vue 查看文件

@@ -0,0 +1,174 @@
1
+<template>
2
+  <div class="subPage">
3
+    <div class="system-table-search">
4
+      <div class="flex-h">
5
+        <div class="flex-item"></div>
6
+        <ul>
7
+          <li>
8
+            <el-select v-model="CaseId" placeholder="请选择">
9
+              <el-option
10
+                v-for="item in cases"
11
+                :key="item.CaseId"
12
+                :label="item.CaseName"
13
+                :value="item.CaseId">
14
+              </el-option>
15
+            </el-select>
16
+          </li>
17
+          <li>
18
+            <!-- <span>VIP卡号:</span> -->
19
+            <el-input
20
+              placeholder="请输入VIP卡号"
21
+              v-model="postData.cardNo"
22
+              clearable>
23
+            </el-input>
24
+          </li>
25
+          <li>
26
+            <!-- <span>销售:</span> -->
27
+            <el-input
28
+              placeholder="请输入销售姓名"
29
+              v-model="postData.sellerName"
30
+              clearable>
31
+            </el-input>
32
+          </li>
33
+          <li>
34
+            <!-- <span>用户:</span> -->
35
+            <el-input
36
+              placeholder="请输入用户姓名"
37
+              v-model="postData.userName"
38
+              clearable>
39
+            </el-input>
40
+          </li>
41
+        </ul>
42
+        <el-button
43
+          size="mini"
44
+          type="primary" @click="search">搜索</el-button>
45
+      </div>
46
+      <div class="moreFilter"></div>
47
+      <div class="flex-h">
48
+        <div class="flex-item flex-h" style="margin-top: 20px;">
49
+          <el-button size="mini" type="success" @click='addVIP'>新增VIP</el-button>
50
+          <el-button size="mini" type="success" @click='activateVip'>激活VIP</el-button>
51
+        </div>
52
+      </div>
53
+    </div>
54
+    <div class="system-table-box">
55
+      <el-table
56
+        :data="currentList"
57
+        stripe
58
+        style="width: 100%">
59
+        <el-table-column
60
+          prop="CardNo"
61
+          label="卡号">
62
+        </el-table-column>
63
+        <el-table-column
64
+          prop="Price"
65
+          label="价格">
66
+        </el-table-column>
67
+        <el-table-column
68
+          prop="Status"
69
+          label="状态">
70
+        </el-table-column>
71
+        <el-table-column
72
+          prop="SellerName"
73
+          label="销售">
74
+        </el-table-column>
75
+        <el-table-column
76
+          prop="CaseName"
77
+          label="案场">
78
+        </el-table-column>
79
+        <el-table-column
80
+          prop="UserName"
81
+          label="用户">
82
+        </el-table-column>
83
+        <el-table-column
84
+          prop="ActivationTime"
85
+          label="激活时间">
86
+        </el-table-column>
87
+        <el-table-column
88
+          prop="CreatTime"
89
+          label="创建时间">
90
+        </el-table-column>
91
+      </el-table>
92
+    </div>
93
+    <el-pagination
94
+      @current-change="handleCurrentChange"
95
+      :current-page.sync="postData.page"
96
+      :page-size="postData.pagesize"
97
+      layout="prev, pager, next, jumper"
98
+      :total="total">
99
+    </el-pagination>
100
+  </div>
101
+</template>
102
+
103
+<script>
104
+import { mapState } from 'vuex'
105
+
106
+export default {
107
+  name: '',
108
+  data () {
109
+    return {
110
+      total: 0,
111
+      postData: { // 表格搜索条件
112
+        caseid: '', // 案场id
113
+        page: 1, // 当前页码
114
+        pagesize: 10, // 请求数据量
115
+        cardNo: '', // vip卡号
116
+        sellerName: '', // 销售姓名
117
+        userName: '', // 用户名
118
+      },
119
+      currentList: [{
120
+        CardNo: 'xxx',
121
+        Price: 'xxx',
122
+        Status: 'xxx',
123
+        SellerName: 'xxx',
124
+        CaseName: 'xxx',
125
+        UserName: 'xxx',
126
+        ActivationTime: 'xxx',
127
+        CreatTime: 'xxx',
128
+      }]
129
+    }
130
+  },
131
+  mounted () {
132
+    this.$nextTick(function () {
133
+      this.getList()
134
+    })
135
+  },
136
+  computed: {
137
+    ...mapState({
138
+      cases: x => x.app.cases.list,
139
+      defaultCaseId: x => x.app.cases.default
140
+    }),
141
+    CaseId: {
142
+      get () {
143
+        return this.postData.caseid || this.defaultCaseId
144
+      },
145
+      set (val) {
146
+        this.postData.caseid = val
147
+      }
148
+    }
149
+  },
150
+  methods: {
151
+    search () { // 搜索
152
+      this.postData.page = 1
153
+      this.currentList = []
154
+      this.getList()
155
+    },
156
+    getList () { // 获取列表
157
+    },
158
+    handleCurrentChange (val) { // 跳转到分页
159
+      this.getList()
160
+    },
161
+    addVIP () {
162
+      this.$router.push({ name: 'editVip' })
163
+    },
164
+    activateVip () {
165
+      this.$router.push({ name: 'activateVip' })
166
+    },
167
+  }
168
+}
169
+</script>
170
+
171
+<!-- Add "scoped" attribute to limit CSS to this component only -->
172
+<style lang="scss" scoped>
173
+@import "page.scss";
174
+</style>

+ 27
- 0
src/pages/system/cardAndCouponManager/vipManager/page.scss 查看文件

@@ -0,0 +1,27 @@
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
+
27
+

+ 49
- 0
src/pages/system/page.js 查看文件

@@ -80,6 +80,15 @@ import frontEndUserList from './dataStatistics/frontEndUserList/index' // 课程
80 80
 import newOrder from './newOrder/index' // 商品订单系统
81 81
 import newOrderList from './newOrder/newOrderList/index' // 新订单列表
82 82
 
83
+import cardAndCouponManager from './cardAndCouponManager/index' // 卡券管理
84
+import cardList from './cardAndCouponManager/cardManager/index' // 卡列表
85
+import editCard from './cardAndCouponManager/cardManager/edit' // 编辑卡
86
+import couponList from './cardAndCouponManager/couponManager/index' // 券列表
87
+import editCoupon from './cardAndCouponManager/couponManager/edit' // 编辑券
88
+import vipList from './cardAndCouponManager/vipManager/index' // vip列表
89
+import editVip from './cardAndCouponManager/vipManager/edit' // 编辑vip
90
+import activateVip from './cardAndCouponManager/vipManager/activateVip' // 激活vip
91
+
83 92
 export default {
84 93
   router: [
85 94
     {
@@ -431,6 +440,46 @@ export default {
431 440
           component: frontEndUserList,
432 441
           children: []
433 442
         }]
443
+      }, { // 卡券管理
444
+        path: 'cardAndCouponManager',
445
+        name: 'cardAndCouponManager',
446
+        component: cardAndCouponManager,
447
+        children: [{ // 卡列表
448
+          path: 'cardList',
449
+          name: 'cardList',
450
+          component: cardList,
451
+          children: [{ // 编辑卡
452
+            path: 'editCard',
453
+            name: 'editCard',
454
+            component: editCard,
455
+            children: []
456
+          }]
457
+        }, { // 券列表
458
+          path: 'couponList',
459
+          name: 'couponList',
460
+          component: couponList,
461
+          children: [{ // 编辑券
462
+            path: 'editCoupon',
463
+            name: 'editCoupon',
464
+            component: editCoupon,
465
+            children: []
466
+          }]
467
+        }, { // vip列表
468
+          path: 'vipList',
469
+          name: 'vipList',
470
+          component: vipList,
471
+          children: [{ // 编辑vip
472
+            path: 'editVip',
473
+            name: 'editVip',
474
+            component: editVip,
475
+            children: []
476
+          }, { // 激活vip
477
+            path: 'activateVip',
478
+            name: 'activateVip',
479
+            component: activateVip,
480
+            children: []
481
+          }]
482
+        }]
434 483
       }]
435 484
     },
436 485
   ],