feat: 列表自定义列

1.列表自定义表头的列
2.修复一些bug
3.将后端接口路径提取为配置文件
This commit is contained in:
chenjinsong
2020-01-08 22:19:46 +08:00
parent 7c0e5dc400
commit 14500d6a30
19 changed files with 975 additions and 267 deletions

View File

@@ -94,14 +94,24 @@
border
>
<el-table-column
v-for="(item, index) in tableTitle"
v-for="(item, index) in tablelable"
v-if="item.show"
min-width="110"
:width="item.width"
:key="`col_${index}`"
:label="item.label"
>
{{item}}
<template slot="header" slot-scope="scope">
<span v-if="index==0">
<span @click.stop="elementsetShow('shezhi',$event)">
<i class="el-icon-setting"></i>
</span>
<span>{{item.label}}</span>
</span>
<div v-else>
<span>{{item.label}}</span>
</div>
</template>
<template slot-scope="scope" :column="item">
<div v-if="item.prop=='ID'">
<span>{{scope.row.id}}</span>
@@ -169,6 +179,12 @@
@sendStateData="tabControl"></asset-add-unit>
<asset-edit-unit :edit-unit-show='editUnitShow' @refreshData="flushData" @sendStateData="tabControl"
ref="assetEditUnit"></asset-edit-unit>
<element-set
v-clickoutside="elementsetHide"
:dropCol="dropCol"
@tablelable="tablelabelEmit"
ref="elementset"
></element-set>
</div>
</template>
@@ -201,6 +217,8 @@
},
searchLabel: {}, //搜索参数
checkList: [],
tablelable: [],
dropCol: [],
tableTitle: [
{
label: this.$t("asset.tableTitle.id"),
@@ -355,6 +373,36 @@
},
methods: {
elementsetShow(s, e) {
var eventfixed = {
shezhi: 0,
screen: 0
};
eventfixed[s] = 1;
e.preventDefault();
this.$store.commit('setHeaderTable', this.tablelable);
this.$store.commit('setEventfixed', eventfixed);
const h = document.documentElement.clientHeight;
const w = document.documentElement.clientWidth;
const dw = this.$refs.elementset.$el.offsetWidth;
const dh = this.$refs.elementset.$el.offsetHeight;
let positionx =
e.clientX + dw <= w - 10 ? e.clientX - 250 : e.clientX - 250 - dw;
let positiony =
e.clientY + dh <= h - 10
? e.clientY - 70
: e.clientY - 70 - (e.clientY + dh - h);
this.$store.commit('setPosition', { positionx, positiony });
},
elementsetHide() {
//悬浮点击空白隐藏
this.$refs.elementset.elementsetHide();
},
tablelabelEmit(data) {
//获取子组件传过来的参数
this.$store.commit('setHeaderTable', data);
this.tablelable = data;
},
ssss(id, sn) {
let routeData = this.$router.resolve({
name: "terminal",
@@ -559,9 +607,12 @@
this.getUserData();
this.getAssetData();
this.getIDCOptionData();
window.onresize = () => {
this.tableHeight = document.documentElement.clientHeight - 200;
}
this.tablelable = localStorage.getItem("nz-tableTitle-" + localStorage.getItem("nz-username") + "-" + this.$route.path)
? JSON.parse(localStorage.getItem("nz-tableTitle-" + localStorage.getItem("nz-username") + "-" + this.$route.path))
: this.tableTitle;
this.dropCol = localStorage.getItem("nz-tableTitle-" + localStorage.getItem("nz-username") + "-" + this.$route.path)
? JSON.parse(localStorage.getItem("nz-tableTitle-" + localStorage.getItem("nz-username") + "-" + this.$route.path))
: this.tableTitle;
}
}
</script>