|
@@ -3,7 +3,15 @@
|
|
<el-form :model="searchInfo" :inline="true" style="padding:0.9rem 1.875rem ;" size="mini" v-if="useFilter">
|
|
<el-form :model="searchInfo" :inline="true" style="padding:0.9rem 1.875rem ;" size="mini" v-if="useFilter">
|
|
<el-form-item v-for="(item, index) in filterList" :key="index">
|
|
<el-form-item v-for="(item, index) in filterList" :key="index">
|
|
<template v-if="item.filter === 'select'">
|
|
<template v-if="item.filter === 'select'">
|
|
- <el-select v-model="searchInfo[item.prop]" size="mini" clearable filterable :placeholder="`请选择${item.label}`" @clear="toClear(item.prop)">
|
|
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="searchInfo[item.prop]"
|
|
|
|
+ size="mini"
|
|
|
|
+ clearable
|
|
|
|
+ filterable
|
|
|
|
+ :placeholder="`请选择${item.label}`"
|
|
|
|
+ @clear="toClear(item.prop)"
|
|
|
|
+ @change="data => filterReturn(data, item)"
|
|
|
|
+ >
|
|
<slot name="options" v-bind="{ item }"></slot>
|
|
<slot name="options" v-bind="{ item }"></slot>
|
|
</el-select>
|
|
</el-select>
|
|
</template>
|
|
</template>
|
|
@@ -44,25 +52,27 @@
|
|
>
|
|
>
|
|
<el-table-column type="selection" width="55" v-if="select" prop="id" :reserve-selection="true"> </el-table-column>
|
|
<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">
|
|
<template v-for="(item, index) in fields">
|
|
- <template v-if="item.custom">
|
|
|
|
- <el-table-column :key="index" align="center" :label="item.label" v-bind="item.options">
|
|
|
|
- <template v-slot="{ row }">
|
|
|
|
- <slot name="custom" v-bind="{ item, row }"></slot>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </template>
|
|
|
|
- <template v-else>
|
|
|
|
- <el-table-column
|
|
|
|
- :key="index"
|
|
|
|
- align="center"
|
|
|
|
- :label="item.label"
|
|
|
|
- :prop="item.prop"
|
|
|
|
- :formatter="toFormatter"
|
|
|
|
- sortable
|
|
|
|
- v-bind="item.options"
|
|
|
|
- :show-overflow-tooltip="item.showTip"
|
|
|
|
- >
|
|
|
|
- </el-table-column>
|
|
|
|
|
|
+ <template v-if="!item.notable">
|
|
|
|
+ <template v-if="item.custom">
|
|
|
|
+ <el-table-column :key="index" align="center" :label="item.label" v-bind="item.options">
|
|
|
|
+ <template v-slot="{ row }">
|
|
|
|
+ <slot name="custom" v-bind="{ item, row }"></slot>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </template>
|
|
|
|
+ <template v-else>
|
|
|
|
+ <el-table-column
|
|
|
|
+ :key="index"
|
|
|
|
+ align="center"
|
|
|
|
+ :label="item.label"
|
|
|
|
+ :prop="item.prop"
|
|
|
|
+ :formatter="toFormatter"
|
|
|
|
+ sortable
|
|
|
|
+ v-bind="item.options"
|
|
|
|
+ :show-overflow-tooltip="item.showTip"
|
|
|
|
+ >
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </template>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
</template>
|
|
<template v-if="opera.length > 0">
|
|
<template v-if="opera.length > 0">
|
|
@@ -254,6 +264,10 @@ export default {
|
|
toClear(prop) {
|
|
toClear(prop) {
|
|
delete this.searchInfo[prop];
|
|
delete this.searchInfo[prop];
|
|
},
|
|
},
|
|
|
|
+ filterReturn(data, item) {
|
|
|
|
+ let { prop, filterReturn } = item;
|
|
|
|
+ if (filterReturn) this.$emit('filterReturn', { data, prop });
|
|
|
|
+ },
|
|
},
|
|
},
|
|
watch: {
|
|
watch: {
|
|
selected: {
|
|
selected: {
|