演示使用 WCS 分片上传功能上传文件
点击选择文件或拖拽文件到此处
支持图片、视频、音频文件
预设文本测试:
• 复制后可以在其他地方粘贴(Ctrl+V 或 Cmd+V)验证
• 方式1测试: useCopyText(text)
• 方式2测试: useCopyText({ el: element, text: text })
自定义加载中...
加载中...
提示:点击按钮后会先显示加载状态,2秒后图片加载完成
组件特性:
选择后自动关闭弹窗,支持禁用选项
显示 "已选择 N 项",支持最大数量限制
显示 "第一项 +N",适合空间有限的场景
显示内联标签,每个标签可单独删除,支持最小和最大数量限制
通过设置 v-model 的初始值实现默认选中
单选默认选中 "动作2"
多选默认选中 "动作1" 和 "动作3"
通过外部按钮控制组件的选中状态,展示 v-model 的双向绑定
单选外部控制
多选外部控制
📖 组件特性和用法:
string | number | undefined(string | number)[]count - 显示 "已选择 N 项"first-count - 显示 "第一项 +N"tags - 显示内联标签,每个标签可单独删除max 时,未选中的选项自动禁用min 时,已选中的选项无法取消<!-- 单选 -->
<SmartAction v-model="value" placeholder="请选择">
<SmartActionItem label="选项1" value="1" />
</SmartAction>
<!-- 多选 - Tags 模式 -->
<SmartActionMultiple
v-model="values"
display-mode="tags"
:min="1"
:max="3"
>
<SmartActionItem label="选项1" value="1" />
</SmartActionMultiple>
默认配置:蓝紫色渐变波纹,响应式高度,自适应柱数
根据不同的 bar 宽度、颜色和圆角配置
蓝色 (细 bar)
橙色 (粗 bar)
绿色 (超细 bar)
紫色 (中等 bar)
蓝绿色 (有背景)
组件自动根据容器宽度调整布局。≥448px 时为横向布局,448px 以下时为纵向布局
宽容器示例(横向布局)
窄容器示例(纵向布局 - 448px 以下)
📖 组件特性和用法:
barContainerClass 配置项强制指定布局方向 waveColor - 静态波形颜色 (Tailwind 类名) progressColor - 进度波形颜色 (Tailwind 类名) backgroundColor - 容器背景色 (Tailwind 类名) progressBgColor - 进度波形容器背景色 (Tailwind 类名) barWidth - Bar 宽度 (px),bar 数量会自动计算 barGap - Bar 之间的间距 (px) barRadius - Bar 圆角半径 (px) <!-- 基础使用 -->
<AudioPlayer
url="https://example.com/audio.wav"
:config="{...}"
/>
带控制面板
SVG 渲染
Canvas 渲染
图标占位
渐变占位
动画占位
• 支持 SVG、Canvas、HTML 三种渲染方式
• 可控制播放、暂停、速度、方向等
• 支持本地文件和在线动画链接
• 支持自定义占位内容:使用 #placeholder slot
• 动画加载时显示占位,加载完成后平滑过渡到动画
• 使用 body-class 属性控制容器样式
• 基于 lottie-web 库实现
• 动画文件可通过 Adobe After Effects + Bodymovin 导出
代码示例:
<LottiePlayer
path="/assets/lottie/animation.json"
body-class="w-32 h-32"
:show-controls="true"
>
<template #placeholder>
<div class="loading-content">
<Icon name="mdi:loading" class="animate-spin" />
<span>加载中...</span>
</div>
</template>
</LottiePlayer>getRedDot(key) : 获取红点状态 (false) hasRedDot(key) : 检查是否存在 (false) getAllRedDots() : 获取所有红点 key 列表 (0 个) hasAnyRedDot : 是否有任何红点 (true) 展示如何挂载一个对话框组件,使用标准的 props 传递。关闭对话框后会自动卸载。
展示如何挂载一个普通组件(非对话框),可以挂载到指定的容器中。
展示 autoUnmount: true 的使用。 组件会监听 isOpen 状态变化,当状态变为 false 时自动卸载。
展示手动调用 unmount() 方法, 外部完全控制组件的生命周期。
演示 defineModel 与标准 v-model 输入框的联动。 父组件的输入框是为了方面初始化和演示,他的更新只会影响初始化挂载组件的那一刻,后续的更新不会影响挂载组件。
父级状态:来自父组件的初始内容
子组件输入框中每次修改都会触发 update:modelValue,从而同步父级状态。
提示:通过 mountComponent 传入的 props 仅在初始化时生效——它们不会像父子组件那样保持响应式。 这受限于createApp的实现,无法用正常的方式像父子组件那样保持响应式。
提示:打开浏览器控制台可以查看组件的生命周期日志。