当前位置: 首页 > news >正文

Vue 自定义仿word表单录入之日期输入组件

因项目需要,要实现仿word方式录入数据,要实现鼠标经过时才显示编辑组件,预览及离开后则显示具体的文字。

鼠标经过时显示

正常显示及离开时显示

 组件代码

<template ><div class="paper-input flex flex-col border-box "   ><div  class="font-l border-box text margin-left-m text" style="font-family: FangSong;">{{text}}</div><div class="flex flex-col  input hidden"><input type="text" v-model="value1" maxlength="4" ref="date1"   @input="changeToNext1(value1)"/>年<input type="text" v-model="value2" maxlength="2" ref="date2"  @input="changeToNext2(value2)"/>月<input type="text" v-model="value3" maxlength="2" ref="date3"  @input="changeToNext3(value3)"/>日</div></div>
</template><script>export default{name:'PagerInput',data() {return {val:"",text:"年  月  日",value1:"",value2:"",value3:"",}},props: {value:{}},model: {prop: "value",event: "change"},watch:{value:{handler(newValue) {if (newValue != null && newValue.length >0) {let arr = newValue.split("-")if ( arr.length === 3 ) {this.value1 = arr[0]this.value2 = arr[1]this.value3 = arr[2]this.setText();}}this.val =  newValue;},immediate: true,deep: true   //深度监听                },},methods:{changeToNext1(v) {if (v.toString().length === 4) {this.$nextTick(() => {this.$refs.date2.focus();});}this.setText();this.setValue();},changeToNext2(v) {if (v.toString().length === 2) {this.$nextTick(() => {this.$refs.date3.focus();});}this.setText();this.setValue();},changeToNext3(v) {this.setText();this.setValue();},setValue() {this.$emit("change", this.value1 + "-" + this.value2 + "-" + this.value3 );},setText() {this.text = this.value1 + "年" + this.value2 + "月" + this.value3 + "日"}}}
</script><style scoped>.paper-input:hover .text   {display: none;}.paper-input:hover .textplus   {display: none;}.paper-input:hover .input   {display: block;}.paper-input input {width: 50px;}</style>

引用组件,支持数据双向绑定

 <PaperDateInput v-model="paperData.protocolTime" ></PaperDateInput>

http://www.lryc.cn/news/278367.html

相关文章:

  • Oracle与Java JDBC数据类型对照
  • C++力扣题目226--翻转二叉树
  • Gorm 数据库表迁移与表模型定义
  • 系列三、Spring Security中自定义用户名/密码
  • 如何顺滑使用华为云编译构建平台?
  • 查看Linux磁盘空间
  • 2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑩
  • vim基本操作命令
  • mybatis-plus实现真正的批量插入
  • pytorch12:GPU加速模型训练
  • P1603 斯诺登的密码题解
  • YOLOv8 + openVINO 多线程数据读写顺序处理
  • 端到端自动驾驶
  • Developer Tools for Game Creator 1
  • 软件测试|好用的pycharm插件推荐(三)——Rainbow Brackets
  • MyBatisPlus学习二:常用注解、条件构造器、自定义sql
  • 深入理解C#中的引用类型、引用赋值以及 `ref` 关键字
  • 【算法提升】LeetCode每五日一总结【01/01--01/05】
  • linux下驱动学习—平台总线 (3)
  • 【leetcode】字符串中的第一个唯一字符
  • Serverless与Kubernetes(K8s)的区别、优缺点及应用场景
  • 参数小,性能强!开源多模态模型—TinyGPT-V
  • C++系列十五:字符串
  • 你了解计算机网络的发展历史吗?
  • Qt/QML编程学习之心得:Linux下Thread线程创建(26)
  • 如何在数学建模竞赛中稳定拿奖
  • Camunda Sub Process
  • golang 生成一年的周数
  • 植物大战僵尸-C语言搭建童年游戏(easyx)
  • c++学习:容器list实战(获取目录返回容器list)