IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue3+vant3 年月日 时间选择 -> 正文阅读

[JavaScript知识库]Vue3+vant3 年月日 时间选择

?

?html

 <template v-if="mustInfo.idcardValidPeriod != '-1'">//这是做 是否显示及必填判断
        <van-field v-model="authInfo.startDate"
                   label-class="authTitle"
                   readonly
                   input-align="right"
                   label="起始有效期限"
                   placeholder="请选择起始日期"
                   @click="showPickerbtn1" />
        <van-popup v-model:show="showPicker1"
                   round
                   position="bottom">
          <van-datetime-picker v-model="currentDate"
                               type="date"
                               title="选择年月"
                               :min-date="minDate"
                               :max-date="maxDate"
                               :formatter="formatter"
                               @cancel="showPicker1 = false"
                               @confirm="getStartTime" />
        </van-popup>
      </template>
      <template v-if="mustInfo.idcardValidPeriod != '-1'">
        <van-field v-model="authInfo.endDate"
                   label-class="authTitle"
                   input-align="right"
                   readonly
                   label="结束有效期限"
                   placeholder="请选择结束日期"
                   @click="showPickerbtn2" />
        <van-popup v-model:show="showPicker2"
                   round
                   position="bottom">
          <van-datetime-picker v-model="currentDate"
                               type="date"
                               title="选择年月"
                               :min-date="minDate"
                               :max-date="maxDate"
                               :formatter="formatter"
                               @cancel="showPicker2 = false"
                               @confirm="getEndTime" />
        </van-popup>
      </template>

js

<script lang="ts">
import header from '../../components/header.vue'
import { fileUpload, cardByurl, enterfields } from '../../api/common/common'
import { accountInfo, saveidcard } from '@/api/validation/validation.js'
import {
  defineComponent,
  onMounted,
  computed,
  reactive,
  ref,
  toRefs,
} from 'vue'
import { ElMessage } from 'element-plus'
import { Toast, Dialog } from 'vant'
import { useRouter, useRoute } from 'vue-router'
export default defineComponent({
  components: {
    'v-header': header,
  },
  setup() {
    const router = useRouter(),
      route = useRoute()
    const title = ref(route.meta?.title || '')
    let checked = ref(false) //长期有效开关
    let authInfo = ref({
      frontUrl: '', //身份证正面
      backUrl: '', //身份证反面
      name: '', //姓名
      cardNo: '', // 身份证号码
      startDate: '', //起始有效期
      endDate: '', //结束有效期
      hasLongTerm: 0, //是否长期有效

    })
     //展示开始时间弹框
    const showPickerbtn1 = () => {
      showPicker1.value = true
    }
    //展示结束时间弹框
    const showPickerbtn2 = () => {
      showPicker2.value = true
    }
    const currentDate = ref(new Date())
    //年月日处理
    const formatter = (type: string, val: number) => {
      if (type === 'year') {
        return `${val}年`
      }
      if (type === 'month') {
        return `${val}月`
      }
      if (type === 'day') {
        return val + '日'
      }
      return val
    }
    //获取起始时间
    const getStartTime = (value: any) => {
      let y = value.getFullYear()
      let m = value.getMonth() + 1
      m = m < 10 ? '0' + m : m
      var d = value.getDate()
      d = d < 10 ? '0' + d : d
      value = y + '-' + m + '-' + d
      authInfo.value.startDate = value
      showPicker1.value = false
    }
    //获取结束时间
    const getEndTime = (value: any) => {
      let y = value.getFullYear()
      let m = value.getMonth() + 1
      m = m < 10 ? '0' + m : m
      var d = value.getDate()
      d = d < 10 ? '0' + d : d
      value = y + '-' + m + '-' + d
      let start = new Date(authInfo.value.startDate)
      let end = new Date(value)
      //结束时间不能早于开始时间//超过则设为开始时间
      if (start.getTime() > end.getTime()) {
        authInfo.value.endDate = authInfo.value.startDate
      } else {
        authInfo.value.endDate = value
      }
      showPicker2.value = false
    }
return {
      title,
      authInfo,
      mustInfo,
      showPicker1,
      showPicker2,
      minDate: new Date(1900, 0, 1),
      maxDate: new Date(2100, 10, 1),
      formatter,
      currentDate,
      //方法
      showPickerbtn1,
      showPickerbtn2,
      getStartTime,
      getEndTime,
    }
  },

//有些方法删掉了? 仅保留了日期控件处理??

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:03:16  更:2022-03-03 16:08:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:01:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码