修改页面,完成单页模式新增首页返回上一页按钮
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
######################################################################
|
######################################################################
|
||||||
# Build Tools
|
# Build Tools
|
||||||
|
|
||||||
|
/node_modules/
|
||||||
.gradle
|
.gradle
|
||||||
/build/
|
/build/
|
||||||
!gradle/wrapper/gradle-wrapper.jar
|
!gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|||||||
@@ -110,6 +110,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
<script src="public/js/page-effects.js"></script>
|
<script src="public/js/page-effects.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -67,6 +67,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
<script src="public/js/page-effects.js"></script>
|
<script src="public/js/page-effects.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
(function (root, factory) {
|
(function (root, factory) {
|
||||||
// 根配置只负责运行环境与接口基础地址。
|
// 根配置负责运行环境、接口基础地址与全站跳转入口。
|
||||||
if (typeof module === 'object' && module.exports) {
|
if (typeof module === 'object' && module.exports) {
|
||||||
module.exports = factory;
|
module.exports = factory;
|
||||||
return;
|
return;
|
||||||
@@ -12,6 +12,31 @@
|
|||||||
var CLIENT_ID = 'ced7e5f0498645c6ec642dcf450b036f';
|
var CLIENT_ID = 'ced7e5f0498645c6ec642dcf450b036f';
|
||||||
var TENANT_ID = '000000';
|
var TENANT_ID = '000000';
|
||||||
var TOKEN_KEY = 'genealogy_auth_token';
|
var TOKEN_KEY = 'genealogy_auth_token';
|
||||||
|
var BLOCKED_NAVIGATION_PROTOCOL = /^(?:javascript|data|vbscript):/i;
|
||||||
|
|
||||||
|
function createNavigationUtil() {
|
||||||
|
return {
|
||||||
|
open: function (url) {
|
||||||
|
var targetUrl = String(url || '').trim();
|
||||||
|
|
||||||
|
if (!targetUrl || BLOCKED_NAVIGATION_PROTOCOL.test(targetUrl) || typeof root.open !== 'function') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var openedWindow = root.open(targetUrl, '_blank', 'noopener');
|
||||||
|
if (openedWindow) openedWindow.opener = null;
|
||||||
|
return openedWindow;
|
||||||
|
},
|
||||||
|
replace: function (url) {
|
||||||
|
var targetUrl = String(url || '').trim();
|
||||||
|
|
||||||
|
if (!targetUrl || BLOCKED_NAVIGATION_PROTOCOL.test(targetUrl)) return;
|
||||||
|
if (root.location && typeof root.location.replace === 'function') {
|
||||||
|
root.location.replace(targetUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// 这里只维护运行环境和后端基础地址,具体接口路径统一放在 ApiClient 中。
|
// 这里只维护运行环境和后端基础地址,具体接口路径统一放在 ApiClient 中。
|
||||||
var ENVIRONMENTS = {
|
var ENVIRONMENTS = {
|
||||||
@@ -48,6 +73,8 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
root.NavigationUtil = root.NavigationUtil || createNavigationUtil();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getEnvironment: getEnvironment,
|
getEnvironment: getEnvironment,
|
||||||
getApiBaseUrl: getApiBaseUrl,
|
getApiBaseUrl: getApiBaseUrl,
|
||||||
|
|||||||
@@ -123,6 +123,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
<script src="public/js/page-effects.js"></script>
|
<script src="public/js/page-effects.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Vendored
+116
@@ -0,0 +1,116 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>关于我们 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/about.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-about">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a href="plaza.html">家谱广场</a>
|
||||||
|
<a href="culture.html">家族文化</a>
|
||||||
|
<a href="surname.html">姓氏百科</a>
|
||||||
|
<a href="app.html">应用下载</a>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a class="active" href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero about-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">关于我们</div>
|
||||||
|
<h1>用数字化方式守护家族记忆</h1>
|
||||||
|
<p class="lead">
|
||||||
|
代代相传面向家庭、宗亲会与地方文化组织,提供家谱创建、资料管理、文化展示和亲人协作工具。
|
||||||
|
</p>
|
||||||
|
<div class="about-tags">
|
||||||
|
<span>数字家谱</span><span>亲人协作</span><span>文化传承</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card about-seal tilt-card">
|
||||||
|
<div class="seal-orb"></div>
|
||||||
|
<span>传</span>
|
||||||
|
<p>记录家族,连接亲人,传承文化。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section alt values-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>我们重视</h2>
|
||||||
|
<p>让家族资料真实、清晰、可协作,也能长期传下去。</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-3">
|
||||||
|
<div class="card soft value-card tilt-card">
|
||||||
|
<div class="value-icon">真</div>
|
||||||
|
<h3>真实</h3>
|
||||||
|
<p>尊重家族资料来源,鼓励记录出处与修订过程。</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft value-card tilt-card">
|
||||||
|
<div class="value-icon">协</div>
|
||||||
|
<h3>协作</h3>
|
||||||
|
<p>让更多亲人参与补充资料,形成长期维护机制。</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft value-card tilt-card">
|
||||||
|
<div class="value-icon">承</div>
|
||||||
|
<h3>传承</h3>
|
||||||
|
<p>把家族文化整理成可持续保存的数字档案。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+154
@@ -0,0 +1,154 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>应用下载 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/app.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-app" data-promotion-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a href="plaza.html">家谱广场</a>
|
||||||
|
<a href="culture.html">家族文化</a>
|
||||||
|
<a href="surname.html">姓氏百科</a>
|
||||||
|
<a class="active" href="app.html">应用下载</a>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero app-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">移动应用</div>
|
||||||
|
<h1>手机端随时记录,电脑端清晰浏览</h1>
|
||||||
|
<p class="lead">
|
||||||
|
家族成员可以在手机端上传照片、查看家谱、发布动态;电脑端适合浏览门户内容和公开家谱。
|
||||||
|
</p>
|
||||||
|
<div class="hero-buttons">
|
||||||
|
<a class="btn primary magnetic" href="download.html">下载应用</a
|
||||||
|
><a class="btn ghost magnetic" href="help.html">查看帮助</a>
|
||||||
|
</div>
|
||||||
|
<div class="app-stats">
|
||||||
|
<span>相册上传</span><span>视频发布</span><span>家谱查看</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card app-shot-wrap tilt-card">
|
||||||
|
<div class="app-orbit"></div>
|
||||||
|
<img
|
||||||
|
class="phone-shot first"
|
||||||
|
src="public/images/app-home.png"
|
||||||
|
alt="APP首页截图"
|
||||||
|
/>
|
||||||
|
<img
|
||||||
|
class="phone-shot second"
|
||||||
|
src="public/images/app-family-home.png"
|
||||||
|
alt="家谱主页截图"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section alt app-feature-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>移动端能力</h2>
|
||||||
|
<p>
|
||||||
|
手机端适合随时记录家族资料、上传影像并与亲人共同维护。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-4">
|
||||||
|
<div class="card soft app-feature-card tilt-card">
|
||||||
|
<div class="app-icon">谱</div>
|
||||||
|
<h3>创建家谱</h3>
|
||||||
|
<p>手机上快速创建或加入家族空间。</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft app-feature-card tilt-card">
|
||||||
|
<div class="app-icon">相</div>
|
||||||
|
<h3>宣传相册</h3>
|
||||||
|
<p>随手上传老照片、祖屋照片和聚会照片。</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft app-feature-card tilt-card">
|
||||||
|
<div class="app-icon">影</div>
|
||||||
|
<h3>宣传视频</h3>
|
||||||
|
<p>发布家族活动与人物影像。</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft app-feature-card tilt-card">
|
||||||
|
<div class="app-icon">文</div>
|
||||||
|
<h3>谱文详情</h3>
|
||||||
|
<p>阅读谱序、传记和家族文章。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section app-promotion-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>应用推广</h2>
|
||||||
|
<p>展示后台维护的应用推广、公告和下载引导内容。</p>
|
||||||
|
</div>
|
||||||
|
<div class="promotion-list" data-promotion-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取应用推广…</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a
|
||||||
|
><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/app-promotion-pages.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+86
@@ -0,0 +1,86 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>资讯详情 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/article-detail.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-article-detail" data-site-article-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a href="plaza.html">家谱广场</a>
|
||||||
|
<a class="active" href="culture.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="login.html">登录</a><a href="register.html">注册</a>
|
||||||
|
<a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-meta" data-site-article-status role="status" aria-live="polite"></div>
|
||||||
|
</div>
|
||||||
|
<main data-site-article-detail>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取资讯详情…</div>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a
|
||||||
|
><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a
|
||||||
|
><a href="surname.html">姓氏百科</a
|
||||||
|
><a href="news.html">新闻资讯</a
|
||||||
|
><a href="about.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
<script src="public/js/site-news-pages.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+73
@@ -0,0 +1,73 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>儿童个人信息处理规则 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/site-info.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" />
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="news.html">新闻资讯</a>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="login.html">登录</a>
|
||||||
|
<a href="register.html">注册</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="site-info-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div>
|
||||||
|
<div class="site-info-kicker">儿童隐私保护</div>
|
||||||
|
<h1>儿童个人信息处理规则</h1>
|
||||||
|
<p>用于说明儿童个人信息的处理边界、监护人权利和保护措施。</p>
|
||||||
|
</div>
|
||||||
|
<div class="site-info-mark">护</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="site-info-section">
|
||||||
|
<div class="container site-info-layout">
|
||||||
|
<article class="site-info-panel">
|
||||||
|
<div class="site-info-notice">
|
||||||
|
待法务确认:本页面仅建立儿童个人信息规则的访问入口,不构成已生效的规则。发布前必须由运营主体与法务确认适用年龄、监护人授权与完整文本。
|
||||||
|
</div>
|
||||||
|
<h2>正式文本应涵盖</h2>
|
||||||
|
<p>
|
||||||
|
儿童信息处理目的、必要性、监护人同意方式、信息访问更正删除渠道,以及发生个人信息安全事件时的告知安排。
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
<aside class="site-info-panel">
|
||||||
|
<h2>相关文档</h2>
|
||||||
|
<div class="site-info-links">
|
||||||
|
<a href="privacy.html">隐私政策</a>
|
||||||
|
<a href="terms.html">服务协议</a>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="privacy.html">隐私政策</a>
|
||||||
|
<a href="terms.html">服务协议</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
(function(n,i){if(typeof module=="object"&&module.exports){module.exports=i;return}n.GenealogyConfig=i(n)})(typeof globalThis!="undefined"?globalThis:window,function(n){"use strict";var i="ced7e5f0498645c6ec642dcf450b036f",c="000000",p="genealogy_auth_token",o=/^(?:javascript|data|vbscript):/i;function u(){return{open:function(t){var e=String(t||"").trim();if(!e||o.test(e)||typeof n.open!="function")return null;var r=n.open(e,"_blank","noopener");return r&&(r.opener=null),r},replace:function(t){var e=String(t||"").trim();!e||o.test(e)||n.location&&typeof n.location.replace=="function"&&n.location.replace(e)}}}var f={development:{apiBaseUrl:"https://backend-api.ddxcjp.cn/"},production:{apiBaseUrl:"https://backend-api.ddxcjp.cn/"}};function a(){var t=n.location||{},e=t.hostname||"";return e==="localhost"||e==="127.0.0.1"||t.port?"development":"production"}function l(){return f[a()].apiBaseUrl}function d(){return{environment:a(),apiBaseUrl:l(),clientId:i,tenantId:c,tokenKey:p}}return n.NavigationUtil=n.NavigationUtil||u(),{getEnvironment:a,getApiBaseUrl:l,getConfig:d}});
|
||||||
Vendored
+177
@@ -0,0 +1,177 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>创建家谱 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/create-genealogy.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-create-genealogy" data-genealogy-create-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a href="plaza.html">家谱广场</a>
|
||||||
|
<a href="culture.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="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic active" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero create-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">创建家谱</div>
|
||||||
|
<h1>创建属于家族的数字空间</h1>
|
||||||
|
<p class="lead">
|
||||||
|
填写姓氏谱名、地区与简介,先建立家谱主页,再逐步邀请亲人共同完善资料。
|
||||||
|
</p>
|
||||||
|
<div class="create-tags">
|
||||||
|
<span>基础资料</span><span>成员世系</span><span>亲人共修</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card process-card tilt-card">
|
||||||
|
<div class="process-orb"></div>
|
||||||
|
<h3>创建流程</h3>
|
||||||
|
<div class="step-list">
|
||||||
|
<p><b>1</b><span>填写基础信息</span></p>
|
||||||
|
<p><b>2</b><span>添加第一批成员</span></p>
|
||||||
|
<p><b>3</b><span>邀请亲人共修</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section alt create-form-section">
|
||||||
|
<div class="container">
|
||||||
|
<form class="card form-card create-form tilt-card" data-genealogy-create-form novalidate aria-describedby="public-create-status">
|
||||||
|
<div class="form-ornament"></div>
|
||||||
|
<h2>家谱信息</h2>
|
||||||
|
<p class="form-note">
|
||||||
|
标有 * 的字段为必填。登录后即可创建,成功后会进入新家谱主页。
|
||||||
|
</p>
|
||||||
|
<p class="form-note" data-genealogy-create-quota role="status" aria-live="polite">正在读取家谱额度…</p>
|
||||||
|
<div class="form-grid">
|
||||||
|
<label class="field" for="publicFamilyName">谱名 <b aria-hidden="true">*</b>
|
||||||
|
<input id="publicFamilyName" class="input" name="genealogyName" placeholder="例如:四川武胜汤氏族谱" required />
|
||||||
|
</label>
|
||||||
|
<label class="field" for="publicFamilySurname">主要姓氏 <b aria-hidden="true">*</b>
|
||||||
|
<input id="publicFamilySurname" class="input" name="surname" placeholder="例如:汤" required />
|
||||||
|
</label>
|
||||||
|
<div class="field" role="group" aria-labelledby="public-family-region-label" aria-describedby="public-region-status public-create-status">
|
||||||
|
<span id="public-family-region-label">家谱所在地 <b aria-hidden="true">*</b></span>
|
||||||
|
<div class="region-picker create-region-picker" data-region-picker>
|
||||||
|
<label for="publicFamilyProvince">省
|
||||||
|
<select id="publicFamilyProvince" class="input" name="provinceCode" data-region-level="province">
|
||||||
|
<option value="">请选择省</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label for="publicFamilyCity">市
|
||||||
|
<select id="publicFamilyCity" class="input" name="cityCode" data-region-level="city">
|
||||||
|
<option value="">请选择市</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label for="publicFamilyDistrict">区县
|
||||||
|
<select id="publicFamilyDistrict" class="input" name="districtCode" data-region-level="district">
|
||||||
|
<option value="">请选择区县</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<input type="hidden" name="regionCode" data-region-code />
|
||||||
|
</div>
|
||||||
|
<div id="public-region-status" class="form-note" data-region-picker-status role="status" aria-live="polite"></div>
|
||||||
|
</div>
|
||||||
|
<label class="field" for="publicAncestralHall">堂号/祠堂
|
||||||
|
<input id="publicAncestralHall" class="input" name="ancestralHall" placeholder="选填" />
|
||||||
|
</label>
|
||||||
|
<label class="field" for="publicOriginPlace">籍贯/起源地
|
||||||
|
<input id="publicOriginPlace" class="input" name="originPlace" placeholder="选填" />
|
||||||
|
</label>
|
||||||
|
<label class="field" for="publicAddressDetail">详细地址
|
||||||
|
<input id="publicAddressDetail" class="input" name="addressDetail" placeholder="选填" />
|
||||||
|
</label>
|
||||||
|
<label class="field" for="publicIntro">家谱简介
|
||||||
|
<textarea id="publicIntro" name="intro" placeholder="选填"></textarea>
|
||||||
|
</label>
|
||||||
|
<label class="field" for="publicVisibility">可见范围
|
||||||
|
<select id="publicVisibility" class="input" name="visibility">
|
||||||
|
<option value="1">公开</option>
|
||||||
|
<option value="2">成员可见</option>
|
||||||
|
<option value="0">私密</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label class="field" for="publicJoinMode">加入方式
|
||||||
|
<select id="publicJoinMode" class="input" name="joinMode" aria-describedby="public-invite-mode-note">
|
||||||
|
<option value="1">审核加入</option>
|
||||||
|
<option value="2">邀请码加入</option>
|
||||||
|
<option value="0">关闭加入</option>
|
||||||
|
</select>
|
||||||
|
<span id="public-invite-mode-note" class="form-note">创建完成后,可在家谱首页的“邀请家人”中生成一次性邀请链接。</span>
|
||||||
|
</label>
|
||||||
|
<div id="public-create-status" class="form-note" data-genealogy-create-status role="status" aria-live="polite"></div>
|
||||||
|
<div>
|
||||||
|
<button class="btn primary magnetic submit-btn" type="submit" data-genealogy-create-submit>提交创建</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/js/region-pages.js"></script>
|
||||||
|
<script src="public/js/genealogy-entry-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+129
@@ -0,0 +1,129 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>家族文化 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/culture.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-culture">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a href="plaza.html">家谱广场</a>
|
||||||
|
<a class="active" href="culture.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="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero culture-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">家族文化</div>
|
||||||
|
<h1>让家风、族训与故事被认真保存</h1>
|
||||||
|
<p class="lead">
|
||||||
|
家族文化承接新闻、知识、公告和故事,让谱文之外的记忆也能被阅读、分享和传承。
|
||||||
|
</p>
|
||||||
|
<div class="culture-stats">
|
||||||
|
<span>家风家训</span><span>谱文故事</span><span>使用指南</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card culture-quote tilt-card">
|
||||||
|
<div class="quote-moon"></div>
|
||||||
|
<span>家风</span>
|
||||||
|
<p>
|
||||||
|
一张老照片、一段口述、一篇谱序,都可以成为后人理解家族的入口。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section alt article-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>精选文章</h2>
|
||||||
|
<p>用可阅读的内容入口连接家谱知识、姓氏文化和平台使用指南。</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-3">
|
||||||
|
<a class="article-card tilt-card" href="article-detail.html">
|
||||||
|
<div class="article-cover"><span>家谱知识</span></div>
|
||||||
|
<div class="article-body">
|
||||||
|
<h3>为什么家谱不只是一本名册</h3>
|
||||||
|
<p>
|
||||||
|
家谱记录的是家族关系,也记录一个家庭如何理解自己的来处与传承。
|
||||||
|
</p>
|
||||||
|
<span>家谱知识 · 2026.05</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="article-card tilt-card" href="article-detail.html">
|
||||||
|
<div class="article-cover"><span>姓氏文化</span></div>
|
||||||
|
<div class="article-body">
|
||||||
|
<h3>字辈在家族传承中的作用</h3>
|
||||||
|
<p>字辈让不同世代的人能找到自己的位置,也让同族称谓更清晰。</p>
|
||||||
|
<span>姓氏文化 · 2026.05</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="article-card tilt-card" href="article-detail.html">
|
||||||
|
<div class="article-cover"><span>使用指南</span></div>
|
||||||
|
<div class="article-body">
|
||||||
|
<h3>如何邀请亲人共同完善家谱</h3>
|
||||||
|
<p>从创建家谱、生成邀请码到设置管理员,逐步建立协作流程。</p>
|
||||||
|
<span>使用指南 · 2026.05</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+105
@@ -0,0 +1,105 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>下载应用 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/download.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-download" data-promotion-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a><a href="genealogy.html">数字家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a><a href="culture.html">家族文化</a
|
||||||
|
><a href="surname.html">姓氏百科</a
|
||||||
|
><a class="active" href="app.html">应用下载</a
|
||||||
|
><a href="help.html">帮助中心</a><a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero download-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">应用下载</div>
|
||||||
|
<h1>下载代代相传 APP</h1>
|
||||||
|
<p class="lead">
|
||||||
|
手机端适合日常上传宣传相册、发布宣传视频、查看家谱和补充资料。
|
||||||
|
</p>
|
||||||
|
<div class="detail-actions">
|
||||||
|
<a class="btn primary magnetic" href="app.html">查看应用介绍</a
|
||||||
|
><a class="btn ghost magnetic" href="help.html">安装帮助</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card qr-card tilt-card">
|
||||||
|
<h3>选择下载方式</h3>
|
||||||
|
<p>请在下方选择平台当前提供的可用下载入口。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section alt">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>下载方式</h2>
|
||||||
|
<p>下载地址会根据平台当前配置显示;没有可用入口时会明确提示。</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-3" data-promotion-download-list>
|
||||||
|
<div class="api-empty">下载推广内容加载中</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a
|
||||||
|
><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a
|
||||||
|
><a href="surname.html">姓氏百科</a
|
||||||
|
><a href="article-detail.html">家谱知识</a
|
||||||
|
><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+141
@@ -0,0 +1,141 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>四川武胜汤氏族 - 家谱详情 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/family-detail.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-family-detail">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a class="active" href="plaza.html">家谱广场</a>
|
||||||
|
<a href="culture.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="login.html">登录</a><a href="register.html">注册</a>
|
||||||
|
<a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main data-family-detail>
|
||||||
|
<section class="inner-hero detail-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">家谱详情</div>
|
||||||
|
<h1 data-family-text="title">四川武胜汤氏族</h1>
|
||||||
|
<p class="lead" data-family-text="intro|description|summary" data-fallback="公开展示家族源流、世系概览、字辈排行、谱文资料和宣传相册,让访客快速理解这一本家谱的内容结构。">
|
||||||
|
公开展示家族源流、世系概览、字辈排行、谱文资料和宣传相册,让访客快速理解这一本家谱的内容结构。
|
||||||
|
</p>
|
||||||
|
<div class="detail-actions">
|
||||||
|
<a class="btn primary magnetic" href="join-genealogy.html" data-family-join-link
|
||||||
|
>申请加入</a
|
||||||
|
>
|
||||||
|
<a class="btn ghost magnetic" href="plaza.html">返回广场</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card family-summary tilt-card">
|
||||||
|
<span class="summary-badge">公开家谱</span>
|
||||||
|
<h3 data-family-text="title">汤氏族谱</h3>
|
||||||
|
<div class="summary-grid" data-family-summary>
|
||||||
|
<span><b>128</b>成员</span>
|
||||||
|
<span><b>6</b>世代</span>
|
||||||
|
<span><b>18</b>谱文</span>
|
||||||
|
<span><b>7</b>相册</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section alt">
|
||||||
|
<div class="container detail-layout">
|
||||||
|
<aside class="detail-panel tilt-card">
|
||||||
|
<h3>家谱信息</h3>
|
||||||
|
<p><b>主要姓氏:</b><span data-family-text="surname" data-fallback="汤">汤</span></p>
|
||||||
|
<p><b>地区:</b><span data-family-text="addressDetail|regionName|originPlace" data-fallback="四川武胜">四川武胜</span></p>
|
||||||
|
<p><b>堂号:</b><span data-family-text="ancestralHall" data-fallback="中山堂">中山堂</span></p>
|
||||||
|
<p><b>维护方式:</b><span data-family-text="joinModeName|joinMode" data-fallback="多人共修">多人共修</span></p>
|
||||||
|
</aside>
|
||||||
|
<div class="detail-main">
|
||||||
|
<article class="content-card tilt-card">
|
||||||
|
<h2>家族简介</h2>
|
||||||
|
<p data-family-text="intro|description|summary" data-fallback="本谱以四川武胜汤氏族人为主体,整理始祖源流、迁徙线索、字辈排行、重要人物与家风故事。公开内容用于展示家族文化,完整成员资料需申请加入后查看。">
|
||||||
|
本谱以四川武胜汤氏族人为主体,整理始祖源流、迁徙线索、字辈排行、重要人物与家风故事。公开内容用于展示家族文化,完整成员资料需申请加入后查看。
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
<div class="grid-3">
|
||||||
|
<div class="mini-card tilt-card">
|
||||||
|
<h3>世系概览</h3>
|
||||||
|
<p>按代际关系梳理成员结构,帮助族人找到自己的位置。</p>
|
||||||
|
</div>
|
||||||
|
<div class="mini-card tilt-card">
|
||||||
|
<h3>谱文资料</h3>
|
||||||
|
<p>收录谱序、家训、修谱说明和公开纪念文章。</p>
|
||||||
|
</div>
|
||||||
|
<div class="mini-card tilt-card">
|
||||||
|
<h3>宣传相册</h3>
|
||||||
|
<p>展示祠堂祖屋、修谱活动、老照片和家族纪念内容。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a
|
||||||
|
><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a
|
||||||
|
><a href="surname.html">姓氏百科</a
|
||||||
|
><a href="article-detail.html">家谱知识</a
|
||||||
|
><a href="about.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+54
@@ -0,0 +1,54 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>无访问权限 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/site-info.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img
|
||||||
|
class="brand-logo"
|
||||||
|
src="public/images/logo.png"
|
||||||
|
alt="我们的家谱,代代相传"
|
||||||
|
/></a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a><a href="help.html">帮助中心</a
|
||||||
|
><a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions"><a href="login.html">登录</a></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="site-info-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="site-info-status">
|
||||||
|
<div class="site-info-mark">!</div>
|
||||||
|
<h2>无访问权限</h2>
|
||||||
|
<p>
|
||||||
|
当前账号没有访问此内容的权限。请确认登录账号,或联系家谱管理员处理。
|
||||||
|
</p>
|
||||||
|
<div class="site-info-actions">
|
||||||
|
<a class="btn primary magnetic" href="index.html">返回首页</a
|
||||||
|
><a class="btn ghost magnetic" href="help.html">查看帮助</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="terms.html">服务协议</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+65
@@ -0,0 +1,65 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>找回密码 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/tac/css/tac.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/forgot-password.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-forgot-password">
|
||||||
|
<main class="auth-layout auth-scenic-layout recover-layout">
|
||||||
|
<a class="brand auth-page-brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<section
|
||||||
|
class="card form-card auth-card recover-card"
|
||||||
|
aria-labelledby="recover-title"
|
||||||
|
>
|
||||||
|
<div class="eyebrow">找回密码</div>
|
||||||
|
<h1 id="recover-title">找回密码</h1>
|
||||||
|
<p class="lead">输入注册手机号,获取验证码后重设登录密码。</p>
|
||||||
|
<form id="password-reset-form" class="form-grid" novalidate>
|
||||||
|
<label class="auth-field" for="reset-phone">
|
||||||
|
<span>手机号 <b aria-hidden="true">*</b></span>
|
||||||
|
<input id="reset-phone" class="input" name="phone" type="tel" inputmode="numeric" autocomplete="tel" maxlength="11" placeholder="请输入注册手机号" required />
|
||||||
|
</label>
|
||||||
|
<div class="auth-field">
|
||||||
|
<label for="reset-sms-code">短信验证码 <b aria-hidden="true">*</b></label>
|
||||||
|
<div class="code-row">
|
||||||
|
<input id="reset-sms-code" class="input" name="smsCode" autocomplete="one-time-code" inputmode="numeric" maxlength="4" pattern="\d{4}" placeholder="请输入四位验证码" required />
|
||||||
|
<button class="btn ghost" type="button" data-api-send-code>获取验证码</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<label class="auth-field" for="reset-password">
|
||||||
|
<span>新密码 <b aria-hidden="true">*</b></span>
|
||||||
|
<input id="reset-password" class="input" name="newPassword" type="password" autocomplete="new-password" placeholder="至少六位" required />
|
||||||
|
</label>
|
||||||
|
<label class="auth-field" for="reset-confirm-password">
|
||||||
|
<span>确认新密码 <b aria-hidden="true">*</b></span>
|
||||||
|
<input id="reset-confirm-password" class="input" name="confirmPassword" type="password" autocomplete="new-password" placeholder="请再次输入新密码" required />
|
||||||
|
</label>
|
||||||
|
<input type="hidden" name="validToken" />
|
||||||
|
<div id="reset-status" class="auth-form-status" role="status" aria-live="polite" data-auth-form-status></div>
|
||||||
|
<button class="btn primary" type="submit">重设密码</button>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/MessageUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/tac/js/tac.min.js"></script>
|
||||||
|
<script src="public/js/captcha-pages.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/js/auth-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+157
@@ -0,0 +1,157 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>数字家谱 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/genealogy.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-genealogy">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a class="active" href="genealogy.html">数字家谱</a>
|
||||||
|
<a href="plaza.html">家谱广场</a>
|
||||||
|
<a href="culture.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="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero genealogy-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">数字家谱</div>
|
||||||
|
<h1>把成员关系整理成清晰可查的数字家谱</h1>
|
||||||
|
<p class="lead">
|
||||||
|
从始祖、分支、排行到个人资料,数字家谱帮助家族建立长期可维护的成员档案和世系关系。
|
||||||
|
</p>
|
||||||
|
<div class="genealogy-stats">
|
||||||
|
<div><strong>8</strong><span>资料模块</span></div>
|
||||||
|
<div><strong>3步</strong><span>快速建谱</span></div>
|
||||||
|
<div><strong>多人</strong><span>协作共修</span></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card tree-preview tilt-card">
|
||||||
|
<div class="tree-glow"></div>
|
||||||
|
<div class="tree-row root"><span>始祖</span></div>
|
||||||
|
<div class="tree-line"></div>
|
||||||
|
<div class="tree-row branch">
|
||||||
|
<span>长房</span><span>二房</span><span>三房</span>
|
||||||
|
</div>
|
||||||
|
<div class="tree-line short"></div>
|
||||||
|
<div class="tree-row generation">
|
||||||
|
<span>第六世</span><span>第七世</span><span>第八世</span
|
||||||
|
><span>第九世</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section alt capability-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>核心能力</h2>
|
||||||
|
<p>
|
||||||
|
围绕修谱、查谱和协作维护,把家族资料从零散记录整理成完整档案。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-4">
|
||||||
|
<div class="card soft feature-card tilt-card">
|
||||||
|
<div class="icon-word">世</div>
|
||||||
|
<h3>世系图</h3>
|
||||||
|
<p>
|
||||||
|
以树谱方式展示成员关系,支持查看个人资料、添加亲属和调整排行。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft feature-card tilt-card">
|
||||||
|
<div class="icon-word">字</div>
|
||||||
|
<h3>字辈谱</h3>
|
||||||
|
<p>记录各代字辈与人数,让世代脉络更加清楚。</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft feature-card tilt-card">
|
||||||
|
<div class="icon-word">文</div>
|
||||||
|
<h3>谱文资料</h3>
|
||||||
|
<p>沉淀谱序、家训、人物传记和修谱说明。</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft feature-card tilt-card">
|
||||||
|
<div class="icon-word">权</div>
|
||||||
|
<h3>权限管理</h3>
|
||||||
|
<p>设置管理员、内容可见范围与入谱审核,保护家族隐私。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section coedit-section">
|
||||||
|
<div class="container grid-2">
|
||||||
|
<div class="card dark coedit-card tilt-card">
|
||||||
|
<h2>适合多人共修</h2>
|
||||||
|
<p>
|
||||||
|
家族成员可以分别补充照片、成员资料、谱文和故事,再由管理员统一审核,避免资料越传越散。
|
||||||
|
</p>
|
||||||
|
<a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>开始创建</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="card process-card tilt-card">
|
||||||
|
<h3>修谱流程</h3>
|
||||||
|
<div class="step-list">
|
||||||
|
<p><b>1</b><span>创建家谱并填写姓氏、地区、堂号</span></p>
|
||||||
|
<p><b>2</b><span>录入第一批成员,建立上下辈关系</span></p>
|
||||||
|
<p><b>3</b><span>邀请亲人加入,共同完善资料</span></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+117
@@ -0,0 +1,117 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>帮助中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/help.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-help">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a href="plaza.html">家谱广场</a>
|
||||||
|
<a href="culture.html">家族文化</a>
|
||||||
|
<a href="surname.html">姓氏百科</a>
|
||||||
|
<a href="app.html">应用下载</a>
|
||||||
|
<a class="active" href="help.html">帮助中心</a>
|
||||||
|
<a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero help-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">帮助中心</div>
|
||||||
|
<h1>从创建到协作,快速解决常见问题</h1>
|
||||||
|
<p class="lead">
|
||||||
|
帮助内容由平台持续维护,覆盖账号、家谱和内容使用中的常见问题。
|
||||||
|
</p>
|
||||||
|
<div class="help-tags">
|
||||||
|
<span>账号安全</span><span>家谱使用</span><span>内容管理</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card help-card tilt-card">
|
||||||
|
<div class="help-orb"></div>
|
||||||
|
<div class="help-icon">?</div>
|
||||||
|
<h3>需要人工协助?</h3>
|
||||||
|
<p class="muted">
|
||||||
|
遇到资料导入、权限或账号问题,可以提交说明,客服会协助处理。
|
||||||
|
</p>
|
||||||
|
<a class="btn primary magnetic" href="submit-ticket.html"
|
||||||
|
>提交工单</a
|
||||||
|
>
|
||||||
|
<a class="btn ghost magnetic" href="my-tickets.html">我的工单</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section alt faq-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>常见问题</h2>
|
||||||
|
<p>选择问题后读取平台发布的完整解答。</p>
|
||||||
|
<button class="btn ghost" type="button" data-help-refresh>刷新帮助</button>
|
||||||
|
</div>
|
||||||
|
<div class="muted" data-help-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="faq-list is-loading" data-help-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取帮助文章…</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/js/help-pages.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+556
@@ -0,0 +1,556 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>代代相传家谱_在线修家谱_家谱查询_姓氏寻根_祠堂祭祀</title>
|
||||||
|
<meta
|
||||||
|
name="keywords"
|
||||||
|
content="电子家谱,在线修家谱,家谱制作,家谱查询,中国家谱网,寻根,祠堂,祭祀,祭拜,中华传统文化,生命文化,儒释道,姓氏源流;敬祖睦族,忠孝两全,传承家风;族谱网,族记;清明节家谱,过年修家谱,海外寻根"
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="相传相传家谱网,大型生命文化平台,综合儒释道思想,弘扬中华传统文化,提供电子家谱_在线修家谱_网上修家谱,家谱制作_族谱制作_修谱软件,家谱查询_姓氏寻根_寻根问祖_姓氏源流,祠堂祭祀_祭拜_祭奠,弘扬孝敬_忠孝两全_相夫教子_敬祖睦族_慎终追远_传承家风,覆盖清明节家谱_过年修家谱_90后修家谱_海外华人寻根_老家谱电子化,代代相传_薪火相传"
|
||||||
|
/>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/index.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-home">
|
||||||
|
<div class="company-bar">
|
||||||
|
<div class="container">富众鑫科技</div>
|
||||||
|
</div>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img
|
||||||
|
class="brand-logo"
|
||||||
|
src="public/images/logo.png"
|
||||||
|
alt="我们的家谱,代代相传"
|
||||||
|
/></a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a class="active" href="index.html">首页</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a href="plaza.html">家谱广场</a>
|
||||||
|
<a href="culture.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="login.html">登录</a>
|
||||||
|
<a href="register.html">注册</a>
|
||||||
|
<a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<div class="hero">
|
||||||
|
<div class="container hero-inner">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">数字家谱与家族文化门户</div>
|
||||||
|
<h1>
|
||||||
|
一部会生长的<br /><span class="hero-title-mark">数字家谱</span>
|
||||||
|
</h1>
|
||||||
|
<p class="lead">
|
||||||
|
把姓氏源流、世系关系、字辈排行、宣传相册、谱文故事与亲人动态整理在一起,让家族的来处清晰可见,让记忆可以继续传下去。
|
||||||
|
</p>
|
||||||
|
<div class="word-scroll-card">
|
||||||
|
<div class="word-scroll-label">正在记录</div>
|
||||||
|
<div class="word-window">
|
||||||
|
<div class="word-track">
|
||||||
|
<div class="word">寻根问祖</div>
|
||||||
|
<div class="word">字辈排行</div>
|
||||||
|
<div class="word">世系关系</div>
|
||||||
|
<div class="word">宣传相册</div>
|
||||||
|
<div class="word">谱文故事</div>
|
||||||
|
<div class="word">亲人动态</div>
|
||||||
|
<div class="word">寻根问祖</div>
|
||||||
|
<div class="word">字辈排行</div>
|
||||||
|
<div class="word">世系关系</div>
|
||||||
|
<div class="word">宣传相册</div>
|
||||||
|
<div class="word">谱文故事</div>
|
||||||
|
<div class="word">亲人动态</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-path">
|
||||||
|
<span>1</span>创建家谱<i></i><span>2</span>邀请亲人<i></i
|
||||||
|
><span>3</span>共同传承
|
||||||
|
</div>
|
||||||
|
<div class="hero-action-card">
|
||||||
|
<div class="cta">
|
||||||
|
<a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>立即创建家谱</a
|
||||||
|
>
|
||||||
|
<a class="btn ghost magnetic" href="plaza.html">查看家谱示例</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="metrics">
|
||||||
|
<div class="metric"><strong>家谱广场</strong>浏览公开家族</div>
|
||||||
|
<div class="metric"><strong>姓氏百科</strong>了解姓氏源流</div>
|
||||||
|
<div class="metric"><strong>家族文化</strong>阅读传承故事</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-visual">
|
||||||
|
<div class="archive-stage"></div>
|
||||||
|
<div class="book-cover"></div>
|
||||||
|
<div class="hall">
|
||||||
|
<img src="public/images/ancestral-hall.png" alt="家族祠堂" />
|
||||||
|
</div>
|
||||||
|
<a class="video-card" href="promo-video.html">
|
||||||
|
<small>宣传影像</small>
|
||||||
|
<span>观看宣传视频</span>
|
||||||
|
</a>
|
||||||
|
<div class="search-panel">
|
||||||
|
<h3>查找公开家谱</h3>
|
||||||
|
<a class="search-box" href="search-result.html">
|
||||||
|
<span>输入姓氏、地区或家谱名称</span><b>搜索</b>
|
||||||
|
</a>
|
||||||
|
<div class="genealogy-list">
|
||||||
|
<div class="genealogy-item">
|
||||||
|
<strong>四川成都陈氏族</strong>共修入 128 人
|
||||||
|
</div>
|
||||||
|
<div class="genealogy-item">
|
||||||
|
<strong>湖广刘氏家谱</strong>收录 6 代字辈
|
||||||
|
</div>
|
||||||
|
<div class="genealogy-item">
|
||||||
|
<strong>岭南张氏宗谱</strong>开放谱文 18 篇
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="quick-strip">
|
||||||
|
<div class="container quick-inner">
|
||||||
|
<a class="quick-card tilt-card" href="create-genealogy.html">
|
||||||
|
<b>创建家谱</b><span>填写姓氏谱名,建立属于家族的数字空间。</span>
|
||||||
|
</a>
|
||||||
|
<a class="quick-card tilt-card" href="join-genealogy.html">
|
||||||
|
<b>加入家谱</b><span>通过邀请码加入亲人创建的家谱。</span>
|
||||||
|
</a>
|
||||||
|
<a class="quick-card tilt-card" href="plaza.html">
|
||||||
|
<b>浏览广场</b><span>查看公开家谱示例与家族故事。</span>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="quick-card tilt-card"
|
||||||
|
id="promo-video"
|
||||||
|
href="promo-video.html"
|
||||||
|
><b>宣传视频</b
|
||||||
|
><span>进入视频列表,查看宣传影像和纪念视频。</span></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<section class="functions">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>数字家谱核心功能</h2>
|
||||||
|
</div>
|
||||||
|
<div class="function-grid">
|
||||||
|
<div class="function-card tilt-card">
|
||||||
|
<div class="icon">世</div>
|
||||||
|
<h3>世系图</h3>
|
||||||
|
<p>
|
||||||
|
以树谱方式展示成员关系,支持查看个人资料、添加亲属、调整排行。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="function-card tilt-card">
|
||||||
|
<div class="icon">字</div>
|
||||||
|
<h3>字辈谱</h3>
|
||||||
|
<p>记录各代字辈与人数,让家族世代脉络更加清楚。</p>
|
||||||
|
</div>
|
||||||
|
<a class="function-card tilt-card" href="promo-album.html">
|
||||||
|
<div class="icon">相</div>
|
||||||
|
<h3>宣传相册</h3>
|
||||||
|
<p>按相册归档宣传影像,展示祖屋、活动、老照片和重要时刻。</p>
|
||||||
|
</a>
|
||||||
|
<div class="function-card tilt-card">
|
||||||
|
<div class="icon">文</div>
|
||||||
|
<h3>谱文资料</h3>
|
||||||
|
<p>沉淀谱序、谱文、家训、恩荣录等文本内容。</p>
|
||||||
|
</div>
|
||||||
|
<div class="function-card tilt-card">
|
||||||
|
<div class="icon">圈</div>
|
||||||
|
<h3>家族圈</h3>
|
||||||
|
<p>发布动态、分享图片、评论互动,让亲人之间保持连接。</p>
|
||||||
|
</div>
|
||||||
|
<div class="function-card tilt-card">
|
||||||
|
<div class="icon">功</div>
|
||||||
|
<h3>功德录</h3>
|
||||||
|
<p>记录家族贡献人物与事迹,让善行与纪念被看见。</p>
|
||||||
|
</div>
|
||||||
|
<div class="function-card tilt-card">
|
||||||
|
<div class="icon">礼</div>
|
||||||
|
<h3>贺礼邀请</h3>
|
||||||
|
<p>发布婚礼、生日、升学等家族喜事,通知相关成员。</p>
|
||||||
|
</div>
|
||||||
|
<div class="function-card tilt-card">
|
||||||
|
<div class="icon">权</div>
|
||||||
|
<h3>权限管理</h3>
|
||||||
|
<p>设置管理员、内容可见范围与入谱审核,保护家族隐私。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="plaza">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>家谱广场</h2>
|
||||||
|
</div>
|
||||||
|
<div class="plaza-layout">
|
||||||
|
<a class="featured-family tilt-card" href="family-detail.html">
|
||||||
|
<h3>四川成都陈氏族</h3>
|
||||||
|
<p>
|
||||||
|
已收录成员 128 人,整理字辈 6 代,公开谱文 18 篇,宣传相册 7
|
||||||
|
组。家族资料由成员共同维护,持续更新。
|
||||||
|
</p>
|
||||||
|
</a>
|
||||||
|
<div class="family-cards">
|
||||||
|
<a class="family-card tilt-card" href="family-detail.html">
|
||||||
|
<h4>湖广刘氏家谱</h4>
|
||||||
|
<p>从始祖世系到现代家庭分支,保留字辈与迁徙记录。</p>
|
||||||
|
<div class="tag-row">
|
||||||
|
<span class="tag">公开家谱</span
|
||||||
|
><span class="tag">字辈完整</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="family-card tilt-card" href="family-detail.html">
|
||||||
|
<h4>岭南张氏宗谱</h4>
|
||||||
|
<p>以谱文、相册、家族动态为主,记录家风与重要纪念。</p>
|
||||||
|
<div class="tag-row">
|
||||||
|
<span class="tag">家族文化</span
|
||||||
|
><span class="tag">宣传相册</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="family-card tilt-card" href="family-detail.html">
|
||||||
|
<h4>川东李氏家谱</h4>
|
||||||
|
<p>多人共同完善成员资料,形成清晰的家族成员档案。</p>
|
||||||
|
<div class="tag-row">
|
||||||
|
<span class="tag">多人共修</span
|
||||||
|
><span class="tag">成员资料</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="culture">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>家族文化</h2>
|
||||||
|
</div>
|
||||||
|
<div class="article-grid">
|
||||||
|
<a class="article-card tilt-card" href="article-detail.html">
|
||||||
|
<div class="article-cover"></div>
|
||||||
|
<div class="article-body">
|
||||||
|
<h3>为什么家谱不只是一本名册</h3>
|
||||||
|
<p>
|
||||||
|
家谱记录的是家族关系,也记录一个家庭如何理解自己的来处与传承。
|
||||||
|
</p>
|
||||||
|
<div class="article-meta">家谱知识 · 2026.05</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="article-card tilt-card" href="article-detail.html">
|
||||||
|
<div class="article-cover"></div>
|
||||||
|
<div class="article-body">
|
||||||
|
<h3>字辈在家族传承中的作用</h3>
|
||||||
|
<p>字辈让不同世代的人能找到自己的位置,也让同族称谓更清晰。</p>
|
||||||
|
<div class="article-meta">姓氏文化 · 2026.05</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="article-card tilt-card" href="article-detail.html">
|
||||||
|
<div class="article-cover"></div>
|
||||||
|
<div class="article-body">
|
||||||
|
<h3>如何邀请亲人共同完善家谱</h3>
|
||||||
|
<p>从创建家谱、生成邀请码到设置管理员,逐步建立协作流程。</p>
|
||||||
|
<div class="article-meta">使用指南 · 2026.05</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="ad-slots">
|
||||||
|
<div class="container">
|
||||||
|
<div class="ad-grid">
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="https://3dyjs.cn/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener"
|
||||||
|
aria-label="3D研究室广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/mlogo.png" alt="3D研究室" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="promo-album.html"
|
||||||
|
aria-label="影像相册广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/ad-album-small.png" alt="影像相册" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="promo-video.html"
|
||||||
|
aria-label="活动视频广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/ad-video-small.png" alt="活动视频" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="genealogy.html"
|
||||||
|
aria-label="族谱印制广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/ad-print.png" alt="族谱印制" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="culture.html"
|
||||||
|
aria-label="祠堂文化广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/ad-hall.png" alt="祠堂文化" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="app.html"
|
||||||
|
aria-label="云端存档广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/ad-cloud.png" alt="云端存档" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="culture.html"
|
||||||
|
aria-label="宗亲联谊广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/ad-reunion.png" alt="宗亲联谊" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="surname.html"
|
||||||
|
aria-label="姓氏研究广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/ad-research.png" alt="姓氏研究" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="culture.html"
|
||||||
|
aria-label="家风记忆广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/ad-memory.png" alt="家风记忆" />
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="ad-card tilt-card"
|
||||||
|
href="help.html"
|
||||||
|
aria-label="资料校对广告"
|
||||||
|
>
|
||||||
|
<img src="public/images/ad-data.png" alt="资料校对" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="surname">
|
||||||
|
<div class="container">
|
||||||
|
<div class="surname-panel tilt-card">
|
||||||
|
<div class="surname-intro">
|
||||||
|
<h2>姓氏百科</h2>
|
||||||
|
<p>
|
||||||
|
以姓氏为入口,整理姓氏源流、名人故事、地区分布、字辈参考和相关家谱。
|
||||||
|
</p>
|
||||||
|
<a class="btn primary magnetic" href="surname.html"
|
||||||
|
>进入姓氏百科</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="surname-grid">
|
||||||
|
<a class="surname-name" href="surname-detail.html">赵</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">钱</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">孙</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">李</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">周</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">吴</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">郑</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">王</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">冯</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">陈</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">褚</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">卫</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">蒋</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">沈</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">韩</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">杨</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">朱</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">秦</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">尤</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">许</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">何</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">吕</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">施</a>
|
||||||
|
<a class="surname-name" href="surname-detail.html">张</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="recommend">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>相关推荐</h2>
|
||||||
|
</div>
|
||||||
|
<div class="recommend-grid">
|
||||||
|
<a
|
||||||
|
class="recommend-card tilt-card"
|
||||||
|
href="article-detail.html"
|
||||||
|
>
|
||||||
|
<span>资料整理</span>
|
||||||
|
<h3>家庭档案整理指南</h3>
|
||||||
|
<p>参考照片、证件、谱牒、口述资料的归档方式。</p>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="recommend-card tilt-card"
|
||||||
|
href="surname.html"
|
||||||
|
>
|
||||||
|
<span>姓氏源流</span>
|
||||||
|
<h3>姓氏文化资料库</h3>
|
||||||
|
<p>查看姓氏源流、迁徙脉络、堂号和郡望参考资料。</p>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="recommend-card tilt-card"
|
||||||
|
href="culture.html"
|
||||||
|
>
|
||||||
|
<span>宗亲文化</span>
|
||||||
|
<h3>宗亲会活动参考</h3>
|
||||||
|
<p>了解宗亲联谊、祭祖活动和家风传播的组织方式。</p>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="recommend-card tilt-card"
|
||||||
|
href="help.html"
|
||||||
|
>
|
||||||
|
<span>工具服务</span>
|
||||||
|
<h3>修谱工具与服务</h3>
|
||||||
|
<p>查找谱书排版、影像扫描、云端存储等外部服务。</p>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="recommend-card tilt-card"
|
||||||
|
href="culture.html"
|
||||||
|
>
|
||||||
|
<span>地方志</span>
|
||||||
|
<h3>地方文献检索入口</h3>
|
||||||
|
<p>从地方志、县志和族群资料中寻找家族线索。</p>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="recommend-card tilt-card"
|
||||||
|
href="surname.html"
|
||||||
|
>
|
||||||
|
<span>人名研究</span>
|
||||||
|
<h3>字辈与命名参考</h3>
|
||||||
|
<p>参考传统字辈、排行、称谓和家族命名资料。</p>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="recommend-card tilt-card"
|
||||||
|
href="promo-album.html"
|
||||||
|
>
|
||||||
|
<span>影像修复</span>
|
||||||
|
<h3>老照片修复服务</h3>
|
||||||
|
<p>了解老照片扫描、修复、上色和数字归档服务。</p>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
class="recommend-card tilt-card"
|
||||||
|
href="article-detail.html"
|
||||||
|
>
|
||||||
|
<span>口述史</span>
|
||||||
|
<h3>家族故事采集方法</h3>
|
||||||
|
<p>参考长辈访谈、口述记录和家风故事整理方式。</p>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="friend-links">
|
||||||
|
<div class="container">
|
||||||
|
<div class="friend-links-panel">
|
||||||
|
<h2>常用入口</h2>
|
||||||
|
<div class="friend-link-list">
|
||||||
|
<a href="https://3d.3dyjs.cn/" target="_blank" rel="noopener"
|
||||||
|
>3D研究室</a
|
||||||
|
>
|
||||||
|
<a href="surname.html">姓氏源流资料</a>
|
||||||
|
<a href="plaza.html">公开家谱资料</a>
|
||||||
|
<a href="article-detail.html">修谱知识库</a>
|
||||||
|
<a href="culture.html">地方文献</a>
|
||||||
|
<a href="promo-album.html">家族影像</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a href="help.html">使用帮助</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="download">
|
||||||
|
<div class="container">
|
||||||
|
<div class="download-panel tilt-card">
|
||||||
|
<div>
|
||||||
|
<h2>手机端随时记录,电脑端清晰浏览</h2>
|
||||||
|
<p>
|
||||||
|
家族成员可以在手机端上传照片、查看家谱、发布动态;电脑端适合浏览门户内容、查看公开家谱和进入家谱空间。
|
||||||
|
</p>
|
||||||
|
<div class="cta">
|
||||||
|
<a class="btn primary magnetic" href="download.html">下载应用</a
|
||||||
|
><a class="btn ghost magnetic" href="help.html">查看帮助</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img
|
||||||
|
class="brand-logo"
|
||||||
|
src="public/images/logo-light.png"
|
||||||
|
alt="我们的家谱,代代相传"
|
||||||
|
/></a>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a
|
||||||
|
><a href="news.html">新闻资讯</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="privacy.html">隐私政策</a>
|
||||||
|
<a href="children-privacy.html">儿童个人信息处理规则</a>
|
||||||
|
<a href="terms.html">服务协议</a>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener"
|
||||||
|
>ICP备案:蜀ICP备2024044594号-1</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+77
@@ -0,0 +1,77 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>加入家谱 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/profile-module.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/join-genealogy.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-profile-module page-join-genealogy" data-join-apply-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a>
|
||||||
|
<nav class="nav-links" aria-label="个人中心主导航"></nav>
|
||||||
|
<div class="nav-actions"><a href="profile-join-family.html">查看我的申请</a></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">我的家谱</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>加入家谱</h1>
|
||||||
|
<p>先搜索并选择要加入的家谱,再补充申请资料;家谱编号由系统自动处理。</p>
|
||||||
|
</div>
|
||||||
|
<a class="btn ghost magnetic" href="profile-join-family.html">查看我的申请</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav" aria-label="个人中心功能导航"></aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="join-page-grid">
|
||||||
|
<section class="join-search-panel" aria-labelledby="join-search-title">
|
||||||
|
<h2 id="join-search-title">选择家谱</h2>
|
||||||
|
<form class="form-grid" data-join-genealogy-search novalidate aria-describedby="join-options-status">
|
||||||
|
<label class="field"><span>搜索家谱</span><input name="keyword" type="search" maxlength="50" placeholder="输入谱名或姓氏" /></label>
|
||||||
|
<button class="btn ghost" type="submit">搜索</button>
|
||||||
|
</form>
|
||||||
|
<div id="join-options-status" class="form-note" data-join-options-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="module-list" data-join-genealogy-options aria-live="polite"></div>
|
||||||
|
<p class="form-note" data-join-selected-genealogy role="status" aria-live="polite">尚未选择家谱</p>
|
||||||
|
</section>
|
||||||
|
<form class="form-grid join-apply-form" data-join-apply-form novalidate aria-describedby="join-apply-status">
|
||||||
|
<h2>补充申请资料</h2>
|
||||||
|
<p class="form-note">以下资料均为选填,审核人将据此确认您的加入申请。</p>
|
||||||
|
<label class="field"><span>申请人姓名(选填)</span><input name="applicantName" maxlength="50" autocomplete="name" /></label>
|
||||||
|
<label class="field"><span>联系电话(选填)</span><input name="phone" maxlength="30" autocomplete="tel" /></label>
|
||||||
|
<label class="field"><span>与家谱关系(选填)</span><input name="relationDesc" maxlength="100" placeholder="例如:族亲" /></label>
|
||||||
|
<label class="field"><span>申请理由(选填)</span><textarea name="applyReason" maxlength="500" rows="4"></textarea></label>
|
||||||
|
<div id="join-apply-status" class="form-note" data-join-apply-status role="status" aria-live="polite"></div>
|
||||||
|
<button class="btn primary" type="submit" data-join-apply-submit>提交申请</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/js/join-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+88
@@ -0,0 +1,88 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>登录 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/tac/css/tac.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/login.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-login">
|
||||||
|
<main class="auth-layout auth-scenic-layout">
|
||||||
|
<a class="brand auth-page-brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<section class="card form-card auth-card" aria-labelledby="login-title">
|
||||||
|
<div class="eyebrow">欢迎回来</div>
|
||||||
|
<h1 id="login-title">登录账号</h1>
|
||||||
|
<p class="lead">登录后可创建、加入和维护家谱。</p>
|
||||||
|
<div class="login-mode-tabs" role="tablist" aria-label="登录方式">
|
||||||
|
<button class="login-mode-tab is-active" type="button" role="tab" aria-selected="true" aria-controls="login-password-form">
|
||||||
|
密码登录
|
||||||
|
</button>
|
||||||
|
<button class="login-mode-tab" type="button" role="tab" aria-selected="false" aria-controls="login-sms-form">
|
||||||
|
短信登录
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<form
|
||||||
|
id="login-password-form"
|
||||||
|
class="form-grid login-mode-panel"
|
||||||
|
novalidate
|
||||||
|
>
|
||||||
|
<label class="auth-field" for="login-password-phone">
|
||||||
|
<span>手机号 <b aria-hidden="true">*</b></span>
|
||||||
|
<input id="login-password-phone" class="input" name="phone" type="tel" inputmode="numeric" autocomplete="tel" maxlength="11" placeholder="请输入手机号" required />
|
||||||
|
</label>
|
||||||
|
<label class="auth-field" for="login-password-value">
|
||||||
|
<span>密码 <b aria-hidden="true">*</b></span>
|
||||||
|
<input id="login-password-value" class="input" name="password" type="password" autocomplete="current-password" placeholder="请输入密码" required />
|
||||||
|
</label>
|
||||||
|
<input type="hidden" name="validToken" />
|
||||||
|
<div id="login-password-status" class="auth-form-status" role="status" aria-live="polite" data-auth-form-status></div>
|
||||||
|
<button class="btn primary" type="submit">登录</button>
|
||||||
|
</form>
|
||||||
|
<form
|
||||||
|
id="login-sms-form"
|
||||||
|
class="form-grid login-mode-panel"
|
||||||
|
hidden
|
||||||
|
novalidate
|
||||||
|
>
|
||||||
|
<label class="auth-field" for="login-sms-phone">
|
||||||
|
<span>手机号 <b aria-hidden="true">*</b></span>
|
||||||
|
<input id="login-sms-phone" class="input" name="phone" type="tel" inputmode="numeric" autocomplete="tel" maxlength="11" placeholder="请输入手机号" required />
|
||||||
|
</label>
|
||||||
|
<div class="auth-field">
|
||||||
|
<label for="login-sms-code">短信验证码 <b aria-hidden="true">*</b></label>
|
||||||
|
<div class="code-row">
|
||||||
|
<input id="login-sms-code" class="input" name="smsCode" autocomplete="one-time-code" inputmode="numeric" maxlength="4" pattern="\d{4}" placeholder="请输入四位验证码" required />
|
||||||
|
<button class="btn ghost" type="button" data-api-send-code>获取验证码</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input type="hidden" name="validToken" />
|
||||||
|
<div id="login-sms-status" class="auth-form-status" role="status" aria-live="polite" data-auth-form-status></div>
|
||||||
|
<button class="btn primary" type="submit">短信登录</button>
|
||||||
|
</form>
|
||||||
|
<div class="auth-links">
|
||||||
|
<a href="register.html">注册新账号</a>
|
||||||
|
<a href="forgot-password.html">忘记密码</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/MessageUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/tac/js/tac.min.js"></script>
|
||||||
|
<script src="public/js/captcha-pages.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/js/auth-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+54
@@ -0,0 +1,54 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>系统维护中 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/site-info.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img
|
||||||
|
class="brand-logo"
|
||||||
|
src="public/images/logo.png"
|
||||||
|
alt="我们的家谱,代代相传"
|
||||||
|
/></a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a><a href="help.html">帮助中心</a
|
||||||
|
><a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions"><a href="login.html">登录</a></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="site-info-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="site-info-status">
|
||||||
|
<div class="site-info-mark">工</div>
|
||||||
|
<h2>系统维护中</h2>
|
||||||
|
<p>
|
||||||
|
我们正在进行必要的服务维护,请稍后再试。账号与家谱资料不会因维护而丢失。
|
||||||
|
</p>
|
||||||
|
<div class="site-info-actions">
|
||||||
|
<a class="btn primary magnetic" href="index.html">返回首页</a
|
||||||
|
><a class="btn ghost magnetic" href="news.html">查看新闻资讯</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="privacy.html">隐私政策</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+59
@@ -0,0 +1,59 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>我的工单 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-feedback-list-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a>
|
||||||
|
<nav class="nav-links" aria-label="个人中心主导航"></nav>
|
||||||
|
<div class="nav-actions"><a href="help.html">帮助中心</a><a class="btn primary magnetic" href="submit-ticket.html">提交新工单</a></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">服务与帮助</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div><h1>我的工单</h1><p>查看当前账号提交的问题说明和处理状态。</p></div>
|
||||||
|
<a class="btn primary magnetic" href="submit-ticket.html">提交新工单</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav" aria-label="个人中心功能导航"></aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div><h2>反馈记录</h2><p>选择记录可以查看完整说明和处理状态。</p></div>
|
||||||
|
<button class="btn ghost" type="button" data-feedback-refresh>刷新</button>
|
||||||
|
</div>
|
||||||
|
<div class="form-status" role="status" aria-live="polite" data-feedback-status></div>
|
||||||
|
<div class="module-list" data-feedback-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取反馈记录…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/feedback-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+82
@@ -0,0 +1,82 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>新闻资讯 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/site-info.css" />
|
||||||
|
</head>
|
||||||
|
<body data-site-news-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img
|
||||||
|
class="brand-logo"
|
||||||
|
src="public/images/logo.png"
|
||||||
|
alt="我们的家谱,代代相传"
|
||||||
|
/></a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a><a href="genealogy.html">数字家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a
|
||||||
|
><a class="active" href="news.html">新闻资讯</a
|
||||||
|
><a href="help.html">帮助中心</a><a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="login.html">登录</a><a href="register.html">注册</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="site-info-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div>
|
||||||
|
<div class="site-info-kicker">资讯中心</div>
|
||||||
|
<h1>新闻资讯</h1>
|
||||||
|
<p>
|
||||||
|
集中阅读平台新闻、公告与下载内容。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="site-info-mark">闻</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="site-info-section">
|
||||||
|
<div class="container site-info-layout">
|
||||||
|
<div>
|
||||||
|
<div class="module-meta" data-site-news-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="site-info-list" data-site-news-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取资讯…</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<aside class="site-info-panel">
|
||||||
|
<h2>新闻分类</h2>
|
||||||
|
<div class="site-info-links">
|
||||||
|
<a href="news.html">全部</a
|
||||||
|
><a href="news.html?articleType=news">新闻</a
|
||||||
|
><a href="news.html?articleType=notice">公告</a
|
||||||
|
><a href="news.html?articleType=download">下载</a>
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="privacy.html">隐私政策</a
|
||||||
|
><a href="children-privacy.html">儿童个人信息处理规则</a
|
||||||
|
><a href="terms.html">服务协议</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
<script src="public/js/site-news-pages.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+52
@@ -0,0 +1,52 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>页面不存在 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/site-info.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img
|
||||||
|
class="brand-logo"
|
||||||
|
src="public/images/logo.png"
|
||||||
|
alt="我们的家谱,代代相传"
|
||||||
|
/></a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a><a href="help.html">帮助中心</a
|
||||||
|
><a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions"><a href="login.html">登录</a></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="site-info-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="site-info-status">
|
||||||
|
<div class="site-info-mark">404</div>
|
||||||
|
<h2>页面不存在</h2>
|
||||||
|
<p>你访问的页面可能已移动、已删除或地址输入有误。</p>
|
||||||
|
<div class="site-info-actions">
|
||||||
|
<a class="btn primary magnetic" href="index.html">返回首页</a
|
||||||
|
><a class="btn ghost magnetic" href="help.html">前往帮助中心</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="privacy.html">隐私政策</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+116
@@ -0,0 +1,116 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>平台公告详情 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/notice-detail.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-notice-detail" data-promotion-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a><a href="genealogy.html">数字家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a
|
||||||
|
><a class="active" href="culture.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="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero notice-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">平台公告</div>
|
||||||
|
<h1 data-promotion-title>平台内容公开展示规范说明</h1>
|
||||||
|
<p class="lead" data-promotion-summary>
|
||||||
|
为了保护家族资料安全,平台仅展示管理员确认公开的家谱介绍、文章、宣传相册和宣传视频。
|
||||||
|
</p>
|
||||||
|
<div class="article-meta">
|
||||||
|
<span>平台公告</span><span data-promotion-time>2026.05</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card notice-card tilt-card">
|
||||||
|
<span>告</span>
|
||||||
|
<p>公开有边界,传承更长久。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section alt">
|
||||||
|
<div class="container notice-layout">
|
||||||
|
<article class="notice-content tilt-card" data-promotion-content>
|
||||||
|
<p>
|
||||||
|
平台前台页面主要用于展示家族文化与公开资料。涉及成员联系方式、详细个人信息、未审核资料等内容,不会在公开页面直接呈现。
|
||||||
|
</p>
|
||||||
|
<h2>公开内容范围</h2>
|
||||||
|
<p>
|
||||||
|
可公开内容包括家族简介、姓氏源流、谱文节选、宣传相册、宣传视频、平台公告和管理员允许展示的纪念内容。
|
||||||
|
</p>
|
||||||
|
<h2>资料维护建议</h2>
|
||||||
|
<p>
|
||||||
|
建议由管理员先整理资料,再邀请亲人补充和校对。需要修改公开范围时,可以在权限设置中调整。
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
<aside class="notice-side tilt-card">
|
||||||
|
<h3>相关页面</h3>
|
||||||
|
<a href="help.html">帮助中心</a
|
||||||
|
><a href="article-detail.html">家谱知识</a
|
||||||
|
><a href="about.html">关于我们</a>
|
||||||
|
</aside>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a
|
||||||
|
><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a
|
||||||
|
><a href="surname.html">姓氏百科</a
|
||||||
|
><a href="article-detail.html">家谱知识</a
|
||||||
|
><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+148
@@ -0,0 +1,148 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>家谱广场 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/plaza.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-plaza">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="genealogy.html">数字家谱</a>
|
||||||
|
<a class="active" href="plaza.html">家谱广场</a>
|
||||||
|
<a href="culture.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="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero plaza-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">家谱广场</div>
|
||||||
|
<h1>浏览公开家谱,寻找同宗线索</h1>
|
||||||
|
<p class="lead">
|
||||||
|
按姓氏、地区、堂号和家谱名称检索公开家谱,先看示例,再创建自己的家族空间。
|
||||||
|
</p>
|
||||||
|
<div class="plaza-stats">
|
||||||
|
<span><b>128+</b>公开家谱</span>
|
||||||
|
<span><b>36</b>地区线索</span>
|
||||||
|
<span><b>18</b>谱文示例</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card search-card tilt-card">
|
||||||
|
<div class="search-ornament"></div>
|
||||||
|
<h3>查找公开家谱</h3>
|
||||||
|
<div class="toolbar search-toolbar">
|
||||||
|
<input class="input" placeholder="输入姓氏、地区或家谱名称" /><a
|
||||||
|
class="btn primary magnetic"
|
||||||
|
href="search-result.html"
|
||||||
|
>搜索</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="tag-row">
|
||||||
|
<span class="tag">公开家谱</span><span class="tag">字辈完整</span
|
||||||
|
><span class="tag">多人共修</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section alt plaza-list-section">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>推荐家谱</h2>
|
||||||
|
<p>展示公开或示例家谱,让访问者理解数字家谱最终会呈现成什么样。</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-3" data-genealogy-list="public">
|
||||||
|
<a class="family-card featured tilt-card" href="family-detail.html">
|
||||||
|
<div class="family-card-shine"></div>
|
||||||
|
<div class="family-badge">推荐</div>
|
||||||
|
<h3>四川成都陈氏族</h3>
|
||||||
|
<p>
|
||||||
|
已收录成员 128 人,整理字辈 6 代,公开谱文 18 篇,宣传相册 7
|
||||||
|
组。
|
||||||
|
</p>
|
||||||
|
<div class="tag-row">
|
||||||
|
<span class="tag">四川</span><span class="tag">陈氏</span
|
||||||
|
><span class="tag">128人</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="card family-lite tilt-card" href="family-detail.html">
|
||||||
|
<div class="family-icon">刘</div>
|
||||||
|
<h3>湖广刘氏家谱</h3>
|
||||||
|
<p>从始祖世系到现代家庭分支,保留字辈与迁徙记录。</p>
|
||||||
|
<div class="tag-row">
|
||||||
|
<span class="tag">公开家谱</span
|
||||||
|
><span class="tag">字辈完整</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<a class="card family-lite tilt-card" href="family-detail.html">
|
||||||
|
<div class="family-icon">张</div>
|
||||||
|
<h3>岭南张氏宗谱</h3>
|
||||||
|
<p>以谱文、相册、家族动态为主,记录家风与重要纪念。</p>
|
||||||
|
<div class="tag-row">
|
||||||
|
<span class="tag">家族文化</span
|
||||||
|
><span class="tag">宣传相册</span>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+73
@@ -0,0 +1,73 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>隐私政策 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/site-info.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" />
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a>
|
||||||
|
<a href="news.html">新闻资讯</a>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="login.html">登录</a>
|
||||||
|
<a href="register.html">注册</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="site-info-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div>
|
||||||
|
<div class="site-info-kicker">隐私政策</div>
|
||||||
|
<h1>隐私政策</h1>
|
||||||
|
<p>说明平台处理个人信息的规则、用户权利与联系渠道。</p>
|
||||||
|
</div>
|
||||||
|
<div class="site-info-mark">隐</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="site-info-section">
|
||||||
|
<div class="container site-info-layout">
|
||||||
|
<article class="site-info-panel">
|
||||||
|
<div class="site-info-notice">
|
||||||
|
待法务确认:本页面仅建立政策访问入口,不构成已生效的隐私政策。发布前必须由运营主体与法务确认完整文本、版本号和生效日期。
|
||||||
|
</div>
|
||||||
|
<h2>正式文本应涵盖</h2>
|
||||||
|
<p>
|
||||||
|
个人信息处理目的、收集范围、保存期限、共享规则、用户查阅更正删除权利,以及个人信息保护负责人的联系渠道。
|
||||||
|
</p>
|
||||||
|
</article>
|
||||||
|
<aside class="site-info-panel">
|
||||||
|
<h2>相关文档</h2>
|
||||||
|
<div class="site-info-links">
|
||||||
|
<a href="children-privacy.html">儿童个人信息处理规则</a>
|
||||||
|
<a href="terms.html">服务协议</a>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="news.html">新闻资讯</a>
|
||||||
|
<a href="terms.html">服务协议</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+81
@@ -0,0 +1,81 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>管理员权限 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-admin-permission-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-families.html">我的家谱</a
|
||||||
|
><a class="active" href="profile-family-admin.html">家族管理</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-family-admin.html" data-genealogy-context-link>返回管理</a
|
||||||
|
><a class="btn primary magnetic" href="profile-family-admin.html" data-genealogy-context-link>管理成员</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">权限设置</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>管理员权限</h1>
|
||||||
|
<p>
|
||||||
|
在成员名册中维护管理员、编辑和成员角色;可执行的操作以当前账号权限为准。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-family-admin.html" data-genealogy-context-link>家族管理</a
|
||||||
|
><a class="active" href="profile-admin-permissions.html"
|
||||||
|
>管理员权限</a
|
||||||
|
><a href="profile-join-review.html" data-genealogy-context-link>入谱审核</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>当前权限</h2>
|
||||||
|
<div data-admin-permission-current>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在核对当前家谱角色与权限…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>角色与权限</h2>
|
||||||
|
<div class="module-list">
|
||||||
|
<article class="module-row"><div><h3>谱主</h3><p>可维护管理员、编辑和成员角色,并可转让谱主。</p></div></article>
|
||||||
|
<article class="module-row"><div><h3>管理员</h3><p>可维护编辑和成员角色,不能修改谱主或其他管理员。</p></div></article>
|
||||||
|
<article class="module-row"><div><h3>编辑、成员</h3><p>不显示成员角色编辑入口;最终权限由服务端校验。</p></div></article>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions"><a class="btn primary magnetic" href="profile-family-admin.html" data-genealogy-context-link>进入成员名册管理</a></div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/admin-permission-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+125
@@ -0,0 +1,125 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>相册详情 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-album-detail-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" />
|
||||||
|
<span class="brand-text">个人中心</span>
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-album.html">相册</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-album.html" data-genealogy-context-link>返回相册</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">相册详情</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-album-detail-title>相册详情</h1>
|
||||||
|
<p>查看相册信息和照片;照片暂不可在线预览时,仍会保留名称和上传记录。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a href="profile-article.html">谱文</a>
|
||||||
|
<a class="active" href="profile-album.html">相册</a>
|
||||||
|
<a href="profile-video.html">视频</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>相册信息</h2>
|
||||||
|
<div data-album-detail>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
相册加载中...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>照片列表</h2>
|
||||||
|
<div class="module-list" data-album-photo-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
照片加载中...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel" data-album-photo-editor hidden>
|
||||||
|
<h2>添加照片</h2>
|
||||||
|
<form class="editor-form" data-album-photo-form novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumPhotoFile">照片文件 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="albumPhotoOssId" name="ossId" type="hidden" />
|
||||||
|
<label class="upload-control" for="albumPhotoFile">选择照片</label>
|
||||||
|
<input id="albumPhotoFile" class="upload-input" type="file" accept="image/*" data-upload-target="#albumPhotoOssId" data-upload-status="#albumPhotoUploadStatus" />
|
||||||
|
<p id="albumPhotoUploadStatus" class="upload-status" role="status" aria-live="polite">未选择文件</p>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumPhotoTitle">照片标题</label>
|
||||||
|
<input id="albumPhotoTitle" name="photoTitle" type="text" placeholder="请输入照片标题" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumPhotoDesc">照片说明</label>
|
||||||
|
<textarea id="albumPhotoDesc" name="photoDesc" placeholder="请输入照片说明"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumPhotographer">拍摄人</label>
|
||||||
|
<input id="albumPhotographer" name="photographer" type="text" placeholder="请输入拍摄人" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumShootTime">拍摄时间</label>
|
||||||
|
<input id="albumShootTime" name="shootTime" type="datetime-local" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumPhotoSortOrder">排序</label>
|
||||||
|
<input id="albumPhotoSortOrder" name="sortOrder" type="number" step="1" placeholder="数字越小越靠前" />
|
||||||
|
</div>
|
||||||
|
<input name="status" type="hidden" value="0" />
|
||||||
|
<div class="api-status" data-album-photo-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary" type="submit">添加照片</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/album-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+101
@@ -0,0 +1,101 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>编辑相册 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-album-edit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" />
|
||||||
|
<span class="brand-text">个人中心</span>
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-album.html">相册</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-album.html" data-genealogy-context-link>返回相册</a>
|
||||||
|
<button class="btn primary magnetic" type="submit" form="album-edit-form" data-album-editor-action hidden>保存</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">编辑相册</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-album-editor-title>新建相册</h1>
|
||||||
|
<p>维护相册名称、说明和封面;封面编号由上传自动产生。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a href="profile-article.html">谱文</a>
|
||||||
|
<a class="active" href="profile-album.html">相册</a>
|
||||||
|
<a href="profile-video.html">视频</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" data-album-editor-placeholder role="status" aria-live="polite" aria-busy="true">正在读取家谱权限...</div>
|
||||||
|
<form id="album-edit-form" class="editor-form" data-album-form data-album-editor hidden novalidate>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumName">相册名称 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="albumName" name="albumName" type="text" required placeholder="请输入相册名称" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumDesc">相册说明</label>
|
||||||
|
<textarea id="albumDesc" name="albumDesc" placeholder="请输入相册说明"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumCoverFile">封面文件</label>
|
||||||
|
<input id="albumCoverOssId" name="coverOssId" type="hidden" />
|
||||||
|
<label class="upload-control" for="albumCoverFile">选择封面图片</label>
|
||||||
|
<input id="albumCoverFile" class="upload-input" type="file" accept="image/*" data-upload-target="#albumCoverOssId" data-upload-status="#albumCoverStatus" />
|
||||||
|
<p id="albumCoverStatus" class="upload-status" role="status" aria-live="polite">未选择文件</p>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="albumSortOrder">排序</label>
|
||||||
|
<input id="albumSortOrder" name="sortOrder" type="number" step="1" placeholder="数字越小越靠前" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input name="status" type="hidden" value="0" />
|
||||||
|
<div class="api-status" data-album-form-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary" type="submit">保存相册</button>
|
||||||
|
<a class="btn ghost" href="profile-album.html" data-genealogy-context-link>取消</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/album-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+76
@@ -0,0 +1,76 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>家族相册 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-album-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" />
|
||||||
|
<span class="brand-text">个人中心</span>
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-album.html">相册</a>
|
||||||
|
<a href="profile-video.html">视频</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-content.html">返回发布中心</a>
|
||||||
|
<a class="btn primary magnetic" href="profile-album-edit.html" data-album-create-link hidden>新建相册</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">家族相册</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>家族相册</h1>
|
||||||
|
<p>查看和管理家谱相册;照片文件由上传组件自动关联,无需填写内部编号。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a href="profile-article.html">谱文</a>
|
||||||
|
<a class="active" href="profile-album.html">相册</a>
|
||||||
|
<a href="profile-video.html">视频</a>
|
||||||
|
<a href="profile-family-home.html">家谱主页</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>相册列表</h2>
|
||||||
|
<div class="module-list" data-album-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
相册加载中...
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/album-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+141
@@ -0,0 +1,141 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>编辑谱文 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/profile-module.css" />
|
||||||
|
<link rel="stylesheet" href="public/js/wangeditor5/css/style.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-profile-module" data-article-edit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-article.html">谱文</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-article.html">返回谱文</a
|
||||||
|
><button class="btn primary magnetic" type="submit" form="article-edit-form" data-article-editor-action hidden>保存</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">编辑谱文</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-article-editor-title>新建谱文</h1>
|
||||||
|
<p>
|
||||||
|
使用富文本编辑器撰写谱文、谱序、谱论和恩荣录,支持图片、表格与排版。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-article.html">谱文</a
|
||||||
|
><a href="profile-album.html">相册</a
|
||||||
|
><a href="profile-video.html">视频</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>谱文内容</h2>
|
||||||
|
<div data-article-editor-placeholder>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取家谱权限…</div>
|
||||||
|
</div>
|
||||||
|
<form id="article-edit-form" class="editor-form layui-form" data-article-form data-article-editor hidden novalidate>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="articleTitle">谱文标题<span class="field-required" aria-hidden="true"> *</span></label
|
||||||
|
><input
|
||||||
|
id="articleTitle"
|
||||||
|
name="articleTitle"
|
||||||
|
type="text"
|
||||||
|
placeholder="请输入谱文标题"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="articleSignature">落款</label
|
||||||
|
><input
|
||||||
|
id="articleSignature"
|
||||||
|
name="authorName"
|
||||||
|
type="text"
|
||||||
|
placeholder="请输入落款"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="articleSortOrder">排序</label
|
||||||
|
><input
|
||||||
|
id="articleSortOrder"
|
||||||
|
name="sortOrder"
|
||||||
|
type="number"
|
||||||
|
step="1"
|
||||||
|
placeholder="数字越小越靠前"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="articleContent">正文<span class="field-required" aria-hidden="true"> *</span></label
|
||||||
|
><textarea
|
||||||
|
id="articleContent"
|
||||||
|
name="articleContent"
|
||||||
|
class="js-rich-editor"
|
||||||
|
placeholder="请输入谱文内容"
|
||||||
|
required
|
||||||
|
></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="articleSummary">摘要</label>
|
||||||
|
<textarea id="articleSummary" name="articleSummary" placeholder="请输入谱文摘要"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="articleCoverFile">封面文件</label>
|
||||||
|
<input id="articleCoverOssId" name="coverOssId" type="hidden" />
|
||||||
|
<label class="upload-control" for="articleCoverFile">选择封面图片</label>
|
||||||
|
<input id="articleCoverFile" class="upload-input" type="file" accept="image/*" data-upload-target="#articleCoverOssId" data-upload-status="#articleCoverStatus" />
|
||||||
|
<p id="articleCoverStatus" class="upload-status" role="status" aria-live="polite">未选择文件</p>
|
||||||
|
</div>
|
||||||
|
<input name="status" type="hidden" value="0" />
|
||||||
|
<div class="form-status" data-article-form-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit">保存</button
|
||||||
|
><a class="btn ghost magnetic" href="profile-article.html"
|
||||||
|
>取消</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/wangeditor5/index.js"></script>
|
||||||
|
<script src="public/js/rich-editor.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/article-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+81
@@ -0,0 +1,81 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>谱文管理 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-article-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-article.html">谱文</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-content.html">返回发布中心</a
|
||||||
|
><a class="btn primary magnetic" href="profile-article-edit.html" data-article-create-link hidden
|
||||||
|
>添加谱文</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">家族谱文</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>谱文管理</h1>
|
||||||
|
<p>
|
||||||
|
管理谱文、谱序、谱论、恩荣录等家族文献,支持添加内容、图片与落款。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-article.html">谱文</a
|
||||||
|
><a href="profile-album.html">相册</a
|
||||||
|
><a href="profile-video.html">视频</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>谱文列表</h2>
|
||||||
|
<div class="module-list" data-article-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在加载谱文…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>谱文详情</h2>
|
||||||
|
<div data-article-detail>
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">请选择一篇谱文查看详情</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/article-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+87
@@ -0,0 +1,87 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>活动详情 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-ceremony-detail-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a>
|
||||||
|
<nav class="nav-links"><a href="profile-content.html">内容发布</a><a class="active" href="profile-ceremony.html">祭祀活动</a></nav>
|
||||||
|
<div class="nav-actions"><a href="profile-ceremony.html">返回活动列表</a><a class="btn primary magnetic" href="profile-gift-edit.html" data-ceremony-editor-action hidden>编辑活动</a></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container"><div class="module-kicker">活动详情</div><div class="module-title-row"><div><h1 data-ceremony-detail-title>活动详情</h1><p>活动信息、祭品记录与管理员受邀名单。</p></div></div></div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav"><a href="profile-content.html">内容发布</a><a href="profile-gift.html">我的邀请</a><a class="active" href="profile-ceremony.html">祭祀活动</a><a href="profile-merit.html">功德录</a></aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>活动信息</h2>
|
||||||
|
<div data-ceremony-detail aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载活动详情…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>祭品记录</h2>
|
||||||
|
<div class="module-list" data-ceremony-gift-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载祭品…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form class="editor-form" data-ceremony-gift-form data-ceremony-admin-editor hidden novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field"><label for="ceremonyGiverName">赠送人姓名</label><input id="ceremonyGiverName" name="giverName" type="text" placeholder="可选" /></div>
|
||||||
|
<div class="editor-field"><label for="ceremonyGiftAmount">礼金金额 <span class="field-required" aria-hidden="true">*</span></label><input id="ceremonyGiftAmount" name="giftAmount" type="number" min="0" step="any" required /></div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field"><label for="ceremonyGiftMessage">祭品留言</label><textarea id="ceremonyGiftMessage" name="giftMessage" placeholder="可选"></textarea></div>
|
||||||
|
<div class="upload-status" data-ceremony-gift-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions"><button class="btn primary magnetic" type="submit">添加祭品</button></div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel" data-ceremony-admin-editor hidden>
|
||||||
|
<h2>受邀名单</h2>
|
||||||
|
<div class="module-list" data-ceremony-invitation-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载邀请记录…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<form class="editor-form" data-ceremony-invitee-form data-ceremony-admin-editor hidden novalidate>
|
||||||
|
<p>仅显示当前家谱中已绑定业务账号的正常成员;提交完整勾选名单,取消勾选会撤销尚未响应的邀请。</p>
|
||||||
|
<div class="editor-choice-list" data-ceremony-invitee-options>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载成员选项…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="upload-status" data-ceremony-invitee-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions"><button class="btn primary magnetic" type="submit">更新受邀名单</button></div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/ceremony-admin-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+55
@@ -0,0 +1,55 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>祭祀活动 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-ceremony-list-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a>
|
||||||
|
<nav class="nav-links"><a href="profile-content.html">内容发布</a><a class="active" href="profile-ceremony.html">祭祀活动</a></nav>
|
||||||
|
<div class="nav-actions"><a href="profile-content.html">返回发布中心</a><a class="btn primary magnetic" href="profile-gift-edit.html" data-ceremony-create-link data-genealogy-context-link hidden>创建活动</a></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">祭祀活动</div>
|
||||||
|
<div class="module-title-row"><div><h1>祭祀活动</h1><p>查看当前家谱的活动;具备内容维护权限时可创建、编辑和删除。</p></div></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav"><a href="profile-content.html">内容发布</a><a href="profile-gift.html">我的邀请</a><a class="active" href="profile-ceremony.html">祭祀活动</a><a href="profile-merit.html">功德录</a></aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="module-panel-head"><h2>活动列表</h2><a class="pill" href="profile-gift-edit.html" data-ceremony-create-link data-genealogy-context-link hidden>创建活动</a></div>
|
||||||
|
<div class="module-list" data-ceremony-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载祭祀活动…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/ceremony-admin-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+130
@@ -0,0 +1,130 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>内容发布 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-content-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile.html">个人中心</a
|
||||||
|
><a href="profile-families.html">我的家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a
|
||||||
|
><a class="active" 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-data.html">账户资料</a
|
||||||
|
><a class="btn primary magnetic" href="profile-create-family.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">内容发布</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>内容发布</h1>
|
||||||
|
<p>
|
||||||
|
集中管理谱文、视频、相册、功德录、贺礼邀请、成长记录、家族动态和备忘录。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<a class="btn primary magnetic" href="profile-article.html" data-feature-link="available" data-genealogy-context-link
|
||||||
|
>添加谱文</a
|
||||||
|
>
|
||||||
|
</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 href="profile-family-admin.html" data-genealogy-context-link>家族管理</a
|
||||||
|
><a class="active" href="profile-content.html">内容发布</a
|
||||||
|
><a href="profile-data.html">个人资料</a
|
||||||
|
><a href="profile-services.html">帮助与服务</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>发布入口</h2>
|
||||||
|
<div class="module-grid">
|
||||||
|
<a class="module-card tilt-card" href="profile-article.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-album.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-video.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-merit.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-gift.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-feed.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-growth.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-relative.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-memo.html" data-feature-link="available" data-genealogy-context-link
|
||||||
|
><span class="icon">备</span>
|
||||||
|
<h3>备忘录(家族恩人)</h3>
|
||||||
|
<p>以标题、内容和提醒记录家族恩人等事项,统一归入备忘录管理。</p></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>使用说明</h2>
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">请选择上方功能,继续查看和维护当前家谱内容。</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+163
@@ -0,0 +1,163 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>创建家谱 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-genealogy-create-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a class="active" href="profile-families.html">我的家谱</a
|
||||||
|
><a href="profile-family-admin.html">家族管理</a
|
||||||
|
><a href="profile-content.html">内容发布</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-families.html">返回我的家谱</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">创建家谱</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>创建家谱</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 class="active" href="profile-create-family.html">创建家谱</a
|
||||||
|
><a href="profile-join-family.html">加入家谱</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>基础信息</h2>
|
||||||
|
<p class="upload-status" data-genealogy-create-quota role="status" aria-live="polite">正在读取家谱额度…</p>
|
||||||
|
<form class="editor-form profile-create-family-form" data-genealogy-create-form novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="familySurname">姓氏 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="familySurname" name="surname" type="text" required placeholder="例如:王" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="familyName">谱名 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="familyName" name="genealogyName" type="text" required placeholder="例如:王氏家谱" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="ancestralHall">堂号/祠堂</label>
|
||||||
|
<input id="ancestralHall" name="ancestralHall" type="text" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="originPlace">籍贯/起源地</label>
|
||||||
|
<input id="originPlace" name="originPlace" type="text" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field" role="group" aria-labelledby="family-region-label" aria-describedby="family-create-status">
|
||||||
|
<span id="family-region-label" class="editor-label">家族所在地 <span class="field-required" aria-hidden="true">*</span></span>
|
||||||
|
<div class="profile-region-picker" data-region-picker>
|
||||||
|
<label for="familyProvinceCode">省
|
||||||
|
<select id="familyProvinceCode" name="provinceCode" data-region-level="province">
|
||||||
|
<option value="">请选择省</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label for="familyCityCode">市
|
||||||
|
<select id="familyCityCode" name="cityCode" data-region-level="city">
|
||||||
|
<option value="">请选择市</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label for="familyDistrictCode">区县
|
||||||
|
<select id="familyDistrictCode" name="districtCode" data-region-level="district">
|
||||||
|
<option value="">请选择区县</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<input type="hidden" name="regionCode" data-region-code />
|
||||||
|
</div>
|
||||||
|
<div class="upload-status" data-region-picker-status role="status" aria-live="polite"></div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="addressDetail">详细地址</label>
|
||||||
|
<input id="addressDetail" name="addressDetail" type="text" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="intro">家谱简介</label>
|
||||||
|
<textarea id="intro" name="intro"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="familyCoverFile">家谱封面</label>
|
||||||
|
<input id="familyCoverOssId" name="coverOssId" type="hidden" />
|
||||||
|
<label class="upload-control" for="familyCoverFile">选择封面图片</label>
|
||||||
|
<input
|
||||||
|
id="familyCoverFile"
|
||||||
|
class="upload-input"
|
||||||
|
type="file"
|
||||||
|
accept="image/*"
|
||||||
|
data-upload-target="#familyCoverOssId"
|
||||||
|
data-upload-status="#familyCoverStatus"
|
||||||
|
/>
|
||||||
|
<p id="familyCoverStatus" class="upload-status" role="status" aria-live="polite">未选择文件</p>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="visibility">可见范围</label>
|
||||||
|
<select id="visibility" name="visibility">
|
||||||
|
<option value="1">公开</option>
|
||||||
|
<option value="2">成员可见</option>
|
||||||
|
<option value="0">私密</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="joinMode">加入方式</label>
|
||||||
|
<select id="joinMode" name="joinMode" aria-describedby="family-invite-mode-note">
|
||||||
|
<option value="1">审核加入</option>
|
||||||
|
<option value="2">邀请码加入</option>
|
||||||
|
<option value="0">关闭加入</option>
|
||||||
|
</select>
|
||||||
|
<p id="family-invite-mode-note" class="form-status">创建完成后,可在家谱首页的“邀请家人”中生成一次性邀请链接。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="family-create-status" class="upload-status" data-genealogy-create-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" data-genealogy-create-submit>确定创建</button>
|
||||||
|
<a class="btn ghost magnetic" href="profile-families.html">返回列表</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/js/region-pages.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/genealogy-entry-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+74
@@ -0,0 +1,74 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>资料提醒 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-profile-reminder-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-data.html">个人资料</a
|
||||||
|
><a href="profile-messages.html">消息中心</a
|
||||||
|
><a class="active" href="profile-data-reminders.html">资料提醒</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-messages.html">返回消息</a
|
||||||
|
><a class="btn primary magnetic" href="profile-data.html">完善资料</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">资料提醒</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>资料提醒</h1>
|
||||||
|
<p>
|
||||||
|
集中查看成员资料缺项,补齐头像、出生日期、亲属关系和联系方式。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-data.html">个人资料</a
|
||||||
|
><a class="active" href="profile-data-reminders.html">资料提醒</a
|
||||||
|
><a href="profile-join-review.html">入谱审核</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>待完善成员</h2>
|
||||||
|
<div class="module-list" data-profile-reminder-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在读取资料提醒…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/profile-reminder-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+259
@@ -0,0 +1,259 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>个人资料 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-profile-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile.html">个人中心</a
|
||||||
|
><a 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 class="active" href="profile-data.html">账户资料</a
|
||||||
|
><a class="btn primary magnetic" href="profile-create-family.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">个人资料</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>个人资料</h1>
|
||||||
|
<p>
|
||||||
|
管理个人资料和账号安全信息;家谱成员关系请在当前家谱中维护。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<a class="btn primary magnetic" href="#profile-edit-form"
|
||||||
|
>编辑资料</a
|
||||||
|
>
|
||||||
|
</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 href="profile-family-admin.html">家族管理</a
|
||||||
|
><a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-data.html">个人资料</a
|
||||||
|
><a href="profile-services.html">帮助与服务</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>编辑资料</h2>
|
||||||
|
<form class="editor-form profile-data-form" id="profile-edit-form" data-profile-form novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="profileNickName">昵称</label>
|
||||||
|
<input
|
||||||
|
id="profileNickName"
|
||||||
|
name="nickName"
|
||||||
|
type="text"
|
||||||
|
maxlength="30"
|
||||||
|
autocomplete="nickname"
|
||||||
|
placeholder="请输入昵称"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="profileRealName">真实姓名</label>
|
||||||
|
<input
|
||||||
|
id="profileRealName"
|
||||||
|
name="realName"
|
||||||
|
type="text"
|
||||||
|
maxlength="30"
|
||||||
|
autocomplete="name"
|
||||||
|
placeholder="请输入真实姓名"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="profileAvatarFile">头像</label>
|
||||||
|
<input
|
||||||
|
id="profileAvatar"
|
||||||
|
name="avatar"
|
||||||
|
type="hidden"
|
||||||
|
/>
|
||||||
|
<label class="upload-control" for="profileAvatarFile">选择头像文件</label>
|
||||||
|
<input
|
||||||
|
id="profileAvatarFile"
|
||||||
|
class="upload-input"
|
||||||
|
type="file"
|
||||||
|
accept="image/*"
|
||||||
|
data-upload-target="#profileAvatar"
|
||||||
|
data-upload-status="#profileAvatarStatus"
|
||||||
|
data-upload-mode="resumable"
|
||||||
|
data-upload-biz-type="avatar"
|
||||||
|
data-upload-usage-scene="profile_avatar"
|
||||||
|
/>
|
||||||
|
<p id="profileAvatarStatus" class="upload-status" role="status" aria-live="polite">请选择头像文件</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="profileSex">性别</label>
|
||||||
|
<select id="profileSex" name="sex">
|
||||||
|
<option value="">请选择</option>
|
||||||
|
<option value="0">男</option>
|
||||||
|
<option value="1">女</option>
|
||||||
|
<option value="2">未知</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="profileBirthday">出生日期</label>
|
||||||
|
<input id="profileBirthday" name="birthday" type="date" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="profileEmail">邮箱</label>
|
||||||
|
<input
|
||||||
|
id="profileEmail"
|
||||||
|
name="email"
|
||||||
|
type="email"
|
||||||
|
maxlength="100"
|
||||||
|
autocomplete="email"
|
||||||
|
placeholder="请输入邮箱"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions profile-form-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" data-profile-submit>保存资料</button>
|
||||||
|
<div class="form-status" data-profile-status role="status" aria-live="polite"></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>基本资料</h2>
|
||||||
|
<div data-profile-load-status><div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取账户资料…</div></div>
|
||||||
|
<div class="form-like">
|
||||||
|
<p>
|
||||||
|
<span>头像</span><b data-profile-text="avatarStatus">正在读取</b
|
||||||
|
><a class="link-btn" href="profile-data.html">更换</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>昵称</span><b data-profile-text="displayName">正在读取</b
|
||||||
|
><a class="link-btn" href="profile-data.html">编辑</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>真实姓名</span><b data-profile-text="realName">正在读取</b
|
||||||
|
><a class="link-btn" href="#profile-edit-form">编辑</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>绑定账号</span><b data-profile-text="phone">正在读取</b
|
||||||
|
><a class="link-btn" href="profile-security.html">安全设置</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>家谱关系</span><b>请在当前家谱中查看</b
|
||||||
|
><a class="link-btn" href="profile-family-admin.html" data-genealogy-context-link
|
||||||
|
>成员管理</a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>个人信息</h2>
|
||||||
|
<div class="form-like">
|
||||||
|
<p>
|
||||||
|
<span>性别</span><b data-profile-text="sex">正在读取</b
|
||||||
|
><a class="link-btn" href="#profile-edit-form">编辑</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>出生日期</span><b data-profile-text="birthday">待选择</b
|
||||||
|
><a class="link-btn" href="#profile-edit-form">编辑</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>邮箱</span><b data-profile-text="email">正在读取</b
|
||||||
|
><a class="link-btn" href="#profile-edit-form">编辑</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2 id="profile-region-heading">现居地区</h2>
|
||||||
|
<div class="editor-form region-profile-form" role="group" aria-labelledby="profile-region-heading" aria-describedby="profile-region-contract-note profile-region-picker-status">
|
||||||
|
<div class="region-picker profile-region-picker" data-region-picker>
|
||||||
|
<label for="profileProvinceCode">省
|
||||||
|
<select id="profileProvinceCode" class="input" name="provinceCode" data-region-level="province">
|
||||||
|
<option value="">请选择省</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label for="profileCityCode">市
|
||||||
|
<select id="profileCityCode" class="input" name="cityCode" data-region-level="city">
|
||||||
|
<option value="">请选择市</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
<label for="profileDistrictCode">区县
|
||||||
|
<select id="profileDistrictCode" class="input" name="districtCode" data-region-level="district">
|
||||||
|
<option value="">请选择区县</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="button" disabled>暂不支持保存地区</button>
|
||||||
|
<span id="profile-region-contract-note" class="form-status">现居地区暂不支持保存到个人资料</span>
|
||||||
|
</div>
|
||||||
|
<div id="profile-region-picker-status" class="form-status" data-region-picker-status role="status" aria-live="polite"></div>
|
||||||
|
</div>
|
||||||
|
<form class="editor-form" data-region-search-form data-region-search-panel novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="profileRegionKeyword">搜索地区</label>
|
||||||
|
<input id="profileRegionKeyword" name="regionKeyword" type="search" placeholder="地区名称或编码" aria-describedby="profile-region-search-status" required />
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn ghost magnetic" type="submit">搜索</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="profile-region-search-status" class="form-status" data-region-search-status role="status" aria-live="polite"></div>
|
||||||
|
</form>
|
||||||
|
<p class="api-status" data-region-search-path></p>
|
||||||
|
<div class="module-list" data-region-search-results></div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>亲属关系</h2>
|
||||||
|
<div class="module-list">
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">
|
||||||
|
个人资料页不单独维护亲属关系;请先选择家谱,再到成员管理或世系图中查看和维护。
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions"><a class="btn ghost magnetic" href="profile-family-admin.html" data-genealogy-context-link>前往成员管理</a></div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/region-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/profile-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+14
@@ -0,0 +1,14 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>重要证件 - 个人中心 - 代代相传</title><link rel="stylesheet" href="public/css/public.css" /><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-person-document-page>
|
||||||
|
<header class="site-header"><div class="container nav"><a class="brand" href="index.html"><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a><nav class="nav-links"><a href="profile-families.html">我的家谱</a><a class="active" href="profile-content.html" data-genealogy-context-link>家族文化</a></nav><div class="nav-actions"><a href="profile-family-home.html" data-genealogy-context-link>返回家谱主页</a></div></div></header>
|
||||||
|
<main><section class="module-hero"><div class="container"><div class="module-kicker">重要证件</div><div class="module-title-row"><div><h1>重要证件</h1><p>按人物维护证件档案、附件和访问密码。证件号码仅填写脱敏内容。</p></div></div></div></section>
|
||||||
|
<section class="section"><div class="container module-layout"><aside class="module-nav"><a href="profile-family-home.html" data-genealogy-context-link>家谱主页</a><a href="profile-content.html" data-genealogy-context-link>内容发布</a><a class="active" href="profile-documents.html" data-genealogy-context-link>重要证件</a></aside><div class="module-main">
|
||||||
|
<section class="module-panel"><h2>新增档案</h2><form class="editor-form" data-document-form novalidate><div class="editor-grid"><div class="editor-field"><label for="documentPerson">关联人物</label><select id="documentPerson" data-document-person><option>人物加载中</option></select></div><div class="editor-field"><label for="documentType">证件类型</label><select id="documentType" data-document-type><option>类型加载中</option></select></div><div class="editor-field"><label for="documentTitle">证件标题</label><input id="documentTitle" name="documentTitle" maxlength="100" /></div><div class="editor-field"><label for="maskedIdentifier">脱敏标识</label><input id="maskedIdentifier" name="maskedIdentifier" maxlength="100" placeholder="例如 310***********1234" /></div></div><div class="editor-field"><label for="documentDescription">说明</label><textarea id="documentDescription" name="description" maxlength="1000"></textarea></div><div class="editor-grid"><div class="editor-field"><label for="documentUsage">文件用途</label><select id="documentUsage" data-document-usage><option value="FRONT">正面</option><option value="BACK">反面</option><option value="ATTACHMENT">附件</option></select></div><div class="editor-field"><label for="documentFile">证件文件</label><input id="documentFile" type="file" accept="image/*,application/pdf" data-upload-target="#documentOssId" data-upload-status="#documentUploadStatus" /><input id="documentOssId" type="hidden" data-document-oss-id /><p id="documentUploadStatus" class="upload-status" role="status" aria-live="polite"></p></div></div><div class="bottom-actions"><button class="btn primary" type="submit">保存档案</button></div></form></section>
|
||||||
|
<section class="module-panel"><h2>档案列表</h2><div class="module-grid" data-document-list><div class="api-state api-state--loading" data-api-state="loading">正在读取重要证件…</div></div></section><div class="api-status" data-document-status role="status" aria-live="polite">正在初始化…</div>
|
||||||
|
</div></div></section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script><script src="public/layui/layui.js"></script><script src="public/js/lay-config.js"></script><script src="public/js/profile-common.js"></script><script src="config.js"></script><script src="utils/StorageUtil.js"></script><script src="utils/axios.js"></script><script src="utils/AxiosRequestUtil.js"></script><script src="utils/ApiClient.js"></script><script src="public/js/upload-pages.js"></script><script src="public/js/person-document-pages.js"></script><script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+13
@@ -0,0 +1,13 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>推广收益 - 个人中心 - 代代相传</title><link rel="stylesheet" href="public/css/public.css" /><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-earning-page>
|
||||||
|
<header class="site-header"><div class="container nav"><a class="brand" href="index.html"><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a><nav class="nav-links"><a href="profile.html">个人中心</a><a class="active" href="profile-services.html">帮助与服务</a></nav><div class="nav-actions"><a href="profile-services.html">返回服务</a></div></div></header>
|
||||||
|
<main><section class="module-hero"><div class="container"><div class="module-kicker">推广收益</div><div class="module-title-row"><div><h1>推广收益</h1><p>查看可用收益、不可变流水和提现处理状态。</p></div></div></div></section><section class="section"><div class="container module-layout"><aside class="module-nav"><a href="profile-services.html">帮助与服务</a><a class="active" href="profile-earnings.html">推广收益</a><a href="profile-share.html">应用分享</a></aside><div class="module-main">
|
||||||
|
<section class="module-panel"><h2>收益概览</h2><div data-earning-summary><div class="api-state api-state--loading" data-api-state="loading">正在读取收益…</div></div></section>
|
||||||
|
<section class="module-panel"><h2>申请提现</h2><form class="editor-form" data-withdrawal-form novalidate><div class="editor-grid"><div class="editor-field"><label for="withdrawalAmount">提现金额</label><input id="withdrawalAmount" name="amount" inputmode="decimal" placeholder="0.00" /></div><div class="editor-field"><label for="payoutAccountName">收款人姓名</label><input id="payoutAccountName" name="payoutAccountName" maxlength="64" /></div></div><div class="editor-field"><label for="payoutQrFile">微信收款码</label><input id="payoutQrFile" class="upload-input" type="file" accept="image/*" data-upload-target="#payoutQrOssId" data-upload-status="#payoutQrStatus" /><label class="upload-control" for="payoutQrFile">选择收款码图片</label><input id="payoutQrOssId" name="payoutQrOssId" type="hidden" /><p id="payoutQrStatus" class="upload-status" role="status" aria-live="polite"></p></div><div class="bottom-actions"><button class="btn primary" type="submit" data-withdrawal-submit>提交提现申请</button></div></form></section>
|
||||||
|
<section class="module-panel"><h2>提现记录</h2><div class="module-list" data-earning-withdrawals><div class="api-state api-state--loading" data-api-state="loading">正在读取提现记录…</div></div></section><section class="module-panel"><h2>收益流水</h2><div class="module-list" data-earning-ledger><div class="api-state api-state--loading" data-api-state="loading">正在读取收益流水…</div></div></section><div class="api-status" data-earning-status role="status" aria-live="polite">正在初始化…</div>
|
||||||
|
</div></div></section></main>
|
||||||
|
<script src="public/js/jquery360.js"></script><script src="public/layui/layui.js"></script><script src="public/js/lay-config.js"></script><script src="public/js/profile-common.js"></script><script src="config.js"></script><script src="utils/StorageUtil.js"></script><script src="utils/axios.js"></script><script src="utils/AxiosRequestUtil.js"></script><script src="utils/ApiClient.js"></script><script src="public/js/upload-pages.js"></script><script src="public/js/earning-pages.js"></script><script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+115
@@ -0,0 +1,115 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>我的家谱 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/profile-module.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-profile-module">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.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-data.html">账户资料</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<nav class="profile-path" aria-label="当前位置">
|
||||||
|
<a href="profile.html">个人中心</a><span aria-hidden="true">/</span><strong aria-current="page">我的家谱</strong>
|
||||||
|
</nav>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>我的家谱</h1>
|
||||||
|
<p>
|
||||||
|
从真实列表选择要进入的家谱,后续页面会持续使用同一个家谱上下文。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<a class="btn primary magnetic" href="profile-create-family.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a class="active" href="profile-families.html">我的家谱</a
|
||||||
|
><a href="profile-messages.html">消息中心</a
|
||||||
|
><a href="profile-family-admin.html" data-genealogy-context-link>家族管理</a
|
||||||
|
><a href="profile-content.html">内容发布</a
|
||||||
|
><a href="profile-data.html">个人资料</a
|
||||||
|
><a href="profile-services.html">帮助与服务</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>家谱入口</h2>
|
||||||
|
<p>先选择要处理的家谱,再进入主页、成员、世系和内容管理。</p>
|
||||||
|
<div class="api-status" data-genealogy-entry-status role="status" aria-live="polite">正在读取家谱额度…</div>
|
||||||
|
<div class="module-list" data-genealogy-list="mine">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在读取我的家谱…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>快捷操作</h2>
|
||||||
|
<div class="module-grid two">
|
||||||
|
<a
|
||||||
|
class="module-card tilt-card"
|
||||||
|
href="profile-create-family.html"
|
||||||
|
><span class="icon">建</span>
|
||||||
|
<h3>立即创建我的家谱</h3>
|
||||||
|
<p>创建新家谱,设置姓氏、谱名、堂号和访问权限。</p></a
|
||||||
|
>
|
||||||
|
<a class="module-card tilt-card" href="profile-join-family.html"
|
||||||
|
><span class="icon">入</span>
|
||||||
|
<h3>加入家谱</h3>
|
||||||
|
<p>搜索并选择可加入的家谱,提交关系和申请说明等待审核。</p></a
|
||||||
|
>
|
||||||
|
<div class="module-card">
|
||||||
|
<span class="icon">序</span>
|
||||||
|
<h3>家谱排序</h3>
|
||||||
|
<p>选择家谱后上移或下移,保存个人的家谱展示顺序。</p>
|
||||||
|
<label for="genealogySortSelect">选择家谱</label>
|
||||||
|
<select id="genealogySortSelect" data-genealogy-sort-select disabled><option value="">家谱加载中</option></select>
|
||||||
|
<div class="row-actions">
|
||||||
|
<button class="btn outline" type="button" data-genealogy-sort-up disabled>上移</button>
|
||||||
|
<button class="btn outline" type="button" data-genealogy-sort-down disabled>下移</button>
|
||||||
|
<button class="btn primary" type="button" data-genealogy-sort-save disabled>保存顺序</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="public/js/genealogy-entry-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+95
@@ -0,0 +1,95 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>家族管理 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.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-data.html">账户资料</a><a class="btn primary magnetic" href="profile-tree.html" data-genealogy-context-link>世系人物</a></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">家族管理</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<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" 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>
|
||||||
|
<div data-member-overview><div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在加载家谱和当前权限…</div></div>
|
||||||
|
<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-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>
|
||||||
|
<a class="module-card tilt-card" href="profile-join-review.html" data-genealogy-context-link><span class="icon">审</span><h3>入谱审核</h3><p>审核当前家谱的待处理加入申请。</p></a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>正常成员</h2>
|
||||||
|
<p>成员新增必须通过后端已有的加入或邀请流程;本页不伪造直接新增成员。</p>
|
||||||
|
<div class="form-status" role="status" aria-live="polite" data-member-action-status></div>
|
||||||
|
<div class="module-list" data-member-list aria-live="polite"><div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">成员加载中…</div></div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel" data-member-management hidden>
|
||||||
|
<h2 data-member-form-title>编辑成员</h2>
|
||||||
|
<form class="editor-form" data-member-form novalidate 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">留空表示保持原信息不变;只填写本次需要修改的内容。</p>
|
||||||
|
<div class="upload-status" role="status" aria-live="polite" data-member-form-status></div>
|
||||||
|
<div class="bottom-actions"><button class="btn primary magnetic" type="submit" data-member-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 novalidate>
|
||||||
|
<div class="editor-field"><label for="ownerTransferTarget">新谱主 <span class="field-required" aria-hidden="true">*</span></label><select id="ownerTransferTarget" name="targetMemberId" data-owner-transfer-target required><option value="">请选择新谱主</option></select></div>
|
||||||
|
<p>只能选择当前正常成员。转让后当前账号变为管理员,新谱主受其账号家谱拥有额度约束。</p>
|
||||||
|
<div class="upload-status" role="status" aria-live="polite" data-owner-transfer-status></div>
|
||||||
|
<div class="bottom-actions"><button class="btn ghost" type="submit" data-owner-transfer-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>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/member-admin-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+199
@@ -0,0 +1,199 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>家谱主页 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-family-home-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a class="active" href="profile-families.html">我的家谱</a
|
||||||
|
><a href="profile-family-admin.html" data-genealogy-context-link>家族管理</a
|
||||||
|
><a href="profile-content.html" data-genealogy-context-link>内容发布</a
|
||||||
|
><a href="profile-data.html">个人资料</a
|
||||||
|
><a href="profile-services.html">帮助与服务</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile.html">账户中心</a
|
||||||
|
><a class="btn primary magnetic" href="profile-feed.html" data-feature-link="available" data-genealogy-context-link>发布动态</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<nav class="profile-path" aria-label="当前位置">
|
||||||
|
<a href="profile.html">个人中心</a><span aria-hidden="true">/</span><a href="profile-families.html">我的家谱</a><span aria-hidden="true">/</span><strong data-family-home-context aria-current="page">当前家谱</strong>
|
||||||
|
</nav>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-family-home-title>正在读取家谱</h1>
|
||||||
|
<p>
|
||||||
|
当前家谱的工作区,用于进入世系、相册、家族圈、内容管理和成员协作。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<a class="btn ghost magnetic" href="profile-family-admin.html" data-family-home-management data-genealogy-context-link hidden
|
||||||
|
>管理家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a class="active" href="profile-family-home.html" data-genealogy-context-link>家谱主页</a
|
||||||
|
><a href="profile-tree.html" data-genealogy-context-link>世系图</a
|
||||||
|
><a href="profile-album.html" data-feature-link="available" data-genealogy-context-link>相册</a
|
||||||
|
><a href="profile-content.html" data-genealogy-context-link>内容发布</a
|
||||||
|
><a href="profile-family-admin.html" data-family-home-management data-genealogy-context-link hidden>家族管理</a
|
||||||
|
><a href="profile-messages.html">消息中心</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>家谱概览</h2>
|
||||||
|
<div class="module-grid">
|
||||||
|
<div class="module-card" data-family-home-overview>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载家谱概览…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="module-card">
|
||||||
|
<span class="icon">员</span>
|
||||||
|
<h3>家谱成员</h3>
|
||||||
|
<p><strong data-family-home-member-count>--</strong> 人</p>
|
||||||
|
</div>
|
||||||
|
<div class="module-card">
|
||||||
|
<span class="icon">世</span>
|
||||||
|
<h3>世系人物</h3>
|
||||||
|
<p><strong data-family-home-person-count>--</strong> 人</p>
|
||||||
|
</div>
|
||||||
|
<a class="module-card tilt-card" href="profile-invite.html" data-family-home-management data-genealogy-context-link hidden>
|
||||||
|
<span class="icon">邀</span>
|
||||||
|
<h3>邀请家人</h3>
|
||||||
|
<p>生成一次性邀请链接,指定人物并查看邀请状态。</p>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="api-status" data-family-home-status role="status" aria-live="polite">正在读取家谱概览</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>世系预览</h2>
|
||||||
|
<!-- 家谱主页只展示世系树预览,完整维护进入世系图页面 -->
|
||||||
|
<div class="lineage-tree-wrap is-compact" data-lineage-home-tree>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载世系树…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>家族文化</h2>
|
||||||
|
<p>围绕当前家谱集中维护谱文、影像与家族资料。</p>
|
||||||
|
<div class="module-grid">
|
||||||
|
<a class="module-card tilt-card" href="profile-article.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-album.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-video.html" data-feature-link="available" data-genealogy-context-link
|
||||||
|
><span class="icon">影</span>
|
||||||
|
<h3>视频</h3>
|
||||||
|
<p>发布和编辑家族视频。</p></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>家族记录与协作</h2>
|
||||||
|
<p>按列表、详情和编辑页面管理动态、成长记录、亲友往来、备忘和活动。</p>
|
||||||
|
<div class="module-grid">
|
||||||
|
<a class="module-card tilt-card" href="profile-feed.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-growth.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-relative.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-memo.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-merit.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-feature-link="available" data-genealogy-context-link
|
||||||
|
><span class="icon">祭</span>
|
||||||
|
<h3>祭祀活动</h3>
|
||||||
|
<p>维护活动、祭品和受邀名单。</p></a
|
||||||
|
><a class="module-card tilt-card" href="profile-gift.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-documents.html" data-feature-link="available" data-genealogy-context-link>
|
||||||
|
<span class="icon">证</span>
|
||||||
|
<h3>重要证件</h3>
|
||||||
|
<p>按人物维护证件档案、附件和密码保护。</p>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>家谱维护</h2>
|
||||||
|
<p>世系、字辈和成员维护均与当前家谱绑定;管理权限始终以服务端结果为准。</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-family-admin.html" data-feature-link="available" data-family-home-management data-genealogy-context-link hidden
|
||||||
|
><span class="icon">管</span>
|
||||||
|
<h3>家族管理</h3>
|
||||||
|
<p>管理成员、入谱审核和谱主转移。</p></a
|
||||||
|
><a class="module-card tilt-card" href="profile-services.html#membership" 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-family-settings.html" data-feature-link="available" data-family-home-management data-genealogy-context-link hidden>
|
||||||
|
<span class="icon">删</span>
|
||||||
|
<h3>家谱维护</h3>
|
||||||
|
<p>归档、恢复或在身份校验后永久删除家谱。</p>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/lineage-pages.js"></script>
|
||||||
|
<script src="public/js/family-home-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>家谱维护 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-genealogy-lifecycle-page>
|
||||||
|
<header class="site-header"><div class="container nav"><a class="brand" href="index.html"><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a><nav class="nav-links"><a href="profile-families.html">我的家谱</a><a class="active" href="profile-family-admin.html" data-genealogy-context-link>家族管理</a></nav><div class="nav-actions"><a href="profile-family-home.html" data-genealogy-context-link>返回家谱主页</a></div></div></header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero"><div class="container"><div class="module-kicker">家谱维护</div><div class="module-title-row"><div><h1>家谱维护</h1><p>归档、恢复或永久删除当前家谱。永久删除前会再次校验谱主身份和手机号。</p></div></div></div></section>
|
||||||
|
<section class="section"><div class="container module-layout"><aside class="module-nav"><a href="profile-family-home.html" data-genealogy-context-link>家谱主页</a><a href="profile-family-admin.html" data-genealogy-context-link>家族管理</a><a class="active" href="profile-family-settings.html" data-genealogy-context-link>家谱维护</a></aside><div class="module-main">
|
||||||
|
<section class="module-panel"><h2>归档与恢复</h2><p>归档用于暂时停止维护,不会永久删除数据。</p><div class="bottom-actions"><button class="btn outline" type="button" data-genealogy-archive>归档家谱</button><button class="btn outline" type="button" data-genealogy-restore>恢复家谱</button></div></section>
|
||||||
|
<section class="module-panel"><h2>永久删除</h2><p>此操作不可恢复。仅谱主且满足服务端删除条件时可执行。</p><form class="editor-form" data-genealogy-delete-form novalidate><div class="editor-field"><label for="deleteGenealogyName">家谱全名</label><input id="deleteGenealogyName" data-genealogy-delete-name autocomplete="off" /></div><div class="editor-field"><label for="deleteSmsCode">短信验证码</label><div class="bottom-actions"><input id="deleteSmsCode" data-genealogy-delete-sms inputmode="numeric" autocomplete="one-time-code" /><button class="btn outline" type="button" data-genealogy-delete-code>发送验证码</button></div></div><div class="bottom-actions"><button class="btn primary" type="submit" data-genealogy-delete-submit disabled>永久删除家谱</button></div></form></section>
|
||||||
|
<div class="api-status" data-lifecycle-status role="status" aria-live="polite">正在读取家谱维护能力…</div>
|
||||||
|
</div></div></section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script><script src="public/layui/layui.js"></script><script src="public/js/lay-config.js"></script><script src="public/js/profile-common.js"></script><script src="config.js"></script><script src="utils/StorageUtil.js"></script><script src="utils/axios.js"></script><script src="utils/AxiosRequestUtil.js"></script><script src="utils/ApiClient.js"></script><script src="public/js/genealogy-lifecycle-pages.js"></script><script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+95
@@ -0,0 +1,95 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>动态详情 - 家族圈 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-feed-detail-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-family-home.html">家谱主页</a
|
||||||
|
><a class="active" href="profile-feed.html" data-feed-list-link data-genealogy-context-link>家族圈</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-feed.html" data-feed-list-link data-genealogy-context-link>返回动态列表</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">动态详情</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>动态详情</h1>
|
||||||
|
<p>查看动态、评论与回复;本页链接可用于通知跳转和分享。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-feed.html" data-feed-list-link data-genealogy-context-link>家族圈</a
|
||||||
|
><a href="profile-album.html">相册</a
|
||||||
|
><a href="profile-video.html">视频</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel" data-feed-detail>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载动态详情…
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>发表评论</h2>
|
||||||
|
<form class="editor-form" data-feed-comment-form novalidate>
|
||||||
|
<input name="parentCommentId" type="hidden" />
|
||||||
|
<p class="module-meta" data-feed-comment-form-target>发表公开评论</p>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="feedCommentContent">评论内容 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<textarea id="feedCommentContent" name="commentContent" rows="3" maxlength="1000" required disabled placeholder="写下想说的话"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-status" role="status" aria-live="polite" data-feed-comment-form-status>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取动态评论权限…</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" disabled>发表评论</button>
|
||||||
|
<button class="btn ghost" type="button" data-feed-comment-cancel disabled>取消回复</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>评论与回复</h2>
|
||||||
|
<div data-feed-detail-comments>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载评论…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/feed-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+113
@@ -0,0 +1,113 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>发布动态 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/profile-module.css" />
|
||||||
|
<link rel="stylesheet" href="public/js/wangeditor5/css/style.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-profile-module" data-feed-edit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-family-home.html">家谱主页</a
|
||||||
|
><a class="active" href="profile-feed.html">发布动态</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-feed.html" data-feed-list-link data-genealogy-context-link>返回动态</a
|
||||||
|
><button class="btn primary magnetic" type="submit" form="feed-edit-form" data-feed-editor-action hidden disabled>发布</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker" data-feed-editor-kicker>发布动态</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-feed-editor-title>发布动态</h1>
|
||||||
|
<p>面向家族圈发布文字和图片动态,与家人交流近况。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-feed.html">发布动态</a
|
||||||
|
><a href="profile-album.html">相册</a
|
||||||
|
><a href="profile-video.html">视频</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>动态内容</h2>
|
||||||
|
<form id="feed-edit-form" class="editor-form layui-form" data-feed-form novalidate>
|
||||||
|
<input name="feedType" type="hidden" value="text" />
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="feedContent">内容 <span class="field-required" aria-hidden="true">*</span></label
|
||||||
|
><textarea
|
||||||
|
id="feedContent"
|
||||||
|
name="feedContent"
|
||||||
|
class="js-rich-editor"
|
||||||
|
placeholder="请输入动态内容"
|
||||||
|
required
|
||||||
|
></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="feedMediaFile">动态图片</label>
|
||||||
|
<input id="feedMedia" name="mediaOssIds" type="hidden" />
|
||||||
|
<label class="upload-control" for="feedMediaFile">选择动态图片</label>
|
||||||
|
<input id="feedMediaFile" class="upload-input" type="file" accept="image/*" multiple data-upload-multiple="true" data-upload-target="#feedMedia" data-upload-status="#feedMediaStatus" />
|
||||||
|
<p id="feedMediaStatus" class="upload-status" role="status" aria-live="polite">未选择图片</p>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two" data-feed-advanced hidden>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="feedStatus">状态</label>
|
||||||
|
<select id="feedStatus" name="status" disabled>
|
||||||
|
<option value="0">正常</option>
|
||||||
|
<option value="1">停用</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="feedSortOrder">排序值</label>
|
||||||
|
<input id="feedSortOrder" name="sortOrder" type="number" min="0" value="0" disabled />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="upload-status" role="status" aria-live="polite" data-feed-form-status></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" data-feed-editor-action hidden disabled>发布</button
|
||||||
|
><a class="btn ghost magnetic" href="profile-feed.html" data-feed-list-link data-genealogy-context-link
|
||||||
|
>取消</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/wangeditor5/index.js"></script>
|
||||||
|
<script src="public/js/rich-editor.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/feed-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+104
@@ -0,0 +1,104 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>家族圈 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-feed-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-family-home.html">家谱主页</a
|
||||||
|
><a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-feed.html">家族圈</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-family-home.html">返回家谱主页</a
|
||||||
|
><a class="btn primary magnetic" href="profile-feed-edit.html" data-feed-create-link data-genealogy-context-link hidden
|
||||||
|
>发布</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">家族圈</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>家族圈</h1>
|
||||||
|
<p>向家族圈发布文字和图片动态,与家人交流近况。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-feed.html">家族圈</a
|
||||||
|
><a href="profile-album.html">相册</a
|
||||||
|
><a href="profile-video.html">视频</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>发布动态</h2>
|
||||||
|
<div class="form-like">
|
||||||
|
<p>
|
||||||
|
<span>内容</span><b>在发布页填写</b
|
||||||
|
><a class="link-btn" href="profile-feed-edit.html" data-feed-create-link data-genealogy-context-link hidden>编辑</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>图片</span><b>可直接选择并上传多张图片</b
|
||||||
|
><a class="link-btn" href="profile-feed-edit.html" data-feed-create-link data-genealogy-context-link hidden>添加</a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>动态类型</span><b>图文动态</b
|
||||||
|
><a class="link-btn" href="profile-feed-edit.html" data-feed-create-link data-genealogy-context-link hidden>编辑</a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span>发布状态</span><b>正常或停用</b
|
||||||
|
><a class="link-btn" href="profile-feed-edit.html" data-feed-create-link data-genealogy-context-link hidden>设置</a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>最近动态</h2>
|
||||||
|
<!-- 动态列表由 /feeds/page 接口渲染,点赞和评论走对应子接口 -->
|
||||||
|
<div class="module-list" data-feed-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在加载家族动态…</div>
|
||||||
|
</div>
|
||||||
|
<div class="row-actions">
|
||||||
|
<button class="pill" type="button" data-feed-page-prev disabled>上一页</button>
|
||||||
|
<span data-feed-page-label>第 1 页</span>
|
||||||
|
<button class="pill" type="button" data-feed-page-next disabled>下一页</button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/feed-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+97
@@ -0,0 +1,97 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>意见反馈 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-feedback-page="profile">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-services.html">帮助与服务</a
|
||||||
|
><a class="active" href="profile-feedback.html">意见反馈</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-services.html">返回服务中心</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">意见反馈</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>意见反馈</h1>
|
||||||
|
<p>提交产品问题、资料异常和改进建议,个人中心内独立跟踪。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-services.html">帮助与服务</a
|
||||||
|
><span class="module-nav-unavailable">应用分享<small>即将开放</small></span
|
||||||
|
><a class="active" href="profile-feedback.html">意见反馈</a
|
||||||
|
><a href="profile-security.html">安全设置</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>提交反馈</h2>
|
||||||
|
<form class="editor-form" id="profileFeedbackForm" data-feedback-form novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="feedbackType">反馈类型</label>
|
||||||
|
<select id="feedbackType" name="feedbackType" data-feedback-type-options>
|
||||||
|
<option value="">反馈类型加载中…</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="contactInfo">联系方式</label>
|
||||||
|
<input id="contactInfo" name="contactInfo" type="text" placeholder="手机号 / 邮箱" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="feedbackContent">反馈描述 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<textarea id="feedbackContent" name="feedbackContent" required placeholder="请描述问题、页面位置和期望结果"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-status" role="status" aria-live="polite" data-feedback-status></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" data-feedback-submit>提交反馈</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="module-title-row">
|
||||||
|
<h2>历史反馈</h2>
|
||||||
|
<button class="btn ghost" type="button" data-feedback-refresh>刷新</button>
|
||||||
|
</div>
|
||||||
|
<div class="module-list" data-feedback-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取反馈记录…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/js/feedback-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+146
@@ -0,0 +1,146 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>字辈谱 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-generation-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-families.html">我的家谱</a
|
||||||
|
><a class="active" href="profile-family-admin.html" data-genealogy-context-link>家族管理</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-family-admin.html" data-genealogy-context-link>返回管理</a
|
||||||
|
><a class="btn primary magnetic" href="#generation-content">管理</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">字辈管理</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>字辈谱</h1>
|
||||||
|
<p>管理世代数字辈,查看各代人数,并维护同字辈多个用字。</p>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
class="btn primary magnetic"
|
||||||
|
type="button"
|
||||||
|
data-generation-add
|
||||||
|
data-generation-management
|
||||||
|
hidden
|
||||||
|
disabled
|
||||||
|
>新增字辈</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-tree.html" data-genealogy-context-link>世系图</a
|
||||||
|
><a class="active" href="profile-generation.html" data-genealogy-context-link>字辈谱</a
|
||||||
|
><a href="profile-family-admin.html" data-genealogy-context-link>家族管理</a>
|
||||||
|
</aside>
|
||||||
|
<div id="generation-content" class="module-main">
|
||||||
|
<section class="module-panel generation-batch-panel" data-generation-management hidden>
|
||||||
|
<h2>批量字辈</h2>
|
||||||
|
<!-- 批量字辈表单:字段对应 Apifox 的 GenerationPoemBatchBody。 -->
|
||||||
|
<form class="editor-form generation-batch-form" data-generation-batch-form novalidate>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="generationBatchContent">字辈内容 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<textarea
|
||||||
|
id="generationBatchContent"
|
||||||
|
name="poemText"
|
||||||
|
rows="4"
|
||||||
|
placeholder="例如:德 承 家 亦(用空格或标点分隔)"
|
||||||
|
></textarea>
|
||||||
|
</div>
|
||||||
|
<label class="check-row generation-batch-check" for="generationStopMissing">
|
||||||
|
<input
|
||||||
|
id="generationStopMissing"
|
||||||
|
name="disableMissing"
|
||||||
|
type="checkbox"
|
||||||
|
/>
|
||||||
|
<span>保存时停用未出现在文本中的后续世代(不删除历史记录)</span>
|
||||||
|
</label>
|
||||||
|
<div class="bottom-actions generation-batch-actions">
|
||||||
|
<button
|
||||||
|
class="btn ghost"
|
||||||
|
type="button"
|
||||||
|
data-generation-batch-action="preview"
|
||||||
|
>批量预览</button>
|
||||||
|
<button
|
||||||
|
class="btn primary magnetic"
|
||||||
|
type="button"
|
||||||
|
data-generation-batch-action="save"
|
||||||
|
>批量保存</button>
|
||||||
|
<span class="form-status" role="status" aria-live="polite" data-generation-batch-status></span>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div class="module-list generation-batch-preview" data-generation-batch-preview>
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">批量预览结果将在这里显示。</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="generation-editor" class="module-panel" data-generation-editor hidden>
|
||||||
|
<h2 data-generation-editor-title>新增字辈</h2>
|
||||||
|
<form class="editor-form" data-generation-form novalidate>
|
||||||
|
<input name="poemId" type="hidden" />
|
||||||
|
<input name="status" type="hidden" />
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="generationNo">世代序号 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="generationNo" name="generationNo" type="number" min="1" max="2147483647" step="1" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="generationText">字辈文字 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="generationText" name="generationText" type="text" maxlength="50" required />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="generationDescription">说明</label>
|
||||||
|
<textarea id="generationDescription" name="description" rows="3" maxlength="500" placeholder="可选,最多 500 个字符"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="generationSortOrder">排序值</label>
|
||||||
|
<input id="generationSortOrder" name="sortOrder" type="number" min="-2147483648" max="2147483647" step="1" placeholder="可留空,越小越靠前" />
|
||||||
|
</div>
|
||||||
|
<div class="form-status" role="status" aria-live="polite" data-generation-form-status></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" data-generation-editor-submit>保存字辈</button>
|
||||||
|
<button class="btn ghost" type="button" data-generation-editor-cancel>取消</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>字辈列表</h2>
|
||||||
|
<div class="module-list" data-generation-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在加载字辈记录…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/generation-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+146
@@ -0,0 +1,146 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>创建祭祀活动 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/profile-module.css" />
|
||||||
|
<link rel="stylesheet" href="public/js/wangeditor5/css/style.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-profile-module" data-ceremony-edit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-ceremony.html">祭祀活动</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-ceremony.html">返回活动列表</a
|
||||||
|
><button class="btn primary magnetic" type="submit" form="ceremony-edit-form" data-ceremony-editor-action hidden>确定创建</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">活动编辑</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-ceremony-editor-title>创建祭祀活动</h1>
|
||||||
|
<p>维护活动类型、标题、时间地点和说明;受邀名单在活动详情中选择家谱成员。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a href="profile-merit.html">功德录</a
|
||||||
|
><a class="active" href="profile-ceremony.html">祭祀活动</a
|
||||||
|
><a href="profile-feed.html">发布动态</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>活动信息</h2>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" data-ceremony-editor-placeholder role="status" aria-live="polite" aria-busy="true">正在加载活动编辑信息…</div>
|
||||||
|
<form id="ceremony-edit-form" class="editor-form layui-form" data-ceremony-form data-ceremony-editor hidden novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftType">活动类型 <span class="field-required" aria-hidden="true">*</span></label
|
||||||
|
><input id="giftType" name="ceremonyType" type="text" placeholder="请输入后端约定的活动类型" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftDate">举办时间</label
|
||||||
|
><input
|
||||||
|
id="giftDate"
|
||||||
|
name="ceremonyTime"
|
||||||
|
type="datetime-local"
|
||||||
|
placeholder="请选择时间"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftTitle">活动标题 <span class="field-required" aria-hidden="true">*</span></label
|
||||||
|
><input id="giftTitle" name="ceremonyTitle" type="text" placeholder="请输入标题" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftAddress">举办地点</label
|
||||||
|
><input
|
||||||
|
id="giftAddress"
|
||||||
|
name="location"
|
||||||
|
type="text"
|
||||||
|
placeholder="请输入地点"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftLocationAddress">详细地址</label
|
||||||
|
><input id="giftLocationAddress" name="locationAddress" type="text" maxlength="300" placeholder="最多 300 个字符" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftLongitude">经度</label
|
||||||
|
><input id="giftLongitude" name="longitude" type="number" min="-180" max="180" step="any" placeholder="与纬度同时填写" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftLatitude">纬度</label
|
||||||
|
><input id="giftLatitude" name="latitude" type="number" min="-90" max="90" step="any" placeholder="与经度同时填写" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftContent">活动说明</label
|
||||||
|
><textarea class="js-rich-editor"
|
||||||
|
id="giftContent"
|
||||||
|
name="ceremonyDesc"
|
||||||
|
placeholder="请输入活动说明"
|
||||||
|
></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftCoverFile">封面文件</label>
|
||||||
|
<input id="giftCoverOssId" name="coverOssId" type="hidden" />
|
||||||
|
<label class="upload-control" for="giftCoverFile">选择封面图片</label>
|
||||||
|
<input id="giftCoverFile" class="upload-input" type="file" accept="image/*" data-upload-target="#giftCoverOssId" data-upload-status="#giftCoverStatus" />
|
||||||
|
<p id="giftCoverStatus" class="upload-status" role="status" aria-live="polite">未选择文件</p>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftSortOrder">排序值</label
|
||||||
|
><input id="giftSortOrder" name="sortOrder" type="number" step="1" placeholder="可选,数值越小越靠前" />
|
||||||
|
</div>
|
||||||
|
<input name="status" type="hidden" value="0" />
|
||||||
|
<div class="upload-status" data-ceremony-form-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit">确定创建</button
|
||||||
|
><a class="btn ghost magnetic" href="profile-ceremony.html"
|
||||||
|
>取消</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/wangeditor5/index.js"></script>
|
||||||
|
<script src="public/js/rich-editor.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/ceremony-admin-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+88
@@ -0,0 +1,88 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>贺礼邀请 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-ceremony-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-gift.html">贺礼邀请</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-content.html">返回发布中心</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">贺礼邀请</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>贺礼邀请</h1>
|
||||||
|
<p>
|
||||||
|
查看发给当前账号的活动邀请,并直接接受或拒绝;具备权限时可进入活动管理。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a href="profile-merit.html">功德录</a
|
||||||
|
><a class="active" href="profile-gift.html">贺礼邀请</a
|
||||||
|
><a href="profile-feed.html">发布动态</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>我的邀请</h2>
|
||||||
|
<div class="module-list" data-my-invitation-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载我的邀请…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-status" data-my-invitation-status role="status" aria-live="polite"></div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="module-panel-head">
|
||||||
|
<h2>关联活动</h2>
|
||||||
|
<a class="pill" href="profile-ceremony.html" data-genealogy-context-link>管理关联活动</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>邀请详情</h2>
|
||||||
|
<div data-my-invitation-detail aria-live="polite">
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">
|
||||||
|
请选择一条邀请查看详情
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/ceremony-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+145
@@ -0,0 +1,145 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>新建成长记录 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/profile-module.css" />
|
||||||
|
<link rel="stylesheet" href="public/js/wangeditor5/css/style.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-profile-module" data-growth-edit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-growth.html" data-genealogy-context-link>成长记录</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-growth.html" data-genealogy-context-link>返回记录</a
|
||||||
|
><button class="btn primary magnetic" type="submit" form="growth-edit-form" data-growth-editor-action hidden>保存</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">编辑成长记录</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-growth-editor-title>新建成长记录</h1>
|
||||||
|
<p>人物从当前家谱世系中选择,附件由上传组件自动生成内部编号。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a href="profile-feed.html">发布动态</a
|
||||||
|
><a class="active" href="profile-growth.html" data-genealogy-context-link>成长记录</a
|
||||||
|
><a href="profile-memo.html">备忘录</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>记录内容</h2>
|
||||||
|
<form id="growth-edit-form" class="editor-form" data-growth-form data-growth-editor hidden novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="growthPersonId">关联世系人物</label
|
||||||
|
><select
|
||||||
|
id="growthPersonId"
|
||||||
|
name="lineagePersonId"
|
||||||
|
data-growth-lineage-person
|
||||||
|
>
|
||||||
|
<option value="">正在加载世系人物…</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="growthDate">日期</label
|
||||||
|
><input
|
||||||
|
id="growthDate"
|
||||||
|
name="recordDate"
|
||||||
|
type="date"
|
||||||
|
placeholder="请选择日期"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="growthTitle">标题<span class="field-required" aria-hidden="true"> *</span></label>
|
||||||
|
<input id="growthTitle" name="recordTitle" type="text" placeholder="请输入成长记录标题" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="growthType">类型</label>
|
||||||
|
<input id="growthType" name="recordType" type="text" placeholder="可选;按后端定义填写类型" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="growthContent">内容</label
|
||||||
|
><textarea
|
||||||
|
id="growthContent"
|
||||||
|
name="recordContent"
|
||||||
|
class="js-rich-editor"
|
||||||
|
placeholder="请输入成长记录内容"
|
||||||
|
></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="growthRemindTime">提醒时间</label>
|
||||||
|
<input id="growthRemindTime" name="remindTime" type="datetime-local" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="growthMediaFiles">附件文件</label>
|
||||||
|
<input id="growthMediaOssIds" name="mediaOssIds" type="hidden" />
|
||||||
|
<label class="upload-control" for="growthMediaFiles">选择附件</label>
|
||||||
|
<input id="growthMediaFiles" class="upload-input" type="file" multiple data-upload-multiple="true" data-upload-target="#growthMediaOssIds" data-upload-status="#growthMediaStatus" data-growth-media-input />
|
||||||
|
<p id="growthMediaStatus" class="upload-status" data-growth-media-status role="status" aria-live="polite">未选择文件</p>
|
||||||
|
<button class="pill" type="button" data-growth-clear-media>清除附件</button>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="growthSortOrder">排序值</label>
|
||||||
|
<input id="growthSortOrder" name="sortOrder" type="number" step="1" placeholder="可选;安全整数" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input id="growthStatus" name="status" type="hidden" value="0" />
|
||||||
|
<div class="form-status" data-growth-form-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit">保存</button
|
||||||
|
><a class="btn ghost magnetic" href="profile-growth.html" data-genealogy-context-link
|
||||||
|
>取消</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div data-growth-editor-placeholder>
|
||||||
|
<div class="api-state api-state--loading" role="status" aria-live="polite" aria-busy="true">正在加载成长记录编辑信息…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/wangeditor5/index.js"></script>
|
||||||
|
<script src="public/js/rich-editor.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/growth-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+79
@@ -0,0 +1,79 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>成长日志 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-growth-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a class="active" href="profile-growth.html" data-genealogy-context-link>成长记录</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-content.html">返回发布中心</a
|
||||||
|
><a class="btn primary magnetic" href="profile-growth-edit.html" data-genealogy-context-link data-growth-create-link hidden
|
||||||
|
>新建记录</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">成长记录</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>成长记录</h1>
|
||||||
|
<p>记录家族成员的成长节点、日期、提醒和附件。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a
|
||||||
|
><a href="profile-feed.html">发布动态</a
|
||||||
|
><a class="active" href="profile-growth.html" data-genealogy-context-link>成长记录</a
|
||||||
|
><a href="profile-memo.html">备忘录</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>记录列表</h2>
|
||||||
|
<div class="module-list" data-growth-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在加载成长记录…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2 tabindex="-1" data-growth-detail-heading>记录详情</h2>
|
||||||
|
<div data-growth-detail aria-live="polite">
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">请选择一条成长记录查看详情。</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/growth-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+79
@@ -0,0 +1,79 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>邀请家人 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-family-invite-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-families.html">我的家谱</a
|
||||||
|
><a class="active" href="profile-family-admin.html">家族管理</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-family-admin.html">返回管理</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">邀请家人</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>邀请家人</h1>
|
||||||
|
<p>生成家谱邀请链接或邀请码,引导亲人加入家谱并激活账号。</p>
|
||||||
|
</div>
|
||||||
|
<a class="btn ghost magnetic" href="profile-family-admin.html" data-feature-link="available" data-genealogy-context-link>返回家族管理</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-family-admin.html">家族管理</a
|
||||||
|
><a class="active" href="profile-invite.html">邀请家人</a
|
||||||
|
><a href="profile-messages.html">邀请消息</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>生成邀请</h2>
|
||||||
|
<form class="editor-form" data-invite-form novalidate>
|
||||||
|
<div class="editor-field"><label for="invitePerson">关联人物(可选)</label><select id="invitePerson" data-invite-person><option value="">人物加载中</option></select></div>
|
||||||
|
<div class="bottom-actions"><button class="btn primary" type="submit">生成邀请链接</button><div class="form-status" data-invite-status role="status" aria-live="polite">正在读取邀请服务…</div></div>
|
||||||
|
</form>
|
||||||
|
<div class="editor-form" data-invite-result hidden>
|
||||||
|
<div class="editor-field"><label for="inviteLink">一次性邀请链接</label><input id="inviteLink" data-invite-link readonly /></div>
|
||||||
|
<button class="btn outline" type="button" data-invite-copy>复制链接</button>
|
||||||
|
</div>
|
||||||
|
<div class="module-card" data-invite-redeem hidden><h3>接受家谱邀请</h3><p>邀请令牌:<span data-invite-token></span></p><button class="btn primary" type="button" data-invite-redeem-submit>确认加入</button></div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>我发出的邀请</h2>
|
||||||
|
<div class="module-list" data-invite-list><div class="api-state api-state--loading" data-api-state="loading">正在读取邀请记录…</div></div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/family-invite-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+75
@@ -0,0 +1,75 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>加入家谱 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-my-join-applies-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a class="active" href="profile-families.html">我的家谱</a
|
||||||
|
><a href="profile-messages.html">消息中心</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-families.html">返回我的家谱</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">加入家谱</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>加入家谱</h1>
|
||||||
|
<p>查看加入申请进度;待审核申请可以撤销后重新提交。</p>
|
||||||
|
</div>
|
||||||
|
<a
|
||||||
|
class="btn primary magnetic"
|
||||||
|
href="join-genealogy.html"
|
||||||
|
>提交新申请</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-families.html">我的家谱</a
|
||||||
|
><a href="profile-create-family.html">创建家谱</a
|
||||||
|
><a class="active" href="profile-join-family.html">加入家谱</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="module-title-row">
|
||||||
|
<h2>我的加入申请</h2>
|
||||||
|
<button class="btn ghost" type="button" data-join-apply-refresh>刷新</button>
|
||||||
|
</div>
|
||||||
|
<div class="form-note" role="status" aria-live="polite" data-my-join-applies-status></div>
|
||||||
|
<div class="module-list" data-join-apply-list="mine"></div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/join-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+92
@@ -0,0 +1,92 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>入谱审核 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-join-review-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-messages.html">消息中心</a
|
||||||
|
><a href="profile-family-admin.html">家族管理</a
|
||||||
|
><a class="active" href="profile-join-review.html">入谱审核</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-family-admin.html" data-genealogy-context-link>返回家族管理</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">入谱审核</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>入谱审核</h1>
|
||||||
|
<p>审核当前家谱的加入申请。只有家谱管理者可以执行通过或拒绝。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-messages.html">消息中心</a
|
||||||
|
><a class="active" href="profile-join-review.html" data-genealogy-context-link>入谱审核</a
|
||||||
|
><span class="module-nav-unavailable">邀请家人<small>即将开放</small></span
|
||||||
|
><a href="profile-admin-permissions.html" data-genealogy-context-link>管理员权限</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="module-title-row">
|
||||||
|
<h2>待审核申请</h2>
|
||||||
|
<button class="btn ghost" type="button" data-join-review-refresh>刷新</button>
|
||||||
|
</div>
|
||||||
|
<div class="form-note" role="status" aria-live="polite" data-join-review-status></div>
|
||||||
|
<div class="module-list" data-join-apply-list="pending">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在读取待审核申请…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section id="join-review-form" class="module-panel" data-join-review-editor hidden>
|
||||||
|
<h2 data-join-review-form-title>审核加入申请</h2>
|
||||||
|
<form class="editor-form" data-join-review-form novalidate>
|
||||||
|
<input name="applyId" type="hidden" />
|
||||||
|
<input name="status" type="hidden" />
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="joinAuditRemark">审核说明</label>
|
||||||
|
<textarea id="joinAuditRemark" name="auditRemark" rows="4" maxlength="500" disabled placeholder="可选;拒绝时可说明原因,最多 500 个字符"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="form-status" role="status" aria-live="polite" data-join-review-form-status></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" data-join-review-submit disabled>提交审核</button>
|
||||||
|
<button class="btn ghost" type="button" data-join-review-cancel disabled>取消</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/join-review-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+65
@@ -0,0 +1,65 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>新建备忘录 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-memo-edit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a>
|
||||||
|
<nav class="nav-links"><a href="profile-content.html">内容发布</a><a class="active" href="profile-memo.html" data-genealogy-context-link>备忘录</a></nav>
|
||||||
|
<div class="nav-actions"><a href="profile-memo.html" data-genealogy-context-link>返回记录</a><button class="btn primary magnetic" type="submit" form="memo-edit-form" data-memo-editor-action hidden>保存</button></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container"><div class="module-kicker">编辑备忘录</div><div class="module-title-row"><div><h1 data-memo-editor-title>新建备忘录</h1><p>附件由上传组件自动生成内部编号,页面不允许手工填写。</p></div></div></div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav"><a href="profile-content.html">内容发布</a><a href="profile-growth.html" data-genealogy-context-link>成长记录</a><a href="profile-relative.html" data-genealogy-context-link>亲友往来</a><a class="active" href="profile-memo.html" data-genealogy-context-link>备忘录</a></aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>备忘内容</h2>
|
||||||
|
<form id="memo-edit-form" class="editor-form" data-memo-form data-memo-editor hidden novalidate>
|
||||||
|
<div class="editor-field"><label for="memoTitle">备忘标题<span class="field-required" aria-hidden="true"> *</span></label><input id="memoTitle" name="memoTitle" type="text" required /></div>
|
||||||
|
<div class="editor-field"><label for="memoContent">备忘内容</label><textarea id="memoContent" name="memoContent" placeholder="可选"></textarea></div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field"><label for="memoRemindTime">提醒时间</label><input id="memoRemindTime" name="remindTime" type="datetime-local" /></div>
|
||||||
|
<div class="editor-field"><label for="memoCompleted">完成状态</label><select id="memoCompleted" name="completed"><option value="0">未完成</option><option value="1">已完成</option></select></div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field"><label for="memoMediaFiles">附件文件</label><input id="memoMediaOssIds" name="mediaOssIds" type="hidden" /><label class="upload-control" for="memoMediaFiles">选择附件</label><input id="memoMediaFiles" class="upload-input" type="file" multiple data-upload-multiple="true" data-upload-target="#memoMediaOssIds" data-upload-status="#memoMediaStatus" data-memo-media-input /><p id="memoMediaStatus" class="upload-status" data-memo-media-status role="status" aria-live="polite">未选择文件</p><button class="pill" type="button" data-memo-clear-media>清除附件</button></div>
|
||||||
|
<div class="editor-field"><label for="memoSortOrder">排序值</label><input id="memoSortOrder" name="sortOrder" type="number" step="1" placeholder="可选;安全整数" /></div>
|
||||||
|
</div>
|
||||||
|
<input name="status" type="hidden" value="0" />
|
||||||
|
<div class="form-status" data-memo-form-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions"><button class="btn primary magnetic" type="submit">保存</button><a class="btn ghost magnetic" href="profile-memo.html" data-genealogy-context-link>取消</a></div>
|
||||||
|
</form>
|
||||||
|
<div data-memo-editor-placeholder><div class="api-state api-state--loading" role="status" aria-live="polite" aria-busy="true">正在加载备忘录编辑信息…</div></div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/memo-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+59
@@ -0,0 +1,59 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>备忘录 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-memo-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a>
|
||||||
|
<nav class="nav-links"><a href="profile-content.html">内容发布</a><a class="active" href="profile-memo.html" data-genealogy-context-link>备忘录</a></nav>
|
||||||
|
<div class="nav-actions"><a href="profile-content.html">返回发布中心</a><a class="btn primary magnetic" href="profile-memo-edit.html" data-genealogy-context-link data-memo-create-link hidden>新建备忘</a></div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">备忘录</div>
|
||||||
|
<div class="module-title-row"><div><h1>备忘录</h1><p>记录家族事务、纪念事项、提醒时间和完成状态。</p></div></div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav"><a href="profile-content.html">内容发布</a><a href="profile-growth.html" data-genealogy-context-link>成长记录</a><a href="profile-relative.html" data-genealogy-context-link>亲友往来</a><a class="active" href="profile-memo.html" data-genealogy-context-link>备忘录</a></aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>备忘列表</h2>
|
||||||
|
<div class="module-list" data-memo-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在加载备忘录…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2 tabindex="-1" data-memo-detail-heading>备忘详情</h2>
|
||||||
|
<div data-memo-detail aria-live="polite">
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">请选择一条备忘录查看详情。</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/memo-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+120
@@ -0,0 +1,120 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>新增功德记录 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/profile-module.css" />
|
||||||
|
<link rel="stylesheet" href="public/js/wangeditor5/css/style.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-profile-module" data-merit-edit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" />
|
||||||
|
<span class="brand-text">个人中心</span>
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-merit.html" data-genealogy-context-link>功德录</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-merit.html" data-genealogy-context-link>返回功德录</a>
|
||||||
|
<button class="btn primary magnetic" type="submit" form="merit-edit-form" data-merit-editor-action hidden>保存</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">编辑功德记录</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-merit-editor-title>新增功德记录</h1>
|
||||||
|
<p>选择功德类型并填写金额和说明;标有 * 的项目为必填。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-merit.html" data-genealogy-context-link>功德录</a>
|
||||||
|
<a href="profile-gift.html" data-genealogy-context-link>贺礼邀请</a>
|
||||||
|
<a href="profile-growth.html" data-genealogy-context-link>成长日志</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>功德资料</h2>
|
||||||
|
<form id="merit-edit-form" class="editor-form" data-merit-form data-merit-editor hidden novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="meritName">功德人姓名<span class="field-required" aria-hidden="true"> *</span></label>
|
||||||
|
<input id="meritName" name="donorName" type="text" placeholder="请输入功德人姓名" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="meritTime">功德时间</label>
|
||||||
|
<input id="meritTime" name="meritTime" type="datetime-local" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="meritTitle">功德标题<span class="field-required" aria-hidden="true"> *</span></label>
|
||||||
|
<input id="meritTitle" name="meritTitle" type="text" placeholder="请输入功德标题" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="meritContent">事迹内容</label>
|
||||||
|
<textarea id="meritContent" name="meritContent" class="js-rich-editor" placeholder="可选,记录功德事迹"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="meritType">功德类型</label>
|
||||||
|
<select id="meritType" name="meritType">
|
||||||
|
<option value="donation">捐赠</option>
|
||||||
|
<option value="repair">修缮</option>
|
||||||
|
<option value="public">公益</option>
|
||||||
|
<option value="other">其他</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="meritAmount">金额</label>
|
||||||
|
<input id="meritAmount" name="amount" type="number" step="any" placeholder="可选;后端未限定精度、范围或正负" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="meritSortOrder">排序值</label>
|
||||||
|
<input id="meritSortOrder" name="sortOrder" type="number" step="1" placeholder="可选;安全整数" />
|
||||||
|
</div>
|
||||||
|
<input name="status" type="hidden" value="0" />
|
||||||
|
<div class="form-status" data-merit-form-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit">保存</button>
|
||||||
|
<a class="btn ghost magnetic" href="profile-merit.html" data-genealogy-context-link>取消</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div data-merit-editor-placeholder>
|
||||||
|
<div class="api-state api-state--loading" role="status" aria-live="polite" aria-busy="true">正在加载功德记录编辑信息…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/wangeditor5/index.js"></script>
|
||||||
|
<script src="public/js/rich-editor.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/merit-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+79
@@ -0,0 +1,79 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>功德录 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-merit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" />
|
||||||
|
<span class="brand-text">个人中心</span>
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-merit.html" data-genealogy-context-link>功德录</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-content.html">返回发布中心</a>
|
||||||
|
<a class="btn primary magnetic" href="profile-merit-edit.html" data-genealogy-context-link data-merit-create-link hidden>新增功德记录</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">功德录</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>功德录</h1>
|
||||||
|
<p>记录功德人、事迹、时间和金额,沉淀家族贡献。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-merit.html" data-genealogy-context-link>功德录</a>
|
||||||
|
<a href="profile-gift.html" data-genealogy-context-link>贺礼邀请</a>
|
||||||
|
<a href="profile-growth.html" data-genealogy-context-link>成长日志</a>
|
||||||
|
<a href="profile-memo.html" data-genealogy-context-link>备忘录</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>功德记录</h2>
|
||||||
|
<div class="module-list" data-merit-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在加载功德记录…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2 tabindex="-1" data-merit-detail-heading>记录详情</h2>
|
||||||
|
<div data-merit-detail aria-live="polite">
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">请选择一条功德记录查看详情。</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/merit-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+114
@@ -0,0 +1,114 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>消息中心 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/profile-module.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-profile-module">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" />
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile.html">个人中心</a>
|
||||||
|
<a 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 class="active" href="profile-messages.html">消息中心</a>
|
||||||
|
<a class="btn primary magnetic" href="profile-create-family.html">创建家谱</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">消息中心</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>消息中心</h1>
|
||||||
|
<p>查看当前账号的通知详情,并管理未读状态。</p>
|
||||||
|
</div>
|
||||||
|
<a class="btn ghost magnetic" href="profile.html">返回个人中心</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-families.html">我的家谱</a>
|
||||||
|
<a class="active" href="profile-messages.html">消息中心</a>
|
||||||
|
<a 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>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h2>通知列表</h2>
|
||||||
|
<p class="module-note">未读数量:<b data-notification-unread-count>0</b></p>
|
||||||
|
</div>
|
||||||
|
<label class="editor-field">
|
||||||
|
<span>阅读状态</span>
|
||||||
|
<select data-notification-filter>
|
||||||
|
<option value="">全部通知</option>
|
||||||
|
<option value="0">仅未读</option>
|
||||||
|
<option value="1">仅已读</option>
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-status" data-notification-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="module-list" data-notification-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在加载消息…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>通知详情</h2>
|
||||||
|
<div data-notification-detail aria-live="polite">
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">请选择一条通知查看详情。</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>阅读管理</h2>
|
||||||
|
<div class="module-grid two">
|
||||||
|
<button class="module-card module-action-card" type="button" data-notification-read-all>
|
||||||
|
<span class="icon">通</span>
|
||||||
|
<h3>全部标记已读</h3>
|
||||||
|
<p>将当前账号所有未读通知标记为已读。</p>
|
||||||
|
</button>
|
||||||
|
<button class="module-card module-action-card" type="button" data-notification-refresh>
|
||||||
|
<span class="icon">刷</span>
|
||||||
|
<h3>刷新消息</h3>
|
||||||
|
<p>重新读取通知列表、详情与未读数量。</p>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/notification-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+133
@@ -0,0 +1,133 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>新建亲友记录 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-relative-edit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" />
|
||||||
|
<span class="brand-text">个人中心</span>
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-relative.html" data-genealogy-context-link>亲友往来</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-relative.html" data-genealogy-context-link>返回记录</a>
|
||||||
|
<button class="btn primary magnetic" type="submit" form="relative-edit-form" data-relative-editor-action hidden>保存</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">编辑亲友往来</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-relative-editor-title>新建亲友记录</h1>
|
||||||
|
<p>附件由上传组件自动生成内部编号,页面不允许手工填写。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a href="profile-growth.html" data-genealogy-context-link>成长记录</a>
|
||||||
|
<a class="active" href="profile-relative.html" data-genealogy-context-link>亲友往来</a>
|
||||||
|
<a href="profile-memo.html">备忘录</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>记录内容</h2>
|
||||||
|
<form id="relative-edit-form" class="editor-form" data-relative-form data-relative-editor hidden novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="relativeName">亲友姓名<span class="field-required" aria-hidden="true"> *</span></label>
|
||||||
|
<input id="relativeName" name="relativeName" type="text" placeholder="请输入亲友姓名" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="relationName">关系名称</label>
|
||||||
|
<input id="relationName" name="relationName" type="text" placeholder="可选,例如长辈、同学" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="eventName">事件名称</label>
|
||||||
|
<input id="eventName" name="eventName" type="text" placeholder="可选,例如寿宴、婚礼" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="eventTime">事件时间</label>
|
||||||
|
<input id="eventTime" name="eventTime" type="datetime-local" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="giftAmount">礼金金额</label>
|
||||||
|
<input id="giftAmount" name="giftAmount" type="number" step="any" placeholder="可选;后端未限定精度或正负" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="relativeSortOrder">排序值</label>
|
||||||
|
<input id="relativeSortOrder" name="sortOrder" type="number" step="1" placeholder="可选;安全整数" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="relativeContent">记录内容</label>
|
||||||
|
<textarea id="relativeContent" name="recordContent" placeholder="可选,记录往来详情"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="relativeMediaFiles">附件文件</label>
|
||||||
|
<input id="relativeMediaOssIds" name="mediaOssIds" type="hidden" />
|
||||||
|
<label class="upload-control" for="relativeMediaFiles">选择附件</label>
|
||||||
|
<input
|
||||||
|
id="relativeMediaFiles"
|
||||||
|
class="upload-input"
|
||||||
|
type="file"
|
||||||
|
multiple
|
||||||
|
data-upload-multiple="true"
|
||||||
|
data-upload-target="#relativeMediaOssIds"
|
||||||
|
data-upload-status="#relativeMediaStatus"
|
||||||
|
data-relative-media-input
|
||||||
|
/>
|
||||||
|
<p id="relativeMediaStatus" class="upload-status" data-relative-media-status role="status" aria-live="polite">未选择文件</p>
|
||||||
|
<button class="pill" type="button" data-relative-clear-media>清除附件</button>
|
||||||
|
</div>
|
||||||
|
<input name="status" type="hidden" value="0" />
|
||||||
|
<div class="form-status" data-relative-form-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit">保存</button>
|
||||||
|
<a class="btn ghost magnetic" href="profile-relative.html" data-genealogy-context-link>取消</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div data-relative-editor-placeholder>
|
||||||
|
<div class="api-state api-state--loading" role="status" aria-live="polite" aria-busy="true">正在加载亲友记录编辑信息…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/relative-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+78
@@ -0,0 +1,78 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>亲友往来 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-relative-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" />
|
||||||
|
<span class="brand-text">个人中心</span>
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-relative.html" data-genealogy-context-link>亲友往来</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-content.html">返回发布中心</a>
|
||||||
|
<a class="btn primary magnetic" href="profile-relative-edit.html" data-genealogy-context-link data-relative-create-link hidden>新建记录</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">亲友往来</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>亲友往来</h1>
|
||||||
|
<p>记录亲友关系、往来事项、时间、礼金和附件。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a href="profile-growth.html" data-genealogy-context-link>成长记录</a>
|
||||||
|
<a class="active" href="profile-relative.html" data-genealogy-context-link>亲友往来</a>
|
||||||
|
<a href="profile-memo.html">备忘录</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>记录列表</h2>
|
||||||
|
<div class="module-list" data-relative-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在加载亲友记录…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2 tabindex="-1" data-relative-detail-heading>记录详情</h2>
|
||||||
|
<div data-relative-detail aria-live="polite">
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">请选择一条亲友记录查看详情。</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/relative-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+163
@@ -0,0 +1,163 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>安全设置 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-security-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-services.html">帮助与服务</a
|
||||||
|
><a class="active" href="profile-security.html">安全设置</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-services.html">返回服务中心</a
|
||||||
|
><button class="btn primary magnetic" type="button" data-security-logout>退出登录</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">安全设置</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>安全设置</h1>
|
||||||
|
<p>维护登录密码、手机号与账号注销安全操作。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-services.html">帮助与服务</a
|
||||||
|
><a href="profile-data.html">个人资料</a
|
||||||
|
><a class="active" href="profile-security.html">安全设置</a
|
||||||
|
><a href="profile-feedback.html">意见反馈</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>账号安全</h2>
|
||||||
|
<!-- 修改密码表单:字段对应 PasswordChangeBody。 -->
|
||||||
|
<form class="editor-form security-form" data-security-form="password" novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="oldPassword">当前密码 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="oldPassword" name="oldPassword" type="password" autocomplete="current-password" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="newPassword">新密码 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="newPassword" name="newPassword" type="password" autocomplete="new-password" required />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="confirmPassword">确认新密码 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="confirmPassword" name="confirmPassword" type="password" autocomplete="new-password" required />
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" data-security-submit>修改密码</button>
|
||||||
|
<div class="form-status" data-security-status role="status" aria-live="polite"></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>换绑手机号</h2>
|
||||||
|
<!-- 换绑手机号表单:字段对应 PhoneChangeBody。 -->
|
||||||
|
<form class="editor-form security-form" data-security-form="phone" novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="newPhone">新手机号 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input
|
||||||
|
id="newPhone"
|
||||||
|
name="phone"
|
||||||
|
type="tel"
|
||||||
|
inputmode="numeric"
|
||||||
|
maxlength="11"
|
||||||
|
autocomplete="tel"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="phoneSmsCode">短信验证码 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input
|
||||||
|
id="phoneSmsCode"
|
||||||
|
name="smsCode"
|
||||||
|
type="text"
|
||||||
|
inputmode="numeric"
|
||||||
|
maxlength="4"
|
||||||
|
pattern="\d{4}"
|
||||||
|
autocomplete="one-time-code"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
<button class="btn ghost magnetic" type="button" data-security-send-code>获取验证码</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input id="phoneValidToken" name="validToken" type="hidden" />
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" data-security-submit>确认换绑</button>
|
||||||
|
<div class="form-status" data-security-status role="status" aria-live="polite"></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel security-danger">
|
||||||
|
<h2>注销账号</h2>
|
||||||
|
<p>验证已绑定手机号的短信验证码后提交注销申请。</p>
|
||||||
|
<form class="editor-form security-form" data-security-form="deactivate" novalidate>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="deactivateSmsCode">短信验证码 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input
|
||||||
|
id="deactivateSmsCode"
|
||||||
|
name="smsCode"
|
||||||
|
type="text"
|
||||||
|
inputmode="numeric"
|
||||||
|
maxlength="4"
|
||||||
|
pattern="\d{4}"
|
||||||
|
autocomplete="one-time-code"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
<button class="btn ghost magnetic" type="button" data-security-send-deactivate-code>
|
||||||
|
获取验证码
|
||||||
|
</button>
|
||||||
|
<div class="form-status" data-security-bound-phone role="status" aria-live="polite"><div class="api-state api-state--loading" data-api-state="loading" aria-busy="true">正在读取已绑定手机号…</div></div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="confirmText">确认文本 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="confirmText" name="confirmText" type="text" placeholder="请输入:确认注销" required />
|
||||||
|
</div>
|
||||||
|
<input name="validToken" type="hidden" />
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn danger magnetic" type="submit" data-security-submit>提交注销</button>
|
||||||
|
<div class="form-status" data-security-status role="status" aria-live="polite"></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/tac/js/tac.min.js"></script>
|
||||||
|
<script src="public/js/captcha-pages.js"></script>
|
||||||
|
<script src="public/js/security-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+196
@@ -0,0 +1,196 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>帮助与服务 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-vip-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile.html">个人中心</a
|
||||||
|
><a 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 class="active" href="help.html">帮助中心</a
|
||||||
|
><a href="about.html">关于我们</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-data.html">账户资料</a
|
||||||
|
><a class="btn primary magnetic" href="profile-create-family.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">帮助与服务</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>帮助与服务</h1>
|
||||||
|
<p>集中处理推广收益、意见反馈、账号安全、帮助说明和会员服务。</p>
|
||||||
|
</div>
|
||||||
|
<a class="btn primary magnetic" href="profile-feedback.html" data-feature-link="available"
|
||||||
|
>提交反馈</a
|
||||||
|
>
|
||||||
|
</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 href="profile-family-admin.html">家族管理</a
|
||||||
|
><a href="profile-content.html">内容发布</a
|
||||||
|
><a href="profile-data.html">个人资料</a
|
||||||
|
><a class="active" href="profile-services.html">帮助与服务</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>常用服务</h2>
|
||||||
|
<div class="module-grid">
|
||||||
|
<a class="module-card tilt-card" href="profile-earnings.html" data-feature-link="available">
|
||||||
|
<span class="icon">享</span>
|
||||||
|
<h3>应用分享与收益</h3>
|
||||||
|
<p>查看推广收益、可用余额、流水和提现记录。</p>
|
||||||
|
</a>
|
||||||
|
<div class="module-card is-unavailable" aria-disabled="true">
|
||||||
|
<span class="icon">荐</span>
|
||||||
|
<h3>个性化推荐</h3>
|
||||||
|
<p>推荐设置正在完善,目前不会保存开关状态。</p>
|
||||||
|
<span class="pill">暂不可设置</span>
|
||||||
|
</div>
|
||||||
|
<a class="module-card tilt-card" href="profile-feedback.html" data-feature-link="available"
|
||||||
|
><span class="icon">馈</span>
|
||||||
|
<h3>意见反馈</h3>
|
||||||
|
<p>提交产品问题、资料异常和改进建议。</p></a
|
||||||
|
>
|
||||||
|
<a class="module-card tilt-card" href="profile-security.html"
|
||||||
|
><span class="icon">安</span>
|
||||||
|
<h3>安全设置</h3>
|
||||||
|
<p>修改密码、找回账号、维护登录安全。</p></a
|
||||||
|
>
|
||||||
|
<a class="module-card tilt-card" href="help.html"
|
||||||
|
><span class="icon">助</span>
|
||||||
|
<h3>帮助中心</h3>
|
||||||
|
<p>查看新手常见问题、家谱优势和编辑字辈说明。</p></a
|
||||||
|
>
|
||||||
|
<a class="module-card tilt-card" href="app.html"
|
||||||
|
><span class="icon">下</span>
|
||||||
|
<h3>应用下载</h3>
|
||||||
|
<p>安装移动端,继续处理图片、视频和成员资料。</p></a
|
||||||
|
>
|
||||||
|
<a class="module-card tilt-card" href="about.html"
|
||||||
|
><span class="icon">联</span>
|
||||||
|
<h3>联系我们</h3>
|
||||||
|
<p>查看平台介绍、客服信息和服务说明。</p></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>平台设置与协议</h2>
|
||||||
|
<p>集中查看平台说明、服务支持和协议入口;正式内容以平台发布版本为准。</p>
|
||||||
|
<div class="module-grid">
|
||||||
|
<a class="module-card tilt-card" href="about.html"
|
||||||
|
><span class="icon">关</span>
|
||||||
|
<h3>关于我们与联系我们</h3>
|
||||||
|
<p>查看平台介绍、客服信息和服务说明。</p></a
|
||||||
|
>
|
||||||
|
<a class="module-card tilt-card" href="privacy.html"
|
||||||
|
><span class="icon">隐</span>
|
||||||
|
<h3>隐私政策</h3>
|
||||||
|
<p>查看个人信息处理说明。</p></a
|
||||||
|
>
|
||||||
|
<a class="module-card tilt-card" href="children-privacy.html"
|
||||||
|
><span class="icon">童</span>
|
||||||
|
<h3>儿童信息保护</h3>
|
||||||
|
<p>查看儿童个人信息处理规则。</p></a
|
||||||
|
>
|
||||||
|
<a class="module-card tilt-card" href="terms.html"
|
||||||
|
><span class="icon">约</span>
|
||||||
|
<h3>服务协议</h3>
|
||||||
|
<p>查看平台服务协议入口。</p></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel" id="membership" tabindex="-1">
|
||||||
|
<h2>会员服务</h2>
|
||||||
|
<p>选择适合的会员套餐并创建微信扫码支付订单。</p>
|
||||||
|
<div class="vip-package-list" data-vip-package-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取会员套餐…</div>
|
||||||
|
</div>
|
||||||
|
<form class="editor-form vip-order-form" data-vip-order-form novalidate>
|
||||||
|
<p class="form-status" data-vip-selected-package role="status" aria-live="polite">尚未选择套餐</p>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="vipGenealogy">关联家谱(可选)</label>
|
||||||
|
<select id="vipGenealogy" data-vip-genealogy-options>
|
||||||
|
<option value="">家谱选项加载中</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit" data-vip-order-submit>创建会员订单</button>
|
||||||
|
<div class="form-status" data-vip-order-status role="status" aria-live="polite"></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel" data-vip-payment-panel hidden>
|
||||||
|
<h2>微信扫码支付</h2>
|
||||||
|
<div data-vip-payment-qr></div>
|
||||||
|
<p data-vip-payment-text role="status" aria-live="polite"></p>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<div class="module-title-row">
|
||||||
|
<h2>会员订单</h2>
|
||||||
|
<button class="btn outline" type="button" data-vip-order-refresh>刷新订单</button>
|
||||||
|
</div>
|
||||||
|
<div class="module-list" data-vip-order-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">正在读取会员订单…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>推荐阅读</h2>
|
||||||
|
<div class="module-list">
|
||||||
|
<a class="module-row" href="help.html"
|
||||||
|
><div>
|
||||||
|
<h3>新手常见问题</h3>
|
||||||
|
<p>注册登录、创建家谱、邀请成员、资料审核等流程。</p>
|
||||||
|
</div>
|
||||||
|
<span class="pill">查看</span></a
|
||||||
|
><a class="module-row" href="profile-article.html"
|
||||||
|
><div>
|
||||||
|
<h3>为什么家谱不只是一本名册</h3>
|
||||||
|
<p>理解关系、故事和协作维护。</p>
|
||||||
|
</div>
|
||||||
|
<span class="pill">阅读</span></a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/qrcode.min.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="public/js/vip-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+102
@@ -0,0 +1,102 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>应用分享与收益 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-family-share-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-services.html">帮助与服务</a
|
||||||
|
><a class="active" href="profile-share.html">应用分享与收益</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a class="btn ghost magnetic" href="profile-services.html"
|
||||||
|
>返回服务中心</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">应用分享</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>应用分享与收益</h1>
|
||||||
|
<p>应用邀请暂以移动端为主;这里可查看推广收益、流水和提现记录。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-services.html">帮助与服务</a
|
||||||
|
><a class="active" href="profile-share.html">应用分享与收益</a
|
||||||
|
><a href="profile-feedback.html">意见反馈</a
|
||||||
|
><a href="help.html">帮助中心</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>邀请好友奖励</h2>
|
||||||
|
<div class="module-grid">
|
||||||
|
<div class="module-card is-unavailable" aria-disabled="true">
|
||||||
|
<span class="icon">享</span>
|
||||||
|
<h3>每邀请一位好友</h3>
|
||||||
|
<p>邀请奖励规则正在完善,当前暂不展示奖励金额。</p>
|
||||||
|
</div>
|
||||||
|
<div class="module-card is-unavailable" aria-disabled="true">
|
||||||
|
<span class="icon">码</span>
|
||||||
|
<h3>分享二维码</h3>
|
||||||
|
<p>分享链接和二维码暂未开放,请先使用移动端分享。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>分享记录</h2>
|
||||||
|
<div class="module-list">
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">
|
||||||
|
分享记录暂未开放;推广收益和提现结果可在下方查看。
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>收益与提现</h2>
|
||||||
|
<div class="module-grid two">
|
||||||
|
<a class="module-card tilt-card" href="profile-earnings.html" data-feature-link="available">
|
||||||
|
<span class="icon">收</span>
|
||||||
|
<h3>推广收益</h3>
|
||||||
|
<p>查看可用余额、冻结金额和不可变收益流水。</p>
|
||||||
|
</a>
|
||||||
|
<a class="module-card tilt-card" href="profile-earnings.html" data-feature-link="available">
|
||||||
|
<span class="icon">提</span>
|
||||||
|
<h3>提现记录</h3>
|
||||||
|
<p>上传微信收款码,提交提现并跟踪处理状态。</p>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+305
@@ -0,0 +1,305 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>世系图 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-lineage-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" /><span class="brand-text">个人中心</span></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-families.html">我的家谱</a
|
||||||
|
><a class="active" href="profile-family-admin.html" data-genealogy-context-link>家族管理</a
|
||||||
|
><a href="profile-data.html">个人资料</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-family-home.html" data-genealogy-context-link>返回家谱主页</a
|
||||||
|
><a class="btn primary magnetic" href="#lineage-member-form" data-lineage-management hidden>添加成员</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">世系管理</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>世系图</h1>
|
||||||
|
<p>
|
||||||
|
个人中心内的树谱管理视图,用于查看成员关系、添加亲属和搜索成员。
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<a class="btn ghost magnetic" href="profile-generation.html" data-genealogy-context-link
|
||||||
|
>管理字辈</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-family-home.html" data-genealogy-context-link>家谱主页</a
|
||||||
|
><a class="active" href="profile-tree.html" data-genealogy-context-link>世系图</a
|
||||||
|
><a href="profile-generation.html" data-genealogy-context-link>字辈谱</a
|
||||||
|
><a href="profile-family-admin.html" data-genealogy-context-link>家族管理</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>树谱操作</h2>
|
||||||
|
<div class="lineage-toolbar lineage-current-toolbar">
|
||||||
|
<label for="lineageCurrentPerson">当前成员</label>
|
||||||
|
<select id="lineageCurrentPerson" data-lineage-person-options>
|
||||||
|
<option value="">请选择当前成员</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="module-grid" data-lineage-management hidden>
|
||||||
|
<button class="module-card module-action-card tilt-card" type="button" data-lineage-relation="parents"
|
||||||
|
><span class="icon">父</span>
|
||||||
|
<h3>添加父亲 / 母亲</h3>
|
||||||
|
<p>先选择成员,再为当前成员补充上一代关系。</p></button
|
||||||
|
><button class="module-card module-action-card tilt-card" type="button" data-lineage-relation="spouses"
|
||||||
|
><span class="icon">配</span>
|
||||||
|
<h3>添加配偶</h3>
|
||||||
|
<p>先选择成员,再维护配偶关系。</p></button
|
||||||
|
><button
|
||||||
|
class="module-card module-action-card tilt-card"
|
||||||
|
type="button"
|
||||||
|
data-lineage-relation="children"
|
||||||
|
><span class="icon">排</span>
|
||||||
|
<h3>添加子女</h3>
|
||||||
|
<p>先选择成员,再为当前成员补充下一代关系。</p></button
|
||||||
|
>
|
||||||
|
<button class="module-card module-action-card tilt-card" type="button" data-lineage-relation="siblings"
|
||||||
|
><span class="icon">兄</span>
|
||||||
|
<h3>添加兄弟姐妹</h3>
|
||||||
|
<p>先选择成员,再为当前成员新增同辈关系。</p></button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>世系树</h2>
|
||||||
|
<!-- 世系树由 public/js/lineage-pages.js 按接口数据渲染 -->
|
||||||
|
<div class="lineage-tree-wrap" data-lineage-tree>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">世系树加载中…</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>成员搜索</h2>
|
||||||
|
<div class="lineage-toolbar lineage-filter-toolbar">
|
||||||
|
<input type="search" data-lineage-keyword aria-label="按姓名、别名或人物编号搜索成员" placeholder="输入姓名、别名或人物编号搜索" />
|
||||||
|
<select data-lineage-generation-filter aria-label="按世代筛选">
|
||||||
|
<option value="">全部世代</option>
|
||||||
|
</select>
|
||||||
|
<select data-lineage-status-filter aria-label="按人物状态筛选">
|
||||||
|
<option value="">全部人物状态</option>
|
||||||
|
<option value="0">健在</option>
|
||||||
|
<option value="1">已故</option>
|
||||||
|
<option value="2">未知</option>
|
||||||
|
</select>
|
||||||
|
<button class="btn primary" type="button" data-lineage-search>搜索</button>
|
||||||
|
</div>
|
||||||
|
<p class="form-status" role="status" aria-live="polite" data-lineage-list-summary></p>
|
||||||
|
<div class="form-status" role="status" aria-live="polite" data-lineage-action-status></div>
|
||||||
|
<!-- 成员列表由世系人物分页接口渲染 -->
|
||||||
|
<div class="module-list" data-lineage-list>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">世系人物加载中…</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions" data-lineage-pagination hidden>
|
||||||
|
<button class="btn ghost" type="button" data-lineage-page-action="previous">上一页</button>
|
||||||
|
<span class="form-status" data-lineage-page-status role="status" aria-live="polite"></span>
|
||||||
|
<button class="btn ghost" type="button" data-lineage-page-action="next">下一页</button>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>成员详情</h2>
|
||||||
|
<!-- 点击成员列表或世系树节点后渲染详情 -->
|
||||||
|
<div data-lineage-detail>
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">请选择一个成员查看资料</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel" data-lineage-management hidden>
|
||||||
|
<h2>新增 / 编辑成员</h2>
|
||||||
|
<form id="lineage-member-form" class="editor-form" data-lineage-form novalidate>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-binding-mode">账号绑定 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<select id="lineage-binding-mode" name="bindingMode" required>
|
||||||
|
<option value="NONE" selected>不绑定账号</option>
|
||||||
|
<option value="SELF">绑定当前登录账号</option>
|
||||||
|
<option value="SPECIFIED">指定其他账号</option>
|
||||||
|
</select>
|
||||||
|
<div class="editor-field" data-lineage-specified-member hidden>
|
||||||
|
<label for="lineage-specified-member">指定账号</label>
|
||||||
|
<select id="lineage-specified-member" name="appUserId" data-lineage-member-options hidden>
|
||||||
|
<option value="">请选择已绑定账号的家谱成员</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<p class="upload-status" data-lineage-binding-status role="status" aria-live="polite">指定账号仅可从当前家谱正常成员中选择。</p>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-avatar-file">头像</label>
|
||||||
|
<input id="lineage-avatar-oss-id" name="avatarOssId" type="hidden" />
|
||||||
|
<label class="upload-control" for="lineage-avatar-file">选择头像文件</label>
|
||||||
|
<input
|
||||||
|
id="lineage-avatar-file"
|
||||||
|
class="upload-input"
|
||||||
|
type="file"
|
||||||
|
accept="image/*"
|
||||||
|
data-upload-target="#lineage-avatar-oss-id"
|
||||||
|
data-upload-status="#lineage-avatar-status"
|
||||||
|
data-upload-mode="resumable"
|
||||||
|
data-upload-biz-type="avatar"
|
||||||
|
data-upload-usage-scene="lineage_avatar"
|
||||||
|
/>
|
||||||
|
<p id="lineage-avatar-status" class="upload-status" role="status" aria-live="polite">请选择头像文件</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-person-name">姓名 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="lineage-person-name" name="name" type="text" placeholder="请输入成员姓名" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-sex">性别</label>
|
||||||
|
<select id="lineage-sex" name="sex">
|
||||||
|
<option value="0">男</option>
|
||||||
|
<option value="1">女</option>
|
||||||
|
<option value="2" selected>未知</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-generation-no">世代</label>
|
||||||
|
<select id="lineage-generation-no" name="generation" data-lineage-generation>
|
||||||
|
<option value="">请选择世代</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-generation-name">字辈</label>
|
||||||
|
<input id="lineage-generation-name" name="generationName" type="text" readonly />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-person-no">人物编号</label>
|
||||||
|
<input id="lineage-person-no" name="personNo" type="text" placeholder="可选;留空由系统生成" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-alias-name">别名</label>
|
||||||
|
<input id="lineage-alias-name" name="aliasName" type="text" placeholder="可选" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-father-id">父亲</label>
|
||||||
|
<select id="lineage-father-id" name="fatherId" data-lineage-parent-option data-empty-label="请选择父亲">
|
||||||
|
<option value="">请选择父亲</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-mother-id">母亲</label>
|
||||||
|
<select id="lineage-mother-id" name="motherId" data-lineage-parent-option data-empty-label="请选择母亲">
|
||||||
|
<option value="">请选择母亲</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-birth-date">出生时间</label>
|
||||||
|
<input id="lineage-birth-date" name="birthDate" type="datetime-local" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-birth-lunar">出生历法</label>
|
||||||
|
<select id="lineage-birth-lunar" name="birthLunar">
|
||||||
|
<option value="0" selected>公历</option>
|
||||||
|
<option value="1">农历</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-birth-place">出生地</label>
|
||||||
|
<input id="lineage-birth-place" name="birthPlace" type="text" placeholder="可选" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-death-date">逝世时间</label>
|
||||||
|
<input id="lineage-death-date" name="deathDate" type="datetime-local" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-death-lunar">逝世历法</label>
|
||||||
|
<select id="lineage-death-lunar" name="deathLunar">
|
||||||
|
<option value="0" selected>公历</option>
|
||||||
|
<option value="1">农历</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-death-place">逝世地</label>
|
||||||
|
<input id="lineage-death-place" name="deathPlace" type="text" placeholder="可选" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-burial-place">安葬地</label>
|
||||||
|
<input id="lineage-burial-place" name="burialPlace" type="text" placeholder="可选" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-person-status">人物状态</label>
|
||||||
|
<select id="lineage-person-status" name="personStatus">
|
||||||
|
<option value="0">健在</option>
|
||||||
|
<option value="1">已故</option>
|
||||||
|
<option value="2" selected>未知</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-sort-order">排序值</label>
|
||||||
|
<input id="lineage-sort-order" name="sortOrder" type="number" step="1" placeholder="可选,数值越小越靠前" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field" data-lineage-spouse-field hidden>
|
||||||
|
<label for="lineage-relation-name">配偶关系称谓</label>
|
||||||
|
<input id="lineage-relation-name" name="relationName" type="text" placeholder="可选,例如 妻、夫" />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-introduction">人物简介</label>
|
||||||
|
<textarea id="lineage-introduction" name="biography" placeholder="记录成员生平简介"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="lineage-remark">备注</label>
|
||||||
|
<textarea id="lineage-remark" name="remark" placeholder="可选"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary" type="submit" data-lineage-submit>保存成员</button>
|
||||||
|
<button class="btn ghost" type="reset">清空</button>
|
||||||
|
<span class="form-status" role="status" aria-live="polite" data-lineage-form-status></span>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/lineage-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+129
@@ -0,0 +1,129 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>发布视频 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-video-edit-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" />
|
||||||
|
<span class="brand-text">个人中心</span>
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-video.html" data-genealogy-context-link>视频</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-video.html" data-genealogy-context-link>返回视频列表</a>
|
||||||
|
<button class="btn primary magnetic" type="submit" form="video-edit-form" data-video-management hidden>保存视频</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">编辑视频</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1 data-video-editor-title>发布视频</h1>
|
||||||
|
<p>视频文件由上传组件自动关联,无需填写内部编号。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a class="active" href="profile-video.html" data-genealogy-context-link>视频</a>
|
||||||
|
<a href="profile-family-home.html" data-genealogy-context-link>家谱主页</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>视频内容</h2>
|
||||||
|
<form id="video-edit-form" class="editor-form" data-video-form data-video-management hidden novalidate>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="video-title">视频标题 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="video-title" name="videoTitle" type="text" placeholder="请输入视频标题" required />
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="video-description">视频说明</label>
|
||||||
|
<textarea id="video-description" name="videoDesc" placeholder="可选,记录视频内容"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="video-file">视频文件 <span class="field-required" aria-hidden="true">*</span></label>
|
||||||
|
<input id="video-oss-id" name="videoOssId" type="hidden" />
|
||||||
|
<label class="upload-control" for="video-file">选择视频文件</label>
|
||||||
|
<input
|
||||||
|
id="video-file"
|
||||||
|
class="upload-input"
|
||||||
|
type="file"
|
||||||
|
accept="video/*"
|
||||||
|
data-upload-target="#video-oss-id"
|
||||||
|
data-upload-status="#video-file-status"
|
||||||
|
data-video-duration-target="#video-duration"
|
||||||
|
/>
|
||||||
|
<p id="video-file-status" class="upload-status" data-video-file-status role="status" aria-live="polite">请选择视频文件</p>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="video-cover-file">封面图片</label>
|
||||||
|
<input id="video-cover-oss-id" name="coverOssId" type="hidden" />
|
||||||
|
<label class="upload-control" for="video-cover-file">选择封面图片</label>
|
||||||
|
<input
|
||||||
|
id="video-cover-file"
|
||||||
|
class="upload-input"
|
||||||
|
type="file"
|
||||||
|
accept="image/*"
|
||||||
|
data-upload-target="#video-cover-oss-id"
|
||||||
|
data-upload-status="#video-cover-status"
|
||||||
|
/>
|
||||||
|
<p id="video-cover-status" class="upload-status" data-video-cover-status role="status" aria-live="polite">未选择封面</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="editor-two">
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="video-duration">视频时长(秒)</label>
|
||||||
|
<input id="video-duration" name="durationSeconds" type="number" step="1" min="0" readonly />
|
||||||
|
<p class="upload-status">选择视频后自动读取,不会要求手工填写。</p>
|
||||||
|
</div>
|
||||||
|
<div class="editor-field">
|
||||||
|
<label for="video-sort-order">排序值</label>
|
||||||
|
<input id="video-sort-order" name="sortOrder" type="number" step="1" placeholder="可选,数值越小越靠前" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input name="status" type="hidden" value="0" />
|
||||||
|
<div class="form-status" data-video-form-status role="status" aria-live="polite"></div>
|
||||||
|
<div class="bottom-actions">
|
||||||
|
<button class="btn primary magnetic" type="submit">保存视频</button>
|
||||||
|
<a class="btn ghost magnetic" href="profile-video.html" data-genealogy-context-link>取消</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" data-video-permission-placeholder role="status" aria-live="polite" aria-busy="true">正在核对视频维护权限…</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/md5.js"></script>
|
||||||
|
<script src="public/js/upload-pages.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/video-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+83
@@ -0,0 +1,83 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>家族视频 - 个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<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-video-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html">
|
||||||
|
<img class="brand-logo brand-logo-mark" src="public/images/logo-mark.png" alt="" />
|
||||||
|
<span class="brand-text">个人中心</span>
|
||||||
|
</a>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a href="profile-album.html">相册</a>
|
||||||
|
<a class="active" href="profile-video.html" data-genealogy-context-link>视频</a>
|
||||||
|
</nav>
|
||||||
|
<div class="nav-actions">
|
||||||
|
<a href="profile-content.html">返回发布中心</a>
|
||||||
|
<a class="btn primary magnetic" href="profile-video-edit.html" data-genealogy-context-link data-video-management hidden>发布视频</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="module-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="module-kicker">家族视频</div>
|
||||||
|
<div class="module-title-row">
|
||||||
|
<div>
|
||||||
|
<h1>家族视频</h1>
|
||||||
|
<p>查看家族视频资料;有内容维护权限的成员可以发布、编辑和删除视频。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section">
|
||||||
|
<div class="container module-layout">
|
||||||
|
<aside class="module-nav">
|
||||||
|
<a href="profile-content.html">内容发布</a>
|
||||||
|
<a href="profile-album.html">相册</a>
|
||||||
|
<a class="active" href="profile-video.html" data-genealogy-context-link>视频</a>
|
||||||
|
<a href="profile-family-home.html" data-genealogy-context-link>家谱主页</a>
|
||||||
|
</aside>
|
||||||
|
<div class="module-main">
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>视频列表</h2>
|
||||||
|
<div class="module-list" data-video-list aria-live="polite">
|
||||||
|
<div class="api-state api-state--loading" data-api-state="loading" role="status" aria-live="polite" aria-busy="true">
|
||||||
|
正在加载视频…
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="module-panel">
|
||||||
|
<h2>视频详情</h2>
|
||||||
|
<div data-video-detail aria-live="polite">
|
||||||
|
<div class="api-state api-state--empty" data-api-state="empty" role="status" aria-live="polite">
|
||||||
|
请选择一个视频查看详情
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/video-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+199
@@ -0,0 +1,199 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>个人中心 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/layui/css/layui.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/profile.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-profile" data-profile-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a class="active" href="profile.html">个人中心</a>
|
||||||
|
<a 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-data.html">账户资料</a>
|
||||||
|
<a class="btn primary magnetic" href="profile-create-family.html">创建家谱</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<section class="profile-hero">
|
||||||
|
<div class="container profile-hero-grid">
|
||||||
|
<div class="profile-card">
|
||||||
|
<div class="avatar-wrap">
|
||||||
|
<div class="avatar" data-profile-avatar data-profile-text="avatarText">…</div>
|
||||||
|
<span></span>
|
||||||
|
</div>
|
||||||
|
<div class="profile-info">
|
||||||
|
<div class="eyebrow">个人中心</div>
|
||||||
|
<h1 data-profile-text="displayName">正在加载账户</h1>
|
||||||
|
<p>账户资料与家谱工作区分开呈现。进入家谱后,再处理成员、内容和协作事务。</p>
|
||||||
|
<div class="profile-tags">
|
||||||
|
<span>已登录账户</span><span>资料与账号同步</span>
|
||||||
|
</div>
|
||||||
|
<div class="profile-load-status" data-profile-load-status role="status" aria-live="polite">正在读取账户资料…</div>
|
||||||
|
<div class="toolbar profile-hero-actions">
|
||||||
|
<a class="btn primary magnetic" href="profile-families.html">进入我的家谱</a>
|
||||||
|
<a class="btn ghost magnetic" href="profile-data.html">完善个人资料</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="profile-next-card">
|
||||||
|
<div class="eyebrow">下一步</div>
|
||||||
|
<h2>从家谱开始</h2>
|
||||||
|
<p>没有家谱时可创建或申请加入;有多个家谱时,请先选择本次要处理的家谱。</p>
|
||||||
|
<div class="toolbar">
|
||||||
|
<a class="link-btn" href="profile-create-family.html">创建家谱</a>
|
||||||
|
<a class="link-btn" href="profile-join-family.html">申请加入</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="section dashboard-section">
|
||||||
|
<div class="container dashboard-layout">
|
||||||
|
<aside class="dashboard-side">
|
||||||
|
<div class="side-card user-actions">
|
||||||
|
<h2>账户入口</h2>
|
||||||
|
<a href="profile-data.html"><span>个人资料</span><b>查看并更新账户资料</b></a>
|
||||||
|
<a href="profile-messages.html"><span>消息中心</span><b>查看真实通知与业务提醒</b></a>
|
||||||
|
<a href="profile-services.html"><span>帮助与服务</span><b>反馈、安全设置与会员服务</b></a>
|
||||||
|
<button class="logout-link" type="button" data-logout-open><span>退出登录</span><b>返回首页</b></button>
|
||||||
|
</div>
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
<div class="dashboard-main">
|
||||||
|
<section class="panel my-family-panel">
|
||||||
|
<div class="panel-head">
|
||||||
|
<div>
|
||||||
|
<h2>我的家谱</h2>
|
||||||
|
<p>先从真实列表选择家谱,再进入对应的主页、世系图、成员和内容管理。</p>
|
||||||
|
</div>
|
||||||
|
<a class="link-btn" href="profile-families.html">查看全部</a>
|
||||||
|
</div>
|
||||||
|
<div class="family-grid">
|
||||||
|
<a class="family-card" href="profile-families.html">
|
||||||
|
<div class="book-cover">选 择<br />家 谱</div>
|
||||||
|
<div>
|
||||||
|
<h3>进入我的家谱</h3>
|
||||||
|
<p>列表只展示当前账户真实可访问的家谱,避免把示例数据当成自己的内容。</p>
|
||||||
|
<div class="mini-actions">
|
||||||
|
<span>选择家谱</span><span>进入主页</span><span>处理事务</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="panel">
|
||||||
|
<div class="panel-head compact">
|
||||||
|
<div>
|
||||||
|
<h2>账户资料</h2>
|
||||||
|
<p>以下内容来自你的账户资料;未填写的信息会显示为“待填写”。</p>
|
||||||
|
</div>
|
||||||
|
<a class="link-btn" href="profile-data.html">编辑资料</a>
|
||||||
|
</div>
|
||||||
|
<div class="data-list">
|
||||||
|
<p><span>绑定账号</span><b data-profile-text="phone">加载中</b></p>
|
||||||
|
<p><span>昵称</span><b data-profile-text="displayName">加载中</b></p>
|
||||||
|
<p><span>真实姓名</span><b data-profile-text="realName">加载中</b></p>
|
||||||
|
<p><span>性别</span><b data-profile-text="sex">加载中</b></p>
|
||||||
|
<p><span>出生日期</span><b data-profile-text="birthday">加载中</b></p>
|
||||||
|
<p><span>邮箱</span><b data-profile-text="email">加载中</b></p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="panel">
|
||||||
|
<div class="panel-head compact">
|
||||||
|
<div>
|
||||||
|
<h2>账户与服务</h2>
|
||||||
|
<p>将 APP 的“我的”功能整理为桌面服务入口;家谱内容仍需从具体家谱进入。</p>
|
||||||
|
</div>
|
||||||
|
<a class="link-btn" href="profile-services.html">查看服务中心</a>
|
||||||
|
</div>
|
||||||
|
<div class="service-grid" aria-label="账户与服务入口">
|
||||||
|
<a href="profile-messages.html"><strong>消息中心</strong><span>查看真实通知与业务提醒</span></a>
|
||||||
|
<a href="profile-data.html"><strong>个人资料</strong><span>维护昵称、实名和联系方式</span></a>
|
||||||
|
<a href="profile-security.html"><strong>账户安全</strong><span>修改密码、换绑手机或注销账号</span></a>
|
||||||
|
<a href="profile-services.html#membership"><strong>会员服务</strong><span>查看套餐、订单、帮助与服务说明</span></a>
|
||||||
|
<a href="profile-feedback.html"><strong>意见反馈</strong><span>提交产品问题和改进建议</span></a>
|
||||||
|
<a href="app.html"><strong>移动端</strong><span>下载 APP,处理移动端场景</span></a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="profile-families.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="profile-content.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="profile-article.html">家谱知识</a><a href="profile-messages.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<div class="logout-modal" id="logoutModal" aria-hidden="true" hidden>
|
||||||
|
<div class="logout-modal-backdrop" data-logout-close></div>
|
||||||
|
<div class="logout-dialog" role="dialog" aria-modal="true" aria-labelledby="logoutTitle">
|
||||||
|
<button class="logout-close" type="button" data-logout-close aria-label="关闭">×</button>
|
||||||
|
<span class="logout-icon">退</span>
|
||||||
|
<h2 id="logoutTitle">确认退出登录?</h2>
|
||||||
|
<p>退出后需要重新登录,才能继续管理家谱、审核消息和编辑资料。</p>
|
||||||
|
<div class="logout-actions">
|
||||||
|
<button class="btn ghost magnetic" type="button" data-logout-close>取消</button>
|
||||||
|
<a class="btn primary magnetic" href="index.html" data-logout-confirm>确认退出</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="public/js/jquery360.js"></script>
|
||||||
|
<script src="public/layui/layui.js"></script>
|
||||||
|
<script src="public/js/lay-config.js"></script>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/FormUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/profile-common.js?v=20260725-entry"></script>
|
||||||
|
<script src="public/js/media-display.js"></script>
|
||||||
|
<script src="public/js/profile-pages.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+103
@@ -0,0 +1,103 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>宣传相册 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/promo-album.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-promo-album" data-promo-album-page>
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a><a href="genealogy.html">数字家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a><a href="culture.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="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero promo-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">宣传相册</div>
|
||||||
|
<h1>用公开相册展示家族故事</h1>
|
||||||
|
<p class="lead">
|
||||||
|
宣传相册用于前台展示祖屋、祠堂、家族活动、老照片和公开纪念内容,帮助访客更直观理解家族文化。
|
||||||
|
</p>
|
||||||
|
<div class="promo-tags">
|
||||||
|
<span>祖屋影像</span><span>活动纪念</span><span>公开展示</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card album-preview tilt-card">
|
||||||
|
<div class="album-photo large"></div>
|
||||||
|
<div class="album-photo"></div>
|
||||||
|
<div class="album-photo warm"></div>
|
||||||
|
<div class="album-photo green"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section alt">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>相册分类</h2>
|
||||||
|
<p>把适合公开展示的影像整理成专题,让家族主页更有内容层次。</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-3">
|
||||||
|
<!-- 宣传相册复用 /albums 列表接口渲染公开展示内容 -->
|
||||||
|
<div data-promo-album-list>
|
||||||
|
<div class="api-empty">相册加载中...</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="utils/StorageUtil.js"></script>
|
||||||
|
<script src="utils/axios.js"></script>
|
||||||
|
<script src="utils/AxiosRequestUtil.js"></script>
|
||||||
|
<script src="utils/ApiClient.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+106
@@ -0,0 +1,106 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>宣传视频 - 代代相传</title>
|
||||||
|
<link rel="stylesheet" href="public/css/public.css" />
|
||||||
|
<link rel="stylesheet" href="public/css/promo-video.css" />
|
||||||
|
</head>
|
||||||
|
<body class="page-promo-video">
|
||||||
|
<header class="site-header">
|
||||||
|
<div class="container nav">
|
||||||
|
<a class="brand magnetic" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<nav class="nav-links">
|
||||||
|
<a href="index.html">首页</a><a href="genealogy.html">数字家谱</a
|
||||||
|
><a href="plaza.html">家谱广场</a><a href="culture.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="login.html">登录</a><a href="register.html">注册</a
|
||||||
|
><a class="btn primary magnetic" href="create-genealogy.html"
|
||||||
|
>创建家谱</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<main>
|
||||||
|
<section class="inner-hero promo-hero">
|
||||||
|
<div class="container">
|
||||||
|
<div class="hero-copy">
|
||||||
|
<div class="eyebrow">宣传视频</div>
|
||||||
|
<h1>用宣传视频讲述家族文化</h1>
|
||||||
|
<p class="lead">
|
||||||
|
宣传视频用于前台展示家族活动、祠堂风貌、修谱故事和公开纪念内容,让访问者更快进入家族叙事。
|
||||||
|
</p>
|
||||||
|
<div class="promo-tags">
|
||||||
|
<span>家族介绍</span><span>活动纪念</span><span>修谱故事</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="hero-card video-preview tilt-card">
|
||||||
|
<div class="play-button"></div>
|
||||||
|
<h3>四川成都陈氏族宣传片</h3>
|
||||||
|
<p>祠堂、谱文、人物与家风的公开展示。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="section alt">
|
||||||
|
<div class="container">
|
||||||
|
<div class="section-head">
|
||||||
|
<h2>视频专题</h2>
|
||||||
|
<p>把适合公开传播的视频整理成栏目,增强家谱主页的展示力。</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid-3">
|
||||||
|
<div class="card soft video-card tilt-card">
|
||||||
|
<h3>家族介绍</h3>
|
||||||
|
<p>概述姓氏源流、家族分布和家风传承。</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft video-card tilt-card">
|
||||||
|
<h3>活动纪念</h3>
|
||||||
|
<p>展示祭祖、聚会、修谱仪式等重要时刻。</p>
|
||||||
|
</div>
|
||||||
|
<div class="card soft video-card tilt-card">
|
||||||
|
<h3>人物故事</h3>
|
||||||
|
<p>以影像记录家族人物、贡献与纪念内容。</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="footer-grid">
|
||||||
|
<div>
|
||||||
|
<a class="brand" href="index.html"
|
||||||
|
><img class="brand-logo" src="public/images/logo-light.png" alt="我们的家谱,代代相传" /></a
|
||||||
|
>
|
||||||
|
<p>一个面向家庭和宗族的数字家谱与家族文化门户。</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>产品入口</h4>
|
||||||
|
<a href="genealogy.html">数字家谱</a><a href="plaza.html">家谱广场</a><a href="app.html">应用下载</a><a href="help.html">帮助中心</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>文化内容</h4>
|
||||||
|
<a href="culture.html">家族文化</a><a href="surname.html">姓氏百科</a><a href="article-detail.html">家谱知识</a><a href="notice-detail.html">平台公告</a>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>服务支持</h4>
|
||||||
|
<a href="help.html">帮助中心</a>
|
||||||
|
<a href="submit-ticket.html">提交问题</a>
|
||||||
|
<a href="about.html">关于平台</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-legal">
|
||||||
|
<div>© 2026 代代相传. All rights reserved.</div>
|
||||||
|
<a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">ICP备案:蜀ICP备2024044594号-1</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
<script src="config.js"></script>
|
||||||
|
<script src="public/js/page-effects.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.about-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.about-tags{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.about-tags span{padding:10px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;box-shadow:0 14px 32px #4839260f;font-weight:800;transition:transform .22s ease,color .22s ease,background .22s ease}.about-tags span:hover{color:#fff;background:var(--green);transform:translateY(-3px)}.about-seal{position:relative;min-height:260px;overflow:hidden;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(155deg,var(--green-dark),var(--green))}.about-seal:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:34px 34px;opacity:.34}.seal-orb{position:absolute;right:76px;top:40px;width:110px;height:110px;border-radius:50%;background:#ffffff29;box-shadow:0 0 40px #ffffff1a;animation:sealPulse 4s ease-in-out infinite}.about-seal span{position:relative;z-index:2;width:96px;height:96px;margin-bottom:20px;border-radius:50%;display:grid;place-items:center;color:var(--red);background:#fffffff0;font-family:SimSun,Songti SC,serif;font-size:48px;font-weight:800;transition:transform .24s ease,background .24s ease}.about-seal:hover span{transform:rotate(-8deg) scale(1.08)}.about-seal p{position:relative;z-index:2;margin:0;color:#ffffffd6;font-size:22px}.values-section{position:relative;overflow:hidden}.values-section:before{content:"";position:absolute;left:50%;top:58px;width:520px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(196,146,69,.09),transparent 68%);transform:translate(-50%)}.value-card{min-height:190px;position:relative;overflow:hidden}.value-card:after{content:"";position:absolute;left:-42%;top:0;width:36%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.54),transparent);transform:skew(-18deg);transition:left .56s ease}.value-card:hover:after{left:112%}.value-icon{width:48px;height:48px;margin-bottom:18px;border-radius:14px;display:grid;place-items:center;color:var(--red);background:#f7e4dc;font-family:SimSun,Songti SC,serif;font-size:22px;font-weight:900;transition:transform .26s ease,background .26s ease,color .26s ease}.value-card:hover .value-icon{color:#fff;background:var(--red);transform:rotate(-6deg) scale(1.08)}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@keyframes sealPulse{0%,to{opacity:.55;transform:scale(.92)}50%{opacity:.9;transform:scale(1.08)}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.app-hero .container{min-height:500px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.hero-buttons{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}.app-stats{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.app-stats span{padding:10px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;box-shadow:0 14px 32px #4839260f;font-weight:800;transition:transform .22s ease,color .22s ease,background .22s ease}.app-stats span:hover{color:#fff;background:var(--green);transform:translateY(-3px)}.app-shot-wrap{position:relative;min-height:390px;display:flex;align-items:center;justify-content:center;gap:30px;overflow:hidden;background:radial-gradient(circle at 18% 20%,rgba(200,59,50,.12),transparent 24%),radial-gradient(circle at 80% 24%,rgba(71,111,99,.16),transparent 30%),linear-gradient(135deg,#f7efe2,#edf4ef)}.app-shot-wrap:before{content:"";position:absolute;inset:22px;border:1px solid rgba(224,211,189,.62);border-radius:22px;pointer-events:none}.app-orbit{position:absolute;right:64px;top:44px;width:96px;height:96px;border-radius:50%;background:#c492452e;animation:appOrbit 4.2s ease-in-out infinite}.phone-shot{position:relative;z-index:2;width:185px;height:380px;object-fit:cover;object-position:top center;border:8px solid #252b28;border-radius:28px;box-shadow:0 26px 60px #211c1633;transition:transform .3s ease,box-shadow .3s ease}.phone-shot.first{animation:phoneFloatA 4s ease-in-out infinite}.phone-shot.second{transform:translateY(28px);animation:phoneFloatB 4s ease-in-out infinite}.app-shot-wrap:hover .phone-shot{box-shadow:0 34px 70px #211c1642}.app-feature-section{position:relative;overflow:hidden}.app-feature-section:before{content:"";position:absolute;left:50%;top:58px;width:520px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(196,146,69,.09),transparent 68%);transform:translate(-50%)}.app-feature-card{min-height:190px;position:relative;overflow:hidden}.app-feature-card:after{content:"";position:absolute;left:-42%;top:0;width:36%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.54),transparent);transform:skew(-18deg);transition:left .56s ease}.app-feature-card:hover:after{left:112%}.app-icon{width:48px;height:48px;margin-bottom:18px;border-radius:14px;display:grid;place-items:center;color:var(--red);background:#f7e4dc;font-family:SimSun,Songti SC,serif;font-size:22px;font-weight:900;transition:transform .26s ease,background .26s ease,color .26s ease}.app-feature-card:hover .app-icon{color:#fff;background:var(--red);transform:rotate(-6deg) scale(1.08)}.app-promotion-section{background:#fffdf8}.promotion-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.promotion-card{display:block;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fffaf0;color:inherit;text-decoration:none;box-shadow:0 18px 42px #39302414;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}.promotion-card:hover{border-color:#c492456b;box-shadow:0 24px 54px #3930241f;transform:translateY(-4px)}.promotion-card img{width:100%;aspect-ratio:16 / 9;object-fit:cover;display:block;background:#f3eadc}.promotion-card div{padding:18px}.promotion-card h3{margin-bottom:8px;color:var(--ink);font-size:22px}.promotion-card p{margin:0 0 12px;color:var(--muted);line-height:1.75}.promotion-card span{color:var(--red);font-weight:900}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@keyframes phoneFloatA{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}@keyframes phoneFloatB{0%,to{transform:translateY(28px) rotate(1deg)}50%{transform:translateY(18px) rotate(-1deg)}}@keyframes appOrbit{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}.phone-shot.second{display:none}.promotion-list{grid-template-columns:1fr}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.article-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.article-meta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.article-meta span{padding:10px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;font-weight:800}.article-cover-detail{position:relative;overflow:hidden;display:grid;place-items:center;text-align:center;color:#fff;background:radial-gradient(circle at 72% 24%,rgba(255,255,255,.35) 0 9%,transparent 10%),linear-gradient(135deg,#e7c89e,#b94135 48%,#143d57)}.article-cover-detail:after{content:"";position:absolute;left:-40%;top:0;width:34%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transform:skew(-18deg);transition:left .58s ease}.article-cover-detail:hover:after{left:112%}.article-cover-detail span{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;color:var(--red);background:#fffdf8f0;font-family:SimSun,Songti SC,serif;font-size:44px;font-weight:800}.article-cover-detail p{margin:18px 0 0;color:#ffffffe6;font-size:22px}.article-layout{display:grid;grid-template-columns:minmax(0,820px) 300px;gap:28px;align-items:start}.article-content,.article-side{border:1px solid var(--line);border-radius:18px;background:#fffdf8d1;box-shadow:0 20px 54px #39302414}.article-content{padding:42px}.article-content p{color:#5f665f;font-size:18px;line-height:2}.article-content h2{margin-top:34px;font-size:32px}.article-side{position:sticky;top:108px;padding:24px}.article-side a{display:block;margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;color:#6f4a37;background:#fbf7ed;transition:transform .22s ease,color .22s ease,background .22s ease}.article-side a:hover{color:#fff;background:var(--green);transform:translate(5px)}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@media(max-width:980px){.article-layout{grid-template-columns:1fr}.article-side{position:static}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}.article-content{padding:28px}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.create-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.create-tags{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.create-tags span{padding:10px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;box-shadow:0 14px 32px #4839260f;font-weight:800;transition:transform .22s ease,color .22s ease,background .22s ease}.create-tags span:hover{color:#fff;background:var(--green);transform:translateY(-3px)}.process-card{position:relative;overflow:hidden;display:grid;align-content:center}.process-card:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(196,146,69,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(196,146,69,.06) 1px,transparent 1px);background-size:34px 34px;opacity:.72}.process-card h3,.process-card .step-list{position:relative;z-index:2}.process-orb{position:absolute;right:-70px;top:-80px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(200,59,50,.13),transparent 62%);animation:createPulse 4s ease-in-out infinite}.step-list{display:grid;gap:16px;margin-top:18px}.step-list p{display:flex;gap:14px;align-items:center;margin:0;color:var(--muted);transition:transform .22s ease,color .22s ease}.step-list p:hover{color:var(--green-dark);transform:translate(6px)}.step-list b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--green);flex:0 0 auto;box-shadow:0 12px 28px #476f632e;transition:transform .22s ease,background .22s ease}.step-list p:hover b{background:var(--red);transform:scale(1.08)}.create-form-section{position:relative;overflow:hidden}.create-form-section:before{content:"";position:absolute;left:50%;top:58px;width:520px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(196,146,69,.09),transparent 68%);transform:translate(-50%)}.create-form{max-width:720px;position:relative;overflow:hidden;padding:36px}.form-ornament{position:absolute;right:-82px;top:-88px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(71,111,99,.12),transparent 66%)}.create-form h2,.create-form .form-note,.create-form .form-grid{position:relative;z-index:2}.form-note{margin-bottom:22px;color:var(--muted);line-height:1.8}.create-form .input,.create-form textarea{transition:border-color .22s ease,box-shadow .22s ease,background .22s ease,transform .22s ease}.create-form .field{display:grid;gap:8px;color:var(--ink);font-weight:800}.create-region-picker label{display:grid;gap:8px}.create-region-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.create-form .input:focus,.create-form textarea:focus{outline:none;border-color:#c83b329e;background:#fffdf8;box-shadow:0 0 0 4px #c83b3214;transform:translateY(-2px)}.submit-btn{width:100%}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@keyframes createPulse{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}.create-region-picker{grid-template-columns:1fr}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.culture-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.culture-stats{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.culture-stats span{padding:10px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;box-shadow:0 14px 32px #4839260f;font-weight:800;transition:transform .22s ease,color .22s ease,background .22s ease}.culture-stats span:hover{color:#fff;background:var(--green);transform:translateY(-3px)}.culture-quote{position:relative;min-height:260px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;color:#fff;background:linear-gradient(180deg,#213f382e,#213f38db),linear-gradient(135deg,#476f63,#c49245 50%,#c83b32)}.culture-quote:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:34px 34px;opacity:.34}.quote-moon{position:absolute;right:72px;top:34px;width:92px;height:92px;border-radius:50%;background:#ffffff52;box-shadow:0 0 34px #ffffff1f;animation:moonFloat 4s ease-in-out infinite}.culture-quote span{position:relative;z-index:2;width:64px;height:64px;margin-bottom:24px;border-radius:50%;display:grid;place-items:center;color:var(--red);background:#fffffff0;font-family:SimSun,Songti SC,serif;font-size:30px;font-weight:800;transition:transform .24s ease,background .24s ease}.culture-quote:hover span{transform:rotate(-8deg) scale(1.08)}.culture-quote p{position:relative;z-index:2;margin:0;color:#ffffffdb;font-size:22px;line-height:1.7}.article-section{position:relative;overflow:hidden}.article-section:before{content:"";position:absolute;left:50%;top:58px;width:520px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(196,146,69,.09),transparent 68%);transform:translate(-50%)}.article-card{position:relative;overflow:hidden;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 48px #39302412;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.article-card:hover{border-color:#c492456b;box-shadow:0 24px 60px #3930241c}.article-cover{position:relative;height:190px;overflow:hidden;background:radial-gradient(circle at 74% 28%,rgba(255,255,255,.7) 0 8%,transparent 9%),linear-gradient(135deg,#e7c89e,#b94135 48%,#143d57)}.article-cover:after{content:"";position:absolute;left:-42%;top:0;width:36%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);transform:skew(-18deg);transition:left .58s ease}.article-card:hover .article-cover:after{left:112%}.article-cover span{position:absolute;left:22px;bottom:20px;padding:7px 12px;border-radius:999px;color:var(--green-dark);background:#fffdf8db;font-weight:800;font-size:13px}.article-card:nth-child(2) .article-cover{background:linear-gradient(135deg,#dfd1b5,#6b7f70 48%,#26302c)}.article-card:nth-child(3) .article-cover{background:linear-gradient(135deg,#f0d8ac,#c49245 45%,#7d342d)}.article-body{padding:24px}.article-body h3{transition:color .22s ease}.article-card:hover .article-body h3{color:var(--red)}.article-body p{color:var(--muted);line-height:1.75}.article-body span{color:#9a8f82;font-size:14px}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@keyframes moonFloat{0%,to{transform:translateY(0) scale(1);opacity:.72}50%{transform:translateY(-8px) scale(1.04);opacity:.92}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.download-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.detail-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}.qr-card{display:grid;place-items:center;text-align:center}.qr-box{width:170px;height:170px;padding:16px;border-radius:24px;background:linear-gradient(90deg,var(--green) 12px,transparent 12px) 0 0 / 32px 32px,linear-gradient(var(--green) 12px,transparent 12px) 0 0 / 32px 32px,#fffdf8;border:1px solid var(--line);display:grid;place-items:center;box-shadow:inset 0 0 0 12px #fffdf8}.qr-box span{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--red);font-weight:900}.qr-card p,.download-card p{color:var(--muted);line-height:1.8}.download-card{transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}.download-card:hover{border-color:#c492456b}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.page-family-detail [data-family-detail].is-loading{opacity:.82}.detail-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.detail-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}.family-summary{position:relative;overflow:hidden;display:grid;align-content:center;gap:24px;color:#fff;background:linear-gradient(180deg,#213f382e,#213f38e0),linear-gradient(135deg,#476f63,#c49245 52%,#8f4634)}.family-summary:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:34px 34px;opacity:.38}.family-summary>*{position:relative;z-index:2}.summary-badge{width:fit-content;padding:8px 14px;border-radius:999px;color:var(--green-dark);background:#fffdf8e0;font-weight:800}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.summary-grid span{min-height:84px;padding:16px;border-radius:16px;display:grid;place-items:center;background:#ffffff21;border:1px solid rgba(255,255,255,.18)}.summary-grid b{display:block;font-size:30px}.detail-layout{display:grid;grid-template-columns:330px 1fr;gap:26px;align-items:start}.detail-panel,.content-card,.mini-card{border:1px solid var(--line);border-radius:18px;background:#fffdf8c7;box-shadow:0 20px 54px #39302414}.detail-panel{padding:26px;position:sticky;top:108px}.detail-panel p,.content-card p,.mini-card p{color:var(--muted);line-height:1.8}.detail-main{display:grid;gap:24px}.content-card{padding:30px}.mini-card{min-height:170px;padding:24px;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}.mini-card:hover{border-color:#c492456b;box-shadow:0 24px 60px #3930241c}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@media(max-width:900px){.detail-layout{grid-template-columns:1fr}.detail-panel{position:static}.summary-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.recover-card{position:relative;overflow:hidden}.recover-card:before{content:"";position:absolute;right:-80px;top:-90px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(200,59,50,.13),transparent 64%)}.recover-card>*{position:relative;z-index:2}@media(max-width:620px){.code-row{grid-template-columns:1fr}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.page-genealogy{background:#fbf7ed}.genealogy-hero .container{min-height:470px;padding-top:76px;padding-bottom:76px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:136px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.genealogy-stats{display:flex;gap:12px;margin-top:28px;padding:8px;border:1px solid rgba(224,211,189,.78);border-radius:18px;background:#fffdf8bd;box-shadow:0 16px 36px #48392612}.genealogy-stats div{min-width:118px;padding:12px 16px;border-radius:12px}.genealogy-stats div+div{border-left:1px solid rgba(218,201,174,.78)}.genealogy-stats strong{display:block;color:var(--green);font-size:24px;line-height:1.1}.genealogy-stats span{color:#6d766f;font-size:14px}.tree-preview{position:relative;min-height:300px;display:grid;gap:14px;align-content:center;overflow:hidden;background:linear-gradient(90deg,#fffdf8f2,#fffdf8c7),radial-gradient(circle at 78% 22%,rgba(196,146,69,.2),transparent 28%);transform-style:preserve-3d}.tree-glow{position:absolute;right:-70px;top:-80px;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(200,59,50,.13),transparent 62%);animation:treePulse 4.2s ease-in-out infinite}.tree-row{position:relative;z-index:2;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.tree-row span{min-width:110px;padding:14px 18px;border:1px solid #dac9ae;border-radius:14px;text-align:center;color:var(--green-dark);background:#fffaf1e6;box-shadow:0 12px 28px #4535230f;font-weight:800;transition:transform .24s ease,color .24s ease,background .24s ease,box-shadow .24s ease}.tree-preview:hover .tree-row span{animation:nodeFloat 1.9s ease-in-out infinite}.tree-row span:hover{color:#fff;background:var(--green);box-shadow:0 16px 32px #476f6338}.tree-row.branch span:nth-child(2){animation-delay:.08s}.tree-row.branch span:nth-child(3){animation-delay:.16s}.tree-row.generation span:nth-child(2){animation-delay:.08s}.tree-row.generation span:nth-child(3){animation-delay:.16s}.tree-row.generation span:nth-child(4){animation-delay:.24s}.tree-line{position:relative;z-index:1;width:min(360px,70%);height:1px;margin:0 auto;background:linear-gradient(90deg,transparent,rgba(196,146,69,.5),transparent)}.tree-line.short{width:min(500px,86%)}.capability-section{position:relative;overflow:hidden}.capability-section:before{content:"";position:absolute;left:50%;top:58px;width:520px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(196,146,69,.09),transparent 68%);transform:translate(-50%);pointer-events:none}.feature-card{min-height:210px;position:relative;overflow:hidden}.feature-card:after{content:"";position:absolute;left:-40%;top:0;width:36%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent);transform:skew(-18deg);transition:left .56s ease}.feature-card:hover:after{left:110%}.icon-word{width:48px;height:48px;margin-bottom:18px;border-radius:14px;display:grid;place-items:center;color:var(--red);background:#f7e4dc;font-size:22px;font-weight:900;transition:transform .26s ease,background .26s ease,color .26s ease}.feature-card:hover .icon-word{color:#fff;background:var(--red);transform:rotate(-6deg) scale(1.08)}.coedit-section{background:radial-gradient(circle at 18% 20%,rgba(200,59,50,.08),transparent 24%),#f7efe2}.coedit-card{min-height:260px;padding:34px}.coedit-card .btn{margin-top:12px}.process-card{min-height:260px;padding:34px}.step-list{display:grid;gap:16px;margin-top:20px}.step-list p{display:flex;gap:14px;align-items:center;margin:0;color:var(--muted)}.step-list b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--green);flex:0 0 auto;box-shadow:0 12px 28px #476f632e}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@keyframes nodeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes treePulse{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}.genealogy-stats{flex-direction:column}.genealogy-stats div+div{border-left:0;border-top:1px solid rgba(218,201,174,.78)}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.help-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.help-tags{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.help-tags span{padding:10px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;box-shadow:0 14px 32px #4839260f;font-weight:800;transition:transform .22s ease,color .22s ease,background .22s ease}.help-tags span:hover{color:#fff;background:var(--green);transform:translateY(-3px)}.help-card{position:relative;overflow:hidden;display:grid;align-content:center;gap:14px}.help-card:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(196,146,69,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(196,146,69,.06) 1px,transparent 1px);background-size:34px 34px;opacity:.72}.help-card h3,.help-card p,.help-card .btn,.help-icon{position:relative;z-index:2}.help-orb{position:absolute;right:-70px;top:-80px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(200,59,50,.13),transparent 62%);animation:helpPulse 4s ease-in-out infinite}.help-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;color:#fff;background:var(--green);font-size:26px;font-weight:900;box-shadow:0 14px 32px #476f6333;transition:transform .26s ease,background .26s ease}.help-card:hover .help-icon{background:var(--red);transform:rotate(-8deg) scale(1.08)}.faq-section{position:relative;overflow:hidden}.faq-section:before{content:"";position:absolute;left:50%;top:58px;width:520px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(196,146,69,.09),transparent 68%);transform:translate(-50%)}.faq-list{position:relative;max-width:880px;margin:0 auto;display:grid;gap:14px}.faq-list details{padding:22px 24px;border:1px solid var(--line);border-radius:18px;background:#fffdf8;box-shadow:0 12px 34px #3930240f;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background .24s ease}.faq-list.is-loading{min-height:220px}.faq-list details:hover,.faq-list details[open]{border-color:#c492456b;box-shadow:0 22px 54px #3930241a}.faq-list summary{position:relative;cursor:pointer;color:var(--ink);font-size:20px;font-weight:800;list-style:none;padding-left:34px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:before{content:"";position:absolute;left:0;top:8px;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:10px solid var(--green-dark);transition:transform .24s ease,border-left-color .24s ease}.faq-list details[open] summary:before{border-left-color:var(--red);transform:rotate(90deg)}.faq-list p{margin:14px 0 0;padding-left:34px;color:var(--muted);line-height:1.8;animation:faqReveal .24s ease both}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@keyframes helpPulse{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes faqReveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}}
|
||||||
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.page-join-genealogy .auth-card{width:min(1080px,100%)}.join-page-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:28px;align-items:start}.join-search-panel,.join-apply-form{display:grid;gap:16px}.join-page-grid .field{display:grid;gap:10px}.join-page-grid .field>span{color:var(--ink);font-weight:900}.join-page-grid .field input,.join-page-grid .field textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;color:var(--ink);font:inherit;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.join-page-grid .field textarea{min-height:128px;resize:vertical}.join-page-grid .field input:focus,.join-page-grid .field textarea:focus{border-color:#c83b3273;box-shadow:0 0 0 4px #c83b3214}.join-search-panel{padding-right:28px;border-right:1px solid var(--line)}.join-page-grid h2{margin:0;font-size:22px}.join-page-grid .module-list{max-height:420px;overflow:auto}@media(max-width:800px){.page-join-genealogy .auth-card{width:min(500px,100%)}.join-page-grid{grid-template-columns:1fr}.join-search-panel{padding-right:0;padding-bottom:24px;border-right:0;border-bottom:1px solid var(--line)}}.invite-box{padding:14px;border:1px dashed var(--gold);border-radius:22px;background:#fffaf1}.page-join-genealogy textarea.input{min-height:112px;resize:vertical}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.page-login .auth-card{width:min(440px,100%)}.login-mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:18px 0;padding:4px;border:1px solid rgba(200,59,50,.16);border-radius:999px;background:#fffaf1e0;box-shadow:inset 0 1px #ffffffc7}.login-mode-tab{min-height:42px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-weight:800;text-align:center;cursor:pointer;transition:color .22s ease,background .22s ease,box-shadow .22s ease}.login-mode-tab.is-active{background:#c83b321c;color:var(--red);box-shadow:inset 0 0 0 1px #c83b3229,0 8px 18px #8a402a14}.login-mode-panel[hidden]{display:none}.page-login .code-row{display:grid;grid-template-columns:minmax(0,1fr) 124px;gap:10px}.page-login .auth-links{margin-top:14px}@media(max-width:720px){.page-login .auth-layout{align-items:start}}@media(max-width:620px){.page-login .code-row{grid-template-columns:1fr}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.notice-hero .container{min-height:420px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.article-meta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.article-meta span{padding:10px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;font-weight:800}.notice-card{display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(145deg,var(--green-dark),var(--green))}.notice-card span{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;color:var(--red);background:#fffdf8f0;font-family:SimSun,Songti SC,serif;font-size:42px;font-weight:900}.notice-card p{margin:18px 0 0;color:#ffffffe0;font-size:22px}.notice-layout{display:grid;grid-template-columns:minmax(0,820px) 300px;gap:28px;align-items:start}.notice-content,.notice-side{border:1px solid var(--line);border-radius:18px;background:#fffdf8d1;box-shadow:0 20px 54px #39302414}.notice-content{padding:42px}.notice-content p{color:#5f665f;font-size:18px;line-height:2}.notice-side{padding:24px}.notice-side a{display:block;margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;color:#6f4a37;background:#fbf7ed;transition:transform .22s ease,color .22s ease,background .22s ease}.notice-side a:hover{color:#fff;background:var(--green);transform:translate(5px)}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@media(max-width:900px){.notice-layout{grid-template-columns:1fr}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.plaza-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.plaza-stats{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.plaza-stats span{padding:12px 16px;border:1px solid rgba(224,211,189,.78);border-radius:16px;color:#6d766f;background:#fffdf8bd;box-shadow:0 14px 32px #4839260f}.plaza-stats b{margin-right:6px;color:var(--green);font-size:22px}.search-card{position:relative;display:grid;gap:20px;align-content:center;overflow:hidden}.search-card h3{position:relative;z-index:2}.search-ornament{position:absolute;right:-70px;top:-84px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(200,59,50,.13),transparent 62%);animation:plazaPulse 4s ease-in-out infinite}.search-toolbar{position:relative;z-index:2;padding:8px;border:1px solid rgba(224,211,189,.78);border-radius:999px;background:#fffaf1d1}.search-card .input{flex:1 1 280px;border:0;background:transparent}.search-card .tag-row{position:relative;z-index:2}.family-card.featured{min-height:300px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;background:linear-gradient(180deg,#1c302d2e,#153733d6),linear-gradient(135deg,#476f63,#a95c3e);border-radius:18px;padding:28px;box-shadow:0 22px 58px #2a413b29}.family-card.featured:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:34px 34px;opacity:.45}.family-card.featured h3,.family-card.featured p,.family-card.featured .tag-row,.family-badge{position:relative;z-index:2}.family-card.featured p{color:#ffffffd1}.family-badge{width:fit-content;margin-bottom:auto;padding:7px 12px;border-radius:999px;color:var(--green-dark);background:#fffdf8db;font-weight:800;font-size:13px}.family-card-shine{position:absolute;left:-40%;top:0;width:34%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:skew(-18deg);transition:left .6s ease}.family-card.featured:hover .family-card-shine{left:112%}.family-lite{min-height:300px;position:relative;overflow:hidden}.family-lite:after{content:"";position:absolute;right:-60px;bottom:-70px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,rgba(196,146,69,.13),transparent 68%);transition:transform .28s ease,opacity .28s ease}.family-lite:hover:after{transform:scale(1.25);opacity:.8}.family-icon{width:52px;height:52px;margin-bottom:24px;border-radius:16px;display:grid;place-items:center;color:var(--red);background:#f7e4dc;font-family:SimSun,Songti SC,serif;font-size:26px;font-weight:800;transition:transform .26s ease,background .26s ease,color .26s ease}.family-lite:hover .family-icon{color:#fff;background:var(--red);transform:rotate(-6deg) scale(1.08)}.tag{transition:transform .22s ease,color .22s ease,background .22s ease}.tag:hover{color:#fff;background:var(--green);transform:translateY(-2px)}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@keyframes plazaPulse{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}.search-toolbar{border-radius:18px}}
|
||||||
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.promo-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.promo-tags{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.promo-tags span{padding:10px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;font-weight:800;transition:transform .22s ease,color .22s ease,background .22s ease}.promo-tags span:hover{color:#fff;background:var(--green);transform:translateY(-3px)}.album-preview{display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:repeat(2,130px);gap:14px;overflow:hidden}.album-photo{border-radius:18px;background:radial-gradient(circle at 72% 24%,rgba(255,255,255,.75) 0 8%,transparent 9%),linear-gradient(135deg,#e7c89e,#b94135 48%,#143d57);box-shadow:0 16px 36px #39302414;transition:transform .26s ease}.album-photo.large{grid-row:1 / 3;background:linear-gradient(180deg,#1c302d1a,#153733b8),url(../images/ancestral-hall.png) center/cover}.album-photo.warm{background:linear-gradient(135deg,#f0d8ac,#c49245 45%,#7d342d)}.album-photo.green{background:linear-gradient(135deg,#dfd1b5,#6b7f70 48%,#26302c)}.album-preview:hover .album-photo{transform:scale(1.025)}.album-card{min-height:180px;position:relative;overflow:hidden}.album-card:after{content:"";position:absolute;left:-42%;top:0;width:36%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.54),transparent);transform:skew(-18deg);transition:left .56s ease}.album-card:hover:after{left:112%}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}.album-preview{grid-template-columns:1fr;grid-template-rows:repeat(4,120px)}.album-photo.large{grid-row:auto}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.promo-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.promo-tags{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.promo-tags span{padding:10px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;font-weight:800;transition:transform .22s ease,color .22s ease,background .22s ease}.promo-tags span:hover{color:#fff;background:var(--green);transform:translateY(-3px)}.video-preview{min-height:300px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;background:linear-gradient(180deg,#1f3f371a,#192722db),url(../images/ancestral-hall.png) center/cover}.video-preview:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:34px 34px;opacity:.35}.video-preview h3,.video-preview p,.play-button{position:relative;z-index:2}.video-preview p{color:#fffc}.play-button{width:64px;height:64px;margin-bottom:46px;border-radius:50%;background:#fffffff0;box-shadow:0 14px 34px #0003;transition:transform .24s ease}.play-button:after{content:"";position:absolute;left:26px;top:19px;border-top:13px solid transparent;border-bottom:13px solid transparent;border-left:20px solid var(--red)}.video-preview:hover .play-button{transform:scale(1.08)}.video-card{min-height:180px;position:relative;overflow:hidden}.video-card:after{content:"";position:absolute;left:-42%;top:0;width:36%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.54),transparent);transform:skew(-18deg);transition:left .56s ease}.video-card:hover:after{left:112%}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}}
|
||||||
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.page-register .auth-links{justify-content:center}@media(max-width:720px){.page-register .auth-layout{align-items:start}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.result-hero .container{min-height:420px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.result-search{display:grid;gap:18px;align-content:center}.result-search .toolbar{padding:8px;border:1px solid rgba(224,211,189,.78);border-radius:999px;background:#fffaf1d1}.result-search .input{flex:1 1 260px;border:0;background:transparent}.result-list{display:grid;gap:18px;max-width:920px;margin:0 auto}.result-card{position:relative;overflow:hidden;padding:26px;border:1px solid var(--line);border-radius:18px;background:#fffdf8d1;box-shadow:0 18px 48px #39302412;transition:transform .24s ease,border-color .24s ease,box-shadow .24s ease}.result-card:after{content:"";position:absolute;right:-70px;bottom:-80px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(196,146,69,.13),transparent 68%);transition:transform .28s ease}.result-card:hover{border-color:#c492456b;box-shadow:0 24px 60px #3930241c}.result-card:hover:after{transform:scale(1.2)}.result-card span{display:inline-flex;margin-bottom:12px;padding:7px 12px;border-radius:999px;color:var(--green-dark);background:#e8f0eb;font-weight:800;font-size:13px}.result-card p{margin:0;color:var(--muted);line-height:1.8}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}.result-search .toolbar{border-radius:18px}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.site-info-hero{padding:78px 0 64px;background:radial-gradient(circle at 82% 18%,rgba(196,146,69,.2),transparent 24%),linear-gradient(135deg,#fffaf0,#f3eadc 62%,#edf4ef)}.site-info-hero .container{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);align-items:center;gap:44px}.site-info-kicker{margin-bottom:14px;color:var(--red);font-size:13px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.site-info-hero h1{margin:0;font-size:clamp(36px,5vw,58px);line-height:1.15}.site-info-hero p{max-width:680px;margin:20px 0 0;color:var(--muted);font-size:17px;line-height:1.9}.site-info-mark{min-height:180px;display:grid;place-items:center;border:1px solid rgba(196,146,69,.36);border-radius:28px;color:var(--red);background:#fffdf8c2;box-shadow:var(--shadow);font-size:62px;font-weight:900}.site-info-section{padding:72px 0}.site-info-section.alt{background:#f7efe2a3}.site-info-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.36fr);gap:28px}.site-info-list,.site-info-panel,.site-info-status{padding:30px;border:1px solid var(--line);border-radius:22px;background:var(--white);box-shadow:0 16px 46px #45352314}.site-info-list{display:grid;gap:16px}.site-info-item{display:block;padding:20px;border:1px solid rgba(234,223,206,.9);border-radius:16px;background:#fffaf2;transition:transform .2s ease,border-color .2s ease}.site-info-item:hover{border-color:#c83b3266;transform:translateY(-2px)}.site-info-item small,.site-info-panel small{color:var(--red);font-weight:800}.site-info-item h2,.site-info-panel h2,.site-info-status h2{margin:10px 0;font-size:22px}.site-info-item p,.site-info-panel p,.site-info-status p{margin:0;color:var(--muted);line-height:1.8}.site-info-links{display:grid;gap:12px;margin-top:18px}.site-info-links a{color:#8f4b31;font-weight:800}.site-info-links a:hover{color:var(--red)}.site-info-notice{margin-bottom:22px;padding:18px 20px;border:1px solid rgba(196,146,69,.42);border-radius:14px;color:#775227;background:#fff6e2;line-height:1.75}.site-info-status{max-width:760px;margin:0 auto;text-align:center}.site-info-status .site-info-mark{width:96px;min-height:96px;margin:0 auto 22px;border-radius:50%;font-size:34px}.site-info-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:26px}@media(max-width:760px){.site-info-hero .container,.site-info-layout{grid-template-columns:1fr}.site-info-hero,.site-info-section{padding:52px 0}.site-info-mark{min-height:120px}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.ticket-hero .container{min-height:420px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.ticket-tip{display:grid;place-items:center;text-align:center;background:linear-gradient(145deg,var(--green-dark),var(--green));color:#fff}.ticket-tip span{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;color:var(--red);background:#fffdf8f0;font-size:28px;font-weight:900}.ticket-tip p{max-width:360px;margin:18px 0 0;color:#ffffffdb;line-height:1.8}.ticket-layout{display:grid;grid-template-columns:minmax(0,720px) 320px;gap:26px;align-items:start}.ticket-form{max-width:none}.ticket-form textarea{min-height:150px;padding-top:16px;border-radius:18px;resize:vertical}.ticket-side{padding:26px;border:1px solid var(--line);border-radius:18px;background:#fffdf8d1;box-shadow:0 20px 54px #39302414}.ticket-side p{color:var(--muted);line-height:1.8}.ticket-side a{display:inline-flex;margin-top:10px;color:var(--red);font-weight:800}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@media(max-width:900px){.ticket-layout{grid-template-columns:1fr}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.surname-detail-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.detail-actions{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}.surname-emblem{position:relative;overflow:hidden;display:grid;place-items:center;text-align:center;color:#fff;background:radial-gradient(circle at 72% 24%,rgba(255,255,255,.28) 0 10%,transparent 11%),linear-gradient(135deg,#476f63,#c49245 54%,#8f4634)}.surname-emblem span{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;color:var(--red);background:#fffdf8f2;font-family:SimSun,Songti SC,serif;font-size:58px;font-weight:800;transition:transform .24s ease}.surname-emblem:hover span{transform:rotate(-8deg) scale(1.08)}.surname-emblem p{margin:18px 0 0;color:#ffffffe6;font-size:22px}.surname-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.content-card,.related-panel{border:1px solid var(--line);border-radius:18px;background:#fffdf8d1;box-shadow:0 20px 54px #39302414}.content-card{padding:30px}.content-card:first-child{grid-column:1 / -1}.content-card p{color:var(--muted);font-size:17px;line-height:1.9}.generation-row{display:flex;flex-wrap:wrap;gap:10px}.generation-row span{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;color:#7c4a33;background:#fbf7ed;border:1px solid var(--line);font-family:SimSun,Songti SC,serif;font-size:24px;font-weight:800;transition:transform .22s ease,color .22s ease,background .22s ease}.generation-row span:hover{color:#fff;background:var(--red);transform:translateY(-5px)}.related-panel{padding:26px}.related-panel a{display:block;margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;color:#6f4a37;background:#fbf7ed;transition:transform .22s ease,color .22s ease,background .22s ease}.related-panel a:hover{color:#fff;background:var(--green);transform:translate(5px)}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@media(max-width:860px){.surname-detail-grid{grid-template-columns:1fr}.content-card:first-child{grid-column:auto}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
.surname-hero .container{min-height:440px;padding-top:74px;padding-bottom:74px}.hero-copy{position:relative;padding-left:28px}.hero-copy:before{content:"";position:absolute;left:0;top:58px;width:4px;height:132px;border-radius:999px;background:linear-gradient(180deg,var(--red),var(--gold))}.surname-stats{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.surname-stats span{padding:11px 14px;border:1px solid rgba(224,211,189,.78);border-radius:999px;color:#6d766f;background:#fffdf8bd;box-shadow:0 14px 32px #4839260f}.surname-stats b{margin-right:6px;color:var(--green)}.surname-search-card{position:relative;overflow:hidden;display:grid;gap:18px;align-content:center}.search-ornament{position:absolute;right:-72px;top:-84px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(200,59,50,.13),transparent 62%);animation:surnamePulse 4s ease-in-out infinite}.surname-search-card h3,.search-toolbar,.hot-query{position:relative;z-index:2}.search-toolbar{padding:8px;border:1px solid rgba(224,211,189,.78);border-radius:999px;background:#fffaf1d1}.search-toolbar .input{flex:1 1 280px;border:0;background:transparent}.hot-query{display:flex;gap:10px;flex-wrap:wrap}.hot-query span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:#7c4a33;background:#fbf7ed;border:1px solid var(--line);font-family:SimSun,Songti SC,serif;font-weight:800;transition:transform .22s ease,color .22s ease,background .22s ease}.hot-query span:hover{color:#fff;background:var(--red);transform:translateY(-4px)}.surname-list-section{position:relative;overflow:hidden}.surname-list-section:before{content:"";position:absolute;left:50%;top:58px;width:520px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(196,146,69,.09),transparent 68%);transform:translate(-50%)}.surname-grid{position:relative;display:grid;grid-template-columns:repeat(8,1fr);gap:12px;padding:24px;border:1px solid rgba(224,211,189,.8);border-radius:24px;background:#fffdf8b8;box-shadow:0 22px 60px #39302414}.surname-grid a{height:64px;border-radius:14px;display:grid;place-items:center;color:#7c4a33;background:#fbf7ed;border:1px solid var(--line);font-family:SimSun,Songti SC,serif;font-size:24px;font-weight:800;transition:transform .24s ease,color .24s ease,background .24s ease,border-color .24s ease,box-shadow .24s ease;will-change:transform}.surname-grid a:hover{color:#fff;background:var(--red);border-color:#c83b32b8;box-shadow:0 16px 34px #c83b322e;transform:translateY(-6px) scale(1.03)}.surname-grid:hover a{animation:surnameFloat 1.9s ease-in-out infinite}.surname-grid:hover a:nth-child(2n){animation-delay:.08s}.surname-grid:hover a:nth-child(3n){animation-delay:.14s}.surname-grid:hover a:nth-child(4n){animation-delay:.2s}.tilt-card{transform:perspective(900px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translateY(var(--lift, 0));transition:transform .18s ease,box-shadow .24s ease,border-color .24s ease}.tilt-card:hover{--lift: -6px}@keyframes surnameFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes surnamePulse{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@media(max-width:720px){.hero-copy{padding-left:0}.hero-copy:before{display:none}.search-toolbar{border-radius:18px}.surname-grid{grid-template-columns:repeat(4,1fr);padding:14px}}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user