326 lines
10 KiB
JavaScript
326 lines
10 KiB
JavaScript
|
var __renderjsModules={};
|
|||
|
|
|||
|
__renderjsModules.a5d206f8 = (() => {
|
|||
|
var __defProp = Object.defineProperty;
|
|||
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|||
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|||
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|||
|
var __export = (target, all) => {
|
|||
|
for (var name in all)
|
|||
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|||
|
};
|
|||
|
var __copyProps = (to, from, except, desc) => {
|
|||
|
if (from && typeof from === "object" || typeof from === "function") {
|
|||
|
for (let key of __getOwnPropNames(from))
|
|||
|
if (!__hasOwnProp.call(to, key) && key !== except)
|
|||
|
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|||
|
}
|
|||
|
return to;
|
|||
|
};
|
|||
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|||
|
|
|||
|
// <stdin>
|
|||
|
var stdin_exports = {};
|
|||
|
__export(stdin_exports, {
|
|||
|
default: () => stdin_default
|
|||
|
});
|
|||
|
|
|||
|
// src/uni_modules/z-paging/components/z-paging/config/index.js
|
|||
|
var config_default = {};
|
|||
|
|
|||
|
// src/uni_modules/z-paging/components/z-paging/js/z-paging-constant.js
|
|||
|
var z_paging_constant_default = {
|
|||
|
// 当前版本号
|
|||
|
version: "2.7.11",
|
|||
|
// 延迟操作的通用时间
|
|||
|
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"
|
|||
|
};
|
|||
|
|
|||
|
// src/uni_modules/z-paging/components/z-paging/js/z-paging-utils.js
|
|||
|
var storageKey = "Z-PAGING-REFRESHER-TIME-STORAGE-KEY";
|
|||
|
var config = null;
|
|||
|
var configLoaded = false;
|
|||
|
var 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) {
|
|||
|
console.error(`[z-paging]${err}`);
|
|||
|
}
|
|||
|
function delay(callback, ms = z_paging_constant_default.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;
|
|||
|
uni.setStorageSync(storageKey, datas);
|
|||
|
}
|
|||
|
function getRefesrherTime() {
|
|||
|
return uni.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(uni.upx2px(text));
|
|||
|
return Number(text);
|
|||
|
}
|
|||
|
return 0;
|
|||
|
}
|
|||
|
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 (config_default && Object.keys(config_default).length) {
|
|||
|
config = config_default;
|
|||
|
}
|
|||
|
if (!config && uni.$zp) {
|
|||
|
config = uni.$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());
|
|||
|
}
|
|||
|
var z_paging_utils_default = {
|
|||
|
gc,
|
|||
|
setRefesrherTime,
|
|||
|
getRefesrherFormatTimeByKey,
|
|||
|
getTouch,
|
|||
|
getTouchFromZPaging,
|
|||
|
getParent,
|
|||
|
convertToPx,
|
|||
|
getTime,
|
|||
|
getInstanceId,
|
|||
|
consoleErr,
|
|||
|
delay,
|
|||
|
wait,
|
|||
|
isPromise,
|
|||
|
addUnit,
|
|||
|
deepCopy
|
|||
|
};
|
|||
|
|
|||
|
// src/uni_modules/z-paging/components/z-paging/wxs/z-paging-renderjs.js
|
|||
|
var data = {
|
|||
|
startY: 0,
|
|||
|
isTouchFromZPaging: false,
|
|||
|
isUsePageScroll: false,
|
|||
|
isReachedTop: true,
|
|||
|
isIosAndH5: false,
|
|||
|
useChatRecordMode: false,
|
|||
|
appLaunched: false
|
|||
|
};
|
|||
|
var z_paging_renderjs_default = {
|
|||
|
mounted() {
|
|||
|
if (window) {
|
|||
|
this._handleTouch();
|
|||
|
this.$ownerInstance.callMethod("_handlePageLaunch");
|
|||
|
}
|
|||
|
},
|
|||
|
methods: {
|
|||
|
// 接收逻辑层发送的数据(是否是ios+h5)
|
|||
|
renderPropIsIosAndH5Change(newVal) {
|
|||
|
if (newVal === -1)
|
|||
|
return;
|
|||
|
data.isIosAndH5 = newVal;
|
|||
|
},
|
|||
|
// 拦截处理touch事件
|
|||
|
_handleTouch() {
|
|||
|
if (!window.$zPagingRenderJsInited) {
|
|||
|
window.$zPagingRenderJsInited = true;
|
|||
|
window.addEventListener("touchstart", this._handleTouchstart, { passive: true });
|
|||
|
window.addEventListener("touchmove", this._handleTouchmove, { passive: false });
|
|||
|
}
|
|||
|
},
|
|||
|
// 处理touch开始
|
|||
|
_handleTouchstart(e) {
|
|||
|
const touch = z_paging_utils_default.getTouch(e);
|
|||
|
data.startY = touch.touchY;
|
|||
|
const touchResult = z_paging_utils_default.getTouchFromZPaging(e.target);
|
|||
|
data.isTouchFromZPaging = touchResult.isFromZp;
|
|||
|
data.isUsePageScroll = touchResult.isPageScroll;
|
|||
|
data.isReachedTop = touchResult.isReachedTop;
|
|||
|
data.useChatRecordMode = touchResult.isUseChatRecordMode;
|
|||
|
},
|
|||
|
// 处理touch中
|
|||
|
_handleTouchmove(e) {
|
|||
|
const touch = z_paging_utils_default.getTouch(e);
|
|||
|
const moveY = touch.touchY - data.startY;
|
|||
|
if (data.isTouchFromZPaging && (data.isReachedTop && (data.useChatRecordMode ? moveY < 0 : moveY > 0) || !data.useChatRecordMode && data.isIosAndH5 && !data.isUsePageScroll && moveY < 0)) {
|
|||
|
if (e.cancelable && !e.defaultPrevented) {
|
|||
|
e.preventDefault();
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
// 移除touch相关事件监听
|
|||
|
_removeAllEventListener() {
|
|||
|
window.removeEventListener("touchstart");
|
|||
|
window.removeEventListener("touchmove");
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
// <stdin>
|
|||
|
var stdin_default = {
|
|||
|
name: "z-paging",
|
|||
|
mixins: [z_paging_renderjs_default]
|
|||
|
};
|
|||
|
return __toCommonJS(stdin_exports);
|
|||
|
})();
|