<template>
|
|
<view class="input__view" :style="style">
|
|
<view class="flex row">
|
|
<view class="flex row-label">
|
|
<view class="title">成人</view>
|
|
<view class="desc">(18周岁以上)</view>
|
|
<view class="flex price">
|
|
<text>¥</text>
|
|
<text class="highlight">{{ adultsPrice }}</text>
|
|
</view>
|
|
</view>
|
|
<view class="row-content">
|
|
<uv-number-box
|
|
v-model="adultsNum"
|
|
:min="0"
|
|
:integer="true"
|
|
:inputWidth="68"
|
|
bgColor="transparent"
|
|
:iconStyle="{
|
|
background: '#F7F8FA',
|
|
fontSize: '13px',
|
|
lineHeight: 1,
|
|
padding: '12px',
|
|
borderRadius: '50%',
|
|
}"
|
|
></uv-number-box>
|
|
</view>
|
|
</view>
|
|
<view class="flex row">
|
|
<view class="flex row-label">
|
|
<view class="title">青少年</view>
|
|
<view class="desc">(14周岁以上)</view>
|
|
<view class="flex price">
|
|
<text>¥</text>
|
|
<text class="highlight">{{ teenagerPrice }}</text>
|
|
</view>
|
|
</view>
|
|
<view class="row-content">
|
|
<uv-number-box
|
|
v-model="teenagerNum"
|
|
:min="0"
|
|
:integer="true"
|
|
:inputWidth="68"
|
|
bgColor="transparent"
|
|
:iconStyle="{
|
|
background: '#F7F8FA',
|
|
fontSize: '13px',
|
|
lineHeight: 1,
|
|
padding: '12px',
|
|
borderRadius: '50%',
|
|
}"
|
|
></uv-number-box>
|
|
</view>
|
|
</view>
|
|
<view class="flex row">
|
|
<view class="flex row-label">
|
|
<view class="title">儿童</view>
|
|
<view class="desc">(14周岁以下)</view>
|
|
<view class="flex price">
|
|
<text>¥</text>
|
|
<text class="highlight">{{ childPrice }}</text>
|
|
</view>
|
|
</view>
|
|
<view class="row-content">
|
|
<uv-number-box
|
|
v-model="childNum"
|
|
:min="0"
|
|
:integer="true"
|
|
:inputWidth="68"
|
|
bgColor="transparent"
|
|
:iconStyle="{
|
|
background: '#F7F8FA',
|
|
fontSize: '13px',
|
|
lineHeight: 1,
|
|
padding: '12px',
|
|
borderRadius: '50%',
|
|
}"
|
|
></uv-number-box>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
props: {
|
|
adults: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
teenager: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
child: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
adultsPrice: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
teenagerPrice: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
childPrice: {
|
|
type: Number,
|
|
default: 0,
|
|
},
|
|
style: {
|
|
type: String,
|
|
default: ''
|
|
},
|
|
},
|
|
computed: {
|
|
adultsNum: {
|
|
set(val) {
|
|
this.$emit('update:adults', val)
|
|
},
|
|
get() {
|
|
return this.adults
|
|
}
|
|
},
|
|
teenagerNum: {
|
|
set(val) {
|
|
this.$emit('update:teenager', val)
|
|
},
|
|
get() {
|
|
return this.teenager
|
|
}
|
|
},
|
|
childNum: {
|
|
set(val) {
|
|
this.$emit('update:child', val)
|
|
},
|
|
get() {
|
|
return this.child
|
|
}
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.input__view {
|
|
width: 100%;
|
|
}
|
|
|
|
.row {
|
|
justify-content: space-between;
|
|
padding: 24rpx 0;
|
|
font-family: PingFang SC;
|
|
font-size: 24rpx;
|
|
font-weight: 400;
|
|
line-height: 1.4;
|
|
border-bottom: 2rpx solid #EEEEEE;
|
|
|
|
& + & {
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
&-label {
|
|
justify-content: flex-start;
|
|
column-gap: 4rpx;
|
|
}
|
|
|
|
&-content {
|
|
|
|
/deep/ .uv-number-box__minus--disabled {
|
|
background: transparent !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
.title {
|
|
font-size: 28rpx;
|
|
color: #000000;
|
|
}
|
|
|
|
.desc {
|
|
color: #8B8B8B;
|
|
}
|
|
|
|
.price {
|
|
font-weight: 500;
|
|
color: #FF4800;
|
|
|
|
.highlight {
|
|
font-size: 32rpx;
|
|
}
|
|
}
|
|
</style>
|