Commit 19c208d38065e17c2867b7f564ecd36c9180624b
1 parent
f13df74f
Poptip add prop `popper-class`, Table update
Showing
5 changed files
with
32 additions
and
88 deletions
Show diff stats
examples/routers/table.vue
| 1 | 1 | <template> |
| 2 | 2 | <div> |
| 3 | - <Table border ref="selection" :columns="columns4" :data="data1"></Table> | |
| 4 | - <Button @click="handleSetData">Set Data</Button> | |
| 5 | - <Button @click="handleClearData">Clear Data</Button> | |
| 6 | - <Button @click="handleSelectAll(true)">Set all selected</Button> | |
| 7 | - <Button @click="handleSelectAll(false)">Cancel all selected</Button> | |
| 8 | - <div style="margin:20px 0px;"> | |
| 9 | - <Table :data="tableData1" :columns="tableColumns1" style="width: 100%;" stripe></Table> | |
| 10 | - <div style="margin: 10px;overflow: hidden"> | |
| 11 | - <div style="float: right;"> | |
| 12 | - <Page :total="100" show-sizer :current="1" @on-change="changePage"></Page> | |
| 13 | - </div> | |
| 14 | - </div> | |
| 15 | - </div> | |
| 3 | + <Table highlight-row ref="currentRowTable" :columns="columns3" :data="data1"></Table> | |
| 4 | + <Button @click="handleClearCurrentRow">Clear</Button> | |
| 16 | 5 | </div> |
| 17 | 6 | </template> |
| 18 | 7 | <script> |
| 19 | 8 | export default { |
| 20 | 9 | data () { |
| 21 | 10 | return { |
| 22 | - columns4: [ | |
| 11 | + columns3: [ | |
| 23 | 12 | { |
| 24 | - type: 'selection', | |
| 13 | + type: 'index', | |
| 25 | 14 | width: 60, |
| 26 | 15 | align: 'center' |
| 27 | 16 | }, |
| ... | ... | @@ -39,47 +28,6 @@ |
| 39 | 28 | } |
| 40 | 29 | ], |
| 41 | 30 | data1: [ |
| 42 | - | |
| 43 | - ], | |
| 44 | - | |
| 45 | - tableData1: [], | |
| 46 | - tableColumns1: [ | |
| 47 | - { | |
| 48 | - title: 'Data1', | |
| 49 | - key: 'data1' | |
| 50 | - }, | |
| 51 | - { | |
| 52 | - title: 'Data2', | |
| 53 | - key: 'data2' | |
| 54 | - }, | |
| 55 | - { | |
| 56 | - title: 'Data3', | |
| 57 | - key: 'data3' | |
| 58 | - }, | |
| 59 | - { | |
| 60 | - title: 'Data4', | |
| 61 | - key: 'data4' | |
| 62 | - }, | |
| 63 | - { | |
| 64 | - title: 'Data5', | |
| 65 | - key: 'data5' | |
| 66 | - }, | |
| 67 | - { | |
| 68 | - title: 'Data6', | |
| 69 | - key: 'data6' | |
| 70 | - }, | |
| 71 | - ] | |
| 72 | - } | |
| 73 | - }, | |
| 74 | - mounted(){ | |
| 75 | - this.refreshData(); | |
| 76 | - }, | |
| 77 | - methods: { | |
| 78 | - handleSelectAll (status) { | |
| 79 | - this.$refs.selection.selectAll(status); | |
| 80 | - }, | |
| 81 | - handleSetData () { | |
| 82 | - this.data1 = [ | |
| 83 | 31 | { |
| 84 | 32 | name: 'John Brown', |
| 85 | 33 | age: 18, |
| ... | ... | @@ -104,27 +52,12 @@ |
| 104 | 52 | address: 'Ottawa No. 2 Lake Park', |
| 105 | 53 | date: '2016-10-04' |
| 106 | 54 | } |
| 107 | - ]; | |
| 108 | - }, | |
| 109 | - handleClearData () { | |
| 110 | - this.data1 = []; | |
| 111 | - }, | |
| 112 | - refreshData(){ | |
| 113 | - let data = []; | |
| 114 | - for (let i = 0; i < 10; i++) { | |
| 115 | - data.push({ | |
| 116 | - data1: Math.floor(Math.random () * 10000), | |
| 117 | - data2: Math.floor(Math.random () * 1000000), | |
| 118 | - data3: Math.floor(Math.random () * 100000000), | |
| 119 | - data4: Math.floor(Math.random () * Math.random () * 10000), | |
| 120 | - data5: Math.floor(Math.random () * Math.random () * 1000000), | |
| 121 | - data6: Math.floor(Math.random () * Math.random () * 100000000), | |
| 122 | - }); | |
| 123 | - } | |
| 124 | - this.tableData1 = data; | |
| 125 | - }, | |
| 126 | - changePage(){ | |
| 127 | - this.refreshData(); | |
| 55 | + ] | |
| 56 | + } | |
| 57 | + }, | |
| 58 | + methods: { | |
| 59 | + handleClearCurrentRow () { | |
| 60 | + this.$refs.currentRowTable.clearCurrentRow(); | |
| 128 | 61 | } |
| 129 | 62 | } |
| 130 | 63 | } | ... | ... |
src/components/poptip/poptip.vue
| ... | ... | @@ -97,6 +97,9 @@ |
| 97 | 97 | transfer: { |
| 98 | 98 | type: Boolean, |
| 99 | 99 | default: false |
| 100 | + }, | |
| 101 | + popperClass: { | |
| 102 | + type: String | |
| 100 | 103 | } |
| 101 | 104 | }, |
| 102 | 105 | data () { |
| ... | ... | @@ -120,7 +123,8 @@ |
| 120 | 123 | return [ |
| 121 | 124 | `${prefixCls}-popper`, |
| 122 | 125 | { |
| 123 | - [`${prefixCls}-confirm`]: this.transfer && this.confirm | |
| 126 | + [`${prefixCls}-confirm`]: this.transfer && this.confirm, | |
| 127 | + [`${this.popperClass}`]: !!this.popperClass | |
| 124 | 128 | } |
| 125 | 129 | ]; |
| 126 | 130 | }, | ... | ... |
src/components/table/cell.vue
| 1 | 1 | <template> |
| 2 | 2 | <div :class="classes" ref="cell"> |
| 3 | - <template v-if="renderType === 'index'">{{naturalIndex + 1}}</template> | |
| 3 | + <template v-if="renderType === 'index'"><span>{{naturalIndex + 1}}</span></template> | |
| 4 | 4 | <template v-if="renderType === 'selection'"> |
| 5 | 5 | <Checkbox :value="checked" @click.native.stop="handleClick" @on-change="toggleSelect" :disabled="disabled"></Checkbox> |
| 6 | 6 | </template> | ... | ... |
src/components/table/table-head.vue
| ... | ... | @@ -23,6 +23,8 @@ |
| 23 | 23 | v-if="isPopperShow(column)" |
| 24 | 24 | v-model="column._filterVisible" |
| 25 | 25 | placement="bottom" |
| 26 | + popper-class="ivu-table-popper" | |
| 27 | + transfer | |
| 26 | 28 | @on-popper-hide="handleFilterHide(column._index)"> |
| 27 | 29 | <span :class="[prefixCls + '-filter']"> |
| 28 | 30 | <i class="ivu-icon ivu-icon-funnel" :class="{on: column._isFiltered}"></i> | ... | ... |
src/styles/components/table.less
| ... | ... | @@ -345,15 +345,13 @@ |
| 345 | 345 | &-footer{ |
| 346 | 346 | padding: 4px; |
| 347 | 347 | border-top: 1px solid @border-color-split; |
| 348 | - } | |
| 349 | - } | |
| 350 | - .ivu-poptip-popper{ | |
| 351 | - min-width: 0; | |
| 352 | - text-align: left; | |
| 353 | - } | |
| 354 | - thead .ivu-poptip-popper{ | |
| 355 | - .ivu-poptip-body{ | |
| 356 | - padding: 0; | |
| 348 | + overflow: hidden; | |
| 349 | + button:first-child{ | |
| 350 | + float: left; | |
| 351 | + } | |
| 352 | + button:last-child{ | |
| 353 | + float: right; | |
| 354 | + } | |
| 357 | 355 | } |
| 358 | 356 | } |
| 359 | 357 | |
| ... | ... | @@ -371,3 +369,10 @@ |
| 371 | 369 | visibility: hidden; |
| 372 | 370 | } |
| 373 | 371 | } |
| 372 | +.ivu-table-popper{ | |
| 373 | + min-width: 0; | |
| 374 | + text-align: left; | |
| 375 | + .ivu-poptip-body{ | |
| 376 | + padding: 0; | |
| 377 | + } | |
| 378 | +} | |
| 374 | 379 | \ No newline at end of file | ... | ... |