首页 > 其他分享 >【已解决】iview—两个DatePicker日期组件比较大小的校验,以及会出现加载icon

【已解决】iview—两个DatePicker日期组件比较大小的校验,以及会出现加载icon

时间:2022-12-15 14:13:14浏览次数:46  
标签:DatePicker securityTimeEnd formData 校验 value callback icon iview

问题:

  在使用iview 的日期选择组件(DatePicker)时,两个时间作比较时DatePicker会出现加载的icon图标,无法进行校验

  具体如图所示:

  

 

 

解决方式:

  相关代码:

<FormItem label="安全时段(该时段只做记录,不做提醒)">
    <Row>
        <Col span="11">
            <FormItem prop="securityTimeStart">
                <DatePicker 
                  @on-change="dateChange1"
                  v-model="formData.securityTimeStart"
                  ref="timeForm1"
                  type="datetime" 
                  format="yyyy-MM-dd HH:mm:ss" 
                  placeholder="请选择安全时段" 
                  style="width: 100%" />
            </FormItem>
        </Col>
        <Col span="2" style="text-align: center">-</Col>
        <Col span="11">
            <FormItem prop="securityTimeEnd">
                <DatePicker 
                  @on-change="dateChange2"
                  v-model="formData.securityTimeEnd"
                  ref="timeForm2"
                  type="datetime" 
                  format="yyyy-MM-dd HH:mm:ss" 
                  placeholder="请选择安全时段" 
                  style="width: 100%" />
            </FormItem>
        </Col>
    </Row>
</FormItem>

  先设置rules:

securityTimeStart: [
  {trigger: 'change', message: '开始时间不得大于或等于结束时间',validator: securityTimeStart, type: "date"}
],
securityTimeEnd: [
  {trigger: 'change',message: '结束时间不得小于或等于开始时间',validator: securityTimeEnd,type: "date"}
]

  然后配置校验规则:

const securityTimeStart = (rule, value, callback) =>{
  if(value) {
    if(!this.formData.securityTimeEnd) {
      callback()
    } else {
      if(new Date(value).getTime() >= new Date(this.formData.securityTimeEnd).getTime()) {
        callback(new Error());
      } else {
        callback()
      }
    }
  } else {
    callback()
  }
};
const securityTimeEnd = (rule, value, callback) =>{
  if(value) {
    if(!this.formData.securityTimeStart) {
      callback()
    } else {
      if(new Date(value).getTime() <= new Date(this.formData.securityTimeStart).getTime()) {
        callback(new Error());
      } else {
        callback()
      }
    }
  } else {
    callback()
  }
};

  相关方法:

dateChange1(val) {
  this.formData.securityTimeStart = val
},
dateChange2(val) {
  this.formData.securityTimeEnd = val
}

(PS:从日期选择组件中拿时间时我使用on-change时间格式化校验了值再进行的校验比对)

  这样就可以校验两个DatePicker日期组件的大小,以及会出现加载icon

  拿来即用

  写的不好,请各位指教

标签:DatePicker,securityTimeEnd,formData,校验,value,callback,icon,iview
From: https://www.cnblogs.com/leileig/p/16984861.html

相关文章

  • Retrieving shell icons
    Retrievingshellicons Downloadsourcefiles-4KbDownloaddemoproject-27KbDownloadper-compileddemo-16KbIntroductionSometimeago......
  • WTL Tray Icon Template
    WTLTrayIconTemplate Downloaddialog-baseddemoexecutable-9KbDownloaddialog-baseddemoproject-12KbDownloadSDIdemoexecutable-28......
  • Miniconda3 环境变量配置
    在miniconda的镜像地址:https://mirrors.bfsu.edu.cn/anaconda/miniconda/,选择合适版本下载安装包。下载完成,点击安装包,以管理员权限运行,前期可以一路默认点下去,在下面步聚......
  • 当父级的高度很高,Element-UI中Select和antd的Select组件,Cascader组件,DatePicker等下拉
                问题截图      element中:中的popper-append-to-body(已经默认是true)一般不会出现antd中:getPopupContainer={()=>docume......
  • HarmonyOS实现登录页面(三)相关api的实现User类和ApiController类(IDEA)
    User类@Data使用@Data注解的主要作用是提高代码的简洁,使用这个注解可以省去代码中大量的get()、set()、toString()等方法;@AllArgsConstructor使用用这个注解修......
  • Linux 安装 miniconda
    1.安装miniconda1.百度输入miniconda​​找到miniconda​​,如下图第一个链接2.找到linux版本的miniconda(此处我要安装Python3.7版本的Linux下的miniconda)3.复制下......
  • vue3 中使用 svg-icons
    1、在项目中安装 vite-plugin-svg-icons npminstallvite-plugin-svg-icons2、打开 vite.config.ts 文件,添加注释为【svg-icons相关】的代码import{defineConfig}f......
  • 设置UIView的图片
    //自定义的UIViewBackView*backView=[[BackViewalloc]initWithFrame:CGRectMake(SCREEN_HEIGHT-130,50,91,34)];//把图片转为颜色UIColor*bgColor=[UIColorcolorWi......
  • ASP.NET2.0的multiview和wizard控件
    最近学习asp.net2.0中,偶遇这两个新控件,故翻译老在asp.net1.1中,如果要做一个具有向导式的应用程序,是比较麻烦的。所谓向导式应用,就是说比如一个注册用......
  • npm编译提示"[email protected]"错误解决办法
    本地编译都成功,拿到jenkins编译就报错,本次原因是package-lock.json未上传,导致依赖不一致出问题.错误样本npmERR!codeELIFECYCLEnpmERR!errno2npmERR!ivie......