Commit daa9827c92ccdef437c420a47f724bc740b861cc
1 parent
6da6fffa
fixed #1553
Showing
3 changed files
with
114 additions
and
106 deletions
Show diff stats
examples/routers/cascader.vue
| 1 | 1 | <template> |
| 2 | - <div style="width: 400px;"> | |
| 3 | - <Row> | |
| 4 | - <i-col span="12"> | |
| 5 | - <Cascader transfer v-model="value3" :data="data" filterable></Cascader> | |
| 6 | - </i-col> | |
| 7 | - <i-col span="12"> | |
| 8 | - <Cascader v-model="value3" :data="data" filterable></Cascader> | |
| 9 | - </i-col> | |
| 10 | - </Row> | |
| 2 | + <div style="margin: 100px;width: 200px;"> | |
| 3 | + <Cascader :data="data" v-model="value1" change-on-select></Cascader> | |
| 11 | 4 | </div> |
| 12 | 5 | </template> |
| 13 | 6 | <script> |
| 14 | 7 | export default { |
| 15 | 8 | data () { |
| 16 | 9 | return { |
| 10 | + value1: [], | |
| 17 | 11 | data: [{ |
| 18 | 12 | value: 'beijing', |
| 19 | 13 | label: '北京', |
| ... | ... | @@ -60,8 +54,7 @@ |
| 60 | 54 | ] |
| 61 | 55 | } |
| 62 | 56 | ], |
| 63 | - }], | |
| 64 | - value3: [] | |
| 57 | + }] | |
| 65 | 58 | } |
| 66 | 59 | } |
| 67 | 60 | } | ... | ... |
src/components/cascader/caspanel.vue
| ... | ... | @@ -15,7 +15,7 @@ |
| 15 | 15 | <script> |
| 16 | 16 | import Casitem from './casitem.vue'; |
| 17 | 17 | import Emitter from '../../mixins/emitter'; |
| 18 | - import { findComponentUpward } from '../../utils/assist'; | |
| 18 | + import { findComponentUpward, findComponentDownward } from '../../utils/assist'; | |
| 19 | 19 | |
| 20 | 20 | let key = 1; |
| 21 | 21 | |
| ... | ... | @@ -84,6 +84,14 @@ |
| 84 | 84 | changeOnSelect: this.changeOnSelect, |
| 85 | 85 | fromInit: fromInit |
| 86 | 86 | }); |
| 87 | + | |
| 88 | + // #1553 | |
| 89 | + if (this.changeOnSelect) { | |
| 90 | + const Caspanel = findComponentDownward(this, 'Caspanel'); | |
| 91 | + if (Caspanel) { | |
| 92 | + Caspanel.$emit('on-clear', true); | |
| 93 | + } | |
| 94 | + } | |
| 87 | 95 | } else { |
| 88 | 96 | this.sublist = []; |
| 89 | 97 | this.dispatch('Cascader', 'on-result-change', { |
| ... | ... | @@ -135,9 +143,16 @@ |
| 135 | 143 | } |
| 136 | 144 | } |
| 137 | 145 | }); |
| 138 | - this.$on('on-clear', () => { | |
| 146 | + // deep for #1553 | |
| 147 | + this.$on('on-clear', (deep = false) => { | |
| 139 | 148 | this.sublist = []; |
| 140 | 149 | this.tmpItem = {}; |
| 150 | + if (deep) { | |
| 151 | + const Caspanel = findComponentDownward(this, 'Caspanel'); | |
| 152 | + if (Caspanel) { | |
| 153 | + Caspanel.$emit('on-clear', true); | |
| 154 | + } | |
| 155 | + } | |
| 141 | 156 | }); |
| 142 | 157 | } |
| 143 | 158 | }; | ... | ... |
src/locale/lang/vi-VN.js
| 1 | 1 | export default { |
| 2 | - i: { | |
| 3 | - select: { | |
| 4 | - placeholder: 'Chọn', | |
| 5 | - noMatch: 'Không tìm thấy', | |
| 6 | - loading: 'Đang tải' | |
| 7 | - }, | |
| 8 | - table: { | |
| 9 | - noDataText: 'Không có dữ liệu', | |
| 10 | - noFilteredDataText: 'Không có dữ liệu lọc', | |
| 11 | - confirmFilter: 'Xác nhận', | |
| 12 | - resetFilter: 'Làm lại', | |
| 13 | - clearFilter: 'Xóa hết' | |
| 14 | - }, | |
| 15 | - datepicker: { | |
| 16 | - selectDate: 'Chọn ngày', | |
| 17 | - selectTime: 'Chọn giờ', | |
| 18 | - startTime: 'Ngày bắt đầu', | |
| 19 | - endTime: 'Ngày kết thúc', | |
| 20 | - clear: 'Xóa', | |
| 21 | - ok: 'Đồng ý', | |
| 22 | - month: '', | |
| 23 | - month1: 'Tháng 1', | |
| 24 | - month2: 'Tháng 2', | |
| 25 | - month3: 'Tháng 3', | |
| 26 | - month4: 'Tháng 4', | |
| 27 | - month5: 'Tháng 5', | |
| 28 | - month6: 'Tháng 6', | |
| 29 | - month7: 'Tháng 7', | |
| 30 | - month8: 'Tháng 8', | |
| 31 | - month9: 'Tháng 9', | |
| 32 | - month10: 'Tháng 10', | |
| 33 | - month11: 'Tháng 11', | |
| 34 | - month12: 'Tháng 12', | |
| 35 | - year: '', | |
| 36 | - weeks: { | |
| 37 | - sun: 'CN', | |
| 38 | - mon: 'T2', | |
| 39 | - tue: 'T3', | |
| 40 | - wed: 'T4', | |
| 41 | - thu: 'T5', | |
| 42 | - fri: 'T6', | |
| 43 | - sat: 'T7' | |
| 44 | - }, | |
| 45 | - months: { | |
| 46 | - m1: 'Th.1', | |
| 47 | - m2: 'Th.2', | |
| 48 | - m3: 'Th.3', | |
| 49 | - m4: 'Th.4', | |
| 50 | - m5: 'Th.5', | |
| 51 | - m6: 'Th.6', | |
| 52 | - m7: 'Th.7', | |
| 53 | - m8: 'Th.8', | |
| 54 | - m9: 'Th.9', | |
| 55 | - m10: 'Th.10', | |
| 56 | - m11: 'Th.11', | |
| 57 | - m12: 'Th.12' | |
| 58 | - } | |
| 59 | - }, | |
| 60 | - transfer: { | |
| 61 | - titles: { | |
| 62 | - source: 'Nguồn', | |
| 63 | - target: 'Đích' | |
| 64 | - }, | |
| 65 | - filterPlaceholder: 'Nhập từ khóa', | |
| 66 | - notFoundText: 'Không tìm thấy' | |
| 67 | - }, | |
| 68 | - modal: { | |
| 69 | - okText: 'Đồng ý', | |
| 70 | - cancelText: 'Hủy bỏ' | |
| 71 | - }, | |
| 72 | - poptip: { | |
| 73 | - okText: 'Đồng ý', | |
| 74 | - cancelText: 'Hủy bỏ' | |
| 75 | - }, | |
| 76 | - page: { | |
| 77 | - prev: 'Trang trước', | |
| 78 | - next: 'Trang kế', | |
| 79 | - total: 'Tổng', | |
| 80 | - item: 'kết quả', | |
| 81 | - items: 'kết quả', | |
| 82 | - prev5: '5 trang trước', | |
| 83 | - next5: '5 trang kế', | |
| 84 | - page: '/trang', | |
| 85 | - goto: 'Tới trang', | |
| 86 | - p: '' | |
| 87 | - }, | |
| 88 | - rate: { | |
| 89 | - star: 'Sao', | |
| 90 | - stars: 'Sao' | |
| 91 | - }, | |
| 92 | - tree: { | |
| 93 | - emptyText: 'Không có dữ liệu' | |
| 2 | + i: { | |
| 3 | + select: { | |
| 4 | + placeholder: 'Chọn', | |
| 5 | + noMatch: 'Không tìm thấy', | |
| 6 | + loading: 'Đang tải' | |
| 7 | + }, | |
| 8 | + table: { | |
| 9 | + noDataText: 'Không có dữ liệu', | |
| 10 | + noFilteredDataText: 'Không có dữ liệu lọc', | |
| 11 | + confirmFilter: 'Xác nhận', | |
| 12 | + resetFilter: 'Làm lại', | |
| 13 | + clearFilter: 'Xóa hết' | |
| 14 | + }, | |
| 15 | + datepicker: { | |
| 16 | + selectDate: 'Chọn ngày', | |
| 17 | + selectTime: 'Chọn giờ', | |
| 18 | + startTime: 'Ngày bắt đầu', | |
| 19 | + endTime: 'Ngày kết thúc', | |
| 20 | + clear: 'Xóa', | |
| 21 | + ok: 'Đồng ý', | |
| 22 | + month: '', | |
| 23 | + month1: 'Tháng 1', | |
| 24 | + month2: 'Tháng 2', | |
| 25 | + month3: 'Tháng 3', | |
| 26 | + month4: 'Tháng 4', | |
| 27 | + month5: 'Tháng 5', | |
| 28 | + month6: 'Tháng 6', | |
| 29 | + month7: 'Tháng 7', | |
| 30 | + month8: 'Tháng 8', | |
| 31 | + month9: 'Tháng 9', | |
| 32 | + month10: 'Tháng 10', | |
| 33 | + month11: 'Tháng 11', | |
| 34 | + month12: 'Tháng 12', | |
| 35 | + year: '', | |
| 36 | + weeks: { | |
| 37 | + sun: 'CN', | |
| 38 | + mon: 'T2', | |
| 39 | + tue: 'T3', | |
| 40 | + wed: 'T4', | |
| 41 | + thu: 'T5', | |
| 42 | + fri: 'T6', | |
| 43 | + sat: 'T7' | |
| 44 | + }, | |
| 45 | + months: { | |
| 46 | + m1: 'Th.1', | |
| 47 | + m2: 'Th.2', | |
| 48 | + m3: 'Th.3', | |
| 49 | + m4: 'Th.4', | |
| 50 | + m5: 'Th.5', | |
| 51 | + m6: 'Th.6', | |
| 52 | + m7: 'Th.7', | |
| 53 | + m8: 'Th.8', | |
| 54 | + m9: 'Th.9', | |
| 55 | + m10: 'Th.10', | |
| 56 | + m11: 'Th.11', | |
| 57 | + m12: 'Th.12' | |
| 58 | + } | |
| 59 | + }, | |
| 60 | + transfer: { | |
| 61 | + titles: { | |
| 62 | + source: 'Nguồn', | |
| 63 | + target: 'Đích' | |
| 64 | + }, | |
| 65 | + filterPlaceholder: 'Nhập từ khóa', | |
| 66 | + notFoundText: 'Không tìm thấy' | |
| 67 | + }, | |
| 68 | + modal: { | |
| 69 | + okText: 'Đồng ý', | |
| 70 | + cancelText: 'Hủy bỏ' | |
| 71 | + }, | |
| 72 | + poptip: { | |
| 73 | + okText: 'Đồng ý', | |
| 74 | + cancelText: 'Hủy bỏ' | |
| 75 | + }, | |
| 76 | + page: { | |
| 77 | + prev: 'Trang trước', | |
| 78 | + next: 'Trang kế', | |
| 79 | + total: 'Tổng', | |
| 80 | + item: 'kết quả', | |
| 81 | + items: 'kết quả', | |
| 82 | + prev5: '5 trang trước', | |
| 83 | + next5: '5 trang kế', | |
| 84 | + page: '/trang', | |
| 85 | + goto: 'Tới trang', | |
| 86 | + p: '' | |
| 87 | + }, | |
| 88 | + rate: { | |
| 89 | + star: 'Sao', | |
| 90 | + stars: 'Sao' | |
| 91 | + }, | |
| 92 | + tree: { | |
| 93 | + emptyText: 'Không có dữ liệu' | |
| 94 | + } | |
| 94 | 95 | } |
| 95 | - } | |
| 96 | 96 | }; | ... | ... |