当前位置: 首页 > 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、缺页异常、大页认知
  • 见证历史与未来共舞:上海西岸“蝶变共生”对话讲坛圆满举行
  • 长三角议事厅| AI作曲时代:长三角如何奏响数字音乐乐章
  • 视频丨英伟达总裁黄仁勋:美勿幻想AI领域速胜中国
  • 结婚这件事,年轻人到底怎么想的?
  • 史学巨擘的思想地图与学术路径——王汎森解析梁启超、陈寅恪、傅斯年
  • 中信银行一季度净利195.09亿增1.66%,不良率持平