3 changed files with 128 additions and 9 deletions
-
104src/components/compTable.vue
-
3src/views/Home.vue
-
30src/views/fee-settings/ItemResultTemplate.vue
@ -0,0 +1,104 @@ |
|||
<template> |
|||
<el-table |
|||
:data="tableData" |
|||
size="medium" |
|||
fit |
|||
:header-cell-style="{ |
|||
height: '40px', |
|||
padding: '0', |
|||
background: '#f7f9fa', |
|||
'font-size': '16px', |
|||
color: '#8590a6', |
|||
}" |
|||
|
|||
ref="multipleTable" |
|||
|
|||
@sort-change="handleSort" |
|||
@filter-change="filterHandler" |
|||
@row-click="handleRowClick" |
|||
> |
|||
<el-table-column |
|||
v-for="(th, key) in tableHeader" |
|||
:key="key" |
|||
:prop="th.prop" |
|||
:label="th.label" |
|||
:fixed="th.fixed" |
|||
:sortable="th.sortable ? 'custom' : false" |
|||
:filters="th.filters" |
|||
:column-key="th.columnKey" |
|||
:filtered-value="th.filteredValue" |
|||
:filter-multiple="th.filterMultiple" |
|||
:min-width="th.minWidth" |
|||
|
|||
> |
|||
<template slot-scope="scope"> |
|||
<ex-slot |
|||
v-if="th.render" |
|||
:render="th.render" |
|||
:row="scope.row" |
|||
:index="scope.$index" |
|||
:column="th" |
|||
/> |
|||
<span v-else>{{ scope.row[th.prop] || "-" }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</template> |
|||
|
|||
<script> |
|||
// 自定义内容的组件 |
|||
var exSlot = { |
|||
functional: true, |
|||
props: { |
|||
row: Object, |
|||
render: Function, |
|||
index: Number, |
|||
column: { |
|||
type: Object, |
|||
default: null, |
|||
}, |
|||
}, |
|||
render: (h, data) => { |
|||
const params = { |
|||
row: data.props.row, |
|||
index: data.props.index, |
|||
}; |
|||
if (data.props.column) params.column = data.props.column; |
|||
return data.props.render(h, params); |
|||
}, |
|||
}; |
|||
export default { |
|||
name: "comp-table", |
|||
components: { exSlot }, |
|||
props: { |
|||
// 表格数据 |
|||
tableData: { |
|||
type: Array, |
|||
default: function () { |
|||
return []; |
|||
}, |
|||
}, |
|||
// 表头数据 |
|||
tableHeader: { |
|||
type: Array, |
|||
default: function () { |
|||
return []; |
|||
}, |
|||
}, |
|||
}, |
|||
methods: { |
|||
// 排序事件 |
|||
handleSort(sort) { |
|||
this.$emit("sort-events", sort); |
|||
}, |
|||
// 筛选事件 |
|||
filterHandler(filters) { |
|||
this.$emit("filter-events", filters); |
|||
}, |
|||
// 某一行被点击 |
|||
handleRowClick(row) { |
|||
this.$emit("click-events", row); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue