vant时间控件,vant日期选择

  vant时间控件,vant日期选择

  这篇文章主要为大家详细介绍了基于Vant UI框架实现时间段选择器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  本文实例为大家分享了Vant UI框架实现时间段选择器的具体代码,供大家参考,具体内容如下

  组件代码如下:

  模板

  厢式货车搬运工

  :title=title

  :show-toolbar=showToolbar

  :列="列"

  @confirm=onConfirm

  @cancel=onCancel

  @change=onChange

  :确认按钮文本=确认按钮文本

  :cancel-button-text=取消按钮文本

  :loading=loading

  :readonly=readonly

  :item-height=itemHeight

  :visible-item-count=“可见项目计数”

  :swipe-duration=swipeDuration

  模板槽=默认

  插槽名称=默认/插槽

  /模板

  模板槽=标题

  插槽名称=标题/插槽

  /模板

  模板槽=确认

  插槽名称=确认/插槽

  /模板

  模板槽=取消

  插槽名称=取消/插槽

  /模板

  模板槽=选项

  插槽名称=选项/插槽

  /模板

  模板slot=columns-top

  slot name=columns-top/slot

  /模板

  模板槽=列-底部

  插槽名称=列-底部/插槽

  /模板

  /货车搬运工

  /模板

  脚本

  从“vue”导入某视频剪辑软件

  从"万特"导入{字段、选取器、弹出菜单}。

  Vue.use(字段)。使用(选取器)。使用(弹出);

  导出默认值{

  姓名: VanDatePicker ,

  道具:{

  值:{

  类型:日期,

  默认值:()=新日期()

  },

  日期:{

  类型:日期,

  默认值:()=新日期(新日期()。getFullYear()-5,0,1)

  },

  最大日期:{

  类型:日期,

  默认值:()=新日期(新日期()。getFullYear() 5,0,1)

  },

  showToolbar: {

  类型:布尔型,

  默认值:()=false

  },

  标题:{

  类型:字符串,

  默认值:()=

  },

  confirmButtonText: {

  类型:字符串,

  默认值:()=确认

  },

  取消按钮文本:{

  类型:字符串,

  默认值:()=取消

  },

  正在加载:{

  类型:布尔型,

  默认值:()=false

  },

  只读:{

  类型:布尔型,

  默认值:()=false

  },

  项目高度:{

  类型:数字 字符串,

  默认值:()=44

  },

  visibleItemCount: {

  类型:数字 字符串,

  默认值:()=6

  },

  swipeDuration: {

  类型:数字 字符串,

  默认值:()=1000

  },

  },

  data() {

  返回{

  蒙瑟尔:[01 , 02 , 03 , 04 , 05 , 06 , 07 , 08 , 09 , 10 , 11 , 12],

  dayArr: [01 , 02 , 03 , 04 , 05 , 06 , 07 , 08 , 09 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 ],

  };

  },

  计算值:{

  列:函数(){

  让最小年=这个。mindate。获取整年();

  设maxYear=this。最大日期。获取整年();

  让年份=这个。价值。获取整年();

  让月=这个。价值。getmonth();

  假设day=this。价值。getdate();

  设年份arr=[];

  设I=0;

  while (i maxYear - minYear 1) {

  年度安排。un shift((maxYear-I)“”);

  我;

  }

  let columns=[

  {

  值:yearArr,

  默认索引:数学。楼层(年)-最小年

  },

  {

  值:this.monthArr,

  defaultIndex: Math.floor(月)

  },

  {

  价值观:this.dayArr,

  defaultIndex: Math.floor(第一天)

  },

  {

  值:[-]

  },

  {

  值:yearArr,

  默认索引:数学。楼层(年)-最小年

  },

  {

  值:this.monthArr,

  defaultIndex: Math.floor(月)

  },

  {

  价值观:this.dayArr,

  defaultIndex: Math.floor(第一天)

  },

  ];

  返回列

  }

  },

  观察:{

  },

  方法:{

  onConfirm(值,索引){

  //console.log(`当前值:${value},当前索引:$ { index } `);

  这个. emit(confirm ,value,index);

  },

  onChange(选取器、值、索引){

  //console.log(`当前值:${value},当前索引:$ { index } `);

  让这个=这个

  让敏月=这个。mindate。getmonth();

  让minDay=这个。mindate。getdate();

  设maxMonth=this。最大日期。getmonth();

  设maxDay=this。最大日期。getdate();

  设d=新日期(值[0],值[1],0);

  setDate(0);

  setDate(4);

  函数设置日期{

  //最小年份

  if(value[I]-0===_ this。mindate。获取整年()){

  picker.setColumnValues(i 1,_ this。蒙塔尔。slice(最小月份));

  设str minm=

  如果(最小月9日){

  strMinM=0 (最小月份1)

  }否则{

  strMinM=strMinM 1 "

  }

  picker.setColumnValue(i 1,value[i 1]-1minMonth?strmin:value[I 1]);

  if(index===ivalue[I 1]-1分月){

  picker.setColumnValues(i 2,_this.dayArr.slice(minDay-1,d . getdate()));

  picker.setColumnValue(i 2,value[i 2]minDay?明迪。tostring():value[I ^ 2]);

  }否则{

  if(value[I 1]-1===_ this。mindate。getmonth()){

  picker.setColumnValues(i 2,_this.dayArr.slice(minDay-1,d . getdate()));

  picker.setColumnValue(i 2,value[i 2]minDay?明迪。tostring():value[I ^ 2]);

  }否则{

  picker.setColumnValues(i 2,_this.dayArr.slice(0,d . getdate()));

  picker.setColumnValue(i 2,value[i 2]d.getDate()?d.getDate().tostring():value[I ^ 2]);

  }

  }

  }

  //最大年份

  else if(value[I]-0===_ this。最大日期。获取整年()){

  picker.setColumnValues(i 1,_this.monthArr.slice(0,最大月份1));

  设strManM=

  if (maxMonth9) {

  strManM=0 (最大月份1)

  }否则{

  strManM=maxMonth 1

  }

  picker.setColumnValue(i 1,value[i 1]-1maxMonth?strManM:value[I 1]);

  if(index===ivalue[I 1]-1最大月份){

  picker.setColumnValues(i 2,_this.dayArr.slice(0,maxDay));

  picker.setColumnValue(i 2,value[i 2]maxDay?maxday。tostring():value[I ^ 2]);

  }否则{

  if(value[I 1]-1===_ this。最大日期。getmonth()){

  picker.setColumnValues(i 2,_this.dayArr.slice(0,maxDay));

  picker.setColumnValue(i 2,value[i 2]maxDay?maxday。tostring():value[I ^ 2]);

  }否则{

  picker.setColumnValues(i 2,_this.dayArr.slice(0,d . getdate()));

  picker.setColumnValue(i 2,value[i 2]d.getDate()?d.getDate().tostring():value[I ^ 2]);

  }

  }

  }

  //其他年份

  否则{

  picker.setColumnValues(i 1,_ this。mont harr);

  picker.setColumnValue(i 1,value[I 1]);

  picker.setColumnValues(i 2,_this.dayArr.slice(0,d . getdate()));

  picker.setColumnValue(i 2,value[i 2]d.getDate()?d.getDate().tostring():value[I ^ 2]);

  }

  }

  让finally val=picker。获取值();

  设len=数学。地板(最终值。长度/2);

  //开始时间不大于结束时间

  if (finallyVal.slice(0,len).join("")finally val。切片(镜头1).加入(" " {

  picker.setValues([.finallyVal.slice(0,len),-,finallyVal.slice(0,len)]);

  如果(新日期(finallyVal.slice(0,len)).联接(-) 00:00:00 )。getTime()===this。最大日期。getTime()){

  控制台。日志(111);

  picker.setColumnValues(5,_this.monthArr.slice(0,最大月份1));

  picker.setColumnValues(6,_this.dayArr.slice(0,maxDay));

  }

  }

  这个emit(change ,picker,finallyVal,index);

  },

  onCancel() {

  //console.log(取消);

  这个. emit(" cancel ");

  },

  },

  }

  /脚本

  样式范围

  /风格

  调用演示

  模板

  差异

  范菲尔德

  只读的

  可点击的

  标签=时间段

  :value=value

  占位符=选择时间段

  @click=showPicker=true

  /

  van-popup v-model=显示提货人 round position= bottom

  货车式约会采摘机

  显示-工具栏

  v-model=当前日期

  title=选择时间段

  :最小日期=minDate

  :最大日期=最大日期

  @cancel=showPicker=false

  @confirm=onConfirm

  @change=onChange

  /凡-日期选取器

  /van-popup

  /div

  /模板

  脚本

  从" @/components/VanDatePicker "导入VanDatePicker

  导出默认值{

  名称:"测试",

  组件:{VanDatePicker},

  data() {

  返回{

  值: ,

  显示选择器:假,

  minDate:新日期(2010年5月15日),

  最大日期:新日期(2025,10,15),

  当前日期:新日期(),

  开始日期: ,

  结束日期: ,

  };

  },

  已安装(){

  },

  方法:{

  onConfirm(值,索引){

  控制台。日志(` o当前值:${value},当前索引:$ { index } `);

  this.startDate=value.slice(0,3).join(-);

  this.endDate=value.slice(4,7).join(-);

   this.value=this.startDate 至这个。结束日期;

  this.showPicker=false

  },

  onChange(选取器、值、索引){

  控制台。日志(` o当前值:${value},当前索引:$ { index } `);

  },

  },

  }

  /脚本

  样式范围

  /风格

  用户界面示例

  API:注意红色划掉的没有实现

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: