Files
threeonecheck_web/unpackage/dist/dev/mp-weixin/utils/draftCache.js
2026-07-27 09:27:22 +08:00

83 lines
2.5 KiB
JavaScript

"use strict";
const common_vendor = require("../common/vendor.js");
const DRAFT_NS = {
ASSIGN: "draft_assign",
ACCEPT: "draft_accept",
ACCEPT_APPROVAL: "draft_accept_approval",
RECTIFY: "draft_rectify",
INSPECTION_RESULT: "draft_inspection_result",
INSPECTION_SHEET: "draft_inspection_sheet",
HAZARD_ADD: "draft_hazard_add"
};
function buildDraftKey(namespace, ...parts) {
return [namespace, ...parts.map((p) => String(p ?? ""))].join("_");
}
function buildDraftKeyCompact(namespace, ...parts) {
return [namespace, ...parts.map((p) => String(p ?? "")).filter(Boolean)].join("_");
}
function loadDraftWithFallback(primaryKey, fallbackKeys = []) {
const primary = loadDraft(primaryKey);
if (primary) {
return { data: primary, key: primaryKey, fromFallback: false };
}
for (const fallbackKey of fallbackKeys) {
if (!fallbackKey || fallbackKey === primaryKey)
continue;
const fallback = loadDraft(fallbackKey);
if (fallback) {
return { data: fallback, key: primaryKey, fromFallback: true, fallbackKey };
}
}
return { data: null, key: primaryKey, fromFallback: false };
}
function loadDraft(key) {
if (!key)
return null;
const raw = common_vendor.index.getStorageSync(key);
if (!raw)
return null;
try {
return typeof raw === "string" ? JSON.parse(raw) : raw;
} catch (error) {
common_vendor.index.__f__("error", "at utils/draftCache.js:63", "[draftCache] 解析草稿失败:", key, error);
return null;
}
}
function saveDraftToStorage(key, data) {
if (!key)
return;
common_vendor.index.setStorageSync(
key,
JSON.stringify({
...data,
updatedAt: Date.now()
})
);
}
function removeDraft(key) {
if (!key)
return;
common_vendor.index.removeStorageSync(key);
}
function defaultHasContent(payload) {
if (!payload || typeof payload !== "object")
return false;
return Object.entries(payload).some(([key, value]) => {
if (key === "updatedAt")
return false;
if (Array.isArray(value))
return value.length > 0;
if (value && typeof value === "object")
return Object.keys(value).length > 0;
return value !== "" && value != null;
});
}
exports.DRAFT_NS = DRAFT_NS;
exports.buildDraftKey = buildDraftKey;
exports.buildDraftKeyCompact = buildDraftKeyCompact;
exports.defaultHasContent = defaultHasContent;
exports.loadDraftWithFallback = loadDraftWithFallback;
exports.removeDraft = removeDraft;
exports.saveDraftToStorage = saveDraftToStorage;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/draftCache.js.map