@cloud-ru/uikit-product-calculator

中文文档
2.7.0发布于 2026/11/05Apache-2.0TypeScriptESM + CJS近 30 天下载 1917

npm i @cloud-ru/uikit-product-calculator

中文使用文档
文档目录7 节
  1. 安装
  2. 示例
  3. 计算器
  4. 道具
  5. 打开ShareClick
  6. 道具
  7. 获取初始化

计算器

安装

npm i @cloud-ru/uikit-product-calculator

示例

import { Calculator as CalculatorUi, CALCULATOR_TYPE } from '@cloud-ru/uikit-product-calculator';

const onDownloadFileClick = getOnDownloadFileClick();
const onShareClick = getOnShareClick();
const fetcherFn = getFetcherFn();

const config = { ...CATALOG_CONFIG, platforms: [ADVANCED_PLATFORM, VM_WARE_PLATFORM] };

export function Calculator() {
  return (
    <CalculatorUi
      config={config}
      layoutType={layoutType}
      calculatorType={CALCULATOR_TYPE.Partners}
      initialActiveProduct={ADVANCED_PRODUCT.AdvancedCloudServer}
      fetcherFn={fetcherFn}
      actions={{
        onDownloadFileClick,
        onShareClick,
      }}
    />
  );
}

计算器

道具

名称类型默认值说明
行动*{ onPlatformSelect?(platform: string): void; onProductSelect?(productId: string): void; onProductDelete?(productId: string): void; onStartClick?(): void; onCatalogOpen?(): void; onConnectClick?(id: string, value: FormValues): void; onShareClick?(state: State): Promise<...>; onDownloadFileClick?(state: State): Promis...- 说吧{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
拾取器Fn*FetcherFn- 说吧{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
配置*CatalogConfig- 说吧页:1
布局类型enum 布局类型 : "mobile", (中文(简体) ), "tablet", (中文(简体) ), "desktop", (中文(简体) ), "desktopSmall"桌面Тип
计算器Typeenum 计算器Type : "test", (中文(简体) ), "main", (中文(简体) ), "partners", (中文(简体) ), "product", (中文(简体) ), "additional"主要Тип
分析点(clickContent: string, uniqueId: string) => void- 说吧{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
图像string- 说吧{\fn黑体\fs20\shad2\2aH82\3aH20\4aH33\fscx95\3cH592001\be1}♪####################################################################################################################################################################################################################################
初始产品string- 说吧Id # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
状态Record<string, ProductState[]>- 说吧{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
页脚ReactNode- 说吧节点 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
□ 主语
# # # # # # # / 计算器 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□ 搭档
==================================================================================================
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□ 额外的
{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你觉得呢
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□ 平台
Платформы
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□产品
Продукты
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□目录
Каталог
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□ 编号
编号
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□ 图标
Иконка
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□标签
Название
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□ 说明
Дополнительное
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□ 访问
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
□ 数据测试
数据测试编号
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
∮在克力克上∮
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢
++ Propals 软件
名称类型默认值说明
- -- - --- -- - ----
翻译@1110*() => StringIterator<string>- 说吧显示器
给好机会*() => string- 说吧返回一个字符串,该字符串中所有被Unicode替换字符(U+FFFD)所取代的独行或出行代用符.
时机良好*() => boolean- 说吧如果所有前导代位和后导代位出现对齐并有序,则返回真实.
现职*(index: number) => string- 说吧返回由位于指定索引的单一UTF-16代码单位组成的新字符串。 @ param 索引 理想代码单元的零基索引. 一个负索引将从最后一个项目中算回来 .
全部替换*{ (searchValue: string | RegExp, replaceValue: string): string; (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string; }- 说吧使用正则表达式或搜索字符串替换字符串中子字符串的所有实例。 @ param searchValue A 字符串需要搜索 。 @param 替换包含文本的 Vale A 字符串, 以替换此字符串中每次成功匹配的搜索值 。 @ param searchValue A 字符串需要搜索 。 @param 替换器 A 函数返回替换文本 .
全部匹配*(regexp: RegExp) => RegExpStringIterator<RegExpExecArray>- 说吧将字符串与正则表达式相匹配,并返回包含搜索结果的匹配符。 @param regexp 包含正则表达式图案和旗帜的可变名称或字符串字元.
修饰权利*() => string- 说吧从字符串中去掉后面的白空格和行终止字符。 @ depressated 浏览器兼容性的一个后遗症功能. 使用 trimEnd 换成
四分卫*() => string- 说吧从字符串中去除主白空格和行终止字符。 @ depressated 浏览器兼容性的一个后遗症功能. 使用 trimStart 换成
三进制开始*() => string- 说吧从字符串中去除主白空格和行终止字符.
三进制*() => string- 说吧从字符串中去掉后面的白空格和行终止字符.
尾声 *(maxLength: number, fillString?: string) => string- 说吧用给定的字符串来支撑当前字符串(可能重复),这样所产生的字符串就可以达到给定的长度. 粘贴从当前字符串的端( 右) 应用 。 @ param 最大连线 一旦当前字符串被加成后,所产生的字符串的长度会增加. 如果此参数小于当前字符串的长度,则当前字符串将按原样返回. @ param 填充图 用来固定当前字符串的字符串 。 如果此字符串太长, 将会被截取并应用最左边的部分 。 此参数的默认值为 " (U+0020).
启动 *(maxLength: number, fillString?: string) => string- 说吧用给定的字符串来支撑当前字符串(可能重复),这样所产生的字符串就可以达到给定的长度. 从当前字符串的起( 左) 开始应用 。 @ param 最大连线 一旦当前字符串被加成后,所产生的字符串的长度会增加. 如果此参数小于当前字符串的长度,则当前字符串将按原样返回. @ param 填充图 用来固定当前字符串的字符串 。 如果此字符串太长, 将会被截取并应用最左边的部分 。 此参数的默认值为 " (U+0020).
苏普*() => string- 说吧回返a <sup> HTML 元素 @ depressated 浏览器兼容性遗留特性
子项*() => string- 说吧回返a <sub> HTML 元素 @ depressated 浏览器兼容性遗留特性
罢工*() => string- 说吧回返a <strike> HTML 元素 @ depressated 浏览器兼容性遗留特性
小型*() => string- 说吧回返a <small> HTML 元素 @ depressated 浏览器兼容性遗留特性
链接*(url: string) => string- 说吧返回 a <a> HTML 元素并设置href 属性值@ depressed 浏览器相容性的遗留特性
斜体*() => string- 说吧返回 a <i> HTML 元素 @ depressated 浏览器兼容性遗留特性
字体大小*{ (size: number): string; (size: string): string; }- 说吧回返a <font> HTML 元素和设置大小属性值 @ depressed 浏览器兼容性的后遗症特征 @ depressed 浏览器兼容性的后遗症特征
字体颜色*(color: string) => string- 说吧回返a <font> HTML 元素和设置颜色属性值@ depressed 浏览器兼容性的遗留特性
固定*() => string- 说吧回返a <tt> HTML 元素 @ depressated 浏览器兼容性遗留特性
粗体*() => string- 说吧回返a <b> HTML 元素 @ depressated 浏览器兼容性遗留特性
闪烁*() => string- 说吧回返a <blink> HTML 元素 @ depressated 浏览器兼容性遗留特性
大块*() => string- 说吧回返a <big> HTML 元素 @ depressated 浏览器兼容性遗留特性
锚*(name: string) => string- 说吧返回 a <a> HTML 锚定元素并设置文本值的名称属性@ depressated 浏览器兼容性的一个遗留特性@param name
启动时间*(searchString: string, position?: number) => boolean- 说吧如果转换为字符串的搜索元素序列与此对象的相应元素相同(转换为字符串),则返回真. 否则,返回假.
重复 *(count: number) => string- 说吧返回一个字符串值,该数值取自附加的计数副本。 如果数为 0,则返回空字符串。 @ param 附加的复制件数
恢复正常*{ (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string; (form?: string): string; }- 说吧返回按Unicode标准附件#15,Unicode Normalization表格所指定的表格命名的将字符串正常化的字符串值。 @param窗体 适用值:"NFC","NFD","NFKC",或"NFKD",如果未指定默认为"NFC" @param窗体 适用值:"NFC","NFKC",或"NFKD",如果未指定默认为"NFC"
结束于 *(searchString: string, endPosition?: number) => boolean- 说吧如果转换为字符串的搜索元素序列与从 endPosition – 长度( 此) 开始的此对象的相应元素( 转换为字符串) 相同, 则返回真值 。 否则,返回假.
包括*(searchString: string, position?: number) => boolean- 说吧如果搜索串显示为将对象转换为字符串的结果的子字符串,则返回真;在一个或多个位置大于或等于位置;否则,返回假。 @ param search 搜索串@ param 位置 如果位置未定义,则假定为 0,以便搜索所有字符串 .
代码点(pos: number) => number- 说吧返回一个小于1114112 (0x110000)的非负整数,该整数是从字符串中位置 pos 的字符串元素起的 UTF-16 编码代码点的代码值,由将该对象转换为字符串所产生。 如果该位置没有元素,则结果没有定义. 如果有效的UTF-16替代对不从 pos 开始,结果就是 pos 的代码单位.
子字符串 *(from: number, length?: number) => string- 说吧获得从指定位置开始并具有指定长度的子字符串。 @ depressed 浏览器兼容性的一个后遗症功能 @param 从想要的子字符串的起步位置. 字符串中第一个字符的索引为0. @ param 长度 返回子字符串中要包含的字符数 .
长度*number- 说吧返回字符串对象的长度.
修饰*() => string- 说吧从字符串中删除正后方的白空格和行名字符.
切换到本地端{ (locales?: string | string[]): string; (locales?: LocalesArgument): string; }- 说吧返回一个字符串,将所有字母字符转换为大写,同时考虑到主机环境的当前地块.
到上册*() => string- 说吧将字符串中的所有字母字符转换为大写.
切换到本地下层文件*{ (locales?: string | string[]): string; (locales?: LocalesArgument): string; }- 说吧将所有字母化字符转换为小写,同时考虑到主机环境当前的地块.
切换到小写*() => string- 说吧将字符串中的所有字母字符转换为小写.
子字符串*(start: number, end?: number) => string- 说吧返回字符串对象内指定位置的子字符串。 @ param 开始 表示子字符串开始的零基指数. @param end 零基指数表示子弦的结束. 子字符串包括最高(但不包括)端所显示的字符. 如果删除了结尾,则返回从起始到原字符串结尾的字符.
拆分 *{ (separator: string | RegExp, limit?: number): string[]; (splitter: { [Symbol.split](string: string, limit?: number): string[]; }, limit?: number): string[]; }- 说吧使用指定的分隔符将字符串拆分为子字符串,并作为数组返回。 @param 分隔符 A 字符串,用于识别字符串的分隔符。 如果省略,则返回包含整个字符串的单元素数组。 @param 限制 A 用于限制数组中返回元素的数量 。 @ param 分解器 能够分割字符串的对象。 @param 限制 A 用于限制数组中返回元素的数量 .
切开*(start?: number, end?: number) => string- 说吧返回字符串的一节。 @ param 开始 字符串Obj指定部分的起始索引。 @param end 索引到字符串Obj指定部分的结尾. 子字符串包括最高(但不包括)端所显示的字符. 如果不指定该值,子字符串会持续到字符串Obj的结尾.
搜索 *{ (regexp: string | RegExp): number; (searcher: { [Symbol.search](string: string): number; }): number; }- 说吧在正则表达式搜索中查找第一个子字符串匹配。 @ param regexp 正则表达式图案和可适用的旗帜. @ param 搜索器 支持在字符串内搜索的对象.
替换*{ (searchValue: string | RegExp, replaceValue: string): string; (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string; (searchValue: { ...; }, replaceValue: string): string; (searchValue: { ...; }, replacer: (substring: string, ...args: any[]) => string): string; }- 说吧在字符串中替换文本,使用正则表达式或搜索字符串。 将字符串和 QQlinkcode 替换为 Vale} 传给 [Symbol.replace] 在QQlinkcode 搜索Value 上的方法 这种方法预计会执行自己的替换算法. 在字符串中替换文本,使用支持在字符串中替换的对象。 @param searchValue A 字符串或要搜索的正则表达式 。 @param 替换包含要替换文本的Value A字符串 。 当 QQlinkcode 搜索 Value 是一个 RegExp中,如果 g 设置了旗帜(或只有开头的匹配,如果 y 旗帜也存在). 否则,只替换了"QQlinkcode searchValue"的第一个匹配. @ param searchValue A 字符串需要搜索 。 @param 替换器 A 函数返回替换文本 。 @ param 搜索值 支持在字符串中搜索和替换匹配对象的对象。 @ param 替换值 取而代之的文字. @param searchValue A 对象可以在字符串内搜索并替换匹配. @param 替换器 A 函数返回替换文本 .
匹配*{ (regexp: string | RegExp): RegExpMatchArray; (matcher: { [Symbol.match](string: string): RegExpMatchArray; }): RegExpMatchArray; }- 说吧将字符串与正则表达式相匹配,并返回包含搜索结果的数组。 匹配支持匹配的字符串或对象,并返回包含搜索结果的数组,如果没有匹配,则无效。 @param regexp 包含正则表达式图案和旗帜的可变名称或字符串字元. @ param 匹配器 一个支持匹配的对象.
语言比较*{ (that: string): number; (that: string, locales?: string | string[], options?: CollatorOptions): number; (that: string, locales?: LocalesArgument, options?: CollatorOptions): number; }- 说吧确定两个字符串在当前区域中是否等同。 确定当前或指定区域中两个字符串是否等同。 @ param 字符串用于比较目标字符串 @ param 字符串用于比较目标字符串 @ param locales A locale 字符串或包含一种或多种语言或地语标记的数组地语字符串. 如果您包含多个语言字符串, 请按优先级的下行顺序列出, 以便第一个条目是首选语言 。 如果您省略了此参数, 则使用 JavaScript 运行时间的默认语言 。 该参数必须符合BCP 47标准;参见Intl. 详细整理对象 。 @ param 选项 包含一个或多个属性的指定比较选项的对象。 见入道. 详细整理对象 。 @ param 字符串用于比较目标字符串 @ param locales A locale 字符串或含有一种或多种语言或locale 标记的数组 . 如果您包含多个语言字符串, 请按优先级的下行顺序列出, 以便第一个条目是首选语言 。 如果您省略了此参数, 则使用 JavaScript 运行时间的默认语言 。 该参数必须符合BCP 47标准;参见Intl. 详细整理对象 。 @ param 选项 包含一个或多个属性的指定比较选项的对象。 见入道. 详细整理对象 .
上个索引*(searchString: string, position?: number) => number- 说吧返回字符串中最后一个子字符串的出错。 @ param 搜索结构 下弦去寻取. @ param 立场 开始搜索的索引 。 如果省略,则搜索从字符串末尾开始.
指数*(searchString: string, position?: number) => number- 说吧返回子串第一次出现的位置。 @ param 搜索结构 字符串中要搜索的子字符串@ param 位置 开始搜索字符串对象的索引 。 如果省略,则从字符串开头开始搜索.
骗取*(...strings: string[]) => string- 说吧返回包含两个或两个以上字符串接合的字符串。 @ param 字符串 附加到字符串末尾的字符串 .
字符代码At*(index: number) => number- 说吧返回指定位置字符的Unicode值。 @ param 索引 理想字符的零基索引. 如果指定索引中没有字符,则返回NaN.
字符目录*(pos: number) => string- 说吧返回指定索引中的字符。 @param pos 想要的字符的零基索引 .
倒数() => string函数到String () { [本地代码]}返回字符串的字符串表示式.
值() => string函数值Of(){ [本地代码]}返回指定对象的原始值.
□ 得到下载文件
helper

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢

打开ShareClick

道具

名称类型默认值说明
后端空间string'https://api.cloud.ru' (英语)
基数Urlstring"https://cloud.ru" (中文(简体) )
□得到费奇芬
helper

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢

获取初始化

helper

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢

更改日志

版本与发布记录

@cloud-ru/uikit-product-calculator 共发布 190 个版本,首次发布于 2025/11/13;过去 12 个月发布了 190 个版本。

版本发布日期距今
2.7.0latest2026/11/054 天前
2.6.02026/10/2912 天前
2.5.02026/10/2912 天前
2.4.02026/10/2813 天前
2.3.1-preview-4956dd38.0preview2026/10/2614 天前
2.3.1-preview-d11d372f.02026/10/2120 天前

关于 @cloud-ru/uikit-product-calculator 的常见问题

@cloud-ru/uikit-product-calculator 是什么?

npm i @cloud-ru/uikit-product-calculator

如何安装 @cloud-ru/uikit-product-calculator?

在项目目录运行 npm install @cloud-ru/uikit-product-calculator,或使用 pnpm add / yarn add / bun add。

@cloud-ru/uikit-product-calculator 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cloud-ru/uikit-product-calculator 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cloud-ru/uikit-product-calculator 可以商用吗?

@cloud-ru/uikit-product-calculator 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cloud-ru/uikit-product-calculator 的下载量有多少?

根据 npm 官方下载统计,@cloud-ru/uikit-product-calculator 在 2026/10/10 – 2026/11/08 这 30 天内被下载 1,917 次,日均约 64 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cloud-ru/uikit-product-calculator 还在维护吗?

最新版本 2.7.0 发布于 2026/11/05(4 天前);至今共发布 190 个版本,其中过去 12 个月发布了 190 个;首次发布于 2025/11/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。