![](https://img.kancloud.cn/16/0a/160a8364dc0892ec337d208d57b88a1a_1867x528.png)
### 参数说明:
| 参数 | 说明 | 备注 | 类型
| :---- | :--------------------------- | :-------------- |---
| headerFile| 列表表头 | |Array
| tableData| 列表数据 | |Array
| page| 分页对象| page:{currentPage :1,pageSize:10,totalResult:0} | Object
| buttonListRight| 右上角按钮| { action: "add", type: "primary", icon: "el-icon-plus", title: "新建",tickData:true } | Array
| buttonListRow| 列表行内按钮 | {action:"ejectDialog",icon: "el-icon-edit-outline"} |Array
| idKey| 唯一标识 |默认id(可不传) |String
| checkBox | 复选框是否显示 | true或false | Boolean
| customColumn| 定制列 | true或false | Boolean
| selectData| 下拉框值 | {field : [ {key : '1',label:'测试'} ] } | Object
| browseButtonHeader| 按钮表头 | {exType: [ { field: "id", title: "ID" } ] } | Object
| operationHide| 操作栏隐藏 | ejectDialog: [ {condition: ["1"],field: "fileStatus",}], | Object
| signRule| 样式修改 | 字段属性:pageType: "sign"才生效;格式: approvalStatusVal:[ { type : 1,comparison: "待审批",css : {color: "#808080",}] | Object
|sumField | 字段合计 |需要合计的字段: ['number'] | Array
|treeNode| 树形列表参数 | ["label"]| Array
*****
### 字段属性:
| 属性 | 说明 | 备注 | 类型
| :---- | :--------------------------- | -------------- |---
| field| 字段 | |String
| title| 字段显示名 | |String
| pageType| 类型 | 可选值:'link'、'sign'、 'definedColumn'|String
| fixed| 固定列 | 可选值:'right'、'left'|String
| align| 内容位置 | 可选值: 'right'、'left'、'center'|String
| width| 列宽 | 百分比或像素|String
| slotName| 插槽名 | 自定义|String
| pageIsHide| 显示隐藏 | ture隐藏|Boolean
| search| 是否搜索 | |Boolean
*****
### 方法说明:
| 方法| 说明 | 备注
| :-- | :--------------------------- | :--------------
| customEventHook| 列表按钮方法 | |
| pageEventHook| 分页方法 | |Array
| page| 分页对象| page:{currentPage :1,pageSize:10,totalResult:0}
| buttonListRight| 右上角按钮| { action: "add", type: "primary", icon: "el-icon-plus", title: "新建" }
| buttonListRow| 列表行内按钮 | {action:"ejectDialog",icon: "el-icon-edit-outline"}
| pageSearch| 搜索回调 | 字段属性search为true时显示
| eventField| 字段链接点击回调 | pageType: "link"才生效
| browseButtonAction| 系统按钮回调 | 两个参数:data:分页参数;callback:回调方法
*****
### 按钮参数说明:
| 名称 | 说明 | 备注 | 类型
| :---- | :--------------------------- | -------------- |---
| action| 方法名(唯一) | |String
| type| 按钮类型 |primary(普通) success(成功) info(信息) warning(警告) danger(危险) |String
| icon| 按钮图标 |参考element ui的icon |String
| title| 按钮名称 | |String
| tickData| 是否返回勾选数据 | |Boolean
| visible| 显示隐藏 | |Boolean
*****
### 按钮方法参数说明:
| 名称 | 说明 | 备注
| :---- | :--------------------------- | -------------- |---
| action| 方法名 |
| row| 当前行参数 |
| tickData| 勾选数据 |
#### 功能说明:
1.按钮方法示例(customEventHook):
```
customEventHook(event) {
switch (event.action) {
// 顶部按钮方法
case "add":
this.add();
}
},
```
2.分页功能(pageEventHook):
```
pageChange(type) {
this.queryInfo.page = type.currentPage;
this.queryInfo.row = type.pageSize;
this.getData();
},
```
3.操作栏隐藏(operationHide):
```
operationHide: {
//操作栏方法
ejectDialog: [
{
condition: ["1"],//多个条件或的关系
field: "fileStatus",
},
],
},
```
效果:状态为1时,隐藏操作栏按钮
![](https://img.kancloud.cn/0e/03/0e0386b6659c0835e57b299179f569c1_1809x113.png)
4.搜索回调(pageSearch):
```
案例:
pageSearch(event) {
console.log(event);
this.clearQueryInfo();
this.queryInfo.page = event.currentPage;
this.queryInfo.row = event.pageSize;
let searchVal = event.search;
let temp = Object.keys(event.search);
temp.forEach(item => {
this.queryInfo.searchList.forEach(items => {
if (item == items.fieldName) {
items.value1 = searchVal[item];
}
});
});
this.getData();
},
```
![](https://img.kancloud.cn/97/a4/97a410e63e174591b417f5896124682c_628x161.png)
5.样式匹配(signRule):
```
signRule: {
fileStatusLabel: [
{
type: 1, //等于
comparison: "未提交", //比较的值
css: {
color: "#808080"
}
},
{
type: 1,
comparison: "归档",
css: {
color: "orange"
}
},
{
type: 1,
comparison: "退回",
css: {
color: "#00ff00"
}
}
],
}
```
![](https://img.kancloud.cn/f2/0a/f20a58651180ae66ba6f7191f3f1b883_1874x424.png)
6.链接点击(eventField):
```
eventField(event){
console.log(event);
},
```
结果:返回字段名、值和当前行数据
![](https://img.kancloud.cn/24/71/247162ef963740d7f2b6e9916523b30a_2123x453.png)
7.合计(sumField ):
![](https://img.kancloud.cn/bb/e5/bbe5b5122b637fb346ec3bb078f92d32_1523x641.png)
8.自定义插槽:插槽名对应字段属性中注册的名称
```
<page-tp
ref="page"
:headerField="headerFile"
:tableData="formData"
:page="page5"
:buttonListRight="buttonListRight"
@customEventHook="customEventHook"
@pageEventHook="pageChange"
@search="pageSearch"
>
<template #operation="{ row, field, item }">
<el-tag
v-if="['1', '8', '9'].indexOf(row.fileStatus) != -1"
class="cursorType"
type="primary"
@click="ejectDialogEdit(row)"
>编辑</el-tag>
</template>
</page-tp>
```
![](https://img.kancloud.cn/6c/be/6cbe74db02ea62a85d62929683386f5b_362x525.png)
9.树形列表
```
<page-tp :header-field="headerField" :table-data="data" :treeNode="treeNode"/>
参数:
treeNode: ["label"],
headerField: [{ field: "label", title: "姓名" }],
data: [
{
label: "一级 1",
children: [
{
label: "二级 1-1",
children: [
{
label: "三级 1-1-1",
},
],
},
],
},
]
```
效果:
![](https://img.kancloud.cn/c8/41/c8410939df8241ced7d1f5a4102a119f_440x234.png)