8.15提交

This commit is contained in:
zoujiandong
2025-08-15 09:19:53 +08:00
parent c7eb7ed879
commit b852fa62e4
62 changed files with 63 additions and 3993 deletions
@@ -1,338 +0,0 @@
"use strict";
const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js");
const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js");
const loadMoreModule = {
props: {
// 自定义底部加载更多样式
loadingMoreCustomStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreCustomStyle", {})
},
// 自定义底部加载更多文字样式
loadingMoreTitleCustomStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreTitleCustomStyle", {})
},
// 自定义底部加载更多加载中动画样式
loadingMoreLoadingIconCustomStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingIconCustomStyle", {})
},
// 自定义底部加载更多加载中动画图标类型,可选flower或circle,默认为flower
loadingMoreLoadingIconType: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingIconType", "flower")
},
// 自定义底部加载更多加载中动画图标图片
loadingMoreLoadingIconCustomImage: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingIconCustomImage", "")
},
// 底部加载更多加载中view是否展示旋转动画,默认为是
loadingMoreLoadingAnimated: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingAnimated", true)
},
// 是否启用加载更多数据(含滑动到底部加载更多数据和点击加载更多数据),默认为是
loadingMoreEnabled: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreEnabled", true)
},
// 是否启用滑动到底部加载更多数据,默认为是
toBottomLoadingMoreEnabled: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("toBottomLoadingMoreEnabled", true)
},
// 滑动到底部状态为默认状态时,以加载中的状态展示,默认为否。若设置为是,可避免滚动到底部看到默认状态然后立刻变为加载中状态的问题,但分页数量未超过一屏时,不会显示【点击加载更多】
loadingMoreDefaultAsLoading: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreDefaultAsLoading", false)
},
// 滑动到底部"默认"文字,默认为【点击加载更多】
loadingMoreDefaultText: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreDefaultText", null)
},
// 滑动到底部"加载中"文字,默认为【正在加载...】
loadingMoreLoadingText: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreLoadingText", null)
},
// 滑动到底部"没有更多"文字,默认为【没有更多了】
loadingMoreNoMoreText: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreNoMoreText", null)
},
// 滑动到底部"加载失败"文字,默认为【加载失败,点击重新加载】
loadingMoreFailText: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreFailText", null)
},
// 当没有更多数据且分页内容未超出z-paging时是否隐藏没有更多数据的view,默认为否
hideNoMoreInside: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("hideNoMoreInside", false)
},
// 当没有更多数据且分页数组长度少于这个值时,隐藏没有更多数据的view,默认为0,代表不限制。
hideNoMoreByLimit: {
type: Number,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("hideNoMoreByLimit", 0)
},
// 是否显示默认的加载更多text,默认为是
showDefaultLoadingMoreText: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showDefaultLoadingMoreText", true)
},
// 是否显示没有更多数据的view
showLoadingMoreNoMoreView: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showLoadingMoreNoMoreView", true)
},
// 是否显示没有更多数据的分割线,默认为是
showLoadingMoreNoMoreLine: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showLoadingMoreNoMoreLine", true)
},
// 自定义底部没有更多数据的分割线样式
loadingMoreNoMoreLineCustomStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreNoMoreLineCustomStyle", {})
},
// 当分页未满一屏时,是否自动加载更多,默认为否(nvue无效)
insideMore: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("insideMore", false)
},
// 距底部/右边多远时(单位px),触发 scrolltolower 事件,默认为100rpx
lowerThreshold: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("lowerThreshold", "100rpx")
}
},
data() {
return {
M: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More,
// 底部加载更多状态
loadingStatus: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Default,
// 在渲染之后的底部加载更多状态
loadingStatusAfterRender: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Default,
// 底部加载更多时间戳
loadingMoreTimeStamp: 0,
// 底部加载更多slot
loadingMoreDefaultSlot: null,
// 是否展示底部加载更多
showLoadingMore: false,
// 是否是开发者自定义的加载更多,-1代表交由z-paging自行判断;1代表没有更多了;0代表还有更多数据
customNoMore: -1
};
},
computed: {
// 底部加载更多配置
zLoadMoreConfig() {
return {
status: this.loadingStatusAfterRender,
defaultAsLoading: this.loadingMoreDefaultAsLoading || this.useChatRecordMode && this.chatLoadingMoreDefaultAsLoading,
defaultThemeStyle: this.finalLoadingMoreThemeStyle,
customStyle: this.loadingMoreCustomStyle,
titleCustomStyle: this.loadingMoreTitleCustomStyle,
iconCustomStyle: this.loadingMoreLoadingIconCustomStyle,
loadingIconType: this.loadingMoreLoadingIconType,
loadingIconCustomImage: this.loadingMoreLoadingIconCustomImage,
loadingAnimated: this.loadingMoreLoadingAnimated,
showNoMoreLine: this.showLoadingMoreNoMoreLine,
noMoreLineCustomStyle: this.loadingMoreNoMoreLineCustomStyle,
defaultText: this.finalLoadingMoreDefaultText,
loadingText: this.finalLoadingMoreLoadingText,
noMoreText: this.finalLoadingMoreNoMoreText,
failText: this.finalLoadingMoreFailText,
hideContent: !this.loadingMoreDefaultAsLoading && this.listRendering,
unit: this.unit,
isChat: this.useChatRecordMode,
chatDefaultAsLoading: this.chatLoadingMoreDefaultAsLoading
};
},
// 最终的底部加载更多主题
finalLoadingMoreThemeStyle() {
return this.loadingMoreThemeStyle.length ? this.loadingMoreThemeStyle : this.defaultThemeStyle;
},
// 最终的底部加载更多触发阈值
finalLowerThreshold() {
return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.lowerThreshold);
},
// 是否显示默认状态下的底部加载更多
showLoadingMoreDefault() {
return this._showLoadingMore("Default");
},
// 是否显示加载中状态下的底部加载更多
showLoadingMoreLoading() {
return this._showLoadingMore("Loading");
},
// 是否显示没有更多了状态下的底部加载更多
showLoadingMoreNoMore() {
return this._showLoadingMore("NoMore");
},
// 是否显示加载失败状态下的底部加载更多
showLoadingMoreFail() {
return this._showLoadingMore("Fail");
},
// 是否显示自定义状态下的底部加载更多
showLoadingMoreCustom() {
return this._showLoadingMore("Custom");
},
// 底部加载更多固定高度
loadingMoreFixedHeight() {
return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit("80rpx", this.unit);
}
},
methods: {
// 页面滚动到底部时通知z-paging进行进一步处理
pageReachBottom() {
!this.useChatRecordMode && this.toBottomLoadingMoreEnabled && this._onLoadingMore("toBottom");
},
// 手动触发上拉加载更多(非必须,可依据具体需求使用)
doLoadMore(type) {
this._onLoadingMore(type);
},
// 通过@scroll事件检测是否滚动到了底部(顺带检测下是否滚动到了顶部)
_checkScrolledToBottom(scrollDiff, checked = false) {
if (this.cacheScrollNodeHeight === -1) {
this._getNodeClientRect(".zp-scroll-view").then((res) => {
if (res) {
const scrollNodeHeight = res[0].height;
this.cacheScrollNodeHeight = scrollNodeHeight;
if (scrollDiff - scrollNodeHeight <= this.finalLowerThreshold) {
this._onLoadingMore("toBottom");
}
}
});
} else {
if (scrollDiff - this.cacheScrollNodeHeight <= this.finalLowerThreshold) {
this._onLoadingMore("toBottom");
} else if (scrollDiff - this.cacheScrollNodeHeight <= 500 && !checked) {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this._getNodeClientRect(".zp-scroll-view", true, true).then((res) => {
if (res) {
this.oldScrollTop = res[0].scrollTop;
const newScrollDiff = res[0].scrollHeight - this.oldScrollTop;
this._checkScrolledToBottom(newScrollDiff, true);
}
});
}, 150, "checkScrolledToBottomDelay");
}
if (this.oldScrollTop <= 150 && this.oldScrollTop !== 0) {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
if (this.oldScrollTop !== 0) {
this._getNodeClientRect(".zp-scroll-view", true, true).then((res) => {
if (res && res[0].scrollTop === 0 && this.oldScrollTop !== 0) {
this._onScrollToUpper();
}
});
}
}, 150, "checkScrolledToTopDelay");
}
}
},
// 触发加载更多时调用,from:toBottom-滑动到底部触发;click-点击加载更多触发
_onLoadingMore(from = "click") {
if (this.isIos && from === "toBottom" && !this.scrollToBottomBounceEnabled && this.scrollEnable) {
this.scrollEnable = false;
this.$nextTick(() => {
this.scrollEnable = true;
});
}
this._emitScrollEvent("scrolltolower");
if (this.refresherOnly || !this.loadingMoreEnabled || !(this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Default || this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Fail) || this.loading || this.showEmpty)
return;
if (!this.isIos && !this.refresherOnly && !this.usePageScroll) {
const currentTimestamp = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime();
if (this.loadingMoreTimeStamp > 0 && currentTimestamp - this.loadingMoreTimeStamp < 100) {
this.loadingMoreTimeStamp = 0;
return;
}
}
this._doLoadingMore();
},
// 处理开始加载更多
_doLoadingMore() {
if (this.pageNo >= this.defaultPageNo && this.loadingStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore) {
this.pageNo++;
this._startLoading(false);
if (this.isLocalPaging) {
this._localPagingQueryList(this.pageNo, this.defaultPageSize, this.localPagingLoadingTime, (res) => {
this.completeByTotal(res, this.totalLocalPagingList.length);
this.queryFrom = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.LoadMore;
});
} else {
this._emitQuery(this.pageNo, this.defaultPageSize, uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.LoadMore);
this._callMyParentQuery();
}
this.loadingType = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.LoadMore;
}
},
// (预处理)判断当没有更多数据且分页内容未超出z-paging时是否显示没有更多数据的view
_preCheckShowNoMoreInside(newVal, scrollViewNode, pagingContainerNode) {
if (this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore && this.hideNoMoreByLimit > 0 && newVal.length) {
this.showLoadingMore = newVal.length > this.hideNoMoreByLimit;
} else if (this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore && this.hideNoMoreInside && newVal.length || this.insideMore && this.insideOfPaging !== false && newVal.length) {
this.$nextTick(() => {
this._checkShowNoMoreInside(newVal, scrollViewNode, pagingContainerNode);
});
if (this.insideMore && this.insideOfPaging !== false && newVal.length) {
this.showLoadingMore = newVal.length;
}
} else {
this.showLoadingMore = newVal.length;
}
},
// 判断当没有更多数据且分页内容未超出z-paging时是否显示没有更多数据的view
async _checkShowNoMoreInside(totalData, oldScrollViewNode, oldPagingContainerNode) {
try {
const scrollViewNode = oldScrollViewNode || await this._getNodeClientRect(".zp-scroll-view");
if (this.usePageScroll) {
if (scrollViewNode) {
const scrollViewTotalH = scrollViewNode[0].top + scrollViewNode[0].height;
this.insideOfPaging = scrollViewTotalH < this.windowHeight;
if (this.hideNoMoreInside) {
this.showLoadingMore = !this.insideOfPaging;
}
this._updateInsideOfPaging();
}
} else {
const pagingContainerNode = oldPagingContainerNode || await this._getNodeClientRect(".zp-paging-container-content");
const pagingContainerH = pagingContainerNode ? pagingContainerNode[0].height : 0;
const scrollViewH = scrollViewNode ? scrollViewNode[0].height : 0;
this.insideOfPaging = pagingContainerH < scrollViewH;
if (this.hideNoMoreInside) {
this.showLoadingMore = !this.insideOfPaging;
}
this._updateInsideOfPaging();
}
} catch (e) {
this.insideOfPaging = !totalData.length;
if (this.hideNoMoreInside) {
this.showLoadingMore = !this.insideOfPaging;
}
this._updateInsideOfPaging();
}
},
// 是否要展示上拉加载更多view
_showLoadingMore(type) {
if (!this.showLoadingMoreWhenReload && (!(this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Default ? this.nShowBottom : true) || !this.realTotalData.length))
return false;
if ((!this.showLoadingMoreWhenReload || this.isUserPullDown || this.loadingStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Loading) && !this.showLoadingMore || !this.loadingMoreEnabled && (!this.showLoadingMoreWhenReload || this.isUserPullDown || this.loadingStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Loading) || this.refresherOnly) {
return false;
}
if (this.useChatRecordMode && type !== "Loading")
return false;
if (!this.zSlots)
return false;
if (type === "Custom") {
return this.showDefaultLoadingMoreText && !(this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore && !this.showLoadingMoreNoMoreView);
}
const res = this.loadingStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More[type] && this.zSlots[`loadingMore${type}`] && (type === "NoMore" ? this.showLoadingMoreNoMoreView : true);
return res;
}
}
};
exports.loadMoreModule = loadMoreModule;
//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/load-more.js.map
@@ -1,94 +0,0 @@
"use strict";
const common_vendor = require("../../../../../../common/vendor.js");
const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js");
const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js");
const loadingModule = {
props: {
// 第一次加载后自动隐藏loading slot,默认为是
autoHideLoadingAfterFirstLoaded: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoHideLoadingAfterFirstLoaded", true)
},
// loading slot是否铺满屏幕并固定,默认为否
loadingFullFixed: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingFullFixed", false)
},
// 是否自动显示系统Loading:即uni.showLoading,若开启则将在刷新列表时(调用reload、refresh时)显示,下拉刷新和滚动到底部加载更多不会显示,默认为false。
autoShowSystemLoading: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoShowSystemLoading", false)
},
// 显示系统Loading时是否显示透明蒙层,防止触摸穿透,默认为是(H5、App、微信小程序、百度小程序有效)
systemLoadingMask: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("systemLoadingMask", true)
},
// 显示系统Loading时显示的文字,默认为"加载中"
systemLoadingText: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("systemLoadingText", null)
}
},
data() {
return {
loading: false,
loadingForNow: false
};
},
watch: {
// loading状态
loadingStatus(newVal) {
this.$emit("loadingStatusChange", newVal);
this.$nextTick(() => {
this.loadingStatusAfterRender = newVal;
});
if (this.useChatRecordMode) {
if (this.isFirstPage && (newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.NoMore || newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Fail)) {
this.isFirstPageAndNoMore = true;
return;
}
}
this.isFirstPageAndNoMore = false;
},
loading(newVal) {
if (newVal) {
this.loadingForNow = newVal;
}
}
},
computed: {
// 是否显示loading
showLoading() {
if (this.firstPageLoaded || !this.loading || !this.loadingForNow)
return false;
if (this.finalShowSystemLoading) {
common_vendor.index.showLoading({
title: this.finalSystemLoadingText,
mask: this.systemLoadingMask
});
}
return this.autoHideLoadingAfterFirstLoaded ? this.fromEmptyViewReload ? true : !this.pagingLoaded : this.loadingType === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher;
},
// 最终的是否显示系统loading
finalShowSystemLoading() {
return this.autoShowSystemLoading && this.loadingType === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher;
}
},
methods: {
// 处理开始加载更多状态
_startLoading(isReload = false) {
if (this.showLoadingMoreWhenReload && !this.isUserPullDown || !isReload) {
this.loadingStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.More.Loading;
}
this.loading = true;
},
// 停止系统loading和refresh
_endSystemLoadingAndRefresh() {
this.finalShowSystemLoading && common_vendor.index.hideLoading();
!this.useCustomRefresher && common_vendor.index.stopPullDownRefresh();
}
}
};
exports.loadingModule = loadingModule;
//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/loading.js.map
@@ -1,25 +0,0 @@
"use strict";
const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js");
const nvueModule = {
props: {},
data() {
return {
nRefresherLoading: false,
nListIsDragging: false,
nShowBottom: true,
nFixFreezing: false,
nShowRefresherReveal: false,
nLoadingMoreFixedHeight: false,
nShowRefresherRevealHeight: 0,
nOldShowRefresherRevealHeight: -1,
nRefresherWidth: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.rpx2px(750),
nF2Opacity: 0
};
},
computed: {},
mounted() {
},
methods: {}
};
exports.nvueModule = nvueModule;
//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/nvue.js.map
@@ -1,624 +0,0 @@
"use strict";
const common_vendor = require("../../../../../../common/vendor.js");
const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js");
const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js");
const refresherModule = {
props: {
// 下拉刷新的主题样式,支持blackwhite,默认black
refresherThemeStyle: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherThemeStyle", "")
},
// 自定义下拉刷新中左侧图标的样式
refresherImgStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherImgStyle", {})
},
// 自定义下拉刷新中右侧状态描述文字的样式
refresherTitleStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherTitleStyle", {})
},
// 自定义下拉刷新中右侧最后更新时间文字的样式(show-refresher-update-time为true时有效)
refresherUpdateTimeStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherUpdateTimeStyle", {})
},
// 在微信小程序和QQ小程序中,是否实时监听下拉刷新中进度,默认为否
watchRefresherTouchmove: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("watchRefresherTouchmove", false)
},
// 底部加载更多的主题样式,支持black,white,默认black
loadingMoreThemeStyle: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("loadingMoreThemeStyle", "")
},
// 是否只使用下拉刷新,设置为true后将关闭mounted自动请求数据、关闭滚动到底部加载更多,强制隐藏空数据图。默认为否
refresherOnly: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherOnly", false)
},
// 自定义下拉刷新默认状态下回弹动画时间,单位为毫秒,默认为100毫秒,nvue无效
refresherDefaultDuration: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherDefaultDuration", 100)
},
// 自定义下拉刷新结束以后延迟回弹的时间,单位为毫秒,默认为0
refresherCompleteDelay: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteDelay", 0)
},
// 自定义下拉刷新结束回弹动画时间,单位为毫秒,默认为300毫秒(refresherEndBounceEnabled为false时,refresherCompleteDuration为设定值的1/3)nvue无效
refresherCompleteDuration: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteDuration", 300)
},
// 自定义下拉刷新中是否允许列表滚动,默认为是
refresherRefreshingScrollable: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherRefreshingScrollable", true)
},
// 自定义下拉刷新结束状态下是否允许列表滚动,默认为否
refresherCompleteScrollable: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteScrollable", false)
},
// 是否使用自定义的下拉刷新,默认为是,即使用z-paging的下拉刷新。设置为false即代表使用uni scroll-view自带的下拉刷新,h5、App、微信小程序以外的平台不支持uni scroll-view自带的下拉刷新
useCustomRefresher: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useCustomRefresher", true)
},
// 自定义下拉刷新下拉帧率,默认为40,过高可能会出现抖动问题
refresherFps: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherFps", 40)
},
// 自定义下拉刷新允许触发的最大下拉角度,默认为40度,当下拉角度小于设定值时,自定义下拉刷新动画不会被触发
refresherMaxAngle: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherMaxAngle", 40)
},
// 自定义下拉刷新的角度由未达到最大角度变到达到最大角度时,是否继续下拉刷新手势,默认为否
refresherAngleEnableChangeContinued: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherAngleEnableChangeContinued", false)
},
// 自定义下拉刷新默认状态下的文字
refresherDefaultText: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherDefaultText", null)
},
// 自定义下拉刷新松手立即刷新状态下的文字
refresherPullingText: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherPullingText", null)
},
// 自定义下拉刷新刷新中状态下的文字
refresherRefreshingText: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherRefreshingText", null)
},
// 自定义下拉刷新刷新结束状态下的文字
refresherCompleteText: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteText", null)
},
// 自定义继续下拉进入二楼文字
refresherGoF2Text: {
type: [String, Object],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherGoF2Text", null)
},
// 自定义下拉刷新默认状态下的图片
refresherDefaultImg: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherDefaultImg", null)
},
// 自定义下拉刷新松手立即刷新状态下的图片,默认与refresherDefaultImg一致
refresherPullingImg: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherPullingImg", null)
},
// 自定义下拉刷新刷新中状态下的图片
refresherRefreshingImg: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherRefreshingImg", null)
},
// 自定义下拉刷新刷新结束状态下的图片
refresherCompleteImg: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherCompleteImg", null)
},
// 自定义下拉刷新刷新中状态下是否展示旋转动画
refresherRefreshingAnimated: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherRefreshingAnimated", true)
},
// 是否开启自定义下拉刷新刷新结束回弹效果,默认为是
refresherEndBounceEnabled: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherEndBounceEnabled", true)
},
// 是否开启自定义下拉刷新,默认为是
refresherEnabled: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherEnabled", true)
},
// 设置自定义下拉刷新阈值,默认为80rpx
refresherThreshold: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherThreshold", "80rpx")
},
// 设置系统下拉刷新默认样式,支持设置 black,white,none,none 表示不使用默认样式,默认为black
refresherDefaultStyle: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherDefaultStyle", "black")
},
// 设置自定义下拉刷新区域背景
refresherBackground: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherBackground", "transparent")
},
// 设置固定的自定义下拉刷新区域背景
refresherFixedBackground: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherFixedBackground", "transparent")
},
// 设置固定的自定义下拉刷新区域高度,默认为0
refresherFixedBacHeight: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherFixedBacHeight", 0)
},
// 设置自定义下拉刷新下拉超出阈值后继续下拉位移衰减的比例,范围0-1,值越大代表衰减越多。默认为0.65(nvue无效)
refresherOutRate: {
type: Number,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherOutRate", 0.65)
},
// 是否开启下拉进入二楼功能,默认为否
refresherF2Enabled: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherF2Enabled", false)
},
// 下拉进入二楼阈值,默认为200rpx
refresherF2Threshold: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherF2Threshold", "200rpx")
},
// 下拉进入二楼动画时间,单位为毫秒,默认为200毫秒
refresherF2Duration: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherF2Duration", 200)
},
// 下拉进入二楼状态松手后是否弹出二楼,默认为是
showRefresherF2: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showRefresherF2", true)
},
// 设置自定义下拉刷新下拉时实际下拉位移与用户下拉距离的比值,默认为0.75,即代表若用户下拉10px,则实际位移为7.5px(nvue无效)
refresherPullRate: {
type: Number,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherPullRate", 0.75)
},
// 是否显示最后更新时间,默认为否
showRefresherUpdateTime: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showRefresherUpdateTime", false)
},
// 如果需要区别不同页面的最后更新时间,请为不同页面的z-paging的`refresher-update-time-key`设置不同的字符串
refresherUpdateTimeKey: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherUpdateTimeKey", "default")
},
// 下拉刷新时下拉到“松手立即刷新”或“松手进入二楼”状态时是否使手机短振动,默认为否(h5无效)
refresherVibrate: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherVibrate", false)
},
// 下拉刷新时是否禁止下拉刷新view跟随用户触摸竖直移动,默认为否。注意此属性只是禁止下拉刷新view移动,其他下拉刷新逻辑依然会正常触发
refresherNoTransform: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("refresherNoTransform", false)
},
// 是否开启下拉刷新状态栏占位,适用于隐藏导航栏时,下拉刷新需要避开状态栏高度的情况,默认为否
useRefresherStatusBarPlaceholder: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useRefresherStatusBarPlaceholder", false)
}
},
data() {
return {
R: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher,
//下拉刷新状态
refresherStatus: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default,
refresherTouchstartY: 0,
lastRefresherTouchmove: null,
refresherReachMaxAngle: true,
refresherTransform: "translateY(0px)",
refresherTransition: "",
finalRefresherDefaultStyle: "black",
refresherRevealStackCount: 0,
refresherCompleteTimeout: null,
refresherCompleteSubTimeout: null,
refresherEndTimeout: null,
isTouchmovingTimeout: null,
refresherTriggered: false,
isTouchmoving: false,
isTouchEnded: false,
isUserPullDown: false,
privateRefresherEnabled: -1,
privateShowRefresherWhenReload: false,
customRefresherHeight: -1,
showCustomRefresher: false,
doRefreshAnimateAfter: false,
isRefresherInComplete: false,
showF2: false,
f2Transform: "",
pullDownTimeStamp: 0,
moveDis: 0,
oldMoveDis: 0,
currentDis: 0,
oldCurrentMoveDis: 0,
oldRefresherTouchmoveY: 0,
oldTouchDirection: "",
oldEmitedTouchDirection: "",
oldPullingDistance: -1,
refresherThresholdUpdateTag: 0
};
},
watch: {
refresherDefaultStyle: {
handler(newVal) {
if (newVal.length) {
this.finalRefresherDefaultStyle = newVal;
}
},
immediate: true
},
refresherStatus(newVal) {
newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Loading && this._cleanRefresherEndTimeout();
this.refresherVibrate && (newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.ReleaseToRefresh || newVal === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.GoF2) && this._doVibrateShort();
this.$emit("refresherStatusChange", newVal);
this.$emit("update:refresherStatus", newVal);
},
// 监听当前下拉刷新启用/禁用状态
refresherEnabled(newVal) {
!newVal && this.endRefresh();
}
},
computed: {
pullDownDisTimeStamp() {
return 1e3 / this.refresherFps;
},
refresherThresholdUnitConverted() {
return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(this.refresherThreshold, this.unit);
},
finalRefresherEnabled() {
if (this.useChatRecordMode)
return false;
if (this.privateRefresherEnabled === -1)
return this.refresherEnabled;
return this.privateRefresherEnabled === 1;
},
finalRefresherThreshold() {
let refresherThreshold = this.refresherThresholdUnitConverted;
let idDefault = false;
if (refresherThreshold === uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(80, this.unit)) {
idDefault = true;
if (this.showRefresherUpdateTime) {
refresherThreshold = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(120, this.unit);
}
}
if (idDefault && this.customRefresherHeight > 0)
return this.customRefresherHeight + this.finalRefresherThresholdPlaceholder;
return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(refresherThreshold) + this.finalRefresherThresholdPlaceholder;
},
finalRefresherF2Threshold() {
return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(this.refresherF2Threshold, this.unit));
},
finalRefresherThresholdPlaceholder() {
return this.useRefresherStatusBarPlaceholder ? this.statusBarHeight : 0;
},
finalRefresherFixedBacHeight() {
return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.refresherFixedBacHeight);
},
finalRefresherThemeStyle() {
return this.refresherThemeStyle.length ? this.refresherThemeStyle : this.defaultThemeStyle;
},
finalRefresherOutRate() {
let rate = this.refresherOutRate;
rate = Math.max(0, rate);
rate = Math.min(1, rate);
return rate;
},
finalRefresherPullRate() {
let rate = this.refresherPullRate;
rate = Math.max(0, rate);
return rate;
},
finalRefresherTransform() {
if (this.refresherNoTransform || this.refresherTransform === "translateY(0px)")
return "none";
return this.refresherTransform;
},
finalShowRefresherWhenReload() {
return this.showRefresherWhenReload || this.privateShowRefresherWhenReload;
},
finalRefresherTriggered() {
if (!(this.finalRefresherEnabled && !this.useCustomRefresher))
return false;
return this.refresherTriggered;
},
showRefresher() {
const showRefresher = this.finalRefresherEnabled || this.useCustomRefresher && !this.useChatRecordMode;
this.active && this.customRefresherHeight === -1 && showRefresher && this.updateCustomRefresherHeight();
return showRefresher;
},
hasTouchmove() {
return this.watchRefresherTouchmove;
}
},
methods: {
// 终止下拉刷新状态
endRefresh() {
this.totalData = this.realTotalData;
this._refresherEnd();
this._endSystemLoadingAndRefresh();
this._handleScrollViewBounce({ bounce: true });
this.$nextTick(() => {
this.refresherTriggered = false;
});
},
// 手动更新自定义下拉刷新view高度
updateCustomRefresherHeight() {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.$nextTick(this._updateCustomRefresherHeight));
},
// 关闭二楼
closeF2() {
this._handleCloseF2();
},
// 自定义下拉刷新被触发
_onRefresh(fromScrollView = false, isUserPullDown = true) {
if (fromScrollView && !(this.finalRefresherEnabled && !this.useCustomRefresher))
return;
this.$emit("onRefresh");
this.$emit("Refresh");
if (this.loading || this.isRefresherInComplete)
return;
this.loadingType = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher;
if (this.nShowRefresherReveal)
return;
this.isUserPullDown = isUserPullDown;
this.isUserReload = !isUserPullDown;
this._startLoading(true);
this.refresherTriggered = true;
if (this.reloadWhenRefresh && isUserPullDown) {
this.useChatRecordMode ? this._onLoadingMore("click") : this._reload(false, false, isUserPullDown);
}
},
// 自定义下拉刷新被复位
_onRestore() {
this.refresherTriggered = "restore";
this.$emit("onRestore");
this.$emit("Restore");
},
// 进一步处理touch开始结果
_handleRefresherTouchstart(touch) {
if (!this.loading && this.isTouchEnded) {
this.isTouchmoving = false;
}
this.loadingType = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher;
this.isTouchmovingTimeout && clearTimeout(this.isTouchmovingTimeout);
this.isTouchEnded = false;
this.refresherTransition = "";
this.refresherTouchstartY = touch.touchY;
this.$emit("refresherTouchstart", this.refresherTouchstartY);
this.lastRefresherTouchmove = touch;
this._cleanRefresherCompleteTimeout();
this._cleanRefresherEndTimeout();
},
// 非app-vue或微信小程序或QQ小程序或h5平台,使用js控制下拉刷新
// 进一步处理touch中结果
_handleRefresherTouchmove(moveDis, touch) {
this.refresherReachMaxAngle = true;
this.isTouchmovingTimeout && clearTimeout(this.isTouchmovingTimeout);
this.isTouchmoving = true;
this.isTouchEnded = false;
if (moveDis >= this.finalRefresherThreshold) {
this.refresherStatus = this.refresherF2Enabled && moveDis >= this.finalRefresherF2Threshold ? uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.GoF2 : uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.ReleaseToRefresh;
} else {
this.refresherStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default;
}
this.moveDis = moveDis;
},
// 进一步处理touch结束结果
_handleRefresherTouchend(moveDis) {
this.isTouchmovingTimeout && clearTimeout(this.isTouchmovingTimeout);
this.refresherReachMaxAngle = true;
this.isTouchEnded = true;
const refresherThreshold = this.finalRefresherThreshold;
if (moveDis >= refresherThreshold && (this.refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.ReleaseToRefresh || this.refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.GoF2)) {
if (this.refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.GoF2) {
this._handleGoF2();
this._refresherEnd();
} else {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this._emitTouchmove({ pullingDistance: refresherThreshold, dy: this.moveDis - refresherThreshold });
}, 0.1);
this.moveDis = refresherThreshold;
this.refresherStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Loading;
this._doRefresherLoad();
}
} else {
this._refresherEnd();
this.isTouchmovingTimeout = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this.isTouchmoving = false;
}, this.refresherDefaultDuration);
}
this.scrollEnable = true;
this.$emit("refresherTouchend", moveDis);
},
// 处理列表触摸开始事件
_handleListTouchstart() {
if (this.useChatRecordMode && this.autoHideKeyboardWhenChat) {
common_vendor.index.hideKeyboard();
this.$emit("hidedKeyboard");
}
},
// 处理scroll-view bounce是否生效
_handleScrollViewBounce({ bounce }) {
if (!this.usePageScroll && !this.scrollToTopBounceEnabled) {
if (this.wxsScrollTop <= 5) {
this.refresherTransition = "";
this.scrollEnable = bounce;
} else if (bounce) {
this.scrollEnable = bounce;
}
}
},
// wxs正在下拉状态改变处理
_handleWxsPullingDownStatusChange(onPullingDown) {
this.wxsOnPullingDown = onPullingDown;
if (onPullingDown && !this.useChatRecordMode) {
this.renderPropScrollTop = 0;
}
},
// wxs正在下拉处理
_handleWxsPullingDown({ moveDis, diffDis }) {
this._emitTouchmove({ pullingDistance: moveDis, dy: diffDis });
},
// wxs触摸方向改变
_handleTouchDirectionChange({ direction }) {
this.$emit("touchDirectionChange", direction);
},
// wxs通知更新其props
_handlePropUpdate() {
this.wxsPropType = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime().toString();
},
// 下拉刷新结束
_refresherEnd(shouldEndLoadingDelay = true, fromAddData = false, isUserPullDown = false, setLoading = true) {
if (this.loadingType === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher) {
const refresherCompleteDelay = fromAddData && (isUserPullDown || this.showRefresherWhenReload) ? this.refresherCompleteDelay : 0;
const refresherStatus = refresherCompleteDelay > 0 ? uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Complete : uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default;
if (this.finalShowRefresherWhenReload) {
const stackCount = this.refresherRevealStackCount;
this.refresherRevealStackCount--;
if (stackCount > 1)
return;
}
this._cleanRefresherEndTimeout();
this.refresherEndTimeout = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this.refresherStatus = refresherStatus;
if (refresherStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Complete) {
this.isRefresherInComplete = false;
}
}, this.refresherStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default && refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default ? this.refresherCompleteDuration : 0);
if (refresherCompleteDelay > 0) {
this.isRefresherInComplete = true;
}
this._cleanRefresherCompleteTimeout();
this.refresherCompleteTimeout = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
let animateDuration = 1;
const animateType = this.refresherEndBounceEnabled && fromAddData ? "cubic-bezier(0.19,1.64,0.42,0.72)" : "linear";
if (fromAddData) {
animateDuration = this.refresherEndBounceEnabled ? this.refresherCompleteDuration / 1e3 : this.refresherCompleteDuration / 3e3;
}
this.refresherTransition = `transform ${fromAddData ? animateDuration : this.refresherDefaultDuration / 1e3}s ${animateType}`;
this.wxsPropType = this.refresherTransition + "end" + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime();
this.moveDis = 0;
if (refresherStatus === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Complete) {
if (this.refresherCompleteSubTimeout) {
clearTimeout(this.refresherCompleteSubTimeout);
this.refresherCompleteSubTimeout = null;
}
this.refresherCompleteSubTimeout = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this.$nextTick(() => {
this.refresherStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Default;
this.isRefresherInComplete = false;
});
}, animateDuration * 800);
}
this._emitTouchmove({ pullingDistance: 0, dy: this.moveDis });
}, refresherCompleteDelay);
}
if (setLoading) {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.loading = false, shouldEndLoadingDelay ? 10 : 0);
isUserPullDown && this._onRestore();
}
},
// 处理进入二楼
_handleGoF2() {
if (this.showF2 || !this.refresherF2Enabled)
return;
this.$emit("refresherF2Change", "go");
if (!this.showRefresherF2)
return;
this.f2Transform = `translateY(${-this.superContentHeight}px)`;
this.showF2 = true;
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this.f2Transform = "translateY(0px)";
}, 100, "f2ShowDelay");
},
// 处理退出二楼
_handleCloseF2() {
if (!this.showF2 || !this.refresherF2Enabled)
return;
this.$emit("refresherF2Change", "close");
if (!this.showRefresherF2)
return;
this.f2Transform = `translateY(${-this.superContentHeight}px)`;
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this.showF2 = false;
this.nF2Opacity = 0;
}, this.refresherF2Duration, "f2CloseDelay");
},
// 模拟用户手动触发下拉刷新
_doRefresherRefreshAnimate() {
this._cleanRefresherCompleteTimeout();
const doRefreshAnimateAfter = !this.doRefreshAnimateAfter && this.finalShowRefresherWhenReload && this.customRefresherHeight === -1 && this.refresherThreshold === uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.addUnit(80, this.unit);
if (doRefreshAnimateAfter) {
this.doRefreshAnimateAfter = true;
return;
}
this.refresherRevealStackCount++;
this.wxsPropType = "begin" + uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime();
this.moveDis = this.finalRefresherThreshold;
this.refresherStatus = uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Loading;
this.isTouchmoving = true;
this.isTouchmovingTimeout && clearTimeout(this.isTouchmovingTimeout);
this._doRefresherLoad(false);
},
// 触发下拉刷新
_doRefresherLoad(isUserPullDown = true) {
this._onRefresh(false, isUserPullDown);
this.loading = true;
},
// 更新自定义下拉刷新view高度
_updateCustomRefresherHeight() {
this._getNodeClientRect(".zp-custom-refresher-slot-view").then((res) => {
this.customRefresherHeight = res ? res[0].height : 0;
this.showCustomRefresher = this.customRefresherHeight > 0;
if (this.doRefreshAnimateAfter) {
this.doRefreshAnimateAfter = false;
this._doRefresherRefreshAnimate();
}
});
},
// emit pullingDown事件
_emitTouchmove(e) {
e.viewHeight = this.finalRefresherThreshold;
e.rate = e.viewHeight > 0 ? e.pullingDistance / e.viewHeight : 0;
this.hasTouchmove && this.oldPullingDistance !== e.pullingDistance && this.$emit("refresherTouchmove", e);
this.oldPullingDistance = e.pullingDistance;
},
// 清除refresherCompleteTimeout
_cleanRefresherCompleteTimeout() {
this.refresherCompleteTimeout = this._cleanTimeout(this.refresherCompleteTimeout);
},
// 清除refresherEndTimeout
_cleanRefresherEndTimeout() {
this.refresherEndTimeout = this._cleanTimeout(this.refresherEndTimeout);
}
}
};
exports.refresherModule = refresherModule;
//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/refresher.js.map
@@ -1,428 +0,0 @@
"use strict";
const common_vendor = require("../../../../../../common/vendor.js");
const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js");
const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js");
const scrollerModule = {
props: {
// 使用页面滚动,默认为否,当设置为是时则使用页面的滚动而非此组件内部的scroll-view的滚动,使用页面滚动时z-paging无需设置确定的高度且对于长列表展示性能更高,但配置会略微繁琐
usePageScroll: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("usePageScroll", false)
},
// 是否可以滚动,使用内置scroll-view和nvue时有效,默认为是
scrollable: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollable", true)
},
// 控制是否出现滚动条,默认为是
showScrollbar: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("showScrollbar", true)
},
// 是否允许横向滚动,默认为否
scrollX: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollX", false)
},
// iOS设备上滚动到顶部时是否允许回弹效果,默认为否。关闭回弹效果后可使滚动到顶部与下拉刷新更连贯,但是有吸顶view时滚动到顶部时可能出现抖动。
scrollToTopBounceEnabled: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollToTopBounceEnabled", false)
},
// iOS设备上滚动到底部时是否允许回弹效果,默认为是。
scrollToBottomBounceEnabled: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollToBottomBounceEnabled", true)
},
// 在设置滚动条位置时使用动画过渡,默认为否
scrollWithAnimation: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollWithAnimation", false)
},
// 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素
scrollIntoView: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("scrollIntoView", "")
}
},
data() {
return {
scrollTop: 0,
oldScrollTop: 0,
scrollLeft: 0,
oldScrollLeft: 0,
scrollViewStyle: {},
scrollViewContainerStyle: {},
scrollViewInStyle: {},
pageScrollTop: -1,
scrollEnable: true,
privateScrollWithAnimation: -1,
cacheScrollNodeHeight: -1,
superContentHeight: 0
};
},
watch: {
oldScrollTop(newVal) {
!this.usePageScroll && this._scrollTopChange(newVal, false);
},
pageScrollTop(newVal) {
this.usePageScroll && this._scrollTopChange(newVal, true);
},
usePageScroll: {
handler(newVal) {
this.loaded && this.autoHeight && this._setAutoHeight(!newVal);
},
immediate: true
},
finalScrollTop(newVal) {
this.renderPropScrollTop = newVal < 6 ? 0 : 10;
}
},
computed: {
finalScrollWithAnimation() {
if (this.privateScrollWithAnimation !== -1) {
return this.privateScrollWithAnimation === 1;
}
return this.scrollWithAnimation;
},
finalScrollViewStyle() {
if (this.superContentZIndex != 1) {
this.scrollViewStyle["z-index"] = this.superContentZIndex;
this.scrollViewStyle["position"] = "relative";
}
return this.scrollViewStyle;
},
finalScrollTop() {
return this.usePageScroll ? this.pageScrollTop : this.oldScrollTop;
},
// 当前是否是旧版webview
finalIsOldWebView() {
return this.isOldWebView && !this.usePageScroll;
},
// 当前scroll-view/list-view是否允许滚动
finalScrollable() {
return this.scrollable && !this.usePageScroll && this.scrollEnable && (this.refresherCompleteScrollable ? true : this.refresherStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Complete) && (this.refresherRefreshingScrollable ? true : this.refresherStatus !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.Refresher.Loading);
}
},
methods: {
// 滚动到顶部,animate为是否展示滚动动画,默认为是
scrollToTop(animate, checkReverse = true) {
if (this.useChatRecordMode && checkReverse && !this.isChatRecordModeAndNotInversion) {
this.scrollToBottom(animate, false);
return;
}
this.$nextTick(() => {
this._scrollToTop(animate, false);
});
},
// 滚动到底部,animate为是否展示滚动动画,默认为是
scrollToBottom(animate, checkReverse = true) {
if (this.useChatRecordMode && checkReverse && !this.isChatRecordModeAndNotInversion) {
this.scrollToTop(animate, false);
return;
}
this.$nextTick(() => {
this._scrollToBottom(animate);
});
},
// 滚动到指定view(vue中有效)。sel为需要滚动的view的id值,不包含"#"offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
scrollIntoViewById(sel, offset, animate) {
this._scrollIntoView(sel, offset, animate);
},
// 滚动到指定view(vue中有效)。nodeTop为需要滚动的view的top值(通过uni.createSelectorQuery()获取)offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
scrollIntoViewByNodeTop(nodeTop, offset, animate) {
this.scrollTop = this.oldScrollTop;
this.$nextTick(() => {
this._scrollIntoViewByNodeTop(nodeTop, offset, animate);
});
},
// y轴滚动到指定位置(vue中有效)。y为与顶部的距离,单位为px;offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
scrollToY(y, offset, animate) {
this.scrollTop = this.oldScrollTop;
this.$nextTick(() => {
this._scrollToY(y, offset, animate);
});
},
// x轴滚动到指定位置(非页面滚动且在vue中有效)。x为与左侧的距离,单位为px;offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
scrollToX(x, offset, animate) {
this.scrollLeft = this.oldScrollLeft;
this.$nextTick(() => {
this._scrollToX(x, offset, animate);
});
},
// 滚动到指定view(nvue中和虚拟列表中有效)。index为需要滚动的view的index(第几个,从0开始)offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
scrollIntoViewByIndex(index, offset, animate) {
if (index >= this.realTotalData.length) {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("当前滚动的index超出已渲染列表长度,请先通过refreshToPage加载到对应index页并等待渲染成功后再调用此方法!");
return;
}
this.$nextTick(() => {
if (this.finalUseVirtualList) {
const isCellFixed = this.cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Fixed;
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
if (this.finalUseVirtualList) {
const scrollTop = isCellFixed ? this.virtualCellHeight * index : this.virtualHeightCacheList[index].lastTotalHeight;
this.scrollToY(scrollTop, offset, animate);
}
}, isCellFixed ? 0 : 100);
}
});
},
// 滚动到指定view(nvue中有效)。view为需要滚动的view(通过`this.$refs.xxx`获取),不包含"#"offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
scrollIntoViewByView(view, offset, animate) {
this._scrollIntoView(view, offset, animate);
},
// 当使用页面滚动并且自定义下拉刷新时,请在页面的onPageScroll中调用此方法,告知z-paging当前的pageScrollTop,否则会导致在任意位置都可以下拉刷新
updatePageScrollTop(value) {
this.pageScrollTop = value;
},
// 当使用页面滚动并且设置了slot="top"时,默认初次加载会自动获取其高度,并使内部容器下移,当slot="top"的view高度动态改变时,在其高度需要更新时调用此方法
updatePageScrollTopHeight() {
this._updatePageScrollTopOrBottomHeight("top");
},
// 当使用页面滚动并且设置了slot="bottom"时,默认初次加载会自动获取其高度,并使内部容器下移,当slot="bottom"的view高度动态改变时,在其高度需要更新时调用此方法
updatePageScrollBottomHeight() {
this._updatePageScrollTopOrBottomHeight("bottom");
},
// 更新slot="left"和slot="right"宽度,当slot="left"或slot="right"宽度动态改变时调用
updateLeftAndRightWidth() {
if (!this.finalIsOldWebView)
return;
this.$nextTick(() => this._updateLeftAndRightWidth(this.scrollViewContainerStyle, "zp-page"));
},
// 更新z-paging内置scroll-view的scrollTop
updateScrollViewScrollTop(scrollTop, animate = true) {
this._updatePrivateScrollWithAnimation(animate);
this.scrollTop = this.oldScrollTop;
this.$nextTick(() => {
this.scrollTop = scrollTop;
this.oldScrollTop = this.scrollTop;
});
},
// 当滚动到顶部时
_onScrollToUpper() {
this._emitScrollEvent("scrolltoupper");
this.$emit("scrollTopChange", 0);
this.$nextTick(() => {
this.oldScrollTop = 0;
});
},
// 当滚动到底部时
_onScrollToLower(e) {
(!e.detail || !e.detail.direction || e.detail.direction === "bottom") && this.toBottomLoadingMoreEnabled && this._onLoadingMore(this.useChatRecordMode ? "click" : "toBottom");
},
// 滚动到顶部
_scrollToTop(animate = true, isPrivate = true) {
if (this.usePageScroll) {
this.$nextTick(() => {
common_vendor.index.pageScrollTo({
scrollTop: 0,
duration: animate ? 100 : 0
});
});
return;
}
this._updatePrivateScrollWithAnimation(animate);
this.scrollTop = this.oldScrollTop;
this.$nextTick(() => {
this.scrollTop = 0;
this.oldScrollTop = this.scrollTop;
});
},
// 滚动到底部
async _scrollToBottom(animate = true) {
if (this.usePageScroll) {
this.$nextTick(() => {
common_vendor.index.pageScrollTo({
scrollTop: Number.MAX_VALUE,
duration: animate ? 100 : 0
});
});
return;
}
try {
this._updatePrivateScrollWithAnimation(animate);
const pagingContainerNode = await this._getNodeClientRect(".zp-paging-container");
const scrollViewNode = await this._getNodeClientRect(".zp-scroll-view");
const pagingContainerH = pagingContainerNode ? pagingContainerNode[0].height : 0;
const scrollViewH = scrollViewNode ? scrollViewNode[0].height : 0;
if (pagingContainerH > scrollViewH) {
this.scrollTop = this.oldScrollTop;
this.$nextTick(() => {
this.scrollTop = pagingContainerH - scrollViewH + this.virtualPlaceholderTopHeight;
this.oldScrollTop = this.scrollTop;
});
}
} catch (e) {
}
},
// 滚动到指定view
_scrollIntoView(sel, offset = 0, animate = false, finishCallback) {
try {
this.scrollTop = this.oldScrollTop;
this.$nextTick(() => {
this._getNodeClientRect("#" + sel.replace("#", ""), this.$parent).then((node) => {
if (node) {
let nodeTop = node[0].top;
this._scrollIntoViewByNodeTop(nodeTop, offset, animate);
finishCallback && finishCallback();
}
});
});
} catch (e) {
}
},
// 通过nodeTop滚动到指定view
_scrollIntoViewByNodeTop(nodeTop, offset = 0, animate = false) {
if (this.isChatRecordModeAndInversion) {
this._getNodeClientRect(".zp-scroll-view").then((sNode) => {
if (sNode) {
this._scrollToY(sNode[0].height - nodeTop, offset, animate, true);
}
});
} else {
this._scrollToY(nodeTop, offset, animate, true);
}
},
// y轴滚动到指定位置
_scrollToY(y, offset = 0, animate = false, addScrollTop = false) {
this._updatePrivateScrollWithAnimation(animate);
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
if (this.usePageScroll) {
if (addScrollTop && this.pageScrollTop !== -1) {
y += this.pageScrollTop;
}
const scrollTop = y - offset;
common_vendor.index.pageScrollTo({
scrollTop,
duration: animate ? 100 : 0
});
} else {
if (addScrollTop) {
y += this.oldScrollTop;
}
this.scrollTop = y - offset;
}
}, 10);
},
// x轴滚动到指定位置
_scrollToX(x, offset = 0, animate = false) {
this._updatePrivateScrollWithAnimation(animate);
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
if (!this.usePageScroll) {
this.scrollLeft = x - offset;
} else {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("使用页面滚动时不支持scrollToX");
}
}, 10);
},
// scroll-view滚动中
_scroll(e) {
this.$emit("scroll", e);
const { scrollTop, scrollLeft } = e.detail;
this.finalUseVirtualList && this._updateVirtualScroll(scrollTop, this.oldScrollTop - scrollTop);
this.oldScrollTop = scrollTop;
this.oldScrollLeft = scrollLeft;
const scrollDiff = e.detail.scrollHeight - this.oldScrollTop;
!this.isIos && this._checkScrolledToBottom(scrollDiff);
},
// emit scrolltolower/scrolltoupper事件
_emitScrollEvent(type) {
const reversedType = type === "scrolltolower" ? "scrolltoupper" : "scrolltolower";
const eventType = this.useChatRecordMode && !this.isChatRecordModeAndNotInversion ? reversedType : type;
this.$emit(eventType);
},
// 更新内置的scroll-view是否启用滚动动画
_updatePrivateScrollWithAnimation(animate) {
this.privateScrollWithAnimation = animate ? 1 : 0;
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.$nextTick(() => {
this.privateScrollWithAnimation = -1;
}), 100, "updateScrollWithAnimationDelay");
},
// 检测scrollView是否要铺满屏幕
_doCheckScrollViewShouldFullHeight(totalData) {
if (this.autoFullHeight && this.usePageScroll && this.isTotalChangeFromAddData) {
this.$nextTick(() => {
this._checkScrollViewShouldFullHeight((scrollViewNode, pagingContainerNode) => {
this._preCheckShowNoMoreInside(totalData, scrollViewNode, pagingContainerNode);
});
});
} else {
this._preCheckShowNoMoreInside(totalData);
}
},
// 检测z-paging是否要全屏覆盖(当使用页面滚动并且不满全屏时,默认z-paging需要铺满全屏,避免数据过少时内部的empty-view无法正确展示)
async _checkScrollViewShouldFullHeight(callback) {
try {
const scrollViewNode = await this._getNodeClientRect(".zp-scroll-view");
const pagingContainerNode = await this._getNodeClientRect(".zp-paging-container-content");
if (!scrollViewNode || !pagingContainerNode)
return;
const scrollViewHeight = pagingContainerNode[0].height;
const scrollViewTop = scrollViewNode[0].top;
if (this.isAddedData && scrollViewHeight + scrollViewTop <= this.windowHeight) {
this._setAutoHeight(true, scrollViewNode);
callback(scrollViewNode, pagingContainerNode);
} else {
this._setAutoHeight(false);
callback(null, null);
}
} catch (e) {
callback(null, null);
}
},
// 更新缓存中z-paging整个内容容器高度
async _updateCachedSuperContentHeight() {
const superContentNode = await this._getNodeClientRect(".z-paging-content");
if (superContentNode) {
this.superContentHeight = superContentNode[0].height;
}
},
// scrollTop改变时触发
_scrollTopChange(newVal, isPageScrollTop) {
this.$emit("scrollTopChange", newVal);
this.$emit("update:scrollTop", newVal);
this._checkShouldShowBackToTop(newVal);
const scrollTop = newVal > 5 ? 6 : 0;
if (isPageScrollTop && this.wxsPageScrollTop !== scrollTop) {
this.wxsPageScrollTop = scrollTop;
} else if (!isPageScrollTop && this.wxsScrollTop !== scrollTop) {
this.wxsScrollTop = scrollTop;
if (scrollTop > 6) {
this.scrollEnable = true;
}
}
},
// 更新使用页面滚动时slot="top"或"bottom"插入view的高度
_updatePageScrollTopOrBottomHeight(type) {
if (!this.usePageScroll)
return;
this._doCheckScrollViewShouldFullHeight(this.realTotalData);
const node = `.zp-page-${type}`;
const marginText = `margin${type.slice(0, 1).toUpperCase() + type.slice(1)}`;
let safeAreaInsetBottomAdd = this.safeAreaInsetBottom;
this.$nextTick(() => {
let delayTime = 0;
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this._getNodeClientRect(node).then((res) => {
if (res) {
let pageScrollNodeHeight = res[0].height;
if (type === "bottom") {
if (safeAreaInsetBottomAdd) {
pageScrollNodeHeight += this.safeAreaBottom;
}
} else {
this.cacheTopHeight = pageScrollNodeHeight;
}
this.$set(this.scrollViewStyle, marginText, `${pageScrollNodeHeight}px`);
} else if (safeAreaInsetBottomAdd) {
this.$set(this.scrollViewStyle, marginText, `${this.safeAreaBottom}px`);
}
});
}, delayTime);
});
}
}
};
exports.scrollerModule = scrollerModule;
//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/scroller.js.map
@@ -1,499 +0,0 @@
"use strict";
const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("../z-paging-utils.js");
const uni_modules_zPaging_components_zPaging_js_zPagingConstant = require("../z-paging-constant.js");
const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("../z-paging-enum.js");
const virtualListModule = {
props: {
// 是否使用虚拟列表,默认为否
useVirtualList: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useVirtualList", false)
},
// 在使用虚拟列表时,是否使用兼容模式,默认为否
useCompatibilityMode: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useCompatibilityMode", false)
},
// 使用兼容模式时传递的附加数据
extraData: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("extraData", {})
},
// 是否在z-paging内部循环渲染列表(内置列表),默认为否。若use-virtual-list为true,则此项恒为true
useInnerList: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useInnerList", false)
},
// 强制关闭inner-list,默认为false,如果为true将强制关闭innerList,适用于开启了虚拟列表后需要强制关闭inner-list的情况
forceCloseInnerList: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("forceCloseInnerList", false)
},
// 内置列表cell的key名称,仅nvue有效,在nvue中开启use-inner-list时必须填此项
cellKeyName: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("cellKeyName", "")
},
// innerList样式
innerListStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("innerListStyle", {})
},
// innerCell样式
innerCellStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("innerCellStyle", {})
},
// 预加载的列表可视范围(列表高度)页数,默认为12,即预加载当前页及上下各12页的cell。此数值越大,则虚拟列表中加载的dom越多,内存消耗越大(会维持在一个稳定值),但增加预加载页面数量可缓解快速滚动短暂白屏问题
preloadPage: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("preloadPage", 12),
validator: (value) => {
if (value <= 0)
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("preload-page必须大于0");
return value > 0;
}
},
// 虚拟列表cell高度模式,默认为fixed,也就是每个cell高度完全相同,将以第一个cell高度为准进行计算。可选值【dynamic】,即代表高度是动态非固定的,【dynamic】性能低于【fixed】。
cellHeightMode: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("cellHeightMode", uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Fixed)
},
// 固定的cell高度,cellHeightMode=fixed才有效,若设置了值,则不计算第一个cell高度而使用设置的cell高度
fixedCellHeight: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("fixedCellHeight", 0)
},
// 虚拟列表列数,默认为1。常用于每行有多列的情况,例如每行有2列数据,需要将此值设置为2
virtualListCol: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("virtualListCol", 1)
},
// 虚拟列表scroll取样帧率,默认为80,过低容易出现白屏问题,过高容易出现卡顿问题
virtualScrollFps: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("virtualScrollFps", 80)
},
// 虚拟列表cell id的前缀,适用于一个页面有多个虚拟列表的情况,用以区分不同虚拟列表cell的id,注意:请勿传数字或以数字开头的字符串。如设置为list1,则cell的id应为:list1-zp-id-${item.zp_index}
virtualCellIdPrefix: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("virtualCellIdPrefix", "")
},
// 虚拟列表是否使用swiper-item包裹,默认为否,此属性为了解决vue3+(微信小程序或QQ小程序)中,使用非内置列表写法时,若z-paging在swiper-item内存在无法获取slot插入的cell高度进而导致虚拟列表失败的问题
// 仅vue3+(微信小程序或QQ小程序)+非内置列表写法虚拟列表有效,其他情况此属性设置任何值都无效,所以如果您在swiper-item内使用z-paging的非内置虚拟列表写法,将此属性设置为true即可
virtualInSwiperSlot: {
type: Boolean,
default: false
}
},
data() {
return {
virtualListKey: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getInstanceId(),
virtualPageHeight: 0,
virtualCellHeight: 0,
virtualScrollTimeStamp: 0,
virtualList: [],
virtualPlaceholderTopHeight: 0,
virtualPlaceholderBottomHeight: 0,
virtualTopRangeIndex: 0,
virtualBottomRangeIndex: 0,
lastVirtualTopRangeIndex: 0,
lastVirtualBottomRangeIndex: 0,
virtualItemInsertedCount: 0,
virtualHeightCacheList: [],
getCellHeightRetryCount: {
fixed: 0,
dynamic: 0
},
pagingOrgTop: -1,
updateVirtualListFromDataChange: false
};
},
watch: {
// 监听总数据的改变,刷新虚拟列表布局
realTotalData() {
this.updateVirtualListRender();
},
// 监听虚拟列表渲染数组的改变并emit
virtualList(newVal) {
this.$emit("update:virtualList", newVal);
this.$emit("virtualListChange", newVal);
},
// 监听虚拟列表顶部占位高度改变并emit
virtualPlaceholderTopHeight(newVal) {
this.$emit("virtualTopHeightChange", newVal);
}
},
computed: {
virtualCellIndexKey() {
return uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.listCellIndexKey;
},
finalUseVirtualList() {
if (this.useVirtualList && this.usePageScroll) {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.consoleErr("使用页面滚动时,开启虚拟列表无效!");
}
return this.useVirtualList && !this.usePageScroll;
},
finalUseInnerList() {
return this.useInnerList || this.finalUseVirtualList && !this.forceCloseInnerList;
},
finalCellKeyName() {
return this.cellKeyName;
},
finalVirtualPageHeight() {
return this.virtualPageHeight > 0 ? this.virtualPageHeight : this.windowHeight;
},
finalFixedCellHeight() {
return uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.fixedCellHeight);
},
fianlVirtualCellIdPrefix() {
const prefix = this.virtualCellIdPrefix ? this.virtualCellIdPrefix + "-" : "";
return prefix + "zp-id";
},
finalPlaceholderTopHeightStyle() {
return {};
},
virtualRangePageHeight() {
return this.finalVirtualPageHeight * this.preloadPage;
},
virtualScrollDisTimeStamp() {
return 1e3 / this.virtualScrollFps;
}
},
methods: {
// 在使用动态高度虚拟列表时,若在列表数组中需要插入某个item,需要调用此方法;item:需要插入的itemindex:插入的cell位置,若index为2,则插入的item在原list的index=1之后,index从0开始
doInsertVirtualListItem(item, index) {
if (this.cellHeightMode !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic)
return;
this.realTotalData.splice(index, 0, item);
this.realTotalData = [...this.realTotalData];
this.virtualItemInsertedCount++;
if (!item || Object.prototype.toString.call(item) !== "[object Object]") {
item = { item };
}
const cellIndexKey = this.virtualCellIndexKey;
item[cellIndexKey] = `custom-${this.virtualItemInsertedCount}`;
item[uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.listCellIndexUniqueKey] = `${this.virtualListKey}-${item[cellIndexKey]}`;
this.$nextTick(async () => {
let retryCount = 0;
while (retryCount <= 10) {
await uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.wait(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime);
const cellNode = await this._getVirtualCellNodeByIndex(item[cellIndexKey]);
if (!cellNode) {
retryCount++;
continue;
}
const currentHeight = cellNode ? cellNode[0].height : 0;
const lastHeightCache = this.virtualHeightCacheList[index - 1];
const lastTotalHeight = lastHeightCache ? lastHeightCache.totalHeight : 0;
this.virtualHeightCacheList.splice(index, 0, {
height: currentHeight,
lastTotalHeight,
totalHeight: lastTotalHeight + currentHeight
});
for (let i = index + 1; i < this.virtualHeightCacheList.length; i++) {
const thisNode = this.virtualHeightCacheList[i];
thisNode.lastTotalHeight += currentHeight;
thisNode.totalHeight += currentHeight;
}
this._updateVirtualScroll(this.oldScrollTop);
break;
}
});
},
// 在使用动态高度虚拟列表时,手动更新指定cell的缓存高度(当cell高度在初始化之后再次改变后调用);index:需要更新的cell在列表中的位置,从0开始
didUpdateVirtualListCell(index) {
if (this.cellHeightMode !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic)
return;
const currentNode = this.virtualHeightCacheList[index];
this.$nextTick(() => {
this._getVirtualCellNodeByIndex(index).then((cellNode) => {
const cellNodeHeight = cellNode ? cellNode[0].height : 0;
const heightDis = cellNodeHeight - currentNode.height;
currentNode.height = cellNodeHeight;
currentNode.totalHeight = currentNode.lastTotalHeight + cellNodeHeight;
for (let i = index + 1; i < this.virtualHeightCacheList.length; i++) {
const thisNode = this.virtualHeightCacheList[i];
thisNode.totalHeight += heightDis;
thisNode.lastTotalHeight += heightDis;
}
});
});
},
// 在使用动态高度虚拟列表时,若删除了列表数组中的某个item,需要调用此方法以更新高度缓存数组;index:删除的cell在列表中的位置,从0开始
didDeleteVirtualListCell(index) {
if (this.cellHeightMode !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic)
return;
const currentNode = this.virtualHeightCacheList[index];
for (let i = index + 1; i < this.virtualHeightCacheList.length; i++) {
const thisNode = this.virtualHeightCacheList[i];
thisNode.totalHeight -= currentNode.height;
thisNode.lastTotalHeight -= currentNode.height;
}
this.virtualHeightCacheList.splice(index, 1);
},
// 手动触发虚拟列表渲染更新,可用于解决例如修改了虚拟列表数组中元素,但展示未更新的情况
updateVirtualListRender() {
if (this.finalUseVirtualList) {
this.updateVirtualListFromDataChange = true;
this.$nextTick(() => {
this.getCellHeightRetryCount.fixed = 0;
if (this.realTotalData.length) {
this.cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Fixed && this.isFirstPage && this._updateFixedCellHeight();
} else {
this._resetDynamicListState(!this.isUserPullDown);
}
this._updateVirtualScroll(this.oldScrollTop);
});
}
},
// 初始化虚拟列表
_virtualListInit() {
this.$nextTick(() => {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this._getNodeClientRect(".zp-scroll-view").then((node) => {
if (node) {
this.pagingOrgTop = node[0].top;
this.virtualPageHeight = node[0].height;
}
});
});
});
},
// cellHeightMode为fixed时获取第一个cell高度
_updateFixedCellHeight() {
if (!this.finalFixedCellHeight) {
this.$nextTick(() => {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this._getVirtualCellNodeByIndex(0).then((cellNode) => {
if (!cellNode) {
if (this.getCellHeightRetryCount.fixed > 10)
return;
this.getCellHeightRetryCount.fixed++;
this._updateFixedCellHeight();
} else {
this.virtualCellHeight = cellNode[0].height;
this._updateVirtualScroll(this.oldScrollTop);
}
});
}, uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime, "updateFixedCellHeightDelay");
});
} else {
this.virtualCellHeight = this.finalFixedCellHeight;
}
},
// cellHeightMode为dynamic时获取每个cell高度
_updateDynamicCellHeight(list, dataFrom = "bottom") {
const dataFromTop = dataFrom === "top";
const heightCacheList = this.virtualHeightCacheList;
const currentCacheList = dataFromTop ? [] : heightCacheList;
let listTotalHeight = 0;
this.$nextTick(() => {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(async () => {
for (let i = 0; i < list.length; i++) {
const cellNode = await this._getVirtualCellNodeByIndex(list[i][this.virtualCellIndexKey]);
const currentHeight = cellNode ? cellNode[0].height : 0;
if (!cellNode) {
if (this.getCellHeightRetryCount.dynamic <= 10) {
heightCacheList.splice(heightCacheList.length - i, i);
this.getCellHeightRetryCount.dynamic++;
this._updateDynamicCellHeight(list, dataFrom);
}
return;
}
const lastHeightCache = currentCacheList.length ? currentCacheList.slice(-1)[0] : null;
const lastTotalHeight = lastHeightCache ? lastHeightCache.totalHeight : 0;
currentCacheList.push({
height: currentHeight,
lastTotalHeight,
totalHeight: lastTotalHeight + currentHeight
});
if (dataFromTop) {
listTotalHeight += currentHeight;
}
}
if (dataFromTop && list.length) {
for (let i = 0; i < heightCacheList.length; i++) {
const heightCacheItem = heightCacheList[i];
heightCacheItem.lastTotalHeight += listTotalHeight;
heightCacheItem.totalHeight += listTotalHeight;
}
this.virtualHeightCacheList = currentCacheList.concat(heightCacheList);
}
this._updateVirtualScroll(this.oldScrollTop);
}, uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime, "updateDynamicCellHeightDelay");
});
},
// 设置cellItem的index
_setCellIndex(list, dataFrom = "bottom") {
let currentItemIndex = 0;
const cellIndexKey = this.virtualCellIndexKey;
dataFrom === "bottom" && [uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.Refresh, uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.Reload].indexOf(this.queryFrom) >= 0 && this._resetDynamicListState();
if (this.totalData.length && this.queryFrom !== uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.QueryFrom.Refresh) {
if (dataFrom === "bottom") {
currentItemIndex = this.realTotalData.length;
const lastItem = this.realTotalData.length ? this.realTotalData.slice(-1)[0] : null;
if (lastItem && lastItem[cellIndexKey] !== void 0) {
currentItemIndex = lastItem[cellIndexKey] + 1;
}
} else if (dataFrom === "top") {
const firstItem = this.realTotalData.length ? this.realTotalData[0] : null;
if (firstItem && firstItem[cellIndexKey] !== void 0) {
currentItemIndex = firstItem[cellIndexKey] - list.length;
}
}
} else {
this._resetDynamicListState();
}
for (let i = 0; i < list.length; i++) {
let item = list[i];
if (!item || Object.prototype.toString.call(item) !== "[object Object]") {
item = { item };
}
if (item[uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.listCellIndexUniqueKey]) {
item = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.deepCopy(item);
}
item[cellIndexKey] = currentItemIndex + i;
item[uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.listCellIndexUniqueKey] = `${this.virtualListKey}-${item[cellIndexKey]}`;
list[i] = item;
}
this.getCellHeightRetryCount.dynamic = 0;
this.cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic && this._updateDynamicCellHeight(list, dataFrom);
},
// 更新scroll滚动(虚拟列表滚动时触发)
_updateVirtualScroll(scrollTop, scrollDiff = 0) {
const currentTimeStamp = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime();
scrollTop === 0 && this._resetTopRange();
if (scrollTop !== 0 && this.virtualScrollTimeStamp && currentTimeStamp - this.virtualScrollTimeStamp <= this.virtualScrollDisTimeStamp) {
return;
}
this.virtualScrollTimeStamp = currentTimeStamp;
let scrollIndex = 0;
const cellHeightMode = this.cellHeightMode;
if (cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Fixed) {
scrollIndex = parseInt(scrollTop / this.virtualCellHeight) || 0;
this._updateFixedTopRangeIndex(scrollIndex);
this._updateFixedBottomRangeIndex(scrollIndex);
} else if (cellHeightMode === uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.CellHeightMode.Dynamic) {
const scrollDirection = scrollDiff > 0 ? "top" : "bottom";
const rangePageHeight = this.virtualRangePageHeight;
const topRangePageOffset = scrollTop - rangePageHeight;
const bottomRangePageOffset = scrollTop + this.finalVirtualPageHeight + rangePageHeight;
let virtualBottomRangeIndex = 0;
let virtualPlaceholderBottomHeight = 0;
let reachedLimitBottom = false;
const heightCacheList = this.virtualHeightCacheList;
const lastHeightCache = !!heightCacheList ? heightCacheList.slice(-1)[0] : null;
let startTopRangeIndex = this.virtualTopRangeIndex;
if (scrollDirection === "bottom") {
for (let i = startTopRangeIndex; i < heightCacheList.length; i++) {
const heightCacheItem = heightCacheList[i];
if (heightCacheItem && heightCacheItem.totalHeight > topRangePageOffset) {
this.virtualTopRangeIndex = i;
this.virtualPlaceholderTopHeight = heightCacheItem.lastTotalHeight;
break;
}
}
} else {
let topRangeMatched = false;
for (let i = startTopRangeIndex; i >= 0; i--) {
const heightCacheItem = heightCacheList[i];
if (heightCacheItem && heightCacheItem.totalHeight < topRangePageOffset) {
this.virtualTopRangeIndex = i;
this.virtualPlaceholderTopHeight = heightCacheItem.lastTotalHeight;
topRangeMatched = true;
break;
}
}
!topRangeMatched && this._resetTopRange();
}
for (let i = this.virtualTopRangeIndex; i < heightCacheList.length; i++) {
const heightCacheItem = heightCacheList[i];
if (heightCacheItem && heightCacheItem.totalHeight > bottomRangePageOffset) {
virtualBottomRangeIndex = i;
virtualPlaceholderBottomHeight = lastHeightCache.totalHeight - heightCacheItem.totalHeight;
reachedLimitBottom = true;
break;
}
}
if (!reachedLimitBottom || this.virtualBottomRangeIndex === 0) {
this.virtualBottomRangeIndex = this.realTotalData.length ? this.realTotalData.length - 1 : this.pageSize;
this.virtualPlaceholderBottomHeight = 0;
} else {
this.virtualBottomRangeIndex = virtualBottomRangeIndex;
this.virtualPlaceholderBottomHeight = virtualPlaceholderBottomHeight;
}
this._updateVirtualList();
}
},
// 更新fixedCell模式下topRangeIndex&placeholderTopHeight
_updateFixedTopRangeIndex(scrollIndex) {
let virtualTopRangeIndex = this.virtualCellHeight === 0 ? 0 : scrollIndex - (parseInt(this.finalVirtualPageHeight / this.virtualCellHeight) || 1) * this.preloadPage;
virtualTopRangeIndex *= this.virtualListCol;
virtualTopRangeIndex = Math.max(0, virtualTopRangeIndex);
this.virtualTopRangeIndex = virtualTopRangeIndex;
this.virtualPlaceholderTopHeight = virtualTopRangeIndex / this.virtualListCol * this.virtualCellHeight;
},
// 更新fixedCell模式下bottomRangeIndex&placeholderBottomHeight
_updateFixedBottomRangeIndex(scrollIndex) {
let virtualBottomRangeIndex = this.virtualCellHeight === 0 ? this.pageSize : scrollIndex + (parseInt(this.finalVirtualPageHeight / this.virtualCellHeight) || 1) * (this.preloadPage + 1);
virtualBottomRangeIndex *= this.virtualListCol;
virtualBottomRangeIndex = Math.min(this.realTotalData.length, virtualBottomRangeIndex);
this.virtualBottomRangeIndex = virtualBottomRangeIndex;
this.virtualPlaceholderBottomHeight = (this.realTotalData.length - virtualBottomRangeIndex) * this.virtualCellHeight / this.virtualListCol;
this._updateVirtualList();
},
// 更新virtualList
_updateVirtualList() {
const shouldUpdateList = this.updateVirtualListFromDataChange || (this.lastVirtualTopRangeIndex !== this.virtualTopRangeIndex || this.lastVirtualBottomRangeIndex !== this.virtualBottomRangeIndex);
if (shouldUpdateList) {
this.updateVirtualListFromDataChange = false;
this.lastVirtualTopRangeIndex = this.virtualTopRangeIndex;
this.lastVirtualBottomRangeIndex = this.virtualBottomRangeIndex;
this.virtualList = this.realTotalData.slice(this.virtualTopRangeIndex, this.virtualBottomRangeIndex + 1);
}
},
// 重置动态cell模式下的高度缓存数据、虚拟列表和滚动状态
_resetDynamicListState(resetVirtualList = false) {
this.virtualHeightCacheList = [];
if (resetVirtualList) {
this.virtualList = [];
}
this.virtualTopRangeIndex = 0;
this.virtualPlaceholderTopHeight = 0;
},
// 重置topRangeIndex和placeholderTopHeight
_resetTopRange() {
this.virtualTopRangeIndex = 0;
this.virtualPlaceholderTopHeight = 0;
this._updateVirtualList();
},
// 检测虚拟列表当前滚动位置,如发现滚动位置不正确则重新计算虚拟列表相关参数(为解决在App中可能出现的长时间进入后台后打开App白屏的问题)
_checkVirtualListScroll() {
if (this.finalUseVirtualList) {
this.$nextTick(() => {
this._getNodeClientRect(".zp-paging-touch-view").then((node) => {
const currentTop = node ? node[0].top : 0;
if (!node || currentTop === this.pagingOrgTop && this.virtualPlaceholderTopHeight !== 0) {
this._updateVirtualScroll(0);
}
});
});
}
},
// 获取对应index的虚拟列表cell节点信息
_getVirtualCellNodeByIndex(index) {
let inDom = this.finalUseInnerList;
if (this.forceCloseInnerList && this.virtualInSwiperSlot) {
inDom = this.$parent;
}
return this._getNodeClientRect(`#${this.fianlVirtualCellIdPrefix}-${index}`, inDom);
},
// 处理使用内置列表时点击了cell事件
_innerCellClick(item, index) {
this.$emit("innerCellClick", item, index);
}
}
};
exports.virtualListModule = virtualListModule;
//# sourceMappingURL=../../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/modules/virtual-list.js.map
@@ -1,19 +0,0 @@
"use strict";
const c = {
// 当前版本号
version: "2.8.6",
// 延迟操作的通用时间
delayTime: 100,
// 请求失败时候全局emit使用的key
errorUpdateKey: "z-paging-error-emit",
// 全局emit complete的key
completeUpdateKey: "z-paging-complete-emit",
// z-paging缓存的前缀key
cachePrefixKey: "z-paging-cache",
// 虚拟列表中列表index的key
listCellIndexKey: "zp_index",
// 虚拟列表中列表的唯一key
listCellIndexUniqueKey: "zp_unique_index"
};
exports.c = c;
//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-constant.js.map
@@ -1,46 +0,0 @@
"use strict";
const Enum = {
// 当前加载类型 refresher:下拉刷新 load-more:上拉加载更多
LoadingType: {
Refresher: "refresher",
LoadMore: "load-more"
},
// 下拉刷新状态 default:默认状态 release-to-refresh:松手立即刷新 loading:刷新中 complete:刷新结束 go-f2:松手进入二楼
Refresher: {
Default: "default",
ReleaseToRefresh: "release-to-refresh",
Loading: "loading",
Complete: "complete",
GoF2: "go-f2"
},
// 底部加载更多状态 default:默认状态 loading:加载中 no-more:没有更多数据 fail:加载失败
More: {
Default: "default",
Loading: "loading",
NoMore: "no-more",
Fail: "fail"
},
// @query触发来源 user-pull-down:用户主动下拉刷新 reload:通过reload触发 refresh:通过refresh触发 load-more:通过滚动到底部加载更多或点击底部加载更多触发
QueryFrom: {
UserPullDown: "user-pull-down",
Reload: "reload",
Refresh: "refresh",
LoadMore: "load-more"
},
// 虚拟列表cell高度模式
CellHeightMode: {
// 固定高度
Fixed: "fixed",
// 动态高度
Dynamic: "dynamic"
},
// 列表缓存模式
CacheMode: {
// 默认模式,只会缓存一次
Default: "default",
// 总是缓存,每次列表刷新(下拉刷新、调用reload等)都会更新缓存
Always: "always"
}
};
exports.Enum = Enum;
//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-enum.js.map
@@ -1,69 +0,0 @@
"use strict";
const queryKey = "Query";
const fetchParamsKey = "FetchParams";
const fetchResultKey = "FetchResult";
const language2LocalKey = "Language2Local";
function handleQuery(callback) {
_addHandleByKey(queryKey, callback);
return this;
}
function _handleQuery(pageNo, pageSize, from, lastItem) {
const callback = _getHandleByKey(queryKey);
return callback ? callback(pageNo, pageSize, from, lastItem) : [pageNo, pageSize, from];
}
function handleFetchParams(callback) {
_addHandleByKey(fetchParamsKey, callback);
return this;
}
function _handleFetchParams(parmas, extraParams) {
const callback = _getHandleByKey(fetchParamsKey);
return callback ? callback(parmas, extraParams || {}) : { pageNo: parmas.pageNo, pageSize: parmas.pageSize, ...extraParams || {} };
}
function handleFetchResult(callback) {
_addHandleByKey(fetchResultKey, callback);
return this;
}
function _handleFetchResult(result, paging, params) {
const callback = _getHandleByKey(fetchResultKey);
callback && callback(result, paging, params);
return callback ? true : false;
}
function handleLanguage2Local(callback) {
_addHandleByKey(language2LocalKey, callback);
return this;
}
function _handleLanguage2Local(language, local) {
const callback = _getHandleByKey(language2LocalKey);
return callback ? callback(language, local) : local;
}
function _getApp() {
return getApp();
}
function _hasGlobalData() {
return _getApp() && _getApp().globalData;
}
function _addHandleByKey(key, callback) {
try {
setTimeout(function() {
if (_hasGlobalData()) {
_getApp().globalData[`zp_handle${key}Callback`] = callback;
}
}, 1);
} catch (_) {
}
}
function _getHandleByKey(key) {
return _hasGlobalData() ? _getApp().globalData[`zp_handle${key}Callback`] : null;
}
const interceptor = {
handleQuery,
_handleQuery,
handleFetchParams,
_handleFetchParams,
handleFetchResult,
_handleFetchResult,
handleLanguage2Local,
_handleLanguage2Local
};
exports.interceptor = interceptor;
//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-interceptor.js.map
@@ -1,423 +0,0 @@
"use strict";
const common_vendor = require("../../../../../common/vendor.js");
const uni_modules_zPaging_components_zPaging_js_zPagingStatic = require("./z-paging-static.js");
const uni_modules_zPaging_components_zPaging_js_zPagingConstant = require("./z-paging-constant.js");
const uni_modules_zPaging_components_zPaging_js_zPagingUtils = require("./z-paging-utils.js");
const uni_modules_zPaging_components_zPaging_js_modules_commonLayout = require("./modules/common-layout.js");
const uni_modules_zPaging_components_zPaging_js_modules_dataHandle = require("./modules/data-handle.js");
const uni_modules_zPaging_components_zPaging_js_modules_i18n = require("./modules/i18n.js");
const uni_modules_zPaging_components_zPaging_js_modules_nvue = require("./modules/nvue.js");
const uni_modules_zPaging_components_zPaging_js_modules_empty = require("./modules/empty.js");
const uni_modules_zPaging_components_zPaging_js_modules_refresher = require("./modules/refresher.js");
const uni_modules_zPaging_components_zPaging_js_modules_loadMore = require("./modules/load-more.js");
const uni_modules_zPaging_components_zPaging_js_modules_loading = require("./modules/loading.js");
const uni_modules_zPaging_components_zPaging_js_modules_chatRecordMode = require("./modules/chat-record-mode.js");
const uni_modules_zPaging_components_zPaging_js_modules_scroller = require("./modules/scroller.js");
const uni_modules_zPaging_components_zPaging_js_modules_backToTop = require("./modules/back-to-top.js");
const uni_modules_zPaging_components_zPaging_js_modules_virtualList = require("./modules/virtual-list.js");
const uni_modules_zPaging_components_zPaging_js_zPagingEnum = require("./z-paging-enum.js");
const zPagingRefresh = () => "../components/z-paging-refresh.js";
const zPagingLoadMore = () => "../components/z-paging-load-more.js";
const zPagingEmptyView = () => "../../z-paging-empty-view/z-paging-empty-view.js";
const systemInfo = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getSystemInfoSync();
const _sfc_main = {
name: "z-paging",
components: {
zPagingRefresh,
zPagingLoadMore,
zPagingEmptyView
},
mixins: [
uni_modules_zPaging_components_zPaging_js_modules_commonLayout.commonLayoutModule,
uni_modules_zPaging_components_zPaging_js_modules_dataHandle.dataHandleModule,
uni_modules_zPaging_components_zPaging_js_modules_i18n.i18nModule,
uni_modules_zPaging_components_zPaging_js_modules_nvue.nvueModule,
uni_modules_zPaging_components_zPaging_js_modules_empty.emptyModule,
uni_modules_zPaging_components_zPaging_js_modules_refresher.refresherModule,
uni_modules_zPaging_components_zPaging_js_modules_loadMore.loadMoreModule,
uni_modules_zPaging_components_zPaging_js_modules_loading.loadingModule,
uni_modules_zPaging_components_zPaging_js_modules_chatRecordMode.chatRecordModerModule,
uni_modules_zPaging_components_zPaging_js_modules_scroller.scrollerModule,
uni_modules_zPaging_components_zPaging_js_modules_backToTop.backToTopModule,
uni_modules_zPaging_components_zPaging_js_modules_virtualList.virtualListModule
],
data() {
return {
// --------------静态资源---------------
base64BackToTop: uni_modules_zPaging_components_zPaging_js_zPagingStatic.zStatic.base64BackToTop,
// -------------全局数据相关--------------
// 当前加载类型
loadingType: uni_modules_zPaging_components_zPaging_js_zPagingEnum.Enum.LoadingType.Refresher,
requestTimeStamp: 0,
wxsPropType: "",
renderPropScrollTop: -1,
checkScrolledToBottomTimeOut: null,
cacheTopHeight: -1,
statusBarHeight: systemInfo.statusBarHeight,
// --------------状态&判断---------------
insideOfPaging: -1,
isLoadFailed: false,
isIos: systemInfo.platform === "ios",
disabledBounce: false,
fromCompleteEmit: false,
disabledCompleteEmit: false,
pageLaunched: false,
active: false,
// ---------------wxs相关---------------
wxsIsScrollTopInTopRange: true,
wxsScrollTop: 0,
wxsPageScrollTop: 0,
wxsOnPullingDown: false
};
},
props: {
// 调用complete后延迟处理的时间,单位为毫秒,默认0毫秒,优先级高于minDelay
delay: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("delay", 0)
},
// 触发@query后最小延迟处理的时间,单位为毫秒,默认0毫秒,优先级低于delay(假设设置为300毫秒,若分页请求时间小于300毫秒,则在调用complete后延迟[300毫秒-请求时长];若请求时长大于300毫秒,则不延迟),当show-refresher-when-reload为true或reload(true)时,其最小值为400
minDelay: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("minDelay", 0)
},
// 设置z-paging的style,部分平台(如微信小程序)无法直接修改组件的style,可使用此属性代替
pagingStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("pagingStyle", {})
},
// z-paging的高度,优先级低于pagingStyle中设置的height;传字符串,如100px、100rpx、100%
height: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("height", "")
},
// z-paging的宽度,优先级低于pagingStyle中设置的width;传字符串,如100px、100rpx、100%
width: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("width", "")
},
// z-paging的最大宽度,优先级低于pagingStyle中设置的max-width;传字符串,如100px、100rpx、100%。默认为空,也就是铺满窗口宽度,若设置了特定值则会自动添加margin: 0 auto
maxWidth: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("maxWidth", "")
},
// z-paging的背景色,优先级低于pagingStyle中设置的background。传字符串,如"#ffffff"
bgColor: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("bgColor", "")
},
// 设置z-paging的容器(插槽的父view)的style
pagingContentStyle: {
type: Object,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("pagingContentStyle", {})
},
// z-paging是否自动高度,若自动高度则会自动铺满屏幕
autoHeight: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoHeight", false)
},
// z-paging是否自动高度时,附加的高度,注意添加单位px或rpx,若需要减少高度,则传负数
autoHeightAddition: {
type: [Number, String],
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoHeightAddition", "0px")
},
// loading(下拉刷新、上拉加载更多)的主题样式,支持black,white,默认black
defaultThemeStyle: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("defaultThemeStyle", "black")
},
// z-paging是否使用fixed布局,若使用fixed布局,则z-paging的父view无需固定高度,z-paging高度默认为100%,默认为是(当使用内置scroll-view滚动时有效)
fixed: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("fixed", true)
},
// 是否开启底部安全区域适配
safeAreaInsetBottom: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("safeAreaInsetBottom", false)
},
// 开启底部安全区域适配后,是否使用placeholder形式实现,默认为否。为否时滚动区域会自动避开底部安全区域,也就是所有滚动内容都不会挡住底部安全区域,若设置为是,则滚动时滚动内容会挡住底部安全区域,但是当滚动到底部时才会避开底部安全区域
useSafeAreaPlaceholder: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("useSafeAreaPlaceholder", false)
},
// z-paging bottom的背景色,默认透明,传字符串,如"#ffffff"
bottomBgColor: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("bottomBgColor", "")
},
// slot="top"的view的z-index,默认为99,仅使用页面滚动时有效
topZIndex: {
type: Number,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("topZIndex", 99)
},
// z-paging内容容器父view的z-index,默认为1
superContentZIndex: {
type: Number,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("superContentZIndex", 1)
},
// z-paging内容容器部分的z-index,默认为1
contentZIndex: {
type: Number,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("contentZIndex", 1)
},
// z-paging二楼的z-index,默认为100
f2ZIndex: {
type: Number,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("f2ZIndex", 100)
},
// 使用页面滚动时,是否在不满屏时自动填充满屏幕,默认为是
autoFullHeight: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("autoFullHeight", true)
},
// 是否监听列表触摸方向改变,默认为否
watchTouchDirectionChange: {
type: Boolean,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("watchTouchDirectionChange", false)
},
// z-paging中布局的单位,默认为rpx
unit: {
type: String,
default: uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.gc("unit", "rpx")
}
},
created() {
if (this.createdReload && !this.refresherOnly && this.auto) {
this._startLoading();
this.$nextTick(this._preReload);
}
},
mounted() {
this.active = true;
this.wxsPropType = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getTime().toString();
this.renderJsIgnore;
if (!this.createdReload && !this.refresherOnly && this.auto) {
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => this.$nextTick(this._preReload), 0);
}
this.finalUseCache && this._setListByLocalCache();
let delay = 0;
delay = uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime;
this.$nextTick(() => {
this.systemInfo = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.getSystemInfoSync();
!this.usePageScroll && this.autoHeight && this._setAutoHeight();
this.loaded = true;
uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.delay(() => {
this.updateFixedLayout();
this._updateCachedSuperContentHeight();
});
});
this.updatePageScrollTopHeight();
this.updatePageScrollBottomHeight();
this.updateLeftAndRightWidth();
if (this.finalRefresherEnabled && this.useCustomRefresher) {
this.$nextTick(() => {
this.isTouchmoving = true;
});
}
this._onEmit();
this.finalUseVirtualList && this._virtualListInit();
this.$nextTick(() => {
setTimeout(() => {
this._getCssSafeAreaInsetBottom(() => this.safeAreaInsetBottom && this.updatePageScrollBottomHeight());
}, delay);
});
},
destroyed() {
this._handleUnmounted();
},
unmounted() {
this._handleUnmounted();
},
watch: {
defaultThemeStyle: {
handler(newVal) {
if (newVal.length) {
this.finalRefresherDefaultStyle = newVal;
}
},
immediate: true
},
autoHeight(newVal) {
this.loaded && !this.usePageScroll && this._setAutoHeight(newVal);
},
autoHeightAddition(newVal) {
this.loaded && !this.usePageScroll && this.autoHeight && this._setAutoHeight(newVal);
}
},
computed: {
// 当前z-paging的内置样式
finalPagingStyle() {
const pagingStyle = { ...this.pagingStyle };
if (!this.systemInfo)
return pagingStyle;
const { windowTop, windowBottom } = this;
if (!this.usePageScroll && this.fixed) {
if (windowTop && !pagingStyle.top) {
pagingStyle.top = windowTop + "px";
}
if (windowBottom && !pagingStyle.bottom) {
pagingStyle.bottom = windowBottom + "px";
}
}
if (this.bgColor.length && !pagingStyle["background"]) {
pagingStyle["background"] = this.bgColor;
}
if (this.height.length && !pagingStyle["height"]) {
pagingStyle["height"] = this.height;
}
if (this.width.length && !pagingStyle["width"]) {
pagingStyle["width"] = this.width;
}
if (this.maxWidth.length && !pagingStyle["max-width"]) {
pagingStyle["max-width"] = this.maxWidth;
pagingStyle["margin"] = "0 auto";
}
return pagingStyle;
},
// 当前z-paging内容的样式
finalPagingContentStyle() {
if (this.contentZIndex != 1) {
this.pagingContentStyle["z-index"] = this.contentZIndex;
this.pagingContentStyle["position"] = "relative";
}
return this.pagingContentStyle;
},
renderJsIgnore() {
if (this.usePageScroll && this.useChatRecordMode || !this.refresherEnabled && this.scrollable || !this.useCustomRefresher) {
this.$nextTick(() => {
this.renderPropScrollTop = 10;
});
}
return 0;
},
windowHeight() {
if (!this.systemInfo)
return 0;
return this.systemInfo.windowHeight || 0;
},
windowBottom() {
if (!this.systemInfo)
return 0;
let windowBottom = this.systemInfo.windowBottom || 0;
if (this.safeAreaInsetBottom && !this.useSafeAreaPlaceholder && !this.useChatRecordMode) {
windowBottom += this.safeAreaBottom;
}
return windowBottom;
},
isIosAndH5() {
return false;
}
},
methods: {
// 当前版本号
getVersion() {
return `z-paging v${uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.version}`;
},
// 设置nvue List的specialEffects
setSpecialEffects(args) {
this.setListSpecialEffects(args);
},
// 与setSpecialEffects等效,兼容旧版本
setListSpecialEffects(args) {
this.nFixFreezing = args && Object.keys(args).length;
if (this.isIos) {
this.privateRefresherEnabled = 0;
}
!this.usePageScroll && this.$refs["zp-n-list"].setSpecialEffects(args);
},
// 使手机发生较短时间的振动(15ms)
_doVibrateShort() {
common_vendor.index.vibrateShort();
},
// 设置z-paging高度
async _setAutoHeight(shouldFullHeight = true, scrollViewNode = null) {
const heightKey = "min-height";
try {
if (shouldFullHeight) {
let finalScrollViewNode = scrollViewNode || await this._getNodeClientRect(".zp-scroll-view");
let finalScrollBottomNode = await this._getNodeClientRect(".zp-page-bottom");
if (finalScrollViewNode) {
const scrollViewTop = finalScrollViewNode[0].top;
let scrollViewHeight = this.windowHeight - scrollViewTop;
scrollViewHeight -= finalScrollBottomNode ? finalScrollBottomNode[0].height : 0;
const additionHeight = uni_modules_zPaging_components_zPaging_js_zPagingUtils.u.convertToPx(this.autoHeightAddition);
let importantSuffix = " !important";
const finalHeight = scrollViewHeight + additionHeight - (this.insideMore ? 1 : 0) + "px" + importantSuffix;
this.$set(this.scrollViewStyle, heightKey, finalHeight);
this.$set(this.scrollViewInStyle, heightKey, finalHeight);
}
} else {
this.$delete(this.scrollViewStyle, heightKey);
this.$delete(this.scrollViewInStyle, heightKey);
}
} catch (e) {
}
},
// 组件销毁后续处理
_handleUnmounted() {
this.active = false;
this._offEmit();
this.useChatRecordMode && common_vendor.index.offKeyboardHeightChange(this._handleKeyboardHeightChange);
},
// 触发更新是否超出页面状态
_updateInsideOfPaging() {
this.insideMore && this.insideOfPaging === true && setTimeout(this.doLoadMore, 200);
},
// 清除timeout
_cleanTimeout(timeout) {
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
return timeout;
},
// 添加全局emit监听
_onEmit() {
common_vendor.index.$on(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.errorUpdateKey, (errorMsg) => {
if (this.loading) {
if (!!errorMsg) {
this.customerEmptyViewErrorText = errorMsg;
}
this.complete(false).catch(() => {
});
}
});
common_vendor.index.$on(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.completeUpdateKey, (data) => {
setTimeout(() => {
if (this.loading) {
if (!this.disabledCompleteEmit) {
const type = data.type || "normal";
const list = data.list || data;
const rule = data.rule;
this.fromCompleteEmit = true;
switch (type) {
case "normal":
this.complete(list);
break;
case "total":
this.completeByTotal(list, rule);
break;
case "nomore":
this.completeByNoMore(list, rule);
break;
case "key":
this.completeByKey(list, rule);
break;
}
} else {
this.disabledCompleteEmit = false;
}
}
}, 1);
});
},
// 销毁全局emit和listener监听
_offEmit() {
common_vendor.index.$off(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.errorUpdateKey);
common_vendor.index.$off(uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.completeUpdateKey);
}
}
};
exports._sfc_main = _sfc_main;
//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-main.js.map
File diff suppressed because one or more lines are too long
@@ -1,238 +0,0 @@
"use strict";
const common_vendor = require("../../../../../common/vendor.js");
const uni_modules_zPaging_components_zPaging_config_index = require("../config/index.js");
const uni_modules_zPaging_components_zPaging_js_zPagingConstant = require("./z-paging-constant.js");
const storageKey = "Z-PAGING-REFRESHER-TIME-STORAGE-KEY";
let config = null;
let configLoaded = false;
let cachedSystemInfo = null;
const timeoutMap = {};
function gc(key, defaultValue) {
return () => {
_handleDefaultConfig();
if (!config)
return defaultValue;
const value = config[key];
return value === void 0 ? defaultValue : value;
};
}
function getTouch(e) {
let touch = null;
if (e.touches && e.touches.length) {
touch = e.touches[0];
} else if (e.changedTouches && e.changedTouches.length) {
touch = e.changedTouches[0];
} else if (e.datail && e.datail != {}) {
touch = e.datail;
} else {
return { touchX: 0, touchY: 0 };
}
return {
touchX: touch.clientX,
touchY: touch.clientY
};
}
function getTouchFromZPaging(target) {
if (target && target.tagName && target.tagName !== "BODY" && target.tagName !== "UNI-PAGE-BODY") {
const classList = target.classList;
if (classList && classList.contains("z-paging-content")) {
return {
isFromZp: true,
isPageScroll: classList.contains("z-paging-content-page"),
isReachedTop: classList.contains("z-paging-reached-top"),
isUseChatRecordMode: classList.contains("z-paging-use-chat-record-mode")
};
} else {
return getTouchFromZPaging(target.parentNode);
}
} else {
return { isFromZp: false };
}
}
function getParent(parent) {
if (!parent)
return null;
if (parent.$refs.paging)
return parent;
return getParent(parent.$parent);
}
function consoleErr(err) {
common_vendor.index.__f__("error", "at uni_modules/z-paging/components/z-paging/js/z-paging-utils.js:73", `[z-paging]${err}`);
}
function delay(callback, ms = uni_modules_zPaging_components_zPaging_js_zPagingConstant.c.delayTime, key) {
const timeout = setTimeout(callback, ms);
if (!!key) {
timeoutMap[key] && clearTimeout(timeoutMap[key]);
timeoutMap[key] = timeout;
}
return timeout;
}
function setRefesrherTime(time, key) {
const datas = getRefesrherTime() || {};
datas[key] = time;
common_vendor.index.setStorageSync(storageKey, datas);
}
function getRefesrherTime() {
return common_vendor.index.getStorageSync(storageKey);
}
function getRefesrherTimeByKey(key) {
const datas = getRefesrherTime();
return datas && datas[key] ? datas[key] : null;
}
function getRefesrherFormatTimeByKey(key, textMap) {
const time = getRefesrherTimeByKey(key);
const timeText = time ? _timeFormat(time, textMap) : textMap.none;
return `${textMap.title}${timeText}`;
}
function convertToPx(text) {
const dataType = Object.prototype.toString.call(text);
if (dataType === "[object Number]")
return text;
let isRpx = false;
if (text.indexOf("rpx") !== -1 || text.indexOf("upx") !== -1) {
text = text.replace("rpx", "").replace("upx", "");
isRpx = true;
} else if (text.indexOf("px") !== -1) {
text = text.replace("px", "");
}
if (!isNaN(text)) {
if (isRpx)
return Number(rpx2px(text));
return Number(text);
}
return 0;
}
function rpx2px(rpx) {
return common_vendor.index.upx2px(rpx);
}
function getSystemInfoSync(useCache = false) {
if (useCache && cachedSystemInfo) {
return cachedSystemInfo;
}
const infoTypes = ["DeviceInfo", "AppBaseInfo", "WindowInfo"];
const { deviceInfo, appBaseInfo, windowInfo } = infoTypes.reduce((acc, key) => {
const method = `get${key}`;
if (common_vendor.index[method] && common_vendor.index.canIUse(method)) {
acc[key.charAt(0).toLowerCase() + key.slice(1)] = common_vendor.index[method]();
}
return acc;
}, {});
if (deviceInfo && appBaseInfo && windowInfo) {
cachedSystemInfo = { ...deviceInfo, ...appBaseInfo, ...windowInfo };
} else {
cachedSystemInfo = common_vendor.index.getSystemInfoSync();
}
return cachedSystemInfo;
}
function getTime() {
return (/* @__PURE__ */ new Date()).getTime();
}
function getInstanceId() {
const s = [];
const hexDigits = "0123456789abcdef";
for (let i = 0; i < 10; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 16), 1);
}
return s.join("") + getTime();
}
function wait(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
function isPromise(func) {
return Object.prototype.toString.call(func) === "[object Promise]";
}
function addUnit(value, unit) {
if (Object.prototype.toString.call(value) === "[object String]") {
let tempValue = value;
tempValue = tempValue.replace("rpx", "").replace("upx", "").replace("px", "");
if (value.indexOf("rpx") === -1 && value.indexOf("upx") === -1 && value.indexOf("px") !== -1) {
tempValue = parseFloat(tempValue) * 2;
}
value = tempValue;
}
return unit === "rpx" ? value + "rpx" : value / 2 + "px";
}
function deepCopy(obj) {
if (typeof obj !== "object" || obj === null)
return obj;
let newObj = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
newObj[key] = deepCopy(obj[key]);
}
}
return newObj;
}
function _handleDefaultConfig() {
if (configLoaded)
return;
if (uni_modules_zPaging_components_zPaging_config_index.zLocalConfig && Object.keys(uni_modules_zPaging_components_zPaging_config_index.zLocalConfig).length) {
config = uni_modules_zPaging_components_zPaging_config_index.zLocalConfig;
}
if (!config && common_vendor.index.$zp) {
config = common_vendor.index.$zp.config;
}
config = config ? Object.keys(config).reduce((result, key) => {
result[_toCamelCase(key)] = config[key];
return result;
}, {}) : null;
configLoaded = true;
}
function _timeFormat(time, textMap) {
const date = new Date(time);
const currentDate = /* @__PURE__ */ new Date();
const dateDay = new Date(time).setHours(0, 0, 0, 0);
const currentDateDay = (/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0);
const disTime = dateDay - currentDateDay;
let dayStr = "";
const timeStr = _dateTimeFormat(date);
if (disTime === 0) {
dayStr = textMap.today;
} else if (disTime === -864e5) {
dayStr = textMap.yesterday;
} else {
dayStr = _dateDayFormat(date, date.getFullYear() !== currentDate.getFullYear());
}
return `${dayStr} ${timeStr}`;
}
function _dateDayFormat(date, showYear = true) {
const year = date.getFullYear();
const month = date.getMonth() + 1;
const day = date.getDate();
return showYear ? `${year}-${_fullZeroToTwo(month)}-${_fullZeroToTwo(day)}` : `${_fullZeroToTwo(month)}-${_fullZeroToTwo(day)}`;
}
function _dateTimeFormat(date) {
const hour = date.getHours();
const minute = date.getMinutes();
return `${_fullZeroToTwo(hour)}:${_fullZeroToTwo(minute)}`;
}
function _fullZeroToTwo(str) {
str = str.toString();
return str.length === 1 ? "0" + str : str;
}
function _toCamelCase(value) {
return value.replace(/-([a-z])/g, (_, group1) => group1.toUpperCase());
}
const u = {
gc,
setRefesrherTime,
getRefesrherFormatTimeByKey,
getTouch,
getTouchFromZPaging,
getParent,
convertToPx,
getTime,
getInstanceId,
consoleErr,
delay,
wait,
isPromise,
addUnit,
deepCopy,
rpx2px,
getSystemInfoSync
};
exports.u = u;
//# sourceMappingURL=../../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/js/z-paging-utils.js.map
@@ -1,382 +0,0 @@
// [z-paging]微信小程序、QQ小程序、app-vue、h5上使用wxs实现自定义下拉刷新,降低逻辑层与视图层的通信折损,提升性能
var currentDis = 0;
var isPCFlag = -1;
var startY = -1;
// 监听js层传过来的数据
function propObserver(newVal, oldVal, ownerIns, ins) {
var state = ownerIns.getState() || {};
state.currentIns = ins;
var dataset = ins.getDataset();
var loading = dataset.loading == true;
// 如果是下拉刷新结束,更新transform
if (newVal && newVal.indexOf('end') != -1) {
var transition = newVal.split('end')[0];
_setTransform('translateY(0px)', ins, false, transition);
state.moveDis = 0;
state.oldMoveDis = 0;
currentDis = 0;
} else if (newVal && newVal.indexOf('begin') != -1) {
// 如果是下拉刷新开始,更新transform
var refresherThreshold = ins.getDataset().refresherthreshold;
_setTransformValue(refresherThreshold, ins, state, false);
}
}
// touch开始
function touchstart(e, ownerIns) {
var ins = _getIns(ownerIns);
var state = {};
var dataset = {};
ownerIns.callMethod('_handleListTouchstart');
if (ins) {
state = ins.getState();
dataset = ins.getDataset();
if (_touchDisabled(e, ins, 0)) return;
}
var isTouchEnded = state.isTouchEnded;
state.oldMoveDis = 0;
var touch = _getTouch(e);
var loading = _isTrue(dataset.loading);
state.startY = touch.touchY;
startY = state.startY;
state.lastTouch = touch;
if (!loading && isTouchEnded) {
state.isTouchmoving = false;
}
state.isTouchEnded = false;
// 通知js层touch开始
ownerIns.callMethod('_handleRefresherTouchstart', touch);
}
// touch中
function touchmove(e, ownerIns) {
var touch = _getTouch(e);
var ins = _getIns(ownerIns);
var dataset = ins.getDataset();
var refresherThreshold = dataset.refresherthreshold;
var refresherF2Threshold = dataset.refresherf2threshold;
var refresherF2Enabled = _isTrue(dataset.refresherf2enabled);
var isIos = _isTrue(dataset.isios);
var state = ins.getState();
var watchTouchDirectionChange = _isTrue(dataset.watchtouchdirectionchange);
var moveDisObj = {};
var moveDis = 0;
var prevent = false;
// 如果需要监听touch方向的改变
if (watchTouchDirectionChange) {
moveDisObj = _getMoveDis(e, ins);
moveDis = moveDisObj.currentDis;
prevent = moveDisObj.isDown;
var direction = prevent ? 'top' : 'bottom';
// 确保只在touch方向改变时通知一次js层,而不是touchmove中持续通知
if (prevent == state.oldTouchDirection && prevent != state.oldEmitedTouchDirection) {
ownerIns.callMethod('_handleTouchDirectionChange', { direction: direction });
state.oldEmitedTouchDirection = prevent;
}
state.oldTouchDirection = prevent;
}
// 判断是否允许下拉刷新
if (_touchDisabled(e, ins, 1)) {
_handlePullingDown(state, ownerIns, false);
return true;
}
// 判断下拉刷新的角度是否在要求范围内
if (!_getAngleIsInRange(e, touch, state, dataset)) {
_handlePullingDown(state, ownerIns, false);
return true;
}
moveDisObj = _getMoveDis(e, ins);
moveDis = moveDisObj.currentDis;
prevent = moveDisObj.isDown;
if (moveDis < 0) {
// moveDis小于0,将transform重置为0
_setTransformValue(0, ins, state, false);
_handlePullingDown(state, ownerIns, false);
return true;
}
if (prevent && !state.disabledBounce) {
// 如果是用户下拉并且需要触发下拉刷新,需要通知js层将列表禁止滚动,防止在下拉刷新过程中列表也可以滚动导致的下拉刷新偏移过大的问题(在下拉刷新过程中仅通知一次)
ownerIns.callMethod('_handleScrollViewBounce', { bounce: false });
state.disabledBounce = true;
_handlePullingDown(state, ownerIns, prevent);
return !prevent;
}
// 更新transform
_setTransformValue(moveDis, ins, state, false);
var oldRefresherStatus = state.refresherStatus;
var oldIsTouchmoving = _isTrue(dataset.oldistouchmoving);
var hasTouchmove = _isTrue(dataset.hastouchmove);
var isTouchmoving = state.isTouchmoving;
state.refresherStatus = moveDis >= refresherThreshold ? (refresherF2Enabled && moveDis > refresherF2Threshold ? 'goF2' : 'releaseToRefresh') : 'default';
if (!isTouchmoving) {
state.isTouchmoving = true;
isTouchmoving = true;
}
if (state.isTouchEnded) {
state.isTouchEnded = false;
}
// 如果需要实时监听下拉位置偏移,则需要实时通知js层,此操作会使wxs层与js层频繁通信从而导致在一些性能较差设备中下拉刷新卡顿
if (hasTouchmove) {
ownerIns.callMethod('_handleWxsPullingDown', { moveDis: moveDis, diffDis: moveDisObj.diffDis });
}
// 在下拉刷新状态改变时通知js层
if (oldRefresherStatus == undefined || oldRefresherStatus != state.refresherStatus || oldIsTouchmoving != isTouchmoving) {
ownerIns.callMethod('_handleRefresherTouchmove', moveDis, touch);
}
_handlePullingDown(state, ownerIns, prevent);
return !prevent;
}
// touch结束
function touchend(e, ownerIns) {
var touch = _getTouch(e);
var ins = _getIns(ownerIns);
var dataset = ins.getDataset();
var state = ins.getState();
if (state.disabledBounce) {
// 通知js允许列表滚动
ownerIns.callMethod('_handleScrollViewBounce', { bounce: true });
state.disabledBounce = false;
}
if (_touchDisabled(e, ins, 2)) return;
state.reachMaxAngle = true;
state.hitReachMaxAngleCount = 0;
state.fixedIsTopHitCount = 0;
if (!state.isTouchmoving) return;
var oldRefresherStatus = state.refresherStatus;
var oldMoveDis = state.moveDis;
var refresherThreshold = ins.getDataset().refresherthreshold;
var moveDis = _getMoveDis(e, ins).currentDis;
if (!(moveDis >= refresherThreshold && oldRefresherStatus === 'releaseToRefresh')) {
state.isTouchmoving = false;
}
// 通知js层touch结束
ownerIns.callMethod('_handleRefresherTouchend', moveDis);
state.isTouchEnded = true;
if (oldMoveDis < refresherThreshold) return;
var animate = false;
if (moveDis >= refresherThreshold) {
moveDis = refresherThreshold;
animate = true;
}
_setTransformValue(moveDis, ins, state, animate);
}
// #ifdef H5
// 判断是否是pc平台
function isPC() {
if (!navigator) return false;
if (isPCFlag != -1) return isPCFlag;
var agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
isPCFlag = agents.every(function(item) { return navigator.userAgent.indexOf(item) < 0 });
return isPCFlag;
}
var movable = false;
// 在pc平台监听mousedown、mousemove、mouseup等相关事件并转为对应touch事件处理,使得在pc平台也支持通过鼠标进行下拉刷新
function mousedown(e, ins) {
if (!isPC()) return;
touchstart(e, ins);
movable = true;
}
function mousemove(e, ins) {
if (!isPC() || !movable) return;
touchmove(e, ins);
}
function mouseup(e, ins) {
if (!isPC()) return;
touchend(e, ins);
movable = false;
}
function mouseleave(e, ins) {
if (!isPC()) return;
movable = false;
}
// #endif
// 修改视图层transform
function _setTransformValue(value, ins, state, animate) {
value = value || 0;
if (state.moveDis == value) return;
state.moveDis = value;
_setTransform('translateY(' + value + 'px)', ins, animate, '');
}
// 设置视图层transform,直接在视图层操作下拉刷新,使得js层不需要频繁和视图层通信,从而大大提升下拉刷新性能
function _setTransform(transform, ins, animate, transition) {
var dataset = ins.getDataset();
if (_isTrue(dataset.refreshernotransform)) return;
transform = transform == 'translateY(0px)' ? 'none' : transform;
ins.requestAnimationFrame(function() {
var stl = { 'transform': transform };
if (animate) {
stl['transition'] = 'transform .1s linear';
}
if (transition.length) {
stl['transition'] = transition;
}
ins.setStyle(stl);
})
}
// 进一步处理下拉刷新的偏移数据
function _getMoveDis(e, ins) {
var state = ins.getState();
var refresherThreshold = parseFloat(ins.getDataset().refresherthreshold);
var refresherOutRate = parseFloat(ins.getDataset().refresheroutrate);
var refresherPullRate = parseFloat(ins.getDataset().refresherpullrate);
var touch = _getTouch(e);
var currentStartY = !state.startY || state.startY == 'NaN' ? startY : state.startY;
var moveDis = touch.touchY - currentStartY;
var oldMoveDis = state.oldMoveDis || 0;
state.oldMoveDis = moveDis;
// 获取当前下拉刷新位置与上次的偏移量
var diffDis = moveDis - oldMoveDis;
if (diffDis > 0) {
// 对偏移量进行进一步处理,通过refresherPullRate等配置进行约束
diffDis = diffDis * refresherPullRate;
if (currentDis > refresherThreshold) {
diffDis = diffDis * (1 - refresherOutRate);
}
}
// 控制diffDis过大的情况,比如进入页面突然猛然下拉,此时diffDis不应进行太大的偏移
diffDis = diffDis > 100 ? diffDis / 100 : (diffDis > 20 ? diffDis / 2.2 : diffDis);
currentDis += diffDis;
currentDis = Math.max(0, currentDis);
return {
currentDis: currentDis,
diffDis: diffDis,
isDown: diffDis > 0
};
}
// 获取经过统一格式包装的当前touch对象
function _getTouch(e) {
var touch = e;
if (e.touches && e.touches.length) {
touch = e.touches[0];
} else if (e.changedTouches && e.changedTouches.length) {
touch = e.changedTouches[0];
} else if (e.datail && e.datail != {}) {
touch = e.datail;
}
return {
touchX: touch.clientX,
touchY: touch.clientY
};
}
// 获取当前currentIns
function _getIns(ownerIns) {
var ins = ownerIns.getState().currentIns;
if (!ins) {
ownerIns.callMethod('_handlePropUpdate');
}
return ins;
}
// 判断当前状态是否允许下拉刷新
function _touchDisabled(e, ins, processTag) {
var dataset = ins.getDataset();
var state = ins.getState();
var loading = _isTrue(dataset.loading);
var useChatRecordMode = _isTrue(dataset.usechatrecordmode);
var refresherEnabled = _isTrue(dataset.refresherenabled);
var useCustomRefresher = _isTrue(dataset.usecustomrefresher);
var usePageScroll = _isTrue(dataset.usepagescroll);
var pageScrollTop = parseFloat(dataset.pagescrolltop);
var scrollTop = parseFloat(dataset.scrolltop);
var finalScrollTop = usePageScroll ? pageScrollTop : scrollTop;
var fixedIsTop = false;
// 是否要处理滚动到顶部scrollTop不为0时候的容错,为解决在安卓中scroll-view有概率滚动到顶部时scrollTop不为0导致下拉刷新判断异常,但此方案会导致某些情况(例如滚动到距离顶部10px处)下拉抖动,因此改为通过获取zp-scroll-view的节点信息中的scrollTop进行验证的方案
var handleFaultTolerantMove = false;
if (handleFaultTolerantMove && finalScrollTop == (state.startScrollTop || 0) && finalScrollTop <= 105) {
fixedIsTop = true;
}
var fixedIsTopHitCount = state.fixedIsTopHitCount || 0;
if (fixedIsTop) {
fixedIsTopHitCount ++;
if (fixedIsTopHitCount <= 2) {
fixedIsTop = false;
}
state.fixedIsTopHitCount = fixedIsTopHitCount;
} else {
state.fixedIsTopHitCount = 0;
}
if (handleFaultTolerantMove && processTag === 0) {
state.startScrollTop = finalScrollTop || 0;
}
if (handleFaultTolerantMove && processTag === 2) {
fixedIsTop = true;
}
return loading || useChatRecordMode || !refresherEnabled || !useCustomRefresher ||
((usePageScroll && useCustomRefresher && pageScrollTop > 5) && !fixedIsTop) ||
((!usePageScroll && useCustomRefresher && scrollTop > 5) && !fixedIsTop);
}
// 判断下拉刷新的角度是否在要求范围内
function _getAngleIsInRange(e, touch, state, dataset) {
var maxAngle = dataset.refreshermaxangle;
var refresherAecc = _isTrue(dataset.refresheraecc);
var lastTouch = state.lastTouch;
var reachMaxAngle = state.reachMaxAngle;
var moveDis = state.oldMoveDis;
if (!lastTouch) return true;
if (maxAngle >= 0 && maxAngle <= 90 && lastTouch) {
// 考虑下拉刷新手势由水平移动转为垂直方向移动的情况,此时不应当只判断垂直方向角度是否符合要求,应当直接禁止以避免在swiper中使用下拉刷新时,横向切换swiper途中手未离开屏幕还可以下拉刷新的问题
if ((!moveDis || moveDis < 1) && !refresherAecc && reachMaxAngle != null && !reachMaxAngle) return false;
var x = Math.abs(touch.touchX - lastTouch.touchX);
var y = Math.abs(touch.touchY - lastTouch.touchY);
var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
if ((x || y) && x > 1) {
// 获取下拉刷新前后两次位移的角度
var angle = Math.asin(y / z) / Math.PI * 180;
if (angle < maxAngle) {
// 如果角度小于配置要求,则return,同时通过hitReachMaxAngleCount控制角度判断的灵敏程度以最大程度兼容各种使用场景
var hitReachMaxAngleCount = state.hitReachMaxAngleCount || 0;
state.hitReachMaxAngleCount = ++hitReachMaxAngleCount;
if (state.hitReachMaxAngleCount > 2) {
state.lastTouch = touch;
state.reachMaxAngle = false;
}
return false;
}
}
}
state.lastTouch = touch;
return true;
}
// 进一步处理是否在下拉刷新并通知js层
function _handlePullingDown(state, ins, onPullingDown) {
var oldOnPullingDown = state.onPullingDown || false;
if (oldOnPullingDown != onPullingDown) {
ins.callMethod('_handleWxsPullingDownStatusChange', onPullingDown);
}
state.onPullingDown = onPullingDown;
}
// 判断js层传过来的值是否为true
function _isTrue(value) {
value = (typeof(value) === 'string' ? JSON.parse(value) : value) || false;
return value == true || value == 'true';
}
module.exports = {
touchstart: touchstart,
touchmove: touchmove,
touchend: touchend,
mousedown: mousedown,
mousemove: mousemove,
mouseup: mouseup,
mouseleave: mouseleave,
propObserver: propObserver
}
@@ -1,329 +0,0 @@
"use strict";
const uni_modules_zPaging_components_zPaging_js_zPagingMain = require("./js/z-paging-main.js");
const common_vendor = require("../../../../common/vendor.js");
const block0 = {};
const block1 = (Component2) => {
if (!Component2.wxsCallMethods) {
Component2.wxsCallMethods = [];
}
Component2.wxsCallMethods.push("_handleListTouchstart", "_handleRefresherTouchstart", "_handleTouchDirectionChange", "_handleScrollViewBounce", "_handleWxsPullingDown", "_handleRefresherTouchmove", "_handleRefresherTouchend", "_handlePropUpdate", "_handleWxsPullingDownStatusChange");
};
if (!Array) {
const _component_z_paging_refresh = common_vendor.resolveComponent("z-paging-refresh");
const _component_z_paging_load_more = common_vendor.resolveComponent("z-paging-load-more");
const _easycom_z_paging_empty_view2 = common_vendor.resolveComponent("z-paging-empty-view");
(_component_z_paging_refresh + _component_z_paging_load_more + _easycom_z_paging_empty_view2)();
}
const _easycom_z_paging_empty_view = () => "../z-paging-empty-view/z-paging-empty-view.js";
if (!Math) {
_easycom_z_paging_empty_view();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: _ctx.cssSafeAreaInsetBottom === -1
}, _ctx.cssSafeAreaInsetBottom === -1 ? {} : {}, {
b: _ctx.showF2 && _ctx.showRefresherF2
}, _ctx.showF2 && _ctx.showRefresherF2 ? {
c: common_vendor.o(() => {
}),
d: common_vendor.s({
"transform": _ctx.f2Transform,
"transition": `transform .2s linear`,
"height": _ctx.superContentHeight + "px",
"z-index": _ctx.f2ZIndex
})
} : {}, {
e: !_ctx.usePageScroll && _ctx.zSlots.top
}, !_ctx.usePageScroll && _ctx.zSlots.top ? {} : _ctx.usePageScroll && _ctx.zSlots.top ? {
g: common_vendor.o(() => {
}),
h: common_vendor.s({
"top": `${_ctx.windowTop}px`,
"z-index": _ctx.topZIndex
})
} : {}, {
f: _ctx.usePageScroll && _ctx.zSlots.top,
i: _ctx.zSlots.left
}, _ctx.zSlots.left ? {
j: _ctx.finalIsOldWebView ? 1 : ""
} : {}, {
k: _ctx.finalRefresherFixedBacHeight > 0
}, _ctx.finalRefresherFixedBacHeight > 0 ? {
l: common_vendor.s({
"background": _ctx.refresherFixedBackground,
"height": `${_ctx.finalRefresherFixedBacHeight}px`
})
} : {}, {
m: _ctx.showRefresher
}, _ctx.showRefresher ? common_vendor.e({
n: _ctx.useRefresherStatusBarPlaceholder
}, _ctx.useRefresherStatusBarPlaceholder ? {
o: common_vendor.s({
"height": `${_ctx.statusBarHeight}px`
})
} : {}, {
p: !(_ctx.zSlots.refresherComplete && _ctx.refresherStatus === _ctx.R.Complete) && !(_ctx.zSlots.refresherF2 && _ctx.refresherStatus === _ctx.R.GoF2)
}, !(_ctx.zSlots.refresherComplete && _ctx.refresherStatus === _ctx.R.Complete) && !(_ctx.zSlots.refresherF2 && _ctx.refresherStatus === _ctx.R.GoF2) ? {
q: common_vendor.r("refresher", {
refresherStatus: _ctx.refresherStatus
})
} : {}, {
r: _ctx.zSlots.refresherComplete && _ctx.refresherStatus === _ctx.R.Complete
}, _ctx.zSlots.refresherComplete && _ctx.refresherStatus === _ctx.R.Complete ? {} : _ctx.zSlots.refresherF2 && _ctx.refresherStatus === _ctx.R.GoF2 ? {} : !_ctx.showCustomRefresher ? {
v: common_vendor.sr("refresh", "1aa372d7-0"),
w: common_vendor.s({
"height": `${_ctx.finalRefresherThreshold - _ctx.finalRefresherThresholdPlaceholder}px`
}),
x: common_vendor.p({
status: _ctx.refresherStatus,
defaultThemeStyle: _ctx.finalRefresherThemeStyle,
defaultText: _ctx.finalRefresherDefaultText,
isIos: _ctx.isIos,
pullingText: _ctx.finalRefresherPullingText,
refreshingText: _ctx.finalRefresherRefreshingText,
completeText: _ctx.finalRefresherCompleteText,
goF2Text: _ctx.finalRefresherGoF2Text,
defaultImg: _ctx.refresherDefaultImg,
pullingImg: _ctx.refresherPullingImg,
refreshingImg: _ctx.refresherRefreshingImg,
completeImg: _ctx.refresherCompleteImg,
refreshingAnimated: _ctx.refresherRefreshingAnimated,
showUpdateTime: _ctx.showRefresherUpdateTime,
updateTimeKey: _ctx.refresherUpdateTimeKey,
updateTimeTextMap: _ctx.finalRefresherUpdateTimeTextMap,
imgStyle: _ctx.refresherImgStyle,
titleStyle: _ctx.refresherTitleStyle,
updateTimeStyle: _ctx.refresherUpdateTimeStyle,
unit: _ctx.unit
})
} : {}, {
s: _ctx.zSlots.refresherF2 && _ctx.refresherStatus === _ctx.R.GoF2,
t: !_ctx.showCustomRefresher,
y: common_vendor.s({
"height": `${_ctx.finalRefresherThreshold}px`,
"background": _ctx.refresherBackground
}),
z: common_vendor.s({
"margin-top": `-${_ctx.finalRefresherThreshold + _ctx.refresherThresholdUpdateTag}px`,
"background": _ctx.refresherBackground,
"opacity": _ctx.isTouchmoving ? 1 : 0
})
}) : {}, {
A: _ctx.showLoading && _ctx.zSlots.loading && !_ctx.loadingFullFixed
}, _ctx.showLoading && _ctx.zSlots.loading && !_ctx.loadingFullFixed ? {} : {}, {
B: _ctx.useVirtualList
}, _ctx.useVirtualList ? {
C: common_vendor.s({
height: _ctx.virtualPlaceholderTopHeight + "px"
})
} : {}, {
D: _ctx.finalUseInnerList
}, _ctx.finalUseInnerList ? common_vendor.e({
E: _ctx.finalUseVirtualList
}, _ctx.finalUseVirtualList ? {
F: common_vendor.f(_ctx.virtualList, (item, index, i0) => {
return common_vendor.e(_ctx.useCompatibilityMode ? {} : {
a: "cell-" + i0,
b: common_vendor.r("cell", {
item,
index: _ctx.virtualTopRangeIndex + index
}, i0)
}, {
c: `${_ctx.fianlVirtualCellIdPrefix}-${item[_ctx.virtualCellIndexKey]}`,
d: item["zp_unique_index"],
e: common_vendor.o(($event) => _ctx._innerCellClick(item, _ctx.virtualTopRangeIndex + index), item["zp_unique_index"])
});
}),
G: _ctx.useCompatibilityMode,
H: common_vendor.s(_ctx.innerCellStyle)
} : {
I: common_vendor.f(_ctx.realTotalData, (item, index, i0) => {
return {
a: "cell-" + i0,
b: common_vendor.r("cell", {
item,
index
}, i0),
c: index,
d: common_vendor.o(($event) => _ctx._innerCellClick(item, index), index)
};
})
}, {
J: common_vendor.s(_ctx.innerListStyle)
}) : {}, {
K: _ctx.useChatRecordMode && _ctx.realTotalData.length >= _ctx.defaultPageSize && (_ctx.loadingStatus !== _ctx.M.NoMore || _ctx.zSlots.chatNoMore) && (_ctx.realTotalData.length || _ctx.showChatLoadingWhenReload && _ctx.showLoading) && !_ctx.isFirstPageAndNoMore
}, _ctx.useChatRecordMode && _ctx.realTotalData.length >= _ctx.defaultPageSize && (_ctx.loadingStatus !== _ctx.M.NoMore || _ctx.zSlots.chatNoMore) && (_ctx.realTotalData.length || _ctx.showChatLoadingWhenReload && _ctx.showLoading) && !_ctx.isFirstPageAndNoMore ? common_vendor.e({
L: _ctx.loadingStatus === _ctx.M.NoMore && _ctx.zSlots.chatNoMore
}, _ctx.loadingStatus === _ctx.M.NoMore && _ctx.zSlots.chatNoMore ? {} : common_vendor.e({
M: _ctx.zSlots.chatLoading
}, _ctx.zSlots.chatLoading ? {
N: common_vendor.r("chatLoading", {
loadingMoreStatus: _ctx.loadingStatus
})
} : {
O: common_vendor.o(($event) => _ctx._onLoadingMore("click")),
P: common_vendor.p({
zConfig: _ctx.zLoadMoreConfig
})
}), {
Q: common_vendor.s(_ctx.chatRecordRotateStyle)
}) : {}, {
R: _ctx.useVirtualList
}, _ctx.useVirtualList ? {
S: common_vendor.s({
height: _ctx.virtualPlaceholderBottomHeight + "px"
})
} : {}, {
T: _ctx.showLoadingMoreDefault
}, _ctx.showLoadingMoreDefault ? {} : _ctx.showLoadingMoreLoading ? {} : _ctx.showLoadingMoreNoMore ? {} : _ctx.showLoadingMoreFail ? {} : _ctx.showLoadingMoreCustom ? {
Y: common_vendor.o(($event) => _ctx._onLoadingMore("click")),
Z: common_vendor.p({
zConfig: _ctx.zLoadMoreConfig
})
} : {}, {
U: _ctx.showLoadingMoreLoading,
V: _ctx.showLoadingMoreNoMore,
W: _ctx.showLoadingMoreFail,
X: _ctx.showLoadingMoreCustom,
aa: _ctx.safeAreaInsetBottom && _ctx.useSafeAreaPlaceholder && !_ctx.useChatRecordMode
}, _ctx.safeAreaInsetBottom && _ctx.useSafeAreaPlaceholder && !_ctx.useChatRecordMode ? {
ab: common_vendor.s({
height: _ctx.safeAreaBottom + "px"
})
} : {}, {
ac: common_vendor.s(_ctx.finalPlaceholderTopHeightStyle),
ad: common_vendor.s(_ctx.finalPagingContentStyle),
ae: _ctx.showEmpty
}, _ctx.showEmpty ? common_vendor.e({
af: _ctx.zSlots.empty
}, _ctx.zSlots.empty ? {
ag: common_vendor.r("empty", {
isLoadFailed: _ctx.isLoadFailed
})
} : {
ah: common_vendor.o(_ctx._emptyViewReload),
ai: common_vendor.o(_ctx._emptyViewClick),
aj: common_vendor.p({
emptyViewImg: _ctx.finalEmptyViewImg,
emptyViewText: _ctx.finalEmptyViewText,
showEmptyViewReload: _ctx.finalShowEmptyViewReload,
emptyViewReloadText: _ctx.finalEmptyViewReloadText,
isLoadFailed: _ctx.isLoadFailed,
emptyViewStyle: _ctx.emptyViewStyle,
emptyViewTitleStyle: _ctx.emptyViewTitleStyle,
emptyViewImgStyle: _ctx.emptyViewImgStyle,
emptyViewReloadStyle: _ctx.emptyViewReloadStyle,
emptyViewZIndex: _ctx.emptyViewZIndex,
emptyViewFixed: _ctx.emptyViewFixed,
unit: _ctx.unit
})
}, {
ak: _ctx.emptyViewCenter ? 1 : "",
al: common_vendor.s(_ctx.emptyViewSuperStyle),
am: common_vendor.s(_ctx.chatRecordRotateStyle)
}) : {}, {
an: common_vendor.s({
justifyContent: _ctx.useChatRecordMode ? "flex-end" : "flex-start"
}),
ao: common_vendor.s(_ctx.scrollViewInStyle),
ap: common_vendor.s({
"transform": _ctx.finalRefresherTransform,
"transition": _ctx.refresherTransition
}),
aq: _ctx.wxsPropType,
ar: _ctx.finalRefresherThreshold,
as: _ctx.refresherF2Enabled,
at: _ctx.finalRefresherF2Threshold,
av: _ctx.isIos,
aw: _ctx.loading || _ctx.isRefresherInComplete,
ax: _ctx.useChatRecordMode,
ay: _ctx.refresherEnabled,
az: _ctx.useCustomRefresher,
aA: _ctx.wxsPageScrollTop,
aB: _ctx.wxsScrollTop,
aC: _ctx.refresherMaxAngle,
aD: _ctx.refresherNoTransform,
aE: _ctx.refresherAngleEnableChangeContinued,
aF: _ctx.usePageScroll,
aG: _ctx.watchTouchDirectionChange,
aH: _ctx.isTouchmoving,
aI: _ctx.finalRefresherOutRate,
aJ: _ctx.finalRefresherPullRate,
aK: _ctx.hasTouchmove,
aL: !_ctx.usePageScroll ? 1 : "",
aM: !_ctx.showScrollbar ? 1 : "",
aN: common_vendor.s(_ctx.chatRecordRotateStyle),
aO: _ctx.scrollTop,
aP: _ctx.scrollLeft,
aQ: _ctx.scrollX,
aR: _ctx.finalScrollable,
aS: _ctx.finalEnableBackToTop,
aT: _ctx.showScrollbar,
aU: _ctx.finalScrollWithAnimation,
aV: _ctx.scrollIntoView,
aW: _ctx.finalLowerThreshold,
aX: _ctx.finalRefresherEnabled && !_ctx.useCustomRefresher,
aY: _ctx.finalRefresherThreshold,
aZ: _ctx.finalRefresherDefaultStyle,
ba: _ctx.refresherBackground,
bb: _ctx.finalRefresherTriggered,
bc: common_vendor.o((...args) => _ctx._scroll && _ctx._scroll(...args)),
bd: common_vendor.o((...args) => _ctx._onScrollToLower && _ctx._onScrollToLower(...args)),
be: common_vendor.o((...args) => _ctx._onScrollToUpper && _ctx._onScrollToUpper(...args)),
bf: common_vendor.o((...args) => _ctx._onRestore && _ctx._onRestore(...args)),
bg: common_vendor.o(($event) => _ctx._onRefresh(true)),
bh: _ctx.finalIsOldWebView ? 1 : "",
bi: common_vendor.s(_ctx.scrollViewContainerStyle),
bj: _ctx.zSlots.right
}, _ctx.zSlots.right ? {
bk: _ctx.finalIsOldWebView ? 1 : ""
} : {}, {
bl: !_ctx.usePageScroll ? 1 : "",
bm: common_vendor.s(_ctx.finalScrollViewStyle),
bn: !_ctx.usePageScroll && _ctx.zSlots.bottom
}, !_ctx.usePageScroll && _ctx.zSlots.bottom ? {} : _ctx.usePageScroll && _ctx.zSlots.bottom ? {
bp: common_vendor.o(() => {
}),
bq: common_vendor.s({
"bottom": `${_ctx.windowBottom}px`
})
} : {}, {
bo: _ctx.usePageScroll && _ctx.zSlots.bottom,
br: _ctx.useChatRecordMode && _ctx.autoAdjustPositionWhenChat
}, _ctx.useChatRecordMode && _ctx.autoAdjustPositionWhenChat ? {
bs: common_vendor.s({
height: _ctx.chatRecordModeSafeAreaBottom + "px"
}),
bt: common_vendor.s({
height: _ctx.keyboardHeight + "px"
})
} : {}, {
bv: _ctx.bottomBgColor,
bw: _ctx.showBackToTopClass
}, _ctx.showBackToTopClass ? common_vendor.e({
bx: _ctx.zSlots.backToTop
}, _ctx.zSlots.backToTop ? {} : {
by: _ctx.useChatRecordMode && !_ctx.backToTopImg.length ? 1 : "",
bz: _ctx.backToTopImg.length ? _ctx.backToTopImg : _ctx.base64BackToTop
}, {
bA: common_vendor.n(_ctx.finalBackToTopClass),
bB: common_vendor.s(_ctx.finalBackToTopStyle),
bC: common_vendor.o((...args) => _ctx._backToTopClick && _ctx._backToTopClick(...args))
}) : {}, {
bD: _ctx.showLoading && _ctx.zSlots.loading && _ctx.loadingFullFixed
}, _ctx.showLoading && _ctx.zSlots.loading && _ctx.loadingFullFixed ? {} : {}, {
bE: !_ctx.usePageScroll ? 1 : "",
bF: !_ctx.usePageScroll && _ctx.fixed ? 1 : "",
bG: _ctx.usePageScroll ? 1 : "",
bH: _ctx.renderPropScrollTop < 1 ? 1 : "",
bI: _ctx.useChatRecordMode ? 1 : "",
bJ: common_vendor.s(_ctx.finalPagingStyle)
});
}
if (typeof block0 === "function")
block0(uni_modules_zPaging_components_zPaging_js_zPagingMain._sfc_main);
if (typeof block1 === "function")
block1(uni_modules_zPaging_components_zPaging_js_zPagingMain._sfc_main);
const Component = /* @__PURE__ */ common_vendor._export_sfc(uni_modules_zPaging_components_zPaging_js_zPagingMain._sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-1aa372d7"]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/uni_modules/z-paging/components/z-paging/z-paging.js.map
@@ -1,8 +0,0 @@
{
"component": true,
"usingComponents": {
"z-paging-empty-view": "../z-paging-empty-view/z-paging-empty-view",
"z-paging-refresh": "./components/z-paging-refresh",
"z-paging-load-more": "./components/z-paging-load-more"
}
}
File diff suppressed because one or more lines are too long
@@ -1,243 +0,0 @@
/* [z-paging]公共css*/
.z-paging-content.data-v-1aa372d7 {
position: relative;
flex-direction: column;
overflow: hidden;
}
.z-paging-content-full.data-v-1aa372d7 {
display: flex;
width: 100%;
height: 100%;
}
.z-paging-content-fixed.data-v-1aa372d7, .zp-loading-fixed.data-v-1aa372d7 {
position: fixed;
height: auto;
width: auto;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.zp-f2-content.data-v-1aa372d7 {
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: white;
}
.zp-page-top.data-v-1aa372d7, .zp-page-bottom.data-v-1aa372d7 {
width: auto;
position: fixed;
left: 0;
right: 0;
z-index: 999;
}
.zp-page-left.data-v-1aa372d7, .zp-page-right.data-v-1aa372d7 {
height: 100%;
}
.zp-scroll-view-super.data-v-1aa372d7 {
flex: 1;
overflow: hidden;
position: relative;
}
.zp-view-super.data-v-1aa372d7 {
display: flex;
flex-direction: row;
}
.zp-scroll-view-container.data-v-1aa372d7, .zp-scroll-view.data-v-1aa372d7 {
position: relative;
height: 100%;
width: 100%;
}
.zp-absoulte.data-v-1aa372d7 {
position: absolute;
top: 0;
width: auto;
}
.zp-scroll-view-absolute.data-v-1aa372d7 {
position: absolute;
top: 0;
left: 0;
}
.zp-scroll-view-hide-scrollbar.data-v-1aa372d7 ::-webkit-scrollbar {
display: none;
-webkit-appearance: none;
width: 0 !important;
height: 0 !important;
background: transparent;
}
.zp-paging-touch-view.data-v-1aa372d7 {
width: 100%;
height: 100%;
position: relative;
}
.zp-fixed-bac-view.data-v-1aa372d7 {
position: absolute;
width: 100%;
top: 0;
left: 0;
height: 200px;
}
.zp-paging-main.data-v-1aa372d7 {
height: 100%;
display: flex;
flex-direction: column;
}
.zp-paging-container.data-v-1aa372d7 {
flex: 1;
position: relative;
display: flex;
flex-direction: column;
}
.zp-chat-record-loading-custom-image.data-v-1aa372d7 {
width: 35rpx;
height: 35rpx;
animation: loading-flower-1aa372d7 1s linear infinite;
}
.zp-page-bottom-keyboard-placeholder-animate.data-v-1aa372d7 {
transition-property: height;
transition-duration: 0.15s;
will-change: height;
}
.zp-custom-refresher-container.data-v-1aa372d7 {
overflow: hidden;
}
.zp-custom-refresher-refresh.data-v-1aa372d7 {
display: block;
}
.zp-back-to-top.data-v-1aa372d7 {
z-index: 999;
position: absolute;
bottom: 0rpx;
transition-duration: .3s;
transition-property: opacity;
}
.zp-back-to-top-rpx.data-v-1aa372d7 {
width: 76rpx;
height: 76rpx;
bottom: 0rpx;
right: 25rpx;
}
.zp-back-to-top-px.data-v-1aa372d7 {
width: 38px;
height: 38px;
bottom: 0px;
right: 13px;
}
.zp-back-to-top-show.data-v-1aa372d7 {
opacity: 1;
}
.zp-back-to-top-hide.data-v-1aa372d7 {
opacity: 0;
}
.zp-back-to-top-img.data-v-1aa372d7 {
width: 100%;
height: 100%;
z-index: 999;
}
.zp-back-to-top-img-inversion.data-v-1aa372d7 {
transform: rotate(180deg);
}
.zp-empty-view.data-v-1aa372d7 {
flex: 1;
}
.zp-empty-view-center.data-v-1aa372d7 {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.zp-loading-fixed.data-v-1aa372d7 {
z-index: 9999;
}
.zp-safe-area-inset-bottom.data-v-1aa372d7 {
position: absolute;
height: env(safe-area-inset-bottom);
}
.zp-n-refresh-container.data-v-1aa372d7 {
display: flex;
justify-content: center;
width: 750rpx;
}
.zp-n-list-container.data-v-1aa372d7{
display: flex;
flex-direction: row;
flex: 1;
}
/* [z-paging]公用的静态css资源 */
.zp-line-loading-image.data-v-1aa372d7 {
animation: loading-flower-1aa372d7 1s steps(12) infinite;
color: #666666;
}
.zp-line-loading-image-rpx.data-v-1aa372d7 {
margin-right: 8rpx;
width: 34rpx;
height: 34rpx;
}
.zp-line-loading-image-px.data-v-1aa372d7 {
margin-right: 4px;
width: 17px;
height: 17px;
}
.zp-loading-image-ios-rpx.data-v-1aa372d7 {
width: 40rpx;
height: 40rpx;
}
.zp-loading-image-ios-px.data-v-1aa372d7 {
width: 20px;
height: 20px;
}
.zp-loading-image-android-rpx.data-v-1aa372d7 {
width: 34rpx;
height: 34rpx;
}
.zp-loading-image-android-px.data-v-1aa372d7 {
width: 17px;
height: 17px;
}
@keyframes loading-flower-1aa372d7 {
0% {
transform: rotate(0deg);
}
to {
transform: rotate(1turn);
}
}
-27
View File
@@ -1,27 +0,0 @@
"use strict";
const common_vendor = require("../common/vendor.js");
function auth() {
return new Promise((resolve, reject) => {
common_vendor.index.login({
provider: "weixin",
//使用微信登录
onlyAuthorize: true,
//不弹出授权页面,直接进入微信登录流程
success(res) {
if (res.errMsg == "login:ok") {
resolve(res.code);
} else {
common_vendor.index.showToast({
title: res.errMsg,
icon: "error"
});
}
},
fail(err) {
reject(err);
}
});
});
}
exports.auth = auth;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/auth.js.map
-14
View File
@@ -1,14 +0,0 @@
"use strict";
const common_vendor = require("../common/vendor.js");
let BASE_URL = "";
{
const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram;
if (envVersion == "release") {
BASE_URL = "https://prod-casedata.igandan.com/api";
} else {
BASE_URL = "https://dev-casedata.igandan.com/api";
}
}
const BASE_URL$1 = BASE_URL;
exports.BASE_URL = BASE_URL$1;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/config.js.map
-34
View File
@@ -1,34 +0,0 @@
"use strict";
const common_vendor = require("../common/vendor.js");
const utils_pageUrl = require("./pageUrl.js");
function navTo(obj) {
let token = "";
{
const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram;
if (envVersion == "release") {
token = common_vendor.index.getStorageSync("AUTH_TOKEN_CASEDATA");
} else {
token = common_vendor.index.getStorageSync("DEV_AUTH_TOKEN_CASEDATA");
}
}
if (!token) {
let page_url = utils_pageUrl.pageUrl();
common_vendor.index.setStorageSync("redirectUrl", page_url);
common_vendor.index.navigateTo({
url: "/pages/login/login?redirectUrl=has"
});
} else {
{
const pages = getCurrentPages();
let len = pages.length;
common_vendor.index.__f__("log", "at utils/navTo.js:31", len);
if (len >= 10) {
common_vendor.index.redirectTo(obj);
} else {
common_vendor.index.navigateTo(obj);
}
}
}
}
exports.navTo = navTo;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/navTo.js.map
-15
View File
@@ -1,15 +0,0 @@
"use strict";
function pageUrl() {
const pages = getCurrentPages();
const currentPage = pages[pages.length - 1];
const url = currentPage.route;
const options = currentPage.options;
let fullUrl = url + "?";
for (let key in options) {
fullUrl += `${key}=${options[key]}&`;
}
fullUrl = fullUrl.substring(0, fullUrl.length - 1);
return fullUrl;
}
exports.pageUrl = pageUrl;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/pageUrl.js.map
-107
View File
@@ -1,107 +0,0 @@
"use strict";
const common_vendor = require("../common/vendor.js");
const utils_config = require("./config.js");
const utils_pageUrl = require("./pageUrl.js");
const request = (url, data = {}, method = "post", loading = false, contentType = "application/x-www-form-urlencoded") => {
if (loading) {
common_vendor.index.showLoading({
title: "加载中",
mask: true
});
}
let token = "";
{
const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram;
if (envVersion == "release") {
token = common_vendor.index.getStorageSync("AUTH_TOKEN_CASEDATA");
} else {
token = common_vendor.index.getStorageSync("DEV_AUTH_TOKEN_CASEDATA");
}
}
let header = {
"content-type": contentType,
"Authorization": "Bearer " + token
};
return new Promise(function(e, n) {
let timestamp = Date.now();
common_vendor.index.request({
data,
url: url.indexOf("http") != -1 ? url : encodeURI(utils_config.BASE_URL + url + "?timestamp=" + timestamp),
method,
sslVerify: false,
header: url.indexOf("/manager/getSignature4bing") == -1 ? header : {},
timeout: 1e4,
success: async (res) => {
var Authorization_token = res.header.Authorization;
if (Authorization_token) {
{
common_vendor.index.setStorageSync("DEV_AUTH_TOKEN_CASEDATA", Authorization_token);
}
}
if (loading) {
common_vendor.index.hideLoading();
}
if (res.data.code == 200) {
e(res);
} else if (res.data.code == 201) {
common_vendor.index.showModal({
title: "提示",
content: "该作品已被删除",
showCancel: false,
success: function(res2) {
if (res2.confirm) {
common_vendor.index.navigateBack();
}
}
});
n(res);
} else if (res.data.code == 10007) {
n(res);
} else if (res.data.code == 10005) {
common_vendor.index.showToast({
title: res.data.message,
icon: "none"
});
n(res);
} else if (res.data.code == 401 || res.data.code == 403 || res.data.code == 405 || res.data.code == 406) {
{
let freeList = ["/login/wechat/mobile", "/code/phone", "/login/mobile_login", "/index", "/user/check"];
if (freeList.indexOf(url) == -1) {
let page_url = utils_pageUrl.pageUrl();
common_vendor.index.setStorageSync("redirectUrl", page_url);
common_vendor.index.navigateTo({
url: "/pages/login/login?redirectUrl=has"
});
return false;
}
}
} else if (res.data.code == 500) {
common_vendor.index.showToast({
title: res.data.message,
icon: "none"
});
n(res);
} else {
if (url.indexOf("/login/hcp") != -1) {
let H5url = "https://dev-wx.igandan.com";
if (window.location.href.indexOf("//dev-casedata.igandan.com") == -1) {
H5url = "https://wx.igandan.com";
}
window.location.href = H5url + "/hcp/Signup2020online_tologin?back_url=" + encodeURIComponent(window.location.href);
} else {
common_vendor.index.showToast({
title: res.data.message,
icon: "none"
});
n(res);
}
}
},
fail: function(err) {
"request:fail " === err.errMsg && msg("请求数据失败!"), n(err.data);
}
});
});
};
exports.request = request;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/request.js.map
-15
View File
@@ -1,15 +0,0 @@
"use strict";
const throttle = function(fn, wait = 1500) {
var flag = true;
return function() {
if (flag) {
fn.apply(this, arguments);
flag = false;
setTimeout(() => {
flag = true;
}, wait);
}
};
};
exports.throttle = throttle;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/throttle.js.map