vsyswin-ui 0.3.1 → 0.3.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,589 +1,540 @@
1
1
  <template>
2
- <div class="syswin-table" style="position: relative;" :style="{height}">
3
- <!--筛选下拉-->
4
- <drag-set v-if="showDragSet" :listConf='columnList' @save="dragChange" />
5
- <el-table
6
- border
7
- stripe
8
- class="cusTable"
9
- :row-key="rowKey"
10
- :show-summary="showSummary"
11
- :summary-method="customSum ? getSummaries : getSummariesNum"
12
- ref="cusTable"
13
- height='100%'
14
- :indent="indent"
15
- :lazy="lazy"
16
- :load="load"
17
- :tree-props="treeProps"
18
- v-bind="attrs"
19
- :default-expand-all="defaultExpandAll"
20
- :expand-row-keys="expandRowKeys"
21
- @sort-change="handleSortChange"
22
- @selection-change="handleSelectionChange"
23
- @select-all="handleSelectAll"
24
- @select="handleSelect"
25
- @expand-change="handleExpandChange"
26
- @header-dragend="handleHeaderDragend"
27
- >
28
- <slot name="start"></slot>
29
- <el-table-column
30
- v-for="(item, index) in columnData"
31
- :key="item.prop + index"
32
- :prop="item.prop"
33
- :label="item.label"
34
- :width="item.width || 'auto'"
35
- :min-width="item.minWidth"
36
- :fixed="item.fixed"
37
- :align="item.align"
38
- :sortable="item.sortable"
39
- :show-overflow-tooltip="item.tooltip"
40
- :resizable="item.resizable"
41
- :header-align="item.headerAlign"
42
- >
43
- <template #header>
44
- <template v-if="!item.slotHeader">
45
- <span v-if="!item.filterType">{{item.label}}</span>
46
- <span v-else>
47
- {{item.label}}
48
- <!-- 多选 -->
49
- <el-popover
50
- v-if="item.filterType === 'multiple'"
51
- placement="bottom"
52
- :ref="`${item.prop}`"
53
- v-model="item.visible"
54
- trigger="click"
55
- width="160">
56
- <div style="max-height:300px;overflow: auto;">
57
- <el-checkbox-group v-model="item.value">
58
- <div class="filterItem" v-for="(x, index) in item.filters || []" :key="index" :title="x.label">
59
- <el-checkbox :label="x.value">{{x.label}}</el-checkbox>
60
- </div>
61
- </el-checkbox-group>
62
- </div>
63
- <div style="text-align: center;margin-top:10px">
64
- <el-button type="primary" size="mini" @click="item.visible = false;handleSearch(item)">确定</el-button>
65
- <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
66
- </div>
67
- <i class="iconfont icon-filter-fill filter-icon" slot="reference" :class="{'selected-color': item.value && item.value.length}" @click.stop=""></i>
68
- </el-popover>
69
- <!-- 日期选择 -->
70
- <el-popover
71
- v-else-if="item.filterType === 'daterange'"
72
- placement="bottom"
73
- :ref="`${item.prop}`"
74
- v-model="item.visible"
75
- trigger="click"
76
- width="360">
77
- <el-date-picker
78
- v-model="item.value"
79
- type="daterange"
80
- size="small"
81
- range-separator=""
82
- start-placeholder="开始日期"
83
- end-placeholder="结束日期">
84
- </el-date-picker>
85
- <div style="text-align: center;margin-top:10px">
86
- <el-button type="primary" size="mini" @click="item.visible = false;handleSearch(item)">确定</el-button>
87
- <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
88
- </div>
89
- <i class="iconfont icon-filter-fill filter-icon" slot="reference" :class="{'selected-color': item.value && item.value.length}" @click.stop=""></i>
90
- </el-popover>
91
- <!-- 月份选择 -->
92
- <el-popover
93
- v-else-if="item.filterType === 'monthrange'"
94
- placement="bottom"
95
- :ref="`${item.prop}`"
96
- v-model="item.visible"
97
- trigger="click"
98
- width="300">
99
- <el-date-picker
100
- v-model="item.value"
101
- type="monthrange"
102
- size="small"
103
- range-separator="至"
104
- start-placeholder="开始月份"
105
- end-placeholder="结束月份">
106
- </el-date-picker>
107
- <div style="text-align: center;margin-top:10px">
108
- <el-button type="primary" size="mini" @click="item.visible = false;handleSearch(item)">确定</el-button>
109
- <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
110
- </div>
111
- <i class="iconfont icon-filter-fill filter-icon" slot="reference" :class="{'selected-color': item.value && item.value.length}" @click.stop=""></i>
112
- </el-popover>
113
- <!-- 输入框 -->
114
- <el-popover
115
- v-else-if="item.filterType === 'text'"
116
- placement="bottom"
117
- :ref="`${item.prop}`"
118
- v-model="item.visible"
119
- trigger="click"
120
- width="160">
121
- <el-input v-model="item.value" clearable size="small"></el-input>
122
- <div style="text-align: center;margin-top:10px">
123
- <el-button type="primary" size="mini" @click="item.visible = false;handleSearch(item)">确定</el-button>
124
- <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
125
- </div>
126
- <i class="iconfont icon-filter-fill filter-icon" slot="reference" :class="{'selected-color': item.value}" @click.stop=""></i>
127
- </el-popover>
128
- <!-- 单选 -->
129
- <el-popover
130
- v-else-if="item.filterType === 'single'"
131
- placement="bottom"
132
- :ref="`${item.prop}`"
133
- v-model="item.visible"
134
- trigger="click"
135
- width="160">
136
- <div style="max-height:300px;overflow: auto;">
137
- <el-radio-group v-model="item.value">
138
- <div class="filterItem" v-for="(x, index) in item.filters || []" :key="index" :title="x.label">
139
- <el-radio :label="x.value">{{x.label}}</el-radio>
140
- </div>
141
- </el-radio-group>
142
- </div>
143
- <div style="text-align: center;margin-top:10px">
144
- <el-button type="primary" size="mini" @click="item.visible = false;handleSearch(item)">确定</el-button>
145
- <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
146
- </div>
147
- <i class="iconfont icon-filter-fill filter-icon" slot="reference" :class="{'selected-color': item.value || item.value === 0}" @click.stop=""></i>
148
- </el-popover>
149
- </span>
150
- </template>
151
- <!-- 自定义表头 -->
152
- <slot v-else :name="item.slotHeader"></slot>
153
- </template>
154
- <template slot-scope="scope" >
155
- <span v-if="!item.slotCell" :style="item.style" @click="handleColumnClick(scope.row, item)">
156
- {{transContent(scope.row, item.prop) || '-'}}
157
- </span>
158
- <!--自定义表格内容-->
159
- <slot v-else :name="item.slotCell" :row="scope.row" :index="scope.$index"></slot>
160
- </template>
161
- </el-table-column>
162
- <!-- 自定义表尾列 -->
163
- <slot name="end"></slot>
164
- <div slot="empty" class="empty" style="margin-top:22px;">
165
- <noData></noData>
166
- </div>
167
- </el-table>
168
- <div class="sum" v-if="customSum">
169
- <slot name="customSum"></slot>
170
- </div>
171
- <el-dropdown class="sum" @command="changeSumType" v-if="showSummary && data.length && !customSum">
172
- <span class="el-dropdown-link">
173
- {{totalText[sumType]}}<i class="el-icon-arrow-down el-icon--right"></i>
2
+ <div class="syswin-table" style="position: relative;" :style="{ height }">
3
+ <!--筛选下拉-->
4
+ <drag-set v-if="showDragSet" :listConf='columnList' @save="dragChange" />
5
+ <el-table border stripe class="cusTable" :row-key="rowKey" :show-summary="showSummary" size="medium"
6
+ :summary-method="customSum ? getSummaries : getSummariesNum" ref="cusTable" height='100%' :indent="indent"
7
+ :lazy="lazy" :load="load" :tree-props="treeProps" v-bind="attrs" :default-expand-all="defaultExpandAll"
8
+ :expand-row-keys="expandRowKeys" @sort-change="handleSortChange" @selection-change="handleSelectionChange"
9
+ @select-all="handleSelectAll" @select="handleSelect" @expand-change="handleExpandChange"
10
+ @header-dragend="handleHeaderDragend">
11
+ <slot name="start"></slot>
12
+ <el-table-column v-for="(item, index) in columnData" :key="item.prop + index" :prop="item.prop" :label="item.label"
13
+ :width="item.width || 'auto'" :min-width="item.minWidth" :fixed="item.fixed" :align="item.align"
14
+ :sortable="item.sortable" :show-overflow-tooltip="item.tooltip" :resizable="item.resizable"
15
+ :header-align="item.headerAlign">
16
+ <template #header>
17
+ <template v-if="!item.slotHeader">
18
+ <span v-if="!item.filterType">{{ item.label }}</span>
19
+ <span v-else>
20
+ {{ item.label }}
21
+ <!-- 多选 -->
22
+ <el-popover v-if="item.filterType === 'multiple'" placement="bottom" :ref="`${item.prop}`"
23
+ v-model="item.visible" trigger="click" width="160">
24
+ <div style="max-height:300px;overflow: auto;">
25
+ <el-checkbox-group v-model="item.value">
26
+ <div class="filterItem" v-for="(x, index) in item.filters || []" :key="index" :title="x.label">
27
+ <el-checkbox :label="x.value">{{ x.label }}</el-checkbox>
28
+ </div>
29
+ </el-checkbox-group>
30
+ </div>
31
+ <div style="text-align: center;margin-top:10px">
32
+ <el-button type="primary" size="mini" @click="item.visible = false; handleSearch(item)">确定</el-button>
33
+ <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
34
+ </div>
35
+ <i class="iconfont icon-filter-fill filter-icon" slot="reference"
36
+ :class="{ 'selected-color': item.value && item.value.length }" @click.stop=""></i>
37
+ </el-popover>
38
+ <!-- 日期选择 -->
39
+ <el-popover v-else-if="item.filterType === 'daterange'" placement="bottom" :ref="`${item.prop}`"
40
+ v-model="item.visible" trigger="click" width="360">
41
+ <el-date-picker v-model="item.value" type="daterange" size="small" range-separator="至"
42
+ start-placeholder="开始日期" end-placeholder="结束日期">
43
+ </el-date-picker>
44
+ <div style="text-align: center;margin-top:10px">
45
+ <el-button type="primary" size="mini" @click="item.visible = false; handleSearch(item)">确定</el-button>
46
+ <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
47
+ </div>
48
+ <i class="iconfont icon-filter-fill filter-icon" slot="reference"
49
+ :class="{ 'selected-color': item.value && item.value.length }" @click.stop=""></i>
50
+ </el-popover>
51
+ <!-- 月份选择 -->
52
+ <el-popover v-else-if="item.filterType === 'monthrange'" placement="bottom" :ref="`${item.prop}`"
53
+ v-model="item.visible" trigger="click" width="300">
54
+ <el-date-picker v-model="item.value" type="monthrange" size="small" range-separator="至"
55
+ start-placeholder="开始月份" end-placeholder="结束月份">
56
+ </el-date-picker>
57
+ <div style="text-align: center;margin-top:10px">
58
+ <el-button type="primary" size="mini" @click="item.visible = false; handleSearch(item)">确定</el-button>
59
+ <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
60
+ </div>
61
+ <i class="iconfont icon-filter-fill filter-icon" slot="reference"
62
+ :class="{ 'selected-color': item.value && item.value.length }" @click.stop=""></i>
63
+ </el-popover>
64
+ <!-- 输入框 -->
65
+ <el-popover v-else-if="item.filterType === 'text'" placement="bottom" :ref="`${item.prop}`"
66
+ v-model="item.visible" trigger="click" width="160">
67
+ <el-input v-model="item.value" clearable size="small"></el-input>
68
+ <div style="text-align: center;margin-top:10px">
69
+ <el-button type="primary" size="mini" @click="item.visible = false; handleSearch(item)">确定</el-button>
70
+ <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
71
+ </div>
72
+ <i class="iconfont icon-filter-fill filter-icon" slot="reference" :class="{ 'selected-color': item.value }"
73
+ @click.stop=""></i>
74
+ </el-popover>
75
+ <!-- 单选 -->
76
+ <el-popover v-else-if="item.filterType === 'single'" placement="bottom" :ref="`${item.prop}`"
77
+ v-model="item.visible" trigger="click" width="160">
78
+ <div style="max-height:300px;overflow: auto;">
79
+ <el-radio-group v-model="item.value">
80
+ <div class="filterItem" v-for="(x, index) in item.filters || []" :key="index" :title="x.label">
81
+ <el-radio :label="x.value">{{ x.label }}</el-radio>
82
+ </div>
83
+ </el-radio-group>
84
+ </div>
85
+ <div style="text-align: center;margin-top:10px">
86
+ <el-button type="primary" size="mini" @click="item.visible = false; handleSearch(item)">确定</el-button>
87
+ <el-button size="mini" @click="item.visible = false; reset(item)">重置</el-button>
88
+ </div>
89
+ <i class="iconfont icon-filter-fill filter-icon" slot="reference"
90
+ :class="{ 'selected-color': item.value || item.value === 0 }" @click.stop=""></i>
91
+ </el-popover>
174
92
  </span>
175
- <el-dropdown-menu slot="dropdown">
176
- <el-dropdown-item v-if="showPageSum" :command="0">分页合计</el-dropdown-item>
177
- <el-dropdown-item v-if="showChoiseSum" :command="1">选中合计</el-dropdown-item>
178
- <el-dropdown-item :command="2">全部合计</el-dropdown-item>
179
- </el-dropdown-menu>
180
- </el-dropdown>
93
+ </template>
94
+ <!-- 自定义表头 -->
95
+ <slot v-else :name="item.slotHeader"></slot>
96
+ </template>
97
+ <template slot-scope="scope">
98
+ <span v-if="!item.slotCell" :style="item.style" @click="handleColumnClick(scope.row, item)">
99
+ {{ transContent(scope.row, item.prop) || '-' }}
100
+ </span>
101
+ <!--自定义表格内容-->
102
+ <slot v-else :name="item.slotCell" :row="scope.row" :index="scope.$index"></slot>
103
+ </template>
104
+ </el-table-column>
105
+ <!-- 自定义表尾列 -->
106
+ <slot name="end"></slot>
107
+ <div slot="empty" class="empty" style="margin-top:22px;">
108
+ <noData></noData>
109
+ </div>
110
+ </el-table>
111
+ <div class="sum" v-if="customSum">
112
+ <slot name="customSum"></slot>
181
113
  </div>
114
+ <el-dropdown class="sum" @command="changeSumType" v-if="showSummary && data.length && !customSum">
115
+ <span class="el-dropdown-link">
116
+ {{ totalText[sumType] }}<i class="el-icon-arrow-down el-icon--right"></i>
117
+ </span>
118
+ <el-dropdown-menu slot="dropdown">
119
+ <el-dropdown-item v-if="showPageSum" :command="0">分页合计</el-dropdown-item>
120
+ <el-dropdown-item v-if="showChoiseSum" :command="1">选中合计</el-dropdown-item>
121
+ <el-dropdown-item :command="2">全部合计</el-dropdown-item>
122
+ </el-dropdown-menu>
123
+ </el-dropdown>
124
+ </div>
182
125
  </template>
183
126
  <script>
184
127
  import noData from './noData';
185
128
  import dragSet from '../../drag-set';
186
129
  import BigDataTable from './BigDataTable.js'
187
130
  export default {
188
- name: 'SyTable',
189
- props: {
190
- // 列表数据
191
- data: {
192
- type: Array,
193
- required: true,
194
- default: () => []
195
- },
196
- // 列表列
197
- columns: {
198
- type: Array,
199
- default: () => []
200
- },
201
- // 列表高度
202
- height: {},
203
- // 列表内容转换的方法
204
- transContent: {
205
- type: Function,
206
- required: true,
207
- default: () => {}
208
- },
209
- // 是否显示合计功能
210
- showSummary: {
211
- type: Boolean,
212
- default: () => false
213
- },
214
- // 是否显示选中合计: 默认不显示
215
- showChoiseSum: {
216
- type: Boolean,
217
- default: () => false
218
- },
219
- // 是否显示当前页合计: 默认显示
220
- showPageSum: {
221
- type: Boolean,
222
- default: () => true
223
- },
224
- // 自定义合计样式
225
- customSum: {
226
- type: Boolean,
227
- default: () => false
228
- },
229
- // 合计的处理方法
230
- getSummaries: {
231
- type: Function,
232
- default: () => {}
233
- },
234
- // 行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。
235
- rowKey: {
236
- type: String,
237
- default: () => ''
238
- },
239
- // 展示树形数据时,树节点的缩进
240
- indent: {
241
- type: Number,
242
- default: () => 16
243
- },
244
- // 是否懒加载子节点数据
245
- lazy: {
246
- type: Boolean,
247
- default: () => false
248
- },
249
- // 加载子节点数据的函数,lazy 为 true 时生效,函数第二个参数包含了节点的层级信息
250
- load: {
251
- type: Function,
252
- default: () => {}
253
- },
254
- // 渲染嵌套数据的配置选项
255
- treeProps: {
256
- type: Object,
257
- default: () => { return { hasChildren: 'hasChildren', children: 'children' }; }
258
- },
259
- // 是否默认展开所有行,当 Table 包含展开行存在或者为树形表格时有效
260
- defaultExpandAll: {
261
- type: Boolean,
262
- default: () => false
263
- },
264
- // 可以通过该属性设置 Table 目前的展开行,需要设置 row-key 属性才能使用,该属性为展开行的 keys 数组。
265
- expandRowKeys: {
266
- type: Array,
267
- default: () => undefined
268
- },
269
- // 是否显示表格右上角设置功能,默认true
270
- showDragSet: {
271
- type: Boolean,
272
- default: () => true
273
- },
274
- // 合计信息
275
- sumInfo: {
276
- type: Object,
277
- default: () => {}
278
- },
279
- // 功能模块key唯一
280
- nameKey: {
281
- type: String,
282
- default: () => ''
283
- },
284
- // 合计功能保留小数位
285
- decimalNum: {
286
- type: Number,
287
- default: () => 2
288
- },
289
- virtual: Boolean
290
- },
291
- data () {
131
+ name: 'SyTable',
132
+ props: {
133
+ // 列表数据
134
+ data: {
135
+ type: Array,
136
+ required: true,
137
+ default: () => []
138
+ },
139
+ // 列表列
140
+ columns: {
141
+ type: Array,
142
+ default: () => []
143
+ },
144
+ // 列表高度
145
+ height: {},
146
+ // 列表内容转换的方法
147
+ transContent: {
148
+ type: Function,
149
+ required: true,
150
+ default: () => { }
151
+ },
152
+ // 是否显示合计功能
153
+ showSummary: {
154
+ type: Boolean,
155
+ default: () => false
156
+ },
157
+ // 是否显示选中合计: 默认不显示
158
+ showChoiseSum: {
159
+ type: Boolean,
160
+ default: () => false
161
+ },
162
+ // 是否显示当前页合计: 默认显示
163
+ showPageSum: {
164
+ type: Boolean,
165
+ default: () => true
166
+ },
167
+ // 自定义合计样式
168
+ customSum: {
169
+ type: Boolean,
170
+ default: () => false
171
+ },
172
+ // 合计的处理方法
173
+ getSummaries: {
174
+ type: Function,
175
+ default: () => { }
176
+ },
177
+ // 行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时,该属性是必填的。
178
+ rowKey: {
179
+ type: String,
180
+ default: () => ''
181
+ },
182
+ // 展示树形数据时,树节点的缩进
183
+ indent: {
184
+ type: Number,
185
+ default: () => 16
186
+ },
187
+ // 是否懒加载子节点数据
188
+ lazy: {
189
+ type: Boolean,
190
+ default: () => false
191
+ },
192
+ // 加载子节点数据的函数,lazy 为 true 时生效,函数第二个参数包含了节点的层级信息
193
+ load: {
194
+ type: Function,
195
+ default: () => { }
196
+ },
197
+ // 渲染嵌套数据的配置选项
198
+ treeProps: {
199
+ type: Object,
200
+ default: () => { return { hasChildren: 'hasChildren', children: 'children' }; }
201
+ },
202
+ // 是否默认展开所有行,当 Table 包含展开行存在或者为树形表格时有效
203
+ defaultExpandAll: {
204
+ type: Boolean,
205
+ default: () => false
206
+ },
207
+ // 可以通过该属性设置 Table 目前的展开行,需要设置 row-key 属性才能使用,该属性为展开行的 keys 数组。
208
+ expandRowKeys: {
209
+ type: Array,
210
+ default: () => undefined
211
+ },
212
+ // 是否显示表格右上角设置功能,默认true
213
+ showDragSet: {
214
+ type: Boolean,
215
+ default: () => true
216
+ },
217
+ // 合计信息
218
+ sumInfo: {
219
+ type: Object,
220
+ default: () => { }
221
+ },
222
+ // 功能模块key唯一
223
+ nameKey: {
224
+ type: String,
225
+ default: () => ''
226
+ },
227
+ // 合计功能保留小数位
228
+ decimalNum: {
229
+ type: Number,
230
+ default: () => 2
231
+ },
232
+ virtual: Boolean
233
+ },
234
+ data() {
235
+ return {
236
+ totalText: {
237
+ 0: '分页合计',
238
+ 1: '选中合计',
239
+ 2: '全部合计'
240
+ },
241
+ columnList: [], // 表格列数据
242
+ sumType: 2, // 合计类型 0:分页合计;1选中合计;2全部合计
243
+ selection: [], // 当前选中表格数据
244
+ fillData: [],
245
+ };
246
+ },
247
+ components: {
248
+ noData,
249
+ dragSet
250
+ },
251
+ computed: {
252
+ // 表格列数据
253
+ columnData() {
254
+ return this.columnList.filter((item) => item.isShow);
255
+ },
256
+ table() {
257
+ return this.$refs.cusTable;
258
+ },
259
+ attrs() {
260
+ if (this.virtual) {
261
+ return {
262
+ data: this.fillData,
263
+ 'row-style': this.fillrow
264
+ }
265
+ } else {
266
+ return {
267
+ data: this.data,
268
+ }
269
+ }
270
+ }
271
+ },
272
+ watch: {
273
+ data: {
274
+ handler(data) {
275
+ if (this.virtual) {
276
+ this.reload()
277
+ }
278
+ },
279
+ immediate: true
280
+ }
281
+ },
282
+ created() {
283
+ this.getColumnsData(); // 获取表格列数据
284
+ },
285
+ mounted() {
286
+ for (const item of this.columnList) {
287
+ this.$set(item, 'visible', false);
288
+ if (['multiple', 'daterange', 'monthrange'].indexOf(item.filterType) > -1) {
289
+ this.$set(item, 'value', []);
290
+ } else if (['text', 'single'].indexOf(item.filterType) > -1) {
291
+ this.$set(item, 'value', '');
292
+ }
293
+ }
294
+ },
295
+ updated() {
296
+ this.doLayout();
297
+ },
298
+ methods: {
299
+ fillrow({
300
+ row,
301
+ rowIndex
302
+ }) {
303
+ if (rowIndex === 0) {
292
304
  return {
293
- totalText: {
294
- 0: '分页合计',
295
- 1: '选中合计',
296
- 2: '全部合计'
297
- },
298
- columnList: [], // 表格列数据
299
- sumType: 2, // 合计类型 0:分页合计;1选中合计;2全部合计
300
- selection: [], // 当前选中表格数据
301
- fillData: [],
302
- };
303
- },
304
- components: {
305
- noData,
306
- dragSet
307
- },
308
- computed: {
309
- // 表格列数据
310
- columnData () {
311
- return this.columnList.filter((item) => item.isShow);
312
- },
313
- table () {
314
- return this.$refs.cusTable;
315
- },
316
- attrs() {
317
- if (this.virtual) {
318
- return {
319
- data: this.fillData,
320
- 'row-style': this.fillrow
321
- }
322
- } else {
323
- return {
324
- data: this.data,
325
- }
326
- }
305
+ height: this.topSpan + 'px'
327
306
  }
307
+ }
308
+ if (rowIndex === this.fillData.length - 1) {
309
+ return {
310
+ height: this.bottomSpan + 'px'
311
+ }
312
+ }
328
313
  },
329
- watch: {
330
- data: {
331
- handler(data) {
332
- if (this.virtual) {
333
- this.reload()
334
- }
335
- },
336
- immediate: true
314
+ reload() {
315
+ this.$nextTick(() => {
316
+ console.log(this.$refs.cusTable, 353)
317
+ if (!this.$refs.cusTable) return
318
+ const ref = this.$refs.cusTable.$refs.bodyWrapper
319
+ if (!this.tableControl) {
320
+ this.initBigDataTable(ref)
321
+ } else {
322
+ this.tableControl.refresh()
337
323
  }
324
+ })
325
+ },
326
+ // 初始化大数据表
327
+ initBigDataTable(ref) {
328
+ const options = {
329
+ scrollerRef: ref,
330
+ data: 'data', // length:50000
331
+ fill_data: 'fillData',
332
+ top_span: 'topSpan',
333
+ bottom_span: 'bottomSpan',
334
+ filldata_length: 33,
335
+ table_item_height: 32
336
+ }
337
+ this.tableControl = new BigDataTable(this, options)
338
+ console.log(this.fillData, 375)
338
339
  },
339
- created() {
340
- this.getColumnsData(); // 获取表格列数据
340
+ // 获取表格列数据
341
+ getColumnsData() {
342
+ if (this.nameKey) {
343
+ const list = localStorage.getItem(`vsyswin_${this.nameKey}`);
344
+ if (list) {
345
+ this.columnList = JSON.parse(list);
346
+ } else {
347
+ this.columnList = this.columns;
348
+ }
349
+ } else {
350
+ this.columnList = this.columns;
351
+ }
341
352
  },
342
- mounted () {
353
+ // 列表头宽度拉伸
354
+ handleHeaderDragend(newWidth, oldWidth, column, event) {
355
+ if (this.nameKey) {
343
356
  for (const item of this.columnList) {
344
- this.$set(item, 'visible', false);
345
- if (['multiple', 'daterange', 'monthrange'].indexOf(item.filterType) > -1) {
346
- this.$set(item, 'value', []);
347
- } else if (['text', 'single'].indexOf(item.filterType) > -1) {
348
- this.$set(item, 'value', '');
349
- }
357
+ if (item.label === column.label && item.prop === column.property) {
358
+ this.$set(item, 'width', newWidth);
359
+ }
350
360
  }
361
+ localStorage.setItem(`vsyswin_${this.nameKey}`, JSON.stringify(this.columnList));
362
+ } else {
363
+ this.$emit('header-dragend', newWidth, oldWidth, column, event);
364
+ }
351
365
  },
352
- updated () {
353
- this.doLayout();
366
+ // 点击表格内容
367
+ handleColumnClick(row, column) {
368
+ this.$emit('cell-click', row, column);
354
369
  },
355
- methods: {
356
- fillrow({
357
- row,
358
- rowIndex
359
- }) {
360
- if (rowIndex === 0) {
361
- return {
362
- height: this.topSpan + 'px'
363
- }
364
- }
365
- if (rowIndex === this.fillData.length - 1) {
366
- return {
367
- height: this.bottomSpan + 'px'
368
- }
369
- }
370
- },
371
- reload() {
372
- this.$nextTick(() => {
373
- console.log(this.$refs.cusTable, 353)
374
- if (!this.$refs.cusTable) return
375
- const ref = this.$refs.cusTable.$refs.bodyWrapper
376
- if (!this.tableControl) {
377
- this.initBigDataTable(ref)
378
- } else {
379
- this.tableControl.refresh()
380
- }
381
- })
382
- },
383
- // 初始化大数据表
384
- initBigDataTable(ref) {
385
- const options = {
386
- scrollerRef: ref,
387
- data: 'data', // length:50000
388
- fill_data: 'fillData',
389
- top_span: 'topSpan',
390
- bottom_span: 'bottomSpan',
391
- filldata_length: 33,
392
- table_item_height: 32
393
- }
394
- this.tableControl = new BigDataTable(this, options)
395
- console.log(this.fillData, 375)
396
- },
397
- // 获取表格列数据
398
- getColumnsData () {
399
- if (this.nameKey) {
400
- const list = localStorage.getItem(`vsyswin_${this.nameKey}`);
401
- if (list) {
402
- this.columnList = JSON.parse(list);
403
- } else {
404
- this.columnList = this.columns;
405
- }
406
- } else {
407
- this.columnList = this.columns;
408
- }
409
- },
410
- // 列表头宽度拉伸
411
- handleHeaderDragend (newWidth, oldWidth, column, event) {
412
- if (this.nameKey) {
413
- for (const item of this.columnList) {
414
- if (item.label === column.label && item.prop === column.property) {
415
- this.$set(item, 'width', newWidth);
416
- }
417
- }
418
- localStorage.setItem(`vsyswin_${this.nameKey}`, JSON.stringify(this.columnList));
419
- } else {
420
- this.$emit('header-dragend', newWidth, oldWidth, column, event);
421
- }
422
- },
423
- // 点击表格内容
424
- handleColumnClick (row, column) {
425
- this.$emit('cell-click', row, column);
426
- },
427
- // 列表排序 value, row, column
428
- handleSortChange (params) {
429
- this.$emit('sort-change', params);
430
- },
431
- // 表格勾选事件
432
- handleSelectionChange (selection) {
433
- this.selection = selection;
434
- this.$emit('selection-change', selection);
435
- },
436
- // 当用户手动勾选全选 Checkbox 时触发的事件
437
- handleSelectAll (selection) {
438
- this.$emit('select-all', selection);
439
- },
440
- // 当用户手动勾选数据行的 Checkbox 时触发的事件
441
- handleSelect (selection, row) {
442
- this.$emit('select', selection, row);
443
- },
444
- // 表格行展开事件
445
- handleExpandChange (row, value) {
446
- this.$emit('expand-change', row, value);
447
- },
448
- // 合计类型转换
449
- changeSumType (type) {
450
- this.sumType = type;
451
- },
452
- doLayout () {
453
- this.$refs.cusTable.doLayout();
454
- },
455
- // 列表控制列表点击确定
456
- dragChange (list) {
457
- if (this.nameKey) {
458
- this.columnList = list;
459
- localStorage.setItem(`vsyswin_${this.nameKey}`, JSON.stringify(this.columnList));
460
- } else {
461
- this.$emit('drag-change', list);
462
- }
463
- },
464
- // 表头过滤筛选
465
- handleSearch (column) {
466
- this.$emit('filter-change', column);
467
- },
468
- // 表头过滤条件重置
469
- reset (column) {
470
- if (['multiple', 'daterange', 'monthrange'].indexOf(column.filterType) > -1) {
471
- column.value = [];
472
- } else if (['text', 'single'].indexOf(column.filterType) > -1) {
473
- column.value = '';
474
- }
475
- this.$emit('filter-change', column);
476
- },
477
- // 清空用户的选择,用于多选表格
478
- clearSelection () {
479
- this.$refs.cusTable.clearSelection();
480
- },
481
- // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)
482
- toggleRowSelection (row, selected) {
483
- this.$refs.cusTable.toggleRowSelection(row, selected);
484
- },
485
- // 用于多选表格,切换所有行的选中状态
486
- toggleAllSelection () {
487
- this.$refs.cusTable.toggleAllSelection();
488
- },
489
- // 用于可展开表格与树形表格,切换某一行的展开状态,如果使用了第二个参数,则是设置这一行展开与否(expanded 为 true 则展开)
490
- toggleRowExpansion (row, expanded) {
491
- this.$refs.cusTable.toggleRowExpansion(row, expanded);
492
- },
493
- // 用于清空排序条件,数据会恢复成未排序的状态
494
- clearSort () {
495
- this.$refs.cusTable.clearSort();
496
- },
497
- // 自定义合计方法
498
- getSummariesNum ({ columns, data }) {
499
- this.$nextTick(() => {
500
- this.doLayout();
501
- });
502
- const sums = [];
503
- columns.forEach((column, index) => {
504
- let values = data.map(item => Number(item[column.property]));
505
- if (this.sumType === 1) { // 当为选中合计时
506
- values = this.selection.map(item => Number(item[column.property]));
507
- }
508
- // 判断当前列是否需要进行合计
509
- if (this.sumInfo[column.property] || this.sumInfo[column.property] === 0) {
510
- if (this.sumType === 2) { // 当为全部合计时;使用传入的合计值
511
- sums[index] = this.sumInfo[column.property];
512
- } else {
513
- sums[index] = values.reduce((prev, curr) => {
514
- const value = Number(curr);
515
- if (!isNaN(value)) {
516
- return prev + curr;
517
- } else {
518
- return prev;
519
- }
520
- }, 0);
521
- }
522
- if (this.decimalNum < 0) {
523
- // sums[index] = sums[index];
524
- } else {
525
- sums[index] = (+sums[index]).toFixed(this.decimalNum);
526
- }
527
- } else {
528
- sums[index] = '';
529
- }
530
- });
531
- return sums;
532
- }
370
+ // 列表排序 value, row, column
371
+ handleSortChange(params) {
372
+ this.$emit('sort-change', params);
373
+ },
374
+ // 表格勾选事件
375
+ handleSelectionChange(selection) {
376
+ this.selection = selection;
377
+ this.$emit('selection-change', selection);
378
+ },
379
+ // 当用户手动勾选全选 Checkbox 时触发的事件
380
+ handleSelectAll(selection) {
381
+ this.$emit('select-all', selection);
382
+ },
383
+ // 当用户手动勾选数据行的 Checkbox 时触发的事件
384
+ handleSelect(selection, row) {
385
+ this.$emit('select', selection, row);
386
+ },
387
+ // 表格行展开事件
388
+ handleExpandChange(row, value) {
389
+ this.$emit('expand-change', row, value);
533
390
  },
391
+ // 合计类型转换
392
+ changeSumType(type) {
393
+ this.sumType = type;
394
+ },
395
+ doLayout() {
396
+ this.$refs.cusTable.doLayout();
397
+ },
398
+ // 列表控制列表点击确定
399
+ dragChange(list) {
400
+ if (this.nameKey) {
401
+ this.columnList = list;
402
+ localStorage.setItem(`vsyswin_${this.nameKey}`, JSON.stringify(this.columnList));
403
+ } else {
404
+ this.$emit('drag-change', list);
405
+ }
406
+ },
407
+ // 表头过滤筛选
408
+ handleSearch(column) {
409
+ this.$emit('filter-change', column);
410
+ },
411
+ // 表头过滤条件重置
412
+ reset(column) {
413
+ if (['multiple', 'daterange', 'monthrange'].indexOf(column.filterType) > -1) {
414
+ column.value = [];
415
+ } else if (['text', 'single'].indexOf(column.filterType) > -1) {
416
+ column.value = '';
417
+ }
418
+ this.$emit('filter-change', column);
419
+ },
420
+ // 清空用户的选择,用于多选表格
421
+ clearSelection() {
422
+ this.$refs.cusTable.clearSelection();
423
+ },
424
+ // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)
425
+ toggleRowSelection(row, selected) {
426
+ this.$refs.cusTable.toggleRowSelection(row, selected);
427
+ },
428
+ // 用于多选表格,切换所有行的选中状态
429
+ toggleAllSelection() {
430
+ this.$refs.cusTable.toggleAllSelection();
431
+ },
432
+ // 用于可展开表格与树形表格,切换某一行的展开状态,如果使用了第二个参数,则是设置这一行展开与否(expanded 为 true 则展开)
433
+ toggleRowExpansion(row, expanded) {
434
+ this.$refs.cusTable.toggleRowExpansion(row, expanded);
435
+ },
436
+ // 用于清空排序条件,数据会恢复成未排序的状态
437
+ clearSort() {
438
+ this.$refs.cusTable.clearSort();
439
+ },
440
+ // 自定义合计方法
441
+ getSummariesNum({ columns, data }) {
442
+ this.$nextTick(() => {
443
+ this.doLayout();
444
+ });
445
+ const sums = [];
446
+ columns.forEach((column, index) => {
447
+ let values = data.map(item => Number(item[column.property]));
448
+ if (this.sumType === 1) { // 当为选中合计时
449
+ values = this.selection.map(item => Number(item[column.property]));
450
+ }
451
+ // 判断当前列是否需要进行合计
452
+ if (this.sumInfo[column.property] || this.sumInfo[column.property] === 0) {
453
+ if (this.sumType === 2) { // 当为全部合计时;使用传入的合计值
454
+ sums[index] = this.sumInfo[column.property];
455
+ } else {
456
+ sums[index] = values.reduce((prev, curr) => {
457
+ const value = Number(curr);
458
+ if (!isNaN(value)) {
459
+ return prev + curr;
460
+ } else {
461
+ return prev;
462
+ }
463
+ }, 0);
464
+ }
465
+ if (this.decimalNum < 0) {
466
+ // sums[index] = sums[index];
467
+ } else {
468
+ sums[index] = (+sums[index]).toFixed(this.decimalNum);
469
+ }
470
+ } else {
471
+ sums[index] = '';
472
+ }
473
+ });
474
+ return sums;
475
+ }
476
+ },
534
477
  };
535
478
  </script>
536
479
  <style lang="scss" scoped>
537
- .sum {
538
- position: absolute;
539
- margin-left: 10px;
540
- // width: 82px;
541
- font-size: 12px;
542
- height: 36px;
543
- line-height: 36px;
544
- text-align: center;
545
- background: #F5F7FA;
546
- left: 1px;
547
- bottom: 1px;
548
- z-index: 4;
549
- }
550
- .filterItem {
551
- width: 100%;
552
- height: 30px;
553
- line-height: 30px;
554
- background: #fff;
555
- padding: 0 10px;
556
- box-sizing: border-box;
557
- }
558
- .filter-icon {
559
- margin-top: 1px;
560
- float: right;
561
- font-size: 9px !important;
562
- cursor: pointer;
563
- color: rgba(0, 0, 0, .5);
564
- }
565
- .selected-color {
566
- color: #027AFF;
567
- }
568
- .el-button--primary {
569
- background-color: #027AFF;
570
- border-color: #027AFF;
571
- }
572
- // .el-button:hover {
573
- // background: #027aff !important;
574
- // color: #fff !important;
575
- // border: 1px solid #027aff !important;
576
- // }
480
+ .sum {
481
+ position: absolute;
482
+ margin-left: 10px;
483
+ // width: 82px;
484
+ font-size: 12px;
485
+ height: 36px;
486
+ line-height: 36px;
487
+ text-align: center;
488
+ background: #F5F7FA;
489
+ left: 1px;
490
+ bottom: 1px;
491
+ z-index: 4;
492
+ }
493
+
494
+ .filterItem {
495
+ width: 100%;
496
+ height: 30px;
497
+ line-height: 30px;
498
+ background: #fff;
499
+ padding: 0 10px;
500
+ box-sizing: border-box;
501
+ }
502
+
503
+ .filter-icon {
504
+ margin-top: 1px;
505
+ float: right;
506
+ font-size: 9px !important;
507
+ cursor: pointer;
508
+ color: rgba(0, 0, 0, .5);
509
+ }
510
+
511
+ .selected-color {
512
+ color: #027AFF;
513
+ }
514
+
515
+ .el-button--primary {
516
+ background-color: #027AFF;
517
+ border-color: #027AFF;
518
+ }
519
+
520
+ // .el-button:hover {
521
+ // background: #027aff !important;
522
+ // color: #fff !important;
523
+ // border: 1px solid #027aff !important;
524
+ // }
577
525
  </style>
578
526
  <style lang="scss">
579
- .el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner {
580
- background-color: #027AFF;
581
- border-color: #027AFF;
527
+ .el-checkbox__input.is-checked .el-checkbox__inner,
528
+ .el-checkbox__input.is-indeterminate .el-checkbox__inner {
529
+ background-color: #027AFF;
530
+ border-color: #027AFF;
582
531
  }
532
+
583
533
  .el-radio__input.is-checked .el-radio__inner {
584
- border-color: #027AFF;
585
- background: #027AFF;
534
+ border-color: #027AFF;
535
+ background: #027AFF;
586
536
  }
537
+
587
538
  // .el-input__inner {
588
539
  // height: 32px !important;
589
540
  // line-height: 32px !important;
@@ -593,139 +544,171 @@ export default {
593
544
  // }
594
545
 
595
546
  .el-input__inner:hover {
596
- border-color: #D0D3D6!important;
547
+ border-color: #D0D3D6 !important;
597
548
  }
598
549
 
599
- .el-input.is-active .el-input__inner, .el-input__inner:focus {
600
- border-color: #4A8DF0!important;
550
+ .el-input.is-active .el-input__inner,
551
+ .el-input__inner:focus {
552
+ border-color: #4A8DF0 !important;
601
553
  }
554
+
602
555
  .el-button--primary.is-plain {
603
- height: 20px!important;
604
- line-height: 18px!important;
605
- padding: 0 9px!important;
606
- background: none!important;
607
- border: 1px solid #4A8DF0!important;
608
- color: #4A8DF0!important;
609
- font-size: 12px;
556
+ height: 20px !important;
557
+ line-height: 18px !important;
558
+ padding: 0 9px !important;
559
+ background: none !important;
560
+ border: 1px solid #4A8DF0 !important;
561
+ color: #4A8DF0 !important;
562
+ font-size: 12px;
610
563
  }
611
564
 
612
- .el-button--primary.is-plain:focus, .el-button--primary.is-plain:hover {
613
- background: #4184E7!important;
614
- color: #fff!important;
565
+ .el-button--primary.is-plain:focus,
566
+ .el-button--primary.is-plain:hover {
567
+ background: #4184E7 !important;
568
+ color: #fff !important;
615
569
  }
616
570
 
617
571
  .el-button--primary.is-plain:active {
618
- background: #3070CF!important;
619
- color: #fff!important;
572
+ background: #3070CF !important;
573
+ color: #fff !important;
620
574
  }
621
575
 
622
576
  .syswin-table {
623
- table {
624
- border-collapse: collapse;
625
- border-spacing: 0;
626
- }
627
- .el-table__empty-block {
628
- position: absolute!important;
629
- height: calc(100% - 60px)!important;
630
- }
631
-
632
- // .el-table::before {
633
- // background: none!important;
634
- // }
577
+ table {
578
+ border-collapse: collapse;
579
+ border-spacing: 0;
580
+ }
635
581
 
636
- .el-table table {
637
- width: 100% !important;
638
- }
639
-
640
- .el-table__empty-block {
582
+ .el-table__empty-block {
583
+ position: absolute !important;
584
+ height: calc(100% - 60px) !important;
585
+ }
586
+ .el-table {
587
+ // border-radius: 0 0 8px 8px !important;
588
+ color: #282828;
589
+ }
590
+ .el-table table {
641
591
  width: 100% !important;
642
- }
592
+ }
643
593
 
644
- .el-table th {
645
- background: #F2F5F9 !important;
646
- padding: 3px 0!important;
647
- }
648
-
649
- .el-table td, .el-table th.is-leaf {
650
- border-right: 1px solid #D8D8D8;
651
- }
594
+ .el-table__empty-block {
595
+ width: 100% !important;
596
+ }
597
+ .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{
598
+ background: #fff;
599
+ }
600
+ .el-table th {
601
+ font-weight: bold;
602
+ color: #282828;
603
+ background: linear-gradient(180deg, #EEF4FB 0%, #FFFFFF 100%) !important;
604
+ padding: 9px 0 !important;
605
+ }
652
606
 
653
- .el-table th:first-child {
607
+ .el-table td,
608
+ .el-table th.is-leaf {
609
+ // border-right: 1px solid #D8D8D8;
610
+ border-right: none;
611
+ }
612
+ .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf{
613
+ border-bottom:1px solid #f1f1f1;
614
+ }
615
+ .el-table--border, .el-table--group {
616
+ border: none !important;
617
+ }
618
+ .el-table--border::after, .el-table--group::after, .el-table::before{
619
+ width: 0;
620
+ }
621
+ .el-table th:first-child {
654
622
  padding: 0 !important;
655
623
  box-sizing: border-box;
656
- }
624
+ }
657
625
 
658
- .el-table th .cell {
659
- height: 34px !important;
660
- line-height: 34px !important;
661
- padding: 0 10px !important;
662
- box-sizing: border-box;
663
- min-width: 50px;
664
- overflow: hidden;
665
- text-overflow: clip;
666
- white-space: nowrap;
667
- }
626
+ .el-table th .cell {
627
+ height: 34px !important;
628
+ line-height: 34px !important;
629
+ padding: 0 10px !important;
630
+ box-sizing: border-box;
631
+ min-width: 50px;
632
+ overflow: hidden;
633
+ text-overflow: clip;
634
+ white-space: nowrap;
635
+ }
668
636
 
669
- .el-table__footer .cell {
670
- padding: 0 10px !important;
671
- box-sizing: border-box;
672
- min-width: 50px;
673
- overflow: hidden;
674
- text-overflow: clip;
675
- white-space: nowrap;
676
- text-overflow: ellipsis;
677
- }
637
+ .el-table__footer .cell {
638
+ padding: 0 10px !important;
639
+ box-sizing: border-box;
640
+ min-width: 50px;
641
+ overflow: hidden;
642
+ text-overflow: clip;
643
+ white-space: nowrap;
644
+ text-overflow: ellipsis;
645
+ }
678
646
 
679
- .el-table th:first-child .cell {
680
- padding: 0 10px !important;
681
- box-sizing: border-box;
682
- }
647
+ .el-table th:first-child .cell {
648
+ padding: 0 20px !important;
649
+ box-sizing: border-box;
650
+ }
683
651
 
684
- .el-table td {
685
- padding: 7px 0!important;
686
- }
652
+ .el-table td {
653
+ padding: 10px 0 !important;
654
+ }
687
655
 
688
- .el-table tbody td {
689
- border-right: none;
690
- }
656
+ .el-table tbody td {
657
+ border-right: none;
658
+ }
659
+ .el-table tbody td:last-child {
660
+ border-right: none !important;
661
+ }
662
+ .el-table tbody .hover-row>td {
663
+ background: #DCE8F9 !important;
664
+ }
691
665
 
692
- .el-table tbody .hover-row>td {
693
- background: #DCE8F9 !important;
694
- }
666
+ .el-table td:first-child {
667
+ padding: 0 !important;
668
+ box-sizing: border-box;
669
+ }
695
670
 
696
- .el-table td:first-child {
697
- padding: 0 !important;
698
- box-sizing: border-box;
699
- }
671
+ .el-table td:first-child .cell {
672
+ padding: 14px 20px !important;
673
+ box-sizing: border-box;
674
+ }
700
675
 
701
- .el-table td:first-child .cell {
702
- padding: 0 10px !important;
703
- box-sizing: border-box;
704
- }
676
+ .el-table th>.cell {
677
+ font-size: 14px !important;
678
+ font-weight: bold !important;
679
+ color: #282828 !important;
680
+ }
705
681
 
706
- .el-table th>.cell {
707
- font-size: 14px !important;
708
- font-weight: bold !important;
709
- color: rgba(0, 0, 0, 0.65) !important;
710
- }
711
- .el-table .sort-caret.ascending {
712
- border-bottom-color: rgba(0, 0, 0, .5) !important;
713
- }
682
+ .el-table .sort-caret.ascending {
683
+ border-bottom-color: rgba(0, 0, 0, .5) !important;
684
+ }
714
685
 
715
- .el-table .sort-caret.descending {
716
- border-top-color: rgba(0, 0, 0, .5) !important;
717
- }
686
+ .el-table .sort-caret.descending {
687
+ border-top-color: rgba(0, 0, 0, .5) !important;
688
+ }
718
689
 
719
- .el-table .ascending .sort-caret.ascending {
720
- border-bottom-color: #027AFF !important;
721
- }
690
+ .el-table .ascending .sort-caret.ascending {
691
+ border-bottom-color: #027AFF !important;
692
+ }
722
693
 
723
- .el-table .descending .sort-caret.descending {
724
- border-top-color: #027AFF !important;
725
- }
694
+ .el-table .descending .sort-caret.descending {
695
+ border-top-color: #027AFF !important;
696
+ }
726
697
 
727
- .el-table__fixed-right::before, .el-table__fixed::before {
728
- height: 0;
729
- }
698
+ .el-table__fixed-right::before,
699
+ .el-table__fixed::before {
700
+ height: 0;
701
+ }
702
+ .el-input__inner{
703
+ border: 1px solid #f1f1f1;
704
+ color: #282828;
705
+ }
706
+ .el-table__footer-wrapper tbody td.el-table__cell, .el-table__header-wrapper tbody td.el-table__cell {
707
+ // background: #f1f1f1;
708
+ color: #282828;
709
+ }
710
+ .el-table__footer-wrapper td.el-table__cell {
711
+ border-top: none;
712
+ }
730
713
  }
731
714
  </style>