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

根据JSON动态生成表单表格

根据JSON动态生成表单表格

  • 一. 子组件 DynamicFormTable.vue
    • 1,根据JSON数据动态生成表单表格,支持表单验证
    • JS部分
      • 1.1,props数据
      • 1.2,表单数据和数据监听
      • 1.3,自动验证
      • 1.4,表单验证
      • 1.5,获取表单数据
      • 1.6,事件处理
      • 1.7,暴露方法给父组件
    • 2,HTML部分
  • 二,父组件
    • 1, 模拟数据
    • 2,部分事件

一. 子组件 DynamicFormTable.vue

1,根据JSON数据动态生成表单表格,支持表单验证

基于vite+element plus + ts 动态生成表格表单,表单支持添加删除行列。

JS部分

1.1,props数据

const props = defineProps({tableTitle: {type: Array<any>,default: () => []},tableData: {type: Array<any>,default: () => []},tableEvent: {type: Array<any>,default: () => []},height: {type: Number,default: null},eventWidth: {type: Number,default: 100}
})

1.2,表单数据和数据监听

const form = reactive({rows: [...props.tableData]
})watch(() => props.tableData, () => {console.log('props.tableData', props.tableData)form.rows = [...props.tableData]
},{deep: true})

1.3,自动验证

const getRules = (column: any, row: any) => {if (column.required) {return [{ required: true, message: `${column.label}不能为空`, trigger: ['blur', 'change'] }]}return []
}

1.4,表单验证

const dynamicFormRef = ref()const validate = () => {return new Promise((resolve, reject) => {dynamicFormRef.value.validate((valid: any) => {if (valid) {resolv

相关文章:

  • Jenkins流水线管理工具
  • Axure疑难杂症:详解设置选中与选中效果(玩转选中)
  • python——异常
  • 计算机视觉各类任务评价指标详解
  • 从FP32到BF16,再到混合精度的全景解析
  • 深度解析 Java 泛型通配符 `<? super T>` 和 `<? extends T>`
  • Cancer Cell|scRNA-seq + scTCR + 空间多组学整合分析,揭示CD8⁺ T细胞在免疫治疗中的“双路径” | 临床问题的组学解答
  • Tailwind CSS实战:快速构建定制化UI的新思路
  • 【CUDA 编译 bug】ld: cannot find -lcudart
  • 手工收集统计信息
  • 管家婆财贸ERP BB103.收款单按明细核算部门项目
  • Q2桥门式起重机司机考试复习重点
  • 16.ArkUI Toggle的介绍和使用
  • 软件测试流程
  • Mac中 “XX”文件已损坏,无法打开 解决方案
  • 系统架构师2025年论文《论软件架构评估2》
  • DeepSeek+Cline:开启自动化编程新纪元
  • guvcview-源码记录
  • 蓝牙GATT协议
  • 认识 Linux 内存构成:Linux 内存调优之页表、TLB、缺页异常、大页认知
  • 央行回应美债波动:单一市场、单一资产变动对我国外储影响总体有限
  • 下任美联储主席热门人选沃什:美联储犯下“系统性错误”,未能控制一代人以来最严重的通胀
  • 财政部下达农业生产防灾救灾资金3.76亿元,支持黄淮海等地抗旱保春播
  • “十四五”以来少数民族发展资金累计下达边疆省区252亿元
  • 常熟银行一季度净赚超10亿增逾13%,净息差较上年末下降0.1个百分点
  • 健康社区“免疫行动”促进计划启动,发布成人预防“保典”