Component({ options: { multipleSlots: true }, properties: { height: { type: Number, value: 800 }, refresherTextStyle: { type: String, value: "black" }, refresherBackground: { type: String, value: "inherit" }, scrollTop: { type: Number, value: 0 }, triggered: { type: Boolean, value: false }, threshold: { type: Number, value: 50 }, restoredText: { type: String, value: "下拉刷新" }, pullingText: { type: String, value: "松开刷新" }, refreshingText: { type: String, value: "正在刷新" }, useSlotStyle: Boolean, scrollX: Boolean, scrollY: { type: Boolean, value: true }, upperThreshold: { type: Number, value: 50 }, owerThreshold: { type: Number, value: 50 }, scrollLeft: Number, scrollIntoView: String, scrollWithAnimation: Boolean, enableBackToTop: { type: Boolean, value: true }, enableFlex: Boolean, scrollAnchoring: Boolean }, data: { stateText: "下拉刷新", stateCode: 0, process: 0 }, lifetimes: { // 生命周期函数,可以为函数,或一个在methods段中定义的方法名 detached: function () {} }, methods: { $emit(type, e) { this.triggerEvent(type, e) }, on2Upper(e) { this.$emit("scrolltoupper", e) }, on2Lower(e) { this.$emit("scrolltolower", e) }, onScroll(e) { this.$emit("scroll", e) }, onPulling(e) { const dy = e.detail.dy, threshold = this.properties.threshold this.setData({ process: dy / threshold, stateCode: 1, stateText: dy < threshold ? this.properties.restoredText : this.properties.pullingText }) this.$emit("pulling", e) }, onRefreshed(e) { this.setData({ stateText: this.properties.refreshingText, stateCode: 2, process: 1 }) this.$emit("refresh", e) }, onRestored(e) { this.setData({ stateText: "", stateCode: 0, process: 0 }) this.$emit("restore", e) }, onAbort(e) { this.setData({ stateText: "", stateCode: 0, process: 0 }) this.$emit("abort", e) } } })