99
99
100
100
el-card
101
101
.desc
102
- p 事件 ( https://github.com/njleonzhang/vue-data-tables#event)
102
+ a ( href = ' https://github.com/njleonzhang/vue-data-tables#event' ) 事件
103
103
p 多数的事件都是对element-ui el-table事件的proxy
104
- p filtered-data事件用于传递过滤后数据,配合alasql(https://github.com/agershun/alasql)等库使用可以实现导出excel等功能
104
+ p filtered-data事件用于传递过滤后数据,配合
105
+ a( href ='https://github.com/zemirco/json2csv' ) json2csv
106
+ span 、
107
+ a( href ='https://github.com/agershun/alasql' ) alasql
108
+ span 等库使用可以实现导出excel等功能
105
109
data-tables(
106
110
:data ='tableData1' ,
111
+ :actions-def ='getExportActionsDef()' ,
107
112
:col-not-row-click ='["special_selection_col"]' ,
108
113
@row-click ='rowClick' ,
109
114
@select ='handleSelect' ,
@@ -156,7 +161,9 @@ export default {
156
161
157
162
data () {
158
163
return {
159
- tableData: []
164
+ tableData: [],
165
+ tableData1: [],
166
+ filteredData: []
160
167
}
161
168
},
162
169
@@ -168,67 +175,26 @@ export default {
168
175
},
169
176
170
177
methods: {
171
- /**
172
- * 参数可选
173
- *
174
- * fileName 导出的文件名
175
- *
176
- * filtered
177
- * true 导出筛选、排序后的数据
178
- * false 默认值,导出原数据
179
- */
180
- exportData (config ) {
181
- let dataTable = this .$refs .table1
182
- let table = dataTable .$children .filter (t => t .$el ._prevClass .indexOf (' el-table' ) !== - 1 )[0 ]
183
- let data = dataTable .data
184
- let columns = this .getColumns (table)
185
- const fields = columns .map (t => t .prop )
186
- const fieldNames = columns .map (t => t .label )
187
- if (config .filtered ) {
188
- data = dataTable .tableData
189
- }
190
- CsvExport (data, fields, fieldNames, config .fileName )
191
- },
192
- /**
193
- * 针对多级分类表格,需循环遍历table获取columns
194
- */
195
- getColumns (tableEl , arr = []) {
196
- if (! tableEl .$children .length ) {
197
- return
198
- }
199
- tableEl .$children .forEach ((data ) => {
200
- if (! data .$children .length && data .prop ) {
201
- arr .push (data)
202
- } else {
203
- this .getColumns (data, arr)
204
- }
205
- })
206
- return arr
207
- },
208
178
getActionsDef () {
209
179
let self = this
210
180
return {
211
181
width: 5 ,
212
182
def: [{
213
- name: ' 导出原始数据 ' ,
183
+ name: ' new ' ,
214
184
handler () {
215
- self .exportData ({
216
- fileName: ' 原始数据'
217
- })
185
+ self .$message (' new clicked' )
218
186
},
219
- icon: ' upload '
187
+ icon: ' plus '
220
188
}, {
221
- name: ' 导出排序和过滤后的数据 ' ,
189
+ name: ' import ' ,
222
190
handler () {
223
- self .exportData ({
224
- fileName: ' 排序和过滤后的数据' ,
225
- filtered: true
226
- })
191
+ self .$message (' import clicked' )
227
192
},
228
193
icon: ' upload'
229
194
}]
230
195
}
231
196
},
197
+
232
198
getCheckFilterDef () {
233
199
return {
234
200
width: 14 ,
@@ -269,6 +235,29 @@ export default {
269
235
name: ' RUA'
270
236
}]
271
237
},
238
+
239
+ getExportActionsDef () {
240
+ let columns = [' room_no' , ' cellphone' , ' flow_no' , ' state' ]
241
+ let columnNames = [' 房号' , ' 电话号码' , ' 订单号' , ' 状态' ]
242
+
243
+ return {
244
+ width: 19 ,
245
+ def: [{
246
+ name: ' export all' ,
247
+ handler : () => {
248
+ CsvExport (this .tableData1 , columns, columnNames, ' 所有数据' )
249
+ },
250
+ icon: ' plus'
251
+ }, {
252
+ name: ' export filtered' ,
253
+ handler : () => {
254
+ CsvExport (this .filteredData , columns, columnNames, ' 过滤后的数据' )
255
+ },
256
+ icon: ' upload'
257
+ }]
258
+ }
259
+ },
260
+
272
261
rowClick (row ) {
273
262
this .$message (' row clicked' )
274
263
console .log (' row clicked' , row)
@@ -284,6 +273,7 @@ export default {
284
273
},
285
274
handleFilterDataChange (filteredData ) {
286
275
console .log (' handleFilterDataChange' , filteredData)
276
+ this .filteredData = filteredData
287
277
},
288
278
getSearchDef () {
289
279
return {
0 commit comments