feat(api): 添加帮助中心反馈系统和VIP服务功能

- 在ApiClient中新增submitFeedback、myFeedback、helpArticles、helpArticleDetail、
  siteArticles、promotions、vipPackages、createVipOrder、vipOrders等方法
- 添加帮助文章和站点资讯的参数验证逻辑
- 更新测试文件添加新的API方法测试用例
- 在HTML页面中添加反馈、帮助和VIP服务相关页面的脚本引用
- 更新加入家谱页面为完整的申请流程界面
- 修改资讯详情页面为站点资讯展示页面
- 更新AxiosRequestUtil中认证处理逻辑
- 添加世系树渲染的HTML生成函数用于页面复用
- 更新文档中的API契约说明和页面规划
This commit is contained in:
fizzleaf
2026-07-30 16:04:48 +08:00
parent fb1743aa2a
commit 309598bfa6
53 changed files with 6740 additions and 282 deletions
+10 -6
View File
@@ -341,16 +341,19 @@
'<strong>' + escapeHtml(person.name) + '</strong><span>' + escapeHtml(getPersonSummary(person)) + '</span></button>' + branches + '</li>';
}
function renderTree(data) {
var container = query('[data-lineage-tree]');
function renderLineageTreeHtml(data) {
var nodes = normalizeList(data).map(function (item) { return renderTreeNode(item, {}); }).filter(Boolean);
if (!container) return;
if (!nodes.length) {
container.innerHTML = '<div class="api-empty">暂无世系树</div>';
return;
return '<div class="api-empty">暂无世系树</div>';
}
container.innerHTML = '<ul class="lineage-tree">' + nodes.join('') + '</ul>';
return '<ul class="lineage-tree">' + nodes.join('') + '</ul>';
}
function renderTree(data) {
var container = query('[data-lineage-tree]');
if (container) container.innerHTML = renderLineageTreeHtml(data);
}
function renderOptions(data) {
@@ -962,6 +965,7 @@
normalizeLineageBinding: normalizeLineageBinding,
buildLineagePageQuery: buildLineagePageQuery,
normalizeList: normalizeList,
renderLineageTreeHtml: renderLineageTreeHtml,
relationLabel: relationLabel,
shouldRedirectToLogin: shouldRedirectToLogin,
isForbidden: isForbidden,