@@ -4,7 +4,7 @@ | |||||
import store from "@/store/index.js"; | import store from "@/store/index.js"; | ||||
export default { | export default { | ||||
globalData: { | globalData: { | ||||
imageServer: 'https://hbl-1305371387.cos.ap-chengdu.myqcloud.com/company/QSQD/', //图片服务器地址 | |||||
imageServer: 'https://hbl-1305371387.cos.ap-chengdu.myqcloud.com/company/QSQD/', //图片服务器地址且时且多 | |||||
user: { | user: { | ||||
gender: 0, | gender: 0, | ||||
openId: '', | openId: '', | ||||
@@ -46,7 +46,7 @@ | |||||
</view> | </view> | ||||
<view class="feed-info-center"> | <view class="feed-info-center"> | ||||
<view class="feed-name-box"> | <view class="feed-name-box"> | ||||
<view class="feed-name-text"> | |||||
<view class="feed-name-text text-overflow-two"> | |||||
{{addFood.name}} | {{addFood.name}} | ||||
</view> | </view> | ||||
<view class="feed-company-text"> | <view class="feed-company-text"> | ||||
@@ -67,10 +67,83 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- 套餐列表 --> | |||||
<view class="set-meal-list"> | |||||
<view class="feed-item" v-for="(feed, index) in currentGoods.setMealList" :key="index"> | |||||
<view class="feed-title"> | |||||
{{feed.name}} | |||||
</view> | |||||
<view class="feed-info" v-for="addFood in feed.foods" :key="addFood.id"> | |||||
<view class="feed-cover"> | |||||
<image :src="addFood.cover" class="image-common-cover"></image> | |||||
</view> | |||||
<view class="feed-info-center"> | |||||
<view class="feed-name-box"> | |||||
<view class="feed-name-text text-overflow-two"> | |||||
{{addFood.name}} | |||||
</view> | |||||
<view class="feed-company-text"> | |||||
{{addFood.company ? addFood.company : '份'}} | |||||
</view> | |||||
</view> | |||||
<view class="feed-price-box green-color"> | |||||
¥{{addFood.price}} | |||||
</view> | |||||
</view> | |||||
<view class="feed-buy-count"> | |||||
<icon class="iconfont icon-jianshaojianqujianhao" :class="{'hidden-blank-data': addFood.count === 0}" @click="onSetMealCountReduce(addFood)"></icon> | |||||
<view :class="{'feed-count-now': true, 'hidden-blank-data': addFood.count === 0}" > | |||||
{{addFood.count}} | |||||
</view> | |||||
<icon class="iconfont icon-zengjia" @click="onSetMealCountPlus(addFood)" ></icon> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="choose-success-btn" @click="onSure"> | <view class="choose-success-btn" @click="onSure"> | ||||
选好了 | 选好了 | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- 选规格 --> | |||||
<u-popup :show="showSpecification" mode="center" @close="closeChooseSpeci" @open="openChooseSpeci" round="30rpx"> | |||||
<view class="specifi-box"> | |||||
<view class="specifi-head"> | |||||
{{currentChoose.name}} | |||||
</view> | |||||
<view class="specifi-type-list"> | |||||
<view class="specifi-type-item" v-for="specificationType in currentChoose.specification" :key="specificationType.id"> | |||||
<view class="specifi-item-title"> | |||||
{{specificationType.name}} | |||||
</view> | |||||
<view class="specifi-detail-list"> | |||||
<view @click="onChooseSpecifi(specificationType, specifiDetailIndex)" :class="{'specifi-detail-item': true, 'specifi-detail-select': specifiDetail.isSelect}" v-for="(specifiDetail, specifiDetailIndex) in specificationType.foods" :key="specifiDetail.id"> | |||||
{{specifiDetail.name}} | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="specifi-choosed-card"> | |||||
<view class="specifi-choosed-prev"> | |||||
已选规格: | |||||
</view> | |||||
<view class="specifi-choosed-list" v-for="specifiType in currentChoose.specification" :key="specifiType.id"> | |||||
<view class="specifi-choosed-item" v-for="specifiItem in specifiType.foods" :key="specifiItem.id" v-show="specifiItem.isSelect"> | |||||
{{specifiItem.name}} | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="specifi-total-card"> | |||||
<view class="specifi-total-left"> | |||||
总计 | |||||
<text class="specifi-total-price">¥{{specificationTotalPrice}}</text> | |||||
</view> | |||||
<view class="specifi-total-right" @click="onJoinCar"> | |||||
<icon class="iconfont icon-zengjia"></icon> | |||||
加入购物车 | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</u-popup> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -81,6 +154,8 @@ | |||||
data() { | data() { | ||||
return { | return { | ||||
imageServer: getApp().globalData.imageServer, | imageServer: getApp().globalData.imageServer, | ||||
currentChoose: {}, //当前已选商品 | |||||
showSpecification: false | |||||
}; | }; | ||||
}, | }, | ||||
computed: { | computed: { | ||||
@@ -114,6 +189,19 @@ | |||||
}, | }, | ||||
currentGoods() { | currentGoods() { | ||||
return store.state.currentGoods; | return store.state.currentGoods; | ||||
}, | |||||
specificationTotalPrice() { | |||||
let price = 0; | |||||
if (this.currentChoose.specification) { | |||||
this.currentChoose.specification.forEach(specifiType => { | |||||
specifiType.foods.forEach(specifiItem => { | |||||
if (specifiItem.isSelect) { | |||||
price += specifiItem.price | |||||
} | |||||
}); | |||||
}); | |||||
} | |||||
return price; | |||||
} | } | ||||
}, | }, | ||||
methods: { | methods: { | ||||
@@ -133,6 +221,43 @@ | |||||
onSure() { | onSure() { | ||||
store.commit('onStapleFoodPlusFromList'); | store.commit('onStapleFoodPlusFromList'); | ||||
this.$emit('onFeedPopuoClose'); | this.$emit('onFeedPopuoClose'); | ||||
}, | |||||
//套餐减1 | |||||
onSetMealCountReduce(setMeal) { | |||||
if (setMeal.count === 0) return; | |||||
store.commit('onSetMealCountReduce', setMeal); | |||||
}, | |||||
//套餐加1 | |||||
onSetMealCountPlus(setMeal) { | |||||
if (setMeal.specification && setMeal.specification.length > 0) { | |||||
this.currentChoose = setMeal; | |||||
this.openChooseSpeci(); | |||||
} else { | |||||
store.commit('onSetMealCountPlus', setMeal); | |||||
} | |||||
}, | |||||
closeChooseSpeci() { | |||||
this.showSpecification = false; | |||||
}, | |||||
openChooseSpeci() { | |||||
this.showSpecification = true; | |||||
}, | |||||
onChooseSpecifi(type, chooseIndex) { | |||||
if (type.singleChoice) { | |||||
type.foods.forEach((item, index) => { | |||||
if (chooseIndex === index) { | |||||
item.isSelect = true; | |||||
} else { | |||||
item.isSelect = false; | |||||
} | |||||
}); | |||||
} else { | |||||
type.foods[chooseIndex].isSelect = !type.foods[chooseIndex].isSelect; | |||||
} | |||||
}, | |||||
onJoinCar() { | |||||
store.commit('onSetMealCountPlus', this.currentChoose); | |||||
this.closeChooseSpeci(); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -218,7 +343,7 @@ | |||||
height: 30rpx; | height: 30rpx; | ||||
} | } | ||||
.feed-list { | |||||
.feed-list, .set-meal-list { | |||||
max-height: 450rpx; | max-height: 450rpx; | ||||
overflow: scroll; | overflow: scroll; | ||||
margin: 40rpx 0; | margin: 40rpx 0; | ||||
@@ -229,14 +354,20 @@ | |||||
} | } | ||||
.feed-cover { | .feed-cover { | ||||
flex-shrink: 0; | |||||
width: 100rpx; | width: 100rpx; | ||||
height: 100rpx; | height: 100rpx; | ||||
margin-right: 30rpx; | margin-right: 30rpx; | ||||
} | } | ||||
.feed-info-center { | |||||
flex-grow: 1; | |||||
} | |||||
.feed-info { | .feed-info { | ||||
display: flex; | display: flex; | ||||
align-items: center; | align-items: center; | ||||
margin-bottom: 10rpx; | |||||
} | } | ||||
.feed-name-box { | .feed-name-box { | ||||
@@ -251,7 +382,8 @@ | |||||
} | } | ||||
.feed-buy-count { | .feed-buy-count { | ||||
width: 200rpx; | |||||
flex-shrink: 0; | |||||
width: 180rpx; | |||||
display: flex; | display: flex; | ||||
justify-content: space-around; | justify-content: space-around; | ||||
align-items: center; | align-items: center; | ||||
@@ -303,4 +435,99 @@ | |||||
top: 180rpx; | top: 180rpx; | ||||
padding: 0 !important; | padding: 0 !important; | ||||
} | } | ||||
/* 套餐 */ | |||||
.set-meal-list .feed-title { | |||||
font-size: 30rpx; | |||||
font-weight: 700; | |||||
} | |||||
/* 选规格 */ | |||||
.specifi-box { | |||||
width: 680rpx; | |||||
padding: 30rpx; | |||||
box-sizing: border-box; | |||||
} | |||||
.specifi-head { | |||||
font-size: 34rpx; | |||||
font-weight: 900; | |||||
} | |||||
.specifi-type-list, .specifi-type-item { | |||||
margin: 20rpx 0; | |||||
} | |||||
.specifi-item-title { | |||||
margin-bottom: 10rpx; | |||||
font-size: 28rpx; | |||||
color: #999; | |||||
} | |||||
.specifi-detail-list { | |||||
display: flex; | |||||
align-items: center; | |||||
flex-wrap: wrap; | |||||
} | |||||
.specifi-detail-item { | |||||
margin-right: 10rpx; | |||||
margin-bottom: 10rpx; | |||||
border: 2rpx solid #dedede; | |||||
padding: 10rpx 40rpx; | |||||
border-radius: 10rpx; | |||||
font-size: 28rpx; | |||||
} | |||||
.specifi-detail-select { | |||||
border-color: #51A97D; | |||||
color: #51A97D; | |||||
} | |||||
.specifi-choosed-card { | |||||
background-color: rgb(250, 250, 250); | |||||
font-size: 26rpx; | |||||
padding: 10rpx 10rpx; | |||||
} | |||||
.specifi-choosed-card, .specifi-choosed-list { | |||||
display: flex; | |||||
flex-wrap: wrap; | |||||
} | |||||
.specifi-choosed-item::after { | |||||
content: '、'; | |||||
} | |||||
.specifi-total-card { | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-between; | |||||
height: 100rpx; | |||||
font-size: 30rpx; | |||||
} | |||||
.specifi-total-right { | |||||
display: flex; | |||||
align-items: center; | |||||
} | |||||
.specifi-total-price { | |||||
font-size: 36rpx; | |||||
color: #F94352; | |||||
} | |||||
.specifi-total-right { | |||||
display: flex; | |||||
align-items: center; | |||||
background-color: #51A97D; | |||||
color: #FFF; | |||||
padding: 10rpx 40rpx; | |||||
border-radius: 10rpx; | |||||
} | |||||
.specifi-total-right .iconfont { | |||||
color: #FFF; | |||||
margin-right: 20rpx; | |||||
} | |||||
</style> | </style> |
@@ -167,6 +167,27 @@ | |||||
currentGoods = JSON.parse(JSON.stringify(food)); | currentGoods = JSON.parse(JSON.stringify(food)); | ||||
store.commit('initCurrentGoods', currentGoods); | store.commit('initCurrentGoods', currentGoods); | ||||
this.isShowFeedPopup = true; | this.isShowFeedPopup = true; | ||||
} else if (food.setMealList && food.setMealList.length > 0) { | |||||
food.setMealList.forEach(item => { | |||||
item.foods.forEach(additional => { | |||||
additional.count = 0; | |||||
additional.sourceCount = 0; | |||||
if (additional.specification && additional.specification.length > 0) { | |||||
additional.specification.forEach(specifiType => { | |||||
specifiType.foods.forEach((specifiItem, specifiIndex) =>{ | |||||
if (specifiIndex === 0) { | |||||
specifiItem.isSelect = true; | |||||
} else { | |||||
specifiItem.isSelect = false; | |||||
} | |||||
}); | |||||
}); | |||||
} | |||||
}); | |||||
}); | |||||
currentGoods = JSON.parse(JSON.stringify(food)); | |||||
store.commit('initCurrentGoods', currentGoods); | |||||
this.isShowFeedPopup = true; | |||||
} else { | } else { | ||||
currentGoods = JSON.parse(JSON.stringify(food)); | currentGoods = JSON.parse(JSON.stringify(food)); | ||||
store.commit('initCurrentGoods', currentGoods); | store.commit('initCurrentGoods', currentGoods); | ||||
@@ -296,7 +296,16 @@ | |||||
"path" : "pages/homeNew/homeNew", | "path" : "pages/homeNew/homeNew", | ||||
"style" : | "style" : | ||||
{ | { | ||||
"navigationBarTitleText": "", | |||||
"navigationBarTitleText": "首页", | |||||
"enablePullDownRefresh": false | |||||
} | |||||
} | |||||
,{ | |||||
"path" : "pages/underDevelopment/underDevelopment", | |||||
"style" : | |||||
{ | |||||
"navigationBarTitleText": "功能开发中", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
@@ -165,6 +165,36 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- 超值换购 --> | |||||
<view class="value-exchange-card order-common-box-shadow" v-if="true"> | |||||
<view class="value-exchange-title"> | |||||
超值换购 | |||||
</view> | |||||
<view class="value-exchange-item" v-for="(exchangeGoods, index) in exchangeList" :key="index"> | |||||
<view class="value-exchange-cover"> | |||||
<image :src="imageServer.concat(exchangeGoods.cover)" class="image-common-cover"></image> | |||||
</view> | |||||
<view class="value-exchange-goods"> | |||||
<view class="value-exchange-name text-overflow-one"> | |||||
{{exchangeGoods.name}} | |||||
<text class="exchange-goos-compant">{{exchangeGoods.company}}</text> | |||||
</view> | |||||
<view class="value-exchange-price"> | |||||
¥{{exchangeGoods.discountPrice}} | |||||
<text class="exchange-original-price"> | |||||
¥{{exchangeGoods.originalPrice}} | |||||
</text> | |||||
</view> | |||||
</view> | |||||
<view class="value-exchange-count"> | |||||
<icon class="iconfont icon-jianshaojianqujianhao" :class="{'hidden-blank-data': exchangeGoods.count < 1}" @click="onExchangeReduce(index)"></icon> | |||||
<text class="buy-count" :class="{'hidden-blank-data': exchangeGoods.count < 1}"> | |||||
{{exchangeGoods.count}} | |||||
</text> | |||||
<icon class="iconfont icon-zengjia" @click="onExchangePlus(index)"></icon> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<!-- 备注 --> | <!-- 备注 --> | ||||
<view class="remark-card order-common-box-shadow" @click="onOpenRemarkPopup"> | <view class="remark-card order-common-box-shadow" @click="onOpenRemarkPopup"> | ||||
<view class="remark-card-prev"> | <view class="remark-card-prev"> | ||||
@@ -227,6 +257,17 @@ | |||||
userLocation: '', //用户坐标 | userLocation: '', //用户坐标 | ||||
autoActivityList: [], //自动参与活动列表 | autoActivityList: [], //自动参与活动列表 | ||||
userAutoActivityJson: {},//参与活动JSON数据 | userAutoActivityJson: {},//参与活动JSON数据 | ||||
exchangeList: [ | |||||
{ | |||||
id: '1001100', | |||||
name: '丝滑香草冰淇淋', | |||||
cover: '97fba14a-6908-48b2-8f4b-fcf6556030cd.png', | |||||
originalPrice: 9, //原价 | |||||
discountPrice: 1, //折后价 | |||||
count: 0, | |||||
company: '杯' //单位 | |||||
} | |||||
], | |||||
} | } | ||||
}, | }, | ||||
created() { | created() { | ||||
@@ -723,6 +764,18 @@ | |||||
flex-grow: 1; | flex-grow: 1; | ||||
} | } | ||||
.value-exchange-count { | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: space-between; | |||||
flex-shrink: 0; | |||||
width: 130rpx; | |||||
font-size: 32rpx; | |||||
} | |||||
.value-exchange-count .iconfont { | |||||
font-size: 40rpx; | |||||
} | |||||
.exchange-goos-compant { | .exchange-goos-compant { | ||||
margin-left: 10rpx; | margin-left: 10rpx; | ||||
@@ -730,6 +783,17 @@ | |||||
color: #999; | color: #999; | ||||
} | } | ||||
.value-exchange-price { | |||||
font-family: fangsong; | |||||
color: #F84352; | |||||
} | |||||
.exchange-original-price { | |||||
margin-left: 10rpx; | |||||
color: #999; | |||||
text-decoration: line-through; | |||||
} | |||||
.order-discount-title { | .order-discount-title { | ||||
color: #999; | color: #999; | ||||
@@ -136,8 +136,328 @@ | |||||
} | } | ||||
typeItem.foods.forEach(food => { | typeItem.foods.forEach(food => { | ||||
food.shopCartNumber = 0; | food.shopCartNumber = 0; | ||||
}); | |||||
}); | |||||
}); | }); | ||||
//套餐 模拟JSON数据 | |||||
const foodTypeItem = { | |||||
id: 'f697317d-e715-430d-8703-65b805520220428', | |||||
name: '爆款!单人套餐', | |||||
sort: 0, | |||||
coverUrl: 'http://res.hualala.com/basicdoc/f4201455-d8fd-4695-a9eb-0d2664f12f7b.png', | |||||
foods: [ | |||||
{ | |||||
addtoFoodList: [], | |||||
company: '套', | |||||
cover: 'http://res.hualala.com/basicdoc/f4201455-d8fd-4695-a9eb-0d2664f12f7b.png', | |||||
id: '920b6b5b-b612-4f70-903e-a6627920220428', | |||||
name: '立减套餐!咖啡鸡排面,咖啡+奶茶(饮品二选一)', | |||||
price: 44, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 32, | |||||
shopCartNumber: 0, | |||||
setMealList: [ | |||||
{ | |||||
id: 'f697317d-e715-430d-8703-65b805520220428', | |||||
name: '立减套餐!咖啡鸡排面,咖啡+奶茶(饮品二选一)', | |||||
sort: 0, | |||||
coverUrl: 'http://res.hualala.com/basicdoc/f4201455-d8fd-4695-a9eb-0d2664f12f7b.png', | |||||
foods: [ | |||||
{ | |||||
company: '份', | |||||
cover: 'http://res.hualala.com/basicdoc/f4201455-d8fd-4695-a9eb-0d2664f12f7b.png', | |||||
id: '920b6b5b-b612-abcd-903e-a6627920220428', | |||||
name: '泰式咖啡鸡排面(咖喱与鸡的完美搭配)', | |||||
price: 32, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 24, | |||||
mandatory: true, //是否必选 | |||||
singleChoice: true, //是否单选 | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
id: 'f697317d-1111-430d-8703-65b805520220428', | |||||
name: '奶茶二选一', | |||||
sort: 0, | |||||
coverUrl: null, | |||||
foods: [ | |||||
{ | |||||
company: '杯', | |||||
cover: 'http://res.hualala.com/basicdoc/c2bdda52-99d0-4c3e-9b91-7e9cfce7ca9e.png?x-oss-process=image/resize,limit_0,m_fill,h_300,w_300', | |||||
id: '920b6b5b-1234-abcd-903e-a6627920220428', | |||||
name: '金瓜波波奶茶(香糯南瓜泥+芋圆珍珠、醇香茶汤,杯杯有料超满足)', | |||||
price: 20, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 14, | |||||
mandatory: false, //是否必选 | |||||
singleChoice: true, //是否单选 | |||||
specification: [ //选规格 | |||||
{ | |||||
id: 'f697317d-fn15-430d-8703-65b805520220428', | |||||
name: '分量', | |||||
sort: 0, | |||||
coverUrl: '', | |||||
mandatory: true, //是否必选 | |||||
singleChoice: true, //是否单选 | |||||
foods: [ | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-gg34-abcd-903e-a6627920220428', | |||||
name: '+冰淇淋(限冷饮)', | |||||
price: 20, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 14, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-gg35-abcd-903e-a6627920220428', | |||||
name: '+芋圆', | |||||
price: 21, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 14, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-gg36-abcd-903e-a6627920220428', | |||||
name: '+椰奶冻', | |||||
price: 22, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 14, | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
id: 'f697317d-td15-430d-8703-65b805520220428', | |||||
name: '糖度', | |||||
sort: 0, | |||||
coverUrl: '', | |||||
mandatory: true, //是否必选 | |||||
singleChoice: false, //是否单选 | |||||
foods: [ | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-td34-abcd-903e-a6627920220428', | |||||
name: '三分糖', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-td35-abcd-903e-a6627920220428', | |||||
name: '五分糖', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-td36-abcd-903e-a6627920220428', | |||||
name: '全糖', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
id: 'f697317d-jd15-430d-8703-65b805520220428', | |||||
name: '可选基底', | |||||
sort: 0, | |||||
coverUrl: '', | |||||
mandatory: true, //是否必选 | |||||
singleChoice: true, //是否单选 | |||||
foods: [ | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-jd34-abcd-903e-a6627920220428', | |||||
name: '阿萨姆红茶', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-jd35-abcd-903e-a6627920220428', | |||||
name: '茉莉绿茶', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-jd36-abcd-903e-a6627920220428', | |||||
name: '清香乌龙茶', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
} | |||||
] | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
company: '杯', | |||||
cover: 'http://res.hualala.com/basicdoc/3b2a9516-3a24-4400-ab3c-9540b42f97ed.png?x-oss-process=image/resize,limit_0,m_fill,h_300,w_300', | |||||
id: '920b6b5b-1222-abcd-903e-a6627920220428', | |||||
name: '栗栗波波奶茶(香糯板栗配珍珠芋圆,口感醇厚茶汤,杯杯有料超满足)', | |||||
price: 20, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 14, | |||||
mandatory: false, //是否必选 | |||||
singleChoice: true, //是否单选 | |||||
specification: [ //选规格 | |||||
{ | |||||
id: 'f697317d-fb15-430d-8703-65b805520220428', | |||||
name: '分量', | |||||
sort: 0, | |||||
coverUrl: '', | |||||
mandatory: true, //是否必选 | |||||
singleChoice: true, //是否单选 | |||||
foods: [ | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-gg34-abcd-903e-a6627920220428', | |||||
name: '+冰淇淋(限冷饮)', | |||||
price: 20, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 14, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-gg35-abcd-903e-a6627920220428', | |||||
name: '+芋圆', | |||||
price: 21, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 14, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-gg36-abcd-903e-a6627920220428', | |||||
name: '+椰奶冻', | |||||
price: 22, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 14, | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
id: 'f697317d-gg15-430d-8703-65b805520220428', | |||||
name: '糖度', | |||||
sort: 0, | |||||
coverUrl: '', | |||||
mandatory: true, //是否必选 | |||||
singleChoice: true, //是否单选 | |||||
foods: [ | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-td34-abcd-903e-a6627920220428', | |||||
name: '三分糖', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-td35-abcd-903e-a6627920220428', | |||||
name: '五分糖', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-td36-abcd-903e-a6627920220428', | |||||
name: '全糖', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
} | |||||
] | |||||
}, | |||||
{ | |||||
id: 'f697317d-jd15-430d-8703-65b805520220428', | |||||
name: '可选基底', | |||||
sort: 0, | |||||
coverUrl: '', | |||||
mandatory: true, //是否必选 | |||||
singleChoice: true, //是否单选 | |||||
foods: [ | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-jd34-abcd-903e-a6627920220428', | |||||
name: '阿萨姆红茶', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-jd35-abcd-903e-a6627920220428', | |||||
name: '茉莉绿茶', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
}, | |||||
{ | |||||
company: '份', | |||||
cover: '', | |||||
id: '920b6b5b-jd36-abcd-903e-a6627920220428', | |||||
name: '清香乌龙茶', | |||||
price: 0, | |||||
sort: 0, | |||||
state: 1, | |||||
vipPrice: 0, | |||||
} | |||||
] | |||||
} | |||||
] | |||||
}, | |||||
] | |||||
}, | |||||
] | |||||
} | |||||
] | |||||
} | |||||
foodTypes.unshift(foodTypeItem); | |||||
store.commit('initFoodArray', foodTypes); | store.commit('initFoodArray', foodTypes); | ||||
setTimeout(() => { | setTimeout(() => { | ||||
this.$refs.goodsListRef.getNodeInfo(); | this.$refs.goodsListRef.getNodeInfo(); | ||||
@@ -5,7 +5,7 @@ | |||||
</view> | </view> | ||||
<image :src="imageServer.concat('ad916a1b-1a3f-42d5-8ac1-b92ea59c44eb.png')" class="image-common-cover give-noodle-back"></image> | <image :src="imageServer.concat('ad916a1b-1a3f-42d5-8ac1-b92ea59c44eb.png')" class="image-common-cover give-noodle-back"></image> | ||||
<view class="round-activity-list"> | <view class="round-activity-list"> | ||||
<view :class="{'round-activity-item': true, 'round-activity-food': item < consumptionQuantity}" v-for="item in 10"></view> | |||||
<view :class="{'round-activity-item': true, 'round-activity-food': item < consumptionQuantity}" v-for="item in 10" :key="item"></view> | |||||
</view> | </view> | ||||
<!-- 活动列表弹窗 --> | <!-- 活动列表弹窗 --> | ||||
<u-popup :show="isShowActivity" bgColor="#FFF" round="30rpx" mode="center" @close="onSwitchActivityPopup(false)" @open="onSwitchActivityPopup(true)"> | <u-popup :show="isShowActivity" bgColor="#FFF" round="30rpx" mode="center" @close="onSwitchActivityPopup(false)" @open="onSwitchActivityPopup(true)"> | ||||
@@ -105,11 +105,8 @@ | |||||
}); | }); | ||||
}, | }, | ||||
onJumpTakeOut() { | onJumpTakeOut() { | ||||
uni.showToast({ | |||||
title: '开发中', | |||||
duration: 1000, | |||||
icon: 'none', | |||||
mask: true | |||||
uni.navigateTo({ | |||||
url: '/pages/underDevelopment/underDevelopment' | |||||
}); | }); | ||||
}, | }, | ||||
//跳转注册会员 | //跳转注册会员 | ||||
@@ -130,27 +127,18 @@ | |||||
}); | }); | ||||
}, 2000, true), | }, 2000, true), | ||||
onJumpSign() { | onJumpSign() { | ||||
uni.showToast({ | |||||
title: '开发中', | |||||
duration: 1000, | |||||
icon: 'none', | |||||
mask: true | |||||
uni.navigateTo({ | |||||
url: '/pages/underDevelopment/underDevelopment' | |||||
}); | }); | ||||
}, | }, | ||||
onJumpNewProduct() { | onJumpNewProduct() { | ||||
uni.showToast({ | |||||
title: '开发中', | |||||
duration: 1000, | |||||
icon: 'none', | |||||
mask: true | |||||
uni.navigateTo({ | |||||
url: '/pages/underDevelopment/underDevelopment' | |||||
}); | }); | ||||
}, | }, | ||||
onJumpFriendShare() { | onJumpFriendShare() { | ||||
uni.showToast({ | |||||
title: '开发中', | |||||
duration: 1000, | |||||
icon: 'none', | |||||
mask: true | |||||
uni.navigateTo({ | |||||
url: '/pages/underDevelopment/underDevelopment' | |||||
}); | }); | ||||
}, | }, | ||||
//跳转积碗换面 | //跳转积碗换面 | ||||
@@ -162,11 +150,8 @@ | |||||
}) | }) | ||||
}, 2000, true), | }, 2000, true), | ||||
onJumpDrink() { | onJumpDrink() { | ||||
uni.showToast({ | |||||
title: '开发中', | |||||
duration: 1000, | |||||
icon: 'none', | |||||
mask: true | |||||
uni.navigateTo({ | |||||
url: '/pages/underDevelopment/underDevelopment' | |||||
}); | }); | ||||
}, | }, | ||||
//获取循环消费数据 | //获取循环消费数据 | ||||
@@ -0,0 +1,63 @@ | |||||
<template> | |||||
<view class="under-delevelopment-box"> | |||||
<view class="delevelopment-logo"></view> | |||||
<view class="delevelopment-desc"> | |||||
该功能正在开发中 | |||||
</view> | |||||
<view class="delevelopment-back" @click="onClickBack"> | |||||
首页 | |||||
</view> | |||||
</view> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
data() { | |||||
return { | |||||
} | |||||
}, | |||||
methods: { | |||||
onClickBack() { | |||||
uni.navigateBack({ | |||||
delta: 1 | |||||
}); | |||||
} | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
.under-delevelopment-box { | |||||
display: flex; | |||||
flex-direction: column; | |||||
justify-content: center; | |||||
align-items: center; | |||||
width: 100vw; | |||||
height: 100vh; | |||||
} | |||||
.delevelopment-logo { | |||||
width: 200rpx; | |||||
height: 200rpx; | |||||
background-image: url('https://hbl-1305371387.cos.ap-chengdu.myqcloud.com/company/QSQD/d5ed2564-068c-4c27-93a9-183e12d2b0ee.jpg'); | |||||
background-position: center; | |||||
background-repeat: no-repeat; | |||||
background-size: contain; | |||||
margin-bottom: 100rpx; | |||||
} | |||||
.delevelopment-desc { | |||||
color: #999; | |||||
font-size: 30rpx; | |||||
} | |||||
.delevelopment-back { | |||||
margin-top: 100rpx; | |||||
background-color: #51A97D; | |||||
color: #FFF; | |||||
padding: 10rpx 100rpx; | |||||
font-size: 32rpx; | |||||
letter-spacing: 10rpx; | |||||
} | |||||
</style> |
@@ -105,6 +105,33 @@ const store = new Vuex.Store({ | |||||
}); | }); | ||||
}); | }); | ||||
}, | }, | ||||
//套餐-1 | |||||
onSetMealCountReduce(state, payload) { | |||||
const setMeal = payload; | |||||
if (setMeal.count === 0) return; | |||||
state.currentGoods.setMealList.forEach(item =>{ | |||||
item.foods.forEach(addFood => { | |||||
if (addFood.id === setMeal.id) { | |||||
addFood.count -= 1; | |||||
addFood.sourceCount = addFood.count; | |||||
state.currentGoods.sencondId = state.currentGoods.sencondId.concat(addFood.id); | |||||
} | |||||
}) | |||||
}); | |||||
}, | |||||
//套餐+1 | |||||
onSetMealCountPlus(state, payload) { | |||||
const setMeal = payload; | |||||
state.currentGoods.setMealList.forEach(item =>{ | |||||
item.foods.forEach(addFood => { | |||||
if (addFood.id === setMeal.id) { | |||||
addFood.count += 1; | |||||
addFood.sourceCount = addFood.count; | |||||
state.currentGoods.sencondId = state.currentGoods.sencondId.replace(addFood.id, ''); | |||||
} | |||||
}) | |||||
}); | |||||
}, | |||||
//从购物车添加主食 | //从购物车添加主食 | ||||
onStapleFoodPlusFromCart(state, payload) { | onStapleFoodPlusFromCart(state, payload) { | ||||
let stapleFood = payload; | let stapleFood = payload; | ||||