11
22export default {
3- created ( ) {
4- this . filterColumns = this . tableFields . map ( field => {
5- let item = { } ;
6- item . mode = 'like'
7- item . text = field . text ;
8- item . name = field . name . toLowerCase ( ) ;
9- item . column = field . column
10- item . value = ''
11- return item ;
12- } ) ;
13- } ,
14- watch : {
15- selectedStatuses ( val ) {
16- this . pagination . page = 1
17- } ,
3+ created ( ) {
4+ this . filterColumns = this . tableFields . map ( field => {
5+ let item = { } ;
6+ item . mode = 'like'
7+ item . text = field . text ;
8+ item . name = field . name . toLowerCase ( ) ;
9+ item . column = field . column
10+ item . value = ''
11+ return item ;
12+ } ) ;
13+ } ,
14+ watch : {
15+ selectedStatuses ( val ) {
16+ this . pagination . page = 1
1817 } ,
19- computed : {
20- filteredItems ( ) {
21-
22- let items = [ 'soft' , 'both' ] . includes ( this . deleteMode )
23- ? this . items . filter ( item =>
24- this . selectedStatuses . includes ( parseInt ( item . meta . active ) )
25- )
26- : this . items ;
27-
28- let filterColumns = this . filterColumns
29- items = items . filter ( item => {
30- let found = true ;
31- for ( let i = 0 ; i < filterColumns . length ; i ++ ) {
32- if ( filterColumns [ i ] . value != '' ) {
33- found = false ;
34- let colName = filterColumns [ i ] . name
35- let field = item [ colName ] ;
36- if ( typeof field === "string" || field instanceof String || typeof field === "number" ) {
37- field = field . toString ( ) . toLowerCase ( ) ;
38- switch ( filterColumns [ i ] . mode ) {
39- case 'like' :
40- if ( field . includes ( filterColumns [ i ] . value ) ) {
41- found = true ;
42- }
43- break ;
44- case 'equals' :
45- if ( field == filterColumns [ i ] . value ) {
46- found = true ;
47- }
48- break ;
49- case 'list' :
50- let tmpList = filterColumns [ i ] . value . split ( ';' )
51- if ( tmpList . includes ( field ) ) {
52- found = true ;
53- }
18+ } ,
19+ computed : {
20+ filteredItems ( ) {
21+
22+ let items = [ 'soft' , 'both' ] . includes ( this . deleteMode )
23+ ? this . items . filter ( item =>
24+ this . selectedStatuses . includes ( parseInt ( item . meta . active ) )
25+ )
26+ : this . items ;
27+
28+ let filterColumns = this . filterColumns
29+ items = items . filter ( item => {
30+ let found = true ;
31+ for ( let i = 0 ; i < filterColumns . length ; i ++ ) {
32+ if ( filterColumns [ i ] . value != '' ) {
33+ found = false ;
34+ let colName = filterColumns [ i ] . name
35+ let field = item [ colName ] ;
36+ if ( typeof field === "string" || field instanceof String || typeof field === "number" ) {
37+ field = field . toString ( ) . toLowerCase ( ) ;
38+ switch ( filterColumns [ i ] . mode ) {
39+ case 'like' :
40+ if ( field . includes ( filterColumns [ i ] . value ) ) {
41+ found = true ;
42+ }
43+ break ;
44+ case 'equals' :
45+ if ( field == filterColumns [ i ] . value ) {
46+ found = true ;
47+ }
48+ break ;
49+ case 'list' :
50+ let tmpList = filterColumns [ i ] . value . split ( ';' )
51+ if ( tmpList . includes ( field ) ) {
52+ found = true ;
53+ }
54+ break ;
55+ default :
5456 break ;
55- default :
56- break ;
57- }
5857 }
59- if ( ! found ) break ;
6058 }
59+ if ( ! found ) break ;
6160 }
62- return found ;
63- } ) ;
64-
65- let phrases = this . search == "" ? [ ] : this . search . toLowerCase ( ) . split ( " " ) ;
66- items = items . filter ( item => {
67- let found = true ;
68- for ( let i = 0 ; i < phrases . length ; i ++ ) {
69- found = false ;
70- for ( let key in item ) {
71- let field = item [ key ] ;
72- if (
73- typeof field === "string" ||
74- field instanceof String ||
75- typeof field === "number"
76- ) {
77- field = field . toString ( ) . toLowerCase ( ) ;
78- if ( field . includes ( phrases [ i ] ) ) {
79- found = true ;
80- }
61+ }
62+ return found ;
63+ } ) ;
64+
65+ let phrases = this . search == "" ? [ ] : this . search . toLowerCase ( ) . split ( " " ) ;
66+ items = items . filter ( item => {
67+ let found = true ;
68+ for ( let i = 0 ; i < phrases . length ; i ++ ) {
69+ found = false ;
70+ for ( let key in item ) {
71+ let field = item [ key ] ;
72+ if (
73+ typeof field === "string" ||
74+ field instanceof String ||
75+ typeof field === "number"
76+ ) {
77+ field = field . toString ( ) . toLowerCase ( ) ;
78+ if ( field . includes ( phrases [ i ] ) ) {
79+ found = true ;
8180 }
8281 }
83- if ( ! found ) break ;
84- }
85- return found ;
86- } ) ;
87-
88- return items ;
89- }
90- } ,
91- methods : {
92- exportToExcel ( ) {
93- let headers = this . cleanHeaders . map ( header => header . text )
94- let data = this . filteredItems . map ( item => {
95- let row = [ ]
96- for ( let header of this . cleanHeaders ) {
97- row . push ( item [ header . value ] )
9882 }
99- return row
100- } )
101- import ( '@/vendor/Export2Excel' ) . then ( excel => {
102- excel . export_json_to_excel ( {
103- header : headers ,
104- data : data ,
105- filename : 'excel-list' ,
106- autoWidth : true ,
107- bookType : 'xlsx'
108- } )
83+ if ( ! found ) break ;
84+ }
85+ return found ;
86+ } ) ;
87+
88+ return items ;
89+ }
90+ } ,
91+ methods : {
92+ exportToExcel ( ) {
93+ this . excelLoading = true
94+ let headers = this . cleanHeaders . map ( header => header . text )
95+ let data = this . filteredItems . map ( item => {
96+ let row = [ ]
97+ for ( let header of this . cleanHeaders ) {
98+ row . push ( item [ header . value ] )
99+ }
100+ return row
101+ } )
102+ import ( '@/vendor/Export2Excel' ) . then ( excel => {
103+ this . excelLoading = false
104+ excel . export_json_to_excel ( {
105+ header : headers ,
106+ data : data ,
107+ filename : this . excelName ,
108+ autoWidth : true ,
109+ bookType : 'xlsx'
109110 } )
110- }
111+ } )
111112 }
112- } ;
113+ }
114+ } ;
0 commit comments