0.0.5-alpha • Published 8 months ago

smirk-ui v0.0.5-alpha

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

Smirk UI

  1. 一个自用的 Vue3 组件库,自由度高、扩展性强、极少的入参。目标是:工作五分钟,摸鱼俩小时!

  2. 主要基于 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

名称类型默认值说明
sizeString1920*1080大屏分辨率,一般来自设计稿。

Slot

名称参数说明
default()内容

sm-transition

过渡组件,或叫转场组件。默认根据路由变化触发动画,使大屏更加酷炫。(依赖 animate.css

Props

名称类型默认值说明
enterStringfadeIn进场动画。属性值直接用 animate.css 的动画名称。
exitsStringfadeOut退出动画。属性值直接用 animate.css 的动画名称。
kString|Number|Boolean可通过改变 k 的值来触发动画。默认根据路由变化触发。

Slot

名称参数说明
default()内容。这个组件必须仅有一个根元素。

sm-echarts

渲染 echarts 图表的公共组件。化繁为简,只需关注 option 即可。

Props

名称类型默认值说明
configObject{ 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

名称类型默认值说明
dataListArray[]列表数据。字段随意,最终会通过插槽提供出来。
speedString|Number5滚动的速度。0 停止。太小会卡顿,5 还可以。
pageSizeString|Number5大于这个数字才会滚动,一般是该组件单页能存放的条数。
nativeOptsObject{}配置 vue3-seamless-scroll 的原生属性。其中 singleHeight 比较实用,意思是滚动这个高度后,会暂停一下,达到单条轮播的效果。否则是连续滚动。

Slot

名称参数说明
header()头部。可以做标题或者表头之类的内容。主要是为了封装 sm-rolling-list 组件而提供。
default{item, index}内容区。

sm-rolling-list

滚动的数据表格组件。为尽可能减少入参,样式可在父组件中设置。

Props

名称类型默认值说明
dataListArray[]列表数据。
columnsArray[]列配置。
speedString|Number5滚动的速度。0 停止。太小会卡顿,5 还可以。
pageSizeString|Number5大于这个数字才会滚动,一般是该组件单页能存放的条数。
singleHeightString|Number33滚动这个高度后,会暂停一下,达到单条轮播的效果。
borderStyleString1px solid #ddd边框样式。div 模拟 table 的效果。
nativeOptsObject{}配置 vue3-seamless-scroll 的原生属性。

columns Props

名称类型默认值说明
codeString字段代码。
labelString|Function字段名称。支持格式化函数,可渲染 html。
widthStringauto列宽,默认自适应。值同为 css 属性值。注:至少有一列 width 为 auto。否则组件宽度撑不满。
alignStringleft对齐方式。left | center | right。
formatterFunctionnull单元格格式化函数,可渲染 html。
slotString单元格插槽,比如渲染一列按钮时使用。属性值就是插槽的名称。参数为:scoped

Slot

名称参数说明
code{value,index,item}单元格插槽。

Methods

名称参数说明
click-thitem点击表头单元格时。
click-tdvalue, index, item点击列表单元格时。

sm-rolling-num

数字滚动组件。

Props

名称类型默认值说明
fromNumber0起始值。
toNumber目标值。支持小数。
prefixString前缀。
suffixString后缀。
durationNumber3000动画持续时长。
separatorBooleanfalse是否启用千分符。

methods

名称参数说明
finish()动画完成时触发。

sm-datetime

当前时间组件。

Props

名称类型默认值说明
formatStringyyyy-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

名称类型默认值说明
dataListArray[]树形的字典列表数据。
colsNumber6每个分类下,单行展示的选项数。
rowsNumber4默认展示的分类个数,点击展开后,展示全部分类。

methods

名称参数说明
select{}选择时的反馈。属性为各个分类的 code,值为选中的子项集合。
0.0.4-alpha

8 months ago

0.0.3-alpha

8 months ago

0.0.5-alpha

8 months ago

0.0.2-alpha

8 months ago

0.0.1-alpha

8 months ago