现在有的接口对接测试完成

This commit is contained in:
2026-07-25 19:19:36 +08:00
parent 8870136d1b
commit 817d85e117
59 changed files with 26623 additions and 1576 deletions
+67
View File
@@ -0,0 +1,67 @@
(function (root, factory) {
if (typeof module === 'object' && module.exports) {
module.exports = factory(root);
return;
}
root.GenealogyEntryPages = factory(root);
if (root.document) {
root.document.addEventListener('DOMContentLoaded', function () {
root.GenealogyEntryPages.init();
});
}
})(typeof globalThis !== 'undefined' ? globalThis : window, function (root) {
'use strict';
var TARGET_LABELS = {
'profile-family-home.html': '家谱主页',
'profile-feed.html': '家族圈动态',
'profile-growth.html': '成长记录',
'profile-relative.html': '亲友往来',
'profile-memo.html': '备忘录',
'profile-tree.html': '世系图',
'profile-generation.html': '字辈谱'
};
function getTargetPage(search) {
var params = new URLSearchParams(String(search === undefined && root.location ? root.location.search : search || '').replace(/^\?/, ''));
var target = params.get('next') || '';
return /^profile-[a-z-]+\.html$/.test(target) ? target : 'profile-family-home.html';
}
function buildStatus(quota, target) {
var source = quota || {};
var details = [];
var label = TARGET_LABELS[target] || '该家谱业务';
if (Number(source.createRemaining) >= 0) details.push('还可创建 ' + source.createRemaining + ' 部');
if (Number(source.joinRemaining) >= 0) details.push('还可加入 ' + source.joinRemaining + ' 部');
return '当前 PC 接口尚未提供“我的家谱”列表或家谱详情,不能伪造家谱编号进入“' + label + '”。' +
(details.length ? ' 已读取额度:' + details.join('') + '。' : '');
}
async function init() {
var status = root.document && root.document.querySelector('[data-genealogy-entry-status]');
var api = root.GenealogyApi && root.GenealogyApi.defaultClient;
var target = getTargetPage();
if (!status) return;
if (!api || !api.genealogyQuota) {
status.textContent = '家谱入口接口初始化失败,请刷新后重试。';
return;
}
try {
status.textContent = buildStatus(await api.genealogyQuota(), target);
} catch (error) {
status.textContent = '无法读取家谱额度,请稍后重试。当前 PC 接口仍未提供家谱列表或详情,不能伪造家谱编号。';
}
}
return {
getTargetPage: getTargetPage,
buildStatus: buildStatus,
init: init
};
});