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 | }; | ... | ... |