zoukankan      html  css  js  c++  java
  • iView Form表单与DatePicker日期选择器

    DatePicker 的类型为datatimerange时的表单校验

    <template>
         <Form
             ref="imageEditForm"
             :model="formItem"
             label-position="left"
             :rules='ruleValidate'
             :label-width="100">
             <FormItem label="活动时间"
                   prop="activeTime"
                  :label-in-value="true"
                   class="selected__form">
                    <Date-picker type="datetimerange"
                          placement="bottom" placeholder="选择日期"
                          :value='[formItem.startTime,formItem.endTime]'
                          @on-change="setDateRange"
                          format="yyyy-MM-dd hh:mm:ss"
                          style=" 300px" />
                 </FormItem>
                 <FormItem>
                <Button type="primary" @click="handleSubmit('imageEditForm')">Submit</Button>
                <Button @click="handleReset('imageEditForm')" style="margin-left: 8px">Reset</Button>
            </FormItem>
        </Form>
    </template>
    <script>
        export default {
            data () {
                return {
                    formItem: {
                      activeTime:[],
                      startTime: [],
                      endTime:[]
                    },
                    ruleValidate: {
                       activeTime: [
                            { required: true,
                              type:'array',
                              fields: {
                                  0: { required: true, message: '请选择时间范围', trigger: 'blur' },
                                  1: { required: true, message: '请选择时间范围', trigger: 'blur' }
                              }
                            }
                        ],
                    }
                }
            },
            methods: {
             setDateRange (value) {
                    const isDeepEqual = (one, another) => _.isEqual(one, another);
                    if (isDeepEqual(value, this.selectedDateRange) || value[0] === '') {
                        this.selectedDateRange = ['2018-01-01 00:00:00', new Date().toLocaleString()];
                    } else {
                  this.formItem.startTime= value[0]
                  this.formItem.endTime= value[1]
                      this.formItem.activeTime = value
                    }
                },
            },
            handleSubmit (name) {
                    this.$refs[name].validate((valid) => {
                        if (valid) {
                            this.$Message.success('Success!');
                        } else {
                            this.$Message.error('Fail!');
                        }
                    })
                },
                handleReset (name) {
                    this.$refs[name].resetFields();
                }
        }
    </script>  
    

      在这里,还解决了双向绑定的问题。在type=datetimerange中,不能使用v-modle实现双向绑定,而是要使用:value的方法。注意format的数据格式,应该保持一致。

  • 相关阅读:
    linux下samba服务器的搭建(案列模拟)
    linux下nfs服务器的搭建
    linux 下 php+gd2+freetype+jpeg+png+zlib编译安装
    linux下xcache的安装
    wget如何设置代理
    实验记录:vsftp整合mysql-pam管理虚拟账号
    tr命令 实例
    sed学习笔记
    Byte、KB、MB、GB、TB、PB转换
    对lombbok @slf4j 进行测试用例
  • 原文地址:https://www.cnblogs.com/yilihua/p/12400549.html
Copyright © 2011-2022 走看看