|
@@ -12,7 +12,7 @@
|
|
</div>
|
|
</div>
|
|
<div class="body">
|
|
<div class="body">
|
|
<van-search shape="round" v-model="value" placeholder="搜索商品" />
|
|
<van-search shape="round" v-model="value" placeholder="搜索商品" />
|
|
- <div class="main">
|
|
|
|
|
|
+ <div ref="main" class="main">
|
|
<van-card
|
|
<van-card
|
|
v-for="(item, index) in list"
|
|
v-for="(item, index) in list"
|
|
:key="item.goods_title + index"
|
|
:key="item.goods_title + index"
|
|
@@ -56,7 +56,7 @@
|
|
</van-card>
|
|
</van-card>
|
|
</div>
|
|
</div>
|
|
<van-sidebar v-model="activeKey" @change="sidebarChange">
|
|
<van-sidebar v-model="activeKey" @change="sidebarChange">
|
|
- <van-sidebar-item v-for="item in sidlist" :key="item.id">
|
|
|
|
|
|
+ <van-sidebar-item v-for="item in sidlist" :key="item.type_id">
|
|
<template #title>
|
|
<template #title>
|
|
<van-image
|
|
<van-image
|
|
width="10"
|
|
width="10"
|
|
@@ -74,7 +74,11 @@
|
|
</van-sidebar>
|
|
</van-sidebar>
|
|
</div>
|
|
</div>
|
|
<sku :show="showSku" :select="select" @closeSku="close" />
|
|
<sku :show="showSku" :select="select" @closeSku="close" />
|
|
- <van-submit-bar :price="price()" @submit="toOrder" button-text="创建订单" />
|
|
|
|
|
|
+ <van-submit-bar
|
|
|
|
+ :price="price() * 100"
|
|
|
|
+ @submit="toOrder"
|
|
|
|
+ button-text="创建订单"
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -89,7 +93,9 @@ import {
|
|
Button as VanButton,
|
|
Button as VanButton,
|
|
Icon as VanIcon,
|
|
Icon as VanIcon,
|
|
SubmitBar as VanSubmitBar,
|
|
SubmitBar as VanSubmitBar,
|
|
|
|
+ Toast,
|
|
} from "vant";
|
|
} from "vant";
|
|
|
|
+import "vant/lib/toast/style/index";
|
|
import "vant/lib/submit-bar/style/index";
|
|
import "vant/lib/submit-bar/style/index";
|
|
import "vant/lib/button/style/index";
|
|
import "vant/lib/button/style/index";
|
|
import "vant/lib/icon/style/index";
|
|
import "vant/lib/icon/style/index";
|
|
@@ -125,22 +131,37 @@ export default {
|
|
};
|
|
};
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
- console.log(this)
|
|
|
|
this.User = JSON.parse(localStorage.getItem("user") || "{}");
|
|
this.User = JSON.parse(localStorage.getItem("user") || "{}");
|
|
- Promise.all([
|
|
|
|
- getCoffeeGoods("type=" + this.activeKey + '&page=' + page + '&size=' + size),
|
|
|
|
- getCoffeeTypes(),
|
|
|
|
- ]).then(li => {
|
|
|
|
- this.list = li[0] || [];
|
|
|
|
- this.sidlist = li[1] || [];
|
|
|
|
- });
|
|
|
|
|
|
+ getCoffeeGoods(
|
|
|
|
+ "type=" + this.activeKey + "&page=" + page + "&size=" + size
|
|
|
|
+ ).then(r => (this.list = r || []));
|
|
|
|
+ getCoffeeTypes().then(r => (this.sidlist = r || []));
|
|
|
|
+
|
|
|
|
+ this.$refs.main.onscroll = () => {
|
|
|
|
+ const ele = this.$refs.main || undefined;
|
|
|
|
+ if (ele.scrollHeight - ele.scrollTop - ele.clientHeight > 30) return;
|
|
|
|
+ console.log(ele.scrollTop + ele.clientHeight, ele.scrollHeight);
|
|
|
|
+ };
|
|
},
|
|
},
|
|
computed: {},
|
|
computed: {},
|
|
methods: {
|
|
methods: {
|
|
sidebarChange() {
|
|
sidebarChange() {
|
|
page = 1;
|
|
page = 1;
|
|
- getCoffeeGoods("type=" + this.activeKey + '&page=' + page + '&size=' + size).then(r => {
|
|
|
|
- this.list = r || [];
|
|
|
|
|
|
+ getCoffeeGoods(
|
|
|
|
+ "type=" + this.activeKey + "&page=" + page + "&size=" + size
|
|
|
|
+ ).then(r => {
|
|
|
|
+ let nums = {};
|
|
|
|
+ let list = r || [];
|
|
|
|
+ for (let i = 0; i < this.selectItem.length; i++) {
|
|
|
|
+ const v = this.selectItem[i];
|
|
|
|
+ nums[v.goods_id] = v.num;
|
|
|
|
+ }
|
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
|
+ const v = list[i];
|
|
|
|
+ if (!nums[v.goods_id]) continue;
|
|
|
|
+ list[i].num = nums[v.goods_id];
|
|
|
|
+ }
|
|
|
|
+ this.list = list;
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
|
|
@@ -148,27 +169,36 @@ export default {
|
|
let p = 0;
|
|
let p = 0;
|
|
for (let i = 0; i < this.selectItem.length; i++) {
|
|
for (let i = 0; i < this.selectItem.length; i++) {
|
|
const v = this.selectItem[i];
|
|
const v = this.selectItem[i];
|
|
- p += (v.price || 0) * 100 * v.num;
|
|
|
|
|
|
+ p += (v.goods_price || 0) * v.num;
|
|
}
|
|
}
|
|
return p;
|
|
return p;
|
|
},
|
|
},
|
|
|
|
|
|
goodsChange(item) {
|
|
goodsChange(item) {
|
|
- let n = true;
|
|
|
|
- for (let i = 0; i < this.list.length; i++) {
|
|
|
|
- const v = this.list[i];
|
|
|
|
- if (v.id !== item.id) continue;
|
|
|
|
- this.list[i].num = item.num;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- for (let i = 0; i < this.selectItem.length; i++) {
|
|
|
|
- const v = this.selectItem[i];
|
|
|
|
- if (v.id !== item.id) continue;
|
|
|
|
- n = false;
|
|
|
|
- this.selectItem[i].id = item.num;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- if (n) this.selectItem.push(item);
|
|
|
|
|
|
+ let listIndex = (this.list || []).findIndex(r => r.goods_id == item.goods_id);
|
|
|
|
+ if (listIndex != -1) this.list[listIndex].num = item.num;
|
|
|
|
+ let selectItemIndex = (this.selectItem || []).findIndex(
|
|
|
|
+ r => r.goods_id == item.goods_id
|
|
|
|
+ );
|
|
|
|
+ if (selectItemIndex != -1)
|
|
|
|
+ return (this.selectItem[selectItemIndex].num = item.num);
|
|
|
|
+ this.selectItem.push(item);
|
|
|
|
+ // 如果内嵌oa出现不兼容就用这个low方法
|
|
|
|
+ // let n = true;
|
|
|
|
+ // for (let i = 0; i < this.list.length; i++) {
|
|
|
|
+ // const v = this.list[i];
|
|
|
|
+ // if (v.goods_id !== item.goods_id) continue;
|
|
|
|
+ // this.list[i].num = item.num;
|
|
|
|
+ // break;
|
|
|
|
+ // }
|
|
|
|
+ // for (let i = 0; i < this.selectItem.length; i++) {
|
|
|
|
+ // const v = this.selectItem[i];
|
|
|
|
+ // if (v.goods_id !== item.goods_id) continue;
|
|
|
|
+ // n = false;
|
|
|
|
+ // this.selectItem[i].goods_id = item.num;
|
|
|
|
+ // break;
|
|
|
|
+ // }
|
|
|
|
+ // if (n) this.selectItem.push(item);
|
|
},
|
|
},
|
|
|
|
|
|
close(item) {
|
|
close(item) {
|
|
@@ -179,7 +209,8 @@ export default {
|
|
|
|
|
|
toOrder() {
|
|
toOrder() {
|
|
// /coffee/order
|
|
// /coffee/order
|
|
- if (!this.selectItem || !this.selectItem.length) return;
|
|
|
|
|
|
+ if (!this.selectItem || !this.selectItem.length)
|
|
|
|
+ return Toast("请选择商品");
|
|
this.$router.push({
|
|
this.$router.push({
|
|
name: "CoffeeOrder",
|
|
name: "CoffeeOrder",
|
|
params: {},
|
|
params: {},
|