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

Vue3+Element Plus 实现table表格中input的验证

实现效果

html部分

<template><div class="table"><el-form ref="tableFormRef" :model="form"><el-table :data="form.detailList"><el-table-column type="selection" width="55" align="center" /><el-table-column label="物资编号" align="center" prop="materialNo" /><el-table-column label="入库数量" align="center" prop="quantity" width="160"><template #default="scope"><el-form-item :prop="'detailList['+scope.$index+'].quantity'" :rules="tableFormRules.quantity"><el-input-number v-model="scope.row.quantity" placeholder="入库数量" :min="1" size="small":max="2147483647"></el-input-number></el-form-item></template></el-table-column><el-table-column label="所属仓库" align="center" width="180"><template #default="scope"><el-form-item :prop="'detailList['+scope.$index+'].warehouseType'":rules="tableFormRules.warehouseType"><el-select v-model="scope.row.warehouseType" placeholder="请选择所属仓库"><el-optionv-for="dict in la_work_area":key="dict.value":label="dict.label":value="dict.value"></el-option></el-select></el-form-item></template></el-table-column><el-table-column label="金额" align="center" width="160"><template #default="scope"><el-form-item :prop="'detailList['+scope.$index+'].money'" :rules="tableFormRules.money"><el-input-number v-model="scope.row.money" :precision="2" @change="changeMoney" size="small":min="0" placeholder="请输入金额"></el-input-number></el-form-item></template></el-table-column><el-table-column label="操作" align="center"><template #default="scope"><el-button link type="danger" icon="Delete" @click="handleDelete(scope.$index)">删除</el-button></template></el-table-column></el-table></el-form></div><div class="tc mt16"><el-button @click="cancel">取消</el-button><el-button @click="submitForm" type="primary" color="#67C23A">提交</el-button></div>
</template>

 数据部分

const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const buttonLoading = ref(false);
const tableFormRef = ref<ElFormInstance>();
const tableFormRules = reactive({quantity: [{ required: true, message: "请输入数量", trigger: "change" }],warehouseType: [{ required: true, message: "请选择所属仓库", trigger: "change" }],money: [{ required: true, message: "请输入金额", trigger: "change" }]
});/** 提交按钮 */
const submitForm = () => {tableFormRef.value?.validate(async (valid: boolean) => {if (valid) {buttonLoading.value = true;//处理自己的业务逻辑proxy?.$modal.msgSuccess("操作成功");cancel();}});
};

相关文章:

  • 堆的相关知识点
  • 【数据结构】二叉树链式结构——感受递归的暴力美学
  • 十大排序的稳定性和时间复杂度
  • 【proteus经典项目实战】51单片机用计数器中断实现100以内的按键计数并播放音乐
  • SAP MM学习笔记46 - 购买中的出力管理(消息管理)
  • IntelliJ IDEA 直接在软件中更新为最新版
  • 论文快过(图像配准|Coarse_LoFTR_TRT)|适用于移动端的LoFTR算法的改进分析 1060显卡上45fps
  • mysql1055报错解决方法
  • git报错403,git项目拉取不下来
  • VSCode | 修改编辑器注释的颜色
  • opencv grabCut前景后景分割去除背景
  • 455 分发饼干
  • 二级医院LIS系统源码,医学检验系统,支持DB2,Oracle,MS SQLServer等主流数据库
  • 如何快速抓取小红书帖子评论?两大实战Python技巧揭秘
  • OpenHarmony 开发
  • 分享一款快速APP功能测试工具
  • android图片蒙层
  • CODING 缺陷管理功能正式开始公测
  • es6
  • JavaScript类型识别
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • node学习系列之简单文件上传
  • React Transition Group -- Transition 组件
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Vue组件定义
  • 包装类对象
  • 记录一下第一次使用npm
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 开发基于以太坊智能合约的DApp
  • 理清楚Vue的结构
  • 日剧·日综资源集合(建议收藏)
  • 如何用vue打造一个移动端音乐播放器
  • 通过几道题目学习二叉搜索树
  • 写代码的正确姿势
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • # centos7下FFmpeg环境部署记录
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #mysql 8.0 踩坑日记
  • #pragma once与条件编译
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (12)Linux 常见的三种进程状态
  • (14)Hive调优——合并小文件
  • (学习日记)2024.02.29:UCOSIII第二节
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .net6Api后台+uniapp导出Excel
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .NET序列化 serializable,反序列化
  • .net与java建立WebService再互相调用
  • .Net转前端开发-启航篇,如何定制博客园主题