1.1.1 • Published 4 years ago
mmkk-plug v1.1.1
引入:
npm i mmkk-plug -S.vue:
import { btnBar, tableBar, formBar } from 'mmkk-plug'
components: {
formBar,
tableBar,
btnBar
},按钮 参数:
| 字段 | 注释 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| btnList | 按钮列表 | Array | 是 | [] |
| isAuthority | 是否启用权限 | Boolean | 否 | true |
- 备注:isAuthority 默认启用权限,使用的数据源为接口返回的数据列表
按钮 btnList参数:
| 字段 | 注释 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| label | 按钮名称 | String | 是 | '' |
| value | 按钮对应值 | String/Number | 是 | '' |
| icon | 图标 | String | 否 | '' |
| type | 按钮类型 | String | 否 | '' |
| size | 按钮大小 | String | 否 | '' |
表单 参数:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| formStyle | form表单的样式及相关参数 | Object | 否 | {} |
| formButton | 表单的按钮 | Object | 否 | {} |
| formData | form表单的值,用于编辑表单的赋值时传入,默认值不建议使用此参数,该方式传递默认值会被清空,请使用formItem中的value传递默认参数 | Object | 否 | {} |
| formItem | form表单项、表单元素 | Object | 是 | {} |
表单 formStyle参数:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| lableWidth | 表单域标签的宽度 | String | 否 | '80px' |
| inline | 一行内显示一个表单项 ( 查询表单默认是一行显示多个,只有在添加或编辑等表单会需要传此参数) | Boolean | 否 | false |
| labelPosition | 表单域标签的对齐方向 | String | 否 | 'right' |
| size | 用于控制该表单内组件的尺寸 | String | 否 | 'small' |
表单 formButton参数:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| btnShow | 是否使用按钮组件 (传递true后或显示查询和重置两个按钮,用于查询表单) | Boolean | 否 | false |
| col | 按钮区域的排列 | Array | 否 | 4,6,8,12,24 |
| list | 表单的其他按钮(此处按钮是没有权限验证的,需要 权限验证的按钮需要放在按钮组件中 ) | Array | 否 | [] |
| list - label | 按钮名称 | String | 否 | '' |
| list - value | 按钮标识 | String/Number | 否 | '' |
表单 formItem参数-公共:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| itemtype | 表单项类型,详见下表 【表单项类型参数】 | String | 是 | '' |
| label | 表单标签文本 | String | 是 | '' |
| value | 表单标签文本 | String | 否 | '' |
| col | 表单项排列 | Array | 否 | 4,6,8,12,24 |
| isShow | 表单项是否显示 | Boolean | 否 | true |
| id | 表单项key,表格项有变化或者表单项像是隐藏时需要此id | Number | 否 | '' |
| value | 表单标签文本 | String | 否 | '' |
| lableWidth | 表单域标签的宽度 | String | 否 | '80px' |
| rules | 表单验证条件 | Array | 否 | [] |
| clearable | 是否显示清空按钮 | Boolean | 否 | true |
| placeholder | 占位提示语 | String | 否 | '请输入/请选择' + label |
| disabled | 是否可编辑 | Boolean | 否 | false |
表单 表单项类型参数 :
| 类型 | 说明 |
|---|---|
| label | 展示框 |
| input | 文本输入框 |
| select | 下拉选择框 |
| date | 日期时间段选择 |
| number | 数字输入框 |
| switch | 开关 |
| cascader | 级联选择器 |
| radio | 单选 |
| checkbox | 多选 |
| upload | 图片/文件上传 |
| inputNumber | 文本输入框-只可输入数字 |
| groupNumber | 数组输入框-区间输入 |
| groupInput | 文本输入框-区间输入 |
| slot | 插槽 |
formItem参数-input:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| type | 原生属性 text,textarea 等 | String | 否 | '' |
| maxlength | 最大输入数 | String | 否 | '' |
| showPassword | 是否显示切换密码图标 | Boolean | 否 | false |
**示例:**
{
itemtype: 'input',
label: '关键字',
maxlength: 10,
placeholder: '请输入用户昵称/账号/姓名',
col: [6, 8, 12, 24, 24]
}表单 formItem参数-select:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| option | 选择框数据列 | Array/String | 是 | [] |
| valueName | option中的显示内容属性名称。 | String | 否 | '' |
| lableName | option中的值属性名称。 | String | 否 | '' |
| collapseTags | 多选时是否将选中值按文字的形式展示 | Boolean | 否 | false |
| multiple | 是否多选 | Boolean | 否 | false |
| filterable | 是否可搜索 | Boolean | 否 | false |
| allowCreate | 是否允许用户创建新条目,需配合 filterable 使用 | Boolean | 否 | false |
| defaultFirstOption | 在输入框按下回车,选择第一个匹配项 | Boolean | 否 | false |
| valueKey | 如果 Select 的绑定值为对象类型,请务必指定 value-key 作为它的唯一性标识。 | String | 否 | '' |
**示例:**
{
itemtype: 'select',
label: '状态',
option: [
{ label: '全部', value: '' },
{ label: '启用', value: 10 },
{ label: '禁用', value: 20 }
],
placeholder: '用户状态',
col: [6, 8, 12, 24, 24]
}- 备注:option参数比较复杂,分三种情况,文档推荐直接传递数组一种形式
表单 formItem参数-date:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| type | 时间选择框类型 year/month/date/week/ datetime/datetimerange/daterange | String | 否 | 'date ' |
| format | 可选,绑定值的格式。不指定则绑定值为 Date 对象 | String | 否 | '' |
**示例:**
{
itemtype: 'date',
label: '创建时间',
type: 'datetimerange',
col: [6, 16, 12, 24, 24]
}表单 formItem参数-number:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| controls | 是否使用控制按钮 | Boolean | 否 | false |
| controlsposition | 控制按钮位置 | String | 否 | 'right' |
| precision | 数值精度 | Number | 否 | 0 |
| step | 计数器步长 | Number | 否 | 0 |
| max | 最大值 | Number | 否 | Infinity |
| min | 控制按钮位置 | Number | 否 | 0 |
| unit | 单位 | String | 否 | '' |
表单 formItem参数-switch:
| 字段 | 说明 | 类型 | 空 | 默认 |
|---|---|---|---|---|
| activeValue | switch 打开时的值 | boolean / string / number | 否 | 1 |
| inactiveValue | switch 关闭时的值 | boolean / string / number | 否 | 0 |
表单 formItem参数-cascader:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| option | 选择框数据列 | Array/String | 是 | [] |
| filterable | 是否可搜索 | Boolean | 否 | false |
| checkStrictly | 是否严格的遵守父子节点不互相关联。 | Boolean | 否 | false |
| valueName | option中的显示内容属性名称。 | String | 否 | '' |
| lableName | option中的值属性名称。 | String | 否 | '' |
| multiple | 是否多选 | Boolean | 否 | false |
| emitPath | 在选中节点改变时,是否返回由该节点所在的各级菜单的值所组成的数组,若设置 false,则只返回该节点的值 | Boolean | 否 | false |
- 备注:option参数比较复杂,分三种情况,文档推荐直接传递数组一种形式
表单 formItem参数-radio/checkbox:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| option | 选择框数据列 | Array | 是 | [] |
formItem参数-upload:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| accept | 接受上传的文件类型(thumbnail-mode 模式下此参数无效 .xls,.xlsx .png, .jpg) | String | 是 | '' |
| limit | 最大允许上传个数 | Number | 否 | '' |
| fileList | 上传的文件列表, 例如: {name: 'food.jpg', url: 'https://xxx.cdn.com/xxx.jpg'} | Array | 否 | [] |
| tip | 提示内容 | String | 否 | '' |
表单 formItem参数-groupNumber:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| controls | 是否使用控制按钮 | Boolean | 否 | false |
| controlsposition | 控制按钮位置 | String | 否 | 'right' |
| precision | 数值精度 | Number | 否 | 0 |
| numberMax | 最大值 | Number | 否 | Infinity |
| min | 控制按钮位置 | Number | 否 | 0 |
| prop1 | 起始值属性名称 | String | 否 | 0 |
| prop2 | 终止值属性名称 | String | 否 | '' |
表单 formItem参数-slot:
| 字段 | 说明 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| style | 样式 | Array | 是 | {} |
**示例:**
{
itemtype: 'slot',
label: '门店',
heightAuto: true,
col: [6, 16, 12, 24, 24],
style: {
'height': 'auto !important'
}
}表单 事件
| 字段 | 说明 | 返回参数 |
|---|---|---|
| formClick | 返回通过验证的form对象 | form, item, row, index |
| formChange | 公共触发事件 change事件 | val, item, form |
| uploadCallback | 覆盖默认的上传行为,可以自定义上传的实现 | file |
| uploadRemove | 删除文件 | file |
表单 formClick事件返回参数说明
| 字段 | 说明 | 类型 |
|---|---|---|
| form | 表单对象 | Object |
| item | 按钮对象 两个默认按钮 0:重置 1:查询 其他的类型是需要传入的 牢记传入的类型不可为0和1 | Object |
| row | 传入的按钮对象,传入按钮参数会返回 | Object |
| index | 传入的按钮角标,传入按钮参数会返回 | Object |
表单 父组件可调用方法
| 字段 | 说明 | 类型 |
|---|---|---|
| forceUpdate | 表单重绘 更新 | function |
| formClear | 表单清空 | function |
| formReset | 表单重置 | function |
| formCreated | 表单数据重新转换,用于编辑表单赋值不成功的情况 | function |
表单 父组件可调用其他操作
- 父组件获取表单数据 this.$refs.组件ref.form
- 父组件获取表单通过验证的数据结果
this.$refs.组件ref.$refs.form.validate(valid => {
if (valid) {
通过验证
} else {
console.log('表单验证失败')
return false
}
})**表单 示例**
<form-bar
ref="serchform"
:form-item="formItem"
:form-button="formButton"
@formClick="formClick"
>
<template slot="storeIds" slot-scope="scope">
<el-select
v-model="scope.form.storeIds"
class="width-style"
placeholder="请选择门店"
clearable
multiple
filterable
remote
reserve-keyword
collapse-tags
:remote-method="remoteMethod"
:loading="storeLoading"
size="small"
>
<el-option
v-for="item in storetList"
:key="item.id"
:label="item.storeName"
:value="item.id"
/>
</el-select>
</template>
</form-bar>formItem: {
searchWord: {
itemtype: 'input',
label: '关键字',
// maxlength: 10,
placeholder: '请输入用户昵称/账号/姓名',
col: [6, 8, 12, 24, 24]
},
status: {
itemtype: 'select',
label: '状态',
option: [
{ label: '全部', value: '' },
{ label: '启用', value: 10 },
{ label: '禁用', value: 20 }
],
placeholder: '用户状态',
col: [6, 8, 12, 24, 24]
},
storeIds: {
itemtype: 'slot',
label: '门店',
heightAuto: true,
col: [6, 16, 12, 24, 24],
style: {
'height': 'auto !important'
}
},
startTime: {
itemtype: 'date',
label: '创建时间',
type: 'datetimerange',
col: [6, 16, 12, 24, 24]
}
},
formButton: {
btnShow: true,
col: [6, 8, 12, 24, 24]
},表格 参数:
| 字段 | 注释 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| dataList | 数据列表 | Array | 是 | [] |
| tableColumn | 表格表头及设置 | Array | 是 | [] |
| operationbtn | 操作列按钮 | Array | 否 | [] |
| operationWidth | 列宽度 | String | 否 | '120px' |
| numberSerial | 是否显示序号 | Boolean | 否 | false |
| selection | 是否显示选择框 | Boolean | 否 | false |
| tableOption | 是否启用表格列操作按钮 | Boolean | 否 | false |
| total | 分页总条数 | Boolean | 否 | false |
| paging | 分页配置 | Object | 否 | {} |
| tableHelght | 表格用于计算高度差值 | Number | 否 | 0 |
| rowKey | 折叠表格设置key值 | String | 否 | 'id' |
| errorMsg | 页面错误提示 | String | 否 | '暂无数据' |
| isAuthority | 是否使用权限 | Boolean | 否 | false |
| isSkeleton | 是否使用骨架屏 | Boolean | 否 | false |
- 备注:isAuthority 默认启用权限,使用的数据源为接口返回的数据列表
表格 tableColumn参数:
| 字段 | 注释 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| label | 列名称 | String | 是 | '' |
| prop | 列名称对应的数据属性名 | String | 是 | '' |
| width | 列宽度 | String | 否 | '' |
| showTooltip | 超出隐藏并悬浮提示 | String | 否 | '' |
| align | 数据对齐方式 | String | 否 | 'center' |
| headerAlign | 表头对齐方式 | String | 否 | 'center' |
| sortable | 对应列是否可以排序 true, false, 'custom' | Boolean/String | 否 | 'false |
| fixed | 列是否固定在左侧或者右侧,true 表示固定在左侧 | String | 否 | true |
| filter | 根据数据展示相应的文字 建议使用slot | Array | 否 | [] |
| copy | 是否使用复制 | Boolean | 否 | false |
| link | 是否使用超链接跳转 | Boolean | 否 | false |
| img | 是否使用图片展示 | Boolean | 否 | false |
| slot | 是否使用slot | Boolean | 否 | false |
表格 tableColumn参数 - filter:
| 字段 | 注释 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| value | 需要转义的值 | String | 是 | '' |
| lable | 将值转义成的字符串 | String | 是 | '' |
表格 operationbtn参数:
| 字段 | 注释 | 类型 | 必传 | 默认 |
|---|---|---|---|---|
| filter | 根据数据展示相应的文字 建议使用slot | Array | 否 | [] |
| slot | 是否使用slot | Boolean | 否 | false |
| label | 按钮名称 | String | 是 | '' |
| value | 按钮对应值 | String/ | 是 | '' |
| icon | 图标 | String | 否 | '' |
| type | 按钮类型 | String | 否 | '' |
| size | 按钮大小 | String | 否 | '' |
表格 返回事件
| 字段 | 注释 | 参数 |
|---|---|---|
| btnClick | 表单按钮返回数据 | row, index |
| btnselectionChange | 选择数据触发 | row |
| pagination | 分页数据 | paging |
**表格 示例**
<table-bar
:data-list="dataList"
:table-column="tableColumn"
:operationbtn="operationbtn"
:total="total"
:paging="paging"
:operation-width="'200px'"
:selection="true"
@pagination="pagination"
@btnselectionChange="selectionChange"
@BtnClick="BtnClick"
>
<template slot="status" slot-scope="scope">
<el-switch
v-model="scope.row.status"
:active-value="10"
:inactive-value="20"
@change="handleStatusChange(scope.row)"
/>
</template>
</table-bar>tableColumn: [
{
label: '用户编号',
width: '180',
prop: 'userId'
},
{
label: '员工号/账号',
width: '100',
prop: 'userName'
},
{
label: '用户状态',
prop: 'status',
slot: true,
width: '120'
},
],
operationbtn: [
{
value: 2,
label: '修改'
},
{
value: 3,
label: '删除'
},
{
value: 4,
label: '重置密码'
}
],
paging: {
pageSize: 10,
pageIndex: 1
}