yuantianjiao 6 年之前
父節點
當前提交
9abdc96ca4

+ 8
- 8
src/components/orderListItem/index.vue 查看文件

1
 <template>
1
 <template>
2
   <div class="orderListItem">
2
   <div class="orderListItem">
3
     <div class="title flex-h">
3
     <div class="title flex-h">
4
-      <div class="orange" v-if="data.status === 0">
4
+      <div class="orange" v-if="data.Status === 0">
5
         <i class="iconfont icon-dengdai"></i><br>
5
         <i class="iconfont icon-dengdai"></i><br>
6
         <span>制作中</span>
6
         <span>制作中</span>
7
       </div>
7
       </div>
8
-      <div class="grey" v-if="data.status === 1">
8
+      <div class="grey" v-if="data.Status === -1">
9
         <i class="iconfont icon-quxiao"></i><br>
9
         <i class="iconfont icon-quxiao"></i><br>
10
         <span>已取消</span>
10
         <span>已取消</span>
11
       </div>
11
       </div>
12
-      <div class="green" v-if="data.status === 2">
12
+      <div class="green" v-if="data.Status === 1">
13
         <i class="iconfont icon-gouxuan"></i><br>
13
         <i class="iconfont icon-gouxuan"></i><br>
14
         <span>已完成</span>
14
         <span>已完成</span>
15
       </div>
15
       </div>
16
       <div class="flex-item">
16
       <div class="flex-item">
17
         <div>
17
         <div>
18
-          <span>{{data.caseName}}</span>
18
+          <span>{{data.CaseName}}</span>
19
         </div>
19
         </div>
20
       </div>
20
       </div>
21
-      <span>{{data.creatTime}}</span>
21
+      <span>{{toolClass.dateFormat(data.CreateDate, 'MM/dd hh:mm')}}</span>
22
     </div>
22
     </div>
23
     <div class="line">
23
     <div class="line">
24
       <div>
24
       <div>
28
     <div class="list flex-h">
28
     <div class="list flex-h">
29
       <div class="flex-item">
29
       <div class="flex-item">
30
         <ul>
30
         <ul>
31
-          <li v-for="(subItem,subIndex) in data.goodsList" :key="subIndex">
32
-            <span>{{subItem.name}}</span>
31
+          <li v-for="(subItem,subIndex) in data.Goods" :key="subIndex">
32
+            <span>{{subItem.GoodsName + (subItem.SpecName!==''?'('+subItem.SpecName+')':'')}}</span>
33
             <div>
33
             <div>
34
-              <span>¥{{subItem.price === null ? subItem.specPrice : subItem.price}} x {{subItem.num === null ? subItem.specNum : subItem.num}}</span>
34
+              <span>¥{{subItem.Price}} x {{subItem.Number}}</span>
35
             </div>
35
             </div>
36
           </li>
36
           </li>
37
         </ul>
37
         </ul>

+ 4
- 10
src/components/qrCodeCard/qrCodeCard.vue 查看文件

10
   name: 'qrCodeCard',
10
   name: 'qrCodeCard',
11
   props: {
11
   props: {
12
     msg: {
12
     msg: {
13
-      type: Object,
14
-      default: () => {}
13
+      type: String,
14
+      default: ''
15
     }
15
     }
16
   },
16
   },
17
   data () {
17
   data () {
27
   },
27
   },
28
   methods: {
28
   methods: {
29
     InitCodeRules (info) {
29
     InitCodeRules (info) {
30
-      let codeText
31
-      for (var Key in this.lessonType
32
-      ) {
33
-        if (parseInt(Key) === this.msg.course_type) {
34
-          codeText = this.lessonType[Key] + '-1'
35
-        }
36
-      }
30
+      let codeText = info
37
       const ele = document.querySelector('#QRcode')
31
       const ele = document.querySelector('#QRcode')
38
       this.qrCode = new QRCode(ele, {
32
       this.qrCode = new QRCode(ele, {
39
         text: codeText,
33
         text: codeText,
49
     QRCode
43
     QRCode
50
   },
44
   },
51
   mounted () {
45
   mounted () {
52
-    this.InitCodeRules()
46
+    this.InitCodeRules(this.msg)
53
   }
47
   }
54
 }
48
 }
55
 </script>
49
 </script>

+ 13
- 2
src/pages/sales/coffeeIndex/index.vue 查看文件

13
             <div class="topInfo flex-h">
13
             <div class="topInfo flex-h">
14
               <div class="flex-item">
14
               <div class="flex-item">
15
                 <div>
15
                 <div>
16
-                  <span>共计已使用:45杯</span>
16
+                  <span>共计已使用:{{caseTotal.total}}杯</span>
17
                 </div>
17
                 </div>
18
               </div>
18
               </div>
19
               <div class="flex-item">
19
               <div class="flex-item">
20
                 <div>
20
                 <div>
21
-                  <span>本月已用:0杯</span>
21
+                  <span>本月已用:{{caseTotal.monthtotal}}杯</span>
22
                 </div>
22
                 </div>
23
               </div>
23
               </div>
24
               <a>点单记录</a>
24
               <a>点单记录</a>
84
 import topCaseInfo from '../../../components/topCaseInfo/index'
84
 import topCaseInfo from '../../../components/topCaseInfo/index'
85
 import myCard from '../../../components/myCard/myCard'
85
 import myCard from '../../../components/myCard/myCard'
86
 import customerCard from '../../../components/customerCard/customerCard'
86
 import customerCard from '../../../components/customerCard/customerCard'
87
+import { mapState, createNamespacedHelpers } from 'vuex'
87
 const { mapActions: actions } = createNamespacedHelpers('app')
88
 const { mapActions: actions } = createNamespacedHelpers('app')
88
 const { mapActions: caseTableActions } = createNamespacedHelpers('placeOrderForCoffee')
89
 const { mapActions: caseTableActions } = createNamespacedHelpers('placeOrderForCoffee')
90
+const { mapState: mapCaseState, mapActions: mapCaseActions } = createNamespacedHelpers('case')
89
 
91
 
90
 export default {
92
 export default {
91
   name: '',
93
   name: '',
151
       userInfo: x => x.userCenter.userInfo,
153
       userInfo: x => x.userCenter.userInfo,
152
       CaseList: x => x.app.CaseList,
154
       CaseList: x => x.app.CaseList,
153
       CaseTableList: x => x.placeOrderForCoffee.CaseTableList,
155
       CaseTableList: x => x.placeOrderForCoffee.CaseTableList,
156
+    }),
157
+    ...mapCaseState({
158
+      caseTotal: x => x.caseTotal,
154
     })
159
     })
155
   },
160
   },
156
   components: {
161
   components: {
166
       this.getCaseTableList({
171
       this.getCaseTableList({
167
         caseid: this.topCaseInfoData.CaseId
172
         caseid: this.topCaseInfoData.CaseId
168
       })
173
       })
174
+      this.getCaseTotal({
175
+        caseid: this.topCaseInfoData.CaseId
176
+      })
169
     })
177
     })
170
   },
178
   },
171
   methods: {
179
   methods: {
175
     ...caseTableActions([
183
     ...caseTableActions([
176
       'getCaseTableList',
184
       'getCaseTableList',
177
     ]),
185
     ]),
186
+    ...mapCaseActions([
187
+      'getCaseTotal',
188
+    ]),
178
     selectCase (val) { // 选择案场
189
     selectCase (val) { // 选择案场
179
       this.topCaseInfoData.CaseName = val.CaseName
190
       this.topCaseInfoData.CaseName = val.CaseName
180
       this.topCaseInfoData.CaseId = val.CaseId
191
       this.topCaseInfoData.CaseId = val.CaseId

+ 66
- 110
src/pages/sales/placeOrder/index.vue 查看文件

15
       <div class="tableInfo flex-h">
15
       <div class="tableInfo flex-h">
16
         <div class="flex-item">
16
         <div class="flex-item">
17
           <div>
17
           <div>
18
-            <span>桌号:{{tableNo}}</span>
18
+            <span>桌号:{{postData.info.TableNo}}</span>
19
             <!-- <span>本月已用:150杯</span> -->
19
             <!-- <span>本月已用:150杯</span> -->
20
           </div>
20
           </div>
21
         </div>
21
         </div>
66
           <i class="iconfont" :class="{'icon-jiantou-up': !showCalcMenu,'icon-jiantou-down': showCalcMenu}" @click="showCalcMenu = true"></i>
66
           <i class="iconfont" :class="{'icon-jiantou-up': !showCalcMenu,'icon-jiantou-down': showCalcMenu}" @click="showCalcMenu = true"></i>
67
         </div>
67
         </div>
68
       </div>
68
       </div>
69
-      <router-link :to="{name: 'placeOrderDetail', query: {info: JSON.stringify(settlementList), caseid: encodeURI(caseId), areaid: encodeURI(areaId), areaname: encodeURI(areaName), areaid: encodeURI(areaId), tableid: encodeURI(tableId), tableno: encodeURI(tableNo)}}">下单</router-link>
70
-      <!-- <a @click="showCalcMenu = true">下单</a> -->
69
+      <a @click="showCalcMenu = true">下单</a>
71
     </div>
70
     </div>
72
     <orderPopup :show="showPopup" :data="currentSpec" @closePopup="closePopup" @returnData="calcMenus"></orderPopup>
71
     <orderPopup :show="showPopup" :data="currentSpec" @closePopup="closePopup" @returnData="calcMenus"></orderPopup>
73
     <calcMenu :show="showCalcMenu" :totalNum="totalCupNum" :data="settlementList" @returnData="calcMenus" @emptyMenus="emptyMenus" @closeCalcMenu="closeCalcMenu" @placeOrder="placeOrder"></calcMenu>
72
     <calcMenu :show="showCalcMenu" :totalNum="totalCupNum" :data="settlementList" @returnData="calcMenus" @emptyMenus="emptyMenus" @closeCalcMenu="closeCalcMenu" @placeOrder="placeOrder"></calcMenu>
88
   data () {
87
   data () {
89
     const _self = this
88
     const _self = this
90
     return {
89
     return {
91
-      tableNo: decodeURI(this.$route.query.tableno),
92
-      tableId: decodeURI(this.$route.query.tableid),
93
-      areaId: decodeURI(this.$route.query.areaid),
94
-      areaName: decodeURI(this.$route.query.areaname),
95
       caseName: decodeURI(this.$route.query.casename),
90
       caseName: decodeURI(this.$route.query.casename),
96
-      caseId: decodeURI(this.$route.query.caseid),
97
       totalCupNum: 0, // 共计使用杯数
91
       totalCupNum: 0, // 共计使用杯数
98
       showCalcMenu: false, // 显隐已点菜单弹窗
92
       showCalcMenu: false, // 显隐已点菜单弹窗
99
       currentSpec: null, // 当前选择规格
93
       currentSpec: null, // 当前选择规格
102
       totalPrice: 0, // 总价格
96
       totalPrice: 0, // 总价格
103
       settlementList: [], // 商品选择清单
97
       settlementList: [], // 商品选择清单
104
       slideMenusActive: 0, // 左侧菜单选中索引值
98
       slideMenusActive: 0, // 左侧菜单选中索引值
105
-      menuList: [ // 商品数据
106
-      //   {
107
-      //   value: '咖啡',
108
-      //   eValue: 'Coffee',
109
-      //   id: '1',
110
-      //   status: 1,
111
-      //   list: [{
112
-      //     img: '',
113
-      //     name: '商品名称',
114
-      //     id: '1-1',
115
-      //     status: 1,
116
-      //     spec: [{
117
-      //       value: '去冰',
118
-      //       id: '1-1-1',
119
-      //       num: 0,
120
-      //       status: 0,
121
-      //       price: '10',
122
-      //     }, {
123
-      //       value: '少冰',
124
-      //       id: '1-1-2',
125
-      //       num: 0,
126
-      //       status: 1,
127
-      //       price: '15',
128
-      //     }, {
129
-      //       value: '正常',
130
-      //       id: '1-1-3',
131
-      //       num: 0,
132
-      //       status: 1,
133
-      //       price: '20',
134
-      //     }, {
135
-      //       value: '多冰',
136
-      //       id: '1-1-4',
137
-      //       num: 0,
138
-      //       status: 1,
139
-      //       price: '25',
140
-      //     }],
141
-      //     price: '100',
142
-      //   }, {
143
-      //     img: '',
144
-      //     name: '商品名称',
145
-      //     id: '1-2',
146
-      //     spec: [],
147
-      //     status: 0,
148
-      //     price: '100',
149
-      //   }, {
150
-      //     img: '',
151
-      //     name: '商品名称',
152
-      //     id: '1-3',
153
-      //     spec: [],
154
-      //     status: 1,
155
-      //     price: '100',
156
-      //   }, {
157
-      //     img: '',
158
-      //     name: '商品名称',
159
-      //     id: '1-4',
160
-      //     spec: [],
161
-      //     status: 1,
162
-      //     price: '100',
163
-      //   }, {
164
-      //     img: '',
165
-      //     name: '商品名称',
166
-      //     id: '1-5',
167
-      //     spec: [],
168
-      //     status: 1,
169
-      //     price: '100',
170
-      //   }, {
171
-      //     img: '',
172
-      //     name: '商品名称',
173
-      //     id: '1-6',
174
-      //     spec: [],
175
-      //     status: 1,
176
-      //     price: '100',
177
-      //   }],
178
-      // }, {
179
-      //   value: '咖啡一',
180
-      //   eValue: 'Coffee',
181
-      //   id: '2',
182
-      //   status: 1,
183
-      //   list: [],
184
-      // }, {
185
-      //   value: '咖啡二',
186
-      //   eValue: 'Coffee',
187
-      //   id: '3',
188
-      //   status: 1,
189
-      //   list: [],
190
-      // }, {
191
-      //   value: '咖啡三',
192
-      //   eValue: 'Coffee',
193
-      //   id: '4',
194
-      //   status: 1,
195
-      //   list: [],
196
-      // }, {
197
-      //   value: '咖啡四',
198
-      //   eValue: 'Coffee',
199
-      //   id: '5',
200
-      //   status: 1,
201
-      //   list: [],
202
-      // }
203
-      ],
99
+      menuList: [],
100
+      postData: {
101
+        info: {
102
+          CaseId: decodeURI(_self.$route.query.caseid),
103
+          AreaId: decodeURI(_self.$route.query.areaid),
104
+          AreaName: decodeURI(_self.$route.query.areaname),
105
+          TableId: decodeURI(_self.$route.query.tableid),
106
+          TableNo: decodeURI(_self.$route.query.tableno),
107
+          Amount: 0,// String(_self.returnAmount()[0]), // 订单金额
108
+          OrdersNum: 0, // Number(_self.returnAmount()[1]),
109
+          Remark: '',
110
+        },
111
+        detail: [],
112
+        coupon: [],
113
+      },
204
       swiperOption: {
114
       swiperOption: {
205
         observer: true,
115
         observer: true,
206
         direction: 'vertical',
116
         direction: 'vertical',
242
   },
152
   },
243
   created () {
153
   created () {
244
     this.getGoodsTypeList({
154
     this.getGoodsTypeList({
245
-      caseid: this.caseId,
155
+      caseid: this.postData.info.CaseId,
246
     }).then((res) => {
156
     }).then((res) => {
247
       // console.log(JSON.stringify(res))
157
       // console.log(JSON.stringify(res))
248
       this.getGoodsList({
158
       this.getGoodsList({
249
-        caseid: this.caseId,
159
+        caseid: this.postData.info.CaseId,
250
       }).then((res) => {
160
       }).then((res) => {
251
         // console.log(JSON.stringify(res))
161
         // console.log(JSON.stringify(res))
252
         this.mapArr()
162
         this.mapArr()
257
     ...caseTableActions([
167
     ...caseTableActions([
258
       'getGoodsTypeList',
168
       'getGoodsTypeList',
259
       'getGoodsList',
169
       'getGoodsList',
170
+      'toPay',
260
     ]),
171
     ]),
172
+    toPayer () { // 下单
173
+      this.postData.info.Amount = String(this.returnAmount()[0])
174
+      this.postData.info.OrdersNum = Number(this.returnAmount()[1])
175
+      this.postData.info.OrgId = this.orgId
176
+      this.postData.info.UserId = this.userInfo.CustomerId
177
+      this.postData.info.UserName = this.userInfo.CustomerName
178
+      this.postData.info.PayType = this.postData.coupon.length ? 'coupon' : 'vip'
179
+      var orderInfo = this.settlementList
180
+      this.postData.detail = []
181
+      for (var n = 0; n < orderInfo.length; n++) {
182
+        this.postData.detail.push({
183
+          GoodsId: orderInfo[n].id,
184
+          GoodsName: orderInfo[n].name,
185
+          SpecId: orderInfo[n].specId,
186
+          SpecName: orderInfo[n].specName,
187
+          Number: orderInfo[n].defaultNum === null ? orderInfo[n].num - 0 : orderInfo[n].defaultNum - 0,
188
+          Price: orderInfo[n].defaultNum === null ? String(orderInfo[n].price) : String(orderInfo[n].defaultPrice),
189
+        })
190
+      }
191
+      console.log(JSON.stringify(this.postData))
192
+      this.toPay({
193
+        info: JSON.stringify(this.postData.info),
194
+        detail: JSON.stringify(this.postData.detail),
195
+        coupon: JSON.stringify(this.postData.coupon)
196
+      }).then((res) => {
197
+        this.$dialog.alert({
198
+          message: '下单成功!'
199
+        }).then(() => {
200
+          window.history.go(-2)
201
+        })
202
+      })
203
+    },
204
+    returnAmount () { // 返回总金额  
205
+      var amount = 0, num = 0
206
+      for (var n = 0; n < this.settlementList.length; n++) {
207
+        if (this.settlementList[n].defaultPrice === null) {
208
+          amount += this.settlementList[n].price * this.settlementList[n].num
209
+          num += this.settlementList[n].num
210
+        } else {
211
+          amount += this.settlementList[n].defaultPrice * this.settlementList[n].defaultNum
212
+          num += this.settlementList[n].defaultNum
213
+        }
214
+      }
215
+      return [amount, num]
216
+    },
261
     mapArr () { // 匹配商品规格
217
     mapArr () { // 匹配商品规格
262
       var aArr = this.goodsTypeList, bArr = this.goodsList
218
       var aArr = this.goodsTypeList, bArr = this.goodsList
263
       for (var n = 0; n < aArr.length; n++) {
219
       for (var n = 0; n < aArr.length; n++) {
302
       // console.log(JSON.stringify(this.menuList))
258
       // console.log(JSON.stringify(this.menuList))
303
     },
259
     },
304
     placeOrder () { // 下单
260
     placeOrder () { // 下单
305
-      this.$router.push({ name: 'orderList', query: {} })
261
+      this.toPayer()
306
     },
262
     },
307
     closeCalcMenu () { // 关闭已选菜单
263
     closeCalcMenu () { // 关闭已选菜单
308
       this.showCalcMenu = false
264
       this.showCalcMenu = false

+ 2
- 2
src/pages/user/card/index.vue 查看文件

156
       this.active = index
156
       this.active = index
157
     },
157
     },
158
     toUse (item) {
158
     toUse (item) {
159
-      console.log(item)
159
+      // console.log(item)
160
     },
160
     },
161
     getList () {
161
     getList () {
162
-      console.log(111)
162
+      // console.log(111)
163
     },
163
     },
164
     toCardDetail (item) {
164
     toCardDetail (item) {
165
       this.$router.push({ name: 'cardDetail' })
165
       this.$router.push({ name: 'cardDetail' })

+ 2
- 2
src/pages/user/coupons/index.vue 查看文件

83
       this.active = index
83
       this.active = index
84
     },
84
     },
85
     toUse (item) {
85
     toUse (item) {
86
-      console.log(item)
86
+      // console.log(item)
87
     },
87
     },
88
     getList () {
88
     getList () {
89
-      console.log(111)
89
+      // console.log(111)
90
     }
90
     }
91
   }
91
   }
92
 }
92
 }

+ 65
- 25
src/pages/user/lessonDetail/index.vue 查看文件

1
 <template>
1
 <template>
2
   <div class="mainPage">
2
   <div class="mainPage">
3
     <div class="title">课程详情</div>
3
     <div class="title">课程详情</div>
4
-    <div class="content" :class="{'opacity' : useType == '已失效' || useType == '已使用', 'gray': useType == '已使用' || useType == '已失效'}">
4
+    <div class="content" :class="{'opacity' : courseOrderDetail.IsDone === 1, 'gray': courseOrderDetail.IsDone === 1}">
5
       <div class="list-item">
5
       <div class="list-item">
6
         <span>订单编号</span>
6
         <span>订单编号</span>
7
-        <span>144215646445464</span>
7
+        <span>{{courseOrderDetail.OrdersNo !== undefined ? courseOrderDetail.OrdersNo : ''}}</span>
8
       </div>
8
       </div>
9
       <div class="list-item">
9
       <div class="list-item">
10
-        <span>订单名称</span>
11
-        <span>拉伸柔韧度</span>
10
+        <span>课程名称</span>
11
+        <span>{{courseOrderDetail.CourseName}}</span>
12
       </div>
12
       </div>
13
       <div class="list-item">
13
       <div class="list-item">
14
-        <span>课数</span>
15
-        <span>2节课</span>
14
+        <span>课数</span>
15
+        <span>{{courseOrderDetail.JoinNum}}/{{courseOrderDetail.CourseNum}}</span>
16
       </div>
16
       </div>
17
       <div class="list-item">
17
       <div class="list-item">
18
         <span>类型</span>
18
         <span>类型</span>
19
-        <span>健身</span>
19
+        <span>{{returnLocationName(courseOrderDetail.LocationId)}}</span>
20
       </div>
20
       </div>
21
       <div class="list-item">
21
       <div class="list-item">
22
         <span>商品价格</span>
22
         <span>商品价格</span>
23
-        <span>¥1999</span>
23
+        <span>¥{{courseOrderDetail.Price}}</span>
24
       </div>
24
       </div>
25
       <div class="list-item">
25
       <div class="list-item">
26
         <span>下单时间</span>
26
         <span>下单时间</span>
27
-        <span>2018/04/12 14:26:09</span>
27
+        <span>{{toolClass.dateFormat(courseOrderDetail.CreateDate)}}</span>
28
       </div>
28
       </div>
29
-      <div class="list-item">
30
-        <span>课程时间</span>
31
-        <span>2018/04/12 12:00至14:00 计划备注(每周六 19:30)</span>
32
-      </div>
33
-      <div class="list-item">
29
+      <!-- <div class="list-item">
34
         <span>地点</span>
30
         <span>地点</span>
35
-        <span>悦见山G99</span>
36
-      </div>
31
+        <span>{{returnCaseName(courseOrderDetail.CaseId)}}</span>
32
+      </div> -->
37
       <div class="list-item">
33
       <div class="list-item">
38
         <span>付款方式</span>
34
         <span>付款方式</span>
39
-        <span>优惠券抵用 <div class="coupon-name">小拉伸柔韧度体验券</div></span>
35
+        <span>{{courseOrderDetail.CourseObtaimType === 'cheng-coin' ? '城币支付' : '优惠券抵用'}}</span>
36
+        <!-- <span>优惠券抵用 <div class="coupon-name">小拉伸柔韧度体验券</div></span> -->
40
       </div>
37
       </div>
41
       <div class="half-cic">
38
       <div class="half-cic">
42
         <span></span>
39
         <span></span>
43
         <span></span>
40
         <span></span>
44
       </div>
41
       </div>
45
-      <div class="qr-code">
46
-        <qrCode :msg='msg'></qrCode>
47
-        <div class="number">32237489123</div>
42
+      <div class="qr-code" v-if="courseOrderDetail.IsDone === 0">
43
+        <qrCode :msg="courseOrderDetail.QrCodeString"></qrCode>
44
+        <!-- <div class="number">32237489123</div> -->
48
       </div>
45
       </div>
49
     </div>
46
     </div>
50
     <div class="useType">
47
     <div class="useType">
51
-      <img :src="used" alt="已使用" v-if="useType == '已使用'" width="100%" height="100%">
52
-      <img :src="failure" alt="已失效" v-if="useType == '已失效'" width="100%" height="100%">
48
+      <img :src="used" alt="已使用" v-if="courseOrderDetail.IsDone === 1" width="100%" height="100%">
49
+      <!-- <img :src="failure" alt="已失效" v-if="useType == '已失效'" width="100%" height="100%"> -->
53
     </div>
50
     </div>
54
   </div>
51
   </div>
55
 </template>
52
 </template>
58
 import qrCode from '../../../components/qrCodeCard/qrCodeCard'
55
 import qrCode from '../../../components/qrCodeCard/qrCodeCard'
59
 import used from '../../../common/icon/already.png'
56
 import used from '../../../common/icon/already.png'
60
 import failure from '../../../common/icon/inv.png'
57
 import failure from '../../../common/icon/inv.png'
58
+import { mapState, createNamespacedHelpers } from 'vuex'
59
+const { mapActions: actions } = createNamespacedHelpers('app')
60
+const { mapActions: mapUserActions, mapState: mapUserState } = createNamespacedHelpers('userCenter')
61
 export default {
61
 export default {
62
   data () {
62
   data () {
63
     return {
63
     return {
70
       failure,
70
       failure,
71
     }
71
     }
72
   },
72
   },
73
+  created () {
74
+    this.getCourseLocationList().then(() => {
75
+      this.getCaseList().then(() => {
76
+        this.getCourseOrderDetail({
77
+          id: this.$route.query.id
78
+        }).then((res) => {
79
+          // console.log(JSON.stringify(res))
80
+        })
81
+      })
82
+    })
83
+  },
84
+  computed: {
85
+    ...mapUserState({
86
+      courseOrderDetail: x => x.courseOrderDetail,
87
+      courseLocationList: x => x.courseLocationList,
88
+    }),
89
+    ...mapState({
90
+      CaseList: x => x.app.CaseList,
91
+    })
92
+  },
73
   methods: {
93
   methods: {
74
-
94
+    ...mapUserActions([
95
+      'getCourseOrderDetail',
96
+      'getCourseLocationList',
97
+    ]),
98
+    ...actions([
99
+      'getCaseList',
100
+    ]),
101
+    returnLocationName (id) {
102
+      for (var n = 0; n < this.courseLocationList.length; n++) {
103
+        if (this.courseLocationList[n].LocationId === id) {
104
+          return this.courseLocationList[n].LocationName
105
+        }
106
+      }
107
+    },
108
+    returnCaseName (id) {
109
+      for (var n = 0; n < this.CaseList.length; n++) {
110
+        if (this.CaseList[n].CaseId === id) {
111
+          return this.CaseList[n].CaseName
112
+        }
113
+      }
114
+    },
75
   },
115
   },
76
   components: {
116
   components: {
77
-    qrCode
117
+    qrCode,
78
   }
118
   }
79
 }
119
 }
80
 </script>
120
 </script>
81
 
121
 
82
 <style lang="scss" scoped>
122
 <style lang="scss" scoped>
83
-@import "page.scss";
123
+@import 'page.scss';
84
 </style>
124
 </style>

+ 46
- 69
src/pages/user/lessonOrder/index.vue 查看文件

1
 <template>
1
 <template>
2
   <div class="mainPage">
2
   <div class="mainPage">
3
-    <scroll ref='scroll' :isloading='isloading' class='wrapper' :data='list' :pullUpLoad='pullUpLoadObj' :startY='parseInt(startY)' @pullingUp='getList'>
3
+    <scroll ref='scroll' :isloading='isloading' class='wrapper' :data='courseOrderList.list' :pullUpLoad='pullUpLoadObj' :startY='parseInt(startY)' @pullingUp='getList'>
4
       <div class="box">
4
       <div class="box">
5
-        <div class="order-card flex-h" v-for="(item,index) in list" :key='index' :class="{'opacity' : item.useType == '已失效'}" @click="toDetail(item)">
5
+        <div class="order-card flex-h" v-for="(item,index) in courseOrderList.list" :key='index' :class="{'opacity' : item.status === 1}" @click="toDetail(item)">
6
           <div class="card-pic">
6
           <div class="card-pic">
7
-            <div :class="{'gray-location' : item.useType == '已失效'}"><span>{{item.LocationName}}</span></div>
7
+            <div :class="{'gray-location' : item.status === 1}"><span>{{returnLocationName(item.LocationId)}}</span></div>
8
             <img src="" class="cover" width="100%" height="100%" alt="">
8
             <img src="" class="cover" width="100%" height="100%" alt="">
9
           </div>
9
           </div>
10
           <div class="card-msg">
10
           <div class="card-msg">
11
-            <div class="title">{{item.title}}</div>
12
-            <div class="text">付款方式:{{item.payType}}</div>
13
-            <div class="text">下单时间:{{item.time}}</div>
11
+            <div class="title">{{item.CourseName}}</div>
12
+            <div class="text">付款方式:{{item.CourseObtaimType === 'cheng-coin' ? '城币支付' : '优惠券抵用'}}</div>
13
+            <div class="text">下单时间:{{toolClass.dateFormat(item.CreateDate)}}</div>
14
           </div>
14
           </div>
15
           <div class="card-price">
15
           <div class="card-price">
16
-            <div class="price">¥ {{item.price}}</div>
17
-            <div class="type" :class="{'un-use' : item.useType == '未使用'}">{{item.useType}}</div>
16
+            <div class="price" style="white-space: nowrap;">¥ {{item.Price}}</div>
17
+            <div class="type" :class="{'un-use' : item.IsDone === 0}">{{item.IsDone === 0 ? '未使用' : '已使用'}}</div>
18
           </div>
18
           </div>
19
         </div>
19
         </div>
20
         <!-- <noMore v-if="hasPic"></noMore> -->
20
         <!-- <noMore v-if="hasPic"></noMore> -->
27
 // 上拉加载组件
27
 // 上拉加载组件
28
 import scroll from '../../../components/scroll/scroll'
28
 import scroll from '../../../components/scroll/scroll'
29
 import noMore from '../../../components/noMore/noMore'
29
 import noMore from '../../../components/noMore/noMore'
30
+import { mapState, createNamespacedHelpers } from 'vuex'
31
+const { mapActions: mapUserActions, mapState: mapUserState } = createNamespacedHelpers('userCenter')
30
 export default {
32
 export default {
31
   data () {
33
   data () {
32
     return {
34
     return {
34
       pullUpLoad: true,
36
       pullUpLoad: true,
35
       pullUpLoadThreshold: 40,
37
       pullUpLoadThreshold: 40,
36
       startY: 0,
38
       startY: 0,
39
+      page: 1,
37
       isloading: true,
40
       isloading: true,
38
       hasMore: true,
41
       hasMore: true,
39
-      list: [
40
-        {
41
-          LocationName: '社交',
42
-          title: '小小外交官课程',
43
-          payType: '优惠券抵用',
44
-          time: '2018-7-18 12:19',
45
-          price: 199,
46
-          useType: '未使用'
47
-        },
48
-        {
49
-          LocationName: '社交',
50
-          title: '小小外交官课程',
51
-          payType: '优惠券抵用',
52
-          time: '2018-7-18 12:19',
53
-          price: 199,
54
-          useType: '已使用'
55
-        },
56
-        {
57
-          LocationName: '社交',
58
-          title: '小小外交官课程',
59
-          payType: '优惠券抵用',
60
-          time: '2018-7-18 12:19',
61
-          price: 199,
62
-          useType: '已失效'
63
-        },
64
-        {
65
-          LocationName: '社交',
66
-          title: '小小外交官课程',
67
-          payType: '优惠券抵用',
68
-          time: '2018-7-18 12:19',
69
-          price: 199,
70
-          useType: '已失效'
71
-        },
72
-        {
73
-          LocationName: '社交',
74
-          title: '小小外交官课程',
75
-          payType: '优惠券抵用',
76
-          time: '2018-7-18 12:19',
77
-          price: 199,
78
-          useType: '已失效'
79
-        },
80
-        {
81
-          LocationName: '社交',
82
-          title: '小小外交官课程',
83
-          payType: '优惠券抵用',
84
-          time: '2018-7-18 12:19',
85
-          price: 199,
86
-          useType: '已失效'
87
-        }
88
-      ]
42
+      list: []
89
     }
43
     }
90
   },
44
   },
91
   components: {
45
   components: {
92
     scroll,
46
     scroll,
93
     noMore
47
     noMore
94
   },
48
   },
49
+  created () {
50
+    var _that = this
51
+    this.getCourseLocationList().then((res) => {
52
+      // console.log(JSON.stringify(res))
53
+      this.getCourseOrderList({ page: this.page })
54
+    })
55
+  },
95
   computed: {
56
   computed: {
57
+    ...mapUserState({
58
+      courseOrderList: x => x.courseOrderList,
59
+      courseLocationList: x => x.courseLocationList,
60
+    }),
96
     pullUpLoadObj: function () {
61
     pullUpLoadObj: function () {
97
       return this.pullUpLoad
62
       return this.pullUpLoad
98
         ? {
63
         ? {
106
     }
71
     }
107
   },
72
   },
108
   methods: {
73
   methods: {
74
+    ...mapUserActions([
75
+      'getCourseOrderList',
76
+      'getCourseLocationList',
77
+    ]),
78
+    returnLocationName (id) {
79
+      for (var n = 0; n < this.courseLocationList.length; n++) {
80
+        if (this.courseLocationList[n].LocationId === id) {
81
+          return this.courseLocationList[n].LocationName
82
+        }
83
+      }
84
+    },
109
     getList () {
85
     getList () {
110
-      this.list.length <= 8 ? this.hasMore = true : this.hasMore = false
86
+      var _that = this
87
+      Math.ceil(this.courseOrderList.pagenum / this.courseOrderList.pagesize) > this.page ? this.hasMore = true : this.hasMore = false
88
+      // this.list.length <= 8 ? this.hasMore = true : this.hasMore = false
111
       if (this.hasMore) {
89
       if (this.hasMore) {
112
         setTimeout(() => {
90
         setTimeout(() => {
113
-          this.list.push({
114
-            LocationName: '社交',
115
-            title: '小小外交官课程',
116
-            payType: '优惠券抵用',
117
-            time: '2018-7-18 12:19',
118
-            price: 199,
119
-            useType: '已失效'
91
+          this.getCourseOrderList({
92
+            page: _that.page + 1
93
+          }).then((res) => {
94
+            if (res.list.length) {
95
+              _that.page += 1
96
+            }
120
           })
97
           })
121
         }, 1000)
98
         }, 1000)
122
       } else {
99
       } else {
124
         return false
101
         return false
125
       }
102
       }
126
     },
103
     },
127
-    toDetail () {
128
-      this.$router.push({name: 'lessonDetail'})
104
+    toDetail (item) {
105
+      this.$router.push({ name: 'lessonDetail', query: {id: item.CustomerCourseId} })
129
     }
106
     }
130
   }
107
   }
131
 }
108
 }
132
 </script>
109
 </script>
133
 
110
 
134
 <style lang="scss" scoped>
111
 <style lang="scss" scoped>
135
-@import "page.scss";
112
+@import 'page.scss';
136
 </style>
113
 </style>

+ 5
- 2
src/pages/user/mainPage/userCenter/index.vue 查看文件

46
           <span>课程订单</span>
46
           <span>课程订单</span>
47
           <i class="iconfont icon-jiantou-right"></i>
47
           <i class="iconfont icon-jiantou-right"></i>
48
         </div>
48
         </div>
49
-        <div class="menu-item flex-h">
49
+        <div class="menu-item flex-h" @click="toGoodsOrder">
50
           <span>商品订单</span>
50
           <span>商品订单</span>
51
           <i class="iconfont icon-jiantou-right"></i>
51
           <i class="iconfont icon-jiantou-right"></i>
52
         </div>
52
         </div>
105
     },
105
     },
106
     bindMobile () {
106
     bindMobile () {
107
       this.$router.push({ name: 'bindMobile' })
107
       this.$router.push({ name: 'bindMobile' })
108
-    }
108
+    },
109
+    toGoodsOrder () {
110
+      this.$router.push({ name: 'orderList' })
111
+    },
109
   }
112
   }
110
 }
113
 }
111
 </script>
114
 </script>

+ 1
- 1
src/pages/user/majorProjectsDetail/index.vue 查看文件

113
     this.getCourseDetailInfo({ id: this.$route.query.id }).then((res) => {
113
     this.getCourseDetailInfo({ id: this.$route.query.id }).then((res) => {
114
       var arr = res.CourseDetail
114
       var arr = res.CourseDetail
115
       this.courseTimeList = arr.sort(function (a, b) { return new Date(a.BeginDate).getTime() > new Date(b.BeginDate).getTime() ? 1 : -1 })
115
       this.courseTimeList = arr.sort(function (a, b) { return new Date(a.BeginDate).getTime() > new Date(b.BeginDate).getTime() ? 1 : -1 })
116
-      console.log(JSON.stringify(this.courseTimeList))
116
+      // console.log(JSON.stringify(res))
117
     })
117
     })
118
   },
118
   },
119
   methods: {
119
   methods: {

+ 72
- 99
src/pages/user/orderList/index.vue 查看文件

1
 <template>
1
 <template>
2
   <div class="mainPage flex-v">
2
   <div class="mainPage flex-v">
3
-    <div class="top">
4
-      <topCaseInfo :data="topCaseInfoData"></topCaseInfo>
5
-    </div>
3
+    <!-- <div class="top">
4
+      <topCaseInfo :data="topCaseInfoData" :userName="userInfo.customer != undefined ? userInfo.customer.CustomerName : ''"></topCaseInfo>
5
+    </div> -->
6
     <div class="flex-item">
6
     <div class="flex-item">
7
       <div class="flex-h">
7
       <div class="flex-h">
8
         <div class="flex-item">
8
         <div class="flex-item">
9
-          <ul>
10
-            <li v-for="(item,index) in list" :key="index">
9
+          <!-- <ul>
10
+            <li v-for="(item,index) in orders.list" :key="index">
11
               <orderListItem :data="item"></orderListItem>
11
               <orderListItem :data="item"></orderListItem>
12
             </li>
12
             </li>
13
-          </ul>
13
+          </ul> -->
14
+          <scroll ref='scroll' :isloading='isloading' class='wrapper' :data='orders.list' :pullUpLoad='pullUpLoadObj' :startY='parseInt(startY)' @pullingUp='getList'>
15
+            <ul>
16
+              <li v-for="(item,index) in orders.list" :key="index">
17
+                <orderListItem :data="item"></orderListItem>
18
+              </li>
19
+            </ul>
20
+          </scroll>
14
         </div>
21
         </div>
15
       </div>
22
       </div>
16
     </div>
23
     </div>
18
 </template>
25
 </template>
19
 
26
 
20
 <script>
27
 <script>
28
+import scroll from '../../../components/scroll/scroll'
29
+import noMore from '../../../components/noMore/noMore'
21
 import topCaseInfo from '../../../components/topCaseInfo/index'
30
 import topCaseInfo from '../../../components/topCaseInfo/index'
22
 import orderListItem from '../../../components/orderListItem/index'
31
 import orderListItem from '../../../components/orderListItem/index'
32
+import { mapState, createNamespacedHelpers } from 'vuex'
33
+// const { mapActions: actions } = createNamespacedHelpers('app')
34
+
35
+const { mapState: mapOrdersState, mapActions: mapOrdersActions } = createNamespacedHelpers('goodsOrder')
23
 
36
 
24
 export default {
37
 export default {
25
   name: '',
38
   name: '',
26
   data () {
39
   data () {
27
     return {
40
     return {
28
-      topCaseInfoData: {
29
-        caseName: 'xxx',
30
-        caseId: '',
31
-        showSelect: false,
32
-        userName: 'xxx'
33
-      },
34
-      list: [{
35
-        status: 0,
36
-        caseName: '案场名称',
37
-        creatTime: '02/16 14:20',
38
-        goodsList: [{
39
-          name: '商品名称1',
40
-          specName: '加冰',
41
-          price: null,
42
-          specPrice: 20,
43
-          num: null,
44
-          specNum: 2,
45
-        },{
46
-          name: '商品名称2',
47
-          specName: null,
48
-          price: 100,
49
-          specPrice: null,
50
-          num: 1,
51
-          specNum: null,
52
-        },{
53
-          name: '商品名称3',
54
-          specName: null,
55
-          price: 100,
56
-          specPrice: null,
57
-          num: 1,
58
-          specNum: null,
59
-        },{
60
-          name: '商品名称4',
61
-          specName: null,
62
-          price: 100,
63
-          specPrice: null,
64
-          num: 1,
65
-          specNum: null,
66
-        },{
67
-          name: '商品名称5',
68
-          specName: null,
69
-          price: 100,
70
-          specPrice: null,
71
-          num: 1,
72
-          specNum: null,
73
-        },{
74
-          name: '商品名称6',
75
-          specName: null,
76
-          price: 100,
77
-          specPrice: null,
78
-          num: 1,
79
-          specNum: null,
80
-        }],
81
-      },{
82
-        status: 1,
83
-        caseName: '案场名称',
84
-        creatTime: '02/16 14:20',
85
-        goodsList: [{
86
-          name: '商品名称1',
87
-          specName: '加冰',
88
-          price: null,
89
-          specPrice: 20,
90
-          num: null,
91
-          specNum: 2,
92
-        }],
93
-      },{
94
-        status: 2,
95
-        caseName: '案场名称',
96
-        creatTime: '02/16 14:20',
97
-        goodsList: [{
98
-          name: '商品名称1',
99
-          specName: '加冰',
100
-          price: null,
101
-          specPrice: 20,
102
-          num: null,
103
-          specNum: 2,
104
-        }],
105
-      },{
106
-        status: 0,
107
-        caseName: '案场名称',
108
-        creatTime: '02/16 14:20',
109
-        goodsList: [{
110
-          name: '商品名称1',
111
-          specName: '加冰',
112
-          price: null,
113
-          specPrice: 20,
114
-          num: null,
115
-          specNum: 2,
116
-        }],
117
-      }],
41
+      pullUpLoad: true,
42
+      pullUpLoadThreshold: 40,
43
+      startY: 0,
44
+      page: 1,
45
+      pagesize: 10,
46
+      isloading: true,
47
+      hasMore: true,
48
+    }
49
+  },
50
+  computed: {
51
+    ...mapState({
52
+      userInfo: x => x.userCenter.userInfo,
53
+    }),
54
+    ...mapOrdersState({
55
+      orders: x => x.orders,
56
+    }),
57
+    pullUpLoadObj: function () {
58
+      return this.pullUpLoad
59
+        ? {
60
+          threshold: parseInt(this.pullUpLoadThreshold),
61
+          txt: {
62
+            more: this.pullUpLoadMoreTxt,
63
+            noMore: this.pullUpLoadNoMoreTxt
64
+          }
65
+        }
66
+        : false
118
     }
67
     }
119
   },
68
   },
120
-  computed: {},
121
   components: {
69
   components: {
122
     topCaseInfo,
70
     topCaseInfo,
123
     orderListItem,
71
     orderListItem,
72
+    scroll,
73
+    noMore,
74
+  },
75
+  created () {
76
+    this.getCustomerGoodsOrder({
77
+      page: this.page,
78
+      pagesize: this.pagesize,
79
+    })
124
   },
80
   },
125
-  created () { },
126
   methods: {
81
   methods: {
127
-    
82
+    ...mapOrdersActions([
83
+      'getCustomerGoodsOrder',
84
+    ]),
85
+    getList () {
86
+      var _that = this
87
+      Math.ceil(this.orders.pagenum / this.orders.pagesize) > this.page ? this.hasMore = true : this.hasMore = false
88
+      // this.list.length <= 8 ? this.hasMore = true : this.hasMore = false
89
+      if (this.hasMore) {
90
+        setTimeout(() => {
91
+          _that.getCustomerGoodsOrder({
92
+            page: _that.page,
93
+            pagesize: _that.pagesize,
94
+          })
95
+        }, 1000)
96
+      } else {
97
+        this.$refs.scroll.forceUpdate()
98
+        return false
99
+      }
100
+    },
128
   }
101
   }
129
 }
102
 }
130
 </script>
103
 </script>

+ 4
- 116
src/pages/user/orderList/page.scss 查看文件

13
       &>div{
13
       &>div{
14
         margin: 0 .25rem;
14
         margin: 0 .25rem;
15
         overflow: visible;
15
         overflow: visible;
16
-        &>ul{
16
+        div{
17
+          overflow: visible;
18
+        }
19
+        ul{
17
           width: 100%;
20
           width: 100%;
18
           position: relative;
21
           position: relative;
19
           overflow: visible;
22
           overflow: visible;
27
             box-shadow: 0 0 .2rem .02rem rgba(0, 0, 0, .1);
30
             box-shadow: 0 0 .2rem .02rem rgba(0, 0, 0, .1);
28
             padding: .08rem 0;
31
             padding: .08rem 0;
29
             margin: .25rem auto 0;
32
             margin: .25rem auto 0;
30
-            // .title{
31
-            //   width: 100%;
32
-            //   position: relative;
33
-            //   overflow: hidden;
34
-            //   align-items: center;
35
-            //   &>div:nth-child(1){
36
-            //     width: .5rem;
37
-            //     text-align: center;
38
-            //     *{
39
-            //       display: inline-block;
40
-            //       font-size: .1rem;
41
-            //       line-height: .17rem;
42
-            //     }
43
-            //     i{
44
-            //       font-size: .15rem;
45
-            //     }
46
-            //   }
47
-            //   &>div:nth-child(1).orange{
48
-            //     *{
49
-            //       color: #fc6243;
50
-            //     }
51
-            //   }
52
-            //   &>div:nth-child(1).grey{
53
-            //     *{
54
-            //       color: #ccc;
55
-            //     }
56
-            //   }
57
-            //   &>div:nth-child(1).green{
58
-            //     *{
59
-            //       color: #63c86f;
60
-            //     }
61
-            //   }
62
-            //   &>div:nth-child(2){
63
-            //     margin-right: .1rem;
64
-            //     &>div{
65
-            //       width: 100%;
66
-            //       position: relative;
67
-            //       overflow: hidden;
68
-            //       span{
69
-            //         width: 100%;
70
-            //         display: block;
71
-            //         font-size: .14rem;
72
-            //         overflow: hidden;
73
-            //         text-overflow: ellipsis;
74
-            //         white-space: nowrap;
75
-            //       }
76
-            //     }
77
-            //   }
78
-            //   &>span{
79
-            //     font-size: .11rem;
80
-            //     color: #666;
81
-            //     margin-right: .15rem;
82
-            //   }
83
-            // }
84
-            // .line{
85
-            //   width: 100%;
86
-            //   height: .2rem;
87
-            //   position: relative;
88
-            //   overflow: hidden;
89
-            //   &>div{
90
-            //     width: 100%;
91
-            //     position: absolute;
92
-            //     overflow: hidden;
93
-            //     left: 0;
94
-            //     top: 50%;
95
-            //     transform: translateY(-50%) translateX(-.035rem);
96
-            //     -webkit-transform: translateY(-50%) translateX(-.035rem);
97
-            //     font-size: 0;
98
-            //     white-space: nowrap;
99
-            //     i{
100
-            //       display: inline-block;
101
-            //       width: .07rem;
102
-            //       height: .07rem;
103
-            //       position: relative;
104
-            //       overflow: hidden;
105
-            //       border-radius: 100%;
106
-            //       background: #eee;
107
-            //       margin-right: .1rem;
108
-            //     }
109
-            //   }
110
-            // }
111
-            // .list{
112
-            //   &>div{
113
-            //     margin: 0 .15rem;
114
-            //     &>ul{
115
-            //       margin: .06rem auto;
116
-            //       &>li{
117
-            //         font-size: 0;
118
-            //         white-space: nowrap;
119
-            //         &>*{
120
-            //           display: inline-block;
121
-            //           vertical-align: middle;
122
-            //           width: 50%;
123
-            //           overflow: hidden;
124
-            //           text-overflow: ellipsis;
125
-            //           white-space: nowrap;
126
-            //         }
127
-            //         &>span{
128
-            //           line-height: .26rem;
129
-            //           font-size: .14rem;
130
-            //           color: #555;
131
-            //         }
132
-            //         &>div{
133
-            //           text-align: right;
134
-            //           font-size: 0;
135
-            //           span{
136
-            //             font-size: .11rem;
137
-            //             line-height: .26rem;
138
-            //             color: #666;
139
-            //           }
140
-            //         }
141
-            //       }
142
-            //     }
143
-            //   }
144
-            // }
145
           }
33
           }
146
         }
34
         }
147
       }
35
       }

+ 32
- 0
src/store/case/case.js 查看文件

1
+import Ajax from '../../util/ajax'
2
+import api from '../../util/api'
3
+
4
+// 请求数据
5
+export default {
6
+  namespaced: true,
7
+  state: {
8
+    caseTotal: {},
9
+  },
10
+  mutations: {
11
+    setCaseTotal (state, data) { // 获取案场下单数量信息
12
+      state.caseTotal = data
13
+    },
14
+  },
15
+  actions: {
16
+    getCaseTotal ({ commit }, { caseid }) {
17
+      return new Promise((resolve, reject) => {
18
+        Ajax(api.case.total.url, {
19
+          method: api.case.total.method,
20
+          urlData: {
21
+            caseid
22
+          }
23
+        }).then(res => {
24
+          commit("setCaseTotal", res)
25
+          resolve(res)
26
+        }).catch((err) => {
27
+          reject(err)
28
+        })
29
+      })
30
+    },
31
+  }
32
+}

+ 31
- 0
src/store/goods/order.js 查看文件

1
+import Ajax from '../../util/ajax'
2
+import api from '../../util/api'
3
+
4
+export default {
5
+  namespaced: true,
6
+  state: {
7
+    orders: {},
8
+  },
9
+  mutations: {
10
+    setGoodsOrders (state, data) { // 获取案场下单数量信息
11
+      state.orders = data
12
+    },
13
+  },
14
+  actions: {
15
+    getCustomerGoodsOrder ({ commit }, payload) {
16
+      return new Promise((resolve, reject) => {
17
+        Ajax(api.goods.getCustOrders.url, {
18
+          method: api.goods.getCustOrders.method,
19
+          queryData: {
20
+            ...payload
21
+          },
22
+        }).then(res => {
23
+          commit("setGoodsOrders", res)
24
+          resolve(res)
25
+        }).catch((err) => {
26
+          reject(err)
27
+        })
28
+      })
29
+    },
30
+  }
31
+}

+ 2
- 0
src/store/index.js 查看文件

16
   userCenter: () => require('./userCenter/userCenter').default,
16
   userCenter: () => require('./userCenter/userCenter').default,
17
   majorProjects: () => require('./majorProjects/majorProjects').default,
17
   majorProjects: () => require('./majorProjects/majorProjects').default,
18
   placeOrderForCoffee: () => require('./placeOrderForCoffee/index').default,
18
   placeOrderForCoffee: () => require('./placeOrderForCoffee/index').default,
19
+  case: () => require('./case/case').default,
20
+  goodsOrder: () => require('./goods/order').default,
19
 }
21
 }
20
 
22
 
21
 Object.keys(modules).forEach((modKey) => {
23
 Object.keys(modules).forEach((modKey) => {

+ 1
- 1
src/store/majorProjects/majorProjects.js 查看文件

47
         })
47
         })
48
       })
48
       })
49
     },
49
     },
50
-    getCourseDetailInfo (context, { id }) { // 获取课程列表
50
+    getCourseDetailInfo (context, { id }) { // 获取课程详情信息
51
       return new Promise((resolve) => {
51
       return new Promise((resolve) => {
52
         Ajax(api.majorProjects.getCourseDetail.url, {
52
         Ajax(api.majorProjects.getCourseDetail.url, {
53
           method: api.majorProjects.getCourseDetail.method,
53
           method: api.majorProjects.getCourseDetail.method,

+ 50
- 32
src/store/userCenter/userCenter.js 查看文件

73
 export default {
73
 export default {
74
   namespaced: true,
74
   namespaced: true,
75
   state: {
75
   state: {
76
-    userInfo: {
77
-      // AccountInfo: {
78
-      //   "city": "CITY",
79
-      //   "country": "COUNTRY",
80
-      //   "headimgurl": "http://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46",
81
-      //   "nickname": "NICKNAME",
82
-      //   "openid": "OPENID",
83
-      //   "province": "PROVINCE",
84
-      //   "sex": "1",
85
-      //   "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
86
-      // },
87
-      // AccountType: "wechat",
88
-      // CreateDate: "0001-01-01T00:00:00Z",
89
-      // CustomerId: "1",
90
-      // CustomerName: "测试",
91
-      // Headimgurl: "",
92
-      // MapUser: "",
93
-      // MappingId: "1",
94
-      // Name: "测试",
95
-      // Openid: "OPENID",
96
-      // OrgId: "1",
97
-      // Phone: "13823838438",
98
-      // Points: 0,
99
-      // RecommendCase: "1",
100
-      // RecommendId: "0",
101
-      // RecommendName: "",
102
-      // Sex: 1,
103
-      // Status: 1,
104
-      // UserType: "customer",
105
-      // Uuid: "",
106
-    },
107
-    caseInfo: {}
76
+    userInfo: {},
77
+    caseInfo: {},
78
+    courseOrderList: {},
79
+    courseLocationList: [],
80
+    courseOrderDetail: {},
108
   },
81
   },
109
   mutations: {
82
   mutations: {
110
     setUserInfo (state, data) {
83
     setUserInfo (state, data) {
112
     },
85
     },
113
     setCaseInfo (state, data) {
86
     setCaseInfo (state, data) {
114
       state.caseInfo = data
87
       state.caseInfo = data
88
+    },
89
+    setCourseOrderDetail (state, data) { // 设置课程订单详情
90
+      state.courseOrderDetail = data
91
+    },
92
+    setCourseLocationList (state, data) { // 设置课程类型列表
93
+      state.courseLocationList = data
94
+    },
95
+    setCourseOrder (state, { res, page }) { // 设置我的课程订单信息
96
+      if (page === 1) {
97
+        state.courseOrderList = res
98
+      } else {
99
+        state.courseOrderList = { ...res, list: [...state.courseOrderList.list, res.list] }
100
+      }
115
     }
101
     }
116
   },
102
   },
117
   actions: {
103
   actions: {
104
+    getCourseOrderDetail (context, payload) { // 获取课程类型列表
105
+      return new Promise((resolve) => {
106
+        Ajax(api.user.getCourseOrderDetail.url, {
107
+          method: api.user.getCourseOrderDetail.method,
108
+          urlData: { ...payload }
109
+        }).then(res => {
110
+          context.commit('setCourseOrderDetail', res)
111
+          resolve(res)
112
+        })
113
+      })
114
+    },
115
+    getCourseLocationList (context) { // 获取课程类型列表
116
+      return new Promise((resolve) => {
117
+        Ajax(api.user.getCourseLoactionList.url, {
118
+          method: api.user.getCourseLoactionList.method,
119
+        }).then(res => {
120
+          context.commit('setCourseLocationList', res)
121
+          resolve(res)
122
+        })
123
+      })
124
+    },
125
+    getCourseOrderList (context, payload) { // 获取我的课程订单信息
126
+      return new Promise((resolve) => {
127
+        Ajax(api.user.getCourseOrderList.url, {
128
+          method: api.user.getCourseOrderList.method,
129
+          queryData: { ...payload }
130
+        }).then(res => {
131
+          context.commit('setCourseOrder', { res, page: payload.page })
132
+          resolve(res)
133
+        })
134
+      })
135
+    },
118
     getUserInfo (context, data) {
136
     getUserInfo (context, data) {
119
       return new Promise((resolve) => {
137
       return new Promise((resolve) => {
120
         http.getUserInfo(data).then((res) => {
138
         http.getUserInfo(data).then((res) => {

+ 1
- 1
src/util/ajax.js 查看文件

49
 const ajax = (...args) => {
49
 const ajax = (...args) => {
50
   return new Promise((resolve, reject) => {
50
   return new Promise((resolve, reject) => {
51
     Axios(...args).then(({ data }) => {
51
     Axios(...args).then(({ data }) => {
52
-      console.log(111)
52
+      // console.log(111)
53
       const { code, message, result } = data
53
       const { code, message, result } = data
54
       if (code === 200) {
54
       if (code === 200) {
55
         resolve(result)
55
         resolve(result)

+ 26
- 2
src/util/api.js 查看文件

80
       method: 'get',
80
       method: 'get',
81
       url: `${baseUrl}${guest}/case`
81
       url: `${baseUrl}${guest}/case`
82
     },
82
     },
83
+    getCourseOrderList: { // 获取我的课程订单信息
84
+      method: 'get',
85
+      url: `${baseUrl}${wechat}/course/user`
86
+    },
87
+    getCourseLoactionList: { // 获取课程类型列表
88
+      method: 'get',
89
+      url: `${baseUrl}${guest}/cms/location`
90
+    },
91
+    getCourseOrderDetail: { // 获取课程订单详情
92
+      method: 'get',
93
+      url: `${baseUrl}${wechat}/course/user/:id`
94
+    },
83
   },
95
   },
84
-  login:{ // 主管、销售端登陆
96
+  login: { // 主管、销售端登陆
85
     login: {
97
     login: {
86
       method: 'post',
98
       method: 'post',
87
       url: `${baseUrl}${guest}/wxsignin`
99
       url: `${baseUrl}${guest}/wxsignin`
88
     }
100
     }
89
-  }
101
+  },
102
+  case: {
103
+    total: {
104
+      method: 'get',
105
+      url: `${baseUrl}${wechat}/goods/case/:caseid`
106
+    },
107
+  },
108
+  goods: {
109
+    getCustOrders: {
110
+      method: 'get',
111
+      url: `${baseUrl}${wechat}/goods/user`
112
+    }
113
+  },
90
 }
114
 }
91
 export default $api
115
 export default $api