vue3 vxe多级表头可编辑表单全量数据校验 根据数组循环出来的两个表格 校验判断值不能为空 附代码

时间: 2024-03-16 08:43:02 浏览: 19
好的,以下是一个示例代码,使用了 Vue3 和 VXE-Table 进行多级表头可编辑表单全量数据校验: ```html <template> <div> <vxe-grid ref="grid1" :columns="columns1" :data="data1" edit-config="{trigger: 'click'}"></vxe-grid> <vxe-grid ref="grid2" :columns="columns2" :data="data2" edit-config="{trigger: 'click'}"></vxe-grid> <button @click="validateData">校验数据</button> </div> </template> <script> import { defineComponent } from 'vue' import XEUtils from 'xe-utils' import VXEGrid from 'vxe-table-3/lib/grid' import 'vxe-table-3/lib/style.css' export default defineComponent({ components: { VXEGrid }, setup() { const columns1 = [ { title: '姓名', children: [ { title: '姓', field: 'firstName', width: 120, editable: true }, { title: '名', field: 'lastName', width: 120, editable: true } ] }, { title: '性别', field: 'gender', width: 80, editable: true } ] const columns2 = [ { title: '学科', children: [ { title: '数学', field: 'math', width: 100, editable: true }, { title: '语文', field: 'chinese', width: 100, editable: true } ] }, { title: '总分', field: 'total', width: 80, editable: false } ] const data1 = [ { firstName: '张', lastName: '三', gender: '男' }, { firstName: '李', lastName: '四', gender: '女' } ] const data2 = [ { math: '', chinese: '', total: '' } ] const validateData = () => { const grid1 = XEUtils.get(this, '$refs.grid1.$xegrid') const grid2 = XEUtils.get(this, '$refs.grid2.$xegrid') let isValid = true grid1.getTableData().forEach(row => { if (!row.firstName || !row.lastName || !row.gender) { grid1.setActiveCell({ row, column: { property: 'firstName' } }) isValid = false return false } }) if (!isValid) return grid2.getTableData().forEach(row => { if (!row.math || !row.chinese) { grid2.setActiveCell({ row, column: { property: 'math' } }) isValid = false return false } row.total = parseInt(row.math) + parseInt(row.chinese) }) if (!isValid) return console.log('数据校验通过') } return { columns1, columns2, data1, data2, validateData } } }) </script> ``` 在这个示例中,我们使用了 VXE-Table 的 Grid 组件来展示两个表格,分别是 `grid1` 和 `grid2`。这两个表格的列定义分别是 `columns1` 和 `columns2`,数据分别是 `data1` 和 `data2`。 当用户点击“校验数据”按钮时,我们会分别遍历这两个表格的数据,判断每一行数据中的必填字段是否为空。如果有必填字段为空,我们会将焦点定位到第一个空字段的单元格上,并提示用户该字段不能为空。如果所有必填字段都不为空,我们会计算出每一行数据的总分,并把总分填入相应的单元格中。 最后,如果所有数据的校验都通过,则会在控制台输出“数据校验通过”。

相关推荐

最新推荐

recommend-type

vue+element 模态框表格形式的可编辑表单实现

主要介绍了vue+element 模态框表格形式的可编辑表单实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

vue-cli3 取消eslint校验代码的解决办法

主要介绍了vue-cli3 取消eslint校验代码的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

vue 对象数组中,根据相同属性的数据合并,重组新的数组对象

可以通过上次的需求,我们通过 TYPE 和 REMARK 两个 key 对应的 value 共同决定是否合并属性,我们是可以将两个属性进行串联成一个新的 key,如果这个 key 相同,即两个条件同时满足。这里不仅仅合并相邻的数据,不...
recommend-type

vue实现form表单与table表格的数据关联功能示例

主要介绍了vue实现form表单与table表格的数据关联功能,涉及vue.js表单事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
recommend-type

Vue不能观察到数组length的变化

由于 JavaScript 的限制,Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项时,例如:vm.items[indexOfItem] = newValue 当你修改数组的长度时,例如:vm.items.length = newLength 因为vue的响应式是通过 ...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。