核心方法
TechUI 提供了一套完整的全局函数库,涵盖了从主题定制、界面交互到底层安全的各个方面。这些方法既可以在 Vue 组件的 setup 语法糖中直接使用,极大地提升了开发效率。
通用性与差异化
本章节为所有组件库公共章节,旨在阐述 TechUI 生态的通用架构与全局服务。
鉴于不同产品版本(如 Prime, Scifi, Admin 等)的功能定位存在差异,文档中展示的部分全局状态或函数可能仅在特定组件库中生效。
阅读时请务必留意各 API 旁标注的适用版本标记,以区分其可用性。
如下案例所示:
主题与颜色
$tc(str, cpt)
获取主题调色板中的颜色值。
参数:
str(String): 颜色路径,如'primary.main'cpt(Boolean): 是否返回计算属性,默认false
返回: 颜色值 或 计算属性
// 获取颜色值
const primaryColor = $tc('primary.main');
// 获取响应式颜色值
const primaryColorRef = $tc('primary.main', true);themeToggle(themeName)
切换到指定的预设主题。
参数:
themeName(String): 主题名称(必须已注册)
// 切换主题
themeToggle('darkBlue');背景管理
initBG(config)
初始化背景。
参数:
config(Object): 背景配置对象(可选)
// 使用默认配置初始化
initBG();
// 使用自定义配置
initBG({
graphicType: 'SvgPattern',
SvgPattern: { /* 配置 */ }
});resetBG()
重置背景,移除背景样式。
resetBG();加载动画
initSpinner(config)
初始化加载动画配置。
参数:
config(Object): 加载动画配置(可选)
initSpinner({
full: { name: "ringA", size: 80 },
area: { name: "pointB", size: 35 }
});自适应系统
resetAdaptiveConfig()
重置自适应配置,清除相关状态和样式。
resetAdaptiveConfig();initResizeBy()
获取自适应基准 DOM 的计算属性函数。
返回: 计算属性函数
const resizeByFn = initResizeBy();
const resizeBy = resizeByFn.value('global'); // 返回 globalConfig.resizeBy国际化
initI18n()
异步初始化国际化系统。
await initI18n();i18n(str)
获取本地化语言字符串。
参数:
str(String): 语言路径,如'common.confirm'
返回: 翻译后的文本
const confirmText = i18n('common.confirm');getSysLang()
获取当前系统语言。
返回: 语言代码 ('cn' | 'hk' | 'en')
const lang = getSysLang();tConsolei18n(type, name, msg, thro)
输出国际化的控制台消息。
参数:
type(String): 消息类型name(String): 消息名称msg(String): 消息键thro(Boolean): 是否节流,默认true
tConsolei18n('error', 'Network', 'errors.network');界面控制
controlPanelToggle()
切换控制面板的显示状态。
controlPanelToggle();maximizeToggle()
切换最大化状态。
maximizeToggle();toggleSider()
切换侧边栏折叠状态
虽然Base和Scifi组件库是没有侧边栏的,但依然可以结合此方法来控制自己构建的侧边栏。
toggleSider();路由相关
updateRouteQuery(query)
为当前路由添加 query 参数。
参数:
query(Object): 要添加的 query 参数对象
updateRouteQuery({ id: 123, tab: 'info' });getRouteQuery(key)
获取当前路由的 query 参数。
参数:
key(String): 参数键名(可选,不传则返回全部)
返回: 参数值 或 完整 query 对象
// 获取单个参数
const id = getRouteQuery('id');
// 获取全部参数
const query = getRouteQuery();routerTransition(config)
控制路由过渡动画。
参数:
config(Object): 过渡配置
routerTransition({
name: 'vt-slide-left',
duration: 0.5
});页面重载
softReload()
软重载:通过 v-if 重置TuiProvider组件,状态管理中的信息保持不变。
softReload();hardReload()
硬重载:通过 location.reload() 刷新整个页面,状态管理中的信息会丢失。
hardReload();Message 消息
$tMessage(options)
显示消息提示。
参数:
options(Object | String): 消息配置或消息文本
// 简单用法
$tMessage('操作成功');
// 完整配置
$tMessage({
type: 'success', // success | error | warning | info
content: '操作成功',
duration: 3000,
closable: true
});$tMessageCloseAll()
关闭所有消息。
$tMessageCloseAll();Notification 通知
$tNotify(options)
显示通知。
参数:
options(Object): 通知配置
$tNotify({
type: 'info',
title: '系统通知',
content: '您有新的消息',
duration: 4500
});$tNotifyCloseAll()
关闭所有通知。
$tNotifyCloseAll();Toast 吐司
$tToast(options)
显示 Toast 提示。
参数:
options(Object | String): Toast 配置或文本
// 简单用法
$tToast('已保存');
// 完整配置
$tToast({
content: '已保存',
duration: 2000,
position: 'center' // top | center | bottom
});$tToastClose()
关闭当前 Toast。
$tToastClose();Flash 闪烁提醒
$tFlash(options)
显示闪烁提醒。
参数:
options(Object): Flash 配置
$tFlash({
content: '新消息',
appearance: 'toast',
frequency: 2
});$tFlashClose()
关闭 Flash 提醒。
$tFlashClose();提醒调度器
$tAttentionDispatcher(config)
配置注意力组件调度器,用于对所有提醒组件进行排序和按序弹出。
参数:
config(Object): 调度器配置
$tAttentionDispatcher({
queue: [
{ type: 'message', content: '第一条' },
{ type: 'notify', content: '第二条' }
],
position: 'bottom-right'
});$tAttentionDispatcherClose()
关闭调度器。
$tAttentionDispatcherClose();Popover 弹出框
$tPopover(target, options)
显示 Popover。
参数:
target(Element | String): 目标元素或选择器options(Object): Popover 配置
$tPopover('#btn', {
content: '提示内容',
placement: 'top', // top | bottom | left | right
trigger: 'hover' // hover | click
});$tPopoverCloseAll()
关闭所有 Popover。
$tPopoverCloseAll();Mask 遮罩
$tMask(options)
显示遮罩层。
参数:
options(Object): 遮罩配置
$tMask({
blur: true,
closable: true,
zIndex: 1000
});$tMaskClose()
关闭遮罩层。
$tMaskClose();Loading 加载
$tLoading(options)
显示加载动画。
参数:
options(Object | String): 加载配置或提示文本
// 简单用法
$tLoading('加载中...');
// 完整配置
$tLoading({
text: '加载中...',
type: 'full', // full | area
spinner: 'ringA'
});$tLoadingClose()
关闭加载动画。
$tLoadingClose();Audio 声音提示
音频播放管理器。
audio.play('notification');
audio.stop();加解密
Wasm模块提供的加解密方法
openEnc(data)
数据加密函数。
参数:
data(Any): 要加密的数据params(String): 可选参数['data','front','store','com']
返回: 加密后的字符串
const encrypted = openEnc({ user: 'admin' },params);openDec(encryptedData)
数据解密函数。
参数:
encryptedData(String): 加密的数据params(String): 可选参数['data','end','store','com']
返回: 解密后的数据
const decrypted = openDec(encrypted,params);tStoreCrypto
加密存储工具,提供安全的本地存储功能。
type(String): 可选参数['local','session']对应localStorage和sessionStorage
// 加密存储
tStoreCrypto.s(type,'key', data);
// 解密读取
const data = tStoreCrypto.g(type,'key');
// 删除
tStoreCrypto.d(type,'key');功能特性标识
isActAdvFeatures
是否启用了高级组件功能。
if (isActAdvFeatures) {
// 使用高级组件
}isActEchartsFeatures
是否启用了 ECharts 功能。
if (isActEchartsFeatures) {
// 使用 ECharts 相关功能
}isActAdminFeatures
是否启用了 Admin 功能。
if (isActAdminFeatures) {
// 使用 Admin 相关功能
}$tBus 事件总线
- 全局事件总线,用于组件间的事件通信。已不推荐使用!!!
- 建议使用provide和inject来进行小范围组件通信。
- 建议使用全局状态管理进行大范围组件通信。
// 发送事件
$tBus.emit('eventName', data);
// 监听事件
$tBus.on('eventName', callback);
// 移除监听
$tBus.off('eventName', callback);