mirror of https://github.com/ElemeFE/element
				
				
				
			
							parent
							
								
									321a908caf
								
							
						
					
					
						commit
						9a2f6897c7
					
				| 
						 | 
				
			
			@ -204,6 +204,12 @@
 | 
			
		|||
      if (this.indeterminate) {
 | 
			
		||||
        this.$el.setAttribute('aria-controls', this.controls);
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    watch: {
 | 
			
		||||
      value(value) {
 | 
			
		||||
        this.dispatch('ElFormItem', 'el.form.change', value);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
</script>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -476,6 +476,58 @@ describe('Form', () => {
 | 
			
		|||
        }, DELAY);
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
    it('checkbox', done => {
 | 
			
		||||
      vm = createVue({
 | 
			
		||||
        template: `
 | 
			
		||||
          <el-form :model="form" :rules="rules" ref="form">
 | 
			
		||||
            <el-form-item label="是否接受协议" prop="accept" ref="field">
 | 
			
		||||
              <el-checkbox v-model="form.accept">
 | 
			
		||||
                <span>接受协议</span>
 | 
			
		||||
              </el-checkbox>
 | 
			
		||||
            </el-form-item>
 | 
			
		||||
          </el-form>
 | 
			
		||||
        `,
 | 
			
		||||
        data() {
 | 
			
		||||
          return {
 | 
			
		||||
            form: {
 | 
			
		||||
              accept: true
 | 
			
		||||
            },
 | 
			
		||||
            rules: {
 | 
			
		||||
              accept: [
 | 
			
		||||
                {
 | 
			
		||||
                  validator: (rule, value, callback) => {
 | 
			
		||||
                    value ? callback() : callback(new Error('您需要接受用户协议'));
 | 
			
		||||
                  },
 | 
			
		||||
                  trigger: 'change'
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
            }
 | 
			
		||||
          };
 | 
			
		||||
        },
 | 
			
		||||
        methods: {
 | 
			
		||||
          setValue(value) {
 | 
			
		||||
            this.form.accept = value;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }, true);
 | 
			
		||||
      vm.form.accept = false;
 | 
			
		||||
      vm.$nextTick(_ => {
 | 
			
		||||
        expect(vm.$refs.field.validateMessage).to.equal('您需要接受用户协议');
 | 
			
		||||
      });
 | 
			
		||||
      vm.$refs.form.validate(valid => {
 | 
			
		||||
        let field = vm.$refs.field;
 | 
			
		||||
        expect(valid).to.not.true;
 | 
			
		||||
        expect(field.validateMessage).to.equal('您需要接受用户协议');
 | 
			
		||||
        vm.$refs.form.$nextTick(_ => {
 | 
			
		||||
          vm.setValue(true);
 | 
			
		||||
 | 
			
		||||
          vm.$refs.form.$nextTick(_ => {
 | 
			
		||||
            expect(field.validateMessage).to.equal('');
 | 
			
		||||
            done();
 | 
			
		||||
          });
 | 
			
		||||
        });
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
    it('checkbox group', done => {
 | 
			
		||||
      vm = createVue({
 | 
			
		||||
        template: `
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue