| <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> |