feat(web): 新增更新日志、服务条款、隐私政策页面;关于页更新日志链接修正
- web/dist/changelog/ 版本历史页,收录 v1.0.0–v1.0.29 全部发版记录 - web/dist/terms/ 服务条款页(付费/授权/数据/免责等) - web/dist/privacy/ 隐私政策页(数据收集/使用/共享/用户权利等) - 全站页脚补充 更新日志、服务条款、隐私政策三个链接 - about_screen 「更新日志」按钮链接由 /downloads/ 改为 /changelog/ - 新增 backend/cmd/issue 工具,用于签发指定门店的授权码 token Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Vendored
+490
@@ -0,0 +1,490 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light" />
|
||||
<title>更新日志 · 岩美酒库管理系统</title>
|
||||
<meta name="description" content="岩美酒库管理系统版本更新历史,记录每次发版的新功能、改进与修复。" />
|
||||
<link rel="stylesheet" href="/assets/color.css" />
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
|
||||
<style>
|
||||
.page-header {
|
||||
padding: 64px 0 48px;
|
||||
background: radial-gradient(700px 360px at 80% 20%, rgba(37,99,172,.06), transparent 60%),
|
||||
linear-gradient(180deg,#FBFCFD 0%,#FFFFFF 80%);
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
}
|
||||
.ph-eyebrow {
|
||||
font-size: var(--text-xs); font-weight: 600;
|
||||
letter-spacing: .12em; color: var(--brand-500);
|
||||
text-transform: uppercase; margin: 0 0 12px;
|
||||
display: flex; align-items: center; gap: 8px;
|
||||
}
|
||||
.ph-title {
|
||||
font-size: 40px; font-weight: 700; line-height: 1.15;
|
||||
color: var(--brand-900); margin: 0 0 12px;
|
||||
}
|
||||
.ph-lead { font-size: var(--text-lg); color: var(--gray-600); margin: 0; }
|
||||
|
||||
/* Timeline layout */
|
||||
.changelog-body { padding: 60px 0 80px; }
|
||||
.changelog-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 160px 1fr;
|
||||
gap: 0 48px;
|
||||
max-width: 760px;
|
||||
}
|
||||
@media (max-width: 640px) {
|
||||
.changelog-grid { grid-template-columns: 1fr; }
|
||||
}
|
||||
|
||||
.cl-version-col {
|
||||
padding-top: 4px;
|
||||
text-align: right;
|
||||
}
|
||||
@media (max-width: 640px) {
|
||||
.cl-version-col { text-align: left; margin-bottom: 6px; }
|
||||
}
|
||||
|
||||
.cl-version {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 15px; font-weight: 600;
|
||||
color: var(--brand-600);
|
||||
display: block;
|
||||
}
|
||||
.cl-date {
|
||||
font-size: 12px; color: var(--gray-400);
|
||||
display: block; margin-top: 3px;
|
||||
}
|
||||
|
||||
.cl-content-col {
|
||||
padding-bottom: 48px;
|
||||
border-left: 2px solid var(--border-subtle);
|
||||
padding-left: 32px;
|
||||
position: relative;
|
||||
}
|
||||
@media (max-width: 640px) {
|
||||
.cl-content-col { border-left: none; padding-left: 0; }
|
||||
}
|
||||
.cl-content-col::before {
|
||||
content: '';
|
||||
position: absolute; left: -5px; top: 8px;
|
||||
width: 8px; height: 8px; border-radius: 50%;
|
||||
background: var(--brand-500);
|
||||
border: 2px solid #fff;
|
||||
box-shadow: 0 0 0 2px var(--brand-200);
|
||||
}
|
||||
@media (max-width: 640px) { .cl-content-col::before { display: none; } }
|
||||
|
||||
.cl-tag {
|
||||
display: inline-block;
|
||||
font-size: 11px; font-weight: 600;
|
||||
padding: 2px 8px; border-radius: 4px;
|
||||
margin: 0 4px 8px 0;
|
||||
letter-spacing: .03em;
|
||||
}
|
||||
.tag-feat { background: #dbeafe; color: #1d4ed8; }
|
||||
.tag-fix { background: #dcfce7; color: #15803d; }
|
||||
.tag-improve { background: #fef9c3; color: #854d0e; }
|
||||
|
||||
.cl-section { margin-bottom: 14px; }
|
||||
.cl-section h4 {
|
||||
font-size: 12px; font-weight: 700;
|
||||
letter-spacing: .06em; text-transform: uppercase;
|
||||
color: var(--gray-400); margin: 0 0 8px;
|
||||
display: flex; align-items: center; gap: 6px;
|
||||
}
|
||||
.cl-section ul {
|
||||
list-style: none; padding: 0; margin: 0;
|
||||
display: flex; flex-direction: column; gap: 6px;
|
||||
}
|
||||
.cl-section ul li {
|
||||
font-size: 14px; color: var(--gray-700);
|
||||
padding-left: 16px; position: relative;
|
||||
line-height: 1.55;
|
||||
}
|
||||
.cl-section ul li::before {
|
||||
content: '·'; position: absolute; left: 4px;
|
||||
color: var(--gray-400); font-weight: 700;
|
||||
}
|
||||
|
||||
.cl-initial {
|
||||
font-size: 14px; color: var(--gray-600);
|
||||
line-height: 1.6; margin-bottom: 12px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="topnav">
|
||||
<div class="topnav-inner">
|
||||
<a href="/" class="topnav-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
</a>
|
||||
<div class="topnav-links">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
</div>
|
||||
<div class="topnav-cta" id="nav-cta">
|
||||
<a href="/register/" class="btn btn-primary btn-sm">注册门店</a>
|
||||
</div>
|
||||
<button class="nav-hamburger" id="nav-hamburger" aria-label="菜单" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-mobile-menu" id="nav-mobile-menu">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存管理</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
<div class="nav-mobile-cta" id="nav-mobile-cta">
|
||||
<a href="/register/" class="btn btn-primary">注册门店</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="page-header">
|
||||
<div class="container">
|
||||
<p class="ph-eyebrow"><i data-lucide="history" style="width:14px;height:14px;"></i> Changelog</p>
|
||||
<h1 class="ph-title">更新日志</h1>
|
||||
<p class="ph-lead">每次发版的新功能、改进与问题修复。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="changelog-body">
|
||||
<div class="container">
|
||||
<div class="changelog-grid">
|
||||
|
||||
<!-- v1.0.29 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.29</span>
|
||||
<span class="cl-date">2026-06-09</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>Windows / macOS 桌面客户端现在限制只能运行一个实例;重复打开时弹窗提示「程序已在运行中」并自动退出</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.27 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.27</span>
|
||||
<span class="cl-date">2026-06-09</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="arrow-up-circle" style="width:12px;height:12px;"></i> 改进</h4>
|
||||
<ul>
|
||||
<li>入库单新建表单:产地、保质期、储存方式、批次号、生产日期等选填字段默认折叠,点击「展开选填」后在行内显示,减少初始界面信息量</li>
|
||||
<li>手机端现可从屏幕左边缘向右滑动打开导航菜单,无需点击汉堡图标</li>
|
||||
<li>入库单详情弹窗在手机上商品明细改为卡片式竖排布局,不再显示难以阅读的横向宽表格</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="wrench" style="width:12px;height:12px;"></i> 修复</h4>
|
||||
<ul>
|
||||
<li>macOS 客户端下载 zip 解压失败:打包改用 ditto,正确保留 symlink 和执行权限</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.26 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.26</span>
|
||||
<span class="cl-date">2026-06-08</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>公开商品 API 新增商品编码、条码、当前库存数量字段,供扫码页及第三方集成使用</li>
|
||||
<li>公开页「商品报错」「意见反馈」提交时自动携带门店编号和商品信息,方便运营追踪</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="wrench" style="width:12px;height:12px;"></i> 修复</h4>
|
||||
<ul>
|
||||
<li>注册页 API 地址改为配置文件驱动,支持分离部署场景</li>
|
||||
<li>注册成功提示的客户端导航路径修正为「系统设置」</li>
|
||||
<li>公开页页脚「关于岩美」链接改为配置项,不再硬编码</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.25 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.25</span>
|
||||
<span class="cl-date">2026-06-08</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>基础数据页新增「产地」「保质期」「储存方式」「描述文档」4 个字典维护 Tab</li>
|
||||
<li>商品详情页展示产地、保质期、储存方式参数,并在介绍区上方显示建议零售价</li>
|
||||
<li>入库单详情中商品列展示产地、保质期、储存方式信息</li>
|
||||
<li>公开扫码页新增「商品报错」「意见反馈」功能,用户可提交反馈</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.24 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.24</span>
|
||||
<span class="cl-date">2026-06-08</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>扫码商品页新增「查看本店其他商品」功能,点击即可浏览该门店全部上架商品</li>
|
||||
<li>门店可在设置中填写微信号,顾客扫码后可直接查看并添加门店微信</li>
|
||||
<li>商品公开页展示建议零售价(有填写时显示)</li>
|
||||
<li>入库时可为商品关联产地、保质期、储存方式、描述文档</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="arrow-up-circle" style="width:12px;height:12px;"></i> 改进</h4>
|
||||
<ul>
|
||||
<li>新增产地/保质期/储存方式/描述文档四类基础数据字典,支持增删改查</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.22 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.22</span>
|
||||
<span class="cl-date">2026-06-07</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>官网移动端适配:手机浏览器下导航折叠、首页各区块单列排版</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="arrow-up-circle" style="width:12px;height:12px;"></i> 改进</h4>
|
||||
<ul>
|
||||
<li>客户端移动端布局优化:入库/出库详情页商品明细改为卡片式竖排,操作按钮收纳至溢出菜单</li>
|
||||
<li>信息架构整理:仓库管理移入基础数据,系统设置新增授权 Tab 和数据管理组</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.21 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.21</span>
|
||||
<span class="cl-date">2026-06-07</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>商品详情页添加照片时,手机端(Android/iOS)支持直接拍照或从相册选择</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.18 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.18</span>
|
||||
<span class="cl-date">2026-06-06</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>移动端(Android)界面全面适配:侧边栏改为侧滑抽屉导航,各列表由宽表格自动切换为卡片流,弹窗与表单自适应屏宽</li>
|
||||
<li>Android 客户端正式上线,随发版自动发布到下载页</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.17 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.17</span>
|
||||
<span class="cl-date">2026-06-05</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>意见反馈改为应用内直接提交,支持文字 + 图片(最多 9 张),不再跳转邮件</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="arrow-up-circle" style="width:12px;height:12px;"></i> 改进</h4>
|
||||
<ul>
|
||||
<li>「关于」更名为「关于我们」并移至左侧菜单,成为独立页面</li>
|
||||
<li>打印时默认文件名带类型与时间戳,方便「打印到 PDF」归档</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.16 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.16</span>
|
||||
<span class="cl-date">2026-06-05</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>应用内更新:Windows/macOS 点「立即更新」直接在应用内下载并自动安装/重启(带进度条)</li>
|
||||
<li>Windows 安装程序改为中文向导</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.13 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.13</span>
|
||||
<span class="cl-date">2026-06-04</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>Windows 客户端改为提供安装程序(含安装向导、桌面/开始菜单快捷方式、卸载项)</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.4 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.4</span>
|
||||
<span class="cl-date">2026-05-30</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>支持 macOS 桌面客户端下载,下载 zip 解压即用</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.3 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.3</span>
|
||||
<span class="cl-date">2026-05-28</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 新功能</h4>
|
||||
<ul>
|
||||
<li>新增用户自助注册功能,在官网 /register/ 填写门店信息即可完成注册,系统自动生成门店编码</li>
|
||||
<li>支持 Windows 桌面客户端构建与发布</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.1 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.1</span>
|
||||
<span class="cl-date">2026-05-25</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="arrow-up-circle" style="width:12px;height:12px;"></i> 改进</h4>
|
||||
<ul>
|
||||
<li>库存搜索支持拼音和拼音首字母(如搜「mt」或「maotai」可匹配「茅台」)</li>
|
||||
<li>新增异常自动上报机制,线上错误可实时追踪</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- v1.0.0 -->
|
||||
<div class="cl-version-col">
|
||||
<span class="cl-version">v1.0.0</span>
|
||||
<span class="cl-date">2026-05-24</span>
|
||||
</div>
|
||||
<div class="cl-content-col">
|
||||
<p class="cl-initial">初始版本发布,完成核心库存管理功能。</p>
|
||||
<div class="cl-section">
|
||||
<h4><i data-lucide="sparkles" style="width:12px;height:12px;"></i> 核心功能</h4>
|
||||
<ul>
|
||||
<li>商品管理:多规格商品档案、图片、公开二维码扫码展示</li>
|
||||
<li>库存管理:入库审核、出库审核、库存盘点、流水记录</li>
|
||||
<li>财务管理:往来账目、对账单</li>
|
||||
<li>用户权限:管理员 / 成员 / 只读三级权限控制</li>
|
||||
<li>多租户隔离:门店数据完全独立</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="site-footer">
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<div class="footer-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
<p>为酒行与酒店设计的库存、审核、财务一体化管理平台。</p>
|
||||
<div class="footer-contact">
|
||||
<div><a href="mailto:yammy2023@163.com">yammy2023@163.com</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>产品</h5>
|
||||
<ul>
|
||||
<li><a href="/#modules">核心模块</a></li>
|
||||
<li><a href="/#platforms">多端覆盖</a></li>
|
||||
<li><a href="/#pricing">价格方案</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
<li><a href="/changelog/">更新日志</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>资源</h5>
|
||||
<ul>
|
||||
<li><a href="/docs/">使用手册</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>客户支持</h5>
|
||||
<ul>
|
||||
<li><a href="/#faq">常见问题</a></li>
|
||||
<li><a href="mailto:yammy2023@163.com">联系我们</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>公司</h5>
|
||||
<ul>
|
||||
<li><a href="/register/">注册门店</a></li>
|
||||
<li><a href="/terms/">服务条款</a></li>
|
||||
<li><a href="/privacy/">隐私政策</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<div>© 2026 岩美科技 · 保留所有权利</div>
|
||||
<div>沪 ICP 备 2026000000 号 · 沪公网安备 31010000000000 号</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/assets/nav.js"></script>
|
||||
<script>lucide.createIcons();</script>
|
||||
</body>
|
||||
</html>
|
||||
Vendored
+890
@@ -0,0 +1,890 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light" />
|
||||
<title>使用手册 · 岩美酒库管理系统</title>
|
||||
<meta name="description" content="岩美酒库管理系统使用手册,覆盖入库、出库、库存、财务等全功能操作说明。" />
|
||||
<link rel="stylesheet" href="/assets/color.css" />
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
<link rel="stylesheet" href="/assets/docs.css" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="topnav">
|
||||
<div class="topnav-inner">
|
||||
<a href="/" class="topnav-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
</a>
|
||||
<div class="topnav-links">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
</div>
|
||||
<div class="topnav-cta" id="nav-cta">
|
||||
<a href="/register/" class="btn btn-primary btn-sm">注册门店</a>
|
||||
</div>
|
||||
<button class="nav-hamburger" id="nav-hamburger" aria-label="菜单" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-mobile-menu" id="nav-mobile-menu">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存管理</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
<div class="nav-mobile-cta" id="nav-mobile-cta">
|
||||
<a href="/register/" class="btn btn-primary">注册门店</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<!-- ============================== DOCS SUB-NAV ============================== -->
|
||||
<div class="docs-subnav">
|
||||
<div class="docs-subnav-inner">
|
||||
<nav class="breadcrumb">
|
||||
<a href="/">岩美</a>
|
||||
<span class="sep">/</span>
|
||||
<span class="current">使用手册</span>
|
||||
</nav>
|
||||
|
||||
<div class="docs-search">
|
||||
<i data-lucide="search" class="search-icon icon"></i>
|
||||
<input type="text" placeholder="搜索文档..." id="docs-search-input" />
|
||||
<span class="kbd">⌘K</span>
|
||||
</div>
|
||||
|
||||
<div class="docs-version">
|
||||
<i data-lucide="tag" class="icon"></i>
|
||||
<span class="docs-version-label">版本</span>
|
||||
<span>v1.0.23</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ============================== THREE-COLUMN LAYOUT ============================== -->
|
||||
<div class="docs-layout">
|
||||
|
||||
<!-- Left TOC -->
|
||||
<aside class="docs-toc" id="docs-toc">
|
||||
|
||||
<div class="toc-section">
|
||||
<div class="toc-section-title">快速开始</div>
|
||||
|
||||
<a href="#ch-1" class="toc-link" data-chapter="ch-1">
|
||||
<span class="toc-num">1</span>
|
||||
系统概述
|
||||
</a>
|
||||
|
||||
<a href="#ch-2" class="toc-link" data-chapter="ch-2">
|
||||
<span class="toc-num">2</span>
|
||||
登录与退出
|
||||
</a>
|
||||
|
||||
<a href="#ch-3" class="toc-link" data-chapter="ch-3">
|
||||
<span class="toc-num">3</span>
|
||||
界面说明
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="toc-section">
|
||||
<div class="toc-section-title">业务操作</div>
|
||||
|
||||
<a href="#ch-4" class="toc-link" data-chapter="ch-4">
|
||||
<span class="toc-num">4</span>
|
||||
角色与权限
|
||||
</a>
|
||||
|
||||
<a href="#ch-5" class="toc-link" data-chapter="ch-5">
|
||||
<span class="toc-num">5</span>
|
||||
入库管理
|
||||
</a>
|
||||
|
||||
<a href="#ch-6" class="toc-link" data-chapter="ch-6">
|
||||
<span class="toc-num">6</span>
|
||||
出库管理
|
||||
</a>
|
||||
|
||||
<a href="#ch-7" class="toc-link" data-chapter="ch-7">
|
||||
<span class="toc-num">7</span>
|
||||
库存管理
|
||||
</a>
|
||||
|
||||
<a href="#ch-8" class="toc-link" data-chapter="ch-8">
|
||||
<span class="toc-num">8</span>
|
||||
财务管理
|
||||
</a>
|
||||
|
||||
<a href="#ch-9" class="toc-link" data-chapter="ch-9">
|
||||
<span class="toc-num">9</span>
|
||||
往来单位
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="toc-section">
|
||||
<div class="toc-section-title">基础设置</div>
|
||||
|
||||
<a href="#ch-10" class="toc-link" data-chapter="ch-10">
|
||||
<span class="toc-num">10</span>
|
||||
基础数据(商品管理)
|
||||
</a>
|
||||
|
||||
<a href="#ch-11" class="toc-link" data-chapter="ch-11">
|
||||
<span class="toc-num">11</span>
|
||||
系统设置
|
||||
</a>
|
||||
|
||||
<a href="#ch-12" class="toc-link" data-chapter="ch-12">
|
||||
<span class="toc-num">12</span>
|
||||
常见问题
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</aside>
|
||||
|
||||
<!-- Main content -->
|
||||
<main class="docs-main" id="docs-main">
|
||||
|
||||
<section class="docs-chapter" id="ch-1">
|
||||
<h2>1. 系统概述</h2>
|
||||
<p>岩美酒库管理系统专为酒行门店设计,将入库、出库、库存查询、财务往来等日常业务整合到一个平台,支持多人协同操作,数据实时同步。</p>
|
||||
<p><strong>核心功能一览</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>模块</th>
|
||||
<th>主要用途</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>入库管理</td>
|
||||
<td>新建入库单、提交审核、审批通过后自动更新库存</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>出库管理</td>
|
||||
<td>新建出库单、提交审核、审批时自动扣减库存</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>库存管理</td>
|
||||
<td>查询实时库存、库存盘点、打印标签</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>财务管理</td>
|
||||
<td>查看应付款(欠供应商)和应收款(客户欠款)、标记结清</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>往来单位</td>
|
||||
<td>管理供应商和客户的基本信息</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>基础数据</td>
|
||||
<td>维护商品名称、系列、规格字典</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>系统设置</td>
|
||||
<td>用户管理、仓库管理、编号规则、数据导入</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><strong>支持平台</strong>:Web 浏览器(现已上线);Windows、macOS、iOS、Android 客户端即将推出。</p>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-2">
|
||||
<h2>2. 登录与退出</h2>
|
||||
<h3>2.1 登录</h3>
|
||||
<ol>
|
||||
<li>打开系统,进入登录页面。</li>
|
||||
<li>在「门店编号」栏输入酒行的门店代号(例如 <code>S001</code>)。</li>
|
||||
<li>输入「用户名」和「密码」。</li>
|
||||
<li>点击「登录」按钮。</li>
|
||||
</ol>
|
||||
<p>登录成功后,系统自动跳转到「入库管理」页面。</p>
|
||||
<p><strong>提示</strong>:系统会记录最近登录过的用户名,点击输入框可从候选列表中快速选择。</p>
|
||||
<h3>2.2 退出登录</h3>
|
||||
<p>点击顶部右侧用户名旁的下拉箭头,选择「退出登录」。</p>
|
||||
<h3>2.3 查看当前登录信息</h3>
|
||||
<p>点击顶部左侧「岩美」标题或右侧「门店编号」区域,弹出门店信息面板,显示门店编号、登录账号、姓名、系统版本。</p>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-3">
|
||||
<h2>3. 界面说明</h2>
|
||||
<p>系统主界面由三个区域组成:</p>
|
||||
<pre><code>┌──────────────────────────────────────────────────────────┐
|
||||
│ 顶部导航栏(标题、门店编号、用户名、退出) │
|
||||
├──────────┬───────────────────────────────────────────────┤
|
||||
│ │ │
|
||||
│ 左侧 │ 主内容区域 │
|
||||
│ 侧边栏 │ │
|
||||
│ │ │
|
||||
├──────────┴───────────────────────────────────────────────┤
|
||||
│ 状态栏(门店、用户、登录时间、当前时间、连接状态) │
|
||||
└──────────────────────────────────────────────────────────┘
|
||||
</code></pre>
|
||||
<p><strong>左侧侧边栏导航项</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>导航项</th>
|
||||
<th>功能</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>入库管理</td>
|
||||
<td>入库单录入与审核</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>出库管理</td>
|
||||
<td>出库单录入与审核</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>库存管理</td>
|
||||
<td>库存查询与盘点</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>财务管理</td>
|
||||
<td>应付款和应收款</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>往来单位</td>
|
||||
<td>供应商与客户</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>基础数据</td>
|
||||
<td>商品名称、系列、规格字典</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>系统设置</td>
|
||||
<td>用户、仓库、编号规则等配置</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>点击侧边栏顶部的菜单图标可收起或展开侧边栏,节省屏幕空间。</p>
|
||||
<p><strong>更新提示</strong>:有新版本时,内容区顶部会显示黄色提示横幅;如果是必须更新的版本,会弹出对话框要求立即更新。</p>
|
||||
<p><strong>离线提示</strong>:网络断开时,顶部显示红色横幅「网络连接已断开」,状态栏变红,此时展示上次加载的缓存数据。</p>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-4">
|
||||
<h2>4. 角色与权限</h2>
|
||||
<p>系统有四种角色,权限从高到低依次为:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>角色</th>
|
||||
<th>说明</th>
|
||||
<th>可执行操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>超级管理员</td>
|
||||
<td>系统最高权限账号</td>
|
||||
<td>全部操作,含数据清空</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>管理员</td>
|
||||
<td>门店管理人员</td>
|
||||
<td>全部操作,含用户管理、酒行信息编辑</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>操作员</td>
|
||||
<td>日常录入审核人员</td>
|
||||
<td>新建、编辑、提交、审核单据,查询数据</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>只读</td>
|
||||
<td>仅查看数据</td>
|
||||
<td>只能查看,不能新建、修改、删除任何数据</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p><strong>权限说明</strong></p>
|
||||
<ul>
|
||||
<li>只读账号点击任何写操作按钮时,系统将直接提示「无权限」。</li>
|
||||
<li>新增或编辑用户、重置密码仅管理员可操作。</li>
|
||||
<li>修改酒行基本信息仅管理员可操作。</li>
|
||||
<li>数据清空仅超级管理员可操作。</li>
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-5">
|
||||
<h2>5. 入库管理</h2>
|
||||
<p>入库管理页面包含两个标签页:<strong>入库审核</strong>(新建和待审核)和<strong>入库单</strong>(已完成记录)。</p>
|
||||
<h3>5.1 入库单状态说明</h3>
|
||||
<p>单据状态按以下流程流转:</p>
|
||||
<p><strong>草稿</strong> → <strong>待审核</strong> → <strong>已审批</strong>(库存增加)</p>
|
||||
<p>待审核阶段也可被拒绝,变为<strong>已拒绝</strong>状态(库存不变)。</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>状态</th>
|
||||
<th>含义</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>草稿</td>
|
||||
<td>已保存但未提交,可继续编辑或删除</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>待审核</td>
|
||||
<td>已提交等待审批,不可再编辑</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>已审批</td>
|
||||
<td>审批通过,库存已增加,同时生成应付账款记录</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>已拒绝</td>
|
||||
<td>审批不通过,库存不变</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3>5.2 新建入库单</h3>
|
||||
<ol>
|
||||
<li>点击左侧「入库管理」,切换到「入库审核」标签页。</li>
|
||||
<li>点击右上角「新建入库审核单」按钮。</li>
|
||||
<li>填写入库基本信息:
|
||||
<ul>
|
||||
<li><strong>仓库</strong>(必填):选择货物入库的目标仓库。</li>
|
||||
<li><strong>供应商</strong>(必填):选择供货的往来单位。</li>
|
||||
<li><strong>入库日期</strong>(必填):默认为今天,可修改。</li>
|
||||
<li><strong>备注</strong>(选填):填写本批次入库说明。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>在商品明细区域填写每一行商品:
|
||||
<ul>
|
||||
<li><strong>商品名称</strong>(必填):从字典中选择或直接输入。</li>
|
||||
<li><strong>系列</strong>(必填):选择商品系列。</li>
|
||||
<li><strong>规格</strong>(必填):选择商品规格,如 500ml×6。</li>
|
||||
<li><strong>生产日期</strong>(必填):点击日历图标选择。</li>
|
||||
<li><strong>批次号</strong>(选填):填写批次编号,用于后续追踪查询。</li>
|
||||
<li><strong>数量</strong>(必填):填写入库数量。</li>
|
||||
<li><strong>单价</strong>(必填):填写进货单价,系统自动计算总金额。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>点击「添加商品」可继续增加商品行,点击行末「删除」可移除该行。</li>
|
||||
<li>完成后选择操作:
|
||||
<ul>
|
||||
<li><strong>保存草稿</strong>:保存后可以继续修改。</li>
|
||||
<li><strong>保存并提交审核</strong>:提交后进入待审核状态,不可再编辑。</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<h3>5.3 提交审核</h3>
|
||||
<p>草稿状态的入库单,在列表中点击「提交」按钮,确认后单据进入「待审核」状态。</p>
|
||||
<h3>5.4 审批入库单</h3>
|
||||
<p>操作员及以上权限的用户均可审批。</p>
|
||||
<ol>
|
||||
<li>在「入库审核」标签页中找到待审核的入库单。</li>
|
||||
<li>点击「通过」:弹窗确认,确认后系统自动将商品入库,库存增加,同时生成一笔应付账款记录。</li>
|
||||
<li>点击「拒绝」:弹窗确认,拒绝后库存不变,单据进入「已拒绝」状态。</li>
|
||||
</ol>
|
||||
<p><strong>注意</strong>:审批通过后操作不可撤销,请仔细核对商品数量和单价后再确认。</p>
|
||||
<h3>5.5 查看入库单详情</h3>
|
||||
<p>点击入库单号(蓝色链接)可弹出详情页,显示完整的商品明细、数量、金额及审核信息。详情页右上角有打印按钮,可直接打印入库单。</p>
|
||||
<h3>5.6 打印入库单</h3>
|
||||
<p>在列表中点击对应行的「打印」按钮,直接调用打印机打印入库单据。</p>
|
||||
<h3>5.7 打印商品标签</h3>
|
||||
<ol>
|
||||
<li>在列表中点击对应行的「打标签」按钮。</li>
|
||||
<li>弹出商品标签打印对话框,列出本次入库的所有商品。</li>
|
||||
<li>勾选需要打印标签的商品(默认全选)。</li>
|
||||
<li>点击「打印选中」,系统逐张打印选中商品的标签。</li>
|
||||
</ol>
|
||||
<p>标签内容包括:商品名称、编码、系列、规格、批次号、生产日期、酒行名称及联系方式、二维码。</p>
|
||||
<h3>5.8 标记货款结清</h3>
|
||||
<p>审批通过的入库单会自动生成应付账款记录。货款付清后,在列表中点击「结清」按钮,确认后将对应财务记录标记为已结清。</p>
|
||||
<h3>5.9 筛选与导出</h3>
|
||||
<ul>
|
||||
<li><strong>仓库筛选</strong>:点击列头「仓库」的筛选图标,选择仓库进行过滤。</li>
|
||||
<li><strong>供应商筛选</strong>:点击列头「供应商」的筛选图标,选择供应商进行过滤。</li>
|
||||
<li><strong>日期筛选</strong>:点击「选择日期」按钮,选择日期范围。</li>
|
||||
<li><strong>导出</strong>:点击「导出」按钮,将当前列表导出为 Excel 文件。</li>
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-6">
|
||||
<h2>6. 出库管理</h2>
|
||||
<p>出库管理与入库管理操作流程类似,包含<strong>出库审核</strong>(待处理)和<strong>出库单</strong>(已完成)两个标签页。</p>
|
||||
<h3>6.1 出库单状态说明</h3>
|
||||
<p>出库单状态流转与入库单相同:草稿 → 待审核 → 已审批或已拒绝。</p>
|
||||
<p>审批通过后:</p>
|
||||
<ul>
|
||||
<li>系统会先检查库存是否充足,库存不足时审批失败并给出提示,库存不变。</li>
|
||||
<li>库存充足时自动扣减库存,并生成应收账款记录。</li>
|
||||
</ul>
|
||||
<h3>6.2 新建出库单</h3>
|
||||
<ol>
|
||||
<li>点击左侧「出库管理」,切换到「出库审核」标签页。</li>
|
||||
<li>点击右上角「新建出库审核单」按钮。</li>
|
||||
<li>填写基本信息:
|
||||
<ul>
|
||||
<li><strong>仓库</strong>(必填):选择出货仓库。</li>
|
||||
<li><strong>客户</strong>(必填):选择购买方(往来单位中的客户类型)。</li>
|
||||
<li><strong>出库日期</strong>(必填):默认今天,可修改。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>填写商品明细:商品名称、系列、规格、数量、单价(操作方式同入库单)。</li>
|
||||
<li>保存草稿或保存并提交审核。</li>
|
||||
</ol>
|
||||
<p><strong>注意</strong>:出库数量不能超过当前库存,审批时系统会自动检查,库存不足会提示失败。</p>
|
||||
<h3>6.3 审批出库单</h3>
|
||||
<p>操作步骤与入库审批相同。审批通过后库存自动扣减,同时生成应收账款记录。</p>
|
||||
<h3>6.4 打印出库单</h3>
|
||||
<p>在列表中点击「打印」按钮,打印出库单据。</p>
|
||||
<h3>6.5 标记货款结清</h3>
|
||||
<p>出库单审批通过后生成应收账款。收到货款后,在列表中点击「结清」按钮,将对应财务记录标记为已结清。</p>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-7">
|
||||
<h2>7. 库存管理</h2>
|
||||
<h3>7.1 查询库存</h3>
|
||||
<p>点击左侧「库存管理」进入库存列表。</p>
|
||||
<p>列表显示每个商品的实时库存数量、所在仓库、单价、金额、生产日期、批次等信息。</p>
|
||||
<ul>
|
||||
<li><strong>搜索</strong>:在搜索框输入商品名称关键字(也支持拼音或拼音首字母),实时过滤结果。</li>
|
||||
<li><strong>仓库筛选</strong>:点击列头「仓库」的筛选图标,按仓库查看库存。</li>
|
||||
<li><strong>导出</strong>:点击「导出」按钮,将当前库存列表导出为 Excel 文件。</li>
|
||||
</ul>
|
||||
<h3>7.2 修改备注</h3>
|
||||
<p>在库存列表中,点击「备注」列对应单元格(显示铅笔图标或现有备注内容),弹出编辑框,填写后点击「保存」即可。</p>
|
||||
<h3>7.3 打印商品标签</h3>
|
||||
<p>在库存列表中点击某商品行的「打印标签」按钮,可单独打印该商品的标签。</p>
|
||||
<h3>7.4 库存盘点</h3>
|
||||
<ol>
|
||||
<li>在库存管理页面切换到「库存盘点」标签页。</li>
|
||||
<li>选择要盘点的<strong>仓库</strong>,系统自动加载该仓库所有商品的账面库存数量。</li>
|
||||
<li>选择盘点类型(全盘)。</li>
|
||||
<li>逐行填写<strong>实际盘点数量</strong>(与账面不符时修改数量)。</li>
|
||||
<li>点击「提交盘点」完成。</li>
|
||||
</ol>
|
||||
<p>盘点单编号由系统自动生成。</p>
|
||||
<h3>7.5 库存流水</h3>
|
||||
<p>「库存流水」标签页可查看每次库存变动记录,包括入库、出库的时间、变动数量等。</p>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-8">
|
||||
<h2>8. 财务管理</h2>
|
||||
<h3>8.1 财务记录说明</h3>
|
||||
<p>系统在以下情况自动生成财务记录:</p>
|
||||
<ul>
|
||||
<li>入库单审批通过 → 自动生成<strong>应付账款</strong>(欠供应商的货款)</li>
|
||||
<li>出库单审批通过 → 自动生成<strong>应收账款</strong>(客户欠的货款)</li>
|
||||
</ul>
|
||||
<p>点击左侧「财务管理」进入财务页面,包含三个标签:</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>标签</th>
|
||||
<th>内容</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>全部记录</td>
|
||||
<td>所有财务流水</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>应付账款</td>
|
||||
<td>需要向供应商付款的记录</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>应收账款</td>
|
||||
<td>客户尚未付款的记录</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3>8.2 查看财务记录</h3>
|
||||
<ul>
|
||||
<li>默认显示当前月份的记录,可通过月份选择器查看历史月份。</li>
|
||||
<li>支持按「类型」和「往来单位」列头筛选。</li>
|
||||
<li>点击「导出」可导出当月数据为 Excel 文件。</li>
|
||||
</ul>
|
||||
<h3>8.3 标记结清</h3>
|
||||
<p><strong>方式一</strong>:在入库单或出库单列表中点击「结清」按钮,直接结清该单据对应的账款。</p>
|
||||
<p><strong>方式二</strong>:在财务管理列表中找到对应记录,点击「结清」按钮,单笔结清。</p>
|
||||
<p>结清后该记录状态从「未结清」变为「已结清」。</p>
|
||||
<h3>8.4 财务汇总</h3>
|
||||
<p>财务管理页面显示当期应付和应收总额,便于掌握资金往来概况。</p>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-9">
|
||||
<h2>9. 往来单位</h2>
|
||||
<p>往来单位管理<strong>供应商</strong>和<strong>客户</strong>两类信息,新建入库单时选择供应商,新建出库单时选择客户。</p>
|
||||
<h3>9.1 查看往来单位</h3>
|
||||
<p>点击左侧「往来单位」,通过「供应商」和「客户」标签页分别查看。列表支持按名称搜索和导出。</p>
|
||||
<h3>9.2 新建往来单位</h3>
|
||||
<ol>
|
||||
<li>在对应标签页点击右上角「新建」按钮。</li>
|
||||
<li>填写信息:
|
||||
<ul>
|
||||
<li><strong>名称</strong>(必填)</li>
|
||||
<li><strong>联系电话</strong>(选填)</li>
|
||||
<li><strong>地址</strong>(选填)</li>
|
||||
<li><strong>卡号</strong>(选填,如有账户绑定)</li>
|
||||
<li><strong>初始余额</strong>(选填,导入历史数据时填写)</li>
|
||||
<li><strong>备注</strong>(选填)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>点击「保存」。</li>
|
||||
</ol>
|
||||
<h3>9.3 编辑往来单位</h3>
|
||||
<p>在列表中点击「编辑」按钮,修改信息后保存。</p>
|
||||
<h3>9.4 删除往来单位</h3>
|
||||
<p>在列表中点击「删除」按钮,确认后删除。</p>
|
||||
<p><strong>注意</strong>:已关联入库单或出库单的往来单位不可删除。</p>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-10">
|
||||
<h2>10. 基础数据(商品管理)</h2>
|
||||
<p>点击左侧「基础数据」,进入商品字典管理页面,包含三个标签:<strong>商品名称</strong>、<strong>系列</strong>、<strong>规格</strong>。</p>
|
||||
<p>这些字典数据是新建入库或出库单时选择商品的基础,需要先在此处维护好商品信息。</p>
|
||||
<h3>10.1 商品名称管理</h3>
|
||||
<p>商品名称是酒品的主名称,例如「茅台飞天 53°」。</p>
|
||||
<ol>
|
||||
<li>在「商品名称」标签页,点击「新建」按钮。</li>
|
||||
<li>填写商品名称(必填)、编号(选填)、备注(选填)。</li>
|
||||
<li>点击「保存」。</li>
|
||||
</ol>
|
||||
<p>支持按名称或编号搜索,支持分页浏览,支持编辑和删除。</p>
|
||||
<h3>10.2 系列管理</h3>
|
||||
<p>系列是商品所属的系列或品牌线,例如「飞天系列」「王子系列」。操作步骤与商品名称相同。</p>
|
||||
<h3>10.3 规格管理</h3>
|
||||
<p>规格用于描述包装规格,例如「500ml×6」「1000ml×1」。新建时可填写「单品数量」(即一箱包含的单瓶数量)。</p>
|
||||
<h3>10.4 商品详情与二维码</h3>
|
||||
<p>每个商品都有唯一的二维码,可通过扫码访问商品公开信息页面。在商品详情页可查看或上传商品图片。</p>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-11">
|
||||
<h2>11. 系统设置</h2>
|
||||
<p>点击左侧「系统设置」,包含七个标签页。</p>
|
||||
<h3>11.1 酒行信息</h3>
|
||||
<p>显示本门店的基本信息:门店编号、门店名称、地址、联系电话、负责人。</p>
|
||||
<p><strong>编辑</strong>(仅管理员):点击「编辑信息」按钮,修改门店名称、地址、电话、负责人后保存。门店编号不可修改。</p>
|
||||
<h3>11.2 用户管理(仅管理员)</h3>
|
||||
<p><strong>查看用户</strong>:显示本门店所有用户的姓名、用户名、角色、启用状态。</p>
|
||||
<p><strong>新增用户</strong>:</p>
|
||||
<ol>
|
||||
<li>点击「新增用户」按钮。</li>
|
||||
<li>填写用户名(登录账号,不可重复)、姓名、手机号、初始密码。</li>
|
||||
<li>选择角色(操作员、管理员、只读、超级管理员)。</li>
|
||||
<li>点击「保存」。</li>
|
||||
</ol>
|
||||
<p><strong>编辑用户</strong>:点击用户行的「编辑」按钮,可修改姓名、手机号、角色(用户名不可修改)。</p>
|
||||
<p><strong>重置密码</strong>:点击「重置密码」按钮,输入新密码后确认,下次登录时使用新密码。</p>
|
||||
<p><strong>启用或停用</strong>:在用户列表中拨动状态开关。停用后该用户无法登录。</p>
|
||||
<h3>11.3 仓库管理</h3>
|
||||
<p><strong>查看仓库</strong>:显示所有仓库名称、位置、是否为默认仓库。</p>
|
||||
<p><strong>新建仓库</strong>:</p>
|
||||
<ol>
|
||||
<li>点击「新建」按钮。</li>
|
||||
<li>填写仓库名称(必填)、位置(选填)。</li>
|
||||
<li>可勾选「设为默认仓库」,新建单据时将自动选择此仓库。</li>
|
||||
<li>点击「保存」。</li>
|
||||
</ol>
|
||||
<p><strong>编辑或删除</strong>:点击对应按钮操作。已有库存的仓库不可删除。</p>
|
||||
<h3>11.4 编号规则</h3>
|
||||
<p>系统为每类单据自动生成唯一编号,格式由前缀、日期和序号组成,例如入库单编号 <code>RK20260523001</code>。</p>
|
||||
<p><strong>查看当前规则</strong>:列表显示每种单据的前缀、当前序号及下一编号示例。</p>
|
||||
<p><strong>修改规则</strong>:</p>
|
||||
<ol>
|
||||
<li>点击对应规则行的「编辑」按钮。</li>
|
||||
<li>可修改「前缀」和「当前序号」。</li>
|
||||
<li>点击「保存」,修改后对新建单据生效。</li>
|
||||
</ol>
|
||||
<p><strong>注意</strong>:请勿将序号调小至已使用过的范围,否则可能导致编号重复。</p>
|
||||
<h3>11.5 系统参数</h3>
|
||||
<p>配置系统的全局参数:</p>
|
||||
<ul>
|
||||
<li><strong>系统名称、货币单位、日期格式、时区</strong>(通常无需修改)</li>
|
||||
<li><strong>入库单需要审核</strong>:关闭后提交即视为通过,无需审批</li>
|
||||
<li><strong>出库单需要审核</strong>:关闭后同上</li>
|
||||
<li><strong>允许超量出库</strong>:开启后,出库数量超过库存时仍可审批通过</li>
|
||||
</ul>
|
||||
<p>修改后点击「保存设置」生效,点击「重置默认」恢复出厂默认值。</p>
|
||||
<h3>11.6 数据导入</h3>
|
||||
<p>通过 Excel 文件批量导入历史数据。支持以下数据类型:往来单位、商品名称、商品系列、商品规格、商品编码、库存。</p>
|
||||
<p>各类型的 Excel 格式要求详见系统内「系统设置 → 数据导入」页面说明。</p>
|
||||
<p><strong>操作步骤</strong>:</p>
|
||||
<ol>
|
||||
<li>在对应数据类型行点击「选择文件」,选择 Excel(.xls 或 .xlsx)文件。</li>
|
||||
<li>全部文件选择完成后,点击「全部导入」按钮。</li>
|
||||
<li>系统依次处理每个文件并显示导入结果(新增、跳过重复、失败数量)。</li>
|
||||
<li>如有失败,根据错误提示修正文件后重新导入。</li>
|
||||
</ol>
|
||||
<p><strong>导入规则</strong>:以名称去重,已存在的记录不重复导入。导入过程中请勿切换页面。</p>
|
||||
<p><strong>数据清空(仅超级管理员)</strong>:在数据导入页面下方「危险操作」区域,选择要清空的数据表,点击确认后输入「确认清空」完成操作。<strong>此操作不可撤销,请务必提前做好数据备份。</strong></p>
|
||||
<h3>11.7 关于</h3>
|
||||
<ul>
|
||||
<li><strong>版本信息</strong>:显示当前系统版本。有新版本时可点击「立即更新」。</li>
|
||||
<li><strong>授权信息</strong>:显示授权类型(试用、月付、年付、买断)、授权状态、到期时间。授权剩余不足 30 天时会显示倒计时提醒。</li>
|
||||
<li><strong>意见反馈</strong>:点击「反馈 Bug」或「功能建议」,通过邮件向开发团队反馈。</li>
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
</section>
|
||||
|
||||
<section class="docs-chapter" id="ch-12">
|
||||
<h2>12. 常见问题</h2>
|
||||
<p><strong>Q:入库单提交后发现填错了,怎么办?</strong></p>
|
||||
<p>单据提交(待审核状态)后不可再修改。请联系管理员将该单据拒绝,然后重新新建一张正确的入库单。</p>
|
||||
<p><strong>Q:出库审批时提示「库存不足」,怎么处理?</strong></p>
|
||||
<p>出库数量超过当前仓库库存时,系统会拒绝审批。请检查出库数量,或确认对应商品的入库单是否已审批通过、库存已更新。</p>
|
||||
<p><strong>Q:结清了财务记录但发现结清错了,如何撤销?</strong></p>
|
||||
<p>目前系统不支持撤销结清操作。如需处理,请联系技术支持。</p>
|
||||
<p><strong>Q:如何查找某批商品是从哪张入库单入库的?</strong></p>
|
||||
<p>在库存管理列表中查看商品的批次号,然后在入库管理中按批次号搜索对应的入库单。</p>
|
||||
<p><strong>Q:导入数据时提示「格式错误」,怎么处理?</strong></p>
|
||||
<p>请检查 Excel 文件的列顺序是否与「系统设置 → 数据导入」页面说明的格式一致,且第一行为数据行(无需填写表头)。如问题持续,可将文件发送给技术支持排查。</p>
|
||||
<p><strong>Q:用户无法登录,怎么处理?</strong></p>
|
||||
<p>请管理员在「系统设置 → 用户管理」中检查该用户是否处于启用状态,并使用「重置密码」功能为其设置新密码。</p>
|
||||
<p><strong>Q:操作时提示「无权限」,是什么原因?</strong></p>
|
||||
<p>当前账号角色为「只读」,不允许执行写操作。如需操作,请联系管理员调整账号角色。</p>
|
||||
<p><strong>Q:系统显示「网络连接已断开」,数据还准确吗?</strong></p>
|
||||
<p>网络断开时,系统展示上次加载的缓存数据,可能不是最新状态。请恢复网络连接后刷新页面获取最新数据。</p>
|
||||
<p><strong>Q:如何联系技术支持?</strong></p>
|
||||
<p>进入「系统设置 → 关于」查看联系邮箱和技术支持时间。工作日(周一至周五)9:00 - 18:00 可获得响应。</p>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<div class="docs-feedback">
|
||||
<span class="feedback-q">这篇文档对您有帮助吗?</span>
|
||||
<div class="feedback-actions">
|
||||
<button class="feedback-btn" onclick="sendFeedback('yes')">
|
||||
<i data-lucide="thumbs-up" class="icon"></i>有帮助
|
||||
</button>
|
||||
<button class="feedback-btn" onclick="sendFeedback('no')">
|
||||
<i data-lucide="thumbs-down" class="icon"></i>需要改进
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<!-- Right rail -->
|
||||
<aside class="docs-rail" id="docs-rail">
|
||||
<div class="rail-title">本页目录</div>
|
||||
<ul class="rail-list" id="rail-list"></ul>
|
||||
|
||||
<div class="rail-actions">
|
||||
<button class="rail-action" onclick="window.print()">
|
||||
<i data-lucide="printer" class="icon"></i>打印此页
|
||||
</button>
|
||||
<button class="rail-action" id="copy-link-btn">
|
||||
<i data-lucide="link" class="icon"></i>复制链接
|
||||
</button>
|
||||
<a class="rail-action" href="#ch-1">
|
||||
<i data-lucide="arrow-up" class="icon"></i>回到顶部
|
||||
</a>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var chapters = document.querySelectorAll('.docs-chapter');
|
||||
var tocLinks = document.querySelectorAll('.toc-link');
|
||||
var railList = document.getElementById('rail-list');
|
||||
|
||||
// Build right rail from all chapter h2+h3 headings
|
||||
function buildRail() {
|
||||
var items = [];
|
||||
chapters.forEach(function(ch) {
|
||||
var chId = ch.id;
|
||||
var chTitle = ch.querySelector('h2');
|
||||
if (chTitle) {
|
||||
items.push({ id: chId, text: chTitle.textContent, level: 2 });
|
||||
}
|
||||
ch.querySelectorAll('h3').forEach(function(h3) {
|
||||
if (!h3.id) {
|
||||
h3.id = chId + '-' + h3.textContent.replace(/\s+/g, '-').replace(/[^\w\-]/g, '').toLowerCase();
|
||||
}
|
||||
items.push({ id: h3.id, text: h3.textContent, level: 3 });
|
||||
});
|
||||
});
|
||||
railList.innerHTML = items.map(function(item) {
|
||||
var indent = item.level === 3 ? ' style="padding-left:20px;"' : '';
|
||||
return '<li><a href="#' + item.id + '"' + indent + '>' + item.text + '</a></li>';
|
||||
}).join('');
|
||||
}
|
||||
|
||||
// Scrollspy: highlight active TOC link and rail link
|
||||
function setupScrollspy() {
|
||||
if (!window.IntersectionObserver) return;
|
||||
var activeChapterId = null;
|
||||
|
||||
var observer = new IntersectionObserver(function(entries) {
|
||||
entries.forEach(function(entry) {
|
||||
if (entry.isIntersecting) {
|
||||
activeChapterId = entry.target.id;
|
||||
}
|
||||
});
|
||||
if (!activeChapterId) return;
|
||||
|
||||
// Update left TOC
|
||||
tocLinks.forEach(function(link) {
|
||||
var isActive = link.getAttribute('data-chapter') === activeChapterId;
|
||||
link.classList.toggle('active', isActive);
|
||||
});
|
||||
|
||||
// Update rail links
|
||||
railList.querySelectorAll('a').forEach(function(a) {
|
||||
a.classList.remove('active');
|
||||
if (a.getAttribute('href') === '#' + activeChapterId) {
|
||||
a.classList.add('active');
|
||||
}
|
||||
});
|
||||
}, { rootMargin: '-20% 0px -70% 0px', threshold: 0 });
|
||||
|
||||
chapters.forEach(function(ch) { observer.observe(ch); });
|
||||
}
|
||||
|
||||
// ⌘K / Ctrl+K 聚焦搜索框
|
||||
document.addEventListener('keydown', function(e) {
|
||||
if ((e.metaKey || e.ctrlKey) && e.key === 'k') {
|
||||
var inp = document.getElementById('docs-search-input');
|
||||
if (inp) { e.preventDefault(); inp.focus(); inp.select(); }
|
||||
}
|
||||
});
|
||||
|
||||
// Simple search: highlight matching text in main content
|
||||
var searchInput = document.getElementById('docs-search-input');
|
||||
if (searchInput) {
|
||||
searchInput.addEventListener('input', function() {
|
||||
var q = this.value.trim().toLowerCase();
|
||||
if (!q) {
|
||||
chapters.forEach(function(ch) { ch.style.display = ''; });
|
||||
return;
|
||||
}
|
||||
chapters.forEach(function(ch) {
|
||||
var text = ch.textContent.toLowerCase();
|
||||
ch.style.display = text.includes(q) ? '' : 'none';
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Copy link button
|
||||
var copyBtn = document.getElementById('copy-link-btn');
|
||||
if (copyBtn) {
|
||||
copyBtn.addEventListener('click', function() {
|
||||
navigator.clipboard.writeText(window.location.href).then(function() {
|
||||
copyBtn.querySelector('span, .icon') && null;
|
||||
var orig = copyBtn.innerHTML;
|
||||
copyBtn.innerHTML = '<i data-lucide="check" class="icon"></i>已复制';
|
||||
if (window.lucide) lucide.createIcons();
|
||||
setTimeout(function() { copyBtn.innerHTML = orig; if (window.lucide) lucide.createIcons(); }, 2000);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function sendFeedback(val) {
|
||||
var fb = document.querySelector('.docs-feedback');
|
||||
if (fb) fb.innerHTML = '<span style="color:var(--success-700);font-size:var(--text-md);">感谢您的反馈!</span>';
|
||||
}
|
||||
window.sendFeedback = sendFeedback;
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
buildRail();
|
||||
setupScrollspy();
|
||||
if (window.lucide) lucide.createIcons();
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<div class="footer-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
<p>为酒行与酒店设计的库存、审核、财务一体化管理平台。</p>
|
||||
<div class="footer-contact">
|
||||
<div><a href="mailto:yammy2023@163.com">yammy2023@163.com</a></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>产品</h5>
|
||||
<ul>
|
||||
<li><a href="/#modules">核心模块</a></li>
|
||||
<li><a href="/#platforms">多端覆盖</a></li>
|
||||
<li><a href="/#reports">数据洞察</a></li>
|
||||
<li><a href="/#pricing">价格方案</a></li>
|
||||
<li><a href="/download/">版本更新</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>资源</h5>
|
||||
<ul>
|
||||
<li><a href="/docs/">使用手册</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>客户支持</h5>
|
||||
<ul>
|
||||
<li><a href="/#faq">常见问题</a></li>
|
||||
<li><a href="mailto:yammy2023@163.com">联系我们</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>公司</h5>
|
||||
<ul>
|
||||
<li><a href="/register/">注册门店</a></li>
|
||||
<li><a href="/terms/">服务条款</a></li>
|
||||
<li><a href="/privacy/">隐私政策</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<div>© 2026 岩美科技 · 保留所有权利</div>
|
||||
<div>沪 ICP 备 2026000000 号 · 沪公网安备 31010000000000 号</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<script src="/assets/nav.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Vendored
+872
@@ -0,0 +1,872 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light" />
|
||||
<title>下载 · 岩美酒库管理系统</title>
|
||||
<meta name="description" content="下载岩美酒库管理系统,Web 版现已上线,Windows / macOS / iOS / Android 客户端即将推出。" />
|
||||
<link rel="stylesheet" href="/assets/color.css" />
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
|
||||
<style>/* ── Page header ── */
|
||||
.page-header {
|
||||
padding: 72px 0 56px;
|
||||
background:
|
||||
radial-gradient(700px 360px at 80% 20%, rgba(37, 99, 172, 0.06), transparent 60%),
|
||||
linear-gradient(180deg, #FBFCFD 0%, #FFFFFF 80%);
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
}
|
||||
.ph-inner {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 64px;
|
||||
align-items: center;
|
||||
}
|
||||
.ph-eyebrow {
|
||||
font-size: var(--text-xs); font-weight: 600;
|
||||
letter-spacing: 0.12em; color: var(--brand-500);
|
||||
text-transform: uppercase;
|
||||
margin: 0 0 12px;
|
||||
display: flex; align-items: center; gap: 8px;
|
||||
}
|
||||
.ph-eyebrow .version-badge {
|
||||
background: var(--brand-500); color: #fff;
|
||||
padding: 3px 8px; border-radius: var(--radius-sm);
|
||||
font-family: var(--font-mono);
|
||||
letter-spacing: 0.02em; font-size: 11px;
|
||||
}
|
||||
.ph-title {
|
||||
font-size: 44px; font-weight: 700; line-height: 1.15;
|
||||
letter-spacing: var(--tracking-cn-display);
|
||||
color: var(--brand-900); margin: 0 0 18px;
|
||||
}
|
||||
.ph-lead {
|
||||
font-size: var(--text-lg); color: var(--gray-600);
|
||||
line-height: 1.6; margin: 0 0 24px; max-width: 480px;
|
||||
}
|
||||
.ph-meta {
|
||||
display: flex; gap: 24px;
|
||||
font-size: var(--text-sm); color: var(--fg-muted);
|
||||
border-top: 1px solid var(--border-subtle);
|
||||
padding-top: 16px;
|
||||
}
|
||||
.ph-meta-item { display: flex; flex-direction: column; gap: 2px; }
|
||||
.ph-meta-label { font-size: 11px; color: var(--fg-subtle); letter-spacing: 0.04em; }
|
||||
.ph-meta-val { font-size: var(--text-sm); color: var(--gray-800); font-weight: 500; }
|
||||
|
||||
/* ── Auto-detect card ── */
|
||||
.detect-card {
|
||||
background: var(--gray-0);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: var(--radius-lg);
|
||||
box-shadow: var(--shadow-md);
|
||||
overflow: hidden;
|
||||
}
|
||||
.detect-card-head {
|
||||
padding: 14px 20px;
|
||||
background: var(--gray-50);
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
font-size: var(--text-xs); color: var(--fg-muted);
|
||||
display: flex; justify-content: space-between; align-items: center;
|
||||
}
|
||||
.detect-card-head .head-left { display: flex; align-items: center; gap: 6px; }
|
||||
.detect-card-head .head-left svg { width: 14px; height: 14px; color: var(--success-500); }
|
||||
.detect-card-body {
|
||||
padding: 28px;
|
||||
display: flex; gap: 24px; align-items: center;
|
||||
}
|
||||
.detect-icon {
|
||||
width: 72px; height: 72px;
|
||||
background: var(--brand-50); border-radius: 16px;
|
||||
display: grid; place-items: center;
|
||||
color: var(--brand-500); flex-shrink: 0;
|
||||
}
|
||||
.detect-icon svg { width: 38px; height: 38px; }
|
||||
.detect-info { flex: 1; }
|
||||
.detect-info h3 { margin: 0 0 4px; font-size: var(--text-xl); font-weight: 600; color: var(--brand-900); }
|
||||
.detect-info p { margin: 0; font-size: var(--text-sm); color: var(--fg-muted); }
|
||||
.detect-card-actions { padding: 0 28px 28px; display: flex; gap: 8px; }
|
||||
.detect-card-actions .btn-primary { flex: 1; justify-content: center; }
|
||||
|
||||
/* ── Platform grid ── */
|
||||
.dl-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, 1fr);
|
||||
gap: 12px;
|
||||
margin-top: 32px;
|
||||
}
|
||||
.dl-card {
|
||||
background: var(--gray-0);
|
||||
border: 1px solid var(--border-default);
|
||||
border-radius: var(--radius-lg);
|
||||
padding: 20px;
|
||||
display: flex; flex-direction: column;
|
||||
transition: border-color var(--duration-base) var(--ease-standard),
|
||||
box-shadow var(--duration-base) var(--ease-standard);
|
||||
}
|
||||
.dl-card:hover { border-color: var(--brand-300); box-shadow: var(--shadow-sm); }
|
||||
.dl-card.detected { border-color: var(--brand-400); box-shadow: var(--shadow-md); }
|
||||
.dl-card.coming-soon { opacity: 0.65; }
|
||||
.dl-card-icon {
|
||||
width: 48px; height: 48px;
|
||||
background: var(--brand-50); border-radius: var(--radius-md);
|
||||
display: grid; place-items: center; color: var(--brand-500);
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.dl-card-icon svg { width: 24px; height: 24px; }
|
||||
.dl-card-name { font-size: var(--text-md); font-weight: 600; color: var(--brand-900); margin: 0 0 4px; }
|
||||
.dl-card-desc { font-size: var(--text-xs); color: var(--fg-muted); margin: 0 0 14px; line-height: 1.5; flex: 1; }
|
||||
.dl-status {
|
||||
display: inline-flex; align-items: center; gap: 4px;
|
||||
font-size: 10px; font-weight: 600; letter-spacing: 0.04em;
|
||||
padding: 3px 8px; border-radius: var(--radius-pill); margin-bottom: 12px;
|
||||
}
|
||||
.dl-status.available { background: var(--success-50); color: var(--success-700); }
|
||||
.dl-status.soon { background: var(--gray-100); color: var(--fg-muted); }
|
||||
.dl-card-btn {
|
||||
display: flex; align-items: center; justify-content: center; gap: 6px;
|
||||
height: 34px; padding: 0 14px;
|
||||
border-radius: var(--radius-md);
|
||||
font-size: var(--text-sm); font-weight: 500;
|
||||
border: 1px solid transparent;
|
||||
cursor: pointer; width: 100%;
|
||||
transition: background var(--duration-fast) var(--ease-standard);
|
||||
text-decoration: none;
|
||||
}
|
||||
.dl-card-btn.primary { background: var(--brand-500); color: #fff; }
|
||||
.dl-card-btn.primary:hover { background: var(--brand-600); }
|
||||
.dl-card-btn.disabled {
|
||||
background: var(--gray-100); color: var(--fg-muted);
|
||||
cursor: default; pointer-events: none;
|
||||
border-color: var(--border-subtle);
|
||||
}
|
||||
.dl-card-btn svg { width: 14px; height: 14px; }
|
||||
|
||||
/* ── System requirements (rendered markdown) ── */
|
||||
.sysreq-content h2 {
|
||||
font-size: var(--text-xl); font-weight: 600;
|
||||
color: var(--brand-900); margin: 28px 0 12px;
|
||||
letter-spacing: var(--tracking-cn-display);
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
}
|
||||
.sysreq-content h2:first-child { margin-top: 0; }
|
||||
.sysreq-content table {
|
||||
width: 100%; border-collapse: collapse;
|
||||
font-size: var(--text-sm); color: var(--gray-800);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.sysreq-content th {
|
||||
text-align: left; font-size: 11px; font-weight: 600;
|
||||
letter-spacing: 0.04em; text-transform: uppercase;
|
||||
color: var(--fg-muted); padding: 8px 12px;
|
||||
background: var(--gray-50);
|
||||
border: 1px solid var(--border-subtle);
|
||||
}
|
||||
.sysreq-content td {
|
||||
padding: 10px 12px;
|
||||
border: 1px solid var(--border-subtle);
|
||||
vertical-align: top;
|
||||
}
|
||||
.sysreq-content tr:hover td { background: var(--gray-25); }
|
||||
.sysreq-content p { font-size: var(--text-sm); color: var(--fg-muted); margin: 8px 0 0; }
|
||||
|
||||
/* ── Changelog timeline ── */
|
||||
.changelog {
|
||||
display: grid;
|
||||
grid-template-columns: 180px 1fr;
|
||||
gap: 0;
|
||||
margin-top: 40px;
|
||||
border-left: 1px solid var(--border-subtle);
|
||||
}
|
||||
.changelog-entry { display: contents; }
|
||||
.changelog-meta {
|
||||
padding: 28px 24px 28px 32px;
|
||||
position: relative;
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
}
|
||||
.changelog-meta::before {
|
||||
content: '';
|
||||
position: absolute; left: -7px; top: 36px;
|
||||
width: 13px; height: 13px; border-radius: 50%;
|
||||
background: var(--gray-0); border: 3px solid var(--gray-300);
|
||||
}
|
||||
.changelog-entry.current .changelog-meta::before {
|
||||
background: var(--brand-500); border-color: var(--brand-100);
|
||||
box-shadow: 0 0 0 4px var(--brand-50);
|
||||
}
|
||||
.changelog-version {
|
||||
font-family: var(--font-mono); font-size: var(--text-md); font-weight: 600;
|
||||
color: var(--brand-900); margin-bottom: 4px;
|
||||
}
|
||||
.changelog-date { font-size: var(--text-xs); color: var(--fg-muted); }
|
||||
.changelog-tag {
|
||||
display: inline-block; font-size: 10px;
|
||||
background: var(--success-50); color: var(--success-700);
|
||||
padding: 2px 8px; border-radius: var(--radius-pill);
|
||||
font-weight: 500; margin-top: 8px;
|
||||
}
|
||||
.changelog-body {
|
||||
padding: 28px 0 28px 32px;
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
border-left: 1px solid var(--border-subtle);
|
||||
margin-left: -1px;
|
||||
}
|
||||
.changelog-entry:last-child .changelog-meta,
|
||||
.changelog-entry:last-child .changelog-body { border-bottom: none; }
|
||||
.changelog-intro {
|
||||
font-size: var(--text-sm); color: var(--gray-700);
|
||||
line-height: 1.6; margin: 0 0 16px;
|
||||
}
|
||||
.changelog-cat { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
|
||||
.changelog-cat-label {
|
||||
font-size: 11px; font-weight: 600; letter-spacing: 0.06em;
|
||||
color: var(--fg-muted); text-transform: uppercase;
|
||||
display: flex; align-items: center; gap: 6px; margin-bottom: 2px;
|
||||
}
|
||||
.changelog-cat-label .dot { width: 6px; height: 6px; border-radius: 50%; }
|
||||
.dot-feature { background: var(--brand-500); }
|
||||
.dot-improve { background: var(--success-500); }
|
||||
.dot-fix { background: var(--warning-500); }
|
||||
.changelog-cat ul {
|
||||
margin: 0; padding: 0; list-style: none;
|
||||
font-size: var(--text-sm); color: var(--gray-700); line-height: 1.6;
|
||||
}
|
||||
.changelog-cat ul li {
|
||||
padding: 3px 0 3px 16px; position: relative;
|
||||
}
|
||||
.changelog-cat ul li::before {
|
||||
content: ''; position: absolute; left: 0; top: 11px;
|
||||
width: 6px; height: 1px; background: var(--gray-400);
|
||||
}
|
||||
|
||||
/* ── Responsive ── */
|
||||
@media (max-width: 1024px) {
|
||||
.ph-inner { grid-template-columns: 1fr; gap: 32px; }
|
||||
.ph-title { font-size: 36px; }
|
||||
.dl-grid { grid-template-columns: repeat(3, 1fr); }
|
||||
.changelog { grid-template-columns: 120px 1fr; }
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.dl-grid { grid-template-columns: repeat(2, 1fr); }
|
||||
.page-header { padding: 48px 0 40px; }
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
.ph-meta { flex-wrap: wrap; gap: 12px; }
|
||||
.dl-grid { grid-template-columns: 1fr; }
|
||||
.changelog { grid-template-columns: 1fr; }
|
||||
.changelog-version { font-size: 13px; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="topnav">
|
||||
<div class="topnav-inner">
|
||||
<a href="/" class="topnav-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
</a>
|
||||
<div class="topnav-links">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
</div>
|
||||
<div class="topnav-cta" id="nav-cta">
|
||||
<a href="/register/" class="btn btn-primary btn-sm">注册门店</a>
|
||||
</div>
|
||||
<button class="nav-hamburger" id="nav-hamburger" aria-label="菜单" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-mobile-menu" id="nav-mobile-menu">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存管理</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
<div class="nav-mobile-cta" id="nav-mobile-cta">
|
||||
<a href="/register/" class="btn btn-primary">注册门店</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<!-- ============================== PAGE HEADER ============================== -->
|
||||
<section class="page-header">
|
||||
<div class="container ph-inner">
|
||||
<div>
|
||||
<div class="ph-eyebrow">
|
||||
<span class="version-badge">v1.0.23</span>
|
||||
<span>下载岩美</span>
|
||||
</div>
|
||||
<h1 class="ph-title">随时随地,<br/>轻松管理酒库。</h1>
|
||||
<p class="ph-lead">
|
||||
Web 版、Windows / macOS 桌面版与 Android 客户端均已上线,iOS 客户端即将推出。
|
||||
</p>
|
||||
<div class="ph-meta">
|
||||
<div class="ph-meta-item">
|
||||
<div class="ph-meta-label">最新版本</div>
|
||||
<div class="ph-meta-val version-badge">v1.0.23</div>
|
||||
</div>
|
||||
<div class="ph-meta-item">
|
||||
<div class="ph-meta-label">发布日期</div>
|
||||
<div class="ph-meta-val">2026-06-07</div>
|
||||
</div>
|
||||
<div class="ph-meta-item">
|
||||
<div class="ph-meta-label">可用平台</div>
|
||||
<div class="ph-meta-val">Web / Windows / macOS / Android</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Auto-detect card -->
|
||||
<div class="detect-card">
|
||||
<div class="detect-card-head">
|
||||
<span class="head-left">
|
||||
<i data-lucide="zap" class="icon"></i>
|
||||
已自动识别您的环境
|
||||
</span>
|
||||
<span style="font-family: var(--font-mono); color: var(--fg-subtle);">推荐</span>
|
||||
</div>
|
||||
<div class="detect-card-body">
|
||||
<div class="detect-icon" id="detect-icon">
|
||||
<i data-lucide="globe" class="icon"></i>
|
||||
</div>
|
||||
<div class="detect-info">
|
||||
<h3 id="detect-name">Web 版</h3>
|
||||
<p id="detect-desc">浏览器直接访问,功能完整,无需下载安装。</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="detect-card-actions">
|
||||
<a href="https://jiu.51yanmei.com/app/" class="btn btn-primary btn-lg" id="detect-btn">
|
||||
<i data-lucide="arrow-right" class="icon"></i>
|
||||
立即使用 Web 版
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============================== PLATFORM GRID ============================== -->
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<h2 class="fs-3xl fw-6 text-brand-900 m-0 mb-6" style="letter-spacing: var(--tracking-cn-display);">支持的平台</h2>
|
||||
<p class="fs-md text-muted m-0 mb-8">Web 版、Windows / macOS 桌面版与 Android 客户端现已可用,iOS 正在开发中。</p>
|
||||
|
||||
<div class="dl-grid" id="platform-grid">
|
||||
<!-- Web -->
|
||||
<div class="dl-card" data-platform="web">
|
||||
<div class="dl-card-icon"><i data-lucide="globe" class="icon"></i></div>
|
||||
<h3 class="dl-card-name">Web 版</h3>
|
||||
<p class="dl-card-desc">浏览器直接访问,功能完整,无需安装,支持 PC 与平板。</p>
|
||||
<span class="dl-status available">✓ 已上线</span>
|
||||
<a href="https://jiu.51yanmei.com/app/" class="dl-card-btn primary">
|
||||
<i data-lucide="arrow-right" class="icon"></i>立即使用
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Windows -->
|
||||
<div class="dl-card" data-platform="windows">
|
||||
<div class="dl-card-icon"><i data-lucide="monitor" class="icon"></i></div>
|
||||
<h3 class="dl-card-name">Windows</h3>
|
||||
<p class="dl-card-desc">原生桌面客户端,支持 Win 10/11(64 位),离线模式与本地打印。</p>
|
||||
<span class="dl-status available">✓ 已支持</span>
|
||||
<a href="#" class="dl-card-btn primary" id="windows-dl-btn">
|
||||
<i data-lucide="download" class="icon"></i>下载 Windows 版
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- macOS -->
|
||||
<div class="dl-card" data-platform="macos">
|
||||
<div class="dl-card-icon"><i data-lucide="laptop" class="icon"></i></div>
|
||||
<h3 class="dl-card-name">macOS</h3>
|
||||
<p class="dl-card-desc">支持 Apple Silicon 与 Intel,解压即用,首次运行右键→打开。</p>
|
||||
<span class="dl-status available">✓ 已支持</span>
|
||||
<a href="#" class="dl-card-btn primary" id="macos-dl-btn">
|
||||
<i data-lucide="download" class="icon"></i>下载 macOS 版
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- iOS -->
|
||||
<div class="dl-card coming-soon" data-platform="ios" id="ios-card">
|
||||
<div class="dl-card-icon"><i data-lucide="smartphone" class="icon"></i></div>
|
||||
<h3 class="dl-card-name">iOS</h3>
|
||||
<p class="dl-card-desc">iPhone 与 iPad 通用,通过 TestFlight 安装。</p>
|
||||
<span class="dl-status soon" id="ios-status">敬请期待</span>
|
||||
<a href="#" class="dl-card-btn disabled" id="ios-dl-btn">
|
||||
<i data-lucide="clock" class="icon"></i><span>即将推出</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Android -->
|
||||
<div class="dl-card" data-platform="android">
|
||||
<div class="dl-card-icon"><i data-lucide="tablet-smartphone" class="icon"></i></div>
|
||||
<h3 class="dl-card-name">Android</h3>
|
||||
<p class="dl-card-desc">手机与平板通用,APK 直接安装,支持 Android 6.0 及以上。</p>
|
||||
<span class="dl-status available">✓ 已支持</span>
|
||||
<a href="#" class="dl-card-btn primary" id="android-dl-btn">
|
||||
<i data-lucide="download" class="icon"></i>下载 Android 版
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============================== SYSTEM REQUIREMENTS ============================== -->
|
||||
<section class="section bg-25">
|
||||
<div class="container">
|
||||
<h2 class="fs-3xl fw-6 text-brand-900 m-0 mb-6" style="letter-spacing: var(--tracking-cn-display);">系统要求</h2>
|
||||
<p class="fs-md text-muted m-0 mb-32">在以下环境中均经过测试与验证。</p>
|
||||
<div class="card p-32 sysreq-content">
|
||||
<h2>Web 版(已上线)</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>要求</th>
|
||||
<th>最低</th>
|
||||
<th>推荐</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>浏览器</td>
|
||||
<td>Chrome 90 / Firefox 90 / Safari 15 / Edge 90</td>
|
||||
<td>最新稳定版</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>网络</td>
|
||||
<td>任意宽带</td>
|
||||
<td>10 Mbps+</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>Windows(已支持)</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>要求</th>
|
||||
<th>版本</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>系统</td>
|
||||
<td>Windows 10(64 位)及以上</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>内存</td>
|
||||
<td>4 GB RAM</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>存储</td>
|
||||
<td>500 MB 可用空间</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>macOS(敬请期待)</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>要求</th>
|
||||
<th>版本</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>系统</td>
|
||||
<td>macOS 12 及以上</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>内存</td>
|
||||
<td>4 GB RAM</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>存储</td>
|
||||
<td>500 MB 可用空间</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>iOS(敬请期待)</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>要求</th>
|
||||
<th>版本</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>系统</td>
|
||||
<td>iOS 15 及以上</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>设备</td>
|
||||
<td>iPhone 8 / iPad 第 6 代及以上</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>Android(敬请期待)</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>要求</th>
|
||||
<th>版本</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>系统</td>
|
||||
<td>Android 9 及以上</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>内存</td>
|
||||
<td>3 GB RAM</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============================== CHANGELOG ============================== -->
|
||||
<section class="section">
|
||||
<div class="container">
|
||||
<h2 class="fs-3xl fw-6 text-brand-900 m-0 mb-6" style="letter-spacing: var(--tracking-cn-display);">版本更新日志</h2>
|
||||
<p class="fs-md text-muted m-0">最近 3 个版本。</p>
|
||||
|
||||
<div class="changelog">
|
||||
|
||||
<div class="changelog-entry current">
|
||||
<div class="changelog-meta">
|
||||
<div class="changelog-version">v1.0.23</div>
|
||||
<div class="changelog-date">2026-06-07</div>
|
||||
<span class="changelog-tag">当前版本</span>
|
||||
</div>
|
||||
<div class="changelog-body">
|
||||
|
||||
|
||||
<div class="changelog-cat">
|
||||
<div class="changelog-cat-label">
|
||||
|
||||
<span class="dot dot-fix"></span>问题修复
|
||||
|
||||
</div>
|
||||
<ul>
|
||||
|
||||
<li>官网功能详情页(库存管理/审核流)导航栏现与主站完全一致,不再缺少「库存」「审核流」入口</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="changelog-cat">
|
||||
<div class="changelog-cat-label">
|
||||
|
||||
<span class="dot dot-improve"></span>改进
|
||||
|
||||
</div>
|
||||
<ul>
|
||||
|
||||
<li>官网功能详情页接入统一模板系统,导航/页脚/版权信息改一处自动同步全站</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="changelog-entry">
|
||||
<div class="changelog-meta">
|
||||
<div class="changelog-version">v1.0.22</div>
|
||||
<div class="changelog-date">2026-06-07</div>
|
||||
|
||||
</div>
|
||||
<div class="changelog-body">
|
||||
|
||||
|
||||
<div class="changelog-cat">
|
||||
<div class="changelog-cat-label">
|
||||
|
||||
<span class="dot dot-feature"></span>新功能
|
||||
|
||||
</div>
|
||||
<ul>
|
||||
|
||||
<li>官网移动端适配:手机浏览器下导航折叠、首页各区块单列排版、features 详情页和页脚自适应窄屏</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="changelog-cat">
|
||||
<div class="changelog-cat-label">
|
||||
|
||||
<span class="dot dot-improve"></span>改进
|
||||
|
||||
</div>
|
||||
<ul>
|
||||
|
||||
<li>客户端移动端布局优化:入库/出库详情页商品明细改为卡片式竖排,操作按钮收纳至溢出菜单,窄屏不再横向溢出</li>
|
||||
|
||||
<li>信息架构整理:仓库管理移入基础数据,系统设置新增授权 Tab 和数据管理组,关于我们补充帮助文档/法律信息/系统信息入口</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="changelog-cat">
|
||||
<div class="changelog-cat-label">
|
||||
|
||||
<span class="dot dot-fix"></span>问题修复
|
||||
|
||||
</div>
|
||||
<ul>
|
||||
|
||||
<li>官网所有功能页死链修正(`/download.html` → `/download/`,`/docs.html` → `/docs/`)</li>
|
||||
|
||||
<li>官网删除未实现功能的虚假宣传(红冲、调拨单、库存推送通知、过期预警等),文案与实际功能对齐</li>
|
||||
|
||||
<li>官网客服邮箱更新为真实邮箱,移除假冒客服电话,页脚清除无目标死链</li>
|
||||
|
||||
<li>导航新增「库存」「审核流」功能页入口,首页模块卡加「了解更多」链接</li>
|
||||
|
||||
<li>下载页接口失败时按钮改为禁用态并提示,不再无响应</li>
|
||||
|
||||
<li>首页 iOS 平台说明改为「TestFlight 内测中」,与下载页状态一致</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="changelog-entry">
|
||||
<div class="changelog-meta">
|
||||
<div class="changelog-version">v1.0.21</div>
|
||||
<div class="changelog-date">2026-06-07</div>
|
||||
|
||||
</div>
|
||||
<div class="changelog-body">
|
||||
|
||||
|
||||
<div class="changelog-cat">
|
||||
<div class="changelog-cat-label">
|
||||
|
||||
<span class="dot dot-feature"></span>新功能
|
||||
|
||||
</div>
|
||||
<ul>
|
||||
|
||||
<li>商品详情页添加照片时,手机端(Android/iOS)支持直接拍照或从相册选择</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var APP_BASE = 'https://jiu.51yanmei.com';
|
||||
var platforms = {
|
||||
web: { name: 'Web 版', desc: '浏览器直接访问,功能完整,无需下载安装。', icon: 'globe', btnText: '立即使用 Web 版', btnHref: APP_BASE + '/app/', available: true },
|
||||
ios: { name: 'iOS', desc: 'iPhone 与 iPad 通用,通过 TestFlight 安装。', icon: 'smartphone', btnText: '敬请期待', available: false },
|
||||
android: { name: 'Android', desc: '手机与平板通用,APK 直接安装,支持 Android 6.0 及以上。', icon: 'tablet-smartphone', btnText: '下载 Android 版', btnHref: '#', available: true },
|
||||
windows: { name: 'Windows 桌面', desc: '原生桌面客户端,支持 Win 10/11(64 位),离线模式与本地打印。', icon: 'monitor', btnText: '下载 Windows 版', btnHref: '#', available: true },
|
||||
macos: { name: 'macOS 桌面', desc: '支持 Apple Silicon 与 Intel,解压即用,首次运行右键→打开。', icon: 'laptop', btnText: '下载 macOS 版', btnHref: '#', available: true }
|
||||
};
|
||||
|
||||
function detectPlatform() {
|
||||
var ua = navigator.userAgent;
|
||||
if (/iPhone|iPad|iPod/.test(ua)) return 'ios';
|
||||
if (/Android/.test(ua)) return 'android';
|
||||
var platform = navigator.platform || '';
|
||||
if (/Win/.test(platform) || /Win/.test(ua)) return 'windows';
|
||||
if (/Mac/.test(platform) || /Mac/.test(ua)) return 'macos';
|
||||
return 'web';
|
||||
}
|
||||
|
||||
function updateDetectCard(p) {
|
||||
var info = platforms[p];
|
||||
var nameEl = document.getElementById('detect-name');
|
||||
var descEl = document.getElementById('detect-desc');
|
||||
var btnEl = document.getElementById('detect-btn');
|
||||
var iconEl = document.getElementById('detect-icon');
|
||||
if (nameEl) nameEl.textContent = info.name;
|
||||
if (descEl) descEl.textContent = info.desc;
|
||||
if (btnEl) {
|
||||
if (info.available) {
|
||||
btnEl.href = info.btnHref;
|
||||
btnEl.style.opacity = '';
|
||||
btnEl.style.pointerEvents = '';
|
||||
btnEl.querySelector('span') && (btnEl.querySelector('span').textContent = info.btnText);
|
||||
} else {
|
||||
btnEl.href = '#';
|
||||
btnEl.style.opacity = '0.5';
|
||||
btnEl.style.pointerEvents = 'none';
|
||||
}
|
||||
btnEl.childNodes.forEach(function(n) {
|
||||
if (n.nodeType === 3) n.textContent = ' ' + info.btnText;
|
||||
});
|
||||
}
|
||||
if (iconEl && window.lucide) {
|
||||
iconEl.innerHTML = '';
|
||||
var svg = document.createElement('i');
|
||||
svg.setAttribute('data-lucide', info.icon);
|
||||
svg.className = 'icon';
|
||||
iconEl.appendChild(svg);
|
||||
lucide.createIcons();
|
||||
}
|
||||
}
|
||||
|
||||
function highlightPlatformCard(p) {
|
||||
document.querySelectorAll('#platform-grid .dl-card').forEach(function(el) {
|
||||
el.classList.remove('detected');
|
||||
});
|
||||
var card = document.querySelector('#platform-grid [data-platform="' + p + '"]');
|
||||
if (card) card.classList.add('detected');
|
||||
}
|
||||
|
||||
function updateVersionBadges(version) {
|
||||
document.querySelectorAll('.version-badge').forEach(function(el) {
|
||||
el.textContent = 'v' + version;
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var detected = detectPlatform();
|
||||
updateDetectCard(detected);
|
||||
highlightPlatformCard(detected);
|
||||
|
||||
fetch('https://jiu.51yanmei.com/api/v1/public/release')
|
||||
.then(function(r) { return r.json(); })
|
||||
.then(function(data) {
|
||||
if (data && data.version) updateVersionBadges(data.version);
|
||||
if (data && data.download_urls && data.download_urls.macos) {
|
||||
platforms.macos.btnHref = data.download_urls.macos;
|
||||
var macBtn = document.getElementById('macos-dl-btn');
|
||||
if (macBtn) macBtn.href = data.download_urls.macos;
|
||||
if (detected === 'macos') updateDetectCard(detected);
|
||||
}
|
||||
if (data && data.download_urls && data.download_urls.windows) {
|
||||
platforms.windows.btnHref = data.download_urls.windows;
|
||||
var btn = document.getElementById('windows-dl-btn');
|
||||
if (btn) btn.href = data.download_urls.windows;
|
||||
if (detected === 'windows') updateDetectCard(detected);
|
||||
}
|
||||
if (data && data.download_urls && data.download_urls.android) {
|
||||
platforms.android.btnHref = data.download_urls.android;
|
||||
var andBtn = document.getElementById('android-dl-btn');
|
||||
if (andBtn) andBtn.href = data.download_urls.android;
|
||||
if (detected === 'android') updateDetectCard(detected);
|
||||
}
|
||||
// iOS 走 TestFlight:仅当配置了公开 TestFlight 链接时激活卡片
|
||||
if (data && data.download_urls && data.download_urls.ios) {
|
||||
platforms.ios.available = true;
|
||||
platforms.ios.btnHref = data.download_urls.ios;
|
||||
platforms.ios.btnText = '通过 TestFlight 安装';
|
||||
var iosCard = document.getElementById('ios-card');
|
||||
var iosStatus = document.getElementById('ios-status');
|
||||
var iosBtn = document.getElementById('ios-dl-btn');
|
||||
if (iosCard) iosCard.classList.remove('coming-soon');
|
||||
if (iosStatus) { iosStatus.className = 'dl-status available'; iosStatus.textContent = '✓ 已上线'; }
|
||||
if (iosBtn) {
|
||||
iosBtn.className = 'dl-card-btn primary';
|
||||
iosBtn.href = data.download_urls.ios;
|
||||
iosBtn.target = '_blank';
|
||||
iosBtn.rel = 'noopener';
|
||||
iosBtn.innerHTML = '<i data-lucide="download" class="icon"></i>通过 TestFlight 安装';
|
||||
if (window.lucide) lucide.createIcons();
|
||||
}
|
||||
if (detected === 'ios') updateDetectCard(detected);
|
||||
}
|
||||
})
|
||||
.catch(function() {
|
||||
// API 不可达时,将仍为 href="#" 的下载按钮改为禁用态
|
||||
['windows-dl-btn', 'macos-dl-btn', 'android-dl-btn'].forEach(function(id) {
|
||||
var btn = document.getElementById(id);
|
||||
if (btn && btn.getAttribute('href') === '#') {
|
||||
btn.className = 'dl-card-btn disabled';
|
||||
btn.innerHTML = '暂时无法获取下载地址';
|
||||
}
|
||||
});
|
||||
var detectBtn = document.getElementById('detect-btn');
|
||||
if (detectBtn && detectBtn.getAttribute('href') === '#') {
|
||||
detectBtn.className = 'btn btn-secondary btn-lg';
|
||||
detectBtn.innerHTML = '暂时无法连接服务器';
|
||||
}
|
||||
});
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<div class="footer-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
<p>为酒行与酒店设计的库存、审核、财务一体化管理平台。</p>
|
||||
<div class="footer-contact">
|
||||
<div><a href="mailto:yammy2023@163.com">yammy2023@163.com</a></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>产品</h5>
|
||||
<ul>
|
||||
<li><a href="/#modules">核心模块</a></li>
|
||||
<li><a href="/#platforms">多端覆盖</a></li>
|
||||
<li><a href="/#reports">数据洞察</a></li>
|
||||
<li><a href="/#pricing">价格方案</a></li>
|
||||
<li><a href="/download/">版本更新</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>资源</h5>
|
||||
<ul>
|
||||
<li><a href="/docs/">使用手册</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>客户支持</h5>
|
||||
<ul>
|
||||
<li><a href="/#faq">常见问题</a></li>
|
||||
<li><a href="mailto:yammy2023@163.com">联系我们</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>公司</h5>
|
||||
<ul>
|
||||
<li><a href="/register/">注册门店</a></li>
|
||||
<li><a href="/terms/">服务条款</a></li>
|
||||
<li><a href="/privacy/">隐私政策</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<div>© 2026 岩美科技 · 保留所有权利</div>
|
||||
<div>沪 ICP 备 2026000000 号 · 沪公网安备 31010000000000 号</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<script src="/assets/nav.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Vendored
+720
@@ -0,0 +1,720 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light" />
|
||||
<title>审核驱动业务流 · 岩美酒库管理系统</title>
|
||||
<meta name="description" content="岩美酒库管理系统审核流功能:入库/出库/盘点单据全程审核,状态机驱动,多角色权限控制。" />
|
||||
<link rel="stylesheet" href="/assets/color.css" />
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
<link rel="stylesheet" href="/assets/features-approval.css" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="topnav">
|
||||
<div class="topnav-inner">
|
||||
<a href="/" class="topnav-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
</a>
|
||||
<div class="topnav-links">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
</div>
|
||||
<div class="topnav-cta" id="nav-cta">
|
||||
<a href="/register/" class="btn btn-primary btn-sm">注册门店</a>
|
||||
</div>
|
||||
<button class="nav-hamburger" id="nav-hamburger" aria-label="菜单" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-mobile-menu" id="nav-mobile-menu">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存管理</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
<div class="nav-mobile-cta" id="nav-mobile-cta">
|
||||
<a href="/register/" class="btn btn-primary">注册门店</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<!-- ============== HERO ============== -->
|
||||
<section class="feat-hero">
|
||||
<div class="container feat-hero-inner">
|
||||
<div>
|
||||
<div class="feat-breadcrumb">
|
||||
<a href="/">首页</a>
|
||||
<i data-lucide="chevron-right" class="icon"></i>
|
||||
<a href="/#modules">产品功能</a>
|
||||
<i data-lucide="chevron-right" class="icon"></i>
|
||||
<span style="color: var(--gray-900); font-weight: 500;">审核驱动业务流</span>
|
||||
</div>
|
||||
<p class="eyebrow">功能详情 · 审核驱动业务流</p>
|
||||
<h1>每一笔库存变动,<br/>都经过一次<em>签字</em>。</h1>
|
||||
<p class="lead">
|
||||
入库、出库、盘点 —— 统一状态机,统一审批界面。审批不仅是一个按钮,是一笔事务:库存动了,账款也跟着动,全程留痕。
|
||||
</p>
|
||||
<div class="actions">
|
||||
<a href="#" class="btn btn-primary btn-lg">免费试用 30 天</a>
|
||||
<a href="/docs/" class="btn btn-secondary btn-lg">
|
||||
<i data-lucide="book-open" class="icon"></i>查看文档
|
||||
</a>
|
||||
</div>
|
||||
<div class="quick-stats">
|
||||
<div>
|
||||
<div class="quick-stat-label">单据类型</div>
|
||||
<div class="quick-stat-val">3 种</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="quick-stat-label">操作留痕</div>
|
||||
<div class="quick-stat-val">全程</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="quick-stat-label">审批联动</div>
|
||||
<div class="quick-stat-val">库存 + 账款</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hero-doc-stack">
|
||||
<div class="hero-doc hero-doc-back-2"></div>
|
||||
<div class="hero-doc hero-doc-back-1"></div>
|
||||
|
||||
<div class="hero-doc hero-doc-main">
|
||||
<div class="hero-doc-head">
|
||||
<div>
|
||||
<div class="hero-doc-id">RK20260523000007</div>
|
||||
<div class="hero-doc-meta">入库审核 · A 仓 · 茅台经销华东</div>
|
||||
</div>
|
||||
<div class="hero-doc-status">
|
||||
<i data-lucide="check" class="icon"></i>已审批
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hero-doc-row">
|
||||
<div>茅台飞天 53° · 500ml×6</div><div>4</div><div>¥8,000</div>
|
||||
</div>
|
||||
<div class="hero-doc-row">
|
||||
<div>五粮液第八代 52°</div><div>20</div><div>¥18,400</div>
|
||||
</div>
|
||||
<div class="hero-doc-row">
|
||||
<div>剑南春水晶剑 52°</div><div>2</div><div>¥4,200</div>
|
||||
</div>
|
||||
<div class="hero-doc-row">
|
||||
<div>拉菲传奇波尔多</div><div>10</div><div>¥17,800</div>
|
||||
</div>
|
||||
|
||||
<div class="hero-doc-foot">
|
||||
<div>合计</div><div>36</div><div>¥48,400</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 20px; padding-top: 14px; border-top: 1px dashed var(--border-default); font-size: 11px; color: var(--fg-muted); font-family: var(--font-mono); letter-spacing: 0.02em;">
|
||||
审批人 李建国 · 2026-05-23 14:32:08
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Stamp -->
|
||||
<div class="hero-stamp">
|
||||
<svg class="ring" viewBox="0 0 130 130">
|
||||
<defs>
|
||||
<path id="stampRing" d="M 65, 65 m -50, 0 a 50,50 0 1,1 100,0 a 50,50 0 1,1 -100,0" />
|
||||
</defs>
|
||||
<text fontSize="8" fill="#8B2331" fontFamily="'Noto Sans SC', sans-serif" fontWeight="600" letterSpacing="3">
|
||||
<textPath href="#stampRing" startOffset="2%">岩美 · 审批通过 · APPROVED · 岩美 ·</textPath>
|
||||
</text>
|
||||
</svg>
|
||||
<div class="hero-stamp-core">
|
||||
<div class="big">通过</div>
|
||||
<div class="sub">APPROVED</div>
|
||||
<div class="date">2026.05.23</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 1: State machine ============== -->
|
||||
<section class="feat-block">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag"><i data-lucide="git-branch" class="icon"></i>统一状态机</div>
|
||||
<h2>四种状态,<br/>覆盖所有业务单据</h2>
|
||||
<p class="lead">
|
||||
入库、出库、盘点 —— 全部走同一套状态:草稿 → 待审核 → 已审批 / 已拒绝。员工学一次,全员通用。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="lock" class="icon"></i>
|
||||
<div>
|
||||
<strong>提交后即锁定</strong>
|
||||
从「草稿」进入「待审核」即不可编辑,避免审批人看到的与录入人提交的不一致。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="zap" class="icon"></i>
|
||||
<div>
|
||||
<strong>状态机由后端事务驱动</strong>
|
||||
状态变更与库存 / 账款变更在同一事务内,要么都成功,要么都回滚。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="layers" class="icon"></i>
|
||||
<div>
|
||||
<strong>一套界面,三种单据复用</strong>
|
||||
前端审批界面统一,节省培训成本,避免分模块状态差异。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="state-machine">
|
||||
<div class="state-machine-tabs">
|
||||
<div class="state-tab active">入库单</div>
|
||||
<div class="state-tab">出库单</div>
|
||||
<div class="state-tab">盘点单</div>
|
||||
</div>
|
||||
<div class="state-machine-meta">stock_in_orders.status</div>
|
||||
|
||||
<div class="sm-diagram">
|
||||
<div class="sm-node draft">
|
||||
<div class="sm-bubble">
|
||||
<i data-lucide="pencil" class="icon"></i>草稿
|
||||
</div>
|
||||
<small>draft</small>
|
||||
</div>
|
||||
|
||||
<div class="sm-arrow">
|
||||
<span class="sm-arrow-label">提交</span>
|
||||
<svg viewBox="0 0 36 14"><line x1="0" y1="7" x2="30" y2="7" stroke="currentColor" strokeWidth="1.5"/><polyline points="26 3 32 7 26 11" fill="none" stroke="currentColor" strokeWidth="1.5"/></svg>
|
||||
</div>
|
||||
|
||||
<div class="sm-node pending">
|
||||
<div class="sm-bubble">
|
||||
<i data-lucide="clock" class="icon"></i>待审核
|
||||
</div>
|
||||
<small>pending</small>
|
||||
</div>
|
||||
|
||||
<div class="sm-arrow">
|
||||
<span class="sm-arrow-label">审批</span>
|
||||
<svg viewBox="0 0 36 14"><line x1="0" y1="7" x2="30" y2="7" stroke="currentColor" strokeWidth="1.5"/><polyline points="26 3 32 7 26 11" fill="none" stroke="currentColor" strokeWidth="1.5"/></svg>
|
||||
</div>
|
||||
|
||||
<div class="sm-fork">
|
||||
<div class="sm-node approved">
|
||||
<div class="sm-bubble">
|
||||
<i data-lucide="check" class="icon"></i>已审批
|
||||
</div>
|
||||
<small>approved</small>
|
||||
</div>
|
||||
<div class="sm-node rejected">
|
||||
<div class="sm-bubble">
|
||||
<i data-lucide="x" class="icon"></i>已拒绝
|
||||
</div>
|
||||
<small>rejected</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="sm-applies">
|
||||
<span>同一状态机适用于:</span>
|
||||
<span class="sm-applies-pill"><i data-lucide="package-plus" class="icon"></i>入库单</span>
|
||||
<span class="sm-applies-pill"><i data-lucide="package-minus" class="icon"></i>出库单</span>
|
||||
<span class="sm-applies-pill"><i data-lucide="clipboard-check" class="icon"></i>盘点单</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 2: Auto-linking ============== -->
|
||||
<section class="feat-block reverse">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag success"><i data-lucide="zap" class="icon"></i>自动联动</div>
|
||||
<h2>按一次"通过",<br/>库存与账款都跟着动</h2>
|
||||
<p class="lead">
|
||||
审批通过不是一个"标记",而是一组真实的数据库写入。库存增减、应付应收、批次创建 —— 在同一事务内完成。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="database" class="icon"></i>
|
||||
<div>
|
||||
<strong>事务级一致性</strong>
|
||||
底层用 <code style="font-family: var(--font-mono); font-size: 0.9em; background: var(--gray-100); padding: 1px 5px; border-radius: 3px;">FOR UPDATE</code> 锁住库存行,杜绝并发超卖。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="link-2" class="icon"></i>
|
||||
<div>
|
||||
<strong>账款自动落地</strong>
|
||||
入库审批 → 自动生成应付;出库审批 → 自动生成应收。挂在对应往来单位名下,可逐月对账。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="git-merge" class="icon"></i>
|
||||
<div>
|
||||
<strong>批次自动建立</strong>
|
||||
每笔入库审批通过即创建一个新批次,后续出库按 FIFO 自动扣减。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="linking-visual">
|
||||
<div class="linking-doc">
|
||||
<div class="linking-doc-head">
|
||||
<div>
|
||||
<div class="linking-doc-id">RK20260523000007</div>
|
||||
<div style="font-size: 11px; color: var(--fg-muted); margin-top: 2px; font-family: var(--font-mono);">36 瓶 · ¥48,400 · 待审核</div>
|
||||
</div>
|
||||
<button class="linking-doc-action">
|
||||
<i data-lucide="check" class="icon"></i>审批通过
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="linking-arrow">
|
||||
<span class="linking-arrow-label">
|
||||
<i data-lucide="zap" class="icon"></i>事务内同步执行
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="linking-effects">
|
||||
<div class="linking-effect">
|
||||
<div class="linking-effect-label">
|
||||
<i data-lucide="package" class="icon"></i>库存
|
||||
</div>
|
||||
<div class="linking-effect-num">+36 瓶</div>
|
||||
<div class="linking-effect-from">A 仓 · 2,780 <span class="delta">→ 2,816</span></div>
|
||||
</div>
|
||||
<div class="linking-effect">
|
||||
<div class="linking-effect-label">
|
||||
<i data-lucide="wallet" class="icon"></i>应付账款
|
||||
</div>
|
||||
<div class="linking-effect-num">+¥48,400</div>
|
||||
<div class="linking-effect-from">茅台经销华东 · 新增 1 笔</div>
|
||||
</div>
|
||||
<div class="linking-effect">
|
||||
<div class="linking-effect-label">
|
||||
<i data-lucide="layers" class="icon"></i>批次
|
||||
</div>
|
||||
<div class="linking-effect-num">+4 个</div>
|
||||
<div class="linking-effect-from">L-2026-05-001 ~ L-2026-05-004</div>
|
||||
</div>
|
||||
<div class="linking-effect">
|
||||
<div class="linking-effect-label">
|
||||
<i data-lucide="scroll-text" class="icon"></i>库存流水
|
||||
</div>
|
||||
<div class="linking-effect-num">+4 条</div>
|
||||
<div class="linking-effect-from">逐 SKU 写入 inventory_logs</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 3: Stock validation ============== -->
|
||||
<section class="feat-block">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag danger"><i data-lucide="shield-alert" class="icon"></i>出库库存校验</div>
|
||||
<h2>库存不足,<br/>审批直接被拦下</h2>
|
||||
<p class="lead">
|
||||
出库单审批前,系统按 SKU 实时核对库存。任一行不足,整单审批失败、库存与账款均不变。永远不会超卖。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="search-check" class="icon"></i>
|
||||
<div>
|
||||
<strong>逐行校验</strong>
|
||||
按出库单每一行的 商品 × 仓库 × 数量 校验,失败明确指出是哪一行。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="undo-2" class="icon"></i>
|
||||
<div>
|
||||
<strong>整单回滚</strong>
|
||||
校验失败时单据状态回到「待审核」,无需重新录入。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="validation-card">
|
||||
<div class="validation-head">
|
||||
<div class="validation-title">出库单 CK20260523000012 · 审批前校验</div>
|
||||
<div class="validation-meta">客户 北辰大酒店 · B 仓</div>
|
||||
</div>
|
||||
<div class="validation-body">
|
||||
<div class="validation-row head">
|
||||
<div>商品</div><div>需出</div><div>库存</div><div>状态</div>
|
||||
</div>
|
||||
<div class="validation-row">
|
||||
<div>茅台飞天 53° · 500ml×6</div>
|
||||
<div class="qty-req">24</div>
|
||||
<div class="qty-stock">148</div>
|
||||
<div style="text-align: right;"><span style="background: var(--success-50); color: var(--success-700); font-size: 11px; padding: 2px 8px; border-radius: var(--radius-pill); font-weight: 500;">充足</span></div>
|
||||
</div>
|
||||
<div class="validation-row invalid">
|
||||
<div>剑南春水晶剑 52°</div>
|
||||
<div class="qty-req">20</div>
|
||||
<div class="qty-stock">12</div>
|
||||
<div style="text-align: right;"><span class="qty-shortage">短缺 8</span></div>
|
||||
</div>
|
||||
<div class="validation-row">
|
||||
<div>拉菲传奇波尔多 · 750ml</div>
|
||||
<div class="qty-req">6</div>
|
||||
<div class="qty-stock">64</div>
|
||||
<div style="text-align: right;"><span style="background: var(--success-50); color: var(--success-700); font-size: 11px; padding: 2px 8px; border-radius: var(--radius-pill); font-weight: 500;">充足</span></div>
|
||||
</div>
|
||||
|
||||
<div class="error-toast">
|
||||
<i data-lucide="x-circle" class="icon"></i>
|
||||
<div>
|
||||
<div class="error-toast-title">审批已拒绝 · 库存不足</div>
|
||||
<div class="error-toast-body">
|
||||
第 2 行「剑南春水晶剑」B 仓库存仅 12 瓶,本单需 20 瓶,短缺 8 瓶。请补足库存后重新提交,或修改出库数量。
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="api-response">
|
||||
<span style="color: #888;">// HTTP/1.1 422 Unprocessable Entity</span><br/>
|
||||
{<br/>
|
||||
<span class="key">"ok"</span>: <span class="bool">false</span>,<br/>
|
||||
<span class="key">"error"</span>: <span class="str">"insufficient_inventory"</span>,<br/>
|
||||
<span class="key">"items"</span>: [<br/>
|
||||
{ <span class="key">"sku"</span>: <span class="str">"XJ-330-024"</span>, <span class="key">"required"</span>: <span class="num">20</span>, <span class="key">"available"</span>: <span class="num">12</span> }<br/>
|
||||
]<br/>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 4: Audit log ============== -->
|
||||
<section class="feat-block reverse">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag"><i data-lucide="file-clock" class="icon"></i>审计留痕</div>
|
||||
<h2>每一步操作,<br/>都签着人名、贴着时间</h2>
|
||||
<p class="lead">
|
||||
从录入到结清,每一次状态变更都记录经办人、时间、决策、备注。是单据的完整生命周期,也是合规审计的完整证据。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="user-check" class="icon"></i>
|
||||
<div>
|
||||
<strong>谁动的、什么时候动的</strong>
|
||||
14 个字段:actor / role / device / IP / 时间 / 备注 / 旧值 / 新值 / 原因 …
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="hard-drive" class="icon"></i>
|
||||
<div>
|
||||
<strong>永久保留</strong>
|
||||
审计日志不会被任何角色(含超级管理员)删除或修改。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="file-down" class="icon"></i>
|
||||
<div>
|
||||
<strong>可导出</strong>
|
||||
按单据 / 时间段 / 经办人 任意组合筛选导出,应对税务、内审、合规检查。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="audit-timeline">
|
||||
<div class="audit-head">
|
||||
<div class="audit-doc-id">RK20260523000007</div>
|
||||
<div class="audit-doc-status">已审批</div>
|
||||
</div>
|
||||
<div class="audit-events">
|
||||
<div class="audit-event create">
|
||||
<div class="audit-event-marker"><i data-lucide="plus" class="icon"></i></div>
|
||||
<div class="audit-event-body">
|
||||
<div class="audit-event-action">创建草稿</div>
|
||||
<div class="audit-event-meta">
|
||||
<span><strong>王芳</strong> · 操作员</span>
|
||||
<span class="time">2026-05-23 11:24:08</span>
|
||||
<span>192.168.10.42 · 入库 PC</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="audit-event create">
|
||||
<div class="audit-event-marker"><i data-lucide="pencil" class="icon"></i></div>
|
||||
<div class="audit-event-body">
|
||||
<div class="audit-event-action">编辑明细</div>
|
||||
<div class="audit-event-meta">
|
||||
<span><strong>王芳</strong></span>
|
||||
<span class="time">2026-05-23 13:02:51</span>
|
||||
<span>修改 4 项 · 新增 1 项</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="audit-event submit">
|
||||
<div class="audit-event-marker"><i data-lucide="upload" class="icon"></i></div>
|
||||
<div class="audit-event-body">
|
||||
<div class="audit-event-action">提交审核</div>
|
||||
<div class="audit-event-meta">
|
||||
<span><strong>王芳</strong></span>
|
||||
<span class="time">2026-05-23 13:15:22</span>
|
||||
<span>状态 · 草稿 → 待审核</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="audit-event approve">
|
||||
<div class="audit-event-marker"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="audit-event-body">
|
||||
<div class="audit-event-action">审批通过</div>
|
||||
<div class="audit-event-meta">
|
||||
<span><strong>李建国</strong> · 管理员</span>
|
||||
<span class="time">2026-05-23 14:32:08</span>
|
||||
<span>库存 +36 · 应付 +¥48,400</span>
|
||||
</div>
|
||||
<div class="audit-event-comment">已核对数量与单价,可入库。</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="audit-event settle">
|
||||
<div class="audit-event-marker"><i data-lucide="wallet" class="icon"></i></div>
|
||||
<div class="audit-event-body">
|
||||
<div class="audit-event-action">应付结清</div>
|
||||
<div class="audit-event-meta">
|
||||
<span><strong>张磊</strong> · 财务</span>
|
||||
<span class="time">2026-05-26 10:08:33</span>
|
||||
<span>AP20260523000012 · 全额结清</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 6: Permission matrix ============== -->
|
||||
<section class="feat-block reverse">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag"><i data-lucide="users" class="icon"></i>权限矩阵</div>
|
||||
<h2>四级角色,<br/>各干各的事</h2>
|
||||
<p class="lead">
|
||||
系统内置四个角色,按岗位职责拆分审批权。最小权限原则 —— 不该看的看不到,不该签的签不了。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="user" class="icon"></i>
|
||||
<div>
|
||||
<strong>角色绑定门店</strong>
|
||||
一个用户只属于一个门店(<code style="font-family: var(--font-mono); font-size: 0.9em; background: var(--gray-100); padding: 1px 5px; border-radius: 3px;">shop_id</code>),跨店访问数据天然隔离。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="shield" class="icon"></i>
|
||||
<div>
|
||||
<strong>角色升降随时生效</strong>
|
||||
管理员调整角色后,下一次请求即按新权限校验,无需重新登录。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="eye" class="icon"></i>
|
||||
<div>
|
||||
<strong>只读角色可看不可改</strong>
|
||||
适合财务、税务、内审岗位 —— 看见全部数据,但不能产生任何变更。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="perm-matrix">
|
||||
<div class="perm-row head">
|
||||
<div>角色</div>
|
||||
<div>查看</div>
|
||||
<div>录入</div>
|
||||
<div>审批</div>
|
||||
<div>设置</div>
|
||||
</div>
|
||||
<div class="perm-row">
|
||||
<div class="perm-role">超级管理员<small>superadmin · 系统最高</small></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
</div>
|
||||
<div class="perm-row">
|
||||
<div class="perm-role">管理员<small>admin · 门店负责人</small></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
</div>
|
||||
<div class="perm-row">
|
||||
<div class="perm-role">操作员<small>operator · 日常录入</small></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell no"><i data-lucide="minus" class="icon"></i></div>
|
||||
</div>
|
||||
<div class="perm-row">
|
||||
<div class="perm-role">只读<small>readonly · 财务 / 内审</small></div>
|
||||
<div class="perm-cell yes"><i data-lucide="check" class="icon"></i></div>
|
||||
<div class="perm-cell no"><i data-lucide="minus" class="icon"></i></div>
|
||||
<div class="perm-cell no"><i data-lucide="minus" class="icon"></i></div>
|
||||
<div class="perm-cell no"><i data-lucide="minus" class="icon"></i></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top: 14px; font-size: 12px; color: var(--fg-muted); display: flex; gap: 14px; padding: 0 4px;">
|
||||
<span style="display: flex; align-items: center; gap: 6px;">
|
||||
<i data-lucide="check" style="width: 12px; height: 12px; color: var(--success-500);"></i>允许
|
||||
</span>
|
||||
<span style="display: flex; align-items: center; gap: 6px;">
|
||||
<i data-lucide="minus" style="width: 12px; height: 12px; color: var(--gray-300);"></i>禁止
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== Use cases ============== -->
|
||||
<section class="section" style="background: var(--bg-surface); border-bottom: 1px solid var(--border-subtle);">
|
||||
<div class="container">
|
||||
<p class="eyebrow">典型场景</p>
|
||||
<h2 style="font-size: 36px; font-weight: 600; color: var(--brand-900); margin: 0 0 12px; letter-spacing: var(--tracking-cn-display);">
|
||||
审核驱动业务流,落到实际操作里是什么样
|
||||
</h2>
|
||||
<p style="font-size: var(--text-lg); color: var(--fg-muted); max-width: 640px; margin: 0;">
|
||||
三个常见门店场景,看审核流如何把日常工作中的失误拦在事前。
|
||||
</p>
|
||||
|
||||
<div class="usecases-grid">
|
||||
<div class="usecase-card">
|
||||
<i data-lucide="package-x" class="icon"></i>
|
||||
<h4>避免超卖发不了货</h4>
|
||||
<p>大客户来订 24 瓶飞天,操作员录了出库单。审批时系统提示某 SKU 库存只剩 12 瓶 —— 提前发现,先补货后出库。</p>
|
||||
<div class="quote">"以前是发了货才发现没库存,半夜紧急调货。现在审批就拦下,省事多了。"</div>
|
||||
</div>
|
||||
<div class="usecase-card">
|
||||
<i data-lucide="file-search" class="icon"></i>
|
||||
<h4>财务来对账,3 秒定位</h4>
|
||||
<p>财务问"这批拉菲是哪个供应商进的,谁审的",打开单据点击「审计链」,从草稿、提交、审批到结清的每一步都列得清清楚楚。</p>
|
||||
<div class="quote">"以前要翻三个 Excel 表对照,现在一张图就讲完了。"</div>
|
||||
</div>
|
||||
<div class="usecase-card">
|
||||
<i data-lucide="rotate-ccw" class="icon"></i>
|
||||
<h4>录错了不慌</h4>
|
||||
<p>审批通过的单据不可撤销,但可补录一张方向相反的修正单提交审核,两笔记录都完整保留在审计链中,库存与账款同步修正。</p>
|
||||
<div class="quote">"原始数据保留,修正也留痕,内审完全不会有问题。"</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== Final CTA ============== -->
|
||||
<section>
|
||||
<div class="container" style="padding-top: 80px;">
|
||||
<div class="cta-strip">
|
||||
<div>
|
||||
<h2>每一笔库存变动都有人负责,<br/>就从一次审批开始。</h2>
|
||||
<p>30 天免费试用,无需绑定支付方式。所有审批与审计数据可随时导出。</p>
|
||||
</div>
|
||||
<div class="cta-strip-actions">
|
||||
<a href="/register/" class="btn btn-primary btn-lg">
|
||||
免费开通试用<i data-lucide="arrow-right" class="icon"></i>
|
||||
</a>
|
||||
<a href="/features/inventory.html" class="btn btn-secondary btn-lg">
|
||||
← 上一个功能:库存管理
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<div class="footer-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
<p>为酒行与酒店设计的库存、审核、财务一体化管理平台。</p>
|
||||
<div class="footer-contact">
|
||||
<div><a href="mailto:yammy2023@163.com">yammy2023@163.com</a></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>产品</h5>
|
||||
<ul>
|
||||
<li><a href="/#modules">核心模块</a></li>
|
||||
<li><a href="/#platforms">多端覆盖</a></li>
|
||||
<li><a href="/#reports">数据洞察</a></li>
|
||||
<li><a href="/#pricing">价格方案</a></li>
|
||||
<li><a href="/download/">版本更新</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>资源</h5>
|
||||
<ul>
|
||||
<li><a href="/docs/">使用手册</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>客户支持</h5>
|
||||
<ul>
|
||||
<li><a href="/#faq">常见问题</a></li>
|
||||
<li><a href="mailto:yammy2023@163.com">联系我们</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>公司</h5>
|
||||
<ul>
|
||||
<li><a href="/register/">注册门店</a></li>
|
||||
<li><a href="/terms/">服务条款</a></li>
|
||||
<li><a href="/privacy/">隐私政策</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<div>© 2026 岩美科技 · 保留所有权利</div>
|
||||
<div>沪 ICP 备 2026000000 号 · 沪公网安备 31010000000000 号</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<script src="/assets/nav.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
+1743
File diff suppressed because it is too large
Load Diff
Vendored
+757
@@ -0,0 +1,757 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light" />
|
||||
<title>库存管理 · 岩美酒库管理系统</title>
|
||||
<meta name="description" content="岩美酒库管理系统库存管理功能:实时库存查询、批次追踪、全仓盘点、库存流水审计。" />
|
||||
<link rel="stylesheet" href="/assets/color.css" />
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
<link rel="stylesheet" href="/assets/features-inventory.css" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="topnav">
|
||||
<div class="topnav-inner">
|
||||
<a href="/" class="topnav-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
</a>
|
||||
<div class="topnav-links">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
</div>
|
||||
<div class="topnav-cta" id="nav-cta">
|
||||
<a href="/register/" class="btn btn-primary btn-sm">注册门店</a>
|
||||
</div>
|
||||
<button class="nav-hamburger" id="nav-hamburger" aria-label="菜单" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-mobile-menu" id="nav-mobile-menu">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存管理</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
<div class="nav-mobile-cta" id="nav-mobile-cta">
|
||||
<a href="/register/" class="btn btn-primary">注册门店</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<!-- ============== HERO ============== -->
|
||||
<section class="feat-hero">
|
||||
<div class="container feat-hero-inner">
|
||||
<div>
|
||||
<div class="feat-breadcrumb">
|
||||
<a href="/">首页</a>
|
||||
<i data-lucide="chevron-right" class="icon"></i>
|
||||
<a href="/#modules">产品功能</a>
|
||||
<i data-lucide="chevron-right" class="icon"></i>
|
||||
<span style="color: var(--gray-900); font-weight: 500;">库存管理</span>
|
||||
</div>
|
||||
<p class="eyebrow">功能详情 · 库存管理</p>
|
||||
<h1>实时库存,<br/>跨多仓追溯每一瓶酒。</h1>
|
||||
<p class="lead">
|
||||
从入库到售出,每一次库存变动都有记录、可追溯、可回放。多仓库统一管理、批次级追踪、账实差异自动核算 — 不止是库存表。
|
||||
</p>
|
||||
<div class="actions">
|
||||
<a href="#" class="btn btn-primary btn-lg">免费试用 30 天</a>
|
||||
<a href="/docs/" class="btn btn-secondary btn-lg">
|
||||
<i data-lucide="book-open" class="icon"></i>查看文档
|
||||
</a>
|
||||
</div>
|
||||
<div class="quick-stats">
|
||||
<div>
|
||||
<div class="quick-stat-label">SKU 上限</div>
|
||||
<div class="quick-stat-val">无限</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="quick-stat-label">仓库支持</div>
|
||||
<div class="quick-stat-val">多仓库</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="quick-stat-label">流水保留</div>
|
||||
<div class="quick-stat-val">永久</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="composite">
|
||||
<!-- Main inventory card -->
|
||||
<div class="composite-card composite-main">
|
||||
<div class="mc-head">
|
||||
<div class="mc-title">库存列表 · A 仓</div>
|
||||
<div class="mc-tabs">
|
||||
<div class="mc-tab active">列表</div>
|
||||
<div class="mc-tab">流水</div>
|
||||
<div class="mc-tab">盘点</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mc-stats">
|
||||
<div>
|
||||
<div class="mc-stat-label">库存总量</div>
|
||||
<div class="mc-stat-val">2,816<span class="delta">↑ 4.2%</span></div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="mc-stat-label">库存金额</div>
|
||||
<div class="mc-stat-val">¥486K<span class="delta">↑ 2.8%</span></div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="mc-stat-label">预警 SKU</div>
|
||||
<div class="mc-stat-val" style="color: var(--warning-500);">7</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mc-table">
|
||||
<div class="mc-thead">
|
||||
<div>SKU</div><div>商品</div><div>仓库</div><div>库存</div><div>批次</div><div>状态</div>
|
||||
</div>
|
||||
<div class="mc-trow">
|
||||
<div class="sku">WT-501-006</div>
|
||||
<div>茅台飞天 53°</div>
|
||||
<div>A 仓</div>
|
||||
<div>148</div>
|
||||
<div>L-2026-04</div>
|
||||
<div><span class="mc-pill ok">充足</span></div>
|
||||
</div>
|
||||
<div class="mc-trow">
|
||||
<div class="sku">XJ-468-001</div>
|
||||
<div>五粮液第八代</div>
|
||||
<div>A 仓</div>
|
||||
<div>92</div>
|
||||
<div>L-2026-03</div>
|
||||
<div><span class="mc-pill ok">充足</span></div>
|
||||
</div>
|
||||
<div class="mc-trow">
|
||||
<div class="sku">XJ-330-024</div>
|
||||
<div>剑南春水晶剑</div>
|
||||
<div>B 仓</div>
|
||||
<div style="color: var(--warning-700); font-weight: 500;">12</div>
|
||||
<div>L-2026-02</div>
|
||||
<div><span class="mc-pill warn">偏低</span></div>
|
||||
</div>
|
||||
<div class="mc-trow">
|
||||
<div class="sku">PJ-750-012</div>
|
||||
<div>拉菲传奇波尔多</div>
|
||||
<div>A 仓</div>
|
||||
<div>64</div>
|
||||
<div>L-2026-05</div>
|
||||
<div><span class="mc-pill ok">充足</span></div>
|
||||
</div>
|
||||
<div class="mc-trow">
|
||||
<div class="sku">PJ-700-008</div>
|
||||
<div>轩尼诗 VSOP</div>
|
||||
<div>B 仓</div>
|
||||
<div style="color: var(--danger-700); font-weight: 500;">3</div>
|
||||
<div>L-2026-01</div>
|
||||
<div><span class="mc-pill low">告急</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Floating alert card -->
|
||||
<div class="composite-card composite-secondary">
|
||||
<div class="alert-card-title" style="display: flex; align-items: center; gap: 6px;">
|
||||
<i data-lucide="alert-triangle" class="icon" style="width: 12px; height: 12px; color: var(--warning-500);"></i>
|
||||
低库存商品
|
||||
</div>
|
||||
<div class="alert-row danger">
|
||||
<div class="name">轩尼诗 VSOP</div>
|
||||
<div class="qty">仅 3 瓶</div>
|
||||
</div>
|
||||
<div class="alert-row">
|
||||
<div class="name">剑南春水晶剑</div>
|
||||
<div class="qty">12 瓶</div>
|
||||
</div>
|
||||
<div class="alert-row">
|
||||
<div class="name">人头马 X.O</div>
|
||||
<div class="qty">8 瓶</div>
|
||||
</div>
|
||||
<div style="text-align: right; margin-top: 8px; font-size: 11px;">
|
||||
<a href="#" style="color: var(--brand-500);">查看全部 7 条 →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Floating batch card -->
|
||||
<div class="composite-card composite-tertiary">
|
||||
<div class="batch-title">
|
||||
<i data-lucide="layers" class="icon"></i>
|
||||
批次追踪 · L-2026-05
|
||||
</div>
|
||||
<div class="batch-row">
|
||||
<div class="lot">入库 04-28</div>
|
||||
<div>初始 50 瓶</div>
|
||||
<div class="meta">A 仓</div>
|
||||
<div>+50</div>
|
||||
</div>
|
||||
<div class="batch-row">
|
||||
<div class="lot">出库 05-12</div>
|
||||
<div>客户 · 春和宴</div>
|
||||
<div class="meta">8 瓶</div>
|
||||
<div>-8</div>
|
||||
</div>
|
||||
<div class="batch-row">
|
||||
<div class="lot">出库 05-19</div>
|
||||
<div>客户 · 北辰大酒店</div>
|
||||
<div class="meta">12 瓶</div>
|
||||
<div>-12</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 1: Real-time inventory ============== -->
|
||||
<section class="feat-block">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag"><i data-lucide="layout-list" class="icon"></i>实时库存查询</div>
|
||||
<h2>不止是库存表,是一个可筛选的工作面板</h2>
|
||||
<p class="lead">
|
||||
库存数据自动跟随入库、出库、盘点变动 — 每一次写入都是一次事务,不存在「待同步」状态。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="filter" class="icon"></i>
|
||||
<div>
|
||||
<strong>多维筛选与列控制</strong>
|
||||
按仓库、商品系列、库存状态、批次任意组合筛选,列可隐藏或重排。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="search" class="icon"></i>
|
||||
<div>
|
||||
<strong>模糊搜索与拼音匹配</strong>
|
||||
支持商品名、SKU、拼音首字母混合搜索,与你输入"飞天"同等结果。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="pencil-line" class="icon"></i>
|
||||
<div>
|
||||
<strong>行内编辑备注</strong>
|
||||
点击「备注」列即可弹出编辑框,不必进入详情页改字段。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="file-spreadsheet" class="icon"></i>
|
||||
<div>
|
||||
<strong>一键导出 Excel</strong>
|
||||
筛选后的视图与数据一同导出,可直接发给会计、税务。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="visual-card">
|
||||
<div class="visual-card-head">
|
||||
<div class="visual-card-title">库存列表 · 全部仓库</div>
|
||||
<div class="visual-card-meta">共 2,816 瓶 · ¥486,290</div>
|
||||
</div>
|
||||
<div class="inv-table">
|
||||
<div class="inv-table-row head">
|
||||
<div>SKU</div><div>商品名称 / 规格</div><div>仓库</div><div>库存</div><div>金额</div><div>状态</div>
|
||||
</div>
|
||||
<div class="inv-table-row">
|
||||
<div class="sku">WT-501-006</div>
|
||||
<div class="name">茅台飞天 53°<small>500ml×6 · L-2026-04</small></div>
|
||||
<div>A 仓</div>
|
||||
<div>148</div>
|
||||
<div>¥298,400</div>
|
||||
<div><span class="mc-pill ok">充足</span></div>
|
||||
</div>
|
||||
<div class="inv-table-row">
|
||||
<div class="sku">XJ-468-001</div>
|
||||
<div class="name">五粮液第八代 52°<small>500ml · L-2026-03</small></div>
|
||||
<div>A 仓</div>
|
||||
<div>92</div>
|
||||
<div>¥92,920</div>
|
||||
<div><span class="mc-pill ok">充足</span></div>
|
||||
</div>
|
||||
<div class="inv-table-row">
|
||||
<div class="sku">XJ-330-024</div>
|
||||
<div class="name">剑南春水晶剑 52°<small>500ml×6 · L-2026-02</small></div>
|
||||
<div>B 仓</div>
|
||||
<div style="color: var(--warning-700); font-weight: 500;">12</div>
|
||||
<div>¥4,560</div>
|
||||
<div><span class="mc-pill warn">偏低</span></div>
|
||||
</div>
|
||||
<div class="inv-table-row">
|
||||
<div class="sku">PJ-750-012</div>
|
||||
<div class="name">拉菲传奇波尔多<small>750ml · L-2026-05</small></div>
|
||||
<div>A 仓</div>
|
||||
<div>64</div>
|
||||
<div>¥18,560</div>
|
||||
<div><span class="mc-pill ok">充足</span></div>
|
||||
</div>
|
||||
<div class="inv-table-row">
|
||||
<div class="sku">PJ-700-008</div>
|
||||
<div class="name">轩尼诗 VSOP<small>700ml · L-2026-01</small></div>
|
||||
<div>B 仓</div>
|
||||
<div style="color: var(--danger-700); font-weight: 500;">3</div>
|
||||
<div>¥1,770</div>
|
||||
<div><span class="mc-pill low">告急</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 2: Batch tracking ============== -->
|
||||
<section class="feat-block reverse">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag"><i data-lucide="layers" class="icon"></i>批次追踪</div>
|
||||
<h2>每一批货的命运,<br/>都可以回放给你看</h2>
|
||||
<p class="lead">
|
||||
每张审批通过的入库单都会自动形成一个独立批次,可追踪其后续被谁出库、剩余多少、还在哪个仓库。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="git-branch" class="icon"></i>
|
||||
<div>
|
||||
<strong>批次自动生成</strong>
|
||||
入库审批通过即建立批次,无需手动维护。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="map-pin" class="icon"></i>
|
||||
<div>
|
||||
<strong>逐瓶溯源</strong>
|
||||
出库时按"先进先出"自动从最早批次扣减,留下完整的批次→客户对应关系。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="qr-code" class="icon"></i>
|
||||
<div>
|
||||
<strong>标签二维码</strong>
|
||||
每个批次都可打印含二维码的标签,扫码即查批次详情。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="batch-journey">
|
||||
<div class="batch-journey-head">
|
||||
<div class="bj-meta-main">
|
||||
<div class="bj-lot">L-2026-05</div>
|
||||
<div class="bj-product">茅台飞天 53°<small>500ml×6 · A 仓</small></div>
|
||||
</div>
|
||||
<div class="bj-totals">
|
||||
<div class="bj-total-row">初始入库 <strong>50 瓶</strong></div>
|
||||
<div class="bj-total-row">累计出库 <strong style="color: var(--accent-500);">20 瓶</strong></div>
|
||||
<div class="bj-total-row">剩余 <strong style="color: var(--success-700);">30 瓶</strong></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bj-progress">
|
||||
<div class="bj-progress-bar" style="width: 60%;"></div>
|
||||
</div>
|
||||
<div class="bj-progress-labels">
|
||||
<span>已出库 60%</span>
|
||||
<span>40% 库存</span>
|
||||
</div>
|
||||
|
||||
<div class="bj-timeline">
|
||||
<div class="bj-event stockin">
|
||||
<div class="bj-event-dot"></div>
|
||||
<div class="bj-event-date">2026-04-28</div>
|
||||
<div class="bj-event-desc">入库 · 供应商 茅台经销华东<small>经办人:李建国</small></div>
|
||||
<div class="bj-event-qty">+50</div>
|
||||
<div class="bj-event-doc">RK0007</div>
|
||||
</div>
|
||||
<div class="bj-event stockout">
|
||||
<div class="bj-event-dot"></div>
|
||||
<div class="bj-event-date">2026-05-12</div>
|
||||
<div class="bj-event-desc">出库 · 客户 春和宴酒楼<small>经办人:王芳</small></div>
|
||||
<div class="bj-event-qty">−8</div>
|
||||
<div class="bj-event-doc">CK0034</div>
|
||||
</div>
|
||||
<div class="bj-event stockout">
|
||||
<div class="bj-event-dot"></div>
|
||||
<div class="bj-event-date">2026-05-19</div>
|
||||
<div class="bj-event-desc">出库 · 客户 北辰大酒店<small>经办人:王芳</small></div>
|
||||
<div class="bj-event-qty">−12</div>
|
||||
<div class="bj-event-doc">CK0041</div>
|
||||
</div>
|
||||
<div class="bj-event">
|
||||
<div class="bj-event-dot"></div>
|
||||
<div class="bj-event-date">— 当前 —</div>
|
||||
<div class="bj-event-desc" style="color: var(--gray-900); font-weight: 500;">剩余 30 瓶<small>预计 6 月底前售完</small></div>
|
||||
<div class="bj-event-qty" style="color: var(--brand-700);">30</div>
|
||||
<div class="bj-event-doc"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 3: Stocktake ============== -->
|
||||
<section class="feat-block">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag"><i data-lucide="clipboard-check" class="icon"></i>全仓盘点</div>
|
||||
<h2>账面 vs 实际,差异一目了然</h2>
|
||||
<p class="lead">
|
||||
逐 SKU 录入实盘数量,系统自动核算账实差异、损耗金额,并一键转为盘亏调整单。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="warehouse" class="icon"></i>
|
||||
<div>
|
||||
<strong>跨多仓库联动</strong>
|
||||
一次盘点可同步多仓库,避免分仓时数据不一致。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="calculator" class="icon"></i>
|
||||
<div>
|
||||
<strong>差异自动核算</strong>
|
||||
实盘填好后立即显示账面、实际、差异数量与金额。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="history" class="icon"></i>
|
||||
<div>
|
||||
<strong>历史盘点对比</strong>
|
||||
可对比上一次盘点结果,识别长期偏差最大的 SKU。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="stocktake-table">
|
||||
<div class="st-summary">
|
||||
<div class="st-summary-item">
|
||||
<div class="label">盘点商品</div>
|
||||
<div class="val">128</div>
|
||||
</div>
|
||||
<div class="st-summary-item">
|
||||
<div class="label">账面合计</div>
|
||||
<div class="val">2,816</div>
|
||||
</div>
|
||||
<div class="st-summary-item">
|
||||
<div class="label">实际合计</div>
|
||||
<div class="val">2,808</div>
|
||||
</div>
|
||||
<div class="st-summary-item">
|
||||
<div class="label">损耗金额</div>
|
||||
<div class="val neg">−¥6,840</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="st-row head">
|
||||
<div>商品</div><div>账面</div><div>实际</div><div>差异</div><div>损耗</div>
|
||||
</div>
|
||||
<div class="st-row">
|
||||
<div style="text-align: left;">茅台飞天 53° · 500ml×6</div>
|
||||
<div>148</div>
|
||||
<div>148</div>
|
||||
<div><span class="diff-pill zero">0</span></div>
|
||||
<div>—</div>
|
||||
</div>
|
||||
<div class="st-row">
|
||||
<div style="text-align: left;">五粮液第八代 52° · 500ml</div>
|
||||
<div>92</div>
|
||||
<div>90</div>
|
||||
<div><span class="diff-pill neg">−2</span></div>
|
||||
<div style="color: var(--danger-700);">−¥2,020</div>
|
||||
</div>
|
||||
<div class="st-row">
|
||||
<div style="text-align: left;">剑南春水晶剑 52° · 500ml×6</div>
|
||||
<div>12</div>
|
||||
<div>12</div>
|
||||
<div><span class="diff-pill zero">0</span></div>
|
||||
<div>—</div>
|
||||
</div>
|
||||
<div class="st-row">
|
||||
<div style="text-align: left;">拉菲传奇波尔多 · 750ml</div>
|
||||
<div>64</div>
|
||||
<div>60</div>
|
||||
<div><span class="diff-pill neg">−4</span></div>
|
||||
<div style="color: var(--danger-700);">−¥1,160</div>
|
||||
</div>
|
||||
<div class="st-row">
|
||||
<div style="text-align: left;">轩尼诗 VSOP · 700ml</div>
|
||||
<div>3</div>
|
||||
<div>3</div>
|
||||
<div><span class="diff-pill zero">0</span></div>
|
||||
<div>—</div>
|
||||
</div>
|
||||
<div class="st-row">
|
||||
<div style="text-align: left;">人头马 X.O · 700ml</div>
|
||||
<div>40</div>
|
||||
<div>38</div>
|
||||
<div><span class="diff-pill neg">−2</span></div>
|
||||
<div style="color: var(--danger-700);">−¥3,660</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 4: Inventory logs ============== -->
|
||||
<section class="feat-block reverse">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag"><i data-lucide="scroll-text" class="icon"></i>库存流水审计</div>
|
||||
<h2>谁动了我的库存?<br/>每一次都查得清楚</h2>
|
||||
<p class="lead">
|
||||
所有库存变动都会自动写入流水表,包括入库、出库、盘点调整,附带时间戳与经办人。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="filter" class="icon"></i>
|
||||
<div>
|
||||
<strong>按类型 / 时间 / SKU 任意筛选</strong>
|
||||
排查异常时可秒级定位。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="link" class="icon"></i>
|
||||
<div>
|
||||
<strong>关联原单据</strong>
|
||||
每条流水都关联到对应入库单 / 出库单 / 盘点单,一键跳转。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="hard-drive" class="icon"></i>
|
||||
<div>
|
||||
<strong>永久保留</strong>
|
||||
流水数据永不自动清除,满足审计与合规要求。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="log-card">
|
||||
<div class="log-toolbar">
|
||||
<span class="log-filter-pill active">全部类型</span>
|
||||
<span class="log-filter-pill"><i data-lucide="plus" class="icon"></i>入库</span>
|
||||
<span class="log-filter-pill"><i data-lucide="minus" class="icon"></i>出库</span>
|
||||
<span class="log-filter-pill"><i data-lucide="clipboard" class="icon"></i>盘点</span>
|
||||
<span style="margin-left: auto;">本月 · 共 1,284 条</span>
|
||||
</div>
|
||||
<div class="log-row">
|
||||
<div class="log-time">05-23 14:32</div>
|
||||
<div><span class="log-type-pill in">入库</span></div>
|
||||
<div class="log-desc">茅台飞天 53° · 500ml×6<small>RK20260523000007 · A 仓</small></div>
|
||||
<div class="log-qty in">+4</div>
|
||||
<div class="log-op">李建国</div>
|
||||
</div>
|
||||
<div class="log-row">
|
||||
<div class="log-time">05-23 11:48</div>
|
||||
<div><span class="log-type-pill out">出库</span></div>
|
||||
<div class="log-desc">五粮液第八代 52°<small>CK20260523000012 · 客户 春和宴</small></div>
|
||||
<div class="log-qty out">−6</div>
|
||||
<div class="log-op">王芳</div>
|
||||
</div>
|
||||
<div class="log-row">
|
||||
<div class="log-time">05-23 10:15</div>
|
||||
<div><span class="log-type-pill check">盘点</span></div>
|
||||
<div class="log-desc">拉菲传奇波尔多<small>PD20260523001 · 账实差异</small></div>
|
||||
<div class="log-qty out">−2</div>
|
||||
<div class="log-op">张磊</div>
|
||||
</div>
|
||||
<div class="log-row">
|
||||
<div class="log-time">05-22 17:20</div>
|
||||
<div><span class="log-type-pill out">出库</span></div>
|
||||
<div class="log-desc">人头马 X.O · 700ml<small>CK20260522000008 · 客户 北辰</small></div>
|
||||
<div class="log-qty out">−2</div>
|
||||
<div class="log-op">王芳</div>
|
||||
</div>
|
||||
<div class="log-row">
|
||||
<div class="log-time">05-22 14:08</div>
|
||||
<div><span class="log-type-pill in">入库</span></div>
|
||||
<div class="log-desc">轩尼诗 VSOP · 700ml<small>RK20260522000005 · B 仓</small></div>
|
||||
<div class="log-qty in">+24</div>
|
||||
<div class="log-op">李建国</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== BLOCK 5: Alerts ============== -->
|
||||
<section class="feat-block">
|
||||
<div class="container feat-block-inner">
|
||||
<div class="feat-text">
|
||||
<div class="feat-tag"><i data-lucide="alert-triangle" class="icon"></i>库存状态</div>
|
||||
<h2>一眼看出哪些商品<br/>需要补货</h2>
|
||||
<p class="lead">
|
||||
为每件商品设置最低库存量,系统根据当前库存自动标记「充足 / 偏低 / 告急」,无需手工比对。
|
||||
</p>
|
||||
<ul class="feat-bullets">
|
||||
<li>
|
||||
<i data-lucide="sliders-horizontal" class="icon"></i>
|
||||
<div>
|
||||
<strong>按 SKU 设置最低库存</strong>
|
||||
热销商品阈值高,冷门商品阈值低 — 每件单独配置。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="list-filter" class="icon"></i>
|
||||
<div>
|
||||
<strong>库存列表一目了然</strong>
|
||||
库存状态标签跟随列表显示,随时筛选「偏低」「告急」的 SKU。
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<i data-lucide="qr-code" class="icon"></i>
|
||||
<div>
|
||||
<strong>商品二维码防伪</strong>
|
||||
每件商品生成专属二维码,顾客扫码即可查看批次与防伪信息。
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="feat-visual">
|
||||
<div class="alert-config-card">
|
||||
<h4>库存状态一览</h4>
|
||||
<p class="sub">基于最低库存量 (min_stock) 自动标记状态。</p>
|
||||
<div style="display:flex;flex-direction:column;gap:10px;margin-top:12px;">
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--gray-25);border-radius:8px;">
|
||||
<span style="font-size:13px;font-weight:500;">茅台飞天 53°</span>
|
||||
<span style="font-size:12px;color:var(--success-700);background:var(--success-50);padding:2px 10px;border-radius:20px;font-weight:600;">充足</span>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--gray-25);border-radius:8px;">
|
||||
<span style="font-size:13px;font-weight:500;">剑南春水晶剑</span>
|
||||
<span style="font-size:12px;color:var(--warning-700);background:var(--warning-50);padding:2px 10px;border-radius:20px;font-weight:600;">偏低</span>
|
||||
</div>
|
||||
<div style="display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--gray-25);border-radius:8px;">
|
||||
<span style="font-size:13px;font-weight:500;">轩尼诗 VSOP</span>
|
||||
<span style="font-size:12px;color:var(--danger-700);background:var(--danger-50);padding:2px 10px;border-radius:20px;font-weight:600;">告急</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== Use cases ============== -->
|
||||
<section class="section" style="background: var(--bg-surface); border-bottom: 1px solid var(--border-subtle);">
|
||||
<div class="container">
|
||||
<p class="eyebrow">典型场景</p>
|
||||
<h2 style="font-size: 36px; font-weight: 600; color: var(--brand-900); margin: 0 0 12px; letter-spacing: var(--tracking-cn-display);">
|
||||
库存管理,落到实际操作里是什么样
|
||||
</h2>
|
||||
<p style="font-size: var(--text-lg); color: var(--fg-muted); max-width: 640px; margin: 0;">
|
||||
三个常见门店场景,看库存管理如何省下你每天的时间。
|
||||
</p>
|
||||
|
||||
<div class="usecases-grid">
|
||||
<div class="usecase-card">
|
||||
<i data-lucide="package-search" class="icon"></i>
|
||||
<h4>客户来取货前,先看一眼批次</h4>
|
||||
<p>客户要 12 瓶飞天,先在批次追踪里看哪一批快到期;优先发出旧批次,新批次留着。</p>
|
||||
</div>
|
||||
<div class="usecase-card">
|
||||
<i data-lucide="calendar-check-2" class="icon"></i>
|
||||
<h4>月底盘点,2 小时变 30 分钟</h4>
|
||||
<p>用移动端扫码逐瓶录入,系统对比账面 → 实时显示差异。损耗自动转入应付,不用再算。</p>
|
||||
</div>
|
||||
<div class="usecase-card">
|
||||
<i data-lucide="file-check-2" class="icon"></i>
|
||||
<h4>财务来问"这瓶怎么少了",3 秒回答</h4>
|
||||
<p>打开库存流水,按 SKU 筛选,全部入库、出库、盘点变动一目了然,每条都关联到原始单据。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ============== Final CTA ============== -->
|
||||
<section>
|
||||
<div class="container" style="padding-top: 80px;">
|
||||
<div class="cta-strip">
|
||||
<div>
|
||||
<h2>试试看你今天的库存有几瓶。</h2>
|
||||
<p>30 天免费试用,无需绑定支付。所有数据云端实时备份,可随时导出。</p>
|
||||
</div>
|
||||
<div class="cta-strip-actions">
|
||||
<a href="/register/" class="btn btn-primary btn-lg">
|
||||
免费开通试用<i data-lucide="arrow-right" class="icon"></i>
|
||||
</a>
|
||||
<a href="/features/approval.html" class="btn btn-secondary btn-lg">
|
||||
下一个功能:审核流 →
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<div class="footer-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
<p>为酒行与酒店设计的库存、审核、财务一体化管理平台。</p>
|
||||
<div class="footer-contact">
|
||||
<div><a href="mailto:yammy2023@163.com">yammy2023@163.com</a></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>产品</h5>
|
||||
<ul>
|
||||
<li><a href="/#modules">核心模块</a></li>
|
||||
<li><a href="/#platforms">多端覆盖</a></li>
|
||||
<li><a href="/#reports">数据洞察</a></li>
|
||||
<li><a href="/#pricing">价格方案</a></li>
|
||||
<li><a href="/download/">版本更新</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>资源</h5>
|
||||
<ul>
|
||||
<li><a href="/docs/">使用手册</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>客户支持</h5>
|
||||
<ul>
|
||||
<li><a href="/#faq">常见问题</a></li>
|
||||
<li><a href="mailto:yammy2023@163.com">联系我们</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>公司</h5>
|
||||
<ul>
|
||||
<li><a href="/register/">注册门店</a></li>
|
||||
<li><a href="/terms/">服务条款</a></li>
|
||||
<li><a href="/privacy/">隐私政策</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<div>© 2026 岩美科技 · 保留所有权利</div>
|
||||
<div>沪 ICP 备 2026000000 号 · 沪公网安备 31010000000000 号</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<script src="/assets/nav.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
+1457
File diff suppressed because it is too large
Load Diff
Vendored
+754
@@ -0,0 +1,754 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light" />
|
||||
<title>为酒行与酒店设计的库存管理平台 · 岩美酒库管理系统</title>
|
||||
<meta name="description" content="岩美酒库管理系统,审核驱动业务流,库存与账款自动同步,五端无缝接入。" />
|
||||
<link rel="stylesheet" href="/assets/color.css" />
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="topnav">
|
||||
<div class="topnav-inner">
|
||||
<a href="/" class="topnav-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
</a>
|
||||
<div class="topnav-links">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
</div>
|
||||
<div class="topnav-cta" id="nav-cta">
|
||||
<a href="/register/" class="btn btn-primary btn-sm">注册门店</a>
|
||||
</div>
|
||||
<button class="nav-hamburger" id="nav-hamburger" aria-label="菜单" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-mobile-menu" id="nav-mobile-menu">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存管理</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
<div class="nav-mobile-cta" id="nav-mobile-cta">
|
||||
<a href="/register/" class="btn btn-primary">注册门店</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
<style>
|
||||
/* HERO --------------------------------------------------------- */
|
||||
.hero {
|
||||
position: relative; overflow: hidden; padding: 88px 0 64px;
|
||||
background:
|
||||
radial-gradient(900px 480px at 78% 12%, rgba(37,99,172,0.06), transparent 60%),
|
||||
linear-gradient(180deg,#FBFCFD 0%,#FFFFFF 80%);
|
||||
}
|
||||
.hero-inner { display: grid; grid-template-columns: 1.05fr 1.25fr; gap: 64px; align-items: center; }
|
||||
.hero h1 { font-size: 52px; line-height: 1.12; letter-spacing: var(--tracking-cn-display); color: var(--brand-900); font-weight: 700; margin: 0 0 20px; }
|
||||
.hero h1 em { font-style: normal; color: var(--brand-500); position: relative; }
|
||||
.hero h1 em::after { content: ''; position: absolute; left: 0; right: 0; bottom: 4px; height: 10px; background: var(--brand-100); z-index: -1; border-radius: 2px; }
|
||||
.hero p.lead { font-size: var(--text-xl); line-height: 1.6; color: var(--gray-600); margin: 0 0 32px; }
|
||||
.hero-mini-item .icon { width: 14px; height: 14px; color: var(--success-500); }
|
||||
|
||||
/* Preview mock UI ---------------------------------------------- */
|
||||
.preview-shell { background: var(--gray-0); border: 1px solid var(--border-default); border-radius: 14px; box-shadow: var(--shadow-xl); overflow: hidden; }
|
||||
.preview-titlebar { height: 36px; display: flex; align-items: center; padding: 0 14px; background: var(--gray-50); border-bottom: 1px solid var(--border-subtle); gap: 8px; }
|
||||
.preview-dots { display: flex; gap: 6px; }
|
||||
.preview-dots span { width: 10px; height: 10px; border-radius: 50%; background: var(--gray-300); }
|
||||
.preview-url { flex: 1; text-align: center; font-size: var(--text-xs); color: var(--fg-subtle); font-family: var(--font-mono); }
|
||||
.mock-app { display: grid; grid-template-columns: 180px 1fr; height: 540px; }
|
||||
.mock-sidebar { background: var(--brand-900); color: #DCE2EB; padding: 20px 12px; font-size: var(--text-sm); }
|
||||
.mock-sidebar-brand { font-size: 13px; font-weight: 600; letter-spacing: 0.1em; color: #fff; padding: 0 8px 16px; border-bottom: 1px solid rgba(255,255,255,0.08); margin-bottom: 12px; }
|
||||
.mock-nav-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--radius-sm); margin-bottom: 2px; color: #ADC9EA; font-size: 13px; }
|
||||
.mock-nav-item .icon { width: 16px; height: 16px; }
|
||||
.mock-nav-item.active { background: rgba(255,255,255,0.08); color: #fff; }
|
||||
.mock-main { background: var(--gray-50); padding: 20px; overflow: hidden; }
|
||||
.mock-topbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
|
||||
.mock-tabs { display: flex; gap: 4px; background: var(--gray-0); padding: 4px; border-radius: var(--radius-md); border: 1px solid var(--border-default); }
|
||||
.mock-tab { padding: 6px 14px; font-size: 13px; color: var(--gray-600); border-radius: var(--radius-sm); }
|
||||
.mock-tab.active { background: var(--brand-500); color: #fff; font-weight: 500; }
|
||||
.mock-actions { display: flex; gap: 8px; }
|
||||
.mock-mini-btn { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; background: var(--gray-0); border: 1px solid var(--border-default); border-radius: var(--radius-sm); font-size: 12px; color: var(--gray-700); }
|
||||
.mock-mini-btn .icon { width: 13px; height: 13px; }
|
||||
.mock-mini-btn.primary { background: var(--brand-500); color: #fff; border-color: var(--brand-500); }
|
||||
.mock-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-bottom: 16px; }
|
||||
.mock-stat { background: var(--gray-0); border: 1px solid var(--border-default); border-radius: var(--radius-md); padding: 12px 14px; }
|
||||
.mock-stat-label { font-size: 11px; color: var(--fg-muted); margin-bottom: 4px; }
|
||||
.mock-stat-value { font-size: 20px; font-weight: 600; color: var(--brand-900); font-variant-numeric: tabular-nums; }
|
||||
.mock-stat-delta { font-size: 11px; margin-top: 2px; font-variant-numeric: tabular-nums; }
|
||||
.mock-stat-delta.up { color: var(--success-500); }
|
||||
.mock-stat-delta.down { color: var(--danger-500); }
|
||||
.mock-table-card { background: var(--gray-0); border: 1px solid var(--border-default); border-radius: var(--radius-md); overflow: hidden; }
|
||||
.mock-table-head { display: grid; grid-template-columns: 110px 1fr 60px 70px 80px 70px; padding: 10px 14px; background: var(--gray-50); border-bottom: 1px solid var(--border-subtle); font-size: 11px; color: var(--fg-muted); font-weight: 500; }
|
||||
.mock-table-row { display: grid; grid-template-columns: 110px 1fr 60px 70px 80px 70px; padding: 10px 14px; border-bottom: 1px solid var(--border-subtle); font-size: 12px; color: var(--gray-800); align-items: center; font-variant-numeric: tabular-nums; }
|
||||
.mock-table-row:last-child { border-bottom: none; }
|
||||
.mock-table-row .sku { font-family: var(--font-mono); color: var(--brand-500); font-size: 11px; }
|
||||
.mock-pill { display: inline-block; padding: 1px 8px; border-radius: var(--radius-pill); font-size: 10px; font-weight: 500; }
|
||||
.mock-pill.ok { background: var(--success-50); color: var(--success-700); }
|
||||
.mock-pill.warn { background: var(--warning-50); color: var(--warning-700); }
|
||||
.mock-pill.pending { background: var(--info-50); color: var(--info-700); }
|
||||
.hero-toast { position: absolute; bottom: -28px; right: -36px; background: var(--gray-0); border: 1px solid var(--border-default); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 14px 16px; width: 260px; display: flex; gap: 12px; align-items: flex-start; z-index: 2; }
|
||||
.hero-toast-icon { width: 36px; height: 36px; border-radius: 8px; background: var(--success-50); display: grid; place-items: center; flex-shrink: 0; }
|
||||
.hero-toast-icon .icon { color: var(--success-500); }
|
||||
|
||||
/* Trust strip -------------------------------------------------- */
|
||||
.trust { border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle); background: var(--gray-25); padding: 32px 0; }
|
||||
.trust-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; align-items: center; gap: 32px; }
|
||||
.trust-stat-num { font-size: 28px; font-weight: 600; color: var(--brand-900); font-variant-numeric: tabular-nums; line-height: 1; }
|
||||
.trust-stat-num sup { font-size: 14px; color: var(--brand-500); margin-left: 2px; font-weight: 500; }
|
||||
|
||||
/* Modules ------------------------------------------------------ */
|
||||
.module-card:hover { border-color: var(--border-strong); box-shadow: var(--shadow-sm); }
|
||||
.module-card.feature-card { grid-column: span 2; background: linear-gradient(180deg,#FBFCFD 0%,#FFFFFF 100%); }
|
||||
.module-card.feature-card .icon-box-lg { background: var(--brand-500); color: #fff; }
|
||||
.module-card ul { margin: 16px 0 0; padding: 0; list-style: none; font-size: var(--text-sm); color: var(--gray-700); }
|
||||
.module-card ul li { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-top: 1px solid var(--border-subtle); }
|
||||
.module-card ul li:first-child { border-top: none; }
|
||||
.module-card ul li .icon { width: 14px; height: 14px; color: var(--brand-500); }
|
||||
|
||||
/* Workflow ----------------------------------------------------- */
|
||||
.workflow-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: center; margin-top: 48px; }
|
||||
.wf-step { display: grid; grid-template-columns: 32px 1fr; gap: 14px; align-items: start; }
|
||||
.wf-num { width: 32px; height: 32px; border-radius: var(--radius-pill); background: var(--brand-50); color: var(--brand-700); display: grid; place-items: center; font-size: 13px; font-weight: 600; }
|
||||
.wf-step.active .wf-num { background: var(--brand-500); color: #fff; }
|
||||
.flow-vis { background: var(--gray-0); border: 1px solid var(--border-default); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: 28px; }
|
||||
.flow-doc { background: var(--gray-50); border: 1px solid var(--border-default); border-radius: var(--radius-md); padding: 16px 18px; margin-bottom: 14px; }
|
||||
.flow-doc-head { display: flex; justify-content: space-between; margin-bottom: 12px; }
|
||||
.flow-doc-id { font-family: var(--font-mono); font-size: 12px; color: var(--brand-500); }
|
||||
.flow-doc-status { font-size: 11px; font-weight: 500; padding: 2px 10px; border-radius: var(--radius-pill); background: var(--info-50); color: var(--info-700); }
|
||||
.flow-doc-status.approved { background: var(--success-50); color: var(--success-700); }
|
||||
.flow-row { display: grid; grid-template-columns: 70px 1fr 70px 70px; gap: 8px; font-size: 12px; padding: 6px 0; color: var(--gray-700); font-variant-numeric: tabular-nums; }
|
||||
.flow-row.head { font-weight: 500; color: var(--fg-muted); font-size: 11px; padding: 0 0 6px; border-bottom: 1px solid var(--border-subtle); margin-bottom: 4px; }
|
||||
.flow-row.foot { border-top: 1px solid var(--border-default); margin-top: 6px; padding-top: 8px; font-weight: 600; color: var(--brand-900); }
|
||||
.flow-arrow { display: flex; align-items: center; justify-content: center; padding: 12px 0; color: var(--gray-400); }
|
||||
.flow-arrow .icon { width: 18px; height: 18px; }
|
||||
.flow-effects { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
|
||||
.flow-effect { background: #fff; border: 1px solid var(--border-default); border-radius: var(--radius-md); padding: 12px 14px; }
|
||||
.flow-effect-label { font-size: 11px; color: var(--fg-muted); display: flex; align-items: center; gap: 6px; }
|
||||
.flow-effect-label .icon { width: 12px; height: 12px; color: var(--success-500); }
|
||||
.flow-effect-val { font-size: 18px; font-weight: 600; color: var(--brand-900); margin-top: 4px; font-variant-numeric: tabular-nums; }
|
||||
|
||||
/* Platforms ---------------------------------------------------- */
|
||||
.platform-card:hover { border-color: var(--brand-300); }
|
||||
.platforms-visual { margin-top: 56px; background: var(--brand-900); border-radius: var(--radius-xl); padding: 56px 48px; position: relative; overflow: hidden; color: #fff; display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: center; }
|
||||
.platforms-visual::before { content: ''; position: absolute; inset: 0; background: radial-gradient(600px 320px at 80% 10%,rgba(79,134,198,0.20),transparent 60%); pointer-events: none; }
|
||||
.pv-text h3 { font-size: 32px; font-weight: 600; letter-spacing: var(--tracking-cn-display); margin: 0 0 16px; }
|
||||
.pv-text p { font-size: var(--text-lg); color: #ADC9EA; margin: 0 0 24px; line-height: 1.6; }
|
||||
.pv-feature { display: flex; align-items: center; gap: 10px; font-size: var(--text-md); color: #DCE2EB; }
|
||||
.pv-feature .icon { width: 16px; height: 16px; color: var(--brand-300); }
|
||||
.device-stack { position: relative; height: 320px; z-index: 1; }
|
||||
.device-laptop { position: absolute; width: 100%; bottom: 0; background: #0A1F3B; border: 1px solid rgba(255,255,255,0.08); border-radius: 8px 8px 4px 4px; box-shadow: var(--shadow-xl); }
|
||||
.device-laptop::after { content: ''; position: absolute; bottom: -10px; left: -16px; right: -16px; height: 10px; background: linear-gradient(180deg,#232934 0%,#141821 100%); border-radius: 0 0 8px 8px; }
|
||||
.device-laptop-screen { background: var(--gray-50); margin: 8px; height: 200px; border-radius: 4px; padding: 10px; overflow: hidden; }
|
||||
.device-laptop-mock-row { height: 12px; background: var(--gray-200); border-radius: 2px; margin-bottom: 6px; }
|
||||
.device-laptop-mock-row.short { width: 60%; }
|
||||
.device-laptop-mock-row.brand { background: var(--brand-300); width: 30%; }
|
||||
.device-phone { position: absolute; right: 32px; bottom: -8px; width: 110px; height: 220px; background: #0A1F3B; border: 2px solid rgba(255,255,255,0.10); border-radius: 16px; padding: 4px; box-shadow: var(--shadow-xl); z-index: 2; }
|
||||
.device-phone-screen { background: var(--gray-50); border-radius: 12px; height: 100%; padding: 8px; overflow: hidden; font-size: 8px; }
|
||||
.device-phone-screen .top { height: 14px; background: var(--brand-500); border-radius: 4px; margin-bottom: 6px; }
|
||||
|
||||
/* Reports ------------------------------------------------------ */
|
||||
.reports-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 64px; align-items: center; margin-top: 48px; }
|
||||
.report-head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 18px; }
|
||||
.report-tabs { display: flex; gap: 4px; }
|
||||
.report-tab { padding: 4px 10px; font-size: 11px; color: var(--fg-muted); border-radius: var(--radius-sm); cursor: pointer; }
|
||||
.report-tab.active { background: var(--gray-100); color: var(--gray-900); }
|
||||
.chart { position: relative; height: 200px; margin: 8px 0 0; }
|
||||
.chart svg { width: 100%; height: 100%; }
|
||||
.chart-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; border-top: 1px solid var(--border-subtle); padding-top: 18px; margin-top: 8px; }
|
||||
.chart-stat-val small { font-size: var(--text-xs); color: var(--success-500); margin-left: 4px; font-weight: 500; }
|
||||
|
||||
/* Security ----------------------------------------------------- */
|
||||
.roles-table { margin-top: 32px; background: var(--gray-0); border: 1px solid var(--border-default); border-radius: var(--radius-lg); overflow: hidden; }
|
||||
.roles-row { display: grid; grid-template-columns: 180px 1fr 80px 80px 80px 80px; align-items: center; padding: 14px 24px; border-bottom: 1px solid var(--border-subtle); font-size: var(--text-sm); }
|
||||
.roles-row:last-child { border-bottom: none; }
|
||||
.roles-row.head { background: var(--gray-50); color: var(--fg-muted); font-size: 12px; font-weight: 500; }
|
||||
.role-check { text-align: center; }
|
||||
.role-check .icon { width: 16px; height: 16px; color: var(--success-500); display: inline-block; }
|
||||
.role-check.no .icon { color: var(--gray-300); }
|
||||
|
||||
/* Pricing ------------------------------------------------------ */
|
||||
.price-card.featured { border-color: var(--brand-500); box-shadow: 0 0 0 4px rgba(37,99,172,0.08), var(--shadow-md); position: relative; }
|
||||
.price-card.featured::before { content: '推荐'; position: absolute; top: -1px; right: 24px; background: var(--brand-500); color: #fff; padding: 4px 12px; border-radius: 0 0 var(--radius-sm) var(--radius-sm); font-size: 11px; font-weight: 500; letter-spacing: 0.06em; }
|
||||
.price-amount { display: flex; align-items: baseline; gap: 4px; margin-bottom: 8px; }
|
||||
.price-amount .currency { font-size: 18px; color: var(--gray-700); font-weight: 500; }
|
||||
.price-amount .num { font-size: 42px; font-weight: 700; color: var(--brand-900); font-variant-numeric: tabular-nums; line-height: 1; }
|
||||
.price-amount .unit { font-size: 14px; color: var(--fg-muted); margin-left: 4px; }
|
||||
.price-card.custom .num { font-size: 32px; }
|
||||
|
||||
/* FAQ ---------------------------------------------------------- */
|
||||
.faq-q { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; cursor: pointer; font-size: var(--text-lg); font-weight: 500; color: var(--brand-900); list-style: none; }
|
||||
.faq-q::-webkit-details-marker { display: none; }
|
||||
.faq-q .icon { width: 18px; height: 18px; color: var(--fg-muted); transition: transform var(--duration-base) var(--ease-standard); }
|
||||
details[open] .faq-q .icon { transform: rotate(45deg); }
|
||||
|
||||
/* CTA banner --------------------------------------------------- */
|
||||
.cta-banner {
|
||||
background: radial-gradient(800px 360px at 80% 30%,rgba(37,99,172,0.40),transparent 60%), linear-gradient(135deg,#0A1F3B 0%,#15407D 100%);
|
||||
color: #fff; border-radius: var(--radius-xl); padding: 64px 56px;
|
||||
display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: center; margin: 96px 0;
|
||||
}
|
||||
.cta-banner h2 { font-size: 36px; font-weight: 600; letter-spacing: var(--tracking-cn-display); margin: 0 0 16px; line-height: 1.25; }
|
||||
.cta-banner p { font-size: var(--text-lg); color: #ADC9EA; margin: 0; line-height: 1.6; }
|
||||
.cta-banner .btn-primary { background: #fff; color: var(--brand-700); }
|
||||
.cta-banner .btn-primary:hover { background: #DCE2EB; }
|
||||
.cta-banner .btn-secondary { background: transparent; color: #fff; border-color: rgba(255,255,255,0.30); }
|
||||
.cta-banner .btn-secondary:hover { background: rgba(255,255,255,0.10); }
|
||||
|
||||
/* Responsive --------------------------------------------------- */
|
||||
@media (max-width: 1024px) {
|
||||
.hero-inner, .workflow-grid, .reports-grid, .platforms-visual, .cta-banner { grid-template-columns: 1fr; }
|
||||
.module-card.feature-card { grid-column: span 2; }
|
||||
.hero h1 { font-size: 40px; }
|
||||
.roles-row { grid-template-columns: 140px 1fr repeat(4, 60px); padding: 12px 16px; }
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
/* Hide decorative app preview on mobile to prevent overflow */
|
||||
.preview-shell { display: none; }
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
.hero h1 { font-size: 28px; }
|
||||
.hero p.lead { font-size: var(--text-md); }
|
||||
.hero-cta { flex-direction: column; }
|
||||
.hero-cta .btn { width: 100%; justify-content: center; }
|
||||
.module-card.feature-card { grid-column: span 1; }
|
||||
.roles-row { grid-template-columns: 1fr; }
|
||||
.roles-table .roles-row > *:nth-child(n+3) { display: none; }
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- ====================== HERO ====================== -->
|
||||
<section class="hero">
|
||||
<div class="container hero-inner">
|
||||
<div>
|
||||
<div class="d-inline-flex items-center gap-8 bg-0 border rounded-pill fs-sm text-gray-7 mb-24" style="padding: 6px 14px 6px 8px;">
|
||||
<span class="badge badge-brand">v1.0.23</span>
|
||||
<span>2026-06-07 更新 ·</span>
|
||||
<span class="text-brand fw-5">查看更新</span>
|
||||
</div>
|
||||
<h1>从入库到出库,<br/><em>一套系统</em>管到底。</h1>
|
||||
<p class="lead">岩美酒库管理系统,为酒行与酒店设计的库存、审核、财务一体化平台。审核驱动业务流,库存与账款自动同步,五端无缝接入。</p>
|
||||
<div class="d-flex gap-12 mb-28">
|
||||
<a href="/register/" class="btn btn-primary btn-lg">免费试用 30 天<i data-lucide="arrow-right" class="icon"></i></a>
|
||||
<a href="/docs/" class="btn btn-secondary btn-lg"><i data-lucide="book-open" class="icon"></i>查看使用手册</a>
|
||||
</div>
|
||||
<div class="d-flex items-center gap-18 text-muted fs-sm">
|
||||
<div class="hero-mini-item d-flex items-center gap-6"><i data-lucide="check" class="icon"></i>无需安装</div>
|
||||
<div class="hero-mini-item d-flex items-center gap-6"><i data-lucide="check" class="icon"></i>30 天免费</div>
|
||||
<div class="hero-mini-item d-flex items-center gap-6"><i data-lucide="check" class="icon"></i>支持私有部署</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pos-relative">
|
||||
<div class="preview-shell">
|
||||
<div class="preview-titlebar">
|
||||
<div class="preview-dots"><span></span><span></span><span></span></div>
|
||||
<div class="preview-url">yanmei.app/inventory</div>
|
||||
</div>
|
||||
<div class="mock-app">
|
||||
<aside class="mock-sidebar">
|
||||
<div class="mock-sidebar-brand">金樽酒行 · S001</div>
|
||||
<div class="mock-nav-item"><i data-lucide="package-plus" class="icon"></i>入库管理</div>
|
||||
<div class="mock-nav-item"><i data-lucide="package-minus" class="icon"></i>出库管理</div>
|
||||
<div class="mock-nav-item active"><i data-lucide="package" class="icon"></i>库存管理</div>
|
||||
<div class="mock-nav-item"><i data-lucide="wallet" class="icon"></i>财务管理</div>
|
||||
<div class="mock-nav-item"><i data-lucide="truck" class="icon"></i>往来单位</div>
|
||||
<div class="mock-nav-item"><i data-lucide="database" class="icon"></i>基础数据</div>
|
||||
<div class="mock-nav-item"><i data-lucide="settings" class="icon"></i>系统设置</div>
|
||||
</aside>
|
||||
<main class="mock-main">
|
||||
<div class="mock-topbar">
|
||||
<div class="mock-tabs">
|
||||
<div class="mock-tab active">库存列表</div>
|
||||
<div class="mock-tab">库存盘点</div>
|
||||
<div class="mock-tab">库存流水</div>
|
||||
</div>
|
||||
<div class="mock-actions">
|
||||
<div class="mock-mini-btn"><i data-lucide="download" class="icon"></i>导出</div>
|
||||
<div class="mock-mini-btn primary"><i data-lucide="clipboard-list" class="icon"></i>新建盘点</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mock-stats">
|
||||
<div class="mock-stat">
|
||||
<div class="mock-stat-label">库存总量</div>
|
||||
<div class="mock-stat-value">2,816 <span style="font-size:12px;color:var(--fg-muted);font-weight:400">瓶</span></div>
|
||||
<div class="mock-stat-delta up">↑ 4.2% 较上月</div>
|
||||
</div>
|
||||
<div class="mock-stat">
|
||||
<div class="mock-stat-label">库存金额</div>
|
||||
<div class="mock-stat-value">¥486,290</div>
|
||||
<div class="mock-stat-delta up">↑ 2.8% 较上月</div>
|
||||
</div>
|
||||
<div class="mock-stat">
|
||||
<div class="mock-stat-label">本月入库</div>
|
||||
<div class="mock-stat-value">128 <span style="font-size:12px;color:var(--fg-muted);font-weight:400">单</span></div>
|
||||
<div class="mock-stat-delta up">↑ 12 单</div>
|
||||
</div>
|
||||
<div class="mock-stat">
|
||||
<div class="mock-stat-label">预警 SKU</div>
|
||||
<div class="mock-stat-value" style="color:var(--warning-500)">7</div>
|
||||
<div class="mock-stat-delta down">↓ 库存不足</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mock-table-card">
|
||||
<div class="mock-table-head">
|
||||
<div>SKU</div><div>商品名称</div><div>仓库</div><div>库存</div><div>金额</div><div>状态</div>
|
||||
</div>
|
||||
<div class="mock-table-row"><div class="sku">WT-501-006</div><div>茅台飞天 53° · 500ml×6</div><div>A 仓</div><div>148</div><div>¥298,400</div><div><span class="mock-pill ok">充足</span></div></div>
|
||||
<div class="mock-table-row"><div class="sku">XJ-468-001</div><div>五粮液第八代 52° · 500ml</div><div>A 仓</div><div>92</div><div>¥92,920</div><div><span class="mock-pill ok">充足</span></div></div>
|
||||
<div class="mock-table-row"><div class="sku">XJ-330-024</div><div>剑南春水晶剑 52° · 500ml×6</div><div>B 仓</div><div style="color:var(--warning-700);font-weight:500">12</div><div>¥4,560</div><div><span class="mock-pill warn">偏低</span></div></div>
|
||||
<div class="mock-table-row"><div class="sku">PJ-750-012</div><div>拉菲传奇波尔多 · 750ml</div><div>A 仓</div><div>64</div><div>¥18,560</div><div><span class="mock-pill ok">充足</span></div></div>
|
||||
<div class="mock-table-row"><div class="sku">PJ-700-008</div><div>轩尼诗 VSOP · 700ml</div><div>B 仓</div><div>38</div><div>¥22,420</div><div><span class="mock-pill pending">入库中</span></div></div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hero-toast">
|
||||
<div class="hero-toast-icon"><i data-lucide="check-circle-2" class="icon"></i></div>
|
||||
<div>
|
||||
<div class="fw-6 fs-sm text-gray-9 mb-2">入库单已审批</div>
|
||||
<div class="fs-sm text-muted" style="line-height:1.45">RK20260523000007 库存 +24 瓶<br/>生成应付 ¥48,400</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ====================== TRUST ====================== -->
|
||||
<section class="trust">
|
||||
<div class="container">
|
||||
<div class="trust-grid">
|
||||
<div class="fs-sm text-muted">专为酒水经营场所设计</div>
|
||||
<div><div class="trust-stat-num">5<sup>端</sup></div><div class="fs-xs text-muted mt-4">Web / iOS / Android / Win / Mac</div></div>
|
||||
<div><div class="trust-stat-num">多<sup>仓</sup></div><div class="fs-xs text-muted mt-4">支持多仓库独立管理</div></div>
|
||||
<div><div class="trust-stat-num">FIFO</div><div class="fs-xs text-muted mt-4">批次先进先出追溯</div></div>
|
||||
<div><div class="trust-stat-num">0</div><div class="fs-xs text-muted mt-4">需安装依赖,Web 即用</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ====================== MODULES ====================== -->
|
||||
<section class="section" id="modules">
|
||||
<div class="container">
|
||||
<p class="eyebrow">核心模块</p>
|
||||
<h2 class="section-title">全流程模块,覆盖酒水经营每一个环节</h2>
|
||||
<p class="section-sub">从商品建档到入库出库、从财务结算到扫码防伪,岩美一站式承载日常运营。</p>
|
||||
<div class="grid-3 gap-16 mt-48">
|
||||
<div class="module-card feature-card card p-24 transition">
|
||||
<div class="icon-box-lg bg-brand-50 text-brand mb-16"><i data-lucide="package-plus" class="icon-md"></i></div>
|
||||
<h3 class="fs-xl fw-6 text-brand-900 m-0 mb-6 ls-1">入库管理</h3>
|
||||
<p class="fs-sm lh-16 text-muted m-0">审核驱动的入库流程。草稿、提交、审批、库存更新、应付账款生成 — 一气呵成。</p>
|
||||
<ul>
|
||||
<li><i data-lucide="check" class="icon"></i>多商品行明细录入,自动算金额</li>
|
||||
<li><i data-lucide="check" class="icon"></i>审批通过即同步库存与应付账款</li>
|
||||
<li><i data-lucide="check" class="icon"></i>支持单据打印、商品标签打印</li>
|
||||
<li><i data-lucide="check" class="icon"></i>批次号追踪,生产日期可追溯</li>
|
||||
</ul>
|
||||
<a href="/features/approval.html" class="fs-xs text-brand mt-12 d-inline-block">了解审核流详情 →</a>
|
||||
</div>
|
||||
<div class="module-card card p-24 transition">
|
||||
<div class="icon-box-lg bg-brand-50 text-brand mb-16"><i data-lucide="package-minus" class="icon-md"></i></div>
|
||||
<h3 class="fs-xl fw-6 text-brand-900 m-0 mb-6 ls-1">出库管理</h3>
|
||||
<p class="fs-sm lh-16 text-muted m-0">出库前自动校验库存,审批通过即扣减库存并生成应收。库存不足,单据无法通过。</p>
|
||||
</div>
|
||||
<div class="module-card card p-24 transition">
|
||||
<div class="icon-box-lg bg-brand-50 text-brand mb-16"><i data-lucide="package" class="icon-md"></i></div>
|
||||
<h3 class="fs-xl fw-6 text-brand-900 m-0 mb-6 ls-1">库存管理</h3>
|
||||
<p class="fs-sm lh-16 text-muted m-0">实时查询每个 SKU 的库存数量、所在仓库、批次。支持全仓盘点与库存流水。</p>
|
||||
<a href="/features/inventory.html" class="fs-xs text-brand mt-12 d-inline-block">了解更多 →</a>
|
||||
</div>
|
||||
<div class="module-card card p-24 transition">
|
||||
<div class="icon-box-lg bg-brand-50 text-brand mb-16"><i data-lucide="wallet" class="icon-md"></i></div>
|
||||
<h3 class="fs-xl fw-6 text-brand-900 m-0 mb-6 ls-1">财务管理</h3>
|
||||
<p class="fs-sm lh-16 text-muted m-0">审批同步生成应付应收,月度汇总。结清一键完成,可按往来单位筛选导出。</p>
|
||||
</div>
|
||||
<div class="module-card card p-24 transition">
|
||||
<div class="icon-box-lg bg-brand-50 text-brand mb-16"><i data-lucide="truck" class="icon-md"></i></div>
|
||||
<h3 class="fs-xl fw-6 text-brand-900 m-0 mb-6 ls-1">往来单位</h3>
|
||||
<p class="fs-sm lh-16 text-muted m-0">供应商与客户统一档案管理。卡号、初始余额、联系信息集中维护。</p>
|
||||
</div>
|
||||
<div class="module-card card p-24 transition">
|
||||
<div class="icon-box-lg bg-brand-50 text-brand mb-16"><i data-lucide="database" class="icon-md"></i></div>
|
||||
<h3 class="fs-xl fw-6 text-brand-900 m-0 mb-6 ls-1">基础数据</h3>
|
||||
<p class="fs-sm lh-16 text-muted m-0">商品名称、系列、规格三级字典,单品数量配置。先建字典,后录单据。</p>
|
||||
</div>
|
||||
<div class="module-card card p-24 transition">
|
||||
<div class="icon-box-lg bg-brand-50 text-brand mb-16"><i data-lucide="settings" class="icon-md"></i></div>
|
||||
<h3 class="fs-xl fw-6 text-brand-900 m-0 mb-6 ls-1">系统设置</h3>
|
||||
<p class="fs-sm lh-16 text-muted m-0">用户与权限、多仓库、编号规则、参数与数据导入 — 自助配置,无需开发。</p>
|
||||
</div>
|
||||
<div class="module-card card p-24 transition">
|
||||
<div class="icon-box-lg bg-brand-50 text-brand mb-16"><i data-lucide="qr-code" class="icon-md"></i></div>
|
||||
<h3 class="fs-xl fw-6 text-brand-900 m-0 mb-6 ls-1">扫码防伪</h3>
|
||||
<p class="fs-sm lh-16 text-muted m-0">每件商品生成专属二维码,顾客扫码可查看商品名称、批次、出售门店与「已通过岩美防伪验证」标识。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ====================== WORKFLOW ====================== -->
|
||||
<section class="section bg-25" id="workflow">
|
||||
<div class="container">
|
||||
<p class="eyebrow">业务流程</p>
|
||||
<h2 class="section-title">审核驱动业务流,每一笔交易都可追溯</h2>
|
||||
<p class="section-sub">从单据录入到库存变动、账款生成,每一步都有清晰状态与经办人记录。</p>
|
||||
<div class="workflow-grid">
|
||||
<div>
|
||||
<h3 class="fs-2xl fw-6 text-brand-900 m-0 mb-12">一张入库单的完整生命周期</h3>
|
||||
<div class="d-flex flex-col gap-14 mt-24">
|
||||
<div class="wf-step"><div class="wf-num">1</div><div><h4 class="mt-4 mb-4 fs-md fw-6 text-gray-9">录入草稿</h4><p class="m-0 fs-sm text-muted lh-15">选择仓库、供应商、入库日期,逐行录入商品明细。系统自动算金额,可随时保存草稿。</p></div></div>
|
||||
<div class="wf-step"><div class="wf-num">2</div><div><h4 class="mt-4 mb-4 fs-md fw-6 text-gray-9">提交审核</h4><p class="m-0 fs-sm text-muted lh-15">确认无误后提交。单据进入「待审核」,此时不可再编辑,保证数据完整。</p></div></div>
|
||||
<div class="wf-step active"><div class="wf-num">3</div><div><h4 class="mt-4 mb-4 fs-md fw-6 text-gray-9">审批通过</h4><p class="m-0 fs-sm text-muted lh-15">操作员及以上权限审批。通过后库存自动 +N,同时生成一笔应付账款,账款挂在对应供应商名下。</p></div></div>
|
||||
<div class="wf-step"><div class="wf-num">4</div><div><h4 class="mt-4 mb-4 fs-md fw-6 text-gray-9">结清账款</h4><p class="m-0 fs-sm text-muted lh-15">财务结算时一键「结清」,财务记录由「未结清」变为「已结清」。账目清晰,按月汇总。</p></div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flow-vis">
|
||||
<div class="flow-doc">
|
||||
<div class="flow-doc-head">
|
||||
<div class="flow-doc-id">RK20260523000007</div>
|
||||
<div class="flow-doc-status approved">已审批</div>
|
||||
</div>
|
||||
<div class="flow-row head"><div>商品</div><div>规格</div><div>数量</div><div>金额</div></div>
|
||||
<div class="flow-row"><div>茅台飞天</div><div>500ml×6</div><div>4</div><div>¥8,000</div></div>
|
||||
<div class="flow-row"><div>五粮液</div><div>500ml</div><div>20</div><div>¥18,400</div></div>
|
||||
<div class="flow-row"><div>剑南春</div><div>500ml×6</div><div>2</div><div>¥4,200</div></div>
|
||||
<div class="flow-row"><div>拉菲传奇</div><div>750ml</div><div>10</div><div>¥17,800</div></div>
|
||||
<div class="flow-row foot"><div>合计</div><div></div><div>36</div><div>¥48,400</div></div>
|
||||
</div>
|
||||
<div class="flow-arrow"><i data-lucide="arrow-down" class="icon"></i></div>
|
||||
<div class="flow-effects">
|
||||
<div class="flow-effect"><div class="flow-effect-label"><i data-lucide="check-circle-2" class="icon"></i>库存更新</div><div class="flow-effect-val">+36 瓶</div></div>
|
||||
<div class="flow-effect"><div class="flow-effect-label"><i data-lucide="check-circle-2" class="icon"></i>应付账款</div><div class="flow-effect-val">¥48,400</div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ====================== PLATFORMS ====================== -->
|
||||
<section class="section" id="platforms">
|
||||
<div class="container">
|
||||
<p class="eyebrow">多端覆盖</p>
|
||||
<h2 class="section-title">一个账号,五端同步</h2>
|
||||
<p class="section-sub">办公室开台账,仓库扫码盘点,老板出差查看实时报表。同一份数据,任意终端访问。</p>
|
||||
<div class="grid-5 gap-12 mt-48">
|
||||
<div class="platform-card card py-24 px-16 text-center transition"><i data-lucide="globe" class="icon-xl text-brand mx-auto mb-12"></i><h4 class="m-0 mb-4 fs-md fw-6 text-brand-900">Web</h4><p class="m-0 fs-xs text-muted">主流浏览器,无需安装</p></div>
|
||||
<div class="platform-card card py-24 px-16 text-center transition"><i data-lucide="monitor" class="icon-xl text-brand mx-auto mb-12"></i><h4 class="m-0 mb-4 fs-md fw-6 text-brand-900">Windows</h4><p class="m-0 fs-xs text-muted">桌面客户端</p></div>
|
||||
<div class="platform-card card py-24 px-16 text-center transition"><i data-lucide="laptop" class="icon-xl text-brand mx-auto mb-12"></i><h4 class="m-0 mb-4 fs-md fw-6 text-brand-900">macOS</h4><p class="m-0 fs-xs text-muted">原生应用</p></div>
|
||||
<div class="platform-card card py-24 px-16 text-center transition"><i data-lucide="smartphone" class="icon-xl text-brand mx-auto mb-12"></i><h4 class="m-0 mb-4 fs-md fw-6 text-brand-900">iOS</h4><p class="m-0 fs-xs text-muted">TestFlight 内测中</p></div>
|
||||
<div class="platform-card card py-24 px-16 text-center transition"><i data-lucide="tablet-smartphone" class="icon-xl text-brand mx-auto mb-12"></i><h4 class="m-0 mb-4 fs-md fw-6 text-brand-900">Android</h4><p class="m-0 fs-xs text-muted">手机 / 平板</p></div>
|
||||
</div>
|
||||
<div class="platforms-visual">
|
||||
<div class="pv-text">
|
||||
<h3>仓库里也能用得顺手</h3>
|
||||
<p>移动端扫码即查库存、入库、出库,断网也能继续工作,恢复网络后自动同步。</p>
|
||||
<div class="d-flex flex-col gap-10">
|
||||
<div class="pv-feature"><i data-lucide="scan-line" class="icon"></i>扫码即查商品 · 商品二维码防伪</div>
|
||||
<div class="pv-feature"><i data-lucide="wifi-off" class="icon"></i>离线缓存,断网继续作业</div>
|
||||
<div class="pv-feature"><i data-lucide="layout-grid" class="icon"></i>窄屏自动切换卡片流布局</div>
|
||||
<div class="pv-feature"><i data-lucide="camera" class="icon"></i>手机拍照直接添加商品图片</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="device-stack">
|
||||
<div class="device-laptop">
|
||||
<div class="device-laptop-screen">
|
||||
<div class="device-laptop-mock-row brand"></div>
|
||||
<div class="device-laptop-mock-row short"></div>
|
||||
<div class="device-laptop-mock-row"></div>
|
||||
<div class="device-laptop-mock-row short"></div>
|
||||
<div class="device-laptop-mock-row"></div>
|
||||
<div class="device-laptop-mock-row short"></div>
|
||||
<div class="device-laptop-mock-row"></div>
|
||||
<div class="device-laptop-mock-row short"></div>
|
||||
<div class="d-flex gap-6 mt-10">
|
||||
<div style="flex:1;height:50px;background:var(--gray-100);border-radius:3px"></div>
|
||||
<div style="flex:1;height:50px;background:var(--brand-100);border-radius:3px"></div>
|
||||
<div style="flex:1;height:50px;background:var(--gray-100);border-radius:3px"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="device-phone">
|
||||
<div class="device-phone-screen">
|
||||
<div class="top"></div>
|
||||
<div style="height:8px;background:var(--gray-200);border-radius:2px;margin-bottom:4px;width:70%"></div>
|
||||
<div style="height:8px;background:var(--gray-200);border-radius:2px;margin-bottom:8px;width:50%"></div>
|
||||
<div style="background:var(--gray-0);border:1px solid var(--gray-200);border-radius:4px;padding:6px;margin-bottom:4px"><div style="height:6px;background:var(--brand-300);border-radius:1px;width:60%;margin-bottom:3px"></div><div style="height:4px;background:var(--gray-200);border-radius:1px;width:80%"></div></div>
|
||||
<div style="background:var(--gray-0);border:1px solid var(--gray-200);border-radius:4px;padding:6px;margin-bottom:4px"><div style="height:6px;background:var(--brand-300);border-radius:1px;width:50%;margin-bottom:3px"></div><div style="height:4px;background:var(--gray-200);border-radius:1px;width:70%"></div></div>
|
||||
<div style="background:var(--gray-0);border:1px solid var(--gray-200);border-radius:4px;padding:6px;margin-bottom:4px"><div style="height:6px;background:var(--brand-300);border-radius:1px;width:55%;margin-bottom:3px"></div><div style="height:4px;background:var(--gray-200);border-radius:1px;width:75%"></div></div>
|
||||
<div style="position:absolute;bottom:8px;left:8px;right:8px;background:var(--brand-500);height:22px;border-radius:4px;display:grid;place-items:center"><div style="height:6px;background:rgba(255,255,255,0.9);border-radius:1px;width:50%"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ====================== REPORTS ====================== -->
|
||||
<section class="section bg-25" id="reports">
|
||||
<div class="container">
|
||||
<p class="eyebrow">数据洞察</p>
|
||||
<h2 class="section-title">把每一瓶酒的进出,转成可分析的数据</h2>
|
||||
<p class="section-sub">报表自动生成,可按日、按月、按往来单位维度切换。导出 Excel 一键完成。</p>
|
||||
<div class="reports-grid">
|
||||
<div class="card p-24 shadow-sm">
|
||||
<div class="report-head">
|
||||
<div><h4 class="fs-md fw-6 text-gray-9 m-0">本月财务流水</h4><p class="fs-xs text-muted mt-2 m-0">2026 年 5 月 · 应付与应收对比</p></div>
|
||||
<div class="report-tabs">
|
||||
<div class="report-tab">日</div>
|
||||
<div class="report-tab active">月</div>
|
||||
<div class="report-tab">季</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chart">
|
||||
<svg viewBox="0 0 600 200" preserveAspectRatio="none">
|
||||
<line x1="0" y1="50" x2="600" y2="50" stroke="#ECEFF4" stroke-width="1"/>
|
||||
<line x1="0" y1="100" x2="600" y2="100" stroke="#ECEFF4" stroke-width="1"/>
|
||||
<line x1="0" y1="150" x2="600" y2="150" stroke="#ECEFF4" stroke-width="1"/>
|
||||
<path d="M 20 140 L 80 110 L 140 130 L 200 90 L 260 100 L 320 70 L 380 85 L 440 50 L 500 65 L 560 40 L 560 190 L 20 190 Z" fill="rgba(37,99,172,0.10)" />
|
||||
<path d="M 20 140 L 80 110 L 140 130 L 200 90 L 260 100 L 320 70 L 380 85 L 440 50 L 500 65 L 560 40" fill="none" stroke="#2563AC" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M 20 160 L 80 140 L 140 145 L 200 120 L 260 130 L 320 105 L 380 115 L 440 90 L 500 95 L 560 70 L 560 190 L 20 190 Z" fill="rgba(139,35,49,0.08)" />
|
||||
<path d="M 20 160 L 80 140 L 140 145 L 200 120 L 260 130 L 320 105 L 380 115 L 440 90 L 500 95 L 560 70" fill="none" stroke="#8B2331" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<circle cx="560" cy="40" r="4" fill="#2563AC" />
|
||||
<circle cx="560" cy="40" r="8" fill="rgba(37,99,172,0.20)" />
|
||||
<circle cx="560" cy="70" r="4" fill="#8B2331" />
|
||||
</svg>
|
||||
<div class="d-flex gap-16 fs-xs text-muted mt-8">
|
||||
<span class="d-flex items-center gap-4"><span style="width:8px;height:8px;background:var(--brand-500);border-radius:50%"></span>应付账款</span>
|
||||
<span class="d-flex items-center gap-4"><span style="width:8px;height:8px;background:var(--accent-500);border-radius:50%"></span>应收账款</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="chart-stats">
|
||||
<div><div class="fs-xs text-muted mb-4">本月应付</div><div class="fs-lg fw-6 text-brand-900 tabular">¥248,600<small>↑ 12%</small></div></div>
|
||||
<div><div class="fs-xs text-muted mb-4">本月应收</div><div class="fs-lg fw-6 text-brand-900 tabular">¥182,400<small>↑ 8%</small></div></div>
|
||||
<div><div class="fs-xs text-muted mb-4">已结清率</div><div class="fs-lg fw-6 text-brand-900 tabular">86.4%<small>↑ 4%</small></div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-col gap-24">
|
||||
<div class="d-grid gap-16" style="grid-template-columns:36px 1fr">
|
||||
<div class="icon-box-md bg-brand-50 text-brand"><i data-lucide="bar-chart-3" class="icon-md"></i></div>
|
||||
<div><h4 class="m-0 mb-4 fs-lg fw-6 text-brand-900">财务汇总自动生成</h4><p class="m-0 fs-sm text-muted lh-16">每月应付应收按往来单位、按时间维度自动汇总。无需手工统计,月底一键导出。</p></div>
|
||||
</div>
|
||||
<div class="d-grid gap-16" style="grid-template-columns:36px 1fr">
|
||||
<div class="icon-box-md bg-brand-50 text-brand"><i data-lucide="trending-down" class="icon-md"></i></div>
|
||||
<div><h4 class="m-0 mb-4 fs-lg fw-6 text-brand-900">损耗趋势可见</h4><p class="m-0 fs-sm text-muted lh-16">每次盘点的账实差异自动累计为损耗数据,结合周转率帮你发现异常 SKU。</p></div>
|
||||
</div>
|
||||
<div class="d-grid gap-16" style="grid-template-columns:36px 1fr">
|
||||
<div class="icon-box-md bg-brand-50 text-brand"><i data-lucide="file-spreadsheet" class="icon-md"></i></div>
|
||||
<div><h4 class="m-0 mb-4 fs-lg fw-6 text-brand-900">Excel 进出自由</h4><p class="m-0 fs-sm text-muted lh-16">历史数据可批量导入,月度报表可一键导出。与会计、税务系统无缝衔接。</p></div>
|
||||
</div>
|
||||
<div class="d-grid gap-16" style="grid-template-columns:36px 1fr">
|
||||
<div class="icon-box-md bg-brand-50 text-brand"><i data-lucide="alert-triangle" class="icon-md"></i></div>
|
||||
<div><h4 class="m-0 mb-4 fs-lg fw-6 text-brand-900">库存状态实时标识</h4><p class="m-0 fs-sm text-muted lh-16">设置商品最低库存量,系统自动标记「充足 / 偏低 / 告急」,一眼识别需补货的 SKU。</p></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ====================== SECURITY ====================== -->
|
||||
<section class="section bg-25">
|
||||
<div class="container">
|
||||
<p class="eyebrow">安全与权限</p>
|
||||
<h2 class="section-title">企业级权限控制,操作可追溯</h2>
|
||||
<p class="section-sub">四级角色细分权限,每一次单据操作都有经办人记录。数据备份与审批留痕,按合规要求设计。</p>
|
||||
<div class="grid-4 gap-16 mt-48">
|
||||
<div class="card p-24"><i data-lucide="users" class="icon-lg text-brand mb-14"></i><h4 class="fs-lg fw-6 text-brand-900 m-0 mb-6">四级角色</h4><p class="m-0 fs-sm text-muted lh-15">超级管理员、管理员、操作员、只读。按岗位分配,最小权限原则。</p></div>
|
||||
<div class="card p-24"><i data-lucide="file-clock" class="icon-lg text-brand mb-14"></i><h4 class="fs-lg fw-6 text-brand-900 m-0 mb-6">操作审计</h4><p class="m-0 fs-sm text-muted lh-15">谁、什么时候、做了什么 — 每一笔单据都有经办人与时间戳。</p></div>
|
||||
<div class="card p-24"><i data-lucide="shield-check" class="icon-lg text-brand mb-14"></i><h4 class="fs-lg fw-6 text-brand-900 m-0 mb-6">审批留痕</h4><p class="m-0 fs-sm text-muted lh-15">审批不可撤销,单据从草稿到结清的每一步状态完整保留。</p></div>
|
||||
<div class="card p-24"><i data-lucide="hard-drive" class="icon-lg text-brand mb-14"></i><h4 class="fs-lg fw-6 text-brand-900 m-0 mb-6">每日备份</h4><p class="m-0 fs-sm text-muted lh-15">云端每日自动备份,支持私有部署。数据始终在你的控制下。</p></div>
|
||||
</div>
|
||||
<div class="roles-table">
|
||||
<div class="roles-row head">
|
||||
<div>角色</div><div>说明</div>
|
||||
<div class="text-center">查看</div><div class="text-center">录入</div>
|
||||
<div class="text-center">审批</div><div class="text-center">设置</div>
|
||||
</div>
|
||||
<div class="roles-row"><div class="fw-6 text-brand-900">超级管理员</div><div class="text-muted fs-sm">系统最高权限,含数据清空</div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check"><i data-lucide="check" class="icon"></i></div></div>
|
||||
<div class="roles-row"><div class="fw-6 text-brand-900">管理员</div><div class="text-muted fs-sm">门店管理人员,含用户与门店设置</div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check"><i data-lucide="check" class="icon"></i></div></div>
|
||||
<div class="roles-row"><div class="fw-6 text-brand-900">操作员</div><div class="text-muted fs-sm">日常录入与审核单据</div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check no"><i data-lucide="minus" class="icon"></i></div></div>
|
||||
<div class="roles-row"><div class="fw-6 text-brand-900">只读</div><div class="text-muted fs-sm">仅查看,不可修改任何数据</div><div class="role-check"><i data-lucide="check" class="icon"></i></div><div class="role-check no"><i data-lucide="minus" class="icon"></i></div><div class="role-check no"><i data-lucide="minus" class="icon"></i></div><div class="role-check no"><i data-lucide="minus" class="icon"></i></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ====================== PRICING ====================== -->
|
||||
<section class="section" id="pricing">
|
||||
<div class="container">
|
||||
<p class="eyebrow">价格</p>
|
||||
<h2 class="section-title">按门店付费,明码标价</h2>
|
||||
<p class="section-sub">所有方案均含全功能、五端同步、无限单据、技术支持。仅在用户数、门店数、部署方式上区分。</p>
|
||||
<div class="grid-3 gap-16 mt-48">
|
||||
<div class="card d-flex flex-col" style="padding:32px 28px">
|
||||
<div class="fs-sm text-muted fw-5 mb-4">入门方案</div>
|
||||
<div class="fs-2xl fw-6 text-brand-900 mb-16">试用版</div>
|
||||
<div class="price-amount"><span class="currency">¥</span><span class="num">0</span><span class="unit">/ 30 天</span></div>
|
||||
<div class="fs-sm text-muted mb-24">体验完整功能,无需绑卡</div>
|
||||
<ul class="price-features d-flex flex-col gap-10 p-0 m-0 mb-32" style="list-style:none">
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>单门店 · 最多 3 用户</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>全部模块开放</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>Web 端 + 移动端</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>邮件技术支持</li>
|
||||
</ul>
|
||||
<a href="/register/" class="btn btn-secondary w-full justify-center mt-auto">免费开通</a>
|
||||
</div>
|
||||
<div class="price-card featured card d-flex flex-col" style="padding:32px 28px">
|
||||
<div class="fs-sm text-muted fw-5 mb-4">标准方案</div>
|
||||
<div class="fs-2xl fw-6 text-brand-900 mb-16">单店版</div>
|
||||
<div class="price-amount"><span class="currency">¥</span><span class="num">299</span><span class="unit">/ 月</span></div>
|
||||
<div class="fs-sm text-muted mb-24">年付折扣 ¥2,988 / 年(约省 ¥600)</div>
|
||||
<ul class="price-features d-flex flex-col gap-10 p-0 m-0 mb-32" style="list-style:none">
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>单门店 · 最多 10 用户</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>全部模块 + 五端同步</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>无限单据、无限商品</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>云端每日备份</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>工作日 9-18 点支持</li>
|
||||
</ul>
|
||||
<a href="/register/" class="btn btn-primary w-full justify-center mt-auto">免费试用 30 天</a>
|
||||
</div>
|
||||
<div class="price-card custom card d-flex flex-col" style="padding:32px 28px">
|
||||
<div class="fs-sm text-muted fw-5 mb-4">企业方案</div>
|
||||
<div class="fs-2xl fw-6 text-brand-900 mb-16">连锁版</div>
|
||||
<div class="price-amount"><span class="num">定制</span></div>
|
||||
<div class="fs-sm text-muted mb-24">多门店连锁,含私有部署</div>
|
||||
<ul class="price-features d-flex flex-col gap-10 p-0 m-0 mb-32" style="list-style:none">
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>多门店 · 总部数据汇总</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>不限用户数</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>支持私有部署 / 内网</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>专属实施与培训服务</li>
|
||||
<li class="d-flex items-start gap-8 fs-sm text-gray-7"><i data-lucide="check" class="icon-sm text-brand flex-shrink-0 mt-2"></i>7×24 专属客户经理</li>
|
||||
</ul>
|
||||
<a href="mailto:yammy2023@163.com" class="btn btn-secondary w-full justify-center mt-auto">联系销售</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ====================== FAQ ====================== -->
|
||||
<section class="section bg-25" id="faq">
|
||||
<div class="container">
|
||||
<p class="eyebrow">常见问题</p>
|
||||
<h2 class="section-title">购买前常见的问题</h2>
|
||||
<div class="mt-48" style="max-width:880px">
|
||||
<details class="card mb-12 overflow-hidden" open>
|
||||
<summary class="faq-q">支持哪些操作系统和设备?<i data-lucide="plus" class="icon"></i></summary>
|
||||
<div class="fs-md text-muted lh-17" style="padding:0 24px 22px">系统支持 Windows、macOS 桌面客户端,iOS 与 Android 移动 App,以及主流浏览器的 Web 版本。同一账号可在五端同步使用,数据实时更新。</div>
|
||||
</details>
|
||||
<details class="card mb-12 overflow-hidden">
|
||||
<summary class="faq-q">没有网络时还能操作吗?<i data-lucide="plus" class="icon"></i></summary>
|
||||
<div class="fs-md text-muted lh-17" style="padding:0 24px 22px">网络中断时,系统会自动切换到离线模式,展示上次加载的缓存数据。库存查询与单据录入可继续,恢复网络后自动同步至云端。审批与生成账款类操作需要网络。</div>
|
||||
</details>
|
||||
<details class="card mb-12 overflow-hidden">
|
||||
<summary class="faq-q">能否从原有 Excel / 旧系统迁移数据?<i data-lucide="plus" class="icon"></i></summary>
|
||||
<div class="fs-md text-muted lh-17" style="padding:0 24px 22px">可以。「系统设置 → 数据导入」支持往来单位、商品名称/系列/规格、库存等数据的批量 Excel 导入,按提供的模板填写即可。导入过程中会显示成功条数与失败原因。</div>
|
||||
</details>
|
||||
<details class="card mb-12 overflow-hidden">
|
||||
<summary class="faq-q">审批通过后发现错误,怎么办?<i data-lucide="plus" class="icon"></i></summary>
|
||||
<div class="fs-md text-muted lh-17" style="padding:0 24px 22px">审批通过后操作不可撤销。如发现录入错误,可由具备权限的用户新建一张反向单据(如:误入 10 箱则再出库 10 箱)来修正库存与应收应付,审批链完整保留。</div>
|
||||
</details>
|
||||
<details class="card mb-12 overflow-hidden">
|
||||
<summary class="faq-q">数据安全如何保障?<i data-lucide="plus" class="icon"></i></summary>
|
||||
<div class="fs-md text-muted lh-17" style="padding:0 24px 22px">云端版采用每日自动备份策略,数据传输全程 HTTPS 加密。企业版支持私有部署,数据存放在你自己的服务器,岩美不接触任何业务数据。</div>
|
||||
</details>
|
||||
<details class="card mb-12 overflow-hidden">
|
||||
<summary class="faq-q">可以试用多长时间?<i data-lucide="plus" class="icon"></i></summary>
|
||||
<div class="fs-md text-muted lh-17" style="padding:0 24px 22px">注册后即可免费试用 30 天,全部功能开放、五端可用,无需绑定支付方式。30 天到期后,升级到单店版(¥299/月)即可继续使用,已录入的数据完整保留。</div>
|
||||
</details>
|
||||
<details class="card mb-12 overflow-hidden">
|
||||
<summary class="faq-q">只读账号能做什么?<i data-lucide="plus" class="icon"></i></summary>
|
||||
<div class="fs-md text-muted lh-17" style="padding:0 24px 22px">只读账号可查看全部数据,包括单据、库存、财务、报表,并可导出 Excel。但不能新建、修改、审批、删除任何数据。适合财务、税务、审计岗位的查阅需求。</div>
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ====================== CTA ====================== -->
|
||||
<section>
|
||||
<div class="container">
|
||||
<div class="cta-banner">
|
||||
<div>
|
||||
<h2>用一杯咖啡的时间,<br/>看看你的酒库到底有多少瓶。</h2>
|
||||
<p>30 天免费试用,无需绑卡。任何时间可取消,已录入数据保留 90 天。</p>
|
||||
</div>
|
||||
<div class="d-flex flex-col gap-12 items-start">
|
||||
<a href="/register/" class="btn btn-primary btn-lg">立即开通试用<i data-lucide="arrow-right" class="icon"></i></a>
|
||||
<a href="mailto:yammy2023@163.com?subject=咨询岩美连锁版" class="btn btn-secondary btn-lg"><i data-lucide="mail" class="icon"></i>邮件咨询</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<div class="footer-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
<p>为酒行与酒店设计的库存、审核、财务一体化管理平台。</p>
|
||||
<div class="footer-contact">
|
||||
<div><a href="mailto:yammy2023@163.com">yammy2023@163.com</a></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>产品</h5>
|
||||
<ul>
|
||||
<li><a href="/#modules">核心模块</a></li>
|
||||
<li><a href="/#platforms">多端覆盖</a></li>
|
||||
<li><a href="/#reports">数据洞察</a></li>
|
||||
<li><a href="/#pricing">价格方案</a></li>
|
||||
<li><a href="/download/">版本更新</a></li>
|
||||
<li><a href="/changelog/">更新日志</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>资源</h5>
|
||||
<ul>
|
||||
<li><a href="/docs/">使用手册</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>客户支持</h5>
|
||||
<ul>
|
||||
<li><a href="/#faq">常见问题</a></li>
|
||||
<li><a href="mailto:yammy2023@163.com">联系我们</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>公司</h5>
|
||||
<ul>
|
||||
<li><a href="/register/">注册门店</a></li>
|
||||
<li><a href="/terms/">服务条款</a></li>
|
||||
<li><a href="/privacy/">隐私政策</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<div>© 2026 岩美科技 · 保留所有权利</div>
|
||||
<div>沪 ICP 备 2026000000 号 · 沪公网安备 31010000000000 号</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<script src="/assets/nav.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Vendored
+234
@@ -0,0 +1,234 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light" />
|
||||
<title>隐私政策 · 岩美酒库管理系统</title>
|
||||
<meta name="description" content="岩美酒库管理系统隐私政策,说明我们如何收集、使用和保护您的数据。" />
|
||||
<link rel="stylesheet" href="/assets/color.css" />
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
|
||||
<style>
|
||||
.page-header {
|
||||
padding: 56px 0 40px;
|
||||
background: linear-gradient(180deg,#FBFCFD 0%,#FFFFFF 80%);
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
}
|
||||
.ph-eyebrow {
|
||||
font-size: var(--text-xs); font-weight: 600;
|
||||
letter-spacing: .12em; color: var(--brand-500);
|
||||
text-transform: uppercase; margin: 0 0 10px;
|
||||
}
|
||||
.ph-title { font-size: 34px; font-weight: 700; color: var(--brand-900); margin: 0 0 8px; }
|
||||
.ph-meta { font-size: 13px; color: var(--gray-400); }
|
||||
|
||||
.legal-body { padding: 52px 0 80px; }
|
||||
.legal-content {
|
||||
max-width: 720px;
|
||||
font-size: 14px; line-height: 1.8; color: var(--gray-700);
|
||||
}
|
||||
.legal-content h2 {
|
||||
font-size: 17px; font-weight: 700;
|
||||
color: var(--brand-900); margin: 36px 0 12px;
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
}
|
||||
.legal-content h2:first-child { margin-top: 0; }
|
||||
.legal-content p { margin: 0 0 12px; }
|
||||
.legal-content ul { margin: 0 0 12px; padding-left: 20px; }
|
||||
.legal-content ul li { margin-bottom: 6px; }
|
||||
.legal-content strong { color: var(--gray-900); }
|
||||
.legal-content a { color: var(--brand-500); }
|
||||
|
||||
.summary-box {
|
||||
background: #f0f7ff;
|
||||
border: 1px solid #bfdbfe;
|
||||
border-radius: 10px;
|
||||
padding: 18px 22px;
|
||||
margin-bottom: 32px;
|
||||
font-size: 13px;
|
||||
color: var(--gray-700);
|
||||
line-height: 1.7;
|
||||
}
|
||||
.summary-box strong { color: var(--brand-700); }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="topnav">
|
||||
<div class="topnav-inner">
|
||||
<a href="/" class="topnav-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
</a>
|
||||
<div class="topnav-links">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
</div>
|
||||
<div class="topnav-cta" id="nav-cta">
|
||||
<a href="/register/" class="btn btn-primary btn-sm">注册门店</a>
|
||||
</div>
|
||||
<button class="nav-hamburger" id="nav-hamburger" aria-label="菜单" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-mobile-menu" id="nav-mobile-menu">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存管理</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
<div class="nav-mobile-cta" id="nav-mobile-cta">
|
||||
<a href="/register/" class="btn btn-primary">注册门店</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="page-header">
|
||||
<div class="container">
|
||||
<p class="ph-eyebrow">Legal</p>
|
||||
<h1 class="ph-title">隐私政策</h1>
|
||||
<p class="ph-meta">最后更新:2026 年 6 月 1 日 · 有效期自 2026 年 6 月 1 日起</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="legal-body">
|
||||
<div class="container">
|
||||
<div class="legal-content">
|
||||
|
||||
<div class="summary-box">
|
||||
<strong>简要说明</strong>:我们收集您的数据只为提供服务,不出售给第三方,不用于广告推送。您的业务数据(商品、库存、财务等)属于您,您可以随时导出或要求删除。
|
||||
</div>
|
||||
|
||||
<h2>一、我们是谁</h2>
|
||||
<p>岩美技术有限公司(以下简称「我们」)是「岩美酒库管理系统」的运营主体,注册地:中华人民共和国上海市。本隐私政策说明我们在您使用本系统过程中如何收集、使用、存储和保护您的个人信息及业务数据。</p>
|
||||
|
||||
<h2>二、我们收集哪些数据</h2>
|
||||
<p><strong>账号信息</strong>:注册时您提供的门店名称、联系邮箱、联系电话(选填)等。</p>
|
||||
<p><strong>业务数据</strong>:您主动录入的商品档案、库存记录、入库/出库单、财务数据、往来单位信息等。这些数据完全由您控制。</p>
|
||||
<p><strong>设备信息</strong>:客户端应用会生成一个随机设备标识符(UUID),用于授权码的多设备管理,不与任何个人身份信息关联。</p>
|
||||
<p><strong>使用日志</strong>:服务器会记录访问日志(IP 地址、请求时间、操作类型),用于安全审计和异常排查,保留期不超过 90 天。</p>
|
||||
<p><strong>异常上报</strong>:客户端发生崩溃或技术性错误时,会自动上报错误堆栈信息,不包含任何业务数据或个人信息。</p>
|
||||
<p><strong>意见反馈</strong>:您主动提交的文字反馈和图片,用于产品改进。</p>
|
||||
|
||||
<h2>三、我们如何使用数据</h2>
|
||||
<ul>
|
||||
<li><strong>提供服务</strong>:存储和处理您的业务数据,确保您可以随时访问</li>
|
||||
<li><strong>账号验证</strong>:通过邮箱进行密码重置、授权到期提醒等必要通知</li>
|
||||
<li><strong>安全防护</strong>:检测异常登录、防止未授权访问</li>
|
||||
<li><strong>技术支持</strong>:利用日志和异常报告排查您反馈的问题</li>
|
||||
<li><strong>产品改进</strong>:分析匿名化的使用模式以优化功能(不关联个人身份)</li>
|
||||
</ul>
|
||||
<p>我们<strong>不会</strong>:将您的数据出售给第三方;将您的业务数据用于广告定向;在未获得您明确同意的情况下将数据用于上述目的以外的用途。</p>
|
||||
|
||||
<h2>四、数据存储与安全</h2>
|
||||
<p><strong>存储位置</strong>:数据存储在中国大陆的云服务器上(AWS 上海区域)。</p>
|
||||
<p><strong>传输安全</strong>:所有数据传输均使用 HTTPS/TLS 加密。</p>
|
||||
<p><strong>访问控制</strong>:多租户隔离架构确保不同门店的数据严格隔离,任何数据库查询都附带门店 ID 条件。</p>
|
||||
<p><strong>备份</strong>:数据库每日自动备份,备份保留 7 天,用于灾难恢复。</p>
|
||||
<p><strong>密码存储</strong>:密码经 bcrypt 哈希处理后存储,我们无法获取您的明文密码。</p>
|
||||
|
||||
<h2>五、数据共享</h2>
|
||||
<p>我们仅在以下有限情况下与第三方共享数据:</p>
|
||||
<ul>
|
||||
<li><strong>基础设施服务商</strong>:AWS(云计算)提供存储和计算基础设施,他们受严格的数据处理协议约束</li>
|
||||
<li><strong>法律要求</strong>:当法律法规或有权机关要求披露时,我们会依法配合,但会在法律允许范围内尽量通知您</li>
|
||||
</ul>
|
||||
<p>除上述情况外,我们不与任何第三方共享您的数据。</p>
|
||||
|
||||
<h2>六、公开商品页</h2>
|
||||
<p>您选择「公开」的商品信息(名称、图片、规格等)会通过扫码链接向访客展示。您可以随时在系统内取消商品的公开状态。门店联系方式(如微信号)也仅在您主动填写后才会在公开页显示。</p>
|
||||
|
||||
<h2>七、您的权利</h2>
|
||||
<ul>
|
||||
<li><strong>访问</strong>:随时在系统内查看您的所有业务数据</li>
|
||||
<li><strong>导出</strong>:通过系统内导出功能获取数据副本</li>
|
||||
<li><strong>更正</strong>:修改账号信息或业务数据</li>
|
||||
<li><strong>删除</strong>:注销账号后 30 天内数据将被永久删除</li>
|
||||
<li><strong>投诉</strong>:如认为我们违反本政策,可发送邮件至 <a href="mailto:yammy2023@163.com">yammy2023@163.com</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>八、Cookie 与本地存储</h2>
|
||||
<p>Web 端使用 localStorage 存储登录 token(不使用 Cookie),用于维持登录状态。客户端应用使用系统本地存储保存登录凭证和设备标识符。我们不使用第三方追踪 Cookie。</p>
|
||||
|
||||
<h2>九、未成年人</h2>
|
||||
<p>本系统面向企业用户,不面向 18 岁以下未成年人。如发现未成年人注册账号,请联系我们删除相关信息。</p>
|
||||
|
||||
<h2>十、政策变更</h2>
|
||||
<p>我们可能根据业务变化或法律要求更新本政策。重大变更将通过系统内通知或注册邮件提前告知,并在新版本生效前给予至少 7 天的知悉期。</p>
|
||||
|
||||
<h2>联系我们</h2>
|
||||
<p>如对本隐私政策有任何疑问或建议,请联系:</p>
|
||||
<ul>
|
||||
<li>邮箱:<a href="mailto:yammy2023@163.com">yammy2023@163.com</a></li>
|
||||
<li>官网:<a href="https://jiu.yanmei.com">jiu.yanmei.com</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="site-footer">
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<div class="footer-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
<p>为酒行与酒店设计的库存、审核、财务一体化管理平台。</p>
|
||||
<div class="footer-contact">
|
||||
<div><a href="mailto:yammy2023@163.com">yammy2023@163.com</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>产品</h5>
|
||||
<ul>
|
||||
<li><a href="/#modules">核心模块</a></li>
|
||||
<li><a href="/#platforms">多端覆盖</a></li>
|
||||
<li><a href="/#pricing">价格方案</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
<li><a href="/changelog/">更新日志</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>资源</h5>
|
||||
<ul>
|
||||
<li><a href="/docs/">使用手册</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>客户支持</h5>
|
||||
<ul>
|
||||
<li><a href="/#faq">常见问题</a></li>
|
||||
<li><a href="mailto:yammy2023@163.com">联系我们</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>公司</h5>
|
||||
<ul>
|
||||
<li><a href="/register/">注册门店</a></li>
|
||||
<li><a href="/terms/">服务条款</a></li>
|
||||
<li><a href="/privacy/">隐私政策</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<div>© 2026 岩美科技 · 保留所有权利</div>
|
||||
<div>沪 ICP 备 2026000000 号 · 沪公网安备 31010000000000 号</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/assets/nav.js"></script>
|
||||
<script>lucide.createIcons();</script>
|
||||
</body>
|
||||
</html>
|
||||
Vendored
+433
@@ -0,0 +1,433 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light" />
|
||||
<title>注册新门店 · 岩美酒库管理系统</title>
|
||||
<meta name="description" content="填写门店信息,创建岩美酒库管理账户,注册完成后获取门店编码用于登录客户端。" />
|
||||
<link rel="stylesheet" href="/assets/color.css" />
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
|
||||
<style>.reg-page { padding: var(--space-16) 0 var(--space-24); }
|
||||
.reg-wrap { max-width: 640px; margin: 0 auto; padding: 0 var(--space-4); }
|
||||
.reg-hero { text-align: center; margin-bottom: var(--space-8); }
|
||||
.reg-hero h1 { font-size: var(--text-3xl); font-weight: 700; margin-bottom: var(--space-2); }
|
||||
.reg-hero p { color: var(--neutral-500); font-size: var(--text-md); max-width: 480px; margin: 0 auto; }
|
||||
.reg-card { background: var(--neutral-0); border: 1px solid var(--neutral-200); border-radius: var(--radius-xl); padding: var(--space-8); }
|
||||
.reg-fieldset { border: none; padding: 0; margin: 0 0 var(--space-8); }
|
||||
.reg-legend { font-size: var(--text-sm); font-weight: 600; color: var(--neutral-500); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: var(--space-5); padding-bottom: var(--space-3); border-bottom: 1px solid var(--neutral-100); display: block; width: 100%; }
|
||||
.form-row { margin-bottom: var(--space-5); }
|
||||
.form-label { display: block; font-size: var(--text-sm); font-weight: 500; color: var(--neutral-700); margin-bottom: var(--space-1-5); }
|
||||
.form-label .req { color: var(--error-500); margin-left: 2px; }
|
||||
.form-input, .form-textarea { width: 100%; padding: var(--space-2-5) var(--space-3); border: 1.5px solid var(--neutral-300); border-radius: var(--radius-md); font-size: var(--text-md); font-family: inherit; background: var(--neutral-0); color: var(--neutral-900); transition: border-color .15s, box-shadow .15s; box-sizing: border-box; }
|
||||
.form-input:focus, .form-textarea:focus { outline: none; border-color: var(--brand-500); box-shadow: 0 0 0 3px var(--brand-100); }
|
||||
.form-input.error, .form-textarea.error { border-color: var(--error-500); box-shadow: 0 0 0 3px rgba(239,68,68,.12); }
|
||||
.form-textarea { resize: vertical; min-height: 80px; }
|
||||
.form-helper { font-size: var(--text-xs); color: var(--neutral-400); margin-top: var(--space-1); }
|
||||
.field-error { font-size: var(--text-xs); color: var(--error-600); margin-top: 4px; display: none; }
|
||||
.field-error.visible { display: block; }
|
||||
.reg-submit { width: 100%; padding: var(--space-3) var(--space-4); font-size: var(--text-md); font-weight: 600; margin-top: var(--space-2); }
|
||||
.reg-login-hint { text-align: center; margin-top: var(--space-4); font-size: var(--text-sm); color: var(--neutral-500); }
|
||||
.reg-login-hint a { color: var(--brand-600); }
|
||||
.reg-error { display: none; background: var(--error-50); border: 1px solid var(--error-200); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); margin-bottom: var(--space-5); font-size: var(--text-sm); color: var(--error-700); }
|
||||
.reg-error.visible { display: block; }
|
||||
.success-panel { display: none; text-align: center; }
|
||||
.success-panel.visible { display: block; }
|
||||
.success-icon { color: var(--success-500); margin-bottom: var(--space-4); }
|
||||
.success-panel h2 { font-size: var(--text-2xl); font-weight: 700; margin-bottom: var(--space-2); }
|
||||
.success-panel > p { color: var(--neutral-500); margin-bottom: var(--space-6); }
|
||||
.shop-code-box { background: var(--brand-50); border: 1px solid var(--brand-200); border-radius: var(--radius-lg); padding: var(--space-5) var(--space-6); margin-bottom: var(--space-6); display: flex; align-items: center; justify-content: center; gap: var(--space-3); }
|
||||
.shop-code-text { font-size: var(--text-3xl); font-weight: 700; font-family: 'JetBrains Mono', monospace; color: var(--brand-700); letter-spacing: 0.05em; }
|
||||
.copy-btn { display: inline-flex; align-items: center; gap: var(--space-1-5); padding: var(--space-2) var(--space-3); background: var(--brand-600); color: #fff; border: none; border-radius: var(--radius-md); font-size: var(--text-sm); font-weight: 500; cursor: pointer; transition: background .15s; }
|
||||
.copy-btn:hover { background: var(--brand-700); }
|
||||
.login-hint-card { background: var(--neutral-50); border: 1px solid var(--neutral-200); border-radius: var(--radius-md); padding: var(--space-4) var(--space-5); margin-bottom: var(--space-6); text-align: left; }
|
||||
.login-hint-card p { font-size: var(--text-sm); font-weight: 600; color: var(--neutral-600); margin-bottom: var(--space-3); }
|
||||
.login-hint-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
|
||||
.login-hint-table td { padding: var(--space-1-5) var(--space-2); }
|
||||
.login-hint-table td:first-child { color: var(--neutral-500); width: 80px; }
|
||||
.login-hint-table td:last-child { font-weight: 500; color: var(--neutral-800); font-family: 'JetBrains Mono', monospace; }
|
||||
.success-note { font-size: var(--text-xs); color: var(--neutral-400); margin-bottom: var(--space-6); }
|
||||
.btn-loading { opacity: .7; cursor: not-allowed; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="topnav">
|
||||
<div class="topnav-inner">
|
||||
<a href="/" class="topnav-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
</a>
|
||||
<div class="topnav-links">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
</div>
|
||||
<div class="topnav-cta" id="nav-cta">
|
||||
<a href="/register/" class="btn btn-primary btn-sm">注册门店</a>
|
||||
</div>
|
||||
<button class="nav-hamburger" id="nav-hamburger" aria-label="菜单" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-mobile-menu" id="nav-mobile-menu">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存管理</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
<div class="nav-mobile-cta" id="nav-mobile-cta">
|
||||
<a href="/register/" class="btn btn-primary">注册门店</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
|
||||
<section class="reg-page">
|
||||
<div class="reg-wrap">
|
||||
|
||||
<div class="reg-hero">
|
||||
<h1>注册新门店</h1>
|
||||
<p>填写以下信息,创建您的专属酒库管理账户。注册完成后系统自动分配门店编码,用于登录客户端。</p>
|
||||
</div>
|
||||
|
||||
<!-- 注册表单 -->
|
||||
<div class="reg-card" id="reg-form-card">
|
||||
<div class="reg-error" id="reg-error"></div>
|
||||
|
||||
<!-- 门店信息 -->
|
||||
<fieldset class="reg-fieldset">
|
||||
<legend class="reg-legend">门店信息</legend>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="shop_name">店铺名称<span class="req">*</span></label>
|
||||
<input class="form-input" type="text" id="shop_name" placeholder="例:强朋友名酒行" autocomplete="organization" />
|
||||
<div class="field-error" id="err-shop_name"></div>
|
||||
<div class="form-helper">您的酒行正式名称,将显示在所有单据和商品标签上</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="address">门店地址<span class="req">*</span></label>
|
||||
<input class="form-input" type="text" id="address" placeholder="例:贵州省贵阳市云岩区中华北路 88 号" autocomplete="street-address" />
|
||||
<div class="field-error" id="err-address"></div>
|
||||
<div class="form-helper">实际经营地址,打印标签和单据时展示</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="manager_name">负责人姓名<span class="req">*</span></label>
|
||||
<input class="form-input" type="text" id="manager_name" placeholder="例:张三" autocomplete="name" />
|
||||
<div class="field-error" id="err-manager_name"></div>
|
||||
<div class="form-helper">主要负责人真实姓名,也是首个管理员账号的姓名</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="phone">联系电话<span class="req">*</span></label>
|
||||
<input class="form-input" type="tel" id="phone" placeholder="例:0851-12345678" autocomplete="tel" />
|
||||
<div class="field-error" id="err-phone"></div>
|
||||
<div class="form-helper">对外联系电话,打印商品标签时会展示</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="description">店铺简介</label>
|
||||
<textarea class="form-textarea" id="description" placeholder="简短介绍您的门店,例:专注高端白酒批发零售,主营茅台系列" maxlength="200"></textarea>
|
||||
<div class="form-helper">选填,最多 200 字;客户扫商品码时可见</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<!-- 管理员账号 -->
|
||||
<fieldset class="reg-fieldset" style="margin-bottom:0">
|
||||
<legend class="reg-legend">管理员账号</legend>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="username">用户名<span class="req">*</span></label>
|
||||
<input class="form-input" type="text" id="username" placeholder="例:admin" autocomplete="username" />
|
||||
<div class="field-error" id="err-username"></div>
|
||||
<div class="form-helper">登录账号(3–30 位,字母/数字/下划线),创建后不可修改</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="password">密码<span class="req">*</span></label>
|
||||
<input class="form-input" type="password" id="password" placeholder="至少 6 位" autocomplete="new-password" />
|
||||
<div class="field-error" id="err-password"></div>
|
||||
<div class="form-helper">至少 6 位,建议字母数字组合</div>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<label class="form-label" for="password_confirm">确认密码<span class="req">*</span></label>
|
||||
<input class="form-input" type="password" id="password_confirm" placeholder="再次输入密码" autocomplete="new-password" />
|
||||
<div class="field-error" id="err-password_confirm"></div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<button class="btn btn-primary reg-submit" id="reg-btn">
|
||||
<i data-lucide="store" class="icon"></i>
|
||||
立即注册
|
||||
</button>
|
||||
<p class="reg-login-hint">已有账号?<a href="/app/">直接登录</a></p>
|
||||
</div>
|
||||
|
||||
<!-- 注册成功面板 -->
|
||||
<div class="reg-card success-panel" id="success-panel">
|
||||
<div class="success-icon">
|
||||
<i data-lucide="check-circle" style="width:56px;height:56px;"></i>
|
||||
</div>
|
||||
<h2>注册成功!</h2>
|
||||
<p>您的门店编码已生成,请妥善保存:</p>
|
||||
|
||||
<div class="shop-code-box">
|
||||
<span class="shop-code-text" id="result-shop-code">—</span>
|
||||
<button class="copy-btn" id="copy-code-btn">
|
||||
<i data-lucide="copy" class="icon"></i>复制
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="login-hint-card">
|
||||
<p>登录客户端时请输入:</p>
|
||||
<table class="login-hint-table">
|
||||
<tr>
|
||||
<td>门店编码</td>
|
||||
<td id="hint-code">—</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>用户名</td>
|
||||
<td id="hint-username">—</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>密码</td>
|
||||
<td>您设置的密码</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<p class="success-note">如忘记门店编码,登录后可在「系统设置 → 关于」中查看。</p>
|
||||
<a href="/app/" class="btn btn-primary" style="display:inline-flex;align-items:center;gap:8px;">
|
||||
<i data-lucide="log-in" class="icon"></i>前往登录
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var API_URL = window.location.origin + '/api/v1/public/register';
|
||||
|
||||
function $(id) { return document.getElementById(id); }
|
||||
|
||||
function getVal(id) { return $(id).value.trim(); }
|
||||
|
||||
function setFieldError(id, msg) {
|
||||
var input = $(id);
|
||||
var errEl = $('err-' + id);
|
||||
if (msg) {
|
||||
input.classList.add('error');
|
||||
if (errEl) { errEl.textContent = msg; errEl.classList.add('visible'); }
|
||||
} else {
|
||||
input.classList.remove('error');
|
||||
if (errEl) { errEl.textContent = ''; errEl.classList.remove('visible'); }
|
||||
}
|
||||
}
|
||||
|
||||
function clearAllErrors() {
|
||||
['shop_name','address','manager_name','phone','username','password','password_confirm'].forEach(function(id) {
|
||||
setFieldError(id, '');
|
||||
});
|
||||
}
|
||||
|
||||
// 用户修改字段后清除该字段的错误提示
|
||||
['shop_name','address','manager_name','phone','username','password','password_confirm'].forEach(function(id) {
|
||||
var el = $(id);
|
||||
if (el) el.addEventListener('input', function() { setFieldError(id, ''); });
|
||||
});
|
||||
|
||||
function validate() {
|
||||
clearAllErrors();
|
||||
var ok = true;
|
||||
var firstErr = null;
|
||||
|
||||
function require(id, msg) {
|
||||
if (!getVal(id)) { setFieldError(id, msg); if (!firstErr) firstErr = id; ok = false; }
|
||||
}
|
||||
|
||||
require('shop_name', '请填写店铺名称');
|
||||
require('address', '请填写门店地址');
|
||||
require('manager_name', '请填写负责人姓名');
|
||||
require('phone', '请填写联系电话');
|
||||
|
||||
var username = getVal('username');
|
||||
if (!username) {
|
||||
setFieldError('username', '请填写用户名'); if (!firstErr) firstErr = 'username'; ok = false;
|
||||
} else if (username.length < 3 || username.length > 30) {
|
||||
setFieldError('username', '用户名长度须在 3–30 位之间'); if (!firstErr) firstErr = 'username'; ok = false;
|
||||
} else if (!/^[a-zA-Z0-9_]+$/.test(username)) {
|
||||
setFieldError('username', '用户名只能包含字母、数字和下划线'); if (!firstErr) firstErr = 'username'; ok = false;
|
||||
}
|
||||
|
||||
var password = $('password').value;
|
||||
if (!password) {
|
||||
setFieldError('password', '请填写密码'); if (!firstErr) firstErr = 'password'; ok = false;
|
||||
} else if (password.length < 6) {
|
||||
setFieldError('password', '密码至少 6 位'); if (!firstErr) firstErr = 'password'; ok = false;
|
||||
}
|
||||
|
||||
var confirm = $('password_confirm').value;
|
||||
if (!confirm) {
|
||||
setFieldError('password_confirm', '请再次输入密码'); if (!firstErr) firstErr = 'password_confirm'; ok = false;
|
||||
} else if (password && password !== confirm) {
|
||||
setFieldError('password_confirm', '两次输入的密码不一致'); if (!firstErr) firstErr = 'password_confirm'; ok = false;
|
||||
}
|
||||
|
||||
if (firstErr) { $(firstErr).focus(); $(firstErr).scrollIntoView({ behavior: 'smooth', block: 'center' }); }
|
||||
return ok;
|
||||
}
|
||||
|
||||
function showTopError(msg) {
|
||||
var el = $('reg-error');
|
||||
el.textContent = msg;
|
||||
el.classList.add('visible');
|
||||
el.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
|
||||
}
|
||||
|
||||
$('reg-btn').addEventListener('click', function() {
|
||||
$('reg-error').classList.remove('visible');
|
||||
if (!validate()) return;
|
||||
|
||||
var btn = $('reg-btn');
|
||||
btn.disabled = true;
|
||||
btn.classList.add('btn-loading');
|
||||
btn.textContent = '注册中…';
|
||||
|
||||
var payload = {
|
||||
shop_name: getVal('shop_name'),
|
||||
address: getVal('address'),
|
||||
manager_name: getVal('manager_name'),
|
||||
phone: getVal('phone'),
|
||||
description: getVal('description'),
|
||||
username: getVal('username'),
|
||||
password: $('password').value
|
||||
};
|
||||
|
||||
fetch(API_URL, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify(payload)
|
||||
})
|
||||
.then(function(res) { return res.json().then(function(data) { return { ok: res.ok, data: data }; }); })
|
||||
.then(function(r) {
|
||||
if (!r.ok) {
|
||||
var msg = (r.data && r.data.error) ? r.data.error : '注册失败,请稍后重试';
|
||||
if (msg.indexOf('Duplicate') !== -1 || msg.indexOf('duplicate') !== -1) {
|
||||
msg = '该用户名在此门店已存在,请换一个用户名';
|
||||
}
|
||||
showTopError(msg);
|
||||
btn.disabled = false;
|
||||
btn.classList.remove('btn-loading');
|
||||
btn.innerHTML = '<i data-lucide="store" class="icon"></i>立即注册';
|
||||
if (window.lucide) lucide.createIcons();
|
||||
return;
|
||||
}
|
||||
var d = r.data.data;
|
||||
$('result-shop-code').textContent = d.shop_code;
|
||||
$('hint-code').textContent = d.shop_code;
|
||||
$('hint-username').textContent = d.username;
|
||||
$('reg-form-card').style.display = 'none';
|
||||
var panel = $('success-panel');
|
||||
panel.classList.add('visible');
|
||||
if (window.lucide) lucide.createIcons();
|
||||
panel.scrollIntoView({ behavior: 'smooth', block: 'start' });
|
||||
})
|
||||
.catch(function() {
|
||||
showTopError('网络异常,请检查网络连接后重试');
|
||||
btn.disabled = false;
|
||||
btn.classList.remove('btn-loading');
|
||||
btn.innerHTML = '<i data-lucide="store" class="icon"></i>立即注册';
|
||||
if (window.lucide) lucide.createIcons();
|
||||
});
|
||||
});
|
||||
|
||||
$('copy-code-btn').addEventListener('click', function() {
|
||||
var code = $('result-shop-code').textContent;
|
||||
navigator.clipboard.writeText(code).then(function() {
|
||||
var btn = $('copy-code-btn');
|
||||
btn.innerHTML = '<i data-lucide="check" class="icon"></i>已复制';
|
||||
if (window.lucide) lucide.createIcons();
|
||||
setTimeout(function() {
|
||||
btn.innerHTML = '<i data-lucide="copy" class="icon"></i>复制';
|
||||
if (window.lucide) lucide.createIcons();
|
||||
}, 2000);
|
||||
});
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
if (window.lucide) lucide.createIcons();
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<div class="footer-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
<p>为酒行与酒店设计的库存、审核、财务一体化管理平台。</p>
|
||||
<div class="footer-contact">
|
||||
<div><a href="mailto:yammy2023@163.com">yammy2023@163.com</a></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>产品</h5>
|
||||
<ul>
|
||||
<li><a href="/#modules">核心模块</a></li>
|
||||
<li><a href="/#platforms">多端覆盖</a></li>
|
||||
<li><a href="/#reports">数据洞察</a></li>
|
||||
<li><a href="/#pricing">价格方案</a></li>
|
||||
<li><a href="/download/">版本更新</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>资源</h5>
|
||||
<ul>
|
||||
<li><a href="/docs/">使用手册</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>客户支持</h5>
|
||||
<ul>
|
||||
<li><a href="/#faq">常见问题</a></li>
|
||||
<li><a href="mailto:yammy2023@163.com">联系我们</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>公司</h5>
|
||||
<ul>
|
||||
<li><a href="/register/">注册门店</a></li>
|
||||
<li><a href="/terms/">服务条款</a></li>
|
||||
<li><a href="/privacy/">隐私政策</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<div>© 2026 岩美科技 · 保留所有权利</div>
|
||||
<div>沪 ICP 备 2026000000 号 · 沪公网安备 31010000000000 号</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
<script src="/assets/nav.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Vendored
+229
@@ -0,0 +1,229 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light" />
|
||||
<title>服务条款 · 岩美酒库管理系统</title>
|
||||
<meta name="description" content="岩美酒库管理系统服务条款,规定双方的权利与义务。" />
|
||||
<link rel="stylesheet" href="/assets/color.css" />
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
<script src="https://unpkg.com/lucide@0.469.0/dist/umd/lucide.min.js"></script>
|
||||
<style>
|
||||
.page-header {
|
||||
padding: 56px 0 40px;
|
||||
background: linear-gradient(180deg,#FBFCFD 0%,#FFFFFF 80%);
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
}
|
||||
.ph-eyebrow {
|
||||
font-size: var(--text-xs); font-weight: 600;
|
||||
letter-spacing: .12em; color: var(--brand-500);
|
||||
text-transform: uppercase; margin: 0 0 10px;
|
||||
}
|
||||
.ph-title { font-size: 34px; font-weight: 700; color: var(--brand-900); margin: 0 0 8px; }
|
||||
.ph-meta { font-size: 13px; color: var(--gray-400); }
|
||||
|
||||
.legal-body { padding: 52px 0 80px; }
|
||||
.legal-content {
|
||||
max-width: 720px;
|
||||
font-size: 14px; line-height: 1.8; color: var(--gray-700);
|
||||
}
|
||||
.legal-content h2 {
|
||||
font-size: 17px; font-weight: 700;
|
||||
color: var(--brand-900); margin: 36px 0 12px;
|
||||
padding-bottom: 8px;
|
||||
border-bottom: 1px solid var(--border-subtle);
|
||||
}
|
||||
.legal-content h2:first-child { margin-top: 0; }
|
||||
.legal-content p { margin: 0 0 12px; }
|
||||
.legal-content ul {
|
||||
margin: 0 0 12px; padding-left: 20px;
|
||||
}
|
||||
.legal-content ul li { margin-bottom: 6px; }
|
||||
.legal-content strong { color: var(--gray-900); }
|
||||
.legal-content a { color: var(--brand-500); }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="topnav">
|
||||
<div class="topnav-inner">
|
||||
<a href="/" class="topnav-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
</a>
|
||||
<div class="topnav-links">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
</div>
|
||||
<div class="topnav-cta" id="nav-cta">
|
||||
<a href="/register/" class="btn btn-primary btn-sm">注册门店</a>
|
||||
</div>
|
||||
<button class="nav-hamburger" id="nav-hamburger" aria-label="菜单" aria-expanded="false">
|
||||
<span></span><span></span><span></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-mobile-menu" id="nav-mobile-menu">
|
||||
<a href="/#modules">产品</a>
|
||||
<a href="/features/inventory.html">库存管理</a>
|
||||
<a href="/features/approval.html">审核流</a>
|
||||
<a href="/#pricing">价格</a>
|
||||
<a href="/download/">下载</a>
|
||||
<a href="/docs/">文档</a>
|
||||
<a href="/#faq">支持</a>
|
||||
<div class="nav-mobile-cta" id="nav-mobile-cta">
|
||||
<a href="/register/" class="btn btn-primary">注册门店</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="page-header">
|
||||
<div class="container">
|
||||
<p class="ph-eyebrow">Legal</p>
|
||||
<h1 class="ph-title">服务条款</h1>
|
||||
<p class="ph-meta">最后更新:2026 年 6 月 1 日 · 有效期自 2026 年 6 月 1 日起</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<section class="legal-body">
|
||||
<div class="container">
|
||||
<div class="legal-content">
|
||||
|
||||
<h2>一、接受条款</h2>
|
||||
<p>欢迎使用岩美酒库管理系统(以下简称「本系统」或「服务」)。本服务由岩美技术有限公司(以下简称「我们」)提供。在注册或使用本系统前,请仔细阅读本服务条款(以下简称「本条款」)。</p>
|
||||
<p>一旦您注册账号或开始使用本系统的任何功能,即视为您已阅读、理解并同意受本条款约束。如您不同意本条款的任何内容,请勿注册或继续使用本系统。</p>
|
||||
|
||||
<h2>二、服务描述</h2>
|
||||
<p>本系统是一款面向酒行、酒庄、酒店等行业的库存管理软件,提供以下核心功能:</p>
|
||||
<ul>
|
||||
<li>商品档案管理(多规格、图片、公开展示页)</li>
|
||||
<li>入库与出库审核流程管理</li>
|
||||
<li>实时库存盘点与流水记录</li>
|
||||
<li>往来账目与财务管理</li>
|
||||
<li>多用户权限管理(管理员/成员/只读)</li>
|
||||
<li>多端访问(Web 浏览器、Windows/macOS/iOS/Android 客户端)</li>
|
||||
</ul>
|
||||
<p>我们保留在不提前通知的情况下随时修改、中断或终止服务部分功能的权利,但我们会尽力提前告知重大变更。</p>
|
||||
|
||||
<h2>三、账号注册与安全</h2>
|
||||
<p><strong>注册信息</strong>:您在注册时须提供真实、准确的门店信息,包括门店名称、联系邮箱等。您有责任及时更新账号信息以保持其准确性。</p>
|
||||
<p><strong>账号安全</strong>:您有责任妥善保管账号密码,并对在您账号下发生的所有活动负责。如发现账号存在未授权访问,请立即通过 <a href="mailto:yammy2023@163.com">yammy2023@163.com</a> 联系我们。</p>
|
||||
<p><strong>一门店一账号</strong>:一个门店编码对应一个独立数据空间,多用户可在同一门店下协作。严禁将账号转售、出租或用于非法用途。</p>
|
||||
|
||||
<h2>四、数据所有权与使用</h2>
|
||||
<p><strong>您的数据归您所有</strong>:您在本系统中录入的商品信息、库存数据、财务记录等(以下简称「用户数据」)的所有权归您所有。我们不会将您的用户数据出售给第三方。</p>
|
||||
<p><strong>数据使用授权</strong>:您授权我们为提供服务而存储、处理和传输您的数据,包括必要的系统维护、备份和安全操作。</p>
|
||||
<p><strong>数据导出</strong>:您可以随时通过系统内的导出功能获取您的数据副本。</p>
|
||||
<p><strong>数据删除</strong>:注销账号后,您的数据将在 30 天宽限期后从我们的服务器永久删除(备份留存不超过 90 天)。</p>
|
||||
|
||||
<h2>五、付费与授权</h2>
|
||||
<p>本系统采用授权码制度:新注册门店自动获得 30 天试用期,试用期满后需购买正式授权码方可继续使用完整功能。</p>
|
||||
<ul>
|
||||
<li><strong>试用期</strong>:30 天,功能与正式版完全相同</li>
|
||||
<li><strong>宽限期</strong>:授权到期后 7 天内,系统仍可正常使用,并提示续费</li>
|
||||
<li><strong>只读期</strong>:到期后第 7 至 15 天,系统进入只读模式,可查看数据但不能新建或修改</li>
|
||||
<li><strong>锁定期</strong>:到期超过 15 天后,无法登录,但数据完整保留,续费后可恢复访问</li>
|
||||
</ul>
|
||||
<p>授权费用以官网公示为准。已支付的费用在正常服务情况下不予退款,但因系统原因导致无法使用的,可申请按比例退款或延期。</p>
|
||||
|
||||
<h2>六、禁止行为</h2>
|
||||
<p>您在使用本服务时,不得进行以下行为:</p>
|
||||
<ul>
|
||||
<li>上传、传播违法、侵权、虚假或有害内容</li>
|
||||
<li>尝试破解、反编译或绕过系统安全措施</li>
|
||||
<li>使用自动化工具(爬虫、脚本等)大量抓取数据</li>
|
||||
<li>冒充他人或伪造身份信息</li>
|
||||
<li>干扰系统正常运行或其他用户的正常使用</li>
|
||||
<li>将服务用于任何违反中华人民共和国法律法规的用途</li>
|
||||
</ul>
|
||||
|
||||
<h2>七、知识产权</h2>
|
||||
<p>本系统的软件代码、界面设计、品牌标识(「岩美」商标及 Logo)等均属我们的知识产权,受法律保护。未经授权,您不得复制、修改、分发或以商业目的使用上述内容。</p>
|
||||
|
||||
<h2>八、服务中断与免责</h2>
|
||||
<p>我们努力保持 99% 以上的可用性,但不对以下情况导致的损失承担责任:</p>
|
||||
<ul>
|
||||
<li>不可抗力(地震、台风、战争、网络基础设施故障等)</li>
|
||||
<li>您自身操作失误或账号密码泄露</li>
|
||||
<li>第三方服务(云服务商、网络运营商等)的故障</li>
|
||||
<li>计划内维护窗口期(我们会提前 24 小时公告)</li>
|
||||
</ul>
|
||||
|
||||
<h2>九、条款变更</h2>
|
||||
<p>我们可能不定期更新本条款。重大变更将通过系统内通知或邮件告知注册用户,并在新版本生效前给予至少 7 天的知悉期。继续使用服务即视为您接受修订后的条款。</p>
|
||||
|
||||
<h2>十、适用法律与争议解决</h2>
|
||||
<p>本条款受中华人民共和国法律管辖。如发生争议,双方应首先通过友好协商解决;协商不成的,提交上海市有管辖权的人民法院诉讼解决。</p>
|
||||
|
||||
<h2>联系我们</h2>
|
||||
<p>如对本条款有任何疑问,请通过以下方式联系我们:</p>
|
||||
<ul>
|
||||
<li>邮箱:<a href="mailto:yammy2023@163.com">yammy2023@163.com</a></li>
|
||||
<li>官网:<a href="https://jiu.yanmei.com">jiu.yanmei.com</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<footer class="site-footer">
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<div class="footer-brand">
|
||||
<img src="/assets/logo-full.svg" alt="岩美" />
|
||||
<p>为酒行与酒店设计的库存、审核、财务一体化管理平台。</p>
|
||||
<div class="footer-contact">
|
||||
<div><a href="mailto:yammy2023@163.com">yammy2023@163.com</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>产品</h5>
|
||||
<ul>
|
||||
<li><a href="/#modules">核心模块</a></li>
|
||||
<li><a href="/#platforms">多端覆盖</a></li>
|
||||
<li><a href="/#pricing">价格方案</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
<li><a href="/changelog/">更新日志</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>资源</h5>
|
||||
<ul>
|
||||
<li><a href="/docs/">使用手册</a></li>
|
||||
<li><a href="/download/">下载客户端</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>客户支持</h5>
|
||||
<ul>
|
||||
<li><a href="/#faq">常见问题</a></li>
|
||||
<li><a href="mailto:yammy2023@163.com">联系我们</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h5>公司</h5>
|
||||
<ul>
|
||||
<li><a href="/register/">注册门店</a></li>
|
||||
<li><a href="/terms/">服务条款</a></li>
|
||||
<li><a href="/privacy/">隐私政策</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<div>© 2026 岩美科技 · 保留所有权利</div>
|
||||
<div>沪 ICP 备 2026000000 号 · 沪公网安备 31010000000000 号</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/assets/nav.js"></script>
|
||||
<script>lucide.createIcons();</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user