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.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							57 lines
						
					
					
						
							1.3 KiB
						
					
					
				
								import { VantComponent } from '../common/component';
							 | 
						|
								VantComponent({
							 | 
						|
								  classes: ['bar-class', 'price-class', 'button-class'],
							 | 
						|
								  props: {
							 | 
						|
								    tip: {
							 | 
						|
								      type: null,
							 | 
						|
								      observer: 'updateTip',
							 | 
						|
								    },
							 | 
						|
								    tipIcon: String,
							 | 
						|
								    type: Number,
							 | 
						|
								    price: {
							 | 
						|
								      type: null,
							 | 
						|
								      observer: 'updatePrice',
							 | 
						|
								    },
							 | 
						|
								    label: String,
							 | 
						|
								    loading: Boolean,
							 | 
						|
								    disabled: Boolean,
							 | 
						|
								    buttonText: String,
							 | 
						|
								    currency: {
							 | 
						|
								      type: String,
							 | 
						|
								      value: '¥',
							 | 
						|
								    },
							 | 
						|
								    buttonType: {
							 | 
						|
								      type: String,
							 | 
						|
								      value: 'danger',
							 | 
						|
								    },
							 | 
						|
								    decimalLength: {
							 | 
						|
								      type: Number,
							 | 
						|
								      value: 2,
							 | 
						|
								      observer: 'updatePrice',
							 | 
						|
								    },
							 | 
						|
								    suffixLabel: String,
							 | 
						|
								    safeAreaInsetBottom: {
							 | 
						|
								      type: Boolean,
							 | 
						|
								      value: true,
							 | 
						|
								    },
							 | 
						|
								  },
							 | 
						|
								  methods: {
							 | 
						|
								    updatePrice() {
							 | 
						|
								      const { price, decimalLength } = this.data;
							 | 
						|
								      const priceStrArr =
							 | 
						|
								        typeof price === 'number' &&
							 | 
						|
								        (price / 100).toFixed(decimalLength).split('.');
							 | 
						|
								      this.setData({
							 | 
						|
								        hasPrice: typeof price === 'number',
							 | 
						|
								        integerStr: priceStrArr && priceStrArr[0],
							 | 
						|
								        decimalStr: decimalLength && priceStrArr ? `.${priceStrArr[1]}` : '',
							 | 
						|
								      });
							 | 
						|
								    },
							 | 
						|
								    updateTip() {
							 | 
						|
								      this.setData({ hasTip: typeof this.data.tip === 'string' });
							 | 
						|
								    },
							 | 
						|
								    onSubmit(event) {
							 | 
						|
								      this.$emit('submit', event.detail);
							 | 
						|
								    },
							 | 
						|
								  },
							 | 
						|
								});
							 |