PageSourceSearch

https://www.aa.com.cn/about/company

html aa.com.cn collected 2026-10-07 19:56:22 UTC 44,187 bytes, 941 lines download raw bytes

1<!doctype html>
2<html lang="zh-CN">
3
4<head>
5  <meta charset="utf-8" />
6  <meta name="viewport" content="width=device-width, initial-scale=1" />
7  <title>公司介绍 - 典名词元</title>
8  <meta name="canvas:aspect-ratio" content="16:9" />
9  <link href="/statics/css/font-awesome4.7.0.min.css" rel="stylesheet" type="text/css">
10  <link href="/statics/css/css2.css" rel="stylesheet" type="text/css">
11  <link href="/statics/css/common.css" rel="stylesheet" type="text/css">
12    <link href="/statics/css/about-company.css" rel="stylesheet" type="text/css">
13</head>
14
15<body>
16  <!-- ─── Navigation ──────────────────────────────────────────────── -->
17  <div class="hero-grid-bg" aria-hidden="true"></div>
18  <header class="topnav" id="top" data-component="Navigation" data-od-id="topnav">
19    <div class="container topnav-inner">
20      <a href="/" class="logo" style="text-decoration:none; opacity:1;">
21        <img src="/statics/images/logo.png" alt="典名词元">
22      </a>
23      <nav>
24        <ul class="nav-links">
25          <li><a href="/">首页</a></li>
26          <li class="nav-dropdown">
27            <a href="/agent/qwenwork">AI应用
28              <svg class="dropdown-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
29                <polyline points="6 9 12 15 18 9" />
30              </svg>
31            </a>
32            <ul class="dropdown-menu">
33              <li><a href="/agent/qwenwork">千问办公</a></li>
34              <!-- <li><a href="/agent/ihuiwa">绘蛙</a></li> -->
35              <li><a href="/agent/traework">Trae Work</a></li>
36              <li><a href="/agent/workbuddy">WorkBuddy</a></li>
37            </ul>
38          </li>
39          <li><a href="/model">模型广场</a></li>
40          <li><a href="/pricing">ä»·æ ¼</a></li>
41          <li><a href="https://api-doc.aa.com.cn" target="_blank">文档中心</a></li>
42          <li class="nav-dropdown">
43            <a href="/about/company">关于我们
44              <svg class="dropdown-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
45                <polyline points="6 9 12 15 18 9" />
46              </svg>
47            </a>
48            <ul class="dropdown-menu">
49              <li><a href="/about/company">公司介绍</a></li>
50              <li><a href="/about/qualifications">资质荣誉</a></li>
51              <li><a href="/about/methodology">测试方法论</a></li>
52              <li><a href="/about/sla">SLA</a></li>
53              <li><a href="/about/contact">联系方式</a></li>
54            </ul>
55          </li>
56          <li class="hidden console" id="console-link"><a href="/console/">控制台</a></li>
57        </ul>
58      </nav>
59      <div class="nav-actions">
60        <!-- 用户信息区域 -->
61        <!-- <div id="user-area" class="relative flex items-center"> -->
62        <div id="user-area">
63          <button class="btn btn-secondary btn-sm hidden" id="login-button">登录</button>
64          <button class="btn btn-primary btn-sm hidden" id="register-button">注册</button>
65          <!-- 用户头像和下拉菜单(已登录状态) -->
66          <div id="user-dropdown" class="hidden nav-dropdown">
67            <button id="user-avatar" class="flex items-center p-1 rounded-full hover:bg-gray-100 transition-colors">
68              <img id="avatar-img" src="" alt="用户头像" class="w-8 h-8 rounded-full object-cover hidden">
69              <span id="avatar-initial" class="w-8 h-8 rounded-full bg-primary text-white flex items-center justify-center text-sm font-medium hidden"></span>
70            </button>
71            <div class="absolute right-0 w-28 bg-white rounded-lg shadow-lg py-1 z-50 hidden">
72              <ul class="dropdown-menu" style="top: calc(100% - 8px) !important;">
73                                  <li><a href="https://www.aa.com.cn/console/" class="block px-6 py-2 text-gray-700 hover:bg-gray-100 align-center">模型广场</a></li>
74                                  <li><a href="https://www.aa.com.cn/console/user" class="block px-6 py-2 text-gray-700 hover:bg-gray-100 align-center">个人信息</a></li>
75                                  <li><a href="https://www.aa.com.cn/console/recharge" class="block px-6 py-2 text-gray-700 hover:bg-gray-100 align-center">积分充值</a></li>
76                                <li><a href="#" id="logout-button" class="block px-6 py-2 text-red-500 hover:bg-red-100 align-center">退出登录</a></li>
77              </ul>
78            </div>
79          </div>
80        </div>
81      </div>
82      <button class="menu-toggle" aria-label="打开菜单">
83        <svg class="icon-hamburger" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
84          <line x1="3" y1="6" x2="21" y2="6" />
85          <line x1="3" y1="12" x2="21" y2="12" />
86          <line x1="3" y1="18" x2="21" y2="18" />
87        </svg>
88        <svg class="icon-close" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
89          <line x1="18" y1="6" x2="6" y2="18" />
90          <line x1="6" y1="6" x2="18" y2="18" />
91        </svg>
92      </button>
93    </div>
94  </header>
95
96  <!-- ─── Mobile Menu ─────────────────────────────────────────────── -->
97  <div class="mobile-menu" id="mobileMenu">
98    <ul class="mobile-menu-links">
99      <li><a href="/">首页</a></li>
100      <li>
101        <a href="/agent/qwenwork">AI应用</a>
102        <ul class="mobile-dropdown-menu">
103          <li><a href="/agent/qwenwork">千问办公</a></li>
104          <!-- <li><a href="/agent/ihuiwa">绘蛙</a></li> -->
105          <li><a href="/agent/traework">Trae Work</a></li>
106          <li><a href="/agent/workbuddy">WorkBuddy</a></li>
107        </ul>
108      </li>
109      <li><a href="/model">模型广场</a></li>
110      <li><a href="/pricing">ä»·æ ¼</a></li>
111      <li><a href="https://api-doc.aa.com.cn" target="_blank">文档中心</a></li>
112      <li>
113        <a href="/about/company">
113关于我们</a>
114        <ul class="mobile-dropdown-menu">
115          <li><a href="/about/company">公司介绍</a></li>
116          <li><a href="/about/qualifications">资质荣誉</a></li>
117          <li><a href="/about/methodology">测试方法论</a></li>
118          <li><a href="/about/sla">SLA</a></li>
119          <li><a href="/about/contact">联系方式</a></li>
120        </ul>
121      </li>
122      <li class="mobile-console hidden"><a href="/console/">控制台</a></li>
123      <li class="mobile-ucenter hidden">
124        <a href="#">个人中心</a>
125        <ul class="mobile-dropdown-menu">
126                      <li><a href="https://www.aa.com.cn/console/">模型广场</a></li>
127                      <li><a href="https://www.aa.com.cn/console/user">个人信息</a></li>
128                      <li><a href="https://www.aa.com.cn/console/recharge">积分充值</a></li>
129                  </ul>
130      </li>
131    </ul>
132    <div class="mobile-menu-footer">
133      <a href="https://uc.aa.com.cn/login/oauth/authorize?client_id=5cbb2506c9e13330fe1a&amp;response_type=code&amp;redirect_uri=https%3A%2F%2Fwww.aa.com.cn%2Fconsole%2Fcallback&amp;theme=light&amp;origin=home&amp;icode=" class="btn btn-primary" id="mobile-menu-login-button">登录</a>
134      <button class="btn btn-secondary hidden" id="mobile-menu-logout-button">退出登录</button>
135    </div>
136  </div>
137
138  <main id="content">
139      <div class="about-page">
140    <!-- ─── Hero ─────────────────────────────────────────────────── -->
141    <section class="about-hero section" data-component="Hero" data-od-id="about-hero">
142      <div class="container about-hero__inner">
143        <div class="about-hero__content">
144          <p class="eyebrow"><span class="eyebrow-dot"></span>重庆典名科技有限公司</p>
145          <h1>让 <span class="about-gradient-text">AI</span> 在中国<br>畅通无阻</h1>
146          <p class="lead">深耕互联网基础设施服务 17 年。从域名主机起家,到阿里云核心合作伙伴,再到今天的 AI 大模型 API 中转中枢——我们让国内开发者像调用 OpenAI 一样简单地使用全球前沿大模型。</p>
147          <div class="about-hero__actions">
148            <a href="#company-story" class="btn btn-primary btn-lg">
149              了解典名
150              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m13 6 6 6-6 6"/></svg>
151            </a>
152            <a href="/about/contact" class="btn btn-secondary btn-lg">联系商务</a>
153          </div>
154          <ul class="about-hero__trust" aria-label="企业能力概览">
155            <li>17 年基础设施经验</li>
156            <li>阿里云核心合作伙伴</li>
157            <li>企业级 SLA 保障</li>
158          </ul>
159        </div>
160
161        <div class="about-hero__visual" aria-label="典名科技能力演进">
162          <div class="about-system-card">
163            <div class="about-system-card__header">
164              <div class="about-system-card__status"><span></span>Infrastructure Online</div>
165              <span>Since 2009</span>
166            </div>
167            <div class="about-system-card__brand">
168              <span class="about-system-card__logo">
169                <img src="/statics/images/logo.png" alt="">
170              </span>
171              <div>
172                <strong>典名科技</strong>
173                <small>从云基础设施到 AI 应用基座</small>
174              </div>
175            </div>
176            <div class="about-system-card__flow">
177              <div class="about-system-card__node">
178                <span class="about-system-card__icon">
179                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M7 8h10M7 12h6M7 16h4"/></svg>
180                </span>
181                <span><b>互联网基础服务</b><small>域名 · 主机 · SSL · CDN</small></span>
182                <em>2009</em>
183              </div>
184              <div class="about-system-card__connector" aria-hidden="true"><span></span></div>
185              <div class="about-system-card__node">
186                <span class="about-system-card__icon">
187                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" aria-hidden="true"><path d="M6.5 18a4.5 4.5 0 0 1-.5-8.97A6 6 0 0 1 17.5 7a4 4 0 0 1 .5 7.97H7"/></svg>
188                </span>
189                <span><b>企业云服务</b><small>咨询 · 迁移 · 运维托管</small></span>
190                <em>2014</em>
191              </div>
192              <div class="about-system-card__connector" aria-hidden="true"><span></span></div>
193              <div class="about-system-card__node is-active">
194                <span class="about-system-card__icon">
195                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" aria-hidden="true"><path d="M12 2 4 6v12l8 4 8-4V6l-8-4Z"/><path d="m8.5 9 3.5 2 3.5-2M12 11v5"/></svg>
196                </span>
197                <span><b>AI 大模型 API</b><small>统一接口 · 国内直连 · 智能路由</small></span>
198                <em>2025</em>
199              </div>
200            </div>
201            <div class="about-system-card__footer">
202              <span><i></i>多节点高可用</span>
203              <span>OpenAI 协议兼容</span>
204            </div>
205          </div>
206        </div>
207      </div>
208    </section>
209
210    <!-- ─── Core numbers ─────────────────────────────────────────── -->
211    <section class="about-numbers" aria-label="公司核心数据">
212      <div class="container">
213        <div class="about-numbers__grid">
214                      <div class="about-number">
215              <strong>17 å¹´</strong>
216              <span>互联网基础设施经验</span>
217            </div>
218                      <div class="about-number">
219              <strong>10,000+</strong>
220              <span>企业客户</span>
221            </div>
222                      <div class="about-number">
223              <strong>50,000+</strong>
224              <span>开发者用户</span>
225            </div>
226                      <div class="about-number">
227              <strong>100 亿</strong>
228              <span>月调用 tokens</span>
229            </div>
230                  </div>
231      </div>
232    </section>
233
234    <!-- ─── Company story ────────────────────────────────────────── -->
235    <section class="section about-story" id="company-story">
236      <div class="container">
237        <div class="about-story__layout">
238          <div class="about-story__heading">
239            <div class="section-header">
240              <p class="eyebrow">OUR STORY</p>
241              <h2>从互联网基础设施,<br>走向 AI 时代基建</h2>
242              <p>长期服务企业级客户的工程经验,是典名词元稳定、快速和可信赖的底层基础。</p>
243            </div>
244
245            <dl class="about-facts">
246                              <div>
247                  <dt>成立时间</dt>
248                  <dd>2009 年 3 月</dd>
249                </div>
250                              <div>
251                  <dt>注册资本</dt>
252                  <dd>1,000 万元</dd>
253                </div>
254                              <div>
255                  <dt>总部地址</dt>
256                  <dd>重庆市九龙坡区</dd>
257                </div>
258                              <div>
259                  <dt>关键身份</dt>
260                  <dd>阿里云核心合作伙伴</dd>
261                </div>
262                          </dl>
263          </div>
264
265          <article class="about-story__content">
266            <span class="about-story__index">01</span>
267            <h3>公司简介</h3>
268                          <p><strong>重庆典名科技有限公司</strong>成立于 2009 年 3 月,注册资本 1,000 万元,总部位于重庆市九龙坡区石桥铺。从域名注册和虚拟主机服务起步,逐步发展为<strong>中国西南区领先的互联网基础设施服务商</strong>。</p>
269                          <p>2014 年,公司成为<strong>阿里云西南区核心合作伙伴</strong>,深度参与企业上云、混合云架构落地,累计服务超过 <strong>10,000 家企业客户</strong>。在大规模流量调度、企业级 SLA 保障和合规化运营等方面,沉淀了扎实的工程与服务能力。</p>
270                          <p>2025 年,公司基于自身的网关与流量基础设施,正式上线<strong>「典名词元」AI 大模型 API 中转服务</strong>,让国内开发者免代理直连全球前沿大模型。截至目前,平台已服务超过 <strong>50,000 名开发者</strong>,月调用量突破 <strong>100 亿 tokens</strong>。</p>
271                        <blockquote>
272              <p>“我们做的一切只为一个目标:让中国每一个开发者都能用上最先进的 AI。这是使命,不是话术。”</p>
273              <cite>典名科技创始团队</cite>
274            </blockquote>
275          </article>
276        </div>
277      </div>
278    </section>
279
280    <!-- ─── Timeline ─────────────────────────────────────────────── -->
281    <section class="section about-timeline-section" id="history">
282      <div class="container">
283        <div class="section-header center">
284          <p class="eyebrow">MILESTONES</p>
285          <h2>发展历程</h2>
286          <p>十余年持续积累,从基础服务、企业云到 AI 大模型连接平台。</p>
287        </div>
288        <ol class="about-timeline">
289                      <li class="about-timeline__item">
290              <span class="about-timeline__dot" aria-hidden="true"></span>
291              <time>2009</time>
292              <p>公司在重庆成立,开展域名注册与主机业务</p>
293            </li>
294                      <li class="about-timeline__item">
295              <span class="about-timeline__dot" aria-hidden="true"></span>
296              <time>2014</time>
297              <p>签约阿里云西南区核心合作伙伴</p>
298            </li>
299                      <li class="about-timeline__item">
300              <span class="about-timeline__dot" aria-hidden="true"></span>
301              <time>2018</time>
302              <p>累计服务超过 1 万家企业客户上云</p>
303            </li>
304                      <li class="about-timeline__item">
305              <span class="about-timeline__dot" aria-hidden="true"></span>
306              <time>2020</time>
307              <p>进入合规化运营新阶段</p>
308            </li>
309                      <li class="about-timeline__item">
310              <span class="about-timeline__dot" aria-hidden="true"></span>
311              <time>2023</time>
312              <p>成立典名词元 AI 实验室,开展模型评测</p>
313            </li>
314                      <li class="about-timeline__item">
315              <span class="about-timeline__dot" aria-hidden="true"></span>
316              <time>2025</time>
317              <p>AI 大模型 API 中转服务正式上线</p>
318            </li>
319                      <li class="about-timeline__item">
320              <span class="about-timeline__dot" aria-hidden="true"></span>
321              <time>2026</time>
322              <p>服务超 5 万开发者,月调用量突破 100 亿 tokens</p>
323            </li>
324                  </ol>
325      </div>
326    </section>
327
328    <!-- ─── Business map ─────────────────────────────────────────── -->
329    <section class="section about-business" id="business">
330      <div class="container">
331        <div class="section-header">
332          <p class="eyebrow">WHAT WE DO</p>
333          <h2>业务版图</h2>
334          <p>围绕企业数字基础设施和 AI 能力接入,提供从公共服务到专属部署的一体化方案。</p>
335        </div>
336        <div class="about-business__grid">
337                      <article class="about-business-card is-primary">
338              <div class="about-business-card__top">
339                <span class="about-business-card__number">01</span>
340                <span class="about-business-card__icon" aria-hidden="true">
341                                      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"><path d="M12 2 4 6v12l8 4 8-4V6l-8-4Z"/><path d="m8.5 9 3.5 2 3.5-2M12 11v5"/></svg>
342                                  </span>
343              </div>
344              <h3>AI 大模型 API 中转</h3>
345              <p>主营业务。国内高速直连主流大模型,覆盖文本、图像、视频、语音与多模态能力。</p>
346              <div class="about-business-card__tags">
347                                  <span>统一接口</span>
348                                  <span>国内直连</span>
349                                  <span>多模态</span>
350                              </div>
351            </article>
352                      <article class="about-business-card">
353              <div class="about-business-card__top">
354                <span class="about-business-card__number">02</span>
355                <span class="about-business-card__icon" aria-hidden="true">
356                                      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"><path d="M6.5 18a4.5 4.5 0 0 1-.5-8.97A6 6 0 0 1 17.5 7a4 4 0 0 1 .5 7.97H7"/></svg>
357                                  </span>
358              </div>
359              <h3>阿里云解决方案</h3>
360              <p>作为阿里云核心合作伙伴,提供云架构咨询、迁移落地和运维托管等全栈服务。</p>
361              <div class="about-business-card__tags">
362                                  <span>架构咨询</span>
363                                  <span>云迁移</span>
364                                  <span>运维托管</span>
365                              </div>
366            </article>
367                      <article class="about-business-card">
368              <div class="about-business-card__top">
369                <span class="about-business-card__number">03</span>
370                <span class="about-business-card__icon" aria-hidden="true">
371                                      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M7 8h10M7 12h6M7 16h4"/></svg>
372                                  </span>
373              </div>
374              <h3>互联网基础服务</h3>
375              <p>提供域名、主机、企业邮箱、SSL 与 CDN 等服务,承载十余年的基础设施经验。</p>
376              <div class="about-business-card__tags">
377                                  <span>域名主机</span>
378                                  <span>SSL</span>
379                                  <span>CDN</span>
380                              </div>
381            </article>
382                      <article class="about-business-card">
383              <div class="about-business-card__top">
384                <span class="about-business-card__number">04</span>
385                <span class="about-business-card__icon" aria-hidden="true">
386                                      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"><path d="M12 3v18M3 12h18"/><circle cx="12" cy="12" r="9"/></svg>
387                                  </span>
388              </div>
389              <h3>企业定制服务</h3>
390              <p>面向企业提供 AI 网关私有部署、专属模型微调和行业方案咨询。</p>
391              <div class="about-business-card__tags">
392                                  <span>私有部署</span>
393                                  <span>模型微调</span>
394                                  <span>方案咨询</span>
395                              </div>
396            </article>
397                  </div>
398      </div>
399    </section>
400
401    <!-- ─── Commitment ───────────────────────────────────────────── -->
402    <section class="section about-commitment">
403      <div class="container">
404        <div class="about-commitment__panel">
405          <div class="about-commitment__intro">
406            <p class="eyebrow">OUR COMMITMENT</p>
407            <h2>把复杂留给基础设施,<br>把简单交给开发者</h2>
408          </div>
409          <div class="about-commitment__items">
410            <div>
411              <span>01</span>
412              <h3>稳定优先</h3>
413              <p>以大规模流量调度和企业级 SLA 经验,保障关键业务持续可用。</p>
414            </div>
415            <div>
416              <span>02</span>
417              <h3>接入简单</h3>
418              <p>兼容主流协议,用统一接口连接多种前沿模型,降低迁移与维护成本。</p>
419            </div>
420            <div>
421              <span>03</span>
422              <h3>长期服务</h3>
423              <p>坚持合规经营和专业服务,陪伴企业与开发者持续构建 AI 应用。</p>
424            </div>
425          </div>
426        </div>
427      </div>
428    </section>
429
430    <!-- ─── CTA ──────────────────────────────────────────────────── -->
431    <section class="cta-section" data-component="CTA" data-od-id="about-cta">
432      <div class="cta-content">
433        <p class="eyebrow">BUILD WITH US</p>
434        <h2 class="cta-title">与 50,000+ 开发者一起<br><span class="gradient-text">把 AI 用起来</span></h2>
435        <p class="cta-description">国内直连、统一接口、按量计费,约 5 分钟完成接入。</p>
436        <div class="cta-buttons">
437          <button class="btn btn-primary btn-lg" id="now-get">
438            立即获取 API Key
439            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg>
440          </button>
441          <a href="/about/contact" class="cta-btn-secondary">联系商务</a>
442        </div>
443      </div>
444    </section>
445  </div>
446  </main>
447
448  <!-- ─── Footer ──────────────────────────────────────────────────── -->
449  <footer class="pagefoot" data-component="Footer" data-od-id="footer">
450    <div class="container">
451      <div class="footer-grid">
452        <div class="footer-brand">
453          <span class="logo">
454            <img src="/statics/images/logo.png" alt="典名词元">
455          </span>
456          <p>国内高速 AI 大模型 API 中转,通过统一接口接入海量模型。</p>
457        </div>
458        <div class="footer-col">
459          <h4>产品</h4>
460          <ul>
461            <li><a href="#why">核心优势</a></li>
462            <li><a href="#providers">模型厂商</a></li>
463            <li><a href="#quickstart">代码示例</a></li>
464            <li><a href="#cases">应用场景</a></li>
465          </ul>
466        </div>
467        <div class="footer-col">
468          <h4>开发者</h4>
469          <ul>
470            <li><a href="https://api-doc.aa.com.cn">快速接入</a></li>
471            <li><a href="https://api-doc.aa.com.cn">API 文档</a></li>
472          </ul>
473        </div>
474        <div class="footer-col">
475          <h4>关于</h4>
476          <ul>
477            <li><a href="/about/company">关于我们</a></li>
478            <li><a href="/about/contact">联系方式</a></li>
479          </ul>
480        </div>
481
482        <div class="footer-col">
483          <h4>友情链接</h4>
484          <ul>
485            <li><a href="https://www.wangpan.com.cn" target="_blank" title="企业网盘">企业网盘</a></li>
486            <li><a href="https://www.321.com.cn" target="_blank" title="321短信">321短信</a></li>
487            <li><a href="https://www.mail.com.cn" target="_blank" title="企业邮箱">企业邮箱</a></li>
488            <li><a href="http://www.023dns.com" target="_blank" title="域名虚机">域名虚机</a></li>
489            <li><a href="https://www.aimao.com" target="_blank" title="特种猫视频创作">视频创作</a></li>
490          </ul>
491        </div>
492
493      </div>
494      <div class="footer-bottom">
495        <span>&copy; 2026 重庆典名科技有限公司</span>
496        <span>
497          <a href="https://beian.miit.gov.cn/" target="_blank">渝ICP备10013348号-35</a>
498        </span>
499      </div>
500    </div>
501  </footer>
502
503  <!-- 登录弹窗 -->
504  <div id="login-modal" class="fixed inset-0 z-50 flex items-center justify-center hidden">
505    <div class="absolute inset-0 bg-black bg-opacity-50"></div>
506    <div class="relative bg-white rounded-lg overflow-hidden shadow-xl w-full max-w-[40rem] max-h-[95vh]">
507      <div class="login-frame-clip relative h-[53vh] w-full rounded-lg">
508        <h2 class="ml-4 mt-4 bold text-lg font-medium">创建、登录您的开发者账号</h2>
509        <button id="close-modal" class="absolute right-3 top-0 z-20 flex h-9 w-9 items-center justify-center rounded-full border border-brand-border bg-brand-card/92 text-gray-300 transition-colors hover:border-gray-500 hover:text-red-500">
510          <i class="fa fa-times"></i>
511        </button>
512        <iframe id="login-iframe" src="" width="100%" height="100%" frameborder="0"></iframe>
513      </div>
514    </div>
515  </div>
516
517  <!-- 回到顶部按钮 -->
518  <div id="back-to-top" class="back-to-top">
519    <i class="fa fa-chevron-up"></i>
520  </div>
521
522  
522<script>
523    // icode
524    sessionStorage.setItem('icode', '');
525
526    /* ─── Code tabs ─────────────────────────────────────────────── */
527    (function() {
528      var tabs = document.querySelectorAll('.code-tab');
529      var panels = document.querySelectorAll('.code-panel');
530      tabs.forEach(function(tab) {
531        tab.addEventListener('click', function() {
532          var target = tab.getAttribute('data-code-tab');
533          tabs.forEach(function(t) {
534            t.classList.remove('active');
535            t.setAttribute('aria-selected', 'false');
536          });
537          panels.forEach(function(p) {
538            p.classList.remove('active');
539          });
540          tab.classList.add('active');
541          tab.setAttribute('aria-selected', 'true');
542          document.querySelector('[data-code-panel="' + target + '"]').classList.add('active');
543        });
544      });
545    })();
546
547    /* ─── Navigation scroll effect ─────────────────────────────── */
548    (function() {
549      var nav = document.querySelector('.topnav');
550      var scrollThreshold = 50;
551      var ticking = false;
552
553      function updateNav() {
554        if (window.scrollY > scrollThreshold) {
555          nav.classList.add('scrolled');
556        } else {
557          nav.classList.remove('scrolled');
558        }
559        ticking = false;
560      }
561
562      window.addEventListener('scroll', function() {
563        if (!ticking) {
564          window.requestAnimationFrame(updateNav);
565          ticking = true;
566        }
567      }, {
568        passive: true
569      });
570    })();
571
572    /* ─── Mobile menu toggle ───────────────────────────────────── */
573    (function() {
574      var menuToggle = document.querySelector('.menu-toggle');
575      var mobileMenu = document.getElementById('mobileMenu');
576      var nav = document.querySelector('.topnav');
577      var menuLinks = mobileMenu.querySelectorAll('a');
578
579      function openMenu() {
580        mobileMenu.classList.add('open');
581        nav.classList.add('menu-open');
582        document.body.style.overflow = 'hidden';
583        menuToggle.setAttribute('aria-label', '关闭菜单');
584      }
585
586      function closeMenu() {
587        mobileMenu.classList.remove('open');
588        nav.classList.remove('menu-open');
589        document.body.style.overflow = '';
590        menuToggle.setAttribute('aria-label', '打开菜单');
591      }
592
593      menuToggle.addEventListener('click', function() {
594        if (mobileMenu.classList.contains('open')) {
595          closeMenu();
596        } else {
597          openMenu();
598        }
599      });
600
601      menuLinks.forEach(function(link) {
602        link.addEventListener('click', closeMenu);
603      });
604    })();
605
606    (function() {
607      // 登录功能
608      const loginButton = document.getElementById('login-button');
609      const loginButtonMobile = document.getElementById('login-button-mobile');
610      const loginModal = document.getElementById('login-modal');
611      const closeModal = document.getElementById('close-modal');
612      const loginIframe = document.getElementById('login-iframe');
613      const loginFrameClip = document.querySelector('.login-frame-clip');
614      const nowGetButton = document.getElementById('now-get');
615      const toStartButton = document.getElementById('to-start');
616      const mobileMenuLoginButton = document.getElementById('mobile-menu-login-button');
617      let login_url = "https://uc.aa.com.cn/login/oauth/authorize?client_id=5cbb2506c9e13330fe1a&response_type=code&redirect_uri=https%3A%2F%2Fwww.aa.com.cn%2Fconsole%2Fcallback&theme=light&origin=home&icode=";
618      let register_url = "https://uc.aa.com.cn/signup?client_id=5cbb2506c9e13330fe1a&response_type=code&redirect_uri=https%3A%2F%2Fwww.aa.com.cn%2Fconsole%2Fcallback&theme=light&origin=home&icode=";
619
620
621      // 监听来自iframe的消息
622      window.addEventListener('message', function(event) {
623        // 检查消息是否表示登录成功
624        if (event.data.type === 'login_success' || 'access_token' in event.data) {
625          // 登录成功,关闭弹窗
626          closeLoginModal();
627          // 写入 Cookie
628          document.cookie = "access_token=" + event.data.access_token + "; path=/";
629          localStorage.setItem("access_token", event.data.access_token);
630          // 刷新页面
631          location.reload();
632        }
633      });
634
635      // 登录函数
636      function showLoginModal() {
637        // 设置iframe的src
638        loginIframe.src = login_url;
639        // 显示弹窗
640        loginModal.classList.remove('hidden');
641        // 禁止背景滚动
642        document.body.classList.add('modal-open');
643      }
644
645      // 点击立即获取 API Key 按钮
646      if (nowGetButton) {
647        nowGetButton.addEventListener('click', function() {
648          if (localStorage.getItem('access_token')) { // 已登录,直接跳转到api key 页面
649            window.location.href = '/console/api-key';
650          } else {
651            // 判断是否移动端,移动端直接跳转
652            if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
653              window.location.href = login_url;
654            } else {
655              showLoginModal();
656            }
657          }
658        });
659      }
660
661      // 点击开始使用按钮
662      if (toStartButton) {
663        toStartButton.addEventListener('click', function() {
664          if (localStorage.getItem('access_token')) { // 已登录,直接跳转到定价页面
665            window.location.href = '/console/';
666          } else {
667            // 判断是否移动端,移动端直接跳转
668            if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
669              window.location.href = login_url;
670            } else {
671              showLoginModal();
672            }
673          }
674        });
675      }
676
677      // 点击登录按钮
678      if (loginButton) {
679        loginButton.addEventListener('click', showLoginModal);
680      }
681
682      // 注册函数
683      function showRegisterModal() {
684        // 设置iframe的src
685        loginIframe.src = register_url;
686        // 显示弹窗
687        loginModal.classList.remove('hidden');
688        // 禁止背景滚动
689        document.body.classList.add('modal-open');
690      }
691
692      // 点击注册按钮
693      const registerButton = document.getElementById('register-button');
694      if (registerButton) {
695        registerButton.addEventListener('click', showRegisterModal);
696      }
697
698      // 关闭弹窗
699      function closeLoginModal() {
700        loginModal.classList.add('hidden');
701        loginIframe.src = '';
702        // 恢复背景滚动
703        document.body.classList.remove('modal-open');
704      }
705
706      closeModal.addEventListener('click', closeLoginModal);
707
708      // 点击遮罩层关闭弹窗
709      loginModal.addEventListener('click', function(e) {
710        if (e.target === loginModal) {
711          closeLoginModal();
712        }
713      });
714
715      // 用户信息和下拉菜单
716      const userArea = document.getElementById('user-area');
717      const userDropdown = document.getElementById('user-dropdown');
718      const userAvatar = document.getElementById('user-avatar');
719      const avatarImg = document.getElementById('avatar-img');
720      const avatarInitial = document.getElementById('avatar-initial');
721      const logoutButton = document.getElementById('logout-button');
722      const mobileMenuLogoutButton = document.getElementById('mobile-menu-logout-button');
723      const mobileUcenter = document.querySelector('.mobile-ucenter');
724      const mobileConsole = document.querySelector('.mobile-console');
725      const mobileLogoutButton = document.getElementById('mobile-logout-button');
726      const consoleLink = document.getElementById('console-link');
727
728      avatarImg.onerror = function() { // 图片加载失败时,显示首字符,隐藏图片
729        avatarImg.classList.add('hidden');
730        avatarInitial.classList.remove('hidden');
731      };
732
733      avatarImg.onload = function() { // 图片加载成功时,显示图片,隐藏首字符
734        avatarImg.classList.remove('hidden');
735        avatarInitial.classList.add('hidden');
736      };
737
738      // 检查用户登录状态
739      function checkLoginStatus() {
740        const accessToken = localStorage.getItem('access_token');
741        if (accessToken) {
742          // 有token,获取用户信息
743          fetch('/api/user/profile', {
744              headers: {
745                'Authorization': 'Bearer ' + accessToken
746              }
747            })
748            .then(response => response.json())
749            .then(data => {
750              if (data.code === 200 && data.data) {
751                // 显示用户头像
752                loginButton.classList.add('hidden');
753                loginButton.classList.remove('sm:block');
754                registerButton.classList.add('hidden');
755                registerButton.classList.remove('sm:block');
756                if (loginButtonMobile) {
757                  loginButtonMobile.classList.add('hidden');
758                }
759                userDropdown.classList.remove('hidden');
760                // 移动端菜单:隐藏登录按钮,显示退出登录按钮
761                if (mobileMenuLoginButton) {
762                  mobileMenuLoginButton.classList.add('hidden');
763                }
764                if (mobileMenuLogoutButton) {
765                  mobileMenuLogoutButton.classList.remove('hidden');
766                }
767                // 显示控制台
768                if (mobileConsole) {
769                  mobileConsole.classList.remove('hidden');
770                }
771                // 显示个人中心
772                if (mobileUcenter) {
773                  mobileUcenter.classList.remove('hidden');
774                }
775                // 显示控制台链接
776                if (consoleLink) {
777                  consoleLink.classList.remove('hidden');
778                }
779                const displayName = data.data.display_name || data.data.name || 'A';
780                avatarInitial.textContent = displayName.charAt(0).toUpperCase();
781                avatarImg.src = data.data.avatar;
782                // 把本地存储的token写入 Cookie(移动端的登录是跳转,未进行cookie维护),cookie在退出登录时需要使用
783                document.cookie = "access_token=" + accessToken + "; path=/";  
784              } else {
785                // 没有用户信息,显示登录按钮
786                loginButton.classList.remove('hidden');
787                loginButton.classList.add('sm:block');
788                registerButton.classList.remove('hidden');
789                registerButton.classList.add('sm:block');
790                if (loginButtonMobile) {
791                  loginButtonMobile.classList.remove('hidden');
792                }
793                userDropdown.classList.add('hidden');
794                // 移动端菜单:显示登录按钮,隐藏退出登录按钮
795                if (mobileMenuLoginButton) {
796                  mobileMenuLoginButton.classList.remove('hidden');
797                }
798                if (mobileMenuLogoutButton) {
799                  mobileMenuLogoutButton.classList.add('hidden');
800                }
801                // 隐藏控制台链接
802                if (consoleLink) {
803                  consoleLink.classList.add('hidden');
804                }
805              }
806            })
807            .catch(error => {
808              console.error('获取用户信息失败:', error);
809              // 出错时显示登录按钮
810              loginButton.classList.remove('hidden');
811              loginButton.classList.add('sm:block');
812              registerButton.classList.remove('hidden');
813              registerButton.classList.add('sm:block');
814              if (loginButtonMobile) {
815                loginButtonMobile.classList.remove('hidden');
816              }
817              userDropdown.classList.add('hidden');
818              // 移动端菜单:显示登录按钮,隐藏退出登录按钮
819              if (mobileMenuLoginButton) {
820                mobileMenuLoginButton.classList.remove('hidden');
821              }
822              if (mobileMenuLogoutButton) {
823                mobileMenuLogoutButton.classList.add('hidden');
824              }
825              // 隐藏控制台链接
826              if (consoleLink) {
827                consoleLink.classList.add('hidden');
828              }
829            });
830        } else {
831          // 没有token,显示登录按钮
832          loginButton.classList.remove('hidden');
833          loginButton.classList.add('sm:block');
834          registerButton.classList.remove('hidden');
835          registerButton.classList.add('sm:block');
836          if (loginButtonMobile) {
837            loginButtonMobile.classList.remove('hidden');
838          }
839          userDropdown.classList.add('hidden');
840          // 移动端菜单:显示登录按钮,隐藏退出登录按钮
841          if (mobileMenuLoginButton) {
842            mobileMenuLoginButton.classList.remove('hidden');
843          }
844          if (mobileMenuLogoutButton) {
845            mobileMenuLogoutButton.classList.add('hidden');
846          }
847          // 隐藏控制台链接
848          if (consoleLink) {
849            consoleLink.classList.add('hidden');
850          }
851        }
852      }
853
854      // 初始化时检查登录状态
855      checkLoginStatus();
856
857      // 用户头像悬停效果
858      userAvatar.addEventListener('mouseenter', function() {
859        userDropdown.querySelector('div').classList.remove('hidden');
860      });
861
862      userArea.addEventListener('mouseleave', function() {
863        userDropdown.querySelector('div').classList.add('hidden');
864      });
865
866      // 退出登录
867      logoutButton.addEventListener('click', function(e) {
868        e.preventDefault();
869        localStorage.removeItem('access_token');
870        window.location.href = '/logout';
871      });
872
873      // 移动端菜单退出登录
874      if (mobileMenuLogoutButton) {
875        mobileMenuLogoutButton.addEventListener('click', function(e) {
876          e.preventDefault();
877          localStorage.removeItem('access_token');
878          window.location.href = '/logout';
879        });
880      }
881
882      // 建设中提示
883      const aboutLink = document.getElementById('about-link');
884      const mobileAboutLink = document.getElementById('mobile-about-link');
885
886      if (aboutLink) {
887        aboutLink.addEventListener('click', function(e) {
888          e.preventDefault();
889          alert('建设中');
890        });
891      }
892
893      if (mobileAboutLink) {
894        mobileAboutLink.addEventListener('click', function(e) {
895          e.preventDefault();
896          alert('建设中');
897        });
898      }
899
900      // 移动端菜单
901      const mobileMenuButton = document.getElementById('mobile-menu-button');
902      const mobileMenu = document.getElementById('mobile-menu');
903
904      if (mobileMenuButton && mobileMenu) {
905        mobileMenuButton.addEventListener('click', function() {
906          mobileMenu.classList.toggle('hidden');
907        });
908
909        // 点击页面其他地方关闭菜单
910        document.addEventListener('click', function(e) {
911          if (!mobileMenuButton.contains(e.target) && !mobileMenu.contains(e.target)) {
912            mobileMenu.classList.add('hidden');
913          }
914        });
915      }
916
917      // 回到顶部按钮
918      const backToTopButton = document.getElementById('back-to-top');
919      if (backToTopButton) {
920        // 显示/隐藏按钮
921        window.addEventListener('scroll', function() {
922          if (window.scrollY > 300) {
923            backToTopButton.classList.add('show');
924          } else {
925            backToTopButton.classList.remove('show');
926          }
927        });
928
929        // 点击回到顶部
930        backToTopButton.addEventListener('click', function() {
931          window.scrollTo({
932            top: 0,
933            behavior: 'smooth'
934          });
935        });
936      }
937    })();
938  </script>
938
939  </body>
940
941</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.