Commit cd78c9c488698dcb8c669a3e85d2acca597a373f

Authored by 梁灏
1 parent 7778edfa

some comps support dispatch event to FormItem

some comps support dispatch event to FormItem
src/components/cascader/cascader.vue
... ... @@ -162,8 +162,10 @@
162 162 emitValue (val, oldVal) {
163 163 if (JSON.stringify(val) !== oldVal) {
164 164 this.$emit('on-change', this.currentValue, JSON.parse(JSON.stringify(this.selected)));
165   - // todo 事件
166   -// this.$dispatch('on-form-change', this.currentValue, JSON.parse(JSON.stringify(this.selected)));
  165 + this.dispatch('FormItem', 'on-form-change', {
  166 + value: this.currentValue,
  167 + selected: JSON.parse(JSON.stringify(this.selected))
  168 + });
167 169 }
168 170 }
169 171 },
... ...
src/components/checkbox/checkbox-group.vue
... ... @@ -4,10 +4,12 @@
4 4 </div>
5 5 </template>
6 6 <script>
  7 + import Emitter from '../../mixins/emitter';
7 8 const prefixCls = 'ivu-checkbox-group';
8 9  
9 10 export default {
10 11 name: 'CheckboxGroup',
  12 + mixins: [ Emitter ],
11 13 props: {
12 14 value: {
13 15 type: Array,
... ... @@ -46,8 +48,7 @@
46 48 this.currentValue = data;
47 49 this.$emit('input', data);
48 50 this.$emit('on-change', data);
49   - // todo 事件
50   -// this.$dispatch('on-form-change', data);
  51 + this.dispatch('FormItem', 'on-form-change', data);
51 52 }
52 53 },
53 54 watch: {
... ...
src/components/checkbox/checkbox.vue
... ... @@ -22,10 +22,13 @@
22 22 </label>
23 23 </template>
24 24 <script>
  25 + import Emitter from '../../mixins/emitter';
  26 +
25 27 const prefixCls = 'ivu-checkbox';
26 28  
27 29 export default {
28 30 name: 'Checkbox',
  31 + mixins: [ Emitter ],
29 32 props: {
30 33 disabled: {
31 34 type: Boolean,
... ... @@ -106,8 +109,7 @@
106 109 this.$parent.change(this.model);
107 110 } else {
108 111 this.$emit('on-change', checked);
109   - // todo 事件
110   -// this.$dispatch('on-form-change', checked);
  112 + this.dispatch('FormItem', 'on-form-change', checked);
111 113 }
112 114 },
113 115 updateModel () {
... ...
src/components/date-picker/picker.vue
... ... @@ -33,6 +33,7 @@
33 33 import clickoutside from '../../directives/clickoutside';
34 34 import { oneOf } from '../../utils/assist';
35 35 import { formatDate, parseDate } from './util';
  36 + import Emitter from '../../mixins/emitter';
36 37  
37 38 const prefixCls = 'ivu-date-picker';
38 39  
... ... @@ -138,6 +139,7 @@
138 139 };
139 140  
140 141 export default {
  142 + mixins: [ Emitter ],
141 143 components: { iInput, Drop },
142 144 directives: { clickoutside },
143 145 props: {
... ... @@ -363,8 +365,7 @@
363 365 this.internalValue = '';
364 366 this.currentValue = '';
365 367 this.$emit('on-clear');
366   - // todo 事件
367   -// this.$dispatch('on-form-change', '');
  368 + this.dispatch('FormItem', 'on-form-change', '');
368 369 },
369 370 showPicker () {
370 371 if (!this.picker) {
... ... @@ -430,8 +431,7 @@
430 431 }
431 432  
432 433 this.$emit('on-change', newDate);
433   - // todo 事件
434   -// this.$dispatch('on-form-change', newDate);
  434 + this.dispatch('FormItem', 'on-form-change', newDate);
435 435 }
436 436 },
437 437 watch: {
... ...
src/components/input-number/input-number.vue
... ... @@ -29,6 +29,7 @@
29 29 </template>
30 30 <script>
31 31 import { oneOf } from '../../utils/assist';
  32 + import Emitter from '../../mixins/emitter';
32 33  
33 34 const prefixCls = 'ivu-input-number';
34 35 const iconPrefixCls = 'ivu-icon';
... ... @@ -62,6 +63,7 @@
62 63  
63 64 export default {
64 65 name: 'InputNumber',
  66 + mixins: [ Emitter ],
65 67 props: {
66 68 max: {
67 69 type: Number,
... ... @@ -201,8 +203,7 @@
201 203 this.currentValue = val;
202 204 this.$emit('input', val);
203 205 this.$emit('on-change', val);
204   - // todo 事件
205   -// this.$dispatch('on-form-change', val);
  206 + this.dispatch('FormItem', 'on-form-change', val);
206 207 });
207 208 },
208 209 focus () {
... ...
src/components/input/input.vue
... ... @@ -45,11 +45,13 @@
45 45 <script>
46 46 import { oneOf } from '../../utils/assist';
47 47 import calcTextareaHeight from '../../utils/calcTextareaHeight';
  48 + import Emitter from '../../mixins/emitter';
48 49  
49 50 const prefixCls = 'ivu-input';
50 51  
51 52 export default {
52 53 name: 'Input',
  54 + mixins: [ Emitter ],
53 55 props: {
54 56 type: {
55 57 validator (value) {
... ... @@ -150,8 +152,7 @@
150 152 },
151 153 handleBlur () {
152 154 this.$emit('on-blur');
153   - // todo 事件
154   -// this.$dispatch('on-form-blur', this.currentValue);
  155 + this.dispatch('FormItem', 'on-form-blur', this.currentValue);
155 156 },
156 157 handleInput (event) {
157 158 const value = event.target.value;
... ... @@ -168,8 +169,7 @@
168 169 this.resizeTextarea();
169 170 });
170 171 this.currentValue = value;
171   - // todo 事件
172   -// this.$dispatch('on-form-change', value);
  172 + this.dispatch('FormItem', 'on-form-change', value);
173 173 },
174 174 resizeTextarea () {
175 175 const autosize = this.autosize;
... ...
src/components/radio/radio-group.vue
... ... @@ -5,11 +5,13 @@
5 5 </template>
6 6 <script>
7 7 import { oneOf } from '../../utils/assist';
  8 + import Emitter from '../../mixins/emitter';
8 9  
9 10 const prefixCls = 'ivu-radio-group';
10 11  
11 12 export default {
12 13 name: 'RadioGroup',
  14 + mixins: [ Emitter ],
13 15 props: {
14 16 value: {
15 17 type: [String, Number],
... ... @@ -63,8 +65,7 @@
63 65 this.updateValue();
64 66 this.$emit('input', data.value);
65 67 this.$emit('on-change', data.value);
66   - // todo 事件
67   -// this.$dispatch('on-form-change', data.value);
  68 + this.dispatch('FormItem', 'on-form-change', data.value);
68 69 }
69 70 },
70 71 watch: {
... ...
src/components/radio/radio.vue
... ... @@ -12,10 +12,13 @@
12 12 </label>
13 13 </template>
14 14 <script>
  15 + import Emitter from '../../mixins/emitter';
  16 +
15 17 const prefixCls = 'ivu-radio';
16 18  
17 19 export default {
18 20 name: 'Radio',
  21 + mixins: [ Emitter ],
19 22 props: {
20 23 value: {
21 24 type: Boolean,
... ... @@ -87,8 +90,7 @@
87 90 }
88 91 if (!this.group) {
89 92 this.$emit('on-change', checked);
90   - // todo 事件
91   -// this.$dispatch('on-form-change', checked);
  93 + this.dispatch('FormItem', 'on-form-change', checked);
92 94 }
93 95 },
94 96 updateValue () {
... ...
src/components/rate/rate.vue
... ... @@ -123,8 +123,7 @@
123 123 this.currentValue = value;
124 124 this.$emit('input', value);
125 125 this.$emit('on-change', value);
126   - // @todo
127   -// this.$dispatch('on-form-change', value);
  126 + this.dispatch('FormItem', 'on-form-change', value);
128 127 }
129 128 }
130 129 };
... ...
src/components/select/select.vue
... ... @@ -321,15 +321,13 @@
321 321 value: value,
322 322 label: label
323 323 });
324   - // todo 事件
325   -// this.$dispatch('on-form-change', {
326   -// value: value,
327   -// label: label
328   -// });
  324 + this.dispatch('FormItem', 'on-form-change', {
  325 + value: value,
  326 + label: label
  327 + });
329 328 } else {
330 329 this.$emit('on-change', value);
331   - // todo 事件
332   -// this.$dispatch('on-form-change', value);
  330 + this.dispatch('FormItem', 'on-form-change', value);
333 331 }
334 332 }
335 333 }
... ... @@ -358,12 +356,10 @@
358 356 if (!init) {
359 357 if (this.labelInValue) {
360 358 this.$emit('on-change', hybridValue);
361   - // todo 事件
362   -// this.$dispatch('on-form-change', hybridValue);
363   -// } else {
  359 + this.dispatch('FormItem', 'on-form-change', hybridValue);
  360 + } else {
364 361 this.$emit('on-change', value);
365   - // todo 事件
366   -// this.$dispatch('on-form-change', value);
  362 + this.dispatch('FormItem', 'on-form-change', value);
367 363 }
368 364 }
369 365 }
... ...
src/components/slider/slider.vue
... ... @@ -48,11 +48,13 @@
48 48 import InputNumber from '../../components/input-number/input-number.vue';
49 49 import Tooltip from '../../components/tooltip/tooltip.vue';
50 50 import { getStyle, oneOf } from '../../utils/assist';
  51 + import Emitter from '../../mixins/emitter';
51 52  
52 53 const prefixCls = 'ivu-slider';
53 54  
54 55 export default {
55 56 name: 'Slider',
  57 + mixins: [ Emitter ],
56 58 components: { InputNumber, Tooltip },
57 59 props: {
58 60 min: {
... ... @@ -308,8 +310,7 @@
308 310 if (!this.dragging) {
309 311 if (this.currentValue !== this.oldSingleValue) {
310 312 this.$emit('on-change', this.currentValue);
311   - // todo 事件
312   -// this.$dispatch('on-form-change', this.currentValue);
  313 + this.dispatch('FormItem', 'on-form-change', this.currentValue);
313 314 this.oldSingleValue = this.currentValue;
314 315 }
315 316 }
... ... @@ -322,8 +323,7 @@
322 323 this.currentValue = val;
323 324 this.setSinglePosition(val);
324 325 this.$emit('on-change', this.currentValue);
325   - // todo 事件
326   -// this.$dispatch('on-form-change', this.currentValue);
  326 + this.dispatch('FormItem', 'on-form-change', this.currentValue);
327 327 },
328 328 // for range use first
329 329 onFirstButtonDown (event) {
... ... @@ -366,8 +366,7 @@
366 366 if (!this.firstDragging) {
367 367 if (this.currentValue[0] !== this.oldFirstValue) {
368 368 this.$emit('on-change', this.currentValue);
369   - // todo 事件
370   -// this.$dispatch('on-form-change', this.currentValue);
  369 + this.dispatch('FormItem', 'on-form-change', this.currentValue);
371 370 this.oldFirstValue = this.currentValue[0];
372 371 }
373 372 }
... ... @@ -417,8 +416,7 @@
417 416 if (!this.secondDragging) {
418 417 if (this.currentValue[1] !== this.oldSecondValue) {
419 418 this.$emit('on-change', this.currentValue);
420   - // todo 事件
421   -// this.$dispatch('on-form-change', this.currentValue);
  419 + this.dispatch('FormItem', 'on-form-change', this.currentValue);
422 420 this.oldSecondValue = this.currentValue[1];
423 421 }
424 422 }
... ...
src/components/switch/switch.vue
... ... @@ -8,11 +8,13 @@
8 8 </template>
9 9 <script>
10 10 import { oneOf } from '../../utils/assist';
  11 + import Emitter from '../../mixins/emitter';
11 12  
12 13 const prefixCls = 'ivu-switch';
13 14  
14 15 export default {
15 16 name: 'Switch',
  17 + mixins: [ Emitter ],
16 18 props: {
17 19 value: {
18 20 type: Boolean,
... ... @@ -58,8 +60,7 @@
58 60 this.currentValue = checked;
59 61 this.$emit('input', checked);
60 62 this.$emit('on-change', checked);
61   - // todo 事件
62   -// this.$dispatch('on-form-change', this.checked);
  63 + this.dispatch('FormItem', 'on-form-change', data.checked);
63 64 }
64 65 },
65 66 watch: {
... ...
src/components/transfer/transfer.vue
... ... @@ -44,10 +44,12 @@
44 44 import List from './list.vue';
45 45 import Operation from './operation.vue';
46 46 import { t } from '../../locale';
  47 + import Emitter from '../../mixins/emitter';
47 48  
48 49 const prefixCls = 'ivu-transfer';
49 50  
50 51 export default {
  52 + mixins: [ Emitter ],
51 53 render (createElement) {
52 54  
53 55 function cloneVNode (vnode) {
... ... @@ -256,8 +258,11 @@
256 258  
257 259 this.$refs[opposite].toggleSelectAll(false);
258 260 this.$emit('on-change', newTargetKeys, direction, moveKeys);
259   - // todo 事件
260   -// this.$dispatch('on-form-change', newTargetKeys, direction, moveKeys);
  261 + this.dispatch('FormItem', 'on-form-change', {
  262 + tarketKeys: newTargetKeys,
  263 + direction: direction,
  264 + moveKeys: moveKeys
  265 + });
261 266 },
262 267 handleLeftCheckedKeysChange (keys) {
263 268 this.leftCheckedKeys = keys;
... ...
src/components/upload/upload.vue
... ... @@ -27,11 +27,13 @@
27 27 import UploadList from './upload-list.vue';
28 28 import ajax from './ajax';
29 29 import { oneOf } from '../../utils/assist';
  30 + import Emitter from '../../mixins/emitter';
30 31  
31 32 const prefixCls = 'ivu-upload';
32 33  
33 34 export default {
34 35 name: 'Upload',
  36 + mixins: [ Emitter ],
35 37 components: { UploadList },
36 38 props: {
37 39 action: {
... ... @@ -277,8 +279,7 @@
277 279 _file.status = 'finished';
278 280 _file.response = res;
279 281  
280   - // todo 事件
281   -// this.$dispatch('on-form-change', _file);
  282 + this.dispatch('FormItem', 'on-form-change', _file);
282 283 this.onSuccess(res, _file, this.fileList);
283 284  
284 285 setTimeout(() => {
... ...