4343
4444
4545 <slot name =" over-table" />
46- <div :class =" `position-relative ${notResponsive ? '' : 'table-responsive' }`" >
46+ <div :class =" `position-relative ${responsive ? 'table-responsive ' : '' }`" >
4747 <table :class =" tableClasses" >
4848 <thead >
4949 <tr >
7474 </tr >
7575
7676 <tr v-if =" columnFilter" class =" table-sm" >
77- <th v-if =" indexColumn" class =" pb-2 pl-2" >
78- <CIcon
79- v-if =" indexColumn !== 'noCleaner'"
80- width =" 18"
81- name =" ban"
82- @click.native =" clear"
83- :class =" isFiltered ? 'text-danger' : 'text-secondary'"
84- title =" clear table"
85- />
86- </th >
77+ <th v-if =" indexColumn" ></th >
8778 <template v-for =" (colName , index ) in rawColumnNames " >
8879 <th :class =" headerClass(index)" :key =" index" >
8980 <slot :name =" `${rawColumnNames[index]}-filter`" >
9081 <input
91- v-if =" !fields || !fields[index].noFilter "
82+ v-if =" !fields || !fields[index].filterable !== false "
9283 class =" w-100 table-filter"
9384 @input =" addColumnFilter(colName, $event.target.value)"
9485 :value =" columnFilterVal[colName]"
118109 :index =" firstItemIndex + itemIndex"
119110 >
120111 <td >
121- {{indexColumn !== 'noIndexes' ? firstItemIndex + itemIndex + 1 : '' }}
112+ {{ firstItemIndex + itemIndex + 1 }}
122113 </td >
123114 </slot >
124115 <template v-for =" (colName , index ) in rawColumnNames " >
205196 <slot name =" caption" />
206197 </table >
207198
199+ <slot name =" loading" v-if =" loading" >
200+ <div style =" position :absolute ;left :0 ;top :0 ;bottom :0 ;right :0 ;background-color :rgb (255 ,255 ,255 ,0.4 );" >
201+ <div style =" position :absolute ;bottom :50% ;left :50% ;transform :translateX (-50% );" >
202+ <CSpinner color =" success" />
203+ </div >
204+ </div >
205+ </slot >
208206
209- <div
210- v-if =" loading"
211- :style =" topLoadingPosition"
212- style =" position :absolute ;left :50% ;transform :translateX (-50% );"
213- >
214- <CSpinner
215- color =" success"
216- :style =" spinnerSize"
217- role =" status"
218- />
219- </div >
220207 </div >
221208 <slot name =" under-table" />
222209
@@ -253,13 +240,16 @@ export default {
253240 default: 10
254241 },
255242 activePage: Number ,
256- indexColumn: [ Boolean , String ] ,
243+ indexColumn: Boolean ,
257244 columnFilter: Boolean ,
258245 pagination: [Boolean , Object ],
259246 addTableClasses: [String , Array , Object ],
260- notResponsive: Boolean ,
247+ responsive: {
248+ type: Boolean ,
249+ default: true
250+ },
261251 sortable: Boolean ,
262- small : Boolean ,
252+ size : String ,
263253 dark: Boolean ,
264254 striped: Boolean ,
265255 fixed: Boolean ,
@@ -371,8 +361,7 @@ export default {
371361 ' table' ,
372362 this .addTableClasses ,
373363 {
374- ' is-loading' : this .loading ,
375- ' table-sm' : this .small ,
364+ [` table-${ this .size } ` ]: this .size ,
376365 ' table-dark' : this .dark ,
377366 ' table-striped' : this .striped ,
378367 ' b-table-fixed' : this .fixed ,
@@ -388,14 +377,6 @@ export default {
388377 colspan () {
389378 return this .rawColumnNames .length + (this .indexColumn ? 1 : 0 )
390379 },
391- topLoadingPosition () {
392- const headerHeight = (this .columnFilter ? 38 : 0 ) + ( this .small ? 32 + 4 : 46 + 7 )
393- return ` top:${ headerHeight} px`
394- },
395- spinnerSize () {
396- const size = this .small ? 1.4 : this .currentItems .length === 1 ? 2 : 3
397- return ` width:${ size + ' rem' } ;height:${ size + ' rem' } `
398- },
399380 isFiltered () {
400381 return this .tableFilterVal || Object .values (this .columnFilterVal ).join (' ' )
401382 }
@@ -428,16 +409,16 @@ export default {
428409 addColumnFilter (colName , value ) {
429410 this .$set (this .columnFilterVal , colName, value)
430411 },
431- clear () {
432- this .tableFilterVal = ' '
433- this .columnFilterVal = {}
434- this .sorter .column = ' '
435- this .sorter .asc = true
436- const inputs = this .$el .getElementsByClassName (' table-filter' )
437- for (let input of inputs) {
438- input .value = ' '
439- }
440- },
412+ // clear () {
413+ // this.tableFilterVal = ''
414+ // this.columnFilterVal = {}
415+ // this.sorter.column = ''
416+ // this.sorter.asc = true
417+ // const inputs = this.$el.getElementsByClassName('table-filter')
418+ // for (let input of inputs) {
419+ // input.value = ''
420+ // }
421+ // },
441422 pretifyName (name ) {
442423 return name .replace (/ [-_. ] / g , ' ' )
443424 .replace (/ + / g , ' ' )
@@ -457,7 +438,7 @@ export default {
457438 return classes
458439 },
459440 isSortable (index ) {
460- return this .sortable && (! this .fields || ! this .fields [index].notSortable )
441+ return this .sortable && (! this .fields || this .fields [index].sortable !== false )
461442 },
462443 headerClass (index ) {
463444 const fields = this .fields
@@ -505,9 +486,6 @@ export default {
505486 -webkit-transition : transform 0.3s ;
506487 transition : transform 0.3s ;
507488}
508- .is-loading {
509- opacity : .4 ;
510- }
511489.arrow-position {
512490 right : 0 ;
513491 top : 50% ;
0 commit comments