// component/switchtab/switchtab.js Component({ options: { addGlobalClass: true, multipleSlots: true }, /** * 组件的属性列表 */ properties: { extClass: { type: String, value: '' }, extClassOn: { type: String, value: '' }, tabList: { type: Array, value: [] }, //通知组件刷新高度 refresh: { type: Boolean, value: false, observer: 'refreshHeight' }, }, /** * 组件的初始数据 */ data: { //选项卡相关 currentTab: 0, // pageheight: '600px', }, pageLifetimes: { // 组件所在页面的生命周期函数 show: function () { // this.refreshHeight(true) }, hide: function () { }, resize: function () { }, }, /** * 组件的方法列表 */ methods: { refreshHeight: function(e) { // console.log(`refreshHeight: ${e}`); if (e) { setTimeout(() => { const p = `.page${this.data.currentTab}` console.log(p); this.tabsHeight(p); }, 50); } }, //计算swiper高度方法(在切换的时候调用) tabsHeight(element) { let that = this; let query = this.createSelectorQuery(); //必须要先创建一个查询 query.select(element).boundingClientRect(function (rect) { that.setData({ pageheight: rect.height + 'px' }); }).exec(); }, swichNav: function (e) { var that = this; if (this.data.currentTab === e.target.dataset.current) { return false; } else { that.setData({ currentTab: e.target.dataset.current, }) } }, bindChange: function (e) { var that = this; that.setData({ currentTab: e.detail.current, }); that.tabsHeight('.page' + e.detail.current); //查询哪一个元素 this.triggerEvent('tabchange', this.data.currentTab) }, } })