npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

element-assits

v0.0.72

Published

element-ui 的扩展组件库

Downloads

1,173

Readme

element-assits

介绍

element-ui 为了适用范围更广,组件灵活性很高。在实际的业务开发过程中,需要对其进行适当的封装以适应项目并提高开发效率。

此项目扩展了 element-ui 的表格和表单组件,使其在多表格和表单的项目中更易于使用。

快速开始

安装:
npm i element-assits -S (确保已经安装了vueelement-ui)

引入:

// 入口文件 main.js
import Vue from 'vue'
import Element from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import ElementAssits from 'element-assits'
import 'element-assits/lib/style.scss'

Vue.use(Element)
Vue.use(ElementAssits)
// ...

使用:
默认全局注册了 EaForm EaTable EaSelect EaModal EaPopover 等组件
提供了 uuid recursive recursiveFilter asyncLoad renderCell 五个工具函数
Vue 原型上挂载了 $asyncLoad 方法(与asyncLoad相同)

如果单独引入 asyncLoad 方法,并且没有挂载在Vue原型上
那么,asyncLoad 方法载入的组件将游离在vueApp实例树之外
副作用是无法访问$parent,$router,$store等等
除非你 asyncLoad.bind(this) 手动为其绑定上下文

用法

表格组件 EaTable

此组件扩展了 el-table 组件。不同的是:

  • 它完全使用对象数组来控制表格列
  • 封装了搜索栏,动态宽度,动态折叠等
  • 封装了分页组件,自动分页
  • 各个位置留有菜单栏插槽,合理布局

props

| 属性名 | 含义 | 类型 | 默认值 | |:---|:---|:---|:---| | column | 列信息数组| Array | [] | | data | 表格数据 | Array | [] | | pageRequest | 分页请求 | Function () => Promise<{data:any[], total:number}> | undefined | | loading | 表格加载状态 | Boolean | undefined | | initRequest | 是否初始化发送请求 | Boolean | Function boolean | (search: () => void) => void | true | | innerForm | 内部 - 表单(搜索栏) | Boolean | Object | undefined | |     .model | 搜索表单的值 | Object | undefined | |     .limit|限制默认显示的搜索条件数量|Number | auto | all|auto| |     .referenceItemWidth|单项参考宽度|Number|180| |     .maxItemWidth|单项最大宽度|Number|240| |     .loading|控制更多按钮加载状态|Boolean|false| |     .defaultShowAll|搜索条件是否默认展开|Boolean|false| |     .column[].exclusiveDoubleCells|允许某一项独占两格|Boolean|false| | innerSelection | 内部 - 选中列 | Boolean | Object | undefined| |     .data | 选中的行 | Array | undefined | | innerIndex | 内部 - 索引 | Boolean | Object | true| | innerPagination | 内部 - 分页 | Boolean | Object | undefined| | innerOperation | 内部 - 操作栏(尾列)| Boolean | Object | undefined| |     .maxNumOfBtn|最大显示的按钮数,溢出折叠|Number|3| |     .enableAutoWidth|是否自动计算宽度(当按钮动态时)|Boolean|false|

methods

| 方法名 | 说明 | 参数 | |:---|:---|:---| | handleSearch | 执行搜索 | 无 | | handleRefresh | 执行刷新 | 无 |

slots

| 插槽名 | 默认值 | 说明 | |:---|:---|:---| | search | 搜索栏 | 如果想自定义搜索栏时 | table | 表格 | 如果不想用表格来渲染数据,此处可自定义渲染数据的方式 | top-menu | 无 | 顶部菜单 | row-menu | 无 | 行菜单,需要 initOperation 至少为true | bottom-menu | 无 | 底部菜单 | before-column | 无 | 表格内部所有列之前 | after-index-column | 无 | 表格内部索引列之后 | after-selection-column | 无 | 表格多选列之后 | before-action-column | 无 | 表格内部操作列之前 | after-column | 无 | 表格内部所有列之后 | footer | bottom-menu&分页 | 表格底部

events

| 事件名 | 说明 | 参数 | |:---|:---|:---| |search-reset| 搜索重置事件|params.callback 重置表单并搜索(不监听时默认行为) params.reset 仅重置表单 params.search 仅搜索 |

column-attributes

| 属性名 | 类型 | 默认值 | 说明 | |:---|:---|:---|:---| | label | String | undefined | 列名 | prop | String | undefined | 列属性名 | show | Boolean | undefined | 是否显示,非 false 即显示 | bind | Object | undefined | v-bind 至对应的 el-table-column 组件

表单组件 EaForm

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |model|表单数据对象|Object| |rules|表单验证规则对象|Object| |dense|是否紧凑模式|Boolean|false| |column|表单项信息组|Array|必填| |column[].label|标签名|String | Function|必填| |column[].prop|属性名|String|必填| |column[].labelTooltip|名称描述tips|String | Object| |column[].labelWidth|独立设置标签宽度|String| |column[].required|是否必填|Boolean|false| |column[].component|所用组件|String | Component|el-input| |column[].rules|校验规则|Array | Function| |column[].bind|组件v-bind|Object| |column[].on|组件v-on|Object| |column[].show|控制表单项是否显示|Boolean | Function|true| |column[].enable|控制表单项是否启用|Boolean | Function|true| |column[].span|所占栅格|Number|12| |column[].pull|栅格偏移|Number| |column[].push|栅格偏移|Number| |column[].offset|栅格偏移|Number|

methods

| 方法 | 说明 | 参数 | |:---|:---|:---| |setData|设置表单数据对象的值|要设置的数据对象|

events

| 事件名 | 说明 | 参数 | |:---|:---|:---| |change| 表单值变化事件 | 当前表单的值 |

按钮 EaButton

继承el-button, 简化按钮配置

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |customType|自定义类型,将启用小方格按钮|String|undefined| |tooltip|按钮提示文本,为空则禁用|String|undefined| |feat|按钮配置简写例如:feat="primary|el-icon-plus|新增"|String|undefined|

弹窗 EaModal

继承 el-dialog,允许拖拽,允许少量修改布局,简化按钮
绑定confirm事件,出现确定按钮;绑定cancel事件,出现取消按钮

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |customClass|自定义css类|String|undefined| |confirmLoading|确定按钮的加载状态|Boolean|false| |margin|弹窗 margin|String|undefined| |bodyPadding|内容 padding|String|undefined| |bodyMinHeight|内容最小高度|String|undefined| |allowDrag|是否允许拖拽|Boolean|true|

数字输入框 EaNumber

使样式与 el-input 相似

气泡框 EaPopover

函数式Popover,允许异步调用

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |reference|参考dom节点|HTMLElement|undefined| |offset|偏移|Number|0| |mountedCallback|加载后回调,方便使用|Function|undefined|

slots

| 插槽名 | 默认值 | 说明 | |:---|:---|:---| | default | 无 | 内容插槽 (refresh, close) 允许刷新和关闭气泡框 |

单选框 EaRadio

允许绑定数据和异步数据,允许默认选中

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |data|数据|Array|undefined| |asyncData|异步数据|Function|undefined| |props|配置选项|Object|undefined| |defaultFirst|是否默认选中第一项|Boolean|false| |innerRadio|绑定至内部-radio|Object|undefined| |type|radio类型|String|undefined|

开关 EaSwitch

额外支 size="mini" 尺寸

滚动容器 EaScrollbar

el-scrollbar 衍生,优化样式

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |wrapStyle|wrap样式|String|undefined|

虚拟滚动 EaVirtualScroll

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |enableVirtualScroll|是否开启虚拟滚动|Boolean | String|auto| |options|选项列表|Array| [] | |itemSize|单项高度|Number|30| |redundancy|渲染总数,影响流畅度和性能|Number|60|

JsonSchema编辑器 EaJsonSchema

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |value / v-model|json-schema 数据|Object|{}| |height|组件高度|Number | String| auto | |maxHeight|当自动高度时,限制最大高度|Number| 500 | |itemSize|单项高度|Number|32| |allowEdit|是否允许编辑|Boolean|true| |checkbox|是否开启多选列|Boolean|false| |disableCheckbox|是否禁用选择(只读)|Boolean|false| |columnFormat|对原有的column进行过滤|Function|column => column| |rootAlias|根节点别名|String|root|

methods

| 方法名 | 说明 | 参数 | |:---|:---|:---| | validate | 数据验证,仅验证prop不能为空 | 无 | | getData | 获取数据(配置结果) | 无 | | getChecked | 获取选中项 | 无 | | setChecked | 设置选中项 | 选中项schema路径列表 | | getSchemaPath | 获取schema路径 | __state.prefix | | getDataPath | 获取data路径 | __state.prefix, callback |

下拉框 EaSelect

允许异步数据,允许大数据量虚拟滚动

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |value / v-model|绑定值|String | Number | Array|undefined| |label|额外名称绑定,允许.sync|String|undefined| |data|选项数据|Array|[]| |asyncParams|异步参数|undefined|undefined| |asyncData|异步数据,允许异步参数|Function|undefined| |props|配置选项|Object|undefined| |props.desc|描述列字段名,将影响过滤方法|String|undefined| |itemMaxWidth|单项[label,value]最大宽度|Number | Array|150| |popperClass|弹出框自定义css类|String|undefined| |showCheckAll|多选时是否显示全选按钮|Boolean|false|

slots

| 插槽名 | 默认值 | 说明 | |:---|:---|:---| | prefix | 无 | 输入框前缀 | | empty | 无 | 空数据 | | before-option | 无 | 选项之前 | | after-option | 无 | 选项之后 |

分割面板 EaSplit

分割面板,允许拖拽

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |default|默认分割比例|Number|0.2 |min|最小分割比例|Number|0.2 |max|最大分割比例|Number|0.5

slots

| 插槽名 | 默认值 | 说明 | |:---|:---|:---| | left | 无 |左侧面板| | center | 默认手柄 |中间分割手柄 | | right | 无 |右侧面板 |

树 EaTree

与el-tree相比,带搜索框和搜索方法,带scrollbar,允许设置剩余高度,异步数据

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |inputPlaceholder|搜索框的占位内容|String|请输入关键字搜索| |remainingHeight|剩余高度|Number|200| |props|配置选项|Object|undefined| |data|数据|Array|undefined| |asyncData|异步数据|Function|undefined| |filterNodeMethod|过滤方法|Function|undefined| |emptyText|空数据时文字描述|String|暂无数据| |title|标题|String|undefined| |border|是否显示边框|Boolean|false|

slots

| 插槽名 | 默认值 | 说明 | |:---|:---|:---| | default | 无 |自定义树节点的内容,参数为 { node, data }| | input-prefix | 无 |搜索框前缀| | input-append | 无 |搜索框后缀| | header | 无 |自定义标题| | header-append | 无 |自定义标题后缀|

虚拟树 EaDataTree

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |data|(树)数据|Array|[]| |props|配置项|Object|{ label: 'label', value: 'value', children: 'children' }| |height|组件高度|Number | String| auto | |maxHeight|当自动高度时,限制最大高度|Number| 500 | |itemSize|单项高度|Number|32| |checkbox|是否显示多选框|Boolean|false| |disableCheckbox|是否禁止多选框|Boolean|false| |noDataText|无数据时的文本|String|暂无数据| |border|是否显示边框|Boolean|false| |stripe|是否需要斑马纹|Boolean|false|

methods

| 方法名 | 说明 | 参数 | |:---|:---|:---| | getChecked | 获取选中项 | 无 | | setChecked | 设置选中项 | (树)数据(以props.value匹配) |

slots

| 插槽名 | 默认值 | 说明 | |:---|:---|:---| | default | 单项(行) | 自定义行内容,跟随枝干 | | row | 单项(行) | 自定义行内容,脱离枝干 |

列表 EaList

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |data|数据|Array|undefined| |pageRequest|分页请求|Function|undefined| |initRequest|是否初始化请求|Boolean|true| |itemSize|单项高度|Number|30| |remainingHeight|剩余高度|Number|200| |page|分页信息|Object|undefined| |redundancy|渲染总数,影响流畅度和性能|Number|60|

slots

| 插槽名 | 默认值 | 说明 | |:---|:---|:---| | default | 单项(行) | 自定义行内容 |

虚拟数据表格 EaDataTable

props

| 属性名 | 说明 | 类型 | 默认值 | |:---|:---|:---|:---| |data|数据|Array|undefined| |column|列信息|Array|undefined| |pageRequest|分页请求|Function|undefined| |initRequest|是否初始化请求|Boolean|true| |itemSize|单项高度|Number|30| |maxHeight|最大高度|Number|300| |page|分页信息|Object|undefined| |redundancy|渲染总数,影响流畅度和性能|Number|undefined| |border|是否显示边框|Boolean|false|

描述列表 EaDesc

props

| 属性名 | 含义 | 类型 | 默认值 | |:---|:---|:---|:---| |title|标题|String|undefined| |data|数据|Object|必填| |column|列信息|Array|必填| |column[].bind.class|单独设置类|Object|undefined| |column[].bind.style|单独设置样式|Object|undefined| |labelWidth|标签宽度|Number | String|100| |split|分割数量|Number|2| |diff|有差异的列信息|Array|undefined| |gutter|间隔|Number|0|

弹窗文件上传 EaFileUpload

props

| 属性名 | 含义 | 类型 | 默认值 | |:---|:---|:---|:---| |title|标题|String|文件上传| |multiple|是否多选|Boolean|false| |limit|最大数量限制|Number|1| |suffix|允许的文件后缀|String|xlsx,xls| |maxSize|允许的文件大小,单位M|Number|100| |httpRequest|文件上传|Function|必填| |httpTemplate|模板下载|Function|undefined| |httpFinally|请求完成|Function|undefined| |innerUploadBind|绑定至el-upload|Object|undefined| |innerUploadOn|绑定至el-upload|Object|undefined|