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

开源Vue表单设计器FcDesigner中组件联动的配置教程

在用FcDesigner表单开发中,经常需要实现组件之间的联动行为,例如当某个输入框的值满足特定条件时,动态显示或隐藏其他组件。FormCreate 提供了强大的组件联动功能,通过 control 配置项实现组件的加载、显示、禁用和必填等状态控制。

源码地址: Github | Gitee | 文档 | 在线演示

在这里插入图片描述

数据结构

type Control =  Array<{//通过内置条件控制,和`handle`二选一value?: any;//内置的条件,可以和`value`组合使用condition?: '==' | '!=' | '<>' | '>' | '>=' | '<' | '<=' | 'in' | 'notIn' | 'on' | 'notOn' | 'between' | 'notBetween' | 'empty' | 'notEmpty';//自定义控制条件handle?: (val: any, api: Api) => boolean;//控制对应规则的显示,禁用,必填. 默认值为 ifmethod?: 'if' | 'enabled' | 'required';//控制的字段,(对应组件的字段ID或者编号)rule: string[];
}>

注意:组件值必须与 value 严格全等(包括数据类型完全一致)。

method 选项

键名配置项说明
if条件渲染控制组件的显示/隐藏状态
required必填验证设置字段是否为必填项
disabled禁用状态控制组件是否可交互

condition 选项

键名运算符说明值类型示例
==全等组件值完全等于valueAnyvalue: 10
!=不全等组件值不等于valueAnyvalue: "error"
<>不全等组件值不等于value(同!=)Anyvalue: false
>大于组件值大于valueNumbervalue: 100
>=大于等于组件值大于等于valueNumbervalue: 18
<小于组件值小于valueNumbervalue: 0
<=小于等于组件值小于等于valueNumbervalue: 100
in包含组件值存在于value数组中Arrayvalue: [1,2,3]
notIn不包含组件值不存在于value数组中Arrayvalue: ["a","b"]
on包含值value存在于组件值(数组)中StringNumber
notOn不包含值value不存在于组件值(数组)中StringNumber
between区间内组件值在value[0]和value[1]之间Array[2]value: [10,20]
notBetween区间外组件值不在value[0]和value[1]之间Array[2]value: [0,100]
empty为空组件值为空时通过验证-value: true
notEmpty非空组件值不为空时通过验证-value: true
pattern正则用正则表达式验证组件值Stringvalue:'^1\d{10}$' (不需要前后的"/")

联动示例

实现表单中手机号(Ffb7m8y7e77zalc)与验证码(Ffa7m8y7eu9eaoc)字段的联动显示:当手机号输入不为空时,才展示验证码输入框。

在这里插入图片描述

在联动数据中配置联动规则

在这里插入图片描述

注意:必须严格按指定数据类型配置,否则会触发内容语法错误提示。

更多示例

控制当前表单中对应的自己是否显示

[{value: '1',rule: ['field1', 'field2']
}]

控制当前表单中对应的自己是否禁用

[{value: '1',method: 'disabled',rule: ['field1', 'name2']
}]

控制当前表单中对应的自己是否必填

[{value: '1',method: 'required',rule: ['field1']
}]

自定义条件

[{"handle": function(val, api) {return val === 'ok' || val === 'no';},"method": "if","rule": ["Ffa7m8y7eu9eaoc"]
}]
http://www.xdnf.cn/news/571573.html

相关文章:

  • 中国地图上标注颜色的方法
  • 食品饮料行业AI转型趋势分析与智能化解决方案探索​
  • 实战5:个性化数字艺术生成与销售
  • 目标检测 Lite-DETR(2023)详细解读
  • 信息系统项目管理师考前练习3
  • 怎样用 esProc 生成定长时间窗口列表并统计
  • 【Java高阶面经:微服务篇】7. 1秒响应保障:超时控制如何成为高并发系统的“救火队长”?
  • esp32cmini SK6812 2个方式
  • redis--redisJava客户端:Jedis详解
  • WebFuture:在银河麒麟系统中如何无中间件为WebFuture绑定域名、SSL证书
  • 【Linux】借助gcc源码修改,搜索头文件当前进展
  • springboot链接nacos测试
  • 分类预测 | Matlab实现PNN概率神经网络多特征分类预测
  • 数学实验(Matlab绘图基础)
  • 大量程粗糙度轮廓仪适用于哪些材质和表面?
  • 矿物绝缘加热电缆行业2025数据分析报告
  • 使用Gemini, LangChain, Gradio打造一个书籍推荐系统 (第一部分)
  • Dockerfile指令详解
  • 打卡第二十四天
  • Swagger在java的运用
  • PostgreSQL 日常维护
  • Elasticsearch常用命令
  • 宁夏建设工程专业技术职称评审条件
  • 嵌入式Linux:移植使用scp指令
  • Java多线程深度解析:从核心机制到高阶实战
  • upload-labs通关笔记-第16关 文件上传之exif_imagetype绕过(图片马)
  • springcloud集成seata报错Error creating bean with name ‘globalTransactionScanner‘
  • 解决RedisTemplate的json反序列泛型丢失问题
  • SpringAI开发SSE传输协议的MCP Server
  • 安卓开发用到的设计模式(1)创建型模式