← 返回蜂巢洞察

如何在Figma中创建并使用复选框

复选框是现代用户界面设计中不可或缺的重要组成部分。它们使用户能够轻松地进行多项选 … Read More

Socrates

复选框是现代用户界面设计中不可或缺的重要组成部分。它们使用户能够轻松地进行多项选择、确认操作或控制各种功能。

虽然复选框看起来很简单,但在Figma中设计交互性强且可扩展的复选框,实际上需要对相关组件、变体、状态及属性有深入的理解。

本指南会为您详细介绍所需了解的所有内容,从复选框的功能与种类,到构建完全交互式组件的具体步骤,应有尽有。

您还将学习一些最佳实践,这些实践有助于提升界面的可用性;同时,通过使用现成的组件,您还能更快地完成设计工作,从而打造出更高效、更具可开发性的设计方案。

目录:

  1. 什么是复选框?

  2. 用户界面设计中的复选框变体

  3. 复选框的状态

  4. 在Figma中创建交互式复选框的步骤

  5. 复选框的各种属性

  6. 在Figma中设计复选框的最佳实践

  7. 利用现成的复选框组件提升工作效率

  8. 总结

什么是复选框?

复选框是一种用户界面元素,它允许用户从一组选项中选择一个或多个选项。每个复选框都是独立运行的,因此用户可以同时进行多项选择。

在Figma中,复选框通常被设计成具有多种变体的组件,这样设计师就可以在原型中展示不同的状态,比如已选中、未选中、鼠标悬停时显示的状态,或是被禁用的状态。

复选框的作用是什么?(我们为什么使用它?)

当用户需要以下操作时,您可以在设计中使用复选框:

  • 选择多个选项

  • 确认某个操作

  • 启用或禁用某项功能

  • 同意某些条款或政策

常见的实际应用场景:

  • “我同意这些条款与条件。”

  • 选择通知偏好设置

  • 在电商应用程序中筛选商品

  • 在待办事项应用中将任务标记为已完成

在Figma的原型设计中,交互式复选框能够帮助模拟真实用户的行为,从而让设计在开发之前就更容易得到验证。

figma prototype example

UI设计中复选框的多种表现形式

不同的复选框格式

根据你的设计体系,复选框可以有多种呈现方式:

卡片式复选框选择——将复选框与卡片结合使用,用户可以通过卡片来选择相应的选项。这种设计方式能够提升视觉清晰度,特别适合用于需要选择大量内容的场景。

简单的待办事项列表复选框——适用于任务列表的基本复选框布局,用户可以用来标记已完成的任务项。这种格式常用于简单的进度追踪和效率管理。

状态与完成状态复选框——用于表示不同的任务状态,如待处理、进行中或已完成。这类复选框有助于用户快速了解任务的当前进展状况。

错误提示复选框——当某个必填的复选框未被选中时,会显示相应的错误提示。这种设计常用于表单中,以引导用户完成必要的操作。

芯片样式复选框选择——将复选框与芯片风格的UI元素结合使用,提供紧凑的多选功能。这类设计非常适合用于筛选、标记或快速选择操作。

嵌套式复选框结构——以父子关系组织复选框,支持批量选择以及部分选中状态,从而更好地实现层次化管理。

UI设计中复选框的多种表现形式

设计提示:

  • 当用户需要选择多个选项时,应使用复选框

  • 当只允许选择一个选项时,应使用单选按钮

复选框的状态

一个设计良好的复选框应该能够清晰地向用户显示其当前状态。

常见的复选框状态:

在下面的示例中,你可以看到复选框的各种状态:未选中、已选中、部分选中、禁用且不可选中、以及禁用但可被选中:

复选框的状态

未选中(默认状态):表示尚未进行任何选择。这种状态说明该选项是可用的,但目前未被选中。

已选中:表示用户已经选择了该选项。这种状态通常会用勾号来表示。

鼠标悬停时显示的状态:当用户将鼠标指针移到复选框上时,会显示这种状态,以表明该元素是可以交互的。

激活/被点击时的状态:当用户点击或触碰复选框时,会进入这种状态。在最终状态确定之前,这种状态会立即给予用户反馈。禁用状态:表示该复选框不具备交互功能,也无法被更改。通常会通过将其颜色变淡来提示该选项不可使用。
部分选中状态:表示选择了某些相关选项,但并非全部选项都被选中。这种状态常用于表示父级元素与子级元素之间的关系。

Figma如何处理这些状态(通过变体来实现)

在Figma中,使用组件内的变体来管理这些状态是最有效的方法。这种方法允许你将同一UI元素的多个版本组合到一个有条理的组件集中。

无需为每种状态分别设计不同的复选框样式,通过变体功能,你可以在一个组件中定义所有状态,比如已选中、未选中、悬停时以及禁用状态。每种状态都对应一个变体,你可以使用相应的属性在它们之间进行切换,例如:

  • State = Unchecked

  • State = Checked

  • State = Disabled

这种做法有助于确保所有复选框实例保持一致性,并且可以通过属性面板快速切换状态。此外,通过关联不同的变体,你还可以创建交互式原型(例如,点击后状态会变为已选中),同时有效避免重复制作组件,从而提高设计效率。

简单来说,变体其实就是组件的不同“版本”,而Figma允许你将这些版本组合起来,模拟真实的UI交互效果——就像实际产品中复选框的工作方式一样。

在Figma中创建交互式复选框的步骤

从零开始设计交互式复选框确实有助于学习,但在实际项目中,速度和一致性才是关键。

如果你需要可以直接用于生产的复选框组件,可以试试Shadcn Studio。

它提供了受现代设计理念启发的、结构清晰且可扩展的UI组件,帮助设计师在保证质量的前提下提高工作效率。

步骤1:设计复选框的用户界面

首先画一个正方形(推荐尺寸为24×24像素),然后添加一个表示已选中状态的勾选图标(推荐尺寸为20×20像素)。

接下来添加文字标签(推荐字体大小为14像素),可以使用自动布局功能来确保各元素之间的间距合适(推荐间距为12像素)。

最终效果应该如下图所示:

设计复选框的用户界面

步骤2:创建组件

将你设计的复选框转换为一个可重复使用的组件,这样就能确保设计的一致性和可扩展性。通过添加变体,你可以在一个组件集中高效地管理不同的状态变化。

  • 选择复选框的设计样式。

  • 将其转换为一个组件

  • 为不同的状态创建变体

    • 未选中状态

    • 已选中状态

    • 不确定状态

    • 禁止选中操作

    • 禁止取消选中操作

为这些变体属性起明确的名称,例如:

  • State = 未选中

  • State = 已选中

依此类推。

创建组件

步骤3:为变体添加交互功能

在设置交互功能之前,首先需要了解其工作原理。

在Figma中,各个变体并不会自动知道如何在不同状态之间切换。你必须明确指定某个变体在什么条件下会转换成另一个状态,这需要通过原型交互功能来实现。

可以这样理解:

  • 每个变体都代表一种状态(未选中、已选中、悬停状态等)。

  • 交互规则就是告诉Figma在什么情况下应该切换这些状态。

因此,当用户点击复选框时,你实际上是在告诉Figma:“当这个操作发生时(即被点击),状态应该从当前状态切换到另一个状态。”

正是这种机制使得复选框具备了交互功能,其工作原理与真实代码中的状态转换逻辑类似。

现在让我们来具体实现这一过程:

  • 切换到原型选项卡。

  • 选择未选中变体。

  • 添加一个交互规则:

    • 触发条件: 点击操作

    • 操作内容: 将状态切换为→已选中

现在,重复相同的步骤来创建反向交互规则(这样复选框就可以再次恢复到未选中状态):

  • 选择已选中变体。

  • 添加一个交互规则:

    • 触发条件: 点击操作

    • 操作内容: 将状态切换为→未选中

这种双向交互机制(未选中→已选中、已选中→未选中)正是复选框具备切换功能的原因所在。

为变体添加交互规则

步骤4:测试复选框的功能

预览该组件,确保所有的交互规则和状态都能正常工作。这一步有助于验证复选框在实际设计中的使用效果是否正确。

  • 点击“展示”按钮。

  • 尝试操作这个复选框。

  • 它应该能够在已选中和未选中状态之间切换。

复选框:各种属性

在深入探讨具体属性之前,我们先来了解一下Figma中的变量是什么,以及它们为何如此重要。

Figma中的变量是什么呢?

Figma中的变量允许你存储和控制各种数值,比如元素的可见性、文本内容、颜色、大小或状态,并能在不同的组件中重复使用这些值。这与代码中变量的作用方式类似。

与其手动修改每个组件的实例,不如使用变量来一次性定义某个值,然后动态地控制它的表现。

可以把变量想象成以下这些东西:

  • 开关(布尔值)——用于控制元素的显示或隐藏

  • 选项(不同状态)——允许元素在“已选中”或“未选中”等状态下切换

  • 可伸缩控件——能够统一调整多个组件的大小、样式或主题

这样,你的组件就会变得更加灵活、可扩展,也更容易进行管理,尤其是在规模较大的设计系统中。

为什么要在复选框中使用变量?

复选框往往需要根据不同的使用场景来调整其显示方式,比如是否显示标签、改变大小或切换状态。利用变量,你就可以轻松实现这些调整,而无需为每种变化情况都创建单独的组件。

通过使用变量,同一个复选框组件可以表现出多种不同的功能。

你可以用变量控制什么?

利用Figma的变量,你可以:

显示或隐藏标签——控制标签是否与复选框一起显示。当空间有限或者上下文已经很清晰时,这个功能非常有用。

状态切换——定义“已选中”“未选中”“悬停”或“禁用”等状态,以确保组件表现出一致的行为和反馈效果。

大小调整——指定复选框的大小(小、中、大),从而在不同用户界面环境中保持视觉上的统一性。

创建多种变体——结合状态、大小和标签的显示规则,创建结构化的组件变体,从而提高组件的可扩展性和便于管理性。

首先,我们来学习如何控制复选框中标签的显示与隐藏。

1. 将其转换为组件

你可以将复选框转换为一个可重复使用的组件,这样就可以在多个设计项目中统一使用它了。此外,之后还可以为这个组件添加各种属性和变体。

  • 选中整个复选框,包括图标和标签文本

  • 按Cmd / Ctrl + Alt + K将其转换为组件

  • 将组件的名称改为“Check Box”

2. 为标签创建布尔属性

你可以使用布尔属性来控制标签的显示与否。这样,这个组件就能适应更多的使用场景了。

  • 选择主组件。

  • 在右侧面板的“属性”选项中,点击“+”按钮。

  • 选择“布尔值”类型。

  • 将此属性命名为“Label”。

  • 将默认值设置为“True”。

这个布尔值属性用于控制标签的可见性。

3. 将布尔值属性与标签的可见性关联起来

你可以将这个布尔值属性与标签层关联起来,从而根据该属性的值来动态控制标签的可见性。

  • 仅选择“标签文本”层。

  • 在右侧面板的“外观”选项中……

  • 点击图片中标有红色方块的图标。

  • 选择“绑定到属性”选项。

  • 选择“Label Boolean”属性。

布尔值属性与标签可见性的关联

现在,我们将学习如何为复选框添加与尺寸、状态及变体相关的属性。

我们会创建涵盖以下所有情况的复选框设计:

  • 状态:未选中、已选中、不确定状态、禁用选中状态、禁用未选中状态

  • 变体:主变量、次级变量、信息提示变量、警告变量、破坏性操作变量

  • 尺寸:小号、中号、大号

如何为复选框添加尺寸、状态及变体属性

然后选择所有这些复选框设计,通过点击“创建多个组件”(Cmd / Ctrl + Alt + K)将它们转换为组件。

当所有组件都被选中后,点击“合并为变体”按钮。

各种颜色和状态的带标签的复选框图标网格。右侧的下拉菜单中提供了“创建多个组件”等选项。其他UI元素用于显示选择信息以及“合并为变体”按钮。’ height="400" loading="lazy" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1770895169444/5890e140-abdb-4de2-89cd-1c6443974853.png" style="display:block;margin:0 auto" width="600"/></p>
<p>选择主组件集并重新命名相关属性:</p>
<ul>
<li>
<p>将“Property 1”重命名为“state”。</p>
</li>
<li>
<p>添加一个“Variant”属性,并将其重命名为“variant”。</p>
</li>
<li>
<p>再添加另一个“Variant”属性,并将其重命名为“size”。</p>
</li>
</ul>
<p><img alt="复选框组件的创建过程" height="400" loading="lazy" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1770895197034/65ec9280-cc35-495f-be4a-1dad60001331.png" style="display:block;margin:0 auto" width="600"/></p>
<p>选择所有未选中的复选框,并设置其属性为:</p>
<ul>
<li><strong>state = 未选中</strong></li>
</ul>
<p>其他状态对应的属性也需进行同样的设置。</p>
<ul>
<li>
<p>选中所有主复选框,并设置如下属性:</p>
<ul>
<li><strong>variant = Primary</strong></li>
</ul>
</li>
</ul>
<p>其他所有的“Variant”值也请按照相同步骤进行设置。</p>
<p><img alt="涉及复选框的设计流程" height="400" loading="lazy" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1770895305294/9faa609f-afe2-4146-9cc0-c26acf80bbf5.png" style="display:block;margin:0 auto" width="600"/></p>
<p>接着选中所有“medium”尺寸的复选框,并设置如下属性:</p>
<ul>
<li><strong>size = md</strong></li>
</ul>
<p>其他所有的“Size”值也请按照相同步骤进行设置。</p>
<p>将任意复选框拖放到画布上,验证“State”、“Variant”和“Size”这些属性是否能够正常使用:</p>
<p><img alt="复选框的尺寸设置" height="400" loading="lazy" src="https://cdn.hashnode.com/res/hashnode/image/upload/v1770895397620/65ba3b77-8d18-432e-b6e5-0f663a8fb8d6.png" style="display:block;margin:0 auto" width="600"/></p>
<h2 id="heading-best-practices-for-checkbox-design-in-figma">在Figma中设计复选框的最佳实践</h2>
<p><strong>务必为每个复选框添加清晰、易读的标签</strong>——清晰的标签能够帮助用户快速理解每个复选框的功能,从而减少使用过程中的困惑。</p>
<p><strong>使用“自动布局”功能保持一致的间距</strong>——统一的间距能够确保视觉上的平衡与对齐,同时让布局具有可扩展性和条理性。</p>
<p><strong>确保足够的色彩对比度,以便所有用户都能顺利使用</strong>——适当的色彩对比度可以提高可见性,确保复选框对所有用户都是可用的。</p>
<p><strong>使可点击区域足够大</strong>——较大的可点击区域能够提升用户体验,尤其是在触摸设备上,同时还能减少误操作的发生。</p>
<p><strong>保持交互操作的简单性和可预测性</strong>——简单且可预测的交互方式能够帮助用户更容易地理解界面的行为规律,从而增强使用体验。</p>
<h2 id="heading-speed-up-with-ready-made-checkbox-components">利用现成的复选框组件来提升效率</h2>
<p>从零开始设计交互式复选框确实有助于学习,但在实际项目中,速度和一致性才是关键。</p>
<p>如果你需要可用于正式项目的复选框组件,可以试试<a href="https://shadcnstudio.com/">Shadcn Studio</a>。它提供了结构清晰、可扩展的UI组件,这些组件的设计灵感来源于现代设计理念,能够帮助设计师更快地完成工作,同时不会牺牲质量。</p>
<h3 id="heading-why-use-shadcn-studio">为什么选择使用Shadcn Studio?</h3>
<ul>
<li>
<p>能够节省大量重复性的UI开发时间</p>
</li>
<li>
<p>确保复选框样式的一致性</p>
</li>
<li>
<p>易于集成到现有的设计系统中</p>
</li>
<li>
<p>特别适合用于SaaS产品、仪表盘和网页应用</p>
</li>
</ul>
<p>你可以在Shadcn Studio上探索<a href="https://shadcnstudio.com/docs/components/checkbox"><strong>Shadcn复选框组件</strong></a>。此外,那里还提供了可以试用的动画效果复选框组件。</p>
<h2 id="heading-conclusion">结论</h2>
<p>复选框是一种体积虽小但却至关重要的用户界面元素,它们能够提升用户体验,并帮助在Figma中模拟真实用户的交互行为。通过使用组件、变体、自动布局功能以及变量,设计师们可以创建出可扩展、易于使用且设计风格统一的复选框系统。遵循最佳实践能够确保内容的清晰性,从而提升用户体验;而现成的组件库则可以加快工作流程的进度,并保持设计风格的一致性。掌握交互式复选框的功能,最终能够帮助设计师更高效地完成原型设计,从而打造出成熟、可直接用于生产的界面。<br />
这篇文章是在<a href="https://github.com/nirmiclevision">Nirmi Nagori</a>这位充满热情的Figma设计师的帮助下完成的。</p>
 </div> <section class="mt-12 border-t border-slate-200 pt-10 dark:border-slate-800"><h2 class="text-xl font-bold text-slate-900 dark:text-white">相关文章</h2><div class="mt-6 grid gap-6 md:grid-cols-2"><article class="group flex h-full flex-col overflow-hidden rounded-3xl border border-slate-200 bg-white shadow-sm transition hover:-translate-y-0.5 hover:shadow-md dark:border-slate-800 dark:bg-slate-900"> <a href="/articles/%22Relaxation-and-its-Role-in-Vision%22%3A-The-1977-PhD-Thesis-That-Helped-Shape-Modern-AI-Research" class="relative block aspect-[16/10] overflow-hidden bg-slate-900"> <div class="absolute inset-0 bg-gradient-to-br from-blue-600 via-cyan-700 to-slate-900"> <div class="absolute inset-0 bg-[radial-gradient(circle_at_20%_80%,rgba(255,255,255,0.2),transparent_45%)]"></div> </div>   <div class="absolute inset-0 flex flex-col justify-end p-5"> <span class="inline-flex w-fit rounded-full px-3 py-1 text-xs font-semibold bg-blue-50 text-blue-700 dark:bg-blue-950/50 dark:text-blue-200">技术实践</span>  </div> </a> <div class="flex flex-1 flex-col p-5"> <p class="flex items-center gap-2 text-sm text-slate-500 dark:text-slate-400"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-4 w-4" data-icon="tabler:calendar">   <use href="#ai:tabler:calendar"></use>  </svg> <time datetime="Wed Jul 22 2026 14:41:11 GMT+0800 (China Standard Time)">2026年7月22日</time>  </p> <h3 class="mt-3 text-lg font-bold leading-snug text-slate-900 dark:text-white"> <a href="/articles/%22Relaxation-and-its-Role-in-Vision%22%3A-The-1977-PhD-Thesis-That-Helped-Shape-Modern-AI-Research" class="transition hover:text-violet-600 dark:hover:text-violet-300">“放松与它在视觉中的作用”:这篇1977年完成的博士论文为现代人工智能研究的发展奠定了基础</a> </h3> <p class="mt-3 flex-1 text-sm leading-7 text-slate-600 dark:text-slate-300">当人们提到杰弗里·辛顿时,他们通常会想到反向传播算法、玻尔兹曼机、深度信念网络,以及那些彻底改变了人工智能发展的深度学习技术。 然而,很少有人会追溯到他科研生涯的起点。 1977年,在那篇著名的关于反向传播的论文发表之前的近十年时间里,辛顿在爱丁堡大学完成了他的博士论文,题为《松弛机制在视觉认知中的作用》。乍一看,这篇论文似乎只是探讨计算机视觉与松弛算法之间的关系。当我开始阅读它时,我也正是抱着这样的预期。 然而,在仔细研读之后,我意识到这篇论文涉及的远不止视觉算法。许多后来成为辛顿研究核心的理念,在当时就已经初具雏形。虽然当时的术语有所不同,数学表达也更为简单,神经网络也尚未成为他研究的重点</p> <a href="/articles/%22Relaxation-and-its-Role-in-Vision%22%3A-The-1977-PhD-Thesis-That-Helped-Shape-Modern-AI-Research" class="mt-4 inline-flex items-center gap-1 text-sm font-semibold text-violet-600 transition hover:text-violet-700 dark:text-violet-300">
阅读全文
<svg width="1em" height="1em" class="h-4 w-4 transition group-hover:translate-x-0.5" data-icon="tabler:arrow-right">   <symbol id="ai:tabler:arrow-right" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14m-6 6l6-6m-6-6l6 6"/></symbol><use href="#ai:tabler:arrow-right"></use>  </svg> </a> </div> </article><article class="group flex h-full flex-col overflow-hidden rounded-3xl border border-slate-200 bg-white shadow-sm transition hover:-translate-y-0.5 hover:shadow-md dark:border-slate-800 dark:bg-slate-900"> <a href="/articles/the-hidden-tax-of-infrastructure-why-your-team-shouldnt-be-running-it-anymore" class="relative block aspect-[16/10] overflow-hidden bg-slate-900"> <div class="absolute inset-0 bg-gradient-to-br from-blue-600 via-cyan-700 to-slate-900"> <div class="absolute inset-0 bg-[radial-gradient(circle_at_20%_80%,rgba(255,255,255,0.2),transparent_45%)]"></div> </div>   <div class="absolute inset-0 flex flex-col justify-end p-5"> <span class="inline-flex w-fit rounded-full px-3 py-1 text-xs font-semibold bg-blue-50 text-blue-700 dark:bg-blue-950/50 dark:text-blue-200">技术实践</span>  </div> </a> <div class="flex flex-1 flex-col p-5"> <p class="flex items-center gap-2 text-sm text-slate-500 dark:text-slate-400"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-4 w-4" data-icon="tabler:calendar">   <use href="#ai:tabler:calendar"></use>  </svg> <time datetime="Sat Apr 25 2026 18:06:46 GMT+0800 (China Standard Time)">2026年4月25日</time>  </p> <h3 class="mt-3 text-lg font-bold leading-snug text-slate-900 dark:text-white"> <a href="/articles/the-hidden-tax-of-infrastructure-why-your-team-shouldnt-be-running-it-anymore" class="transition hover:text-violet-600 dark:hover:text-violet-300">那些被隐藏起来的基础设施建设成本:为什么你的团队不应该再继续承担这些责任了</a> </h3> <p class="mt-3 flex-1 text-sm leading-7 text-slate-600 dark:text-slate-300">大多数工程团队最初并不是为了管理基础设施而开始工作的。他们通常是带着某个产品创意 &hellip; Read More</p> <a href="/articles/the-hidden-tax-of-infrastructure-why-your-team-shouldnt-be-running-it-anymore" class="mt-4 inline-flex items-center gap-1 text-sm font-semibold text-violet-600 transition hover:text-violet-700 dark:text-violet-300">
阅读全文
<svg width="1em" height="1em" viewBox="0 0 24 24" class="h-4 w-4 transition group-hover:translate-x-0.5" data-icon="tabler:arrow-right">   <use href="#ai:tabler:arrow-right"></use>  </svg> </a> </div> </article><article class="group flex h-full flex-col overflow-hidden rounded-3xl border border-slate-200 bg-white shadow-sm transition hover:-translate-y-0.5 hover:shadow-md dark:border-slate-800 dark:bg-slate-900"> <a href="/articles/how-to-elevate-your-database-game-supercharging-query-performance-with-postgres-fdw" class="relative block aspect-[16/10] overflow-hidden bg-slate-900"> <div class="absolute inset-0 bg-gradient-to-br from-blue-600 via-cyan-700 to-slate-900"> <div class="absolute inset-0 bg-[radial-gradient(circle_at_20%_80%,rgba(255,255,255,0.2),transparent_45%)]"></div> </div>   <div class="absolute inset-0 flex flex-col justify-end p-5"> <span class="inline-flex w-fit rounded-full px-3 py-1 text-xs font-semibold bg-blue-50 text-blue-700 dark:bg-blue-950/50 dark:text-blue-200">技术实践</span>  </div> </a> <div class="flex flex-1 flex-col p-5"> <p class="flex items-center gap-2 text-sm text-slate-500 dark:text-slate-400"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-4 w-4" data-icon="tabler:calendar">   <use href="#ai:tabler:calendar"></use>  </svg> <time datetime="Sat Feb 21 2026 04:31:05 GMT+0800 (China Standard Time)">2026年2月20日</time>  </p> <h3 class="mt-3 text-lg font-bold leading-snug text-slate-900 dark:text-white"> <a href="/articles/how-to-elevate-your-database-game-supercharging-query-performance-with-postgres-fdw" class="transition hover:text-violet-600 dark:hover:text-violet-300">如何提升数据库的性能:利用Postgres FDW来显著增强查询速度</a> </h3> <p class="mt-3 flex-1 text-sm leading-7 text-slate-600 dark:text-slate-300">外部数据封装机制使得远程的Postgres表看起来就像本地的表一样。正是这种便利 &hellip; Read More</p> <a href="/articles/how-to-elevate-your-database-game-supercharging-query-performance-with-postgres-fdw" class="mt-4 inline-flex items-center gap-1 text-sm font-semibold text-violet-600 transition hover:text-violet-700 dark:text-violet-300">
阅读全文
<svg width="1em" height="1em" viewBox="0 0 24 24" class="h-4 w-4 transition group-hover:translate-x-0.5" data-icon="tabler:arrow-right">   <use href="#ai:tabler:arrow-right"></use>  </svg> </a> </div> </article><article class="group flex h-full flex-col overflow-hidden rounded-3xl border border-slate-200 bg-white shadow-sm transition hover:-translate-y-0.5 hover:shadow-md dark:border-slate-800 dark:bg-slate-900"> <a href="/articles/the-impact-of-ai-on-software-testing" class="relative block aspect-[16/10] overflow-hidden bg-slate-900"> <div class="absolute inset-0 bg-gradient-to-br from-blue-600 via-cyan-700 to-slate-900"> <div class="absolute inset-0 bg-[radial-gradient(circle_at_20%_80%,rgba(255,255,255,0.2),transparent_45%)]"></div> </div>   <div class="absolute inset-0 flex flex-col justify-end p-5"> <span class="inline-flex w-fit rounded-full px-3 py-1 text-xs font-semibold bg-blue-50 text-blue-700 dark:bg-blue-950/50 dark:text-blue-200">技术实践</span>  </div> </a> <div class="flex flex-1 flex-col p-5"> <p class="flex items-center gap-2 text-sm text-slate-500 dark:text-slate-400"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-4 w-4" data-icon="tabler:calendar">   <use href="#ai:tabler:calendar"></use>  </svg> <time datetime="Tue Mar 05 2024 10:18:08 GMT+0800 (China Standard Time)">2024年3月5日</time>  </p> <h3 class="mt-3 text-lg font-bold leading-snug text-slate-900 dark:text-white"> <a href="/articles/the-impact-of-ai-on-software-testing" class="transition hover:text-violet-600 dark:hover:text-violet-300">人工智能对软件测试的影响</a> </h3> <p class="mt-3 flex-1 text-sm leading-7 text-slate-600 dark:text-slate-300">在当今快速的数字环境中,软件程序在我们的日常生活中发挥着至关重要的作用。从移动应 &hellip; Read More</p> <a href="/articles/the-impact-of-ai-on-software-testing" class="mt-4 inline-flex items-center gap-1 text-sm font-semibold text-violet-600 transition hover:text-violet-700 dark:text-violet-300">
阅读全文
<svg width="1em" height="1em" viewBox="0 0 24 24" class="h-4 w-4 transition group-hover:translate-x-0.5" data-icon="tabler:arrow-right">   <use href="#ai:tabler:arrow-right"></use>  </svg> </a> </div> </article></div></section> </article> <div class="w-full shrink-0 lg:w-56"> <aside class="w-full min-w-0 space-y-8 lg:sticky lg:top-24"> <section> <h2 class="text-sm font-semibold tracking-wide text-slate-900 dark:text-white">内容栏目</h2> <ul class="mt-3 flex flex-col gap-1"> <li> <a href="/articles/category/industry" class="block truncate rounded-lg px-2.5 py-1.5 text-sm font-medium transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300"> 行业洞察 </a> </li><li> <a href="/articles/category/technology" class="block truncate rounded-lg px-2.5 py-1.5 text-sm font-medium transition bg-violet-50 text-violet-700 dark:bg-violet-950/50 dark:text-violet-300"> 技术实践 </a> </li><li> <a href="/articles/category/product" class="block truncate rounded-lg px-2.5 py-1.5 text-sm font-medium transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300"> 产品动态 </a> </li> </ul> </section> <section> <h2 class="text-sm font-semibold tracking-wide text-slate-900 dark:text-white">文章分类</h2> <ul class="mt-3 flex flex-col gap-1"> <li> <a href="/articles/categories/%E5%AE%89%E5%85%A8" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="安全"> 安全 </a> </li><li> <a href="/articles/categories/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="操作系统"> 操作系统 </a> </li><li> <a href="/articles/categories/product" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="产品方案"> 产品方案 </a> </li><li> <a href="/articles/categories/%E4%BA%A7%E5%93%81%E8%BF%90%E8%90%A5" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="产品运营"> 产品运营 </a> </li><li> <a href="/articles/categories/%E5%A4%A7%E6%95%B0%E6%8D%AE" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition bg-violet-50 font-medium text-violet-700 dark:bg-violet-950/50 dark:text-violet-300" title="大数据"> 大数据 </a> </li><li> <a href="/articles/categories/printorder" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="电商打单"> 电商打单 </a> </li><li> <a href="/articles/categories/%E6%95%85%E9%9A%9C%E9%A2%84%E8%AD%A6" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="故障预警"> 故障预警 </a> </li><li> <a href="/articles/categories/%E6%9E%B6%E6%9E%84" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="架构"> 架构 </a> </li><li> <a href="/articles/categories/openapi" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="开放平台"> 开放平台 </a> </li><li> <a href="/articles/categories/uncategorized" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="默认"> 默认 </a> </li><li> <a href="/articles/categories/allsite" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="全渠道OMS+WMS"> 全渠道OMS+WMS </a> </li><li> <a href="/articles/categories/hotnews" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="热点关注"> 热点关注 </a> </li><li> <a href="/articles/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="人工智能"> 人工智能 </a> </li><li> <a href="/articles/categories/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="软件开发"> 软件开发 </a> </li><li> <a href="/articles/categories/%E6%95%B0%E6%8D%AE%E5%BA%93" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="数据库"> 数据库 </a> </li><li> <a href="/articles/categories/%E7%A7%BB%E5%8A%A8" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="移动"> 移动 </a> </li><li> <a href="/articles/categories/%E4%B8%93%E5%AE%B6%E8%A7%82" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="专家观"> 专家观 </a> </li><li> <a href="/articles/categories/expertpoint" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="专家观点"> 专家观点 </a> </li><li> <a href="/articles/categories/iot" class="block truncate rounded-lg px-2.5 py-1.5 text-sm transition text-slate-600 hover:bg-slate-50 hover:text-violet-700 dark:text-slate-300 dark:hover:bg-slate-900 dark:hover:text-violet-300" title="IoT"> IoT </a> </li> </ul> </section> <section> <h2 class="text-sm font-semibold tracking-wide text-slate-900 dark:text-white">文章标签</h2> <ul class="mt-3 flex flex-wrap gap-1.5"> <li class="max-w-full"> <a href="/articles/tags/%E6%95%B0%E6%8D%AE" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="数据"> 数据 </a> </li><li class="max-w-full"> <a href="/articles/tags/strong" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="strong"> strong </a> </li><li class="max-w-full"> <a href="/articles/tags/data" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="data"> data </a> </li><li class="max-w-full"> <a href="/articles/tags/code" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="code"> code </a> </li><li class="max-w-full"> <a href="/articles/tags/span" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="span"> span </a> </li><li class="max-w-full"> <a href="/articles/tags/ai" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="AI"> AI </a> </li><li class="max-w-full"> <a href="/articles/tags/li" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="li"> li </a> </li><li class="max-w-full"> <a href="/articles/tags/%E6%95%B0%E6%8D%AE%E5%BA%93" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="数据库"> 数据库 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E6%A8%A1%E5%9E%8B" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="模型"> 模型 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E4%BD%BF%E7%94%A8" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="使用"> 使用 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="人工智能"> 人工智能 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E4%B8%AD" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="中"> 中 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E6%9C%8D%E5%8A%A1" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="服务"> 服务 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E4%BC%9A" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="会"> 会 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E6%8A%80%E6%9C%AF" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="技术"> 技术 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E7%B3%BB%E7%BB%9F" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="系统"> 系统 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E5%AE%89%E5%85%A8" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="安全"> 安全 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E7%94%A8%E6%88%B7" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="用户"> 用户 </a> </li><li class="max-w-full"> <a href="/articles/tags/em" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="em"> em </a> </li><li class="max-w-full"> <a href="/articles/tags/%E4%BB%A3%E7%A0%81" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="代码"> 代码 </a> </li><li class="max-w-full"> <a href="/articles/tags/%E4%BB%A3%E7%A0%81%EF%BC%8C%E4%BC%9A%E7%9A%84%E3%80%82" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="代码,会的。"> 代码,会的。 </a> </li><li class="max-w-full"> <a href="/articles/tags/nbsp" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="nbsp"> nbsp </a> </li><li class="max-w-full"> <a href="/articles/tags/ltr" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="ltr"> ltr </a> </li><li class="max-w-full"> <a href="/articles/tags/variable" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="variable"> variable </a> </li><li class="max-w-full"> <a href="/articles/tags/iot" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="iot"> iot </a> </li><li class="max-w-full"> <a href="/articles/tags/%E8%AE%BE%E5%A4%87" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="设备"> 设备 </a> </li><li class="max-w-full"> <a href="/articles/tags/href" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="href"> href </a> </li><li class="max-w-full"> <a href="/articles/tags/kafka" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="kafka"> kafka </a> </li><li class="max-w-full"> <a href="/articles/tags/python" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="python"> python </a> </li><li class="max-w-full"> <a href="/articles/tags/%E4%BA%91" class="inline-flex max-w-full truncate rounded-full px-2.5 py-1 text-xs font-medium transition bg-slate-100 text-slate-600 hover:bg-violet-50 hover:text-violet-700 dark:bg-slate-800 dark:text-slate-300 dark:hover:bg-violet-950/40 dark:hover:text-violet-300" title="云"> 云 </a> </li> </ul> </section> </aside> </div> </div> </div>  </main>  <footer class="relative not-prose border-t border-slate-200/80 bg-gradient-to-b from-slate-50 to-white dark:border-slate-800 dark:from-slate-950 dark:to-slate-900"> <div class="relative mx-auto max-w-7xl px-4 sm:px-6 lg:px-8 intersect-once intersect-quarter intersect-no-queue motion-safe:md:opacity-0 motion-safe:md:intersect:animate-fade"> <div class="grid grid-cols-12 gap-10 py-12 md:gap-8 md:py-14 lg:gap-12"> <!-- Brand + WeChat --> <div class="col-span-12 lg:col-span-4"> <a class="inline-block" href="/" aria-label="返回首页"> <span class="inline-flex items-end gap-3 self-center whitespace-nowrap"> <img src="/_image?href=%2F_astro%2Fcheeli-logo.DIEHWBc7.png&w=108&h=32&f=webp" loading="eager" decoding="async" alt="Cheeli" style="object-fit:cover;object-position:center;max-width:108px;max-height:32px;aspect-ratio:3.375;width:100%" width="108" height="32" class="block h-8 w-auto shrink-0 invert hue-rotate-180 dark:invert-0 dark:hue-rotate-0"> <span class="relative pb-px pl-3 text-[15px] font-semibold leading-none tracking-[0.14em] text-slate-800 before:absolute before:bottom-0 before:left-0 before:h-3.5 before:w-px before:bg-slate-300/80 dark:text-slate-100 dark:before:bg-slate-600/80 md:text-base">
知力科技
</span> </span> </a> <p class="mt-4 text-sm font-semibold text-slate-800 dark:text-slate-100">蜂巢数字商业平台</p> <p class="mt-2 max-w-sm text-sm leading-6 text-slate-600 dark:text-slate-400">连接商业生态,赋能企业智能经营。</p> <div class="mt-6 inline-flex items-start gap-4 rounded-2xl border border-slate-200/80 bg-white p-3 shadow-sm dark:border-slate-700 dark:bg-slate-900/80"> <img src="/_astro/wechat-cheeli-tech-qrcode.CYWhZFv0.jpg" alt="知力科技官方微信公众号二维码" width="88" height="88" class="block h-[88px] w-[88px] shrink-0 rounded-xl bg-white object-contain" loading="lazy" decoding="async"> <div class="pt-1"> <p class="text-sm font-semibold text-slate-900 dark:text-white">官方公众号</p> <p class="mt-1 text-xs leading-5 text-slate-500 dark:text-slate-400">扫码关注,获取产品动态与行业洞察</p> </div> </div> <div class="mt-6 flex flex-wrap gap-x-4 gap-y-2 text-sm"> <a class="text-slate-500 transition hover:text-blue-600 dark:text-slate-400 dark:hover:text-blue-300" href="/privacy"> 隐私政策 </a><a class="text-slate-500 transition hover:text-blue-600 dark:text-slate-400 dark:hover:text-blue-300" href="/terms"> 服务条款 </a> </div> </div> <!-- Navigation columns --> <div class="col-span-12 grid grid-cols-2 gap-8 sm:grid-cols-3 lg:col-span-8 lg:gap-10"> <div> <p class="text-xs font-semibold uppercase tracking-[0.18em] text-slate-400 dark:text-slate-500"> 产品 </p> <ul class="mt-4 space-y-3"> <li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/products/open-platform"> 蜂巢开放平台 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/products/omnichannel"> 蜂巢全渠道 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/products/ai-agent"> AI智能应用 </a> </li> </ul> </div><div> <p class="text-xs font-semibold uppercase tracking-[0.18em] text-slate-400 dark:text-slate-500"> 解决方案 </p> <ul class="mt-4 space-y-3"> <li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/solutions/ecommerce-omnichannel"> 电商全渠道解决方案 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/solutions/digital-goods"> 虚拟商品与数字权益解决方案 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/solutions/order-fulfillment"> 企业订单履约解决方案 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/solutions/private-mall"> 私域商城解决方案 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/solutions/digital-connection"> 企业数字化连接解决方案 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/solutions/ai-operations"> AI智能运营解决方案 </a> </li> </ul> </div><div> <p class="text-xs font-semibold uppercase tracking-[0.18em] text-slate-400 dark:text-slate-500"> 生态与内容 </p> <ul class="mt-4 space-y-3"> <li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/developers"> 开发者中心 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/cases"> 客户案例 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/articles"> 蜂巢洞察 </a> </li><li> <a class="text-sm text-slate-600 transition hover:text-blue-600 dark:text-slate-300 dark:hover:text-blue-300" href="/about"> 关于我们 </a> </li> </ul> </div> </div> </div> <!-- Legal bar --> <div class="flex flex-col gap-4 border-t border-slate-200/80 py-6 md:flex-row md:items-center md:justify-between dark:border-slate-800 md:py-7"> <div class="text-xs leading-6 text-slate-500 dark:text-slate-400"> <p class="text-slate-600 dark:text-slate-300">2026 Copyright © 上海知力信息科技有限公司 · All Rights Reserved</p> <p class="mt-1.5 flex flex-wrap items-center gap-x-2 gap-y-1"> <a class="transition hover:text-blue-600 dark:hover:text-blue-300" href="https://beian.miit.gov.cn/" rel="noopener noreferrer" target="_blank"> 沪ICP备09012674号 </a> <span class="text-slate-300 dark:text-slate-600" aria-hidden="true">|</span> <a class="inline-flex items-center gap-1 transition hover:text-blue-600 dark:hover:text-blue-300" href="https://www.beian.gov.cn/portal/registerSystemInfo?recordcode=31011502018658" rel="noopener noreferrer" target="_blank"> <img src="/_image?href=%2F_astro%2Fbeian-logo.hBd0lRJE.png&w=16&h=16&f=webp" loading="lazy" decoding="async" alt style="object-fit:cover;object-position:center;width:16px;height:16px;object-position:top left" width="16" height="16" class="block h-4 w-4 shrink-0"> 沪公网安备 31011502018658号 </a> <span class="text-slate-300 dark:text-slate-600" aria-hidden="true">|</span> <span>增值电信业务许可证:沪B2-20220251</span> </p> </div> <ul class="flex shrink-0 gap-1 md:justify-end"> <li> <a class="inline-flex items-center rounded-lg p-2.5 text-slate-500 transition hover:bg-slate-100 hover:text-slate-800 dark:text-slate-400 dark:hover:bg-slate-800 dark:hover:text-slate-100" aria-label="RSS" href="/rss.xml"> <svg width="1em" height="1em" viewBox="0 0 24 24" class="h-5 w-5" data-icon="tabler:rss">   <use href="#ai:tabler:rss"></use>  </svg>  </a> </li> </ul> </div> </div> </footer>   <aside id="cheeli-float-panel" class="cheeli-float" data-collapsed="false" aria-label="客服联系方式" data-astro-cid-lduetl6a> <button type="button" class="cheeli-float__toggle" data-float-toggle aria-expanded="true" aria-controls="cheeli-float-panel-body" data-astro-cid-lduetl6a> <span class="cheeli-float__toggle-open" aria-hidden="true" data-astro-cid-lduetl6a>收起</span> <span class="cheeli-float__toggle-closed" aria-hidden="true" data-astro-cid-lduetl6a>客服</span> </button> <div id="cheeli-float-panel-body" class="cheeli-float__body" data-astro-cid-lduetl6a> <div class="cf-card cf-card--avatar" data-astro-cid-lduetl6a> <div class="cf-avatar" data-astro-cid-lduetl6a> <img src="/_astro/ocpm.2osPe16p.png" alt="蜂巢客服顾问" width="120" height="130" loading="lazy" decoding="async" data-astro-cid-lduetl6a> </div> <a class="cf-phone" href="tel:400-002-5767" data-astro-cid-lduetl6a>☎ 400-002-5767</a> </div> <div class="cf-card" data-astro-cid-lduetl6a> <img class="cf-qrcode" src="/_astro/wechat.BcEd01Bh.png" alt="客服微信二维码" width="130" height="140" loading="lazy" decoding="async" data-astro-cid-lduetl6a> <div class="cf-title" data-astro-cid-lduetl6a>扫码添加客服微信</div> </div> <a class="cf-btn white" href="https://wpa.qq.com/msgrd?v=3&uin=273785004&site=qq&menu=yes" target="_blank" rel="noopener noreferrer" aria-label="QQ 客服 273785004" data-astro-cid-lduetl6a> <img src="/_astro/qq.Bq_2h58v.png" alt="" width="16" height="18" loading="lazy" decoding="async" data-astro-cid-lduetl6a> <span data-astro-cid-lduetl6a>:273785004</span> </a> </div> </aside>  <script type="module">const c="cheeli-float-contact-collapsed";function d(t){if(t.dataset.bound==="true")return;t.dataset.bound="true";const e=t.querySelector("[data-float-toggle]");if(!e)return;const l=n=>{t.dataset.collapsed=n?"true":"false",e.setAttribute("aria-expanded",n?"false":"true");try{localStorage.setItem(c,n?"1":"0")}catch{}};let a=!1;try{a=localStorage.getItem(c)==="1"}catch{a=!1}l(a),e.addEventListener("click",()=>{l(t.dataset.collapsed!=="true")})}function o(){const t=document.getElementById("cheeli-float-panel");t instanceof HTMLElement&&d(t)}o();document.addEventListener("astro:page-load",o);</script> <script>(function(){const defaultTheme = "system";

  if (window.basic_script) {
    return;
  }

  window.basic_script = true;

  function applyTheme(theme) {
    if (theme === { elem.addEventListener(event, (e) => fn(e, elem), false); }); } } const onLoad = function () { let lastKnownScrollPosition = window.scrollY; let ticking = true; attachEvent('#header nav', 'click', function () { document.querySelector('[data-aw-toggle-menu]')?.classList.remove('expanded'); document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.getElementById('header')?.classList.remove('expanded'); document.getElementById('header')?.classList.remove('bg-page'); document.querySelector('#header nav')?.classList.add('hidden'); document.querySelector('#header > div > div:last-child')?.classList.add('hidden'); }); attachEvent('[data-aw-toggle-menu]', 'click', function (_, elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.getElementById('header')?.classList.toggle('expanded'); document.getElementById('header')?.classList.toggle('bg-page'); document.querySelector('#header nav')?.classList.toggle('hidden'); document.querySelector('#header > div > div:last-child')?.classList.toggle('hidden'); }); attachEvent('[data-aw-toggle-color-scheme]', 'click', function () { if (defaultTheme.endsWith(':only')) { return; } Observer.removeAnimationDelay(); document.documentElement.classList.toggle('dark'); localStorage.theme = document.documentElement.classList.contains('dark') ? 'dark' : 'light'; }); attachEvent('[data-aw-social-share]', 'click', function (_, elem) { const network = elem.getAttribute('data-aw-social-share'); const url = encodeURIComponent(elem.getAttribute('data-aw-url')); const text = encodeURIComponent(elem.getAttribute('data-aw-text')); let href; switch (network) { case 'facebook': href = `https://www.facebook.com/sharer.php?u=${url}`; break; case 'twitter': href = `https://twitter.com/intent/tweet?url=${url}&text=${text}`; break; case 'linkedin': href = `https://www.linkedin.com/shareArticle?mini=true&url=${url}&title=${text}`; break; case 'whatsapp': href = `https://wa.me/?text=${text}%20${url}`; break; case 'mail': href = `mailto:?subject=%22${text}%22&body=${text}%20${url}`; break; default: return; } const newlink = document.createElement('a'); newlink.target = '_blank'; newlink.href = href; newlink.click(); }); const screenSize = window.matchMedia('(max-width: 767px)'); screenSize.addEventListener('change', function () { document.querySelector('[data-aw-toggle-menu]')?.classList.remove('expanded'); document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.getElementById('header')?.classList.remove('expanded'); document.getElementById('header')?.classList.remove('bg-page'); document.querySelector('#header nav')?.classList.add('hidden'); document.querySelector('#header > div > div:last-child')?.classList.add('hidden'); }); function applyHeaderStylesOnScroll() { const header = document.querySelector('#header[data-aw-sticky-header]'); if (!header) return; if (lastKnownScrollPosition > 60 && !header.classList.contains('scroll')) { header.classList.add('scroll'); } else if (lastKnownScrollPosition <= 60 && header.classList.contains('scroll')) { header.classList.remove('scroll'); } ticking = false; } applyHeaderStylesOnScroll(); attachEvent([document], 'scroll', function () { lastKnownScrollPosition = window.scrollY; if (!ticking) { window.requestAnimationFrame(() => { applyHeaderStylesOnScroll(); }); ticking = true; } }); }; const onPageShow = function () { document.documentElement.classList.add('motion-safe:scroll-smooth'); const elem = document.querySelector('[data-aw-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.getElementById('header')?.classList.remove('expanded'); document.querySelector('#header nav')?.classList.add('hidden'); }; window.onload = onLoad; window.onpageshow = onPageShow; document.addEventListener('astro:after-swap', () => { initTheme(); onLoad(); onPageShow(); }); })();