smirk-ui v0.0.5-alpha
Smirk UI
一个自用的 Vue3 组件库,自由度高、扩展性强、极少的入参。目标是:工作五分钟,摸鱼俩小时!
主要基于 Naive UI 二次封装。包含大屏组件和业务组件等。
注:开发大屏项目时,可搭配
smirk-kit
使用。其中useDsCore
数据源引擎,会使交互、接口轮询、数据管理等工作变得非常轻松。(安装pnpm add smirk-kit
)
安装
安装依赖,推荐
pnpm
pnpm add naive-ui smirk-ui pnpm add unplugin-vue-components -D
配置
vite.config.mjs
import Components from 'unplugin-vue-components/vite' import { NaiveUiResolver } from 'unplugin-vue-components/resolvers' plugins: [ Components({ resolvers: [NaiveUiResolver()], dirs: [/*目录下的组件会自动导入*/], directoryAsNamespaces: true, }) ]
main.js
中导入smirk-ui
// 全局安装 import SmirkUI from 'smirk-ui' app.use(SmirkUI) // 或者 按需引入 import { SmViewport } from 'smirk-ui'
组件
sm-viewport
视窗组件。根据屏幕分辨率等比缩放,一般做大屏时候用作根容器。右键菜单默认被禁用。
Props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
size | String | 1920*1080 | 大屏分辨率,一般来自设计稿。 |
Slot
名称 | 参数 | 说明 |
---|---|---|
default | () | 内容 |
sm-transition
过渡组件,或叫转场组件。默认根据路由变化触发动画,使大屏更加酷炫。(依赖
animate.css
)
Props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
enter | String | fadeIn | 进场动画。属性值直接用 animate.css 的动画名称。 |
exits | String | fadeOut | 退出动画。属性值直接用 animate.css 的动画名称。 |
k | String|Number|Boolean | 可通过改变 k 的值来触发动画。默认根据路由变化触发。 |
Slot
名称 | 参数 | 说明 |
---|---|---|
default | () | 内容。这个组件必须仅有一个根元素。 |
sm-echarts
渲染 echarts 图表的公共组件。化繁为简,只需关注 option 即可。
Props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
config | Object | { option: (echarts) => {} } | 属性对象 |
示例
<sm-echarts v-model:config="ecMap"></sm-echarts>
// 属性对象
const ecMap = reactive({
/* 必要参数 */
option: echarts => null // 返回图表属性对象的函数
/* 可选参数 */
mapType: '', // 地图名称
geoJson: null, // 地图坐标数据
events: Array, // 绑定事件 def=[{ type, callback }]
useSvg: false, // 是否使用 svg 渲染模式
})
function getOptionFn () {
return {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [150, 230, 224, 218, 135, 147, 260],
type: 'line'
}
]
}
}
onMounted(() => {
// 渲染图表
ecMap.vmRender()
/** 注:此刻,ecMap 对象中会增加几个属性,用于操作图表
ecMap = {
vmBox, // 这是宿主元素
vmSelf, // 这是图表实例,即 myChart
vmRender, // 渲染方法,可传入新的 option 进行重绘
vmClear // 清除
}
*/
})
sm-rolling
基础滚动组件。基于 vue3-seamless-scroll 封装(不是虚拟列表的设计,进行了一些优化)。
仅提供基础的滚动效果。便于开发滚动卡片,滚动指标等一类组件。
能设置滚动方向
nativeOpts.direction = 'up | down | left | right'
Props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
dataList | Array | [] | 列表数据。字段随意,最终会通过插槽提供出来。 |
speed | String|Number | 5 | 滚动的速度。0 停止。太小会卡顿,5 还可以。 |
pageSize | String|Number | 5 | 大于这个数字才会滚动,一般是该组件单页能存放的条数。 |
nativeOpts | Object | {} | 配置 vue3-seamless-scroll 的原生属性。其中 singleHeight 比较实用,意思是滚动这个高度后,会暂停一下,达到单条轮播的效果。否则是连续滚动。 |
Slot
名称 | 参数 | 说明 |
---|---|---|
header | () | 头部。可以做标题或者表头之类的内容。主要是为了封装 sm-rolling-list 组件而提供。 |
default | {item, index} | 内容区。 |
sm-rolling-list
滚动的数据表格组件。为尽可能减少入参,样式可在父组件中设置。
Props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
dataList | Array | [] | 列表数据。 |
columns | Array | [] | 列配置。 |
speed | String|Number | 5 | 滚动的速度。0 停止。太小会卡顿,5 还可以。 |
pageSize | String|Number | 5 | 大于这个数字才会滚动,一般是该组件单页能存放的条数。 |
singleHeight | String|Number | 33 | 滚动这个高度后,会暂停一下,达到单条轮播的效果。 |
borderStyle | String | 1px solid #ddd | 边框样式。div 模拟 table 的效果。 |
nativeOpts | Object | {} | 配置 vue3-seamless-scroll 的原生属性。 |
columns Props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
code | String | 字段代码。 | |
label | String|Function | 字段名称。支持格式化函数,可渲染 html。 | |
width | String | auto | 列宽,默认自适应。值同为 css 属性值。注:至少有一列 width 为 auto。否则组件宽度撑不满。 |
align | String | left | 对齐方式。left | center | right。 |
formatter | Function | null | 单元格格式化函数,可渲染 html。 |
slot | String | 单元格插槽,比如渲染一列按钮时使用。属性值就是插槽的名称。参数为:scoped |
Slot
名称 | 参数 | 说明 |
---|---|---|
code | {value,index,item} | 单元格插槽。 |
Methods
名称 | 参数 | 说明 |
---|---|---|
click-th | item | 点击表头单元格时。 |
click-td | value, index, item | 点击列表单元格时。 |
sm-rolling-num
数字滚动组件。
Props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
from | Number | 0 | 起始值。 |
to | Number | 目标值。支持小数。 | |
prefix | String | 前缀。 | |
suffix | String | 后缀。 | |
duration | Number | 3000 | 动画持续时长。 |
separator | Boolean | false | 是否启用千分符。 |
methods
名称 | 参数 | 说明 |
---|---|---|
finish | () | 动画完成时触发。 |
sm-datetime
当前时间组件。
Props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
format | String | yyyy-mm-dd hh:mi:ss | 格式化。wk 代表 星期。 |
sm-feedback
反馈组件。naive-ui 的主要通知嘞组件。引入后,可直接使用的 api 组件有:window.$dialog、window.$loadingbar、window.$messager、window.$modal、window.$notice。
sm-multiple-picker
筛选器组件。类似京东商城购买电脑时,那个选择器。多类别、多选、可折叠。
Props
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
dataList | Array | [] | 树形的字典列表数据。 |
cols | Number | 6 | 每个分类下,单行展示的选项数。 |
rows | Number | 4 | 默认展示的分类个数,点击展开后,展示全部分类。 |
methods
名称 | 参数 | 说明 |
---|---|---|
select | {} | 选择时的反馈。属性为各个分类的 code,值为选中的子项集合。 |
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago