vant组件,picker时间选择,自定义时间选择,实现datePacker,时间选择长期,增加长期选项,用于选择身份证到期时间等...

最近项目中有个需求,datePicker选项,需要实现增加一个长期的选中项,用于选择身份证到期时间,思考良久,只能通过自定义的方式进行实现

<template>
<van-picker ref="picker" :columns="datas" @change="onChange" />
</template>
<script setup>
const picker = ref(null);
const current = ref([])
const setYears = ()=>{
//根据需求,设置年份和月份
const date = new Date()
let year = date.getFullYear()
let yearsArr = []
//可选时间,20年后
for(let i=0;i<=20;i++){
yearsArr.push(`${year++}`)
}
//增加长期选项
yearsArr.push('长期')
//初始化时间
datas.value = [
{values:yearsArr},
{values:['01','02','03','04','05','06','07','08','09','10','11','12']},
{values:getDays(date.getFullYear(),date.getMonth())}
]
}
// 获取不同月份有多少天时间,返回时间数组
const getDays = (year, month)=>{
let daysNumber = new Date(year, month, 0).getDate()
let daysNumberArr = []
for(let i=1;i <= daysNumber;i++){
daysNumberArr.push(i)
}
return daysNumberArr
}
const datas = ref({})
// 选中项发生改变时执行
const onChange = (values) => {
//判断选中项,不是长期时,动态更改第三列的日期值
current.value = values
if(!values[0] === '长期'){
picker.value.setColumnValues(1,['01','02','03','04','05','06','07','08','09','10','11','12']);
picker.value.setColumnValues(2, getDays(values[0],values[1]));
} };
//初始化
setYears()
//监听,当current选中了长期时,删除多余的两列,只留下长期年份列,反之,调用初始化函数
watch(()=>current.value,()=>{
if(current.value.includes('长期')){
const date = new Date()
let year = date.getFullYear()
let yearsArr = []
for(let i=0;i<=20;i++){
yearsArr.push(`${year++}`)
}
yearsArr.push('长期')
datas.value = [
{values:yearsArr}
]
}else if(current.value[1] == null){
setYears()
}
})
</script>

实现效果如图所示

vant组件,picker时间选择,自定义时间选择,实现datePacker,时间选择长期,增加长期选项,用于选择身份证到期时间等...的更多相关文章

  1. HBuilderX使用Vant组件库

    HBuilderX使用Vant组件库 HBuilderX是一款由国人开发的开发工具,其官网称其为轻如编辑器.强如IDE的合体版本.但是官方的社区中关于Vant组件的安装大多都是针对微信小程序开发安装V ...

  2. XamarinAndroid组件教程RecylerView自定义适配器动画

    XamarinAndroid组件教程RecylerView自定义适配器动画 如果RecyclerViewAnimators.Adapters命名空间中没有所需要的适配器动画,开发者可以自定义动画.此时 ...

  3. XamarinAndroid组件教程设置自定义子元素动画(二)

    XamarinAndroid组件教程设置自定义子元素动画(二) (9)打开MainActivity.cs文件,为RecylerView的子元素设置添加和删除时的透明动画效果.代码如下: …… usin ...

  4. XamarinAndroid组件教程设置自定义子元素动画(一)

    XamarinAndroid组件教程设置自定义子元素动画(一) 如果在RecyclerViewAnimators.Animators中没有所需要的动画效果,就可以自定义一个.此时,需要让自定义的动画继 ...

  5. 墨刀联合有赞Vant组件库,让你轻松设计出电商原型

    继上周新上线了简历模板之后,本周墨刀的原型模板库又欢喜地增添一名新成员! 有赞Vant组件库 (做电商的宝宝要捂嘴笑了)   Vant 组件库是有赞前端团队开源的一套基于Vue的UI组件库,目前版本收 ...

  6. 微信小程序引入Vant组件库

    前期准备 Vant Weapp组件库:https://youzan.github.io/vant-weapp/#/intro 1.先在微信开发者工具中打开项目的终端: 然后初始化一个package.j ...

  7. element-ui上传组件,通过自定义请求上传文件

    记录使用element-ui上传组件,通过自定义请求上传文件需要注意的地方. <el-upload ref="uploadMutiple" :auto-upload=&quo ...

  8. vue-cli3移动端自适应配置 Vant组件库

    module.exports = { presets: [ '@vue/app' ], plugins: [ ['import', { libraryName: 'vant', libraryDire ...

  9. 使用VUE组件创建SpreadJS自定义单元格(二)

    在上篇中,我们介绍了如何通过设置runtimeCompiler为true,在Vue中实现了动态创建电子表格组件.想了解具体内容可看点击查看使用VUE组件创建SpreadJS自定义单元格(一). 但是在 ...

  10. svelte组件:svelte3自定义桌面PC端对话框组件svelte-layer

    基于Svelte3.x开发pc网页版自定义弹窗组件svelteLayer. svelte-layer:基于svelte.js轻量级多功能pc桌面端对话框组件.支持多种弹窗类型.30+参数随意组合配置, ...

随机推荐

  1. ST表优化区间gcd

    ST表的使用需要所求区间答案具有可重复性(询问时需要用到两个区间重叠来覆盖询问区间) 此题要求gcd为x的区间个数 可以用ST表处理出所有区间的\(gcd\) \(O(nlogn)\) 将区间的左端点 ...

  2. C# DataTable 虚拟Sql临时表,可以做一些处理

    /// <summary> /// 获取临时表-和数据库表一样的的表结构的才可以 /// </summary> /// <param name="SourceT ...

  3. linux mint 归档管理器报错Extraction not performd

    解决办法 后缀名的问题,后缀名与文件的真正类型不符合,至于到底是上面压缩类型,那只能靠尝试了,比如我这个是rar, 实际是zip,很坑,网上也没有这个问题的描述 其他 感觉 linux 对于文件类型方 ...

  4. postman的运用

    链接: https://pan.baidu.com/s/1gfaKoAv 密码: dp7t 最近要测试和其他系统对接,忽然想起了postman这款url测试神器. 现分享如下: 下载完成后解压到文件夹 ...

  5. React Server Component: 混合式渲染

    作者:谢奇璇 React 官方对 Server Comopnent 是这样介绍的: zero-bundle-size React Server Components. 这是一种实验性探索,但相信该探索 ...

  6. Java9-17新特性一览,了解少于3个你可能脱节了

    前言 Java8出来这么多年后,已经成为企业最成熟稳定的版本,相信绝大部分公司用的还是这个版本,但是一眨眼今年Java19都出来了,相信很多Java工程师忙于学习工作对新特性没什么了解,有的话也仅限于 ...

  7. jjava基础语法

    java基础语法1 注释 注意: SDK要选择JDK1.8,且下面的语言要选择8,配置完这个环境后,JAVA才能正常运行. 单行注释 //+text 快捷键:ctrl+/ 多行注释  /*+text+ ...

  8. intel Pin:动态二进制插桩的安装和使用,以及如何开发一个自己的Pintool

    先贴几个你可能用得上的链接 intel Pin的官方介绍Pin: Pin 3.21 User Guide (intel.com) intel Pin的API文档Pin: API Reference ( ...

  9. week_3

    Andrew Ng机器学习笔记 Week_3 -- -Logistic Regression This week, we'll be covering logistic regression. Log ...

  10. 洛谷P2196例题分析

    [NOIP1996 提高组] 挖地雷(原题) 题目描述 在一个地图上有\(N\)个地窖\((N \le 20)\),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出 ...