# vue-custome-components
**Repository Path**: xiawei007/vue-custome-components
## Basic Information
- **Project Name**: vue-custome-components
- **Description**: 插件主要包含一些日常常用的组件封装(table组件,动态表单组价...)
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2023-12-01
- **Last Updated**: 2025-02-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: TypeScript, vue3, element-plus, custome
## README
# vue-custome-components插件描述
插件基于UI库 element-plus, @element-plus/icons-vue, 前端框架:vue3 来开发,插件主要包含一些日常常用的组件封装(table组件,动态表单组件...).
[更多线上案例](http://175.178.117.94/)
## 如何使用
- 按需导入:
```js
import 'vue-custome-components/dist/style.css'
import { VueCustomeTable } from 'vue-custome-components'
```
- 全局注册:在项目的 main.ts 中进行如下的全局安装
```js
import VueCustomeComponents from 'vue-custome-components'
import 'vue-custome-components/dist/style.css'
app.use(VueCustomeComponents)
```
全局 注册后,在任意子组件中就可以直接使用对应的插件功能
## 部分组件参数配置
### VueCustomeTable:
#### table属性配置:
| 属性名 |是否必需| 属性描述 | 参数类型 | 默认值 |
|----|----|----|----|----|
| columns | 是| 表格数据展示列配置 | Array| [] |
| data | 是 | 表格数据展示 | Array| [] |
| loading | 否 |用于表格获取数据加载显示| boolean | false |
| loading-text|否|加载文字显示 | string | 加载中... |
| operation-column| 否 | 操作列配置 | Array| -- |
| stripe | 否| 是否为斑马纹 | boolean| false |
| border |否| 表格是否带有边框 | boolean| false |
| show-overflow-tooltip| 否 |内容溢出tip提示| boolean | false |
| index| 否 | 是否显示序号列 | boolean | false|
| selected | 否| 是否启动表格的选择| boolean | false |
| rowKey | 否| 行唯一key值 | string| 'id' |
| page | 否 | 分页配置(配置了启动内部分页组件) | Page| undefined |
#### Page数据配置:
| 属性名 |说明| 类型 | 是否必配|
|----|----|----|----|
|currentPage|当前页| number|是|
|pageSize|当前页大小|number|是|
|total| 总页数|number|是|
|pageSizes|页面显示条数配置| [number]| 否|
#### table事件:
| 事件名 |说明| 回调参数 |
|----|----|----|
| size-change | 启动内部分页组件,页面size大小发生变化时触发的事件| size |
| current-change | 启动内部分页组件,页面page发生变化时触发的事件| page |
| fliter-change | 表头筛选时触发的事件 | filters |
| handle-operation | 操作列表中的操作触发的事件 | type(操作类型), data |
| sort-change | 表头排序触发 的事件 | sort |
| selection-change | 表格checkbox触发的事件 | data |
#### table方法:
| 方法名 |说明| 参数 |
|----|----|----|
| toggleRowSelection | 用于表格数据回显 | data |
| getSelectionRows | selected为true,获取表格选中的数据| -- |
#### columns数据配置:
| 属性名 | 属性描述 |属性类型 | 是否必需|
|----|----|----|----|
| label| 列名称| string | 是 |
| prop | 列字段属性(与接口返回的数据字段保持一致) | string | 是 |
| fixed | 列是否固定 | string / boolean | 否 |
| width | 列字宽度 | string / number | 否 |
| formatter| 自定义格式化内容| (row: any) => any | 否 |
| component | 自定义组件展示 | (date: any) => Component | 否 |
| sort| 是否启动排序| boolean | 否 |
| search | 列表是否启动筛选功能 | SearchType | 否 |
|align | 列表对齐方式 | string |否|
| children | 用于多级表头显示 | [column] | 否 |
#### SearchType查询配置:
| 属性名 | 属性描述 | 类型 | 是否必需|
|----|----|----|----|
| type | 筛选类型 | input, select, remoteSelect, date,datetime,datetimerange,daterange | 是
| multiple|remoteSelect是否是多选|boolean|否|
| maxLength | input 类型限制输入字符 | number |否(默认60)|
| minLimit | (data,datatime,datarange,datatimerange)用于最小值限制,值可以是符合日期格式的string,也可以是列表中的某一个字段| any | 否|
| maxLimit | (data,datatime,datarange,datatimerange)用于最大值限制,值可以是符合日期格式的string,也可以是列表中的某一个字段| any | 否|
| remoteApi |remoteSelect远程检索提供的api函数|(val: string) => Promise| 否 |
#### operation-column配置:
| 属性名 | 属性描述 |属性类型 | 是否必需|
|----|----|----|----|
| label| 列名称| string | 是 |
| fixed | 列是否固定 | string / boolean | 否 |
| width | 列字宽度 | string / number | 否 |
| btns | 操作项配置 | [Btn] | 否 |
Btn配置:
| 属性名 | 属性描述 | 是否必需|
|----|----|----|
| label| 列名称 | 是 |
| icon | 图标:结合element-plus图标使用 | 否 |
| type | 操作类型 | 是 |
| style | 风格参考el-button type风格 | 否 |
#### 表格含有自定义插槽:
| 插槽名 | 插槽描述 |
|----|----|
|empty|数据为空显示插槽|
|operations| 操作列插槽|
### VueCustomeForm:
#### form属性配置:
| 属性名 |是否必需| 属性描述 | 参数类型 | 默认值 |
|----|----|----|----|----|
| fields | 是| 动态生成表单元数据 | [field]| [] |
| labelWidth | 否| 标签的长度| string/number| 120|
| labelPosition| 否| 标签对齐方式| string| right|
|disabled| 否| 表单是否禁用| boolean| false|
|loading| 否| 用于控制组件外部操作防止多次点击(启动内部操作按钮)| boolean| false|
#### field属性配置:
| 属性名 |是否必需| 属性描述 | 参数类型 |
|----|----|----|----|
| type | 是 | 表单元素类型 | "input", "select","remoteSelect" , "radio" , "checkbox" , "switch" , "date" ,"datetime" , "datetimerange" , "daterange" , "textarea" ,"component"|
| prop | 是 | 表单元素属性 |string|
| label | 是 | 属性名称 |string|
| col | 否 | el-col布局 |number|
| options | 否 | 用于select下拉选项 |[{label:xxx,value:xxx}]|
| disabled | 否 | 是否禁用状态 |boolean|
| multiple | 否 | select多选 |boolean|
| multipleLimit | 否 | 多选个数限制 |number|
| dateMinLimit | 否 | 用于最小值限制(data,datatime,datarange,datatimerange),值可以是符合日期格式的string,也可以是表单中的某一个字段|any|
| dateMaxLimit | 否 | 用于最大值限制(data,datatime,datarange,datatimerange) |any|
| showWordLimit | 否 | 显示字符限制 |boolean|
| maxLength | 否 | 文本或者文本输入类型 类型限制输入字符 |number|
| prefixIcon | 否 | 前缀图标 |string/Component|
| suffixIcon | 否 | 后缀图标 |string/Component|
| autosize | 否 | textarea 高度是否自适应 |boolean/ { minRows: number,maxRows: number,}|
| activeValue | 否 | switch打开值 |string/boolean/number|
| inactiveValue | 否 | switch关闭值 |string/boolean/number|
| activeText | 否 | switch打开文案 |string/boolean/number|
| inactiveText | 否 | switch关闭文案 |string/boolean/number|
| rules | 否 | 表单验证 |element-plus表单验证规则|
| showPassword | 否 | 是否显示 密码框 |boolean|
| remoteApi | 否 | 用于 select远程检索|(val: string, fromData: FormData) => Promise|
| comp | 否 | 自定义表单组件:type: component使用,自定义组件必须实现v-modal功能,定义 fields:接受相关配置信息 |Component|
| linkageDisabled| 否 |表单联动禁用(以表单中其他字段为限定值)|(fromData: FormData) => boolean|
| linkageRequired| 否 |表单联动非必填(以表单中其他字段为限定值) |(fromData: FormData) => boolean|
| linkageFillOrClear| 否 | 当前配置数据变化,自动填充或者清空其他数据 |(fromData: FormData) => void|
| linkageOptions| 否 | 联动optons一般用于联动的级联选项 |(fromData: FormData) => Array