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…

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;…

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

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

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

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

jsp实验19 File

三、源代码以及执行结果截图&#xff1a; readJSPFile.jsp <% page contentType"text/html" %> <% page pageEncoding "utf-8" %> <% page import"java.io.*"%> <style> #tom{ font-family:宋体;font-size:2…

基于Chisel语言的FPGA流水灯程序

目录 一、 内容概要二、 Chisel介绍三、 Chisel的使用四、 流水灯实现五、 心得体会六、 参考链接 一、 内容概要 Chisel介绍Chisel使用流程Chisel流水灯实操 二、 Chisel介绍 Chisel 是一种构建硬件描述语言&#xff08;HDL&#xff09;的高级编程语言&#xff0c;它允许硬…

指纹浏览器大全

具体请前往&#xff1a;国内外指纹浏览器大全

师彼长技以助己(2)产品思维

师彼长技以助己&#xff08;2&#xff09;产品思维 前言 我把产品思维称之为&#xff1a;人生底层的能力以及蹉跎别人还蹉跎自己的能力&#xff0c;前者说明你应该具备良好产品思维原因&#xff0c;后者是你没有好的产品思维去做产品带来的灾难。 人欲即天理 请大家谈谈看到这…

c++车票管理系统

这里写自定义目录标题 c车票管理系统vx:sredxc车票管理系统初始页面,需要源码vx:sredxc新增车票信息查询车票信息代码包含完整的发布车票信息,购票,退票,票数检测,余票检测,车票查询等功能 c车票管理系统vx:sredxc 这段代码实现了一个简单的高铁票务管理系统&#xff0c;具有以…

Threejs(WebGL)绘制线段优化:Shader修改gl.LINES模式为gl.LINE_STRIP

目录 背景 思路 Threejs实现 记录每条线的点数 封装原始裁剪索引数据 封装合并几何体的缓冲数据&#xff1a;由裁剪索引组成的 IntArray 守住该有的线段&#xff01; 修改顶点着色器 修改片元着色器 完整代码 WebGL实现类似功能&#xff08;简易版&#xff0c;便于测…

接入knife4j-openapi3访问/doc.html页面空白问题

大概率拦截器拦截下来了&#xff0c;我们F12看网络请求进行排查 都是 /webjars/ 路径下的资源被拦截了&#xff0c;只需在拦截器中添加该白名单即可"/webjars/**" 具体配置如下&#xff1a; Configuration public class WebConfig implements WebMvcConfigurer {priv…