Skip to content

Prime 组件库授权

@techui/prime 是 TechUI 系列的旗舰集合库。它集成了 Scifi 的视觉风格、Base 的数据展现能力以及 Admin 的业务框架,并独占了所有高级可视化组件。

与 Base、Scifi 和 Admin 不同,Prime 采用 重许可 (Heavy License) 机制,这意味着它没有免费试用模式,必须在工程初始化时正确配置密钥链(Keychain)和许可证(License)方可运行。

许可证类别

TechUI许可证类别分为:

  • 重许可轻许可:双向联合解密,客户端密钥+Npm钥匙串。
  • 轻许可:单一密钥串,客户端密钥。

Prime 的采用了重许可,来保护版权,它有着双重验证机制。Wasm 核心模块必须同时获取本地客户端密钥与外部注入的密钥链,才能完成解密流程。

  • 强制性:未配置授权参数,Prime 将进入体验模式,限时10分钟。
  • 依赖包:取得授权后,必须安装并引入 @techui/prime-keychain

许可证说明

Prime 组件库根据传入的 license 参数解密结果,会处于以下几种不同的运行状态。请根据您的业务需求选择合适的许可证类型。

授权状态 (Authorized)

取得正式授权后,Wasm 模块将解除所有限制,控制台会输出具体的授权主体信息。

  • 商业许可证 (Commerce License)
    • 适用对象:软件开发商 (ISV) 或技术供应商。
    • 权益:作为“母许可”,除了自身拥有永久的使用权外,还具有 分发权。在订阅期内,您可以生成并颁发二级子许可(公司、项目、开发许可)给您的最终客户。
    • 限制:按年订阅。订阅过期后无法生成新的子许可,但已颁发的许可和自身使用不受影响。
  • 公司许可证 (Company License)
    • 适用对象:最终用户企业。
    • 权益永久有效。授权绑定至特定的企业主体,该企业可以在其内部的任意数量的项目中使用 Prime 组件库,无项目数量限制。
    • 特征:触发验证时,偶尔在浏览器标签标题 document.title 短暂闪现公司名称3秒。
  • 项目许可证 (Project License)
    • 适用对象:特定的业务系统或项目。
    • 权益永久有效。授权严格绑定至特定的项目名称,系统名称不支持宽泛定义。
    • 特征:浏览器标签标题document.title 将被永久锁定为授权的项目名称,不可修改。
  • 开发许可证 (Development License)
    • 适用对象:售前演示、POC 验证或内部短期开发。
    • 权益限时有效(通常为 1 个月)。功能与正式版一致,但包含时间锁。
    • 特征:控制台会明确提示过期时间。

未取得授权 (Unauthorized) - 体验模式

与 Scifi 或 Base 组件库不同,Prime 组件库没有免费模式,但是可以进入限时体验模式

当您未传入 license,或传入的许可证无效/解密失败时,Prime 将自动进入 体验模式 (Experience Mode)

  • 触发条件:初始化参数中 license 为空或校验未通过。
  • 运行时长10 分钟
  • 模式行为
    • 启动后,控制台会输出信息,提示当前处于“体验模式,限时10分钟”。
    • 在此期间,您可以完整使用 Prime 的所有高级组件(如 T3D, PanicAlert, Echarts 等)进行功能评估和测试。
  • 服务拒绝 (Denial of Service)
    • 当 10 分钟倒计时结束,Wasm 守卫将触发熔断机制。
    • 所有 DOM 元素被移除。
    • 页面会弹出“体验结束”的阻断窗口。
  • 重置方式刷新浏览器页面 即可重新开始 10 分钟的体验。

提示:体验模式仅供开发者在本地评估功能使用,严禁用于任何生产环境。

安装与配置

在初始化 Prime 时,除了常规的 license 字符串外,必须 传入从 npm 安装的 keychain 对象。

步骤 A: 安装依赖

确保您的项目中已安装 Prime 核心库及对应的密钥链包。

bash
npm install @techui/prime @techui/prime-keychain

步骤 B: 初始化代码

在项目的入口文件(如 main.jsmain.ts)中,引入 keychain 并将其传递给 TechUIInit

javascript
import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";

// 1. 引入 Prime 核心与密钥链
import TechUIInit from "@techui/prime";
import keychain from "@techui/prime-keychain";

// 2. 引入您的许可证文件 (通常包含 license 字符串和 config 配置)
import { license, licenseConfig } from "./utils/license.js";

const app = createApp(App);

// 3. 构建配置参数
const params = {
  app,

  // 核心授权参数
  license, // 客户端密钥 (Client Key Encrypted)
  keychain, // 密钥链,位于Npm,用于联合解密
  licenseConfig, // 许可证配置信息

  debug: true, // 建议在开发阶段开启,以便查看授权状态日志

  // 功能特性开关
  features: {
    echarts: true, // 开启 TuiEcharts 相关组件
    admin: true, // 开启 Admin 业务组件 (登录/布局等)
    advanced: true, // 开启 高级组件 (3D/MGS/PanicAlert)
  },
};

// 4. 初始化
TechUIInit(params)
  .then(() => {
    app.use(router);
    app.use(store);
    app.mount("#app");
  })
  .catch((err) => {
    console.error("TechUI Prime Initialization Failed:", err);
  });

解锁权益

成功取得授权并正确初始化 Prime 后,系统将解锁以下全部能力:

全量组件访问

  • UI 视觉:包含 Scifi 库的所有动态 SVG 组件、科幻面板、装饰器。
  • 数据展现:包含 Base 库的所有表格、表单、工具栏组件。
  • 业务框架:包含 Admin 库的动态路由、工作台布局、登录页模板。

高级组件 (Advanced Components)

Prime 授权独家包含以下高级组件的使用权(无需额外付费):

  • T3DPanel: 具备物理厚度与光影计算的 3D 容器。
  • Bar3D / Pie3D: 基于 3D 引擎的液位柱图与立体环形图。
  • PanicAlert: 系统级阻断告警组件。
  • TuiEcharts: 深度集成的 Echarts 图表与地图封装。

授权反馈

当 Prime 初始化成功后,Wasm 模块会在浏览器控制台输出授权铭牌:

  • 授权信息:显示 "TechUI Prime vX.X",并标注 "授权给 [公司名称/项目名称]"。
  • 有效期:显示 "永久有效" 或具体的到期时间(针对开发许可)。
  • 所有权标识
    • 若是公司许可,页面标题 (document.title) 可能会在验证触发时短暂闪现公司名称。
    • 若是项目许可,页面标题将被永久锁定为项目名称。