|
@@ -1,10 +1,10 @@
|
|
|
<template>
|
|
|
- <!-- v-if="innerValue.length" -->
|
|
|
<el-table
|
|
|
v-bind="$attrs"
|
|
|
v-on="$listeners"
|
|
|
:data="innerValue"
|
|
|
border
|
|
|
+ ref="superTable"
|
|
|
class="el-super-table"
|
|
|
>
|
|
|
<slot></slot>
|
|
@@ -64,7 +64,11 @@
|
|
|
:visible.sync="drawer"
|
|
|
>
|
|
|
<el-row :gutter="20" style="margin: 0">
|
|
|
- <el-draggable v-model="columns" :group="{ item: 'key' }">
|
|
|
+ <el-draggable
|
|
|
+ v-model="columns"
|
|
|
+ :group="{ item: 'key' }"
|
|
|
+ @change="changeColumns"
|
|
|
+ >
|
|
|
<el-col
|
|
|
v-for="({ item }, index) in columns"
|
|
|
:key="index"
|
|
@@ -84,11 +88,16 @@
|
|
|
v-model="item.hidden"
|
|
|
:size="$attrs.size"
|
|
|
style="margin: 0 15px 0 0"
|
|
|
+ @change="changeColumns"
|
|
|
>
|
|
|
<el-radio-button :label="true">显</el-radio-button>
|
|
|
<el-radio-button :label="false">隐</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
- <el-radio-group v-model="item.fixed" :size="$attrs.size">
|
|
|
+ <el-radio-group
|
|
|
+ v-model="item.fixed"
|
|
|
+ :size="$attrs.size"
|
|
|
+ @change="changeColumns"
|
|
|
+ >
|
|
|
<el-radio-button :label="false">不</el-radio-button>
|
|
|
<el-radio-button label="left">左</el-radio-button>
|
|
|
<el-radio-button label="right">右</el-radio-button>
|
|
@@ -135,7 +144,16 @@ export default {
|
|
|
ElComputedInputV2: () => import("@/components/computed-input-v2/index.vue"),
|
|
|
},
|
|
|
data() {
|
|
|
- return { drawer: false };
|
|
|
+ const loaclColumns = localStorage.getItem(
|
|
|
+ this.$parent.$parent.$options.name
|
|
|
+ );
|
|
|
+ const Columns = !!loaclColumns
|
|
|
+ ? JSON.parse(loaclColumns)
|
|
|
+ : this.$props.columns;
|
|
|
+ return {
|
|
|
+ drawer: false,
|
|
|
+ Columns: Columns,
|
|
|
+ };
|
|
|
},
|
|
|
computed: {
|
|
|
innerValue: {
|
|
@@ -148,12 +166,20 @@ export default {
|
|
|
},
|
|
|
showColumns: {
|
|
|
get() {
|
|
|
- return this.columns.filter(({ item }) => item.hidden);
|
|
|
+ return this.Columns.filter(({ item }) => item.hidden);
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
watch: {},
|
|
|
- methods: {},
|
|
|
+ methods: {
|
|
|
+ changeColumns() {
|
|
|
+ this.$refs.superTable.doLayout();
|
|
|
+ localStorage.setItem(
|
|
|
+ this.$parent.$parent.$options.name,
|
|
|
+ JSON.stringify(this.columns)
|
|
|
+ );
|
|
|
+ },
|
|
|
+ },
|
|
|
created() {},
|
|
|
mounted() {},
|
|
|
destroyed() {},
|