tearoom/page_moban/shoufei.vue
2025-01-07 18:02:57 +08:00

316 lines
7.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="page">
<u-navbar title="收费方式" :border-bottom="false" :background="bgc" back-icon-color="#262B37" title-color='#262B37'
title-size='36' height='48' id="navbar">
</u-navbar>
<view class="list">
<view class="tishi" style="margin-top: 0;">
押金收费
</view>
<view class="wz">
订单提前结束剩余消费时长金额不返还
</view>
<view class="" v-for="(item,index) in tclist" :key="index" @click="btnedit(item,1,index)">
<view class="item_list" v-if="item.mode == 1" :id="yajinindex == index ? 'active' : ''">
<view class="shoufei">
<view class="shang">
<view class="">
{{item.explain == null ? '--' : item.explain}}
</view>
</view>
<view class="price">
{{item.price == null ? '--' : item.price}}元/小时,最低消费{{item.minHours == null ? '--' : item.minHours}}小时,押金金额{{item.deposit == null ? '--' : item.deposit}}元
</view>
</view>
<view class="shuom">
(订单结束{{item.refundDuration == 0 ? '立即' : item.refundDuration + '分钟后'}}退还押金)
</view>
</view>
</view>
<view class="" style="border-bottom: 1px solid #ccc;padding-bottom: 30rpx;box-sizing: border-box;"></view>
<view class="tishi">
套餐收费
</view>
<view class="wz">
注:订单提前结束剩余消费时长、金额不返还
</view>
<view class="item_list" v-for="(item,index) in modelist" :key="index" @click="btnedit(item,2,index)" :class="{ 'active': isSelected(item.ruleId) }">
<view class="shoufei">
<view class="shang">
<view class="">{{item.explain == null ? '--' : item.explain}}</view>
</view>
<view class="shichang">
<view class="stop">
<view class="">套餐时长(时)</view>
<view class="">套餐价格(元)</view>
</view>
<view class="stop" style="background-color: #F9F9F9;">
<view class="">{{item.hours}}</view>
<view class="">{{item.price}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="anniu">
<view class="tougang" style="margin-right: 30rpx;" @click="btnshop">
新建模版
</view>
<view class="tougang" @click="btnqd">
确定选择
</view>
</view>
<u-select v-model="show" :list="list" @confirm="confirm"></u-select>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#fff",
},
list:[
{
value: '1',
label: '单价押金收费'
},{
value: '2',
label: '套餐方式收费'
}],
show:false,
tclist:[],
modelist:[],
yajinindex:-1,
selectedIndices:[],
ruleIdsone:[],
nameone:[],
}
},
onLoad() {
},
onShow() {
this.tclist = []
this.modelist = []
this.yajinindex = -1
this.selectedIndices = []
this.ruleIdsone = []
this.getlist()
},
methods: {
// 点击选择套餐
btnedit(item,type,index){
this.nameone = []
this.ruleIdsone = []
if(type == 1){
this.yajinindex = index
this.nameone.push(item.explain)
this.selectedIndices = []
this.ruleIdsone.push(item.ruleId)
}else{
this.yajinindex = -1
this.ruleIdsone = ''
const indexExists = this.selectedIndices.includes(item.ruleId)
if (indexExists) {
this.selectedIndices = this.selectedIndices.filter(i => i !== item.ruleId)
} else {
this.selectedIndices.push(item.ruleId)
}
}
},
isSelected(ruleId) {
return this.selectedIndices.includes(ruleId)
},
// 点击确定选择套餐
btnqd(){
this.selectedIndices.forEach(val =>{
this.modelist.forEach(item => {
if(val == item.ruleId){
this.nameone.push(item.explain)
}
})
})
if(this.ruleIdsone.length > 0){
uni.setStorageSync('namelist',this.nameone)
uni.setStorageSync('ruleIdlist',this.ruleIdsone)
setTimeout(()=>{
uni.navigateBack()
},1)
}else{
uni.setStorageSync('namelist',this.nameone)
uni.setStorageSync('ruleIdlist',this.selectedIndices)
setTimeout(()=>{
uni.navigateBack()
},1)
}
},
// 请求套餐列表
getlist(){
this.$u.get(`app/rule/list`).then(res => {
if (res.code == 200) {
this.tclist = res.data
res.data.forEach(item =>{
if(item.mode == 2){
this.modelist.push(item)
}
})
}
})
},
// 点击新建套餐
btnshop(){
this.show = true
},
// 确定新建收费模版
confirm(e){
if(e[0].value == 1){
uni.navigateTo({
url:'/page_shanghu/editsheshi?type=' + 1
})
}else{
uni.navigateTo({
url:'/page_shanghu/editsheshi?type=' + 2
})
}
},
}
}
</script>
<style lang="scss">
/deep/ .u-iconfont,
/deep/ .u-title{
padding-bottom: 20rpx;
box-sizing: border-box;
}
.active{
border: 1px solid #48893B !important;
background-color: #e7f7e4 !important;
}
#active{
border: 1px solid #48893B !important;
background-color: #e7f7e4 !important;
}
page {
background: #F6F6F6;
}
.shuom{
font-size: 24rpx;
color: #3D3D3D;
margin-top: 20rpx;
padding-left: 30rpx;
box-sizing: border-box;
}
.tishi{
font-size: 32rpx;
color: #3D3D3D;
font-weight: 600;
width: 680rpx;
margin: auto;
margin-top: 20rpx;
}
.wz{
font-size: 24rpx;
color: red;
margin-top: 24rpx;
width: 100%;
padding: 0 30rpx;
box-sizing: border-box;
}
.anniu{
width: 100%;
height: 152rpx;
background: #FFFFFF;
box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0,0,0,0.3);
border-radius: 0rpx 0rpx 0rpx 0rpx;
display: flex;
padding: 24rpx 36rpx;
box-sizing: border-box;
justify-content: space-between;
text-align: center;
position: fixed;
left: 0;
bottom: 0;
.tougang{
width: 680rpx;
margin: auto;
height: 104rpx;
background: #48893B;
font-size: 36rpx;
color: #FFFFFF;
line-height: 104rpx;
border-radius: 20rpx;
}
}
.list{
width: 100%;
height: 80vh;
padding-bottom: 80rpx;
box-sizing: border-box;
overflow: scroll;
margin-top: 28rpx;
.item_list{
width: 680rpx;
max-height: 1600rpx;
margin: auto;
margin-top: 28rpx;
background: #FFFFFF;
border: 4rpx solid #fff;
border-radius: 24rpx;
padding-bottom: 26rpx;
box-sizing: border-box;
border: 1px solid #fff;
.shoufei{
margin-top: 30rpx;
.shichang{
margin-top: 34rpx;
.stop{
display: flex;
width: 618rpx;
margin: auto;
height: 76rpx;
line-height: 76rpx;
background: #F0F0F0;
view{
width: 50%;
text-align: center;
font-size: 28rpx;
color: #3D3D3D;
}
}
}
.price{
font-size: 28rpx;
color: #3D3D3D;
margin-top: 22rpx;
padding-left: 30rpx;
box-sizing: border-box;
}
.shang{
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
view{
padding-left: 30rpx;
box-sizing: border-box;
font-size: 32rpx;
color: #3D3D3D;
font-weight: 600;
display: flex;
align-items: center;
image{
width: 14rpx;
height: 42rpx;
margin-top: 0;
margin-right: 10rpx;
}
}
}
}
}
}
</style>