添加购物车相关功能

This commit is contained in:
TOP糯米 2023-03-09 19:28:16 +08:00
parent 324b19fe7c
commit 9a04d366e4
5 changed files with 79 additions and 5 deletions

View File

@ -97,6 +97,15 @@ export default {
} }
}, },
order: { order: {
cart: {
add: {
url: "/order/addshoppingcar",
showLoading: true,
},
list: {
url: "/order/myshoppingcar"
},
},
pay: { pay: {
url: "/wxpay/payordera", url: "/wxpay/payordera",
showLoading: true, showLoading: true,

View File

@ -2,10 +2,12 @@ import order from "@/core/models/order";
import user from "@/core/models/user"; import user from "@/core/models/user";
import worker from "@/core/models/worker"; import worker from "@/core/models/worker";
import service from "@/core/models/service"; import service from "@/core/models/service";
import cart from "@/core/models/cart";
export default { export default {
order, order,
user, user,
worker, worker,
service, service,
cart,
} }

39
src/core/models/cart.js Normal file
View File

@ -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 => { });
});
}
}

View File

@ -22,7 +22,7 @@
<service-preview-item :data="v" /> <service-preview-item :data="v" />
<widget-count-modify <widget-count-modify
class="component-add" class="component-add"
:initNumber="v.buyNumber" :initNumber="v.number"
@change="changeNumber($event, { parentIndex: index, index: i })" @change="changeNumber($event, { parentIndex: index, index: i })"
/> />
</view> </view>
@ -68,6 +68,24 @@ export default {
ServicePreviewItem, ServicePreviewItem,
}, },
onLoad() { 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([ this.list = this.parseList([
{ {
id: 1, id: 1,
@ -77,13 +95,13 @@ export default {
id: 1, id: 1,
name: "格力空调安装", name: "格力空调安装",
cover: require("@/static/temp/cate/1.png"), cover: require("@/static/temp/cate/1.png"),
buyNumber: 1, number: 1,
}, },
{ {
id: 2, id: 2,
name: "美的空调安装", name: "美的空调安装",
cover: require("@/static/temp/cate/1.png"), cover: require("@/static/temp/cate/1.png"),
buyNumber: 1, number: 1,
}, },
], ],
}, },
@ -95,7 +113,7 @@ export default {
id: 3, id: 3,
name: "厨房下水道", name: "厨房下水道",
cover: require("@/static/temp/cate/1.png"), cover: require("@/static/temp/cate/1.png"),
buyNumber: 10, number: 10,
}, },
], ],
}, },

View File

@ -70,7 +70,7 @@
<text class="text">¥{{ detail.price }}</text> <text class="text">¥{{ detail.price }}</text>
</view> </view>
<view class="btn-group"> <view class="btn-group">
<view class="cart"> <view class="cart" @click="addToCart">
<text class="text">加入购物车</text> <text class="text">加入购物车</text>
</view> </view>
<view class="order" @click="createOrder"> <view class="order" @click="createOrder">
@ -140,6 +140,12 @@ export default {
icon: "none", icon: "none",
}); });
}, },
/**
* 加入购物车
*/
addToCart() {
this.$models.cart.add(this.id);
},
/** /**
* 创建订单 * 创建订单
*/ */