落地页去本地执行口径 + 设置→关于 增加官网跳转

- 落地页:移除右上角「快速上手」按钮(nav-cta);hero 主 CTA 与底部 CTA
  改指 /pricing(30 天免费试用口径),不再引导网站访客跑 run.sh/quickstart
- 设置 → 关于:新增「官网」按钮(https://opsxapi.rlwj.cn,links.ts SITE_URL 统一维护);
  「官网与价格」从本地 /home 改指公网 opsxapi.rlwj.cn/pricing(打包环境无本地服务时同样可达)
- 浏览器实测关于页四个外链按钮标题正确;落地页 nav-cta 零残留
This commit is contained in:
logan committed 2026-10-16 11:51:15 +08:00
1 parent cdaba44373
commit c0617ffdc8
4 files changed
+14 -14

No files matched your search

+3 -6
View File
@@ -52,9 +52,6 @@
<a href="/license">授权</a>
<a href="/docs" target="_blank" rel="noopener">文档</a>
</nav>
<div class="nav-cta">
<a class="btn btn-primary" href="/docs/quickstart" target="_blank" rel="noopener">快速上手 ↗</a>
</div>
</div>
</header>
@@ -69,7 +66,7 @@
智能 Mock、自动化测试(Cron 定时)、AI 生成场景用例、全格式导入导出与代码生成 —— 运维与开发的自托管接口利器。
</p>
<div class="hero-actions">
<a class="btn btn-primary btn-lg" href="/docs/quickstart" target="_blank" rel="noopener">立即开始(免费体验)</a>
<a class="btn btn-primary btn-lg" href="/pricing" rel="noopener">查看定价 · 30 天免费试用</a>
<a class="btn btn-ghost btn-lg" href="/docs/quickstart" target="_blank" rel="noopener">快速开始 →</a>
</div>
<div class="hero-pills">
@@ -353,9 +350,9 @@
<section class="cta" id="contact">
<div class="wrap">
<h2>把接口调试收回自己手里</h2>
<p>按快速上手启动工作台,30 秒发出第一个请求;采购事宜邮件联系,当天回复。</p>
<p>30 天全功能试用无需注册,个人非商业长期可用;采购事宜邮件联系,当天回复。</p>
<div class="hero-actions center">
<a class="btn btn-inverse btn-lg" href="/docs/quickstart" target="_blank" rel="noopener">快速上手 ↗</a>
<a class="btn btn-inverse btn-lg" href="/pricing" rel="noopener">查看定价 ↗</a>
<a class="btn btn-outline btn-lg" href="mailto:hello@opsxapi.dev?subject=OpsxAPI%20购买咨询">hello@opsxapi.dev</a>
</div>
</div>
+3 -6
View File
@@ -52,9 +52,6 @@
<a href="/license">授权</a>
<a href="/docs" target="_blank" rel="noopener">文档</a>
</nav>
<div class="nav-cta">
<a class="btn btn-primary" href="/docs/quickstart" target="_blank" rel="noopener">快速上手 ↗</a>
</div>
</div>
</header>
@@ -69,7 +66,7 @@
智能 Mock、自动化测试(Cron 定时)、AI 生成场景用例、全格式导入导出与代码生成 —— 运维与开发的自托管接口利器。
</p>
<div class="hero-actions">
<a class="btn btn-primary btn-lg" href="/docs/quickstart" target="_blank" rel="noopener">立即开始(免费体验)</a>
<a class="btn btn-primary btn-lg" href="/pricing" rel="noopener">查看定价 · 30 天免费试用</a>
<a class="btn btn-ghost btn-lg" href="/docs/quickstart" target="_blank" rel="noopener">快速开始 →</a>
</div>
<div class="hero-pills">
@@ -353,9 +350,9 @@
<section class="cta" id="contact">
<div class="wrap">
<h2>把接口调试收回自己手里</h2>
<p>按快速上手启动工作台,30 秒发出第一个请求;采购事宜邮件联系,当天回复。</p>
<p>30 天全功能试用无需注册,个人非商业长期可用;采购事宜邮件联系,当天回复。</p>
<div class="hero-actions center">
<a class="btn btn-inverse btn-lg" href="/docs/quickstart" target="_blank" rel="noopener">快速上手 ↗</a>
<a class="btn btn-inverse btn-lg" href="/pricing" rel="noopener">查看定价 ↗</a>
<a class="btn btn-outline btn-lg" href="mailto:hello@opsxapi.dev?subject=OpsxAPI%20购买咨询">hello@opsxapi.dev</a>
</div>
</div>
+7 -2
View File
@@ -13,7 +13,7 @@ import { EnvBadge } from "../EnvBadge";
import { Icon, type IconName } from "../icons";
import { KindIcon } from "../KindIcon";
import { Logo } from "../Logo";
import { WECHAT_GROUP_URL } from "../../links";
import { SITE_URL, WECHAT_GROUP_URL } from "../../links";
import { useLicense } from "../../license";
import { openExternal } from "../../openExternal";
@@ -806,8 +806,13 @@ export function SettingsDialog({ tab }: { tab?: SettingsTab }) {
<Icon name="book-open" size={13} />
</button>
</SettingRow>
<SettingRow label="官网" desc="产品主页与最新动态">
<button type="button" className="ops-btn ops-btn-secondary" title="打开官网" onClick={() => void openExternal(SITE_URL)}>
<Icon name="external-link" size={13} />
</button>
</SettingRow>
<SettingRow label="官网与价格" desc="产品介绍、版本对比与购买方案">
<button type="button" className="ops-btn ops-btn-secondary" title="打开官网" onClick={() => void openExternal("/home")}>
<button type="button" className="ops-btn ops-btn-secondary" title="打开官网定价" onClick={() => void openExternal(SITE_URL + "/pricing")}>
<Icon name="external-link" size={13} />
</button>
</SettingRow>
+1
View File
@@ -1,2 +1,3 @@
/** External links used by Settings → About (and similar). Keep URLs in one place. */
export const WECHAT_GROUP_URL = "https://docs.qq.com/doc/DTFdZeWJ6ZUdqTkZV";
export const SITE_URL = "https://opsxapi.rlwj.cn";