feat(api): 完善家谱系统API客户端契约
- 实现家谱管理相关方法,包括创建、详情、概览、我的家谱和选项查询 - 添加家谱加入申请功能,支持申请、审核、取消和待审核列表操作 - 集成通知详情获取方法和通知ID安全验证机制 - 完善功德记录、谱文、相册、视频、祭祀活动的完整CRUD操作契约 - 实现家谱成员管理功能,包含成员列表、更新、移除和转让所有者操作 - 优化路径ID验证逻辑,拒绝不安全的数值ID并提供明确错误提示 - 更新测试用例以验证所有新增API方法的路径和请求体白名单机制
This commit is contained in:
+47
-77
@@ -1,4 +1,4 @@
|
||||
<!doctype html>
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
@@ -8,26 +8,12 @@
|
||||
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||
<link rel="stylesheet" href="public/css/profile-module.css" />
|
||||
</head>
|
||||
<body class="page-profile-module" data-member-admin-page data-feature-status="pending" data-feature-message="家谱成员与权限服务正在开发中,当前页面仅保留设计预览。">
|
||||
<body class="page-profile-module" data-member-admin-page>
|
||||
<header class="site-header">
|
||||
<div class="container nav">
|
||||
<a class="brand magnetic" href="profile.html"
|
||||
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||
>
|
||||
<nav class="nav-links">
|
||||
<a href="profile.html">首页</a
|
||||
><a class="active" href="profile-families.html">数字家谱</a
|
||||
><a href="plaza.html">家谱广场</a
|
||||
><a href="profile-content.html">家族文化</a
|
||||
><a href="surname.html">姓氏百科</a><a href="app.html">应用下载</a
|
||||
><a href="help.html">帮助中心</a><a href="about.html">关于我们</a>
|
||||
</nav>
|
||||
<div class="nav-actions">
|
||||
<a href="profile.html">个人中心</a
|
||||
><a class="btn primary magnetic" href="profile-create-family.html"
|
||||
>创建家谱</a
|
||||
>
|
||||
</div>
|
||||
<a class="brand magnetic" href="profile.html"><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a>
|
||||
<nav class="nav-links"><a href="profile.html">首页</a><a class="active" href="profile-families.html">数字家谱</a><a href="profile-content.html">家族文化</a></nav>
|
||||
<div class="nav-actions"><a href="profile.html">个人中心</a><a class="btn primary magnetic" href="profile-tree.html" data-genealogy-context-link>世系人物</a></div>
|
||||
</div>
|
||||
</header>
|
||||
<main>
|
||||
@@ -35,74 +21,58 @@
|
||||
<div class="container">
|
||||
<div class="module-kicker">Family Admin</div>
|
||||
<div class="module-title-row">
|
||||
<div>
|
||||
<h1 data-member-title>家族管理</h1>
|
||||
<p>
|
||||
承接 APP
|
||||
里的世代管理、管理员权限、入谱审核和邀请绑定等后台能力。
|
||||
</p>
|
||||
</div>
|
||||
<a class="btn primary magnetic" href="profile-data.html"
|
||||
>添加成员</a
|
||||
>
|
||||
<div><h1 data-member-title>家族管理</h1><p>查看家谱成员;具备管理权限时可调整成员信息、角色和世系人物绑定。</p></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="section">
|
||||
<div class="container module-layout">
|
||||
<aside class="module-nav">
|
||||
<a href="profile-families.html">我的家谱</a
|
||||
><a href="profile-messages.html">消息中心</a
|
||||
><a class="active" href="profile-family-admin.html">家族管理</a
|
||||
><a href="profile-content.html">内容发布</a
|
||||
><a href="profile-data.html">个人资料</a
|
||||
><a href="profile-services.html">帮助与服务</a>
|
||||
</aside>
|
||||
<aside class="module-nav"><a href="profile-families.html">我的家谱</a><a href="profile-messages.html">消息中心</a><a class="active" href="profile-family-admin.html" data-genealogy-context-link>家族管理</a><a href="profile-tree.html" data-genealogy-context-link>世系图</a><a href="profile-generation.html" data-genealogy-context-link>字辈谱</a></aside>
|
||||
<div class="module-main">
|
||||
<section class="module-panel">
|
||||
<h2>管理入口</h2>
|
||||
<p data-member-overview>家谱概览加载中...</p>
|
||||
<h2>家谱概览</h2>
|
||||
<p data-member-overview>正在加载家谱和当前权限…</p>
|
||||
<div class="module-grid">
|
||||
<a class="module-card tilt-card" href="profile-tree.html" data-feature-link="available" data-genealogy-context-link
|
||||
><span class="icon">世</span>
|
||||
<h3>世系图</h3>
|
||||
<p>查看树谱模式、搜索成员、进入个人资料。</p></a
|
||||
>
|
||||
<a class="module-card tilt-card" href="profile-generation.html" data-feature-link="available" data-genealogy-context-link
|
||||
><span class="icon">辈</span>
|
||||
<h3>字辈谱</h3>
|
||||
<p>维护字辈和各世代人数。</p></a
|
||||
>
|
||||
<a class="module-card tilt-card" href="profile-generation.html" data-feature-link="available" data-genealogy-context-link
|
||||
><span class="icon">代</span>
|
||||
<h3>设置世代</h3>
|
||||
<p>新增、编辑、调整始祖世代。</p></a
|
||||
>
|
||||
<a class="module-card tilt-card" href="profile-messages.html"
|
||||
><span class="icon">审</span>
|
||||
<h3>入谱审核</h3>
|
||||
<p>审核加入家谱与绑定账号申请。</p></a
|
||||
>
|
||||
<a
|
||||
class="module-card tilt-card"
|
||||
href="profile-admin-permissions.html"
|
||||
><span class="icon">权</span>
|
||||
<h3>管理员权限</h3>
|
||||
<p>分配全权、全系、支系管理员。</p></a
|
||||
>
|
||||
<a class="module-card tilt-card" href="profile-invite.html"
|
||||
><span class="icon">邀</span>
|
||||
<h3>邀请家人</h3>
|
||||
<p>生成邀请入口,让亲人加入协作。</p></a
|
||||
>
|
||||
<a class="module-card tilt-card" href="profile-tree.html" data-feature-link="available" data-genealogy-context-link><span class="icon">世</span><h3>世系图</h3><p>查看或维护世系人物与亲属关系。</p></a>
|
||||
<a class="module-card tilt-card" href="profile-generation.html" data-feature-link="available" data-genealogy-context-link><span class="icon">辈</span><h3>字辈谱</h3><p>查看或维护家谱字辈。</p></a>
|
||||
<a class="module-card tilt-card" href="profile-ceremony.html" data-genealogy-context-link><span class="icon">祭</span><h3>祭祀活动</h3><p>维护活动、祭品与受邀名单。</p></a>
|
||||
<a class="module-card tilt-card" href="profile-article.html" data-genealogy-context-link><span class="icon">文</span><h3>谱文</h3><p>查看或维护当前家谱谱文。</p></a>
|
||||
</div>
|
||||
</section>
|
||||
<section class="module-panel">
|
||||
<h2>当前管理员</h2>
|
||||
<!-- 成员列表由 /members 接口渲染,权限按钮会提交 /members/{memberId} -->
|
||||
<div class="module-list" data-member-list>
|
||||
<div class="api-empty">成员加载中...</div>
|
||||
</div>
|
||||
<h2>正常成员</h2>
|
||||
<p>成员新增必须通过后端已有的加入或邀请流程;本页不伪造直接新增成员。</p>
|
||||
<div class="module-list" data-member-list aria-live="polite"><div class="api-empty">成员加载中…</div></div>
|
||||
</section>
|
||||
<section class="module-panel" data-member-management hidden>
|
||||
<h2 data-member-form-title>编辑成员</h2>
|
||||
<form class="editor-form" data-member-form hidden>
|
||||
<div class="editor-two">
|
||||
<div class="editor-field"><label for="memberAdminName">成员名称</label><input id="memberAdminName" name="memberName" type="text" maxlength="50" /></div>
|
||||
<div class="editor-field"><label for="memberAdminRelation">与家谱关系</label><input id="memberAdminRelation" name="relationName" type="text" maxlength="100" /></div>
|
||||
</div>
|
||||
<div class="editor-two">
|
||||
<div class="editor-field"><label for="memberAdminRole">成员角色</label><select id="memberAdminRole" name="roleType" data-member-role-options></select></div>
|
||||
<div class="editor-field"><label for="memberAdminLineage">绑定世系人物</label><select id="memberAdminLineage" name="lineagePersonId" data-member-lineage-options><option value="">不修改世系人物绑定</option></select></div>
|
||||
</div>
|
||||
<p class="upload-status">当前 PC 更新接口不提供解除世系人物绑定;留空表示不修改,不会发送空 ID。</p>
|
||||
<p class="upload-status" data-member-form-status aria-live="polite"></p>
|
||||
<div class="bottom-actions"><button class="btn primary magnetic" type="submit">保存成员</button><button class="btn ghost" type="reset">取消</button></div>
|
||||
</form>
|
||||
</section>
|
||||
<section class="module-panel" data-owner-transfer-section hidden>
|
||||
<h2>转让谱主</h2>
|
||||
<form class="editor-form" data-owner-transfer-form>
|
||||
<div class="editor-field"><label for="ownerTransferTarget">新谱主</label><select id="ownerTransferTarget" name="targetMemberId" data-owner-transfer-target><option value="">请选择新谱主</option></select></div>
|
||||
<p>只能选择当前正常成员。转让后当前账号变为管理员,新谱主受其账号家谱拥有额度约束。</p>
|
||||
<p class="upload-status" data-owner-transfer-status aria-live="polite"></p>
|
||||
<div class="bottom-actions"><button class="btn ghost" type="submit">确认转让谱主</button></div>
|
||||
</form>
|
||||
</section>
|
||||
<section class="module-panel" data-member-leave-section hidden>
|
||||
<h2>退出家谱</h2>
|
||||
<p>退出只停用当前账号的成员关系,不删除世系人物资料;谱主必须先转让谱主。</p>
|
||||
<div class="bottom-actions"><button class="btn ghost" type="button" data-member-leave>退出当前家谱</button></div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
@@ -117,7 +87,7 @@
|
||||
<script src="utils/axios.js"></script>
|
||||
<script src="utils/AxiosRequestUtil.js"></script>
|
||||
<script src="utils/ApiClient.js"></script>
|
||||
<script src="public/js/pending-pages.js"></script>
|
||||
<script src="public/js/member-admin-pages.js"></script>
|
||||
<script src="public/js/page-effects.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user