|  | @@ -1,35 +1,30 @@
 | 
	
		
			
				|  |  |  // components/service/service.ts
 | 
	
		
			
				|  |  | +// 获取应用实例
 | 
	
		
			
				|  |  | +const app = getApp<IAppOption>()
 | 
	
		
			
				|  |  |  Component({
 | 
	
		
			
				|  |  |    /**
 | 
	
		
			
				|  |  | -   * 组件的属性列表
 | 
	
		
			
				|  |  | -   */
 | 
	
		
			
				|  |  | -  // properties: {
 | 
	
		
			
				|  |  | -  //   popShow: {
 | 
	
		
			
				|  |  | -  //     type: Boolean,
 | 
	
		
			
				|  |  | -  //     default: false
 | 
	
		
			
				|  |  | -  //   }
 | 
	
		
			
				|  |  | -  // },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  /**
 | 
	
		
			
				|  |  |     * 组件的初始数据
 | 
	
		
			
				|  |  |     */
 | 
	
		
			
				|  |  |    data: {
 | 
	
		
			
				|  |  |      popShow: false,
 | 
	
		
			
				|  |  | +    btnShow: true,
 | 
	
		
			
				|  |  |      top: 0,  // 初始的上偏移
 | 
	
		
			
				|  |  | -    startX: 0, // 触摸起始点 X 坐标
 | 
	
		
			
				|  |  |      startY: 0, // 触摸起始点 Y 坐标
 | 
	
		
			
				|  |  |      windowWidth: 0, // 屏幕宽度
 | 
	
		
			
				|  |  |      windowHeight: 0, // 屏幕高度
 | 
	
		
			
				|  |  |      elementHeight: 60 // 元素高度
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  | -  attached() {
 | 
	
		
			
				|  |  | -    // 获取屏幕宽高
 | 
	
		
			
				|  |  | -    const systemInfo = wx.getWindowInfo();
 | 
	
		
			
				|  |  | -    this.setData({
 | 
	
		
			
				|  |  | -      windowWidth: systemInfo.windowWidth,
 | 
	
		
			
				|  |  | -      windowHeight: systemInfo.windowHeight,
 | 
	
		
			
				|  |  | -      top: systemInfo.windowHeight - 180
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | +  lifetimes: {
 | 
	
		
			
				|  |  | +    attached() {
 | 
	
		
			
				|  |  | +      // 获取屏幕宽高
 | 
	
		
			
				|  |  | +      const systemInfo = wx.getWindowInfo();
 | 
	
		
			
				|  |  | +      const globalTop = app.globalData.top
 | 
	
		
			
				|  |  | +      this.setData({
 | 
	
		
			
				|  |  | +        windowWidth: systemInfo.windowWidth,
 | 
	
		
			
				|  |  | +        windowHeight: systemInfo.windowHeight,
 | 
	
		
			
				|  |  | +        top: globalTop
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    /**
 | 
	
		
			
				|  |  |     * 组件的方法列表
 | 
	
	
		
			
				|  | @@ -61,6 +56,7 @@ Component({
 | 
	
		
			
				|  |  |        const deltaY = e.touches[0].clientY - this.data.startY;
 | 
	
		
			
				|  |  |    
 | 
	
		
			
				|  |  |        // 更新元素的垂直位置
 | 
	
		
			
				|  |  | +      app.globalData.top = this.data.top + deltaY
 | 
	
		
			
				|  |  |        this.setData({
 | 
	
		
			
				|  |  |          top: this.data.top + deltaY,
 | 
	
		
			
				|  |  |          startY: e.touches[0].clientY
 | 
	
	
		
			
				|  | @@ -75,11 +71,17 @@ Component({
 | 
	
		
			
				|  |  |        const moveHeight = top + elementHeight
 | 
	
		
			
				|  |  |        // 判断元素与顶部和底部的距离,选择最近的边界
 | 
	
		
			
				|  |  |        if (distanceTop < 0) {
 | 
	
		
			
				|  |  | -        this.setData({ top: 0 }); // 吸附到顶部
 | 
	
		
			
				|  |  | +        this.setData({ top: 0 }, () => {
 | 
	
		
			
				|  |  | +          app.globalData.top = 0
 | 
	
		
			
				|  |  | +        }); // 吸附到顶部
 | 
	
		
			
				|  |  |        } else if(moveHeight >= windowHeight) {
 | 
	
		
			
				|  |  | -        this.setData({ top: windowHeight - elementHeight })
 | 
	
		
			
				|  |  | +        this.setData({ top: windowHeight - elementHeight }, () => {
 | 
	
		
			
				|  |  | +          app.globalData.top = windowHeight - elementHeight
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |        } else {
 | 
	
		
			
				|  |  | -        this.setData({ top })
 | 
	
		
			
				|  |  | +        this.setData({ top }, () => {
 | 
	
		
			
				|  |  | +          app.globalData.top = top
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 |