input输入框的一些复习

在这里插入图片描述
在这里插入图片描述

<template><div><div style="text-align: center;margin: 10px 0;"><span style="font-size: 15px;font-weight: bold;">input输入框的基本应用</span></div><el-descriptions :column="3" size="default" border><el-descriptions-item label="部门" label-align="center" :span="1"><el-select v-model="formData_Value.name" placeholder="请选择姓名" filterable size="small"><el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /></el-select></el-descriptions-item><el-descriptions-item label="直接上级" label-align="center" :span="2"><el-input v-model="formData_Value.name" disabled size="small" /></el-descriptions-item><el-descriptions-item label-align="center" :span="3"><template #label><div><h2>劳动合同</h2><h2>签订情况</h2></div></template>劳动合同签订情况aaaaa</el-descriptions-item><el-descriptions-item label="续签期限" label-align="center" :span="3"><div style="height: 50px;"><el-radio-group v-model="ContractTime" @change="onChange_ContractTime"><el-radio :label="true" size="small">有固定期限</el-radio><el-radio :label="false" size="small">无固定期限</el-radio></el-radio-group><div v-if="ContractTime" style="display: flex;" class="animate__animated animate__backInDown"><div>续签时长</div><div contenteditable :class="{ StyleInput: inputStyle }":style="{ borderBottom: inputStyle ? '1px solid #ff0000' : '1px solid #000' }"style="width: 80px;text-align: center;" @blur="handleBlur" @focus="changeText">{{ formData_Value.ContractTime }}</div><div></div><div><div>续签时长</div><input type="number" class="StyleInput" v-model="formData_Value.ContractTime" @change="handleChange" /><div></div></div></div></div></el-descriptions-item><el-descriptions-item label="备注" label-align="center" :span="3"><el-input v-model="formData_Value.remark" :autosize="{ minRows: 2, maxRows: 4 }" type="textarea"placeholder="请输入备注" show-word-limit maxlength="500" /></el-descriptions-item><el-descriptions-item label="申请人" label-align="center" :span="3">{{ formData_Value.fillname }}</el-descriptions-item></el-descriptions><div style="margin-top: 15px;display: flex;width: 100%;justify-content: center;"><div style="padding: 6px 8px;background-color:#36d;color:#fff;width: 150px;text-align: center; cursor: pointer;"@click="onClick_ok">&nbsp;&nbsp;&nbsp;</div></div></div>
</template><script setup>
import { ref, onMounted, nextTick } from "vue";
import { useRouter, useRoute } from "vue-router";
import { useStore } from "vuex";
import {ElMessage,
} from "element-plus";
const router = useRouter();
const route = useRoute();
const store = useStore();
let queryParams = ref({Cookie_USER: null,item: null
})
let props = defineProps({tableItem: {type: Object,default: {},},
})
const ContractTime = ref(true)
const formData_Value = ref({meancode: '',//合同编号  HTXQ + 年月日时分秒 + 2位随机数badge: '',//工号name: '',//姓名age: '',//年龄deptname: '',//部门supplier: '',//岗位lead: '',//直接领导ContractTime: 1,//需求期限  无固定期限,写600checksate: 0,//进程状态remark: '',//备注 500字fillname: '',//申请人filltime: '',//申请时间
})
const options = [{value: 'Option1',label: 'Option1',},{value: 'Option2',label: 'Option2',}
]
const onChange_ContractTime = (val) => {if (val) {formData_Value.value.ContractTime = 1} else {formData_Value.value.ContractTime = 600}
}
const inputStyle = ref(false)
const handleBlur = (event) => {inputStyle.value = falseformData_Value.value.ContractTime = event.target.innerText ? event.target.innerText : 1
}
const changeText = (value) => {console.log('输入的内容', value)inputStyle.value = true
}
const handleChange = (event) => {console.log('这个触发了', event.target.value)console.log('这个触发了', event.target)if (event.target.value > 0) {formData_Value.value.ContractTime = event.target.value} else {formData_Value.value.ContractTime = 1}
}
const onClick_ok = () => {let obj = {meancode: formData_Value.value.meancode,//合同编号  HTXQ + 年月日时分秒 + 2位随机数badge: formData_Value.value.badge,//工号name: formData_Value.value.name,//姓名age: formData_Value.value.age,//年龄deptname: formData_Value.value.deptname,//部门supplier: formData_Value.value.supplier,//岗位lead: formData_Value.value.lead,//直接领导ContractTime: Number(formData_Value.value.ContractTime),//需求期限  无固定期限,写600checksate: 0,//进程状态remark: formData_Value.value.remark,//备注 500字fillname: formData_Value.value.fillname,//申请人filltime: formData_Value.value.filltime,//申请时间}if ([{field: "deptname",message: "请选择部门",},{field: "name",message: "请选择姓名",},{field: "ContractTime",message: "请输入续签时长",}].every((item) => validateFields(item, obj))) {if (obj.ContractTime > 0) {console.log('需要提交的', obj)} else {ElMessage({message: "续签时间必须大于0",type: "error",});}}
}
onMounted(() => {store.dispatch("examine/COOLIE_VALUE_USER");queryParams.value.Cookie_USER = store.state.examine.cookieUser;if (queryParams.value.Cookie_USER.id) {ContractTime.value = truequeryParams.value.item = props.tableItem;formData_Value.value.meancode = 66;formData_Value.value.fillname = queryParams.value.Cookie_USER.realname;formData_Value.value.ContractTime = 1} else {ElMessage({message: '账号信息为空,请重新登录',type: 'warning',})}
})const validateFields = ({ field, message }, obj) => {const value = obj[field];if (value === null || value === undefined || value === "") {ElMessage({showClose: true,message: message,type: "error",});return false;}const trimmedValue = String(value).trim();if (!trimmedValue) {ElMessage({showClose: true,message: message,type: "error",});return false;}return true;
};
</script>
<style scoped></style>
<style scoped lang="less">
.StyleInput {color: #ff0000;border: none;outline: none;border-bottom: 1px solid red;box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.1);transition: border-bottom-color 0.3s ease;
}
</style>
HTML中,input元素有多个原生事件可供使用,这些事件可以通过JavaScript来监听和处理。以下是一些常用的input元素的原生事件:change: 当输入框的值发生改变并失去焦点时触发,适用于大多数输入框。input: 当输入框的值发生改变时触发,即时响应用户输入,比如按键或者粘贴内容。focus: 当输入框获得焦点时触发。blur: 当输入框失去焦点时触发。keydown: 当用户按下键盘上的任意键时触发,通常用于捕获特定的键盘操作。keyup: 当用户释放键盘上的任意键时触发,通常用于获取输入框的实时值。keypress: 当用户按下键盘上的字符键时触发,用于捕获字符输入。select: 当用户选择输入框中的文本时触发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/19884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tinycudann安装

在安装完torch等 直接运行下面的指令会出现错误 pip install githttps://github.com/NVlabs/tiny-cuda-nn/#subdirectorybindings/torch大部分错误是下面的 大概看了一下都是因为虚拟环境里面的include文件下缺少文件&#xff0c;将之前的一些.h文件全部复制过来在执行上面的…

【vue3|第5期】Vue3响应式数据:ref 与 reactive 的深入解析

日期&#xff1a;2024年5月31日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…

vue3 前端实现导出下载pdf文件

这样的数据实现导出 yourArrayBufferOrByteArray 就是后端返回数据 // 创建Blob对象const blob new Blob([yourArrayBufferOrByteArray], { type: application/pdf });// 创建一个表示该Blob的URLconst url URL.createObjectURL(blob);// 创建一个a标签用于下载const a doc…

前端 JS 经典:闭包与内存泄漏、垃圾回收

1. 闭包 函数嵌套函数&#xff0c;内部函数可以引用外部函数的参数和变量。参数和变量不会被垃圾回收机制收回。 2. 垃圾回收机制 什么是垃圾&#xff1f;就是不再需要的内存。什么是垃圾回收机制&#xff1f;就是浏览器会自动回收掉我们不要的数据。那浏览器怎么判断什么是…

Redis常用命令大全

目录 1、五大数据类型的基本命令 1.1 字符串 1.2 列表 1.3 哈希 1.4 集合 1.5 有序集合 2、与key相关 2.1 查看redis数据的类型 2.2 查看当前redis库中的所有key命令 3、除了五大数据类型外常见命令 3.1 键操作 3.2 服务器操作 3.3 连接操作 3.4 发布/订阅 3.5 事…

大模型时代的具身智能系列专题(六)

UCSD 王小龙组 王小龙是UCSD电子与计算机工程系的助理教授。他曾在加州大学伯克利分校与Alexei Efros和Trevor Darrell一起担任博士后研究员&#xff0c;在CMU RI获得了机器人学博士学位&#xff0c;师从Abhinav Gupta。他的研究重点是通过视频和物理机器人交互数据来学习3D和…

Vue 2.0使用Vue-count-to给数字添加增长动画

在开发后台管理系统时&#xff0c;时常会遇到数据汇总&#xff0c;为了页面展示更生动&#xff0c;用户体验更好&#xff0c;通常会对汇总的数字加一个逐步递增动画。 实现这个效果一般是用的 Vue-count-to这个插件&#xff0c;这是一款简单好用的一个数字滚动插件&#xff0c;…

HTML5 视频 Vedio 标签详解

HTML5 引入了 <video> 标签&#xff0c;允许开发者在网页中直接嵌入视频文件&#xff0c;而不需要依赖第三方插件。本文将全面介绍 <video> 标签的各种属性&#xff0c;并通过实例代码详细说明其用法。 一、基础用法 1. 基本结构 HTML5 中使用 <video> 标…

达梦数据库修改兼容模式设置

达梦数据库兼容模式设置及服务管理操作手册 1. 查询兼容模式 在达梦数据库中&#xff0c;可以通过以下 SQL 查询当前兼容模式&#xff1a; SELECT para_name, para_value FROM v$dm_ini WHERE para_name COMPATIBLE_MODE;2. 设置兼容模式 使用 sp_set_para_value 函数设置…

如何申请微信支付0.2%-0.3%的手续费优惠? 详细步骤

随着微信支付在日常交易中的普及&#xff0c;许多商家开始关注如何降低支付手续费的问题。近期&#xff0c;微信支付推出了一项新的费率优惠政策&#xff0c;允许商家享受0.2%-0.3%的费率优惠。这一政策无疑为商家带来了实质性的成本节约。那么&#xff0c;商家如何申请这一费率…

Oracle RAC 集群配置共享目录ACFS

Oracle RAC 集群配置共享目录ACFS 应用场景&#xff1a;创建的ACFS文件系统用于部署OGG做数据同步使用。 1、创建共享磁盘组 create diskgroup OGG external redundancy disk /dev/mapper/ASM08, /dev/mapper/ASM09; 2、创建 acfs 文件系统 ACFS文件系统 在ASM磁盘组中通过A…

开源还是闭源这是一个问题

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

线性数据结构-数组

数组&#xff1a;线性数据结构&#xff08;一维数组结构&#xff09; 线性的数据结构强调存储和顺序 数组在内存存储空间上是连续的&#xff0c;并且长度固定不可变更 数组扩容 因为数组定长&#xff0c;当想往长度为8的数组中添加第九个元素时&#xff0c;操作系统会开辟一段…

如何在 c++ 里,让子类访问到父类的私有数据成员?答案之一:使用第三方友元类或友元函数

看 STL 库的代码时候&#xff0c;见有这种写法&#xff0c;感觉挺神奇的。故简化逻辑后&#xff0c;写个玩具验证一下。本来这是很别扭的做法。既然父类让数据成员私有了&#xff0c;还要让子类去调用&#xff0c;何苦呢&#xff1f;但看大师们的写法&#xff0c;果然 c 编译器…

LAMMPS - 分子动力学模拟器

本文翻译自&#xff1a;https://www.lammps.org/ 文章目录 一、关于 LAMMPS下载作者R&D 100 二、LAMMPS 亮点毛细血管中的血流 一、关于 LAMMPS 官网&#xff1a; https://www.lammps.org/ github &#xff1a;https://github.com/lammps/lammps LAMMPS 分子动力学模拟器…

上位机图像处理和嵌入式模块部署(f103 mcu定时器配置)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 在mcu开发过程当中&#xff0c;有一种开发模式用的比较多&#xff0c;那就是中断while&#xff08;1&#xff09;。这里面的中断&#xff0c;又是以…

【mysql数据库】mycat中间件

MyCat 简介 Mycat 是数据库 中间件 。 1、 数据库中间件 中间件 是一类连接软件组件和应用的计算机软件&#xff0c; 以便于软件各部件之间的沟通 。 例子 Tomcat web 中间件 。 数据库 中间件 连接 java 应用程序和数据库 2、 为什么要用 Mycat ① Java 与数据库紧耦合 …

关于各种儿童竞赛的小讨论

大家好&#xff0c;我是阿赵。   在过去的一个周末&#xff0c;连续两天&#xff0c;我儿子都代表学校参加了小学组的竞赛&#xff0c;分别是GoC编程竞赛和小小科学家的化学竞赛。   我儿子今年4年级&#xff0c;在这读小学的4年里面&#xff0c;他加入过很多所谓的“校队”…

【Linux】操作系统之冯诺依曼体系

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; Linux &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好&#xff0c;本片文章将会讲解 操作系统中 冯诺依曼体系 的相关内容。 如果看到最后您觉得这篇文…