diff --git a/src/core/apis.js b/src/core/apis.js index c28db68..ef335e3 100644 --- a/src/core/apis.js +++ b/src/core/apis.js @@ -97,6 +97,15 @@ export default { } }, order: { + cart: { + add: { + url: "/order/addshoppingcar", + showLoading: true, + }, + list: { + url: "/order/myshoppingcar" + }, + }, pay: { url: "/wxpay/payordera", showLoading: true, diff --git a/src/core/models.js b/src/core/models.js index bb212c7..cba23e8 100644 --- a/src/core/models.js +++ b/src/core/models.js @@ -2,10 +2,12 @@ import order from "@/core/models/order"; import user from "@/core/models/user"; import worker from "@/core/models/worker"; import service from "@/core/models/service"; +import cart from "@/core/models/cart"; export default { order, user, worker, service, + cart, } diff --git a/src/core/models/cart.js b/src/core/models/cart.js new file mode 100644 index 0000000..4bcf95e --- /dev/null +++ b/src/core/models/cart.js @@ -0,0 +1,39 @@ +import Vue from "vue" +let prototype = Vue.prototype; + +export default { + /** + * 添加到购物车 + */ + add(id) { + return new Promise((resolve, reject) => { + prototype.$request({ + api: "order.cart.add", + data: { + id: id, + } + }).then((response) => { + prototype.$utils.toast(response.msg); + if (response.code == 1) { + return resolve(response.msg); + } + return reject(response.msg); + }).catch(e => { }); + }); + }, + /** + * 列表 + */ + list() { + return new Promise((resolve, reject) => { + prototype.$request({ + api: "order.cart.list", + }).then(response => { + if (response.code == 1) { + return resolve(response.data); + } + return reject(response.msg); + }).catch(e => { }); + }); + } +} diff --git a/src/pages/service/cart.vue b/src/pages/service/cart.vue index bf83807..8a5fefd 100644 --- a/src/pages/service/cart.vue +++ b/src/pages/service/cart.vue @@ -22,7 +22,7 @@ @@ -68,6 +68,24 @@ export default { ServicePreviewItem, }, onLoad() { + let cartList = []; + this.$models.cart.list().then((list) => { + list.forEach((item) => { + let goods = []; + item.good.forEach((v) => { + goods.push({ + id: v.gid, + name: v.title, + cover: require("@/static/temp/cate/1.png"), + number: v.number, + }); + }); + cartList.push({ + name: item.cate, + list: [], + }); + }); + }); this.list = this.parseList([ { id: 1, @@ -77,13 +95,13 @@ export default { id: 1, name: "格力空调安装", cover: require("@/static/temp/cate/1.png"), - buyNumber: 1, + number: 1, }, { id: 2, name: "美的空调安装", cover: require("@/static/temp/cate/1.png"), - buyNumber: 1, + number: 1, }, ], }, @@ -95,7 +113,7 @@ export default { id: 3, name: "厨房下水道", cover: require("@/static/temp/cate/1.png"), - buyNumber: 10, + number: 10, }, ], }, diff --git a/src/pages/service/detail.vue b/src/pages/service/detail.vue index c8f2ccb..d7751d1 100644 --- a/src/pages/service/detail.vue +++ b/src/pages/service/detail.vue @@ -70,7 +70,7 @@ ¥{{ detail.price }} - + 加入购物车 @@ -140,6 +140,12 @@ export default { icon: "none", }); }, + /** + * 加入购物车 + */ + addToCart() { + this.$models.cart.add(this.id); + }, /** * 创建订单 */