vue自定义指令elementui日期组件手动输入

html

bash 复制代码
 <el-form-item label="开始时间" prop="beginTime">
            <!-- :picker-options="pickerOptions" -->
            <el-date-picker
              v-model="formData.beginTime"
              v-elDateFormat
              editable
              value-format="yyyyMMdd"
              type="date"
              placeholder="请选择日期"
              clearable
              style="width: 180px"
            />
</el-form-item>

scipt

bash 复制代码
  // 自定义指令
  directives: {
    elDateFormat: {
      inserted: function(el, binding, vnode) {
        const { value: _obj } = binding
        const { context: that, data } = vnode
        const { expression: key } = data.model
        if (that && that._isVue) {
          const $this = el.children[0]
          $this.onchange = function() {
            let value = $this.value // 中文日期
            console.log(value)
            if (value.match(/\d{1,}/g) && value.length == 8) {
              value = value.replace(/^(\d{4})\D*(\d{1,2})\D*(\d{1,2})\D*/, '$1-$2-$3') // 格式化输入格式
              const time = value && value.constructor == String ? new Date(value) : value // 转换时间格式
              let keys = key.split('.') // 自定义赋值
              if (_obj) {
                const { keys: keyList } = _obj
                keys = keyList
              }
              if (keys && keys.length >= 2) {
                const [key1, key2, key3, key4] = keys
                if (key4) {
                  that[key1][key2][key3][key4] = time
                } else if (key3) {
                  that[key1][key2][key3] = time
                } else {
                  that[key1][key2] = time
                }
              } else {
                that[key] = time
              }
            }
          }
        }
      }
    }
  },
相关推荐
ZHENGZJM5 小时前
前端基石:React + Vite + TypeScript 项目搭建
前端·react.js·typescript
SP八岐大兔5 小时前
NPM管理OpenClaw安装、卸载及运维命令
运维·前端·npm·openclaw
在路上`5 小时前
前端常见问题汇总(十一)_融合AI
前端
小江的记录本5 小时前
【JEECG Boot】 《JEECG Boot 数据字典使用教程》(完整版)
java·前端·数据库·spring boot·后端·spring·mybatis
Access开发易登软件5 小时前
在 Access 中实现 Web 风格 To Do List
前端·数据结构·microsoft·list·vba·access·access开发
小李云雾5 小时前
Python Web 路由详解:核心知识点全覆盖
开发语言·前端·python·路由
cd ~/Homestead5 小时前
Vue 配置跨域的两种方法
前端·javascript·vue.js
Moment5 小时前
AI 全栈时代,为什么推荐 NodeJs 服务端使用 NestJs
前端·javascript·后端
i220818 Faiz Ul5 小时前
教育资源共享平台|基于springboot + vue教育资源共享平台系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·教育资源共享平台
Moment5 小时前
AI全栈入门指南:什么是 NestJs
前端·javascript·后端