@aligov/gov-rule-tree

规则树组件

Usage no npm install needed!

<script type="module">
  import aligovGovRuleTree from 'https://cdn.skypack.dev/@aligov/gov-rule-tree';
</script>

README

规则树

@aligov/gov-rule-tree

规则树组件,严重依赖于@alipay/tech-ui,源码版本:0.1.4。

API

RuleTree

该组件用于复杂规则场景。

参数 说明 类型 默认值
value 规则编辑器初始值,组件认为 value 不为 undefined 时代表初始值 {relation: string; children: [...], [key: string]: any} -
onChange 规则编辑器值变化回调, (value: {relation: string; children: [...], [key: string]: any}) => void -
fields 每一行表达式的配置 {id: string; rules: Rule[]; element: ReactElement; render: (ctx) => ReactElement} -
disabled 禁用模式/查看模式 boolean false
rootRelations 根节点下拉选择项 {text: string, value: string}[] [{text: 'And', value: 'and'}, {text: 'Or', value: 'or'}]
relations 非根节点下拉选择项 {text: string, value: string}[] [{text: 'And', value: 'and'}, {text: 'Or', value: 'or'}]
cascades 会产生级联的field id string[] -
onCascade 级联回调 (ctx: {setValues, getValue}) => void -
canAddCondition 是否可以添加条件 (data: {level: number, ...}) => boolean true
canAddConditionGroup 是否可以添加条件组 (data: {level: number, ...}) => boolean true
children 返回外部拖拽元素 (dragItem: DragItem) => React.ReactFragment -

DragItem

参数 说明 类型 默认值
beginDrag 开始拖拽时的回调 (dragItem: DragItem) => void -
endDrop 放置成功后的回调 (dropProps: DropProps) => void -
type 拖拽系统的共用标识 string -
$dragItem 是否为外部拖拽元素 boolean true

Field

参数 说明 类型 默认值
id 一行表单元素中对应的单个表单元素 id string -
render 表单元素渲染 (ctx: {setValues, getValue}) => ReactElement -
rules 校验规则, 请参考 async-validator Rule[] -
  • setValues 支持 (string, any) => void(Record<string, any>) => void
  • getValue 支持 (string) => any