Commit 8bca10707b9f9497e34688f5ac02440c46b2387b
1 parent
e011898c
update Input on-form-change trigger timing #198
update Input on-form-change trigger timing #198
Showing
2 changed files
with
28 additions
and
486 deletions
Show diff stats
src/components/input/input.vue
| @@ -150,7 +150,6 @@ | @@ -150,7 +150,6 @@ | ||
| 150 | }, | 150 | }, |
| 151 | handleChange (event) { | 151 | handleChange (event) { |
| 152 | this.$emit('on-change', event); | 152 | this.$emit('on-change', event); |
| 153 | - this.$dispatch('on-form-change', this.value); | ||
| 154 | }, | 153 | }, |
| 155 | resizeTextarea () { | 154 | resizeTextarea () { |
| 156 | const autosize = this.autosize; | 155 | const autosize = this.autosize; |
| @@ -169,6 +168,7 @@ | @@ -169,6 +168,7 @@ | ||
| 169 | this.$nextTick(() => { | 168 | this.$nextTick(() => { |
| 170 | this.resizeTextarea(); | 169 | this.resizeTextarea(); |
| 171 | }); | 170 | }); |
| 171 | + this.$dispatch('on-form-change', this.value); | ||
| 172 | } | 172 | } |
| 173 | }, | 173 | }, |
| 174 | ready () { | 174 | ready () { |
test/routers/form.vue
| 1 | <template> | 1 | <template> |
| 2 | - <div style="width: 600px"> | ||
| 3 | - <i-form v-ref:form-custom :model="formCustom" :rules="ruleCustom" :label-width="80"> | ||
| 4 | - <Form-item label="密码" prop="passwd"> | ||
| 5 | - <i-input type="password" :value.sync="formCustom.passwd"></i-input> | ||
| 6 | - </Form-item> | ||
| 7 | - <Form-item label="确认密码" prop="passwdCheck"> | ||
| 8 | - <i-input type="password" :value.sync="formCustom.passwdCheck"></i-input> | ||
| 9 | - </Form-item> | ||
| 10 | - <Form-item label="年龄" prop="age"> | ||
| 11 | - <i-input type="text" :value.sync="formCustom.age" number></i-input> | ||
| 12 | - </Form-item> | ||
| 13 | - <Form-item> | ||
| 14 | - <i-button type="primary" @click="handleSubmit('formCustom')">提交</i-button> | ||
| 15 | - <i-button type="ghost" @click="handleReset('formCustom')" style="margin-left: 8px">重置</i-button> | ||
| 16 | - </Form-item> | ||
| 17 | - </i-form> | ||
| 18 | - | ||
| 19 | - | ||
| 20 | - | ||
| 21 | - <i-form v-ref:form :model="form" :rules="rules" :label-width="100" label-position="right"> | ||
| 22 | - <form-item label="邮箱" prop="mail"> | ||
| 23 | - <i-input :value.sync="form.mail" placeholder="请输入邮箱"> | ||
| 24 | - <Icon type="ios-email-outline" slot="prepend"></Icon> | ||
| 25 | - </i-input> | ||
| 26 | - </form-item> | ||
| 27 | - <form-item label="密码" prop="passwd"> | ||
| 28 | - <i-input :value.sync="form.passwd"> | ||
| 29 | - <i-select slot="prepend" style="width: 80px"> | ||
| 30 | - <i-option value="http">http://</i-option> | ||
| 31 | - <i-option value="https">https://</i-option> | ||
| 32 | - </i-select> | ||
| 33 | - <i-select slot="append" style="width: 70px"> | ||
| 34 | - <i-option value="com">.com</i-option> | ||
| 35 | - <i-option value="org">.org</i-option> | ||
| 36 | - <i-option value="io">.io</i-option> | ||
| 37 | - </i-select> | ||
| 38 | - </i-input> | ||
| 39 | - </form-item> | ||
| 40 | - <form-item label="textarea" prop="textarea"> | ||
| 41 | - <i-input :value.sync="form.textarea" type="textarea" :autosize="{minRows: 2,maxRows: 5}" placeholder="请输入..."></i-input> | ||
| 42 | - </form-item> | ||
| 43 | - <form-item label="radio" prop="single"> | ||
| 44 | - <radio :checked.sync="form.single">Single</radio> | ||
| 45 | - </form-item> | ||
| 46 | - <form-item label="radioGroup" prop="group"> | ||
| 47 | - <Radio-group :model.sync="form.group"> | ||
| 48 | - <Radio value="apple"> | ||
| 49 | - <Icon type="social-apple"></Icon> | ||
| 50 | - <span>Apple</span> | ||
| 51 | - </Radio> | ||
| 52 | - <Radio value="android"> | ||
| 53 | - <Icon type="social-android"></Icon> | ||
| 54 | - <span>Android</span> | ||
| 55 | - </Radio> | ||
| 56 | - <Radio value="windows"> | ||
| 57 | - <Icon type="social-windows"></Icon> | ||
| 58 | - <span>Windows</span> | ||
| 59 | - </Radio> | ||
| 60 | - </Radio-group> | ||
| 61 | - </form-item> | ||
| 62 | - <form-item label="checkbox-g" prop="checkboxgroup"> | ||
| 63 | - <Checkbox-group :model.sync="form.checkboxgroup"> | ||
| 64 | - <Checkbox value="twitter"> | ||
| 65 | - <Icon type="social-twitter"></Icon> | ||
| 66 | - <span>Twitter</span> | ||
| 67 | - </Checkbox> | ||
| 68 | - <Checkbox value="facebook"> | ||
| 69 | - <Icon type="social-facebook"></Icon> | ||
| 70 | - <span>Facebook</span> | ||
| 71 | - </Checkbox> | ||
| 72 | - <Checkbox value="github"> | ||
| 73 | - <Icon type="social-github"></Icon> | ||
| 74 | - <span>Github</span> | ||
| 75 | - </Checkbox> | ||
| 76 | - <Checkbox value="snapchat"> | ||
| 77 | - <Icon type="social-snapchat"></Icon> | ||
| 78 | - <span>Snapchat</span> | ||
| 79 | - </Checkbox> | ||
| 80 | - <Checkbox value="twitter"> | ||
| 81 | - <Icon type="social-twitter"></Icon> | ||
| 82 | - <span>Twitter</span> | ||
| 83 | - </Checkbox> | ||
| 84 | - <Checkbox value="facebook"> | ||
| 85 | - <Icon type="social-facebook"></Icon> | ||
| 86 | - <span>Facebook</span> | ||
| 87 | - </Checkbox> | ||
| 88 | - <Checkbox value="github"> | ||
| 89 | - <Icon type="social-github"></Icon> | ||
| 90 | - <span>Github</span> | ||
| 91 | - </Checkbox> | ||
| 92 | - <Checkbox value="snapchat"> | ||
| 93 | - <Icon type="social-snapchat"></Icon> | ||
| 94 | - <span>Snapchat</span> | ||
| 95 | - </Checkbox> | ||
| 96 | - <Checkbox value="twitter"> | ||
| 97 | - <Icon type="social-twitter"></Icon> | ||
| 98 | - <span>Twitter</span> | ||
| 99 | - </Checkbox> | ||
| 100 | - <Checkbox value="facebook"> | ||
| 101 | - <Icon type="social-facebook"></Icon> | ||
| 102 | - <span>Facebook</span> | ||
| 103 | - </Checkbox> | ||
| 104 | - <Checkbox value="github"> | ||
| 105 | - <Icon type="social-github"></Icon> | ||
| 106 | - <span>Github</span> | ||
| 107 | - </Checkbox> | ||
| 108 | - <Checkbox value="snapchat"> | ||
| 109 | - <Icon type="social-snapchat"></Icon> | ||
| 110 | - <span>Snapchat</span> | ||
| 111 | - </Checkbox> | ||
| 112 | - <Checkbox value="twitter"> | ||
| 113 | - <Icon type="social-twitter"></Icon> | ||
| 114 | - <span>Twitter</span> | ||
| 115 | - </Checkbox> | ||
| 116 | - <Checkbox value="facebook"> | ||
| 117 | - <Icon type="social-facebook"></Icon> | ||
| 118 | - <span>Facebook</span> | ||
| 119 | - </Checkbox> | ||
| 120 | - <Checkbox value="github"> | ||
| 121 | - <Icon type="social-github"></Icon> | ||
| 122 | - <span>Github</span> | ||
| 123 | - </Checkbox> | ||
| 124 | - <Checkbox value="snapchat"> | ||
| 125 | - <Icon type="social-snapchat"></Icon> | ||
| 126 | - <span>Snapchat</span> | ||
| 127 | - </Checkbox> | ||
| 128 | - <Checkbox value="twitter"> | ||
| 129 | - <Icon type="social-twitter"></Icon> | ||
| 130 | - <span>Twitter</span> | ||
| 131 | - </Checkbox> | ||
| 132 | - <Checkbox value="facebook"> | ||
| 133 | - <Icon type="social-facebook"></Icon> | ||
| 134 | - <span>Facebook</span> | ||
| 135 | - </Checkbox> | ||
| 136 | - <Checkbox value="github"> | ||
| 137 | - <Icon type="social-github"></Icon> | ||
| 138 | - <span>Github</span> | ||
| 139 | - </Checkbox> | ||
| 140 | - <Checkbox value="snapchat"> | ||
| 141 | - <Icon type="social-snapchat"></Icon> | ||
| 142 | - <span>Snapchat</span> | ||
| 143 | - </Checkbox> | ||
| 144 | - <Checkbox value="twitter"> | ||
| 145 | - <Icon type="social-twitter"></Icon> | ||
| 146 | - <span>Twitter</span> | ||
| 147 | - </Checkbox> | ||
| 148 | - <Checkbox value="facebook"> | ||
| 149 | - <Icon type="social-facebook"></Icon> | ||
| 150 | - <span>Facebook</span> | ||
| 151 | - </Checkbox> | ||
| 152 | - <Checkbox value="github"> | ||
| 153 | - <Icon type="social-github"></Icon> | ||
| 154 | - <span>Github</span> | ||
| 155 | - </Checkbox> | ||
| 156 | - <Checkbox value="snapchat"> | ||
| 157 | - <Icon type="social-snapchat"></Icon> | ||
| 158 | - <span>Snapchat</span> | ||
| 159 | - </Checkbox> | ||
| 160 | - </Checkbox-group> | ||
| 161 | - </form-item> | ||
| 162 | - <form-item label="select" prop="select"> | ||
| 163 | - <i-select :model.sync="form.select" style="width:200px" clearable> | ||
| 164 | - <i-option v-for="item in cityList" :value="item.value">{{ item.label }}</i-option> | ||
| 165 | - </i-select> | ||
| 166 | - <i-select :model.sync="model11" filterable> | ||
| 167 | - <i-option v-for="item in cityList" :value="item.value">{{ item.label }}</i-option> | ||
| 168 | - </i-select> | ||
| 169 | - <i-select :model.sync="model12" filterable multiple> | ||
| 170 | - <i-option v-for="item in cityList" :value="item.value">{{ item.label }}</i-option> | ||
| 171 | - </i-select> | ||
| 172 | - </form-item> | ||
| 173 | - <form-item label="select多选" prop="selectm"> | ||
| 174 | - <i-select :model.sync="form.selectm" multiple style="width:260px"> | ||
| 175 | - <i-option v-for="item in cityList" :value="item.value">{{ item.label }}</i-option> | ||
| 176 | - </i-select> | ||
| 177 | - </form-item> | ||
| 178 | - <form-item label="多选滑块" prop="slider"> | ||
| 179 | - <Slider :value.sync="form.slider" range></Slider> | ||
| 180 | - </form-item> | ||
| 181 | - <form-item label="日期" prop="date"> | ||
| 182 | - <Time-picker :value.sync="form.date" type="time" placeholder="选择时间" style="width: 168px"></Time-picker> | ||
| 183 | - </form-item> | ||
| 184 | - <form-item label="两个日期" prop="date2"> | ||
| 185 | - <Date-picker :value.sync="form.date2" type="daterange" placement="bottom-start" placeholder="选择日期" @on-change="c"></Date-picker> | ||
| 186 | - </form-item> | ||
| 187 | - <form-item label="级联" prop="cascader"> | ||
| 188 | - <Cascader :data="data" :value.sync="form.cascader"></Cascader> | ||
| 189 | - </form-item> | ||
| 190 | - <form-item label="穿梭框" prop="targetKeys1"> | ||
| 191 | - <Transfer | ||
| 192 | - :data="form.transfer" | ||
| 193 | - :target-keys="form.targetKeys1" | ||
| 194 | - :render-format="render1" | ||
| 195 | - @on-change="handleChange1"></Transfer> | ||
| 196 | - </form-item> | ||
| 197 | - <form-item label="数字输入框" prop="input"> | ||
| 198 | - <Input-number :max="10" :min="1" :value.sync="form.input"></Input-number> | ||
| 199 | - </form-item> | ||
| 200 | - <form-item> | ||
| 201 | - <i-button type="primary" @click="onSubmit('form')">提交</i-button> | ||
| 202 | - <i-button type="ghost" @click="resetForm('form')">重置</i-button> | ||
| 203 | - </form-item> | ||
| 204 | - </i-form> | ||
| 205 | - </div> | 2 | + <i-form v-ref:form-inline :model="formInline" :rules="ruleInline" inline> |
| 3 | + <Form-item prop="user"> | ||
| 4 | + <i-input type="text" :value.sync="formInline.user" placeholder="Username"> | ||
| 5 | + <Icon type="ios-person-outline" slot="prepend"></Icon> | ||
| 6 | + </i-input> | ||
| 7 | + </Form-item> | ||
| 8 | + <Form-item prop="password"> | ||
| 9 | + <i-input type="password" :value.sync="formInline.password" placeholder="Password"> | ||
| 10 | + <Icon type="ios-locked-outline" slot="prepend"></Icon> | ||
| 11 | + </i-input> | ||
| 12 | + </Form-item> | ||
| 13 | + <Form-item> | ||
| 14 | + <i-button type="primary" @click="handleSubmit('formInline')">登录</i-button> | ||
| 15 | + </Form-item> | ||
| 16 | + </i-form> | ||
| 206 | </template> | 17 | </template> |
| 207 | <script> | 18 | <script> |
| 208 | export default { | 19 | export default { |
| 209 | - props: {}, | ||
| 210 | data () { | 20 | data () { |
| 211 | - const validatePass = (rule, value, callback) => { | ||
| 212 | - if (value === '') { | ||
| 213 | - callback(new Error('请输入密码')); | ||
| 214 | - } else { | ||
| 215 | - if (this.formCustom.passwdCheck !== '') { | ||
| 216 | - this.$refs.formCustom.validateField('passwdCheck'); | ||
| 217 | - } | ||
| 218 | - callback(); | ||
| 219 | - } | ||
| 220 | - }; | ||
| 221 | - const validatePassCheck = (rule, value, callback) => { | ||
| 222 | - if (value === '') { | ||
| 223 | - callback(new Error('请再次输入密码')); | ||
| 224 | - } else if (value !== this.formCustom.passwd) { | ||
| 225 | - callback(new Error('两次输入密码不一致!')); | ||
| 226 | - } else { | ||
| 227 | - callback(); | ||
| 228 | - } | ||
| 229 | - }; | ||
| 230 | - const validateAge = (rule, value, callback) => { | ||
| 231 | - if (!value) { | ||
| 232 | - return callback(new Error('年龄不能为空')); | ||
| 233 | - } | ||
| 234 | - setTimeout(() => { | ||
| 235 | - if (!Number.isInteger(value)) { | ||
| 236 | - callback(new Error('请输入数字值')); | ||
| 237 | - } else { | ||
| 238 | - if (value < 18) { | ||
| 239 | - callback(new Error('必须年满18岁')); | ||
| 240 | - } else { | ||
| 241 | - callback(); | ||
| 242 | - } | ||
| 243 | - } | ||
| 244 | - }, 1000); | ||
| 245 | - }; | ||
| 246 | - | ||
| 247 | return { | 21 | return { |
| 248 | - data: [{ | ||
| 249 | - value: 'beijing', | ||
| 250 | - label: '北京', | ||
| 251 | - children: [ | ||
| 252 | - { | ||
| 253 | - value: 'gugong', | ||
| 254 | - label: '故宫' | ||
| 255 | - }, | ||
| 256 | - { | ||
| 257 | - value: 'tiantan', | ||
| 258 | - label: '天坛' | ||
| 259 | - }, | ||
| 260 | - { | ||
| 261 | - value: 'wangfujing', | ||
| 262 | - label: '王府井' | ||
| 263 | - } | ||
| 264 | - ] | ||
| 265 | - }, { | ||
| 266 | - value: 'jiangsu', | ||
| 267 | - label: '江苏', | ||
| 268 | - children: [ | ||
| 269 | - { | ||
| 270 | - value: 'nanjing', | ||
| 271 | - label: '南京', | ||
| 272 | - children: [ | ||
| 273 | - { | ||
| 274 | - value: 'fuzimiao', | ||
| 275 | - label: '夫子庙', | ||
| 276 | - } | ||
| 277 | - ] | ||
| 278 | - }, | ||
| 279 | - { | ||
| 280 | - value: 'suzhou', | ||
| 281 | - label: '苏州', | ||
| 282 | - children: [ | ||
| 283 | - { | ||
| 284 | - value: 'zhuozhengyuan', | ||
| 285 | - label: '拙政园', | ||
| 286 | - }, | ||
| 287 | - { | ||
| 288 | - value: 'shizilin', | ||
| 289 | - label: '狮子林', | ||
| 290 | - } | ||
| 291 | - ] | ||
| 292 | - } | ||
| 293 | - ], | ||
| 294 | - }], | ||
| 295 | - cityList: [ | ||
| 296 | - { | ||
| 297 | - value: 'beijing', | ||
| 298 | - label: '北京市' | ||
| 299 | - }, | ||
| 300 | - { | ||
| 301 | - value: 'shanghai', | ||
| 302 | - label: '上海市' | ||
| 303 | - }, | ||
| 304 | - { | ||
| 305 | - value: 'shenzhen', | ||
| 306 | - label: '深圳市' | ||
| 307 | - }, | ||
| 308 | - { | ||
| 309 | - value: 'hangzhou', | ||
| 310 | - label: '杭州市' | ||
| 311 | - }, | ||
| 312 | - { | ||
| 313 | - value: 'nanjing', | ||
| 314 | - label: '南京市' | ||
| 315 | - }, | ||
| 316 | - { | ||
| 317 | - value: 'chongqing', | ||
| 318 | - label: '重庆市' | ||
| 319 | - } | ||
| 320 | - ], | ||
| 321 | - form: { | ||
| 322 | - mail: '', | ||
| 323 | - passwd: '', | ||
| 324 | - single: false, | ||
| 325 | - group: '', | ||
| 326 | - checkboxgroup: [], | ||
| 327 | - select: '', | ||
| 328 | - selectm: [], | ||
| 329 | - slider: [40, 50], | ||
| 330 | - date: '', | ||
| 331 | - date2: '', | ||
| 332 | - cascader: [], | ||
| 333 | - transfer: this.getMockData(), | ||
| 334 | - targetKeys1: this.getTargetKeys(), | ||
| 335 | - input: 1, | ||
| 336 | - textarea: '' | ||
| 337 | - }, | ||
| 338 | - rules: { | ||
| 339 | - mail: [ | ||
| 340 | - { | ||
| 341 | - required: true, message: '请输入正确的邮箱', trigger: 'blur', type: 'email' | ||
| 342 | - }, | ||
| 343 | - { | ||
| 344 | - min: 3, max: 50, message: '长度在 3 到 50 个字符', trigger: 'blur' | ||
| 345 | - }, | ||
| 346 | - { | ||
| 347 | - min: 3, max: 50, message: '长度在 3 到 5 个字符', trigger: 'change' | ||
| 348 | - } | ||
| 349 | - ], | ||
| 350 | - passwd: [ | ||
| 351 | - { | ||
| 352 | - required: true, message: '请输入密码', trigger: 'blur' | ||
| 353 | - } | ||
| 354 | - ], | ||
| 355 | - group: [ | ||
| 356 | - { | ||
| 357 | - required: true, message: '请单选组' | ||
| 358 | - } | ||
| 359 | - ], | ||
| 360 | - checkboxgroup: [ | ||
| 361 | - { | ||
| 362 | - required: true, message: '至少选择2个', min: 2, type: 'array', | ||
| 363 | - }, | ||
| 364 | - { | ||
| 365 | - required: true, message: '至多选择3个', max: 3, type: 'array' | ||
| 366 | - } | ||
| 367 | - ], | ||
| 368 | - select: [ | ||
| 369 | - { | ||
| 370 | - required: true | ||
| 371 | - } | ||
| 372 | - ], | ||
| 373 | - slider: [ | ||
| 374 | - { | ||
| 375 | - type: 'array', len: 2, | ||
| 376 | - fields: { | ||
| 377 | - 0: { | ||
| 378 | - type: 'number', min: 30, 'message': '不能小于30' | ||
| 379 | - }, | ||
| 380 | - 1: { | ||
| 381 | - type: 'number', max: 90, 'message': '不能大于90' | ||
| 382 | - } | ||
| 383 | - } | ||
| 384 | - } | ||
| 385 | - ], | ||
| 386 | - date: [ | ||
| 387 | - { | ||
| 388 | - required: true | ||
| 389 | - }, | ||
| 390 | - { | ||
| 391 | - type: 'date' | ||
| 392 | - } | ||
| 393 | - ], | ||
| 394 | - date2: [ | ||
| 395 | - { | ||
| 396 | - type: 'array', len: 2, | ||
| 397 | - fields: { | ||
| 398 | - 0: { | ||
| 399 | - type: 'date', required: true | ||
| 400 | - }, | ||
| 401 | - 1: { | ||
| 402 | - type: 'date', required: true | ||
| 403 | - } | ||
| 404 | - } | ||
| 405 | - } | ||
| 406 | - ], | ||
| 407 | - cascader: [ | ||
| 408 | - { | ||
| 409 | - type: 'array', required: true | ||
| 410 | - } | ||
| 411 | - ], | ||
| 412 | - targetKeys1: [ | ||
| 413 | - { | ||
| 414 | - type: 'array', min: 8, max: 10 | ||
| 415 | - } | ||
| 416 | - ], | ||
| 417 | - input: [ | ||
| 418 | - { | ||
| 419 | - type: 'number', min: 1, max: 4 | ||
| 420 | - } | ||
| 421 | - ], | ||
| 422 | - textarea: [ | ||
| 423 | - { | ||
| 424 | - required: true, trigger: 'blur' | ||
| 425 | - }, | ||
| 426 | - { | ||
| 427 | - type: 'string', min: 10 | ||
| 428 | - } | ||
| 429 | - ] | ||
| 430 | - }, | ||
| 431 | - formCustom: { | ||
| 432 | - passwd: '', | ||
| 433 | - passwdCheck: '', | ||
| 434 | - age: '' | 22 | + formInline: { |
| 23 | + user: '', | ||
| 24 | + password: '' | ||
| 435 | }, | 25 | }, |
| 436 | - ruleCustom: { | ||
| 437 | - passwd: [ | ||
| 438 | - { validator: validatePass, trigger: 'blur' } | 26 | + ruleInline: { |
| 27 | + user: [ | ||
| 28 | + { required: true, message: '请填写用户名', trigger: 'change' } | ||
| 439 | ], | 29 | ], |
| 440 | - passwdCheck: [ | ||
| 441 | - { validator: validatePassCheck, trigger: 'blur' } | ||
| 442 | - ], | ||
| 443 | - age: [ | ||
| 444 | - { validator: validateAge, trigger: 'blur' } | 30 | + password: [ |
| 31 | + { required: true, message: '请填写密码', trigger: 'blur' }, | ||
| 32 | + { type: 'string', min: 6, message: '密码长度不能小于6位', trigger: 'change' } | ||
| 445 | ] | 33 | ] |
| 446 | } | 34 | } |
| 447 | } | 35 | } |
| 448 | }, | 36 | }, |
| 449 | - computed: {}, | ||
| 450 | methods: { | 37 | methods: { |
| 451 | - onSubmit (formName) { | ||
| 452 | - this.$refs[formName].validate((valid) => { | ||
| 453 | - if (valid) { | ||
| 454 | - this.$Message.success('submit!'); | ||
| 455 | - } else { | ||
| 456 | - this.$Message.error('error submit!'); | ||
| 457 | - return false; | ||
| 458 | - } | ||
| 459 | - }); | ||
| 460 | - }, | ||
| 461 | - resetForm (formName) { | ||
| 462 | - this.$refs[formName].resetFields(); | ||
| 463 | - }, | ||
| 464 | - c (s) { | ||
| 465 | - console.log(this.form.date) | ||
| 466 | - }, | ||
| 467 | - getMockData () { | ||
| 468 | - let mockData = []; | ||
| 469 | - for (let i = 1; i <= 20; i++) { | ||
| 470 | - mockData.push({ | ||
| 471 | - key: i.toString(), | ||
| 472 | - label: '内容' + i, | ||
| 473 | - description: '内容' + i + '的描述信息', | ||
| 474 | - disabled: Math.random() * 3 < 1 | ||
| 475 | - }); | ||
| 476 | - } | ||
| 477 | - return mockData; | ||
| 478 | - }, | ||
| 479 | - getTargetKeys () { | ||
| 480 | - return this.getMockData() | ||
| 481 | - .filter(() => Math.random() * 2 > 1) | ||
| 482 | - .map(item => item.key); | ||
| 483 | - }, | ||
| 484 | - render1 (item) { | ||
| 485 | - return item.label; | ||
| 486 | - }, | ||
| 487 | - handleChange1 (newTargetKeys, direction, moveKeys) { | ||
| 488 | - console.log(newTargetKeys); | ||
| 489 | - console.log(direction); | ||
| 490 | - console.log(moveKeys); | ||
| 491 | - this.form.targetKeys1 = newTargetKeys; | ||
| 492 | - }, | ||
| 493 | - handleSubmit (name) { | 38 | + handleSubmit(name) { |
| 494 | this.$refs[name].validate((valid) => { | 39 | this.$refs[name].validate((valid) => { |
| 495 | if (valid) { | 40 | if (valid) { |
| 496 | this.$Message.success('提交成功!'); | 41 | this.$Message.success('提交成功!'); |
| @@ -498,10 +43,7 @@ | @@ -498,10 +43,7 @@ | ||
| 498 | this.$Message.error('表单验证失败!'); | 43 | this.$Message.error('表单验证失败!'); |
| 499 | } | 44 | } |
| 500 | }) | 45 | }) |
| 501 | - }, | ||
| 502 | - handleReset (name) { | ||
| 503 | - this.$refs[name].resetFields(); | ||
| 504 | } | 46 | } |
| 505 | } | 47 | } |
| 506 | - }; | ||
| 507 | -</script> | ||
| 508 | \ No newline at end of file | 48 | \ No newline at end of file |
| 49 | + } | ||
| 50 | +</script> |