|
@@ -1,6 +1,17 @@
|
|
|
<template>
|
|
|
+ <!-- TODO 多选回显显示有问题.没显示对号 row-key="id" -->
|
|
|
<div id="data-table">
|
|
|
- <el-table :data="data" border stripe size="small" :max-height="height !== null ? height : ''">
|
|
|
+ <el-table
|
|
|
+ ref="table"
|
|
|
+ :row-key="getRowKey"
|
|
|
+ :data="data"
|
|
|
+ border
|
|
|
+ stripe
|
|
|
+ size="small"
|
|
|
+ :max-height="height !== null ? height : ''"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="55" v-if="select" prop="id" :reserve-selection="true"> </el-table-column>
|
|
|
<template v-for="(item, index) in fields">
|
|
|
<el-table-column :key="index" align="center" :label="item.label" :prop="item.prop" :formatter="toFormatter"></el-table-column>
|
|
|
</template>
|
|
@@ -37,9 +48,13 @@ export default {
|
|
|
opera: { type: Array, default: () => [] },
|
|
|
toFormat: null,
|
|
|
height: null,
|
|
|
+ select: { type: Boolean, default: false },
|
|
|
+ selected: { type: Array, default: () => [] },
|
|
|
},
|
|
|
components: {},
|
|
|
- data: () => ({}),
|
|
|
+ data: () => ({
|
|
|
+ pageSelected: [],
|
|
|
+ }),
|
|
|
created() {},
|
|
|
computed: {},
|
|
|
methods: {
|
|
@@ -79,6 +94,22 @@ export default {
|
|
|
this.$emit(method, { data, index });
|
|
|
}
|
|
|
},
|
|
|
+ handleSelectionChange(rows) {
|
|
|
+ console.log(rows);
|
|
|
+ this.pageSelected = rows;
|
|
|
+ this.$emit(`handleSelect`, rows);
|
|
|
+ },
|
|
|
+ getRowKey(row) {
|
|
|
+ return row.id;
|
|
|
+ },
|
|
|
+ setSelectTable() {
|
|
|
+ this.selected.forEach(val => {
|
|
|
+ this.$refs.table && this.$refs.table.toggleRowSelection(val, true);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ selectReset() {
|
|
|
+ this.$refs.table.clearSelection();
|
|
|
+ },
|
|
|
display(item, row) {
|
|
|
let display = _.get(item, `display`, true);
|
|
|
if (display === true) return true;
|
|
@@ -88,6 +119,16 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
},
|
|
|
+ watch: {
|
|
|
+ selected: {
|
|
|
+ handler(val) {
|
|
|
+ if (val.length > 0) {
|
|
|
+ this.setSelectTable(val);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true,
|
|
|
+ },
|
|
|
+ },
|
|
|
};
|
|
|
</script>
|
|
|
|