// component/FMScrollGroupsControl/FMScrollGroupsControl.js Component({ /** * 组件的属性列表 */ properties: { //楼层数组 groupIDs: { type: Array, value: null }, //视野内显示多少个按钮,可手触上下滚动 showBtnCount: { type: Number, value: 0, observer: function (newVal, oldVal) { // console.log('height----', this.properties.showBtnCount * 84); if (this.properties.showBtnCount < this.properties.groupIDs.length) { this.setData({ needArrow: true, scrollHeight: this.properties.showBtnCount * 84 }) } } }, //当前的聚焦楼层id focusGroupID: { type: Number, value: 1, observer: function (newVal, oldVal) { console.log("focusGroupID") this._setArrowBtnStatus(this.properties.focusGroupID); } }, allLayer: { type: Boolean } }, /** * 组件的初始数据 */ data: { btnUrl: './image/', scrollHeight: 250, isTop: false, isBottom: true, needArrow: false }, /** * 组件的方法列表 */ methods: { /** * 切换聚焦楼层 * @param {*} e */ switchGroup: function (e) { let focusId = e.currentTarget.dataset.gid; this.triggerEvent('switchGroup', focusId); this._setArrowBtnStatus(focusId); }, /** * 设置上下箭头按钮的状态 * @param {*} focusId 聚焦楼层id */ _setArrowBtnStatus: function (focusId) { if (focusId === 1) { this.setData({ isBottom: true }) } else if (focusId === this.properties.groupIDs.length - 1) { this.setData({ isTop: true }) } else { this.setData({ isTop: false, isBottom: false }) } }, /** * 切换单层多层 */ switchLayers: function () { this.triggerEvent('switchLayers'); }, /** * 向上切换楼层 */ goTop: function () { let gid = this.properties.focusGroupID + 1; this.triggerEvent('switchGroup', gid); this._setArrowBtnStatus(gid); }, /** * 向下切换楼层 */ goBottom: function () { let gid = this.properties.focusGroupID - 1; this.triggerEvent('switchGroup', gid); this._setArrowBtnStatus(gid); } } })