You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

193 lines
4.8 KiB

1 year ago
<template>
<view>
<u-navbar title="预定" :border-bottom="false"></u-navbar>
<view class="recharge-icon">
<image class="app-logo" src="/static/bico_package.png"></image>
</view>
<view class="recharge-form-panel">
<view class="recharge-form">
<view class="canteen-select">
<u-input :border="border" type="select" :select-open="selectShow" v-model="model.canteen" placeholder="请选择食堂" @click="selectShow = true"></u-input>
<u-select mode="single-column" :list="selectList" v-model="selectShow" @confirm="selectConfirm"></u-select>
</view>
<view class="button-wrapper">
<u-button type="primary" @click="confirmOrder" shape="circle" :custom-style="btnSubmit" :disabled="confirmOrderHide">订餐</u-button>
</view>
<u-checkbox-group @change="checkboxGroupChange" wrap="true" size=40>
<view v-for="(item, index) in list" :key="index">
<view class="weui_cell">
<view class="weui_cell_hd weui_cell_primary recharge-form-text">{{item.name}}付费已购买
<span class="paycount"> {{item.number}} </span></view>
</view>
<view class="weui_cell">
<label class="weui-cell weui-check__label">
<u-checkbox v-model="item.checked" :name="item.name" :disabled="item.disabled"></u-checkbox>
</label>
<view class="weui_cell_hd recharge-form-text ">金额</view>
<text>¥ {{item.money}}</text>
<view class="weui_cell_hd weui_cell_primary recharge-form-text"></view>
<view style="">数量</view>
<view class="weui_cell_ft algin-center">
<u-number-box disabled-input=true v-model="item.mealcount" @minus="minusMealCount(item)" @plus="plusMealCount(item)"></u-number-box>
</view>
</view>
<view class="meal-split" v-if="index!=list.length-1"></view>
</view>
</u-checkbox-group>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
selectShow: false,
confirmOrderHide: true,
//食堂对象
canteenObj: {},
selectList: [],
model: {
canteen: '',
canteenId: '',
dataList: []
},
btnSubmit: {
height: '30px',
width: '150px',
},
list: [],
checkName: [],
}
},
methods: {
selectConfirm(e) {
this.model.canteen = '';
e.map((val, index) => {
this.model.canteenId= val.value;
this.model.canteen += this.model.canteen == '' ? val.label : '-' + val.label;
})
},
confirmOrder() {
this.list.map((v,index) => {
if(v.checked == true){
this.model.dataList.push(v)
}
})
console.log("已选中数据",this.model);
},
minusMealCount(item) {
item.disabled = item.mealcount==0? true : false;
item.money = item.mealcount*20;
},
plusMealCount(item) {
item.disabled = false;
item.money = item.mealcount*20;
},
checkboxGroupChange(e) {
if(e.length == 0){
this.confirmOrderHide = true;
}else{
this.confirmOrderHide = false;
}
this.checkName = e;
}
},
onShow() {
this.list=[];
this.canteenObj= uni.getStorageSync('canteenObj');
for(var key in this.canteenObj){
this.selectList.push({"value":key,"label":this.canteenObj[key]});
}
console.log("数据:",this.selectList[0]);
//默认选中第一个食堂
this.selectConfirm([this.selectList[0]]);
//获取需要渲染的餐类型
//餐类型
let mealTypeList = uni.getStorageSync("mealTypeList");
mealTypeList.map((v,index) => {
this.list.push({
name: v.dictLabel,
value:v.dictValue,
checked: false,
disabled: true,
money: 0,
mealcount: 0,
number:0
});
})
//获取当前用户已订购的份数
}
}
</script>
<style lang="scss" scoped>
.canteen-select u-input {
width: 206rpx;
}
.recharge-icon {
width: 750rpx;
text-align: center;
color: #ff4e00;
align-items: center;
justify-content: center;
}
.recharge-icon image {
display: block;
width: 206rpx;
height: 206rpx;
margin: 30rpx auto;
border-radius: 4px;
}
.recharge-form-panel {
width: 100%;
background-color: #fbf9fe;
text-align: center;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
z-index: 1;
}
.recharge-form {
text-align: center;
width: 100%;
margin: 0 0 20rpx 0;
}
.weui_cell {
padding: 6px 15px;
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-align: center;
align-items: center;
border-bottom: 1px solid #dfdfdf;
}
.weui_cell_hd.align-right {
text-align: right;
padding-right: 20px;
}
.weui_cell_primary {
-webkit-box-flex: 1;
flex: 1;
}
.weui_cell_ft {
text-align: right;
color: #888;
}
.recharge-form-text {
text-align: left;
}
.meal-split {
height: 20rpx;
background-color: #f2f2f2;
}
</style>