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.
		
		
		
		
			
				
					66 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					66 lines
				
				1.6 KiB
			| 
								 
											6 months ago
										 
									 | 
							
								import { VantComponent } from '../common/component';
							 | 
						||
| 
								 | 
							
								import { getRect, getSystemInfoSync } from '../common/utils';
							 | 
						||
| 
								 | 
							
								VantComponent({
							 | 
						||
| 
								 | 
							
								    classes: ['title-class'],
							 | 
						||
| 
								 | 
							
								    props: {
							 | 
						||
| 
								 | 
							
								        title: String,
							 | 
						||
| 
								 | 
							
								        fixed: {
							 | 
						||
| 
								 | 
							
								            type: Boolean,
							 | 
						||
| 
								 | 
							
								            observer: 'setHeight',
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        placeholder: {
							 | 
						||
| 
								 | 
							
								            type: Boolean,
							 | 
						||
| 
								 | 
							
								            observer: 'setHeight',
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        leftText: String,
							 | 
						||
| 
								 | 
							
								        rightText: String,
							 | 
						||
| 
								 | 
							
								        customStyle: String,
							 | 
						||
| 
								 | 
							
								        leftArrow: Boolean,
							 | 
						||
| 
								 | 
							
								        border: {
							 | 
						||
| 
								 | 
							
								            type: Boolean,
							 | 
						||
| 
								 | 
							
								            value: true,
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        zIndex: {
							 | 
						||
| 
								 | 
							
								            type: Number,
							 | 
						||
| 
								 | 
							
								            value: 1,
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        safeAreaInsetTop: {
							 | 
						||
| 
								 | 
							
								            type: Boolean,
							 | 
						||
| 
								 | 
							
								            value: true,
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    data: {
							 | 
						||
| 
								 | 
							
								        height: 46,
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    created() {
							 | 
						||
| 
								 | 
							
								        const { statusBarHeight } = getSystemInfoSync();
							 | 
						||
| 
								 | 
							
								        this.setData({
							 | 
						||
| 
								 | 
							
								            statusBarHeight,
							 | 
						||
| 
								 | 
							
								            height: 46 + statusBarHeight,
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    mounted() {
							 | 
						||
| 
								 | 
							
								        this.setHeight();
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    methods: {
							 | 
						||
| 
								 | 
							
								        onClickLeft() {
							 | 
						||
| 
								 | 
							
								            this.$emit('click-left');
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        onClickRight() {
							 | 
						||
| 
								 | 
							
								            this.$emit('click-right');
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								        setHeight() {
							 | 
						||
| 
								 | 
							
								            if (!this.data.fixed || !this.data.placeholder) {
							 | 
						||
| 
								 | 
							
								                return;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            wx.nextTick(() => {
							 | 
						||
| 
								 | 
							
								                getRect(this, '.van-nav-bar').then((res) => {
							 | 
						||
| 
								 | 
							
								                    if (res && 'height' in res) {
							 | 
						||
| 
								 | 
							
								                        this.setData({ height: res.height });
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                });
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        },
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								});
							 |