Commit 04e5e3cd297abfb40d5306ffd49801c5c68ac717

Authored by 梁灏
1 parent 21dad188

prevent dispatch event

prevent dispatch event
examples/routers/form.vue
... ... @@ -5,6 +5,9 @@
5 5 <Form-item prop="date">
6 6 <Date-picker type="date" placeholder="选择日期" v-model="formInline.date"></Date-picker>
7 7 </Form-item>
  8 + <Form-item prop="value2">
  9 + <Cascader :data="formInline.data" v-model="formInline.value2" change-on-select></Cascader>
  10 + </Form-item>
8 11 <Form-item prop="user">
9 12 <Input v-model="formInline.user">
10 13 </Form-item>
... ... @@ -20,7 +23,55 @@
20 23 return {
21 24 formInline: {
22 25 date: new Date(),
23   - user: ''
  26 + user: '',
  27 + value2: [],
  28 + data: [{
  29 + value: 'beijing',
  30 + label: '北京',
  31 + children: [
  32 + {
  33 + value: 'gugong',
  34 + label: '故宫'
  35 + },
  36 + {
  37 + value: 'tiantan',
  38 + label: '天坛'
  39 + },
  40 + {
  41 + value: 'wangfujing',
  42 + label: '王府井'
  43 + }
  44 + ]
  45 + }, {
  46 + value: 'jiangsu',
  47 + label: '江苏',
  48 + children: [
  49 + {
  50 + value: 'nanjing',
  51 + label: '南京',
  52 + children: [
  53 + {
  54 + value: 'fuzimiao',
  55 + label: '夫子庙',
  56 + }
  57 + ]
  58 + },
  59 + {
  60 + value: 'suzhou',
  61 + label: '苏州',
  62 + children: [
  63 + {
  64 + value: 'zhuozhengyuan',
  65 + label: '拙政园',
  66 + },
  67 + {
  68 + value: 'shizilin',
  69 + label: '狮子林',
  70 + }
  71 + ]
  72 + }
  73 + ],
  74 + }]
24 75 },
25 76 ruleInline: {
26 77 date: [
... ... @@ -43,6 +94,14 @@
43 94 message: '请输入2',
44 95 trigger: 'blur'
45 96 }
  97 + ],
  98 + value2: [
  99 + {
  100 + required: true,
  101 + type: 'array',
  102 + message: '请输入',
  103 + trigger: 'change'
  104 + }
46 105 ]
47 106 }
48 107 }
... ...
src/components/cascader/cascader.vue
... ... @@ -198,15 +198,6 @@
198 198 }
199 199 });
200 200 },
201   - // todo 事件 这是因为内部的input会触发,应该组织
202   -// events: {
203   -// 'on-form-blur' () {
204   -// return false;
205   -// },
206   -// 'on-form-change' () {
207   -// return false;
208   -// }
209   -// },
210 201 watch: {
211 202 visible (val) {
212 203 if (val) {
... ...
src/components/input/input.vue
... ... @@ -152,7 +152,7 @@
152 152 },
153 153 handleBlur () {
154 154 this.$emit('on-blur');
155   - if (!findComponentUpward(this, ['DatePicker', 'TimePicker'])) {
  155 + if (!findComponentUpward(this, ['DatePicker', 'TimePicker', 'Cascader'])) {
156 156 this.dispatch('FormItem', 'on-form-blur', this.currentValue);
157 157 }
158 158 },
... ... @@ -171,7 +171,7 @@
171 171 this.resizeTextarea();
172 172 });
173 173 this.currentValue = value;
174   - if (!findComponentUpward(this, ['DatePicker', 'TimePicker'])) {
  174 + if (!findComponentUpward(this, ['DatePicker', 'TimePicker', 'Cascader'])) {
175 175 this.dispatch('FormItem', 'on-form-change', value);
176 176 }
177 177 },
... ...