# 使用帮助

# 配置参数(Table Attributes)继承 el-table 及 el-table-column 的属性

参数 说明 类型 默认值
table 表格数据对象 Object {}
---rules 规则(可依据 elementUI el-form 配置————对应 columns 的 prop 值) Object -
---data 展示数据 Array []
---toolbar 表格外操作栏选中表格某行,可以将其数据传出 Array -
---operator 表格内操作栏数据 Array []
-------hasPermi 表格内操作栏按钮权限资源(结合 btnPermissions 属性使用) String -
-------show 表格内操作栏根据状态显示 Object -
-------noshow 表格内操作栏根据多种状态不显示 Array -
-------type 基于 element button type String text
----size el-button的size String 'mini'
-------render 自定义操作按钮 jsx 方式编写 function -
---operatorConfig 表格内操作栏样式 Object {}
---changeColor 整行文字颜色样式控制 Object {}
---firstColumn 表格首列(序号 index,复选框 selection,单选 radio)排列 object {}
---total 数据总条数 Number -
---pageSize 页数量 Number -
---currentPage 是否需要显示切换页条数 Number -
columns 表头信息 Array []
----sort 排序 (设置:sort:true) Boolean false
----headerRequired 是否显示表头必填'*' Boolean false
----renderHeader 列标题 Label 区域渲染使用的可以用 jsx 方式 Function -
----bind el-table-column Attributes Object -
----noShowTip 是否换行 (设置:noShowTip:true);开启虚拟列表不会换行 Boolean false
----render 返回三个参数(text:当前值,row:当前整条数据 ,index:当前行) function -
----slotName 插槽显示此列数据(其值是具名作用域插槽) String -
----slotNameMerge 合并表头插槽显示此列数据(其值是具名作用域插槽) String -
----------param 具名插槽获取此行数据必须用解构接收{param} Object 当前行数据
----canEdit 是否开启单元格编辑功能 Boolean false
----filters 字典过滤 Object -
----------list listTypeInfo 里面对应的下拉数据源命名 String -
----------key 数据源的 key 字段(默认:dictValue) String 'dictValue'
----------label 数据源的 label 字段(默认:dictLabel) String 'dictLabel'
----configEdit 表格编辑配置(开启编辑功能有效) Object -
----------rules 规则(可依据 elementUI el-form 配置————对应 columns 的 prop 值) Object -
----------label placeholder 显示 String -
----------editComponent 组件名称可直接指定全局注册的组件,也可引入第三方组件 String input
----------bind 第三方 UI 的 Attributes Object -
----------eventHandle 第三方 UI 的 事件(返回两个参数,第一个自己自带,第二个 scope) Object -
----------event 触发 handleEvent 事件的标志 String -
----------type 下拉或者复选框显示(select-arr/select-obj/checkbox) String -
----------list 下拉选择数据源名称 String -
----------arrLabel type:select-arr 时对应显示的中文字段 String -
----------arrKey type:select-arr 时对应显示的数字字段 String -
listTypeInfo 下拉选择数据源{单元格编辑时需要} Object {}
title 表格左上标题 String /slot ''
toolbar 表格外操作栏 (显示在 table 右侧) slot -
footer 底部操作区(默认隐藏,使用插槽展示“保存”按钮) slot -
isShowFooterBtn 是否显示保存按钮(一般整行编辑才会开启) Boolean false
isEditCell 是否开启编辑模式(整行编辑模式) Boolean false
isEdit 是否显示添加按钮(在 table 的下面) Boolean false
highlightCurrentRow 是否高亮选中行 Boolean false
isShowTips 开启单元格编辑时鼠标移入是否显示“单击可编辑”tips Boolean false
columnSetting 是否显示设置(隐藏/显示列) Boolean false
isShowTreeStyle 是否开启 tree 树形结构样式 Boolean false
isMergedCell 是否开启合并单元格 Boolean false
comparisonOperator 多列行合并比较运算符 String ==
mergeCol 第几列合并进行行合并(默认第一列) Number 0
isObjShowProp 是否开启对象模式渲染数据 功能(适用于一层对象数据) Boolean false
isShowPagination 是否显示分页(默认显示分页) Boolean false
pageSizes 每页显示个数选择器的选项设置 number[] [10, 20, 50, 100]
isCopy 是否允许双击单元格复制 Boolean false
spanMethod 是否自定义编写合并单元格方法(跟 element 一样) funtion -
rowClickRadio 是否开启点击整行选中单选框 Boolean false
isTableColumnHidden 是否开启合计行隐藏复选框/单选框/序列 Boolean false
sortable 是否所有 table 列都开启排序 若值 'custom',需要监听 Table 的 sort-change 事件 Boolean/String -
isSortable 是否开启组件排序功能(仅有升序和降序) Boolean false
notSortJudge 不排序条件判断规则 String -
isKeyup 单元格编辑是否开启键盘事件(向上、向下、回车横向的下一个输入框) Boolean false
defaultRadioCol 设置默认选中项(单选)defaultRadioCol 值必须大于 0! Number -
btnPermissions 按钮权限 store.getters 接收字段 String -
isRowSort 是否开启行拖拽(结合row-key配置) Boolean false
columnSetBind 列设置按钮配置(继承el-button所有属性) Object -
----btnTxt 按钮显示文字 String '列设置'
----title 点击按钮下拉显示title String '列设置'
----size el-button的size String 'small'
----icon el-button的icon String 'el-icon-s-operation'
onlyIconSort 是否开启仅点击排序图标才排序 Boolean false
useVirtual 是否开启虚拟列表 Boolean false
maxHeight Table 的最大高度。合法的值为数字或者单位为 px 的高度。(开启虚拟列表是其值默认540) String/Number false

# Methods 方法(继承el-table的所有方法)

事件名 说明 参数
save 保存方法(返回编辑后的所有数据) -
resetFields 对表单进行重置,并移除校验结果(单元格编辑时生效)
clearValidate 清空校验规则(单元格编辑时生效) -

# events 其他事件按照 el-table 直接使用(如 sort-change 排序事件)

事件名 说明 返回值
page-change 当前页码 当前选中的页码
radioChange 单选选中事件 返回当前选中的整行数据
add 新增按钮 -
save 保存按钮 编辑后的所有数据
validateError 单元格编辑保存校验不通过触发 返回校验不通过的 prop--label 集合
handleEvent 单元格编辑时触发事件 configEdit 中的 event 值和对应输入的 value 值
sort-change 当表格的排序条件发生变化的时候会触发该事件 { column, prop, order }
rowSort 行拖拽排序后触发事件 返回排序后的table数据

# 具体操作

# 4.0 关于顶部工具栏

使用插槽 toolbar 传入即可

<template #toolbar>
  <el-select
    v-model="optValue"
    placeholder="请选择"
    size="small"
    @change="optionChange"
  >
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value"
    >
    </el-option>
  </el-select>
</template>

# 4.1 若需要表格外操作栏(超过 3 个按钮,第 4 个按钮会以下拉的方式展示)

配置 toolbar 即可(前提条件是,必须使用插槽 toolbar)

toolbar: [
  {
    text: '返回上一个页面',
    icon: 'el-icon-circle-plus-outline',
    type: 'danger',
    fun: this.getBack
  }
]

# 4.2 关于表格内操作栏

配置 operator 即可

operator: [
  {
    text: '预览',
    type: 'primary',
    icon: 'el-icon-delete'
    fun: this.preview
  },
  {
    text: '编辑',
    type: 'danger',
    fun: this.edit,
    show: { key: 'status', val: [3,4] } // 表status值为3或者4时,显示此操作健 根据后台字段返回是数字还是字符串来显示
  },
  {
    text: '撤销',
    fun: this.revoke,
    show: { key: 'status', val: ['1'] }
  }
]

# 补充说明:多种状态控制按钮的显示与隐藏

operator: [
  {
    text: '预览',
    type: 'primary',
    fun: this.preview,
    noshow: [
      { key: 'fields', val: 'isHasVal' },
      { key: 'status', val: [0, 1, 99] },
      { key: 'channelCode', val: ['bank'] }
    ]
    // noshow中的key值(fields/status/channelCode)是表格后台返回的字段
    // 当val等于字符串'isHasVal'时,字段'fields'返回为空时,此行操作按钮隐藏
    // 以上综合:当'status'为0/1/99并且'channelCode'为'bank'及'fields'为空时,隐藏按钮
  }
]

# 4.3 关于表格操作栏样式,如固定右侧,宽度

operatorConfig: {
  fixed: 'right',
  width: 200,
  label: '操作'
}

# 4.4 关于表格某行文字颜色

changeColor: {
  key: 'status', // 状态
  val: '0',  // 状态值
  txtStyle: 'red' // 设置文字颜色也可以用“#ef473a”
}

# 4.6 新增翻页选中功能(2020-02-27 添加)

页面代码新增::row-key 属性和 selection-change 复选框事件

<p-table
  :table="table"
  @size-change="handlesSizeChange"
  @page-change="handlesCurrentChange"
  :row-key="getRowKey"
  @selection-change="handlesSelectionChange"
/>

js 代码

// 获取列表数据的唯一标识
 getRowKey (row) {
   return row.id
 },
 // 选中的数据
 handlesSelectionChange (val) {
   this.chosenIds = val.map(item => item.id)
 },

==注意:==(参考配置参数) firstColumn: { type: 'selection', isPaging: true }, type: 'selection' 表复选框 isPaging: true 表可以跨页勾选

# 4.7 新增隐藏某列及某单元格内容过长是否换行(还是隐藏并有 tip 提示)

{ prop: 'name', label: '姓名', minWidth: '100', sort: true, noShowColumn: true },
// 设置noShowColumn为true时,表格隐藏当前列
{ prop: 'address', label: '地址', minWidth: '220', sort: true, noShowTip: true },
  // 设置noShowTip为true时,表单元格换行显示

# 4.8 新增行内操作按钮权限配置

operator: [
        {
          text: '编辑',
          type: 'primary',
          resCode: 'ent-account-edit',
          fun: this.handleEdit
        }
      ],
// 解析:根据后台返回按钮资源中若无“ent-account-edit”资源,此按钮将不会显示

# 关于 element-ui el-table 提供的一些方法,样式如何添加

按照 el-table 写法直接使用即可,无需其他配置