|
|
@@ -23,7 +23,7 @@
|
|
|
:border="emTableList.border === false ? false : true"
|
|
|
@filter-change="filterColHandler"
|
|
|
>
|
|
|
- <el-table-column v-if="emTableList.isMultiple" type="selection" :fixed="true" align="center"></el-table-column>
|
|
|
+ <el-table-column v-if="emTableList.isMultiple" type="selection" :selectable="emTableList.selectable" :fixed="true" align="center"></el-table-column>
|
|
|
<el-table-column
|
|
|
v-for="(item, index) in emTableList.showColumns"
|
|
|
v-if="isShow(item) && item.stype !== 'checkbox'"
|
|
|
@@ -39,11 +39,10 @@
|
|
|
:filters="tcpFilters(item)"
|
|
|
:column-key="item.field ? item.field : ''"
|
|
|
:filter-multiple="item.filterMultiple ? item.filterMultiple : false"
|
|
|
- :formatter="item.formatter ? formatter : formatterDef"
|
|
|
:class-name="item.className"
|
|
|
>
|
|
|
<!--list属性-->
|
|
|
- <template v-if="item.stype == 'list'">
|
|
|
+ <template v-if="item.stype === 'list'">
|
|
|
<el-table-column
|
|
|
v-for="(sub, subIndex) in item.sub"
|
|
|
:key="subIndex"
|
|
|
@@ -55,7 +54,6 @@
|
|
|
:sortable="sub.sort ? sub.sort : false"
|
|
|
:fixed="sub.fixed ? sub.fixed : false"
|
|
|
:show-overflow-tooltip="sub.tooltip === false ? false : true"
|
|
|
- :formatter="sub.formatter ? formatter : formatterDef"
|
|
|
:filters="item.filters"
|
|
|
:column-key="item.field"
|
|
|
:filter-multiple="item.filterMultiple ? item.filterMultiple : false"
|
|
|
@@ -107,8 +105,17 @@
|
|
|
@click="emTableList.tableBtnEvent(item, { type: item.explain })"
|
|
|
></el-button>
|
|
|
<span class="icon-name icon-info-name">{{ item.name }}</span>
|
|
|
+ <el-button
|
|
|
+ v-if="item.hasOwnProperty('headerBtn') && item.headerBtn"
|
|
|
+ :icon="item.headerBtn.icon"
|
|
|
+ :type="item.headerBtn.type ? item.headerBtn.type : 'text'"
|
|
|
+ style="padding: 0; margin-left: 4px;color:#409EFF"
|
|
|
+ circle
|
|
|
+ @click="emTableList.tableBtnEvent(item, { type: item.headerBtn.eventType })"
|
|
|
+ ></el-button>
|
|
|
+
|
|
|
</template>
|
|
|
- <template slot-scope="scope" >
|
|
|
+ <template slot-scope="scope">
|
|
|
<!--按钮-->
|
|
|
<template v-if="item.stype === 'opt'">
|
|
|
<el-button
|
|
|
@@ -123,7 +130,6 @@
|
|
|
:circle="opt.shape === 'circle' ? true : false"
|
|
|
:disabled="opt.hasOwnProperty('disabled') ? opt.disabled : false"
|
|
|
@click="optCellData(scope.row, opt)"
|
|
|
- v-shortcutKeys="{key:opt.type ==='detail'?'d':''}"
|
|
|
>
|
|
|
{{ opt.name }}
|
|
|
</el-button>
|
|
|
@@ -498,11 +504,10 @@
|
|
|
<!--formatter-style属性-->
|
|
|
<span
|
|
|
v-else-if="item.stype == 'formatter-style'"
|
|
|
- v-html="formatterStyle(scope.row, item)"
|
|
|
+ v-html="formatter(scope.row, item,true)"
|
|
|
></span>
|
|
|
- <span v-else>{{ scope.row[item.field] | nullMap}}</span>
|
|
|
+ <span v-else>{{ formatter(scope.row,item) | nullMap}}</span>
|
|
|
</template>
|
|
|
-
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</template><script>
|
|
|
@@ -551,6 +556,9 @@ export default {
|
|
|
nullMap:nullView
|
|
|
},
|
|
|
computed: {
|
|
|
+ multipleTable() {
|
|
|
+ return this.$refs.multipleTable
|
|
|
+ },
|
|
|
defaultSort(){
|
|
|
const defsort = this.showColumns.find(f=>typeof(f.sort) === 'string')
|
|
|
return defsort && {prop: defsort.field, order: defsort.sort}
|
|
|
@@ -569,6 +577,18 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
+ bus.$on("toggleRowSelection", (row, selected) => {
|
|
|
+ if(this.emTableList.isMultiple) {
|
|
|
+ this.$refs.multipleTable.toggleRowSelection(row, selected);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ bus.$on("clearSelection", () => {
|
|
|
+ this.$refs.multipleTable.clearSelection();
|
|
|
+ });
|
|
|
+ bus.$on("toggleAllSelection", () => {
|
|
|
+ this.$refs.multipleTable.toggleAllSelection();
|
|
|
+ });
|
|
|
+
|
|
|
if (this.isMultipleTables) {
|
|
|
// 监听兄弟组件选中值变化
|
|
|
bus.$on("checkedEventCardToTable", (data) => {
|
|
|
@@ -804,17 +824,13 @@ export default {
|
|
|
|
|
|
this.optCellData(row, obj);
|
|
|
},
|
|
|
- formatterStyle(row, item) {
|
|
|
+ formatter(row, item,vHtml=false) {
|
|
|
if (item.formatter) {
|
|
|
- return selectListToValue(this, item.formatter, row[item.field], true);
|
|
|
+ return selectListToValue(this, item.formatter, row[item.field], vHtml);
|
|
|
} else {
|
|
|
- return "";
|
|
|
+ return row[item.field];
|
|
|
}
|
|
|
},
|
|
|
- //格式化
|
|
|
- formatter(row, column, cellValue, index) {
|
|
|
- return formatterSelf(this, row, column, cellValue, index);
|
|
|
- },
|
|
|
// table图片地址拼接
|
|
|
tableImageURL(item, url) {
|
|
|
if (isHttpHeaderURL(url)) {
|