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指令集
    [日记]贝鲁特煎熬第32天
    2019南京区域赛ABCHJK题解 & KMbfs(O(n^3))板子
    欧拉筛质数以及四大积性数论函数(欧拉函数、莫比乌斯函数、约数个数函数、约数和函数)
    简短的自我介绍
    BSTTreap名次树数组&指针实现板子 Ver1.0
    2019银川区域赛BDFGHIKN题解
    安装vs2010
    SPEmailEventReceiver 之导入附件EXCEL
    为incoming mail绑定事件,SPEmailEventReceiver
  • 原文地址:https://www.cnblogs.com/yilihua/p/12400549.html
Copyright © 2011-2022 走看看