更新记录

2.0.2(2026-10-31)

  • 修复鸿蒙上 Chart、BarChart、LineChart、RingChart 与 Signature 画布空白:HBuilderX 5.07 的鸿蒙运行时不会把 <canvas> 的宽高样式传给原生 Canvas,组件内部改为显式设置画布尺寸;其他平台行为不变,对外接口不变。
  • 鸿蒙平台标记为已验证:在华为手机(API 26)上逐项运行全部组件演示。
  • 设置普通授权与源码授权售价。

平台兼容性

uni-app x(5.07)

Chrome Safari Android iOS 鸿蒙 微信小程序
√ - √ √ √ √

uvx-frame-ui

基于 uni-app x 的跨平台 UI 组件库,面向 Android、iOS、鸿蒙、微信小程序和 Web 设计。组件的属性、事件、插槽和 v-model 用法与 Element Plus 对齐;视觉采用 frame 自有的设计令牌(libs/theme.uts)。从 1.x 升级请阅读 changelog.md 中的迁移说明。

安装

  1. 在插件市场将本插件导入 uni-app x 项目,插件位于 uni_modules/uvx-frame-ui/。要求 HBuilderX 5.07 及以上。
  2. 导入时 HBuilderX 会提示合并 pages_init.json,请确认。它注册了组件库的外链页面 uni_modules/uvx-frame-ui/pages/link/link(App 中打开外部 http(s) 链接时使用)。如果没有合并,请在项目 pages.json 的 pages 中手动添加:
{ "path": "uni_modules/uvx-frame-ui/pages/link/link", "style": { "navigationBarTitleText": "" } }

组件通过 easycom 自动引入,无需 import 和注册。

快速上手

<template>
  <uvx-frame-input v-model="name" placeholder="请输入姓名" clearable />
  <uvx-frame-button label="提交" type="primary" @click="submit" />
  <uvx-frame-message ref="messageRef" />
</template>

<script setup lang="uts">
const name = ref('')
const messageRef = ref<UvxFrameMessageComponentPublicInstance | null>(null)

function submit() {
  messageRef.value?.$callMethod('success', '你好,' + name.value)
}
</script>

组件的公开方法在 App 端通过 $callMethod 调用。类型与公共工具统一从插件根目录导入,收费加密版不支持调用方直接引入内部文件:

import { UvxFrameFormRule, UvxFrameTabItem, UvxFrameStep } from '@/uni_modules/uvx-frame-ui'

组件列表

组件 标签 说明
基础
Button 按钮 uvx-frame-button 常用的操作按钮,类型、尺寸和状态与 Element Plus Button 一致。
Icon 图标 uvx-frame-icon 组件库自绘图标与 Remix Icon(Apache-2.0)共 3000 余个,name 指定图标;点击图标复制名称。
Text 文本 uvx-frame-text 文本组件,type、size、truncated、line-clamp 与 Element Plus Text 一致,并扩展了常用格式化。
Layout 布局 uvx-frame-row、uvx-frame-col Row 与 Col 组成 24 栅格布局,接口与 Element Plus Layout 一致。
Image 图片 uvx-frame-image 图片容器,fit、lazy、preview-src-list 与 Element Plus Image 一致,并保留移动端尺寸与圆角扩展。
RichText 富文本 uvx-frame-richtext 渲染 HTML 字符串或节点数组,支持常用文字样式、图片和链接。
Cell 单元格 uvx-frame-cell 列表中的单行信息,常用于设置页和详情页。图标显示在浅色圆角底块中,分隔线与文字左对齐。
Divider 分割线 uvx-frame-divider 支持水平、垂直、文字位置和虚线。
Spacer 间距 uvx-frame-spacer 使用固定宽高留出布局空间。
Transition 过渡动画 uvx-frame-transition 为元素的出现和消失添加动画,mode 提供淡入、缩放和四个方向的滑入效果。
表单
Form 表单 uvx-frame-form、uvx-frame-form-item 与 Element Plus 相同的 model + rules + prop 用法,统一收集表单项并校验。
Input 输入框 uvx-frame-input 单行输入框,属性、插槽和事件与 Element Plus Input 一致;type 额外支持移动端数字与证件键盘。
Textarea 多行输入 uvx-frame-textarea 多行输入,对应 Element Plus Input 的 type="textarea",支持 rows、autosize 与字数统计。
InputNumber 数字输入框 uvx-frame-input-number 仅允许输入标准数字,可设置范围、步长和精度,属性与 Element Plus InputNumber 一致。
Radio 单选框 uvx-frame-radio、uvx-frame-radio-group 在一组选项中单选,Radio 与 RadioGroup 的用法同 Element Plus。
Switch 开关 uvx-frame-switch 表示两种相互对立的状态,属性与 Element Plus Switch 一致。
Slider 滑块 uvx-frame-slider 通过拖动滑块在范围内选择数值,属性与 Element Plus Slider 一致。
Rate 评分 uvx-frame-rate 评分组件,max、allow-half、show-text、show-score 等属性与 Element Plus Rate 一致。
Picker 滚轮选择器 uvx-frame-picker 移动端滚轮选择器,支持单列、多列与级联数据;触发框与 Element Plus Select 外观一致。
DatePicker 日期选择器 uvx-frame-date-picker 选择日期或时间,type 取值与 Element Plus DatePicker 一致;面板在底部弹出。
Calendar 日历 uvx-frame-calendar 日历面板,支持单选、多选、范围选择、日期范围限制和左右滑动翻月;lunar 显示农历。
ColorPicker 取色器 uvx-frame-color-picker 颜色选择器,属性与 Element Plus ColorPicker 一致,面板在底部弹出。
Upload 上传 uvx-frame-upload 选择图片或视频并上传,属性命名与 Element Plus Upload 一致(action、headers、data、limit、auto-upload)。
Keyboard 虚拟键盘 uvx-frame-keyboard 在页面内弹出的虚拟键盘,提供数字、字母、计算器、安全和车牌五种布局,适合需要避开系统键盘的输入场景。
数据展示
Table 表格 uvx-frame-table 支持横向滚动、斑马纹、边框和排序。
Tree 树形控件 uvx-frame-tree 支持展开、节点选择、禁用和勾选。
Tag 标签 uvx-frame-tag 支持主题、尺寸、圆角和关闭事件。
Badge 徽章 uvx-frame-badge 支持数字上限、小圆点、颜色和偏移。
Card 卡片 uvx-frame-card 支持标题、页脚、阴影与内容插槽。
Collapse 折叠面板 uvx-frame-collapse、uvx-frame-collapse-item 支持展开多个面板和手风琴。
Carousel 走马灯 uvx-frame-carousel 使用原生 swiper 展示可滑动的内容。
Steps 步骤条 uvx-frame-steps 展示步骤进度与说明。
Empty 空状态 uvx-frame-empty 支持自定义说明、图片和底部操作。
Skeleton 骨架屏 uvx-frame-skeleton 数据加载时显示占位内容。
Countdown 倒计时 uvx-frame-countdown 按目标时间倒计时,结束后触发 finish。
CountTo 数字滚动 uvx-frame-count-to 支持起始值、精度和数字变化动画。
QRCode 二维码 uvx-frame-qrcode 本地编码,支持 UTF-8 内容与颜色。
NoticeBar 通知栏 uvx-frame-notice-bar 支持滚动、自定义颜色和关闭。
ExpandText 展开文本 uvx-frame-expand-text 支持内容折叠与展开。
Watermark 水印 uvx-frame-watermark 在内容上添加重复文字或图片水印。
Chart 图表 uvx-frame-chart 使用标准 Canvas 绘制跨平台图表。
BarChart 柱状图 uvx-frame-bar-chart 支持正负数、颜色和动态数据。
LineChart 折线图 uvx-frame-line-chart 支持坐标轴、数据点和动态数据。
RingChart 环形图 uvx-frame-ring-chart 支持图例、内径和动态数值。
导航
Navbar 导航栏 uvx-frame-navbar 自定义导航栏,配合页面 navigationStyle: custom 使用;属性与插槽命名参照 Element Plus PageHeader。
Tabbar 标签栏 uvx-frame-tabbar 应用底部的主导航,提供平铺、胶囊和悬浮三种外观,可在中间插入主操作按钮。
Tabs 标签页 uvx-frame-tabs、uvx-frame-tab-pane 分隔内容上有关联但属于不同类别的数据集合,用法与 Element Plus Tabs 一致,并扩展了指示器样式与 items 数据驱动。
SwipeTabs 滑动标签页 uvx-frame-swipe-tabs 联动标签导航与滑动页面。
Anchor 锚点 uvx-frame-tabs 在长页面中快速定位,点击选项滚动到对应区域,滚动时同步高亮当前选项。
Sidebar 侧边导航 uvx-frame-sidebar 纵向分类导航,常与右侧内容区联动;选中项以圆角底色突出显示。
IndexBar 索引栏 uvx-frame-indexbar、uvx-frame-indexbar-item 按字母分组的长列表,点击或拖动右侧索引跳转,滚动时索引同步高亮。
Dropdown 下拉菜单 uvx-frame-dropdown 将动作或菜单折叠到下拉菜单中,用法参照 Element Plus Dropdown;菜单项用 items 数组描述。
Backtop 回到顶部 uvx-frame-backtop 页面滚动超过阈值时显示,支持自定义位置。
反馈
Dialog 对话框 uvx-frame-dialog 在保留当前页面的情况下展示内容,属性、插槽和事件与 Element Plus Dialog 一致。
MessageBox 消息弹框 uvx-frame-message-box 模拟系统的消息提示框,alert、confirm、prompt 及选项名称与 Element Plus MessageBox 一致。
Message 消息提示 uvx-frame-message 操作后的轻量反馈,选项名与 Element Plus Message 一致;页面放置一个组件实例后调用方法。
Drawer 抽屉 uvx-frame-drawer 支持从四个方向打开抽屉。
ActionSheet 动作面板 uvx-frame-action-sheet 支持禁用、加载和自定义颜色。
Overlay 遮罩层 uvx-frame-overlay 支持点击关闭和自定义遮罩内容。
Loading 加载 uvx-frame-loading 支持横向、纵向、颜色和显隐状态。
Tour 漫游引导 uvx-frame-tour 分步骤介绍页面,并高亮指定节点。
SwipeAction 滑动操作 uvx-frame-swipe-action 向左滑动列表项以显示操作按钮。
Fab 悬浮按钮 uvx-frame-fab 固定位置的快捷操作菜单。
Popup 底部面板 uvx-frame-popup 底部弹出的面板容器,选择器、日期选择器、键盘和取色器基于它实现。
列表与容器
Grid 宫格 uvx-frame-grid 支持列数、边框和自定义内容。
List 列表 uvx-frame-list 支持限定高度、滚动与触底事件。
ListView 列表视图 uvx-frame-list-view Android / iOS 使用原生 list-view,其余平台使用虚拟列表适配。
VirtualList 虚拟列表 uvx-frame-virtual-list 只渲染可视区域附近的数据,示例包含 10000 项。
Waterfall 瀑布流 uvx-frame-waterfall 支持列数、间距和高度提示。
PullRefresh 下拉刷新 uvx-frame-pull-refresh 使用标准 scroll-view 的刷新能力。
LoadMore 加载更多 uvx-frame-load-more 支持加载中、完成、失败与重试。
Chat 聊天列表 uvx-frame-chat 支持双向消息、头像和自动滚动。
DragSort 拖拽排序 uvx-frame-drag-sort 长按后拖动排序,支持宫格、列表和删除。
Movable 拖动区域 uvx-frame-movable 支持横向、纵向、禁用和边界限制。
视觉与绘制
Shimmer 闪光 uvx-frame-shimmer 支持配置闪光动画时长和颜色。
Glow 光晕 uvx-frame-glow 支持自定义颜色与呼吸效果。
Flipbook 逐帧动画 uvx-frame-flipbook 按顺序播放本地或网络图片帧。
SVG 矢量图 uvx-frame-svg 支持 SVG 资源与内联内容。
Signature 签名板 uvx-frame-signature 触控绘制、撤销、清空和导出图片。

独立插件提供的组件

以下组件依赖完整引擎或图像处理能力,分别作为独立插件发布,按需安装,组件库本身不依赖它们:

组件 标签 所在插件
ECharts 图表引擎 uvx-frame-echarts uvx-frame-echarts
Lottie 动画 uvx-frame-lottie uvx-frame-lottie
ImageFilter 图片滤镜 uvx-frame-image-filter uvx-frame-imaging
PhotoCapture 拍照说明 uvx-frame-photo-capture uvx-frame-imaging

图标

uvx-frame-icon 内置组件库自绘图标及 Remix Icon 4.9.1 全部 3229 个图标,名称如 home-line、home-fill,可在 Remix Icon 官网 查找。与自绘图标重名时,加 ri- 前缀指定 Remix Icon,如 ri-close-fill。

<uvx-frame-icon name="home-line" :size="24" color="#5B4FE9" />

Remix Icon TTF 字体约 600KB。微信小程序使用组件内嵌的离线 WOFF,不依赖字体 CDN;两套字体的微信样式合计约 339KB。包体积紧张时可用 fontTools 按实际使用的图标裁剪 TTF,微信样式 uvx-frame-icon.mp.css 中内嵌的 WOFF 需同步更新。

平台兼容

Android iOS 鸿蒙 微信小程序 Web(Chrome) Web(Safari)
已验证 已验证 已验证 已验证 已验证 未验证

“已验证”指在 HBuilderX 5.07 下编译并在该平台实际运行过演示;“未验证”表示尚未完成该平台的发布前验证。部分模拟器结果另列于验证记录,使用前请按目标设备测试。

授权

付费插件,按 DCloud 插件市场付费插件标准协议授权;普通授权版与源码授权版均绑定购买时的 AppID 和包名。包含的第三方资源:

  • Remix Icon 4.9.1(Apache-2.0):components/uvx-frame-icon/uvx-frame-remixicon.ttf 及微信样式中的派生 WOFF,许可证见 licenses/remixicon-LICENSE.txt。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

上传组件调用系统相册/相机选择图片或视频(由系统申请相册、相机权限);文本组件电话模式调用系统拨号界面。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据。上传组件仅在开发者配置上传地址时,把用户选择的文件发送到开发者指定的服务器。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

暂无用户评论。