fix:修复部分组件事件动作问题&补充组件动作表文档&规范事件动作参数类型 (#4152)

* fix:修复部分组件事件动作问题&补充组件动作表文档&规范事件动作参数类型

* fix:修复部分组件事件动作问题&补充组件动作表文档&规范事件动作参数类型

* fix:input-range类型声明问题

* fix:input-range单测问题

* fix:input-range单测u snapshot
This commit is contained in:
hsm-lv 2022-04-26 21:12:00 +08:00 committed by GitHub
parent e89e82af80
commit e6d2b2a035
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
76 changed files with 1237 additions and 588 deletions

View File

@ -577,9 +577,9 @@ exports[`Renderer:range:multiple 1`] = `
/>
</span>
<span
aria-disabled="true"
aria-disabled="false"
aria-label="Decrease Value"
class="cxd-Number-handler cxd-Number-handler-down cxd-Number-handler-down-disabled"
class="cxd-Number-handler cxd-Number-handler-down"
role="button"
unselectable="on"
>
@ -595,12 +595,12 @@ exports[`Renderer:range:multiple 1`] = `
<input
aria-valuemax="100"
aria-valuemin="0"
aria-valuenow="0"
aria-valuenow="7"
autocomplete="off"
class="cxd-Number-input"
role="spinbutton"
step="1"
value="0"
value="7"
/>
</div>
</div>
@ -613,11 +613,11 @@ exports[`Renderer:range:multiple 1`] = `
>
<div
class="cxd-InputRange-track-active"
style="width: 100%; left: 0%;"
style="width: 6%; left: 7%;"
/>
<div
class="cxd-InputRange-handle"
style="left: 0%; z-index: 1; position: relative;"
style="left: 7%; z-index: 1; position: relative;"
>
<div
class="cxd-InputRange-handle-icon"
@ -632,7 +632,7 @@ exports[`Renderer:range:multiple 1`] = `
style="position: relative;"
>
<span>
0
7
</span>
<div
class="resize-sensor"
@ -716,7 +716,7 @@ exports[`Renderer:range:multiple 1`] = `
</div>
<div
class="cxd-InputRange-handle"
style="left: 100%; z-index: 1; position: relative;"
style="left: 13%; z-index: 1; position: relative;"
>
<div
class="cxd-InputRange-handle-icon"
@ -731,7 +731,7 @@ exports[`Renderer:range:multiple 1`] = `
style="position: relative;"
>
<span>
100
13
</span>
<div
class="resize-sensor"
@ -825,9 +825,9 @@ exports[`Renderer:range:multiple 1`] = `
class="cxd-Number-handler-wrap"
>
<span
aria-disabled="true"
aria-disabled="false"
aria-label="Increase Value"
class="cxd-Number-handler cxd-Number-handler-up cxd-Number-handler-up-disabled"
class="cxd-Number-handler cxd-Number-handler-up"
role="button"
unselectable="on"
>
@ -855,18 +855,18 @@ exports[`Renderer:range:multiple 1`] = `
<input
aria-valuemax="100"
aria-valuemin="0"
aria-valuenow="100"
aria-valuenow="13"
autocomplete="off"
class="cxd-Number-input"
role="spinbutton"
step="1"
value="100"
value="13"
/>
</div>
</div>
</div>
<a
class="cxd-InputRange-clear is-active"
class="cxd-InputRange-clear"
>
<icon-mock
classname="icon icon-close"

View File

@ -70,3 +70,10 @@ order: 99
- `isDefaultPage` 当你需要自定义 404 页面的时候有用,不要出现多个这样的页面,因为只有第一个才会有用。
- `visible` 有些页面可能不想出现在菜单中,可以配置成 `false`,另外带参数的路由无需配置,直接就是不可见的。
- `className` 菜单类名。
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------------------------- | ---------------- |
| reload | - | 刷新(重新加载) |
| setValue | `value: object` 更新的数据 | 更新数据 |

View File

@ -200,15 +200,17 @@ order: 36
| scheduleClassNames | `Array<string>` | `['bg-warning', 'bg-danger', 'bg-success', 'bg-info', 'bg-secondary']` | 日历中展示日程的颜色,参考[背景色](https://baidu.gitee.io/amis/zh-CN/style/background/background-color) |
| scheduleAction | `SchemaNode` | | 自定义日程展示 |
| largeMode | `boolean` | `false` | 放大模式 |
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | ------ |
| change | `value: string` 时间值 | 值变化 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的值 | 更新数据 |

View File

@ -450,3 +450,10 @@ window.echarts = amisRequire('echarts');
| height | `string` | | 设置根元素的高度 |
| replaceChartOption | `boolean` | `false` | 每次更新是完全覆盖配置项还是追加? |
| `trackExpression` | `string` | | 当这个表达式的值有变化时更新图表 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------------------------- | ------------------------------------------ |
| reload | - | 刷新(重新加载) |
| setValue | `value: object` 更新的数据 | 更新数据,等于更新图表所依赖数据域中的变量 |

View File

@ -873,6 +873,7 @@ feedback 反馈弹框是指,在 ajax 请求后,可以显示一个弹框,
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | ------------ |
| -------- | -------------------------- | ------------ |
| confirm | - | 确认(提交) |
| cancel | - | 取消(关闭) |
| setValue | `value: object` 更新的数据 | 更新数据 |

View File

@ -296,6 +296,7 @@ order: 43
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | ------------ |
| -------- | -------------------------- | ------------ |
| confirm | - | 确认(提交) |
| cancel | - | 取消(关闭) |
| setValue | `value: object` 更新的数据 | 更新数据 |

View File

@ -162,3 +162,18 @@ order: 6
| joinValues | `boolean` | `true` | [拼接值](./options#%E6%8B%BC%E6%8E%A5%E5%80%BC-joinvalues) |
| extractValue | `boolean` | `false` | [提取值](./options#%E6%8F%90%E5%8F%96%E5%A4%9A%E9%80%89%E5%80%BC-extractvalue) |
| autoFill | `object` | | [自动填充](./options#%E8%87%AA%E5%8A%A8%E5%A1%AB%E5%85%85-autofill) |
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | --------------- | ------ |
| change | `value: string` | 值变化 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| reload | - | 刷新(重新加载),只针对配置了`source`的点选按钮有效 |
| setValue | `value: string` 更新的值 | 更新数据 |

View File

@ -58,12 +58,14 @@ order: 7
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| change | `value: string \| Option[]` 选中值 | 选中值发生变化时触发 |
| -------- | ---------------------- | -------------------- |
| change | `value: string` 选中值 | 选中值发生变化时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| reload | - | 刷新(重新加载),只针对配置了`source`的点选按钮有效 |
| setValue | `value: string` 更新的值 | 更新数据,多个值用`,`分隔 |

View File

@ -68,6 +68,7 @@ order: 8
勾选上例中的勾选框,观察数据域变化,会发现勾选后值为`1`,而取消勾选后为`0`
## 按钮模式
```schema: scope="body"
{
"type": "form",
@ -80,31 +81,34 @@ order: 8
"trueValue": true,
"falseValue": false,
"optionType": "button",
"option": "选项说明",
"checked": true
}
]
}
```
## 属性表
除了支持 [普通表单项属性表](./formitem#%E5%B1%9E%E6%80%A7%E8%A1%A8) 中的配置以外,还支持下面一些配置
| 属性名 | 类型 | 默认值 | 说明 |
| ---------- | -------- | --------- | ---------------- |
| ---------- | ------------------------- | --------- | ---------------- |
| option | `string` | | 选项说明 |
| trueValue | `stringnumberboolean` | `true` | 标识真值 |
| falseValue | `stringnumberboolean` | `false` | 标识假值 |
| optionType | `defaultbutton` | `default` | 设置option类型 |
| optionType | `defaultbutton` | `default` | 设置 option 类型 |
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| -------- | ------------------------- | ---------------------- |
| change | `value: boolean` 选中状态 | 选中状态发生变化时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| -------- | ------------------------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string \|number \|boolean` 更新的值 | 更新数据 |

View File

@ -347,12 +347,14 @@ order: 9
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | ---------------------------------- | -------------------- |
| change | `value: string \| Option[]` 选中值 | 选中值发生变化时触发 |
| -------- | ---------------------- | -------------------- |
| change | `value: string` 选中值 | 选中值发生变化时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | ---- |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| reload | - | 刷新(重新加载),只针对配置了`source`的点选按钮有效 |
| setValue | `value: string` 更新的值 | 更新数据,多个值用`,`分隔 |

View File

@ -912,4 +912,8 @@ combo 还有一个作用是增加层级,比如返回的数据是一个深层
## 动作表
暂无
| 动作名称 | 动作配置 | 说明 |
| -------- | ----------------------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: object \| Array<object>` 更新的值 | 更新数据,对象数组针对开启`multiple`模式 |

View File

@ -94,5 +94,8 @@ order: 17
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | -------- |
| focus | - | 获取焦点 |
| -------- | ---------------------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| focus | - | 获取焦点,焦点落在右侧编辑面板 |
| setValue | `value: string` 更新的右侧编辑面板中的值 | 更新数据 |

View File

@ -173,5 +173,8 @@ amis 的编辑器是基于 monaco 开发的,如果想进行深度定制,比
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | -------- |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| focus | - | 获取焦点 |
| setValue | `value: string` 更新的值 | 更新数据 |

View File

@ -1219,9 +1219,10 @@ Form 支持轮询初始化接口,步骤如下:
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | -------- |
| -------- | ------------------------------ | -------------------------- |
| submit | - | 提交表单 |
| reset | - | 重置表单 |
| clear | - | 清空表单 |
| validate | - | 校验表单 |
| reload | - | 重新加载 |
| reload | - | 刷新(重新加载) |
| setValue | `value: object` 更新的表单数据 | 更新数据,对数据进行 merge |

View File

@ -85,12 +85,13 @@ order: 10
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| -------- | -------------------------------- | -------------------- |
| change | `value: number \| string` 选中值 | 选中值发生变化时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| -------- | ---------------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string \| number` 更新的值 | 更新数据 |

View File

@ -114,7 +114,7 @@ order: 15
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -122,6 +122,7 @@ order: 15
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ------------------------------------------- | ----------------------------------------------------------- |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间区间值,用`,`隔开 | 更新数据,,依赖格式`format`,例如:'1650556800,1652889599' |

View File

@ -370,10 +370,11 @@ order: 13
| utc | `boolean` | `false` | 保存 utc 值 |
| clearable | `boolean` | `true` | 是否可清除 |
| embed | `boolean` | `false` | 是否内联模式 |
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -381,6 +382,7 @@ order: 13
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ---------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间值 | 更新数据,依赖格式`format`,例如:'1650556800' |

View File

@ -80,7 +80,7 @@ order: 16
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -88,6 +88,7 @@ order: 16
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ------------------------------------------- | -------------------------------------------------------- |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间区间值,用`,`隔开 | 更新数据,依赖格式`format`,例如 '1650556800,1652889599' |

View File

@ -318,7 +318,7 @@ order: 14
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -326,6 +326,7 @@ order: 14
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ---------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间值 | 更新数据,依赖格式`format`,例如:'1650556800' |

View File

@ -233,5 +233,7 @@ order: 14
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | ---- |
| -------- | ---------------------------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: Array<object>` 更新的 excel 解析后数据 | 更新数据 |

View File

@ -121,3 +121,18 @@ key 只能是字符串,因此输入格式是 `input-text`,但 value 格式
| valuePlaceholder | `string` | | value 的提示信息的 |
| draggable | `boolean` | true | 是否可拖拽排序 |
| defaultValue | | `''` | 默认值 |
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | ------------------------------------------------------------ | ---------- |
| add | value: `string` or `string[]` 现有的数据集 | 添加组合项 |
| delete | key: `number` 移除项的索引<br />value: `string` 现有的数据集 | 删除组合项 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: object` 更新的值 | 更新数据 |

View File

@ -62,7 +62,7 @@ order: 15
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -70,6 +70,7 @@ order: 15
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ------------------------------------------- | -------------------------------------------------------- |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间区间值,用`,`隔开 | 更新数据,依赖格式`format`,例如 '1646064000,1651334399' |

View File

@ -156,7 +156,7 @@ order: 81
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -164,6 +164,7 @@ order: 81
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ---------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间值 | 更新数据,依赖格式`format`,例如:'1646064000' |

View File

@ -121,7 +121,7 @@ order: 32
## 事件表
| 事件名称 | 事件参数 | 说明 |
| ------ | -------------------- | ------------------ |
| -------- | ---------------------- | -------------------- |
| change | `value: number` 值变化 | 输入值发生变化时触发 |
| blur | - | - |
| focus | - | - |
@ -129,5 +129,7 @@ order: 32
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | ----- | ---- |
| -------- | -------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: number` 更新的数值 | 更新数据 |

View File

@ -26,4 +26,12 @@ order: 35
## 属性表
请参考[输入框](./text)
请参考[输入框](./input-text)
## 事件表
请参考[输入框](./input-text)
## 动作表
请参考[输入框](./input-text)

View File

@ -62,7 +62,7 @@ order: 15
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -70,6 +70,7 @@ order: 15
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ------------------------------------------- | -------------------------------------------------------- |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间区间值,用`,`隔开 | 更新数据,依赖格式`format`,例如 '1640966400,1664553600' |

View File

@ -29,7 +29,7 @@ order: 62
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -37,6 +37,7 @@ order: 62
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ---------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间值 | 更新数据,依赖格式`format`,例如:'1640966400' |

View File

@ -256,7 +256,7 @@ order: 38
当做选择器表单项使用时,除了支持 [普通表单项属性表](./formitem#%E5%B1%9E%E6%80%A7%E8%A1%A8) 中的配置以外,还支持下面一些配置
| 属性名 | 类型 | 默认值 | 说明 |
| ---------------- | ------------------------------------------------------------ | ------- | ------------------------------------------------------------ |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| className | `string` | | css 类名 |
| value | `number` or `string` or `{min: number, max: number}` or `[number, number]` | | |
| min | `number` | `0` | 最小值 |
@ -278,21 +278,18 @@ order: 38
| onChange | `function` | | 当 组件 的值发生改变时,会触发 onChange 事件,并把改变后的值作为参数传入 |
| onAfterChange | `function` | | 与 `onmouseup` 触发时机一致,把当前值作为参数传入 |
## 事件表
| 事件名称 | 事件参数 | 说明 |
|--------------- |------------------------|----------------------|
| change | value: `number` or `string` or`{min: number, max: number}` 滑块当前值 | 当值变化时触发的事件 |
| blur | - | 输入框失去焦点<br/>前置条件showInput为true |
| focus | - | 输入框获取焦点<br/>前置条件showInput为true |
| -------- | ----------------------------------------------------------------- | ---------------------------------------------- |
| change | `value: number \| string \|{min: number, max: number}` 滑块当前值 | 当值变化时触发的事件 |
| blur | - | 输入框失去焦点<br/>前置条件showInput 为 true |
| focus | - | 输入框获取焦点<br/>前置条件showInput 为 true |
## 动作表
| 动作名称 | 动作配置 | 说明 |
|----------------|-------------------------|---------------------|
| -------- | ---------------------------------------------------------------- | ---------------------------------------------------------- |
| clear | - | 清除输入框<br />前置条件showInput 和 clearable 都为 true |
| reset | - | 重置到最小值 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: number \| string \| {min: number, max: number}` 更新的值 | 更新数据 |

View File

@ -163,12 +163,13 @@ order: 37
## 事件表
| 事件名称 | 事件参数 | 说明 |
|----------------|------------------------|----------------------|
| -------- | ---------------------- | -------- |
| change | `value: number` 评分值 | 数值变化 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
|----------------|------------------------------|--------------------|
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: number` 更新的值 | 更新数据 |

View File

@ -49,14 +49,16 @@ order: 55
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| change | `value: string \| Option[]` 选中值 | 选中值发生变化时触发 |
| blur | `value: string \| Option[]` 选中值 | 失去焦点时触发 |
| focus | `value: string \| Option[]` 选中值 | 获得焦点时触发 |
| -------- | ---------------------- | -------------------- |
| change | `value: string` 选中值 | 选中值发生变化时触发 |
| blur | `value: string` 选中值 | 失去焦点时触发 |
| focus | `value: string` 选中值 | 获得焦点时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| reload | - | 刷新(重新加载),只针对配置了`source`的点选按钮有效 |
| setValue | `value: string` 更新的值 | 更新数据,多个值用`,`分隔 |

View File

@ -348,16 +348,19 @@ order: 56
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | --------------------------- | -------- |
| click | `value: string \| string[]` | 点击 |
| focus | `value: string \| string[]` | 获取焦点 |
| blur | `value: string \| string[]` | 失去焦点 |
| enter | `value: string \| string[]` | 回车 |
| change | `value: string \| string[]` | 值变化 |
| -------- | --------------- | -------- |
| click | `value: string` | 点击 |
| focus | `value: string` | 获取焦点 |
| blur | `value: string` | 失去焦点 |
| enter | `value: string` | 回车 |
| change | `value: string` | 值变化 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | -------- |
| -------- | ------------------------ | -------------------------------------------------- |
| clear | - | 清空 |
| reset | - | 重置 |
| focus | - | 获取焦点 |
| reload | - | 刷新(重新加载),只针对配置了`source`的输入框有效 |
| setValue | `value: string` 更新的值 | 更新数据,开启`multiple`多选时用`,`分隔 |

View File

@ -77,11 +77,10 @@ order: 15
| clearable | `boolean` | `true` | 是否可清除 |
| embed | `boolean` | `false` | 是否内联模式 |
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -89,6 +88,7 @@ order: 15
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ------------------------------------------- | -------------------------------------------------------- |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间区间值,用`,`隔开 | 更新数据,依赖格式`format`,例如 '1617206400,1743436800' |

View File

@ -255,7 +255,7 @@ order: 58
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -263,6 +263,7 @@ order: 58
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ---------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间值 | 更新数据,依赖格式`format`,例如:'1648746120' |

View File

@ -159,7 +159,7 @@ order: 59
## 选中父节点是否自动选中子节点
`autoCheckChildren`默认为true选中父节点会自动选中子节点可以设置`"autoCheckChildren": false`,不自动选中子节点
`autoCheckChildren`默认为 true选中父节点会自动选中子节点可以设置`"autoCheckChildren": false`,不自动选中子节点
```schema: scope="body"
{
@ -244,8 +244,8 @@ order: 59
```
## 选中父节点自动选中子节点,数据是否包含父子节点的值
`cascade`默认为false子节点禁止反选值不包含子节点值配置`"cascade": true`,子节点可以反选,值包含父子节点值
`cascade`默认为 false子节点禁止反选值不包含子节点值配置`"cascade": true`,子节点可以反选,值包含父子节点值
```schema: scope="body"
{
@ -329,7 +329,7 @@ order: 59
}
```
`withChildren`默认为false子节点禁止反选值包含父子节点值配置`withChildren": true`,子节点禁止反选,值包含父子节点值
`withChildren`默认为 false子节点禁止反选值包含父子节点值配置`withChildren": true`,子节点禁止反选,值包含父子节点值
```schema: scope="body"
{
@ -883,7 +883,7 @@ true false true [{label: 'A/B/C', value: 'a/b/c'},{label: 'A
当做选择器表单项使用时,除了支持 [普通表单项属性表](./formitem#%E5%B1%9E%E6%80%A7%E8%A1%A8) 中的配置以外,还支持下面一些配置
| 属性名 | 类型 | 默认值 | 说明 |
| ---------------------- | -------------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------- |
| ---------------------- | -------------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| options | `Array<object>`或`Array<string>` | | [选项组](./options#%E9%9D%99%E6%80%81%E9%80%89%E9%A1%B9%E7%BB%84-options) |
| source | `string`或 [API](../../../../docs/types/api) | | [动态选项组](./options#%E5%8A%A8%E6%80%81%E9%80%89%E9%A1%B9%E7%BB%84-source) |
| autoComplete | [API](../../../../docs/types/api) | | [自动提示补全](./options#%E8%87%AA%E5%8A%A8%E8%A1%A5%E5%85%A8-autocomplete) |
@ -911,9 +911,9 @@ true false true [{label: 'A/B/C', value: 'a/b/c'},{label: 'A
| initiallyOpen | `boolean` | `true` | 设置是否默认展开所有层级。 |
| unfoldedLevel | `number` | `0` | 设置默认展开的级数,只有`initiallyOpen`不是`true`时生效。 |
| autoCheckChildren | `boolean` | `true` | 当选中父节点时级联选择子节点。 |
| cascade | `boolean` | `false` | autoCheckChildren为true时生效默认行为子节点禁用值只包含父节点值设置为true时子节点可反选值包含父子节点值。 |
| withChildren | `boolean` | `false` | cascade为false时生效选中父节点时值里面将包含父子节点的值否则只会保留父节点的值。
| onlyChildren | `boolean` | `false` | autoCheckChildren为true时生效不受cascade影响onlyChildren为trueui行为级联选中子节点子节点可反选值只包含子节点的值。 |
| cascade | `boolean` | `false` | autoCheckChildren true 时生效;默认行为:子节点禁用,值只包含父节点值;设置为 true 时,子节点可反选,值包含父子节点值。 |
| withChildren | `boolean` | `false` | cascade false 时生效,选中父节点时,值里面将包含父子节点的值,否则只会保留父节点的值。 |
| onlyChildren | `boolean` | `false` | autoCheckChildren true 时生效,不受 cascade 影响onlyChildren trueui 行为级联选中子节点,子节点可反选,值只包含子节点的值。 |
| rootCreatable | `boolean` | `false` | 是否可以创建顶级节点 |
| rootCreateTip | `string` | `"添加一级节点"` | 创建顶级节点的悬浮提示 |
| minLength | `number` | | 最少选中的节点数 |
@ -922,23 +922,22 @@ true false true [{label: 'A/B/C', value: 'a/b/c'},{label: 'A
| enableNodePath | `boolean` | `false` | 是否开启节点路径模式 |
| pathSeparator | `string` | `/` | 节点路径的分隔符,`enableNodePath`为`true`时生效 |
## 事件表
| 事件名称 | 事件参数 | 说明 |
|--------------- |------------------------ |----------------------|
| ------------ | ------------------------------ | -------------- |
| change | value: `string` 更新后的数据 | 选中值更改 |
| add | value: `string` 新增节点信息 | 新增选项 |
| edit | value: `string` 编辑节点信息 | 编辑选项 |
| delete | value: `string` 删除节点信息 | 删除选项 |
| loadFinished | value: `json` 懒加载返回的数据 | 懒加载完成触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
|----------------|-------------------------------------------------- |---------------------|
| expand | openLevel: `number` | 配置展开层级 |
| collapse | - | 关闭树|
| clear | - | 清除数据 |
| reset | - | 重置数据 |
| -------- | ------------------------ | ------------------------------------------------------ |
| expand | openLevel: `number` | 展开层级 |
| collapse | - | 收起 |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的值 | 更新数据,开启`multiple`,多值用`,`分隔 |

View File

@ -62,7 +62,7 @@ order: 15
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -70,6 +70,7 @@ order: 15
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ------------------------------------------- | -------------------------------------------------------- |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间区间值,用`,`隔开 | 更新数据,依赖格式`format`,例如 '1648746120,1648760760' |

View File

@ -29,7 +29,7 @@ order: 61
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | -------------------- |
| change | `value: string` 时间值 | 值变化 |
| focus | - | 获得焦点(非内嵌模式) |
| blur | - | 失去焦点(非内嵌模式) |
@ -37,6 +37,7 @@ order: 61
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| -------- | ---------------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的时间值 | 更新数据,依赖格式`format`,例如:'1617206400' |

View File

@ -90,3 +90,18 @@ ListSelect 一般用来实现选择,可以单选也可以多选,和 Radio/Ch
| extractValue | `boolean` | `false` | [提取值](./options#%E6%8F%90%E5%8F%96%E5%A4%9A%E9%80%89%E5%80%BC-extractvalue) |
| autoFill | `object` | | [自动填充](./options#%E8%87%AA%E5%8A%A8%E5%A1%AB%E5%85%85-autofill) |
| listClassName | `string` | | 支持配置 list div 的 css 类名。比如: `flex justify-between` |
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | ---------------------- | -------------------- |
| change | `value: string` 选中值 | 选中值发生变化时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| reload | - | 刷新(重新加载),只针对配置了`source`的点选按钮有效 |
| setValue | `value: string` 更新的值 | 更新数据,开启`multiple`,多值用`,`分隔 |

View File

@ -285,12 +285,14 @@ row 模式,每行只能单选某个单元格
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| -------- | --------------------- | -------------------- |
| change | `value: Array` 选中值 | 选中值发生变化时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------------------------------------------------------------------------------------------------- | ---- |
| -------- | ----------------------- | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| reload | - | 刷新(重新加载),只针对配置了`source`的点选按钮有效 |
| setValue | `value: Array` 更新的值 | 更新数据 |

View File

@ -613,20 +613,22 @@ order: 31
| searchPromptText | `string` | `"输入内容进行检索"` | 搜索框占位文本 |
| noResultsText | `string` | `"未找到任何结果"` | 无结果时的文本 |
| multiple | `boolean` | `false` | 可否多选 |
| hideNodePathLabel | `boolean` | `false` | 是否隐藏选择框中已选择节点的路径 label 信息
| hideNodePathLabel | `boolean` | `false` | 是否隐藏选择框中已选择节点的路径 label 信息 |
| onlyLeaf | `boolean` | `false` | 只允许选择叶子节点 |
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | ---------------------------------- | -------------------- |
| change | `value: string \| Option[]` 选中值 | 选中值发生变化时触发 |
| blur | `value: string \| Option[]` 选中值 | 失去焦点时触发 |
| focus | `value: string \| Option[]` 选中值 | 获得焦点时触发 |
| -------- | ---------------------- | -------------------- |
| change | `value: string` 选中值 | 选中值发生变化时触发 |
| blur | `value: string` 选中值 | 失去焦点时触发 |
| focus | `value: string` 选中值 | 获得焦点时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | ---- |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| reload | - | 刷新(重新加载),只针对配置了`source`的点选按钮有效 |
| setValue | `value: string` 更新的值 | 更新数据,开启`multiple`时,多个值用`,`分隔 |

View File

@ -253,12 +253,14 @@ api 返回内容需要包含 options 字段
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | -------------------------------- | -------------------- |
| change | `value: string \| Option` 选中值 | 选中值发生变化时触发 |
| -------- | ---------------------- | -------------------- |
| change | `value: string` 选中值 | 选中值发生变化时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | ---- |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| reload | - | 刷新(重新加载),只针对配置了`source`的点选按钮有效 |
| setValue | `value: string` 更新的值 | 更新数据 |

View File

@ -997,18 +997,19 @@ leftOptions 动态加载,默认 source 接口是返回 options 部分,而 le
## 事件表
| 事件名称 | 事件参数 | 说明 |
| -------- | ---------------------------------- | -------------------- |
| change | `value: string \| Option[]` 选中值 | 选中值发生变化时触发 |
| blur | `value: string \| Option[]` 选中值 | 失去焦点时触发 |
| focus | `value: string \| Option[]` 选中值 | 获得焦点时触发 |
| -------- | ---------------------------------------------- | -------------------- |
| change | `value: string` 选中值 | 选中值发生变化时触发 |
| blur | `value: string` 选中值 | 失去焦点时触发 |
| focus | `value: string` 选中值 | 获得焦点时触发 |
| add | - | 新增选项的时候触发 |
| edit | `value: Option` 修改的选项 | 编辑选项时触发 |
| delete | `value: Option` 删除的选项 | 删除选项时触发 |
| edit | `options: Option[]`,`value: Option` 修改的选项 | 编辑选项时触发 |
| delete | `options: Option[]`,`value: Option` 删除的选项 | 删除选项时触发 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | ---------------------------- | ---- |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | `resetValue: boolean` 重置值 | 重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| reload | - | 刷新(重新加载),只针对配置了`source`的点选按钮有效 |
| setValue | `value: string` 更新的值 | 更新数据,开启`multiple`,多值用`,`分隔 |

View File

@ -124,9 +124,11 @@ IconSchema 配置
## 事件表
| 事件名称 | 事件参数 | 说明 |
| ------ | --------------------------------- | ---------------- |
| -------- | --------------------------------- | -------------------- |
| change | `value: string \| boolean` 值变化 | 开关值发生变化时触发 |
## 动作表
暂无
| 动作名称 | 动作配置 | 说明 |
| -------- | ------------------------------------- | -------- |
| setValue | `value: string \| boolean` 更新的数据 | 更新数据 |

View File

@ -161,6 +161,7 @@ icon:
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | ------ |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的值 | 更新数据,多值用`,`分隔 |

View File

@ -377,7 +377,8 @@ icon:
## 动作表
| 动作名称 | 动作配置 | 说明 |
| --------- | -------- | ------ |
| --------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| selectAll | - | 全选 |
| setValue | `value: string` 更新的值 | 更新数据,多值用`,`分隔 |

View File

@ -113,6 +113,8 @@ order: 57
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | -------- |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| focus | - | 获取焦点 |
| setValue | `value: string` 更新的值 | 更新数据 |

View File

@ -131,6 +131,7 @@ icon:
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------- | ------ |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的值 | 更新数据,多值用`,`分隔 |

View File

@ -637,13 +637,14 @@ leftOptions 动态加载,默认 source 接口是返回 options 部分,而 le
## 事件表
| 事件名称 | 事件参数 | 说明 |
|-------------------|------------------------------------------------|----------------------|
| -------- | ---------------------- | ------ |
| change | `value: string` 时间值 | 值变化 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
|-------------------|-------------------------|------------------------|
| --------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 值重置 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| selectAll | - | 全选 |
| setValue | `value: string` 更新的值 | 更新数据,多值用`,`分隔 |

View File

@ -312,19 +312,19 @@ order: 60
## 事件表
| 事件名称 | 事件参数 | 说明 |
|--------------- |------------------------ |----------------------|
| change | value: `string` 更新后的数据 | 选中值更改 |
| add | value: `string` 新增节点信息 | 新增选项 |
| edit | value: `string` 编辑节点信息 | 编辑选项 |
| delete | value: `string` 删除节点信息 | 删除选项 |
| ------------ | ------------------------------------------------ | -------------- |
| change | `value: string` 更新后的数据 | 选中值更改 |
| add | `options: Option[]`,`value: Option` 新增节点信息 | 新增选项 |
| edit | `options: Option[]`,`value: Option` 编辑节点信息 | 编辑选项 |
| delete | `options: Option[]`,`value: Option` 删除节点信息 | 删除选项 |
| loadFinished | value: `json` 懒加载返回的数据 | 懒加载完成触发 |
| blur | - | 输入框失去焦点|
| blur | - | 输入框失去焦点 |
| focus | - | 输入框获取焦点 |
## 动作表
| 动作名称 | 动作配置 | 说明 |
|----------------|------------------------ |---------------------|
| clear | - | 清除数据 |
| reset | - | 重置数据 |
| -------- | ------------------------ | ------------------------------------------------------ |
| clear | - | 清空 |
| reset | - | 将值重置为`resetValue`,若没有配置`resetValue`,则清空 |
| setValue | `value: string` 更新的值 | 更新数据,开启`multiple`,多值用`,`分隔 |

View File

@ -281,9 +281,14 @@ Page 默认将页面分为几个区域,分别是**内容区(`body`**、**
| pullRefresh | `object` | `{disabled: true}` | 下拉刷新配置(仅用于移动端) |
## 事件表
| 事件名称 | 事件参数 | 说明 |
| ----------- | ------ | ------------------------------------- |
| ----------- | -------- | -------------------------------------------- |
| pullRefresh | | 配置下拉刷新后下拉释放后触发(仅用于移动端) |
## 动作表
| 动作名称 | 动作配置 | 说明 |
| -------- | -------------------------- | ---------------- |
| reload | - | 刷新(重新加载) |
| setValue | `value: object` 更新的数据 | 更新数据 |

View File

@ -110,9 +110,11 @@ order: 73
## 动作表
| 动作名称 | 动作配置 | 说明 |
| ----------- | ----------------------- | -------- |
| ----------- | -------------------------- | ---------------- |
| submit | - | 全部提交 |
| step-submit | - | 分步提交 |
| next | - | 下一步 |
| prev | - | 上一步 |
| goto-step | `step: number` 目标步骤 | 定位步骤 |
| reload | - | 刷新(重新加载) |
| setValue | `value: object` 更新的数据 | 更新数据 |

View File

@ -91,7 +91,7 @@ order: 9
## 触发通用动作
通用动作包含发送 http 请求、跳转链接、打开/关闭弹窗、打开/关闭抽屉、打开对话框、弹出 Toast 提示、刷新、控制显示隐藏、控制启用禁用状态。
通用动作包含发送 http 请求、跳转链接、浏览器回退、浏览器刷新、打开/关闭弹窗、打开/关闭抽屉、打开对话框、弹出 Toast 提示、复制、发送邮件、刷新、控制显示隐藏、控制启用禁用状态、更新数据
### 发送 http 请求
@ -594,6 +594,7 @@ order: 9
| actionType | `string` | `url` | 页面跳转 |
| url / args.url`(>=v1.9.0)` | `string` | - | 按钮点击后,会打开指定页面。可用 `${xxx}` 取值。 |
| blank / args.blank`(>=v1.9.0)` | `boolean` | `false` | 如果为 `true` 将在新 tab 页面打开。 |
| args.params`(>=v1.9.0)` | `object` | - | 页面参数`{key:value}`,支持数据映射。 |
**打开单页链接**
@ -626,6 +627,7 @@ order: 9
| ---------- | -------- | ------ | ------------------------------------------------------------------------------------------------------------------- |
| actionType | `string` | `link` | 单页跳转 |
| link / args.link`(>=v1.9.0)` | `string` | `link` | 用来指定跳转地址,跟 url 不同的是,这是单页跳转方式,不会渲染浏览器,请指定 amis 平台内的页面。可用 `${xxx}` 取值。 |
| args.params`(>=v1.9.0)` | `object` | - | 页面参数`{key:value}`,支持数据映射。 |
### 浏览器回退
@ -1077,7 +1079,9 @@ order: 9
### 刷新
通过配置`actionType: 'reload'`实现对指定组件的刷新操作,限于`form`、`dialog`、`drawer`、`wizard`、`service`、`page`、`app`、`chart`、`crud`,以及选择类组件。
通过配置`actionType: 'reload'`实现对指定组件的刷新(重新加载)操作,仅支持`form`、`dialog`、`drawer`、`wizard`、`service`、`page`、`app`、`chart`、`crud`,以及支持动态数据的`输入类`组件,详见组件动作表。
#### 刷新 表单
```schema
{
@ -1085,8 +1089,8 @@ order: 9
body: [
{
type: 'button',
label: '刷新(表单)',
className: 'mr-2',
label: '刷新',
className: 'mb-2',
level: 'primary',
onEvent: {
click: {
@ -1099,9 +1103,89 @@ order: 9
}
}
},
{
type: 'form',
id: 'form-reload',
name: 'form-reload',
initApi:
'https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/page/initData',
title: '表单',
body: [
{
type: 'input-text',
id: 'date-input-01',
name: 'date',
label: '时间戳'
}
]
}
]
}
```
#### 刷新 图表
```schema
{
type: 'page',
body: [
{
type: 'button',
label: '刷新(下拉框)',
label: '刷新',
level: 'primary',
className: 'mb-2',
onEvent: {
click: {
actions: [
{
actionType: 'reload',
componentId: 'chart_reload'
}
]
}
}
},
{
"type": "chart",
id: 'chart_reload',
"api": "https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/chart/chartData",
"config": {
"xAxis": {
"type": "category",
"data": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat"
]
},
"yAxis": {
"type": "value"
},
"series": [
{
"data": "${line}",
"type": "line"
}
]
}
}
]
}
```
#### 刷新 下拉框
```schema
{
type: 'page',
body: [
{
type: 'button',
label: '刷新',
className: 'mb-2',
level: 'primary',
onEvent: {
click: {
@ -1123,22 +1207,40 @@ order: 9
name: 'select',
source:
'https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/form/getOptions?waitSeconds=1'
},
{
type: 'form',
id: 'form-reload',
name: 'form-reload',
initApi:
'https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/page/initData',
title: '表单',
body: [
{
type: 'input-text',
id: 'date-input-01',
name: 'date',
label: '时间戳'
}
]
}
```
**刷新 输入框**
```schema
{
type: 'page',
body: [
{
type: 'button',
label: '刷新',
className: 'mb-2',
level: 'primary',
onEvent: {
click: {
actions: [
{
actionType: 'reload',
componentId: 'input-text-reload'
}
]
}
}
},
{
"name": "input-text-reload",
"id": "input-text-reload",
"type": "input-text",
"label": "text",
"creatable": false,
"source": "https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/form/getOptions?waitSeconds=1"
}
]
}
@ -1211,7 +1313,7 @@ order: 9
### 控制状态
通过配置`actionType: 'enabled'`或`actionType: 'disabled'`实现对指定组件的启用和禁用,限于数据输入类组件。
通过配置`actionType: 'enabled'`或`actionType: 'disabled'`实现对指定组件的启用和禁用,仅支持数据输入类组件。
```schema
{
@ -1312,7 +1414,7 @@ order: 9
### 更新数据
通过配置`actionType: 'setValue'`实现组件数据变量的更新,限于`form`、`dialog`、`drawer`、`wizard`、`service`、`page`、`app`、`chart`,以及数据输入类组件。
更新数据即变量赋值,通过配置`actionType: 'setValue'`实现组件数据域变量的更新,支持`基础类型`、`对象类型`、`数组类型`,数据类型取决于目标组件所需数据值类型,仅支持`form`、`dialog`、`drawer`、`wizard`、`service`、`page`、`app`、`chart`,以及数据`输入类`组件。
#### 更新 表单 数据
@ -1543,9 +1645,74 @@ order: 9
}
```
#### 更新 图表 数据
直接更新图表的数据等于更新图表所依赖数据域中的变量,例如下面的例子,`setValue`等于更新绑定的变量`${line}`。
```schema
{
type: 'page',
data: {
lineData: {
line: [65, 63, 10, 73, 42, 21]
}
},
body: [
{
type: 'button',
label: '更新',
level: 'primary',
className: 'mb-2',
onEvent: {
click: {
actions: [
{
actionType: 'setValue',
componentId: 'chart_setvalue',
args: {
value: '${lineData}'
}
}
]
}
}
},
{
"type": "chart",
id: 'chart_setvalue',
"api": "https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/chart/chartData",
"config": {
"xAxis": {
"type": "category",
"data": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat"
]
},
"yAxis": {
"type": "value"
},
"series": [
{
"data": "${line}",
"type": "line"
}
]
}
}
]
}
```
#### 更新 输入类组件 数据
直接更新指定输入框、下拉框等输入类组件的数据。
直接更新指定输入框、下拉框、输入组合等输入类组件的数据。
**更新 输入框 字段值**
```schema
{
@ -1561,7 +1728,7 @@ order: 9
body: [
{
type: 'button',
label: '更新',
label: '更新输入框',
level: 'primary',
className: 'mr-2 mb-2',
onEvent: {
@ -1607,7 +1774,6 @@ order: 9
{
type: 'form',
title: '表单',
debug: true,
data: {
myrole: '杀手',
age: '18'
@ -1635,6 +1801,283 @@ order: 9
}
```
**更新 下拉框 选中值**
```schema
{
type: 'page',
id: 'mypage',
data: {
singleData: 'a',
multipleData: 'caocao,libai'
},
body: [
{
type: 'button',
label: '更新单选数据',
level: 'primary',
className: 'mr-2 mb-2',
onEvent: {
click: {
actions: [
{
actionType: 'setValue',
componentId: 'single-select',
args: {
value: '${singleData}'
}
}
]
}
}
},
{
type: 'button',
label: '更新多选数据',
level: 'primary',
className: 'mb-2',
onEvent: {
click: {
actions: [
{
actionType: 'setValue',
componentId: 'multiple-select',
args: {
value: '${multipleData}'
}
}
]
}
}
},
{
"label": "选项",
"type": "select",
"name": "single-select",
id: 'single-select',
"options": [
{
"label": "A",
"value": "a"
},
{
"label": "B",
"value": "b"
},
{
"label": "C",
"value": "c"
}
]
},
{
"label": "分组",
"type": "select",
"name": "multiple-select",
id: 'multiple-select',
"multiple": true,
"selectMode": "group",
"options": [
{
"label": "法师",
"children": [
{
"label": "诸葛亮",
"value": "zhugeliang"
}
]
},
{
"label": "战士",
"children": [
{
"label": "曹操",
"value": "caocao"
},
{
"label": "钟无艳",
"value": "zhongwuyan"
}
]
},
{
"label": "打野",
"children": [
{
"label": "李白",
"value": "libai"
},
{
"label": "韩信",
"value": "hanxin"
},
{
"label": "云中君",
"value": "yunzhongjun"
}
]
}
]
}
]
}
```
**更新 点选按钮 选中值**
```schema
{
type: 'page',
id: 'mypage',
data: {
btnData: 'c'
},
body: [
{
type: 'button',
label: '更新',
level: 'primary',
className: 'mr-2 mb-2',
onEvent: {
click: {
actions: [
{
actionType: 'setValue',
componentId: 'button-group-select_setvalue',
args: {
value: '${btnData}'
}
}
]
}
}
},
{
"type": "button-group-select",
id: 'button-group-select_setvalue',
"label": "选项",
"name": "type",
"options": [
{
"label": "Option A",
"value": "a"
},
{
"label": "Option B",
"value": "b"
},
{
"label": "Option C",
"value": "c"
}
]
}
]
}
```
**更新 输入组合(Combo) 字段值**
```schema
{
type: 'page',
id: 'mypage',
data: {
objData: {
name: '路飞',
role: '海贼王'
},
arrayData: [
{
name: '苹果',
count: 10
},
{
name: '黄瓜',
count: 5
}
]
},
body: [
{
type: 'button',
label: '更新对象类型数据',
level: 'primary',
className: 'mr-2 mb-2',
onEvent: {
click: {
actions: [
{
actionType: 'setValue',
componentId: 'userinfo',
args: {
value: '${objData}'
}
}
]
}
}
},
{
type: 'button',
label: '更新数组类型数据',
level: 'primary',
className: 'mb-2',
onEvent: {
click: {
actions: [
{
actionType: 'setValue',
componentId: 'shoppingcart',
args: {
value: '${arrayData}'
}
}
]
}
}
},
{
"type": "combo",
"name": "userinfo",
"id": "userinfo",
"label": "用户信息",
"items": [
{
"name": "name",
"label": "姓名",
"type": "input-text"
},
{
"name": "role",
"label": "角色",
"type": "input-text"
}
]
},
{
"type": "combo",
"name": "shoppingcart",
"id": "shoppingcart",
"label": "购物车",
"multiple": true,
"items": [
{
"name": "name",
"label": "商品名称",
"type": "input-text"
},
{
"name": "count",
"label": "购买数量",
"type": "input-text"
}
]
}
]
}
```
#### 联动更新
当某组件的值发生变化时,联动去更新另一个组件的数据,可以通过`${事件参数}`来获取事件产生的数据,例如输入框`change`事件的参数是`value: string | string[]`d则可以通过`${event.data.value}`来获取输入的值。
@ -1687,7 +2130,6 @@ order: 9
type: 'form',
id: 'form_data_2',
title: '表单',
debug: true,
"initApi": "/api/mock2/form/initData",
body: [
{
@ -1768,7 +2210,6 @@ order: 9
type: 'form',
id: 'form_data_3',
title: '表单',
debug: true,
body: [
{
type: 'input-text',

View File

@ -497,6 +497,9 @@ export class ChartRenderer extends Chart {
}
setData(values: object) {
return this.props.store.updateData(values);
const {store} = this.props;
store.updateData(values);
// 重新渲染
this.renderChart(this.props.config, values);
}
}

View File

@ -52,7 +52,9 @@ export default class ButtonGroupControl extends React.Component<
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
if (actionType === 'clear') {
onChange('');
} else if (actionType === 'reset') {
onChange(resetValue ?? '');
}
}

View File

@ -86,7 +86,9 @@ export default class ChainedSelectControl extends React.Component<
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
if (actionType === 'clear') {
onChange('');
} else if (actionType === 'reset') {
onChange(resetValue ?? '');
}
}
@ -95,12 +97,14 @@ export default class ChainedSelectControl extends React.Component<
const {delimiter, joinValues, extractValue} = this.props;
// 判断arr的项是否已抽取
return isExtracted
? (joinValues ? arr.join(delimiter || ',') : arr)
: (joinValues
? joinValues
? arr.join(delimiter || ',')
: arr
: joinValues
? arr.join(delimiter || ',')
: extractValue
? arr.map(item => item.value || item)
: arr)
: arr;
}
loadMore() {
@ -158,7 +162,7 @@ export default class ChainedSelectControl extends React.Component<
parentId,
parent: arr[idx]
})
.then(async (ret) => {
.then(async ret => {
// todo 没有检测 response.ok
const stack = this.state.stack.concat();
@ -209,7 +213,15 @@ export default class ChainedSelectControl extends React.Component<
}
async handleChange(index: number, currentValue: any) {
const {value, delimiter, onChange, joinValues, extractValue, dispatchEvent, data} = this.props;
const {
value,
delimiter,
onChange,
joinValues,
extractValue,
dispatchEvent,
data
} = this.props;
const arr = Array.isArray(value)
? value.concat()

View File

@ -60,7 +60,9 @@ export default class CheckboxControl extends React.Component<
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
if (actionType === 'clear') {
onChange('');
} else if (actionType === 'reset') {
onChange(resetValue ?? '');
}
}

View File

@ -76,7 +76,10 @@ export default class CheckboxesControl extends React.Component<
doAction(action: Action, data: object, throwErrors: boolean) {
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
if (actionType === 'clear') {
onChange('');
} else if (actionType === 'reset') {
onChange(resetValue ?? '');
}
}

View File

@ -33,6 +33,7 @@ import {
SchemaObject,
SchemaTpl
} from '../../Schema';
import {ListenerAction} from '../../actions/Action';
export type ComboCondition = {
test: string;
@ -433,6 +434,17 @@ export default class ComboControl extends React.Component<ComboProps> {
this.makeFormRef.cache.clear?.();
}
doAction(action: ListenerAction, args: any) {
const actionType = action?.actionType as string;
const {onChange, resetValue} = this.props;
if (actionType === 'clear') {
onChange('');
} else if (actionType === 'reset') {
onChange(resetValue ?? '');
}
}
getValueAsArray(props = this.props) {
const {flat, joinValues, delimiter, type} = props;
let value = props.value;

View File

@ -114,8 +114,13 @@ export class DiffEditor extends React.Component<DiffEditorProps, any> {
doAction(action: ListenerAction, args: any) {
const actionType = action?.actionType as string;
const {onChange, resetValue} = this.props;
if (actionType === 'focus') {
if (actionType === 'clear') {
onChange('');
} else if (actionType === 'reset') {
onChange(resetValue ?? '');
} else if (actionType === 'focus') {
this.focus();
}
}

View File

@ -161,8 +161,13 @@ export default class EditorControl extends React.Component<EditorProps, any> {
doAction(action: ListenerAction, args: any) {
const actionType = action?.actionType as string;
const {onChange, resetValue} = this.props;
if (actionType === 'focus') {
if (actionType === 'clear') {
onChange('');
} else if (actionType === 'reset') {
onChange(resetValue ?? '');
} else if (actionType === 'focus') {
this.focus();
}
}

View File

@ -466,7 +466,9 @@ export class LocationControl extends React.Component<LocationControlProps> {
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
if (actionType === 'clear') {
onChange('');
} else if (actionType === 'reset') {
onChange(resetValue ?? '');
}
}

View File

@ -166,9 +166,13 @@ export default class ExcelControl extends React.PureComponent<
}
doAction(action: any, data: object, throwErrors: boolean) {
const {onChange} = this.props;
if (action.actionType === 'clear') {
const actionType = action?.actionType as string;
const {onChange, resetValue} = this.props;
if (actionType === 'clear') {
onChange('');
} else if (actionType === 'reset') {
onChange(resetValue ?? '');
}
}

View File

@ -144,8 +144,12 @@ export default class NumberControl extends React.Component<
doAction(action: Action, args: any) {
const actionType = action?.actionType as string;
const {resetValue, onChange} = this.props;
if (!!~['clear', 'reset'].indexOf(actionType)) {
this.handleChange(resetValue ?? '');
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
const value = this.getValue(resetValue ?? '');
onChange?.(value);
}
}
@ -176,22 +180,8 @@ export default class NumberControl extends React.Component<
return undefined;
}
// 派发有event的事件
@autobind
dispatchEvent(e: React.SyntheticEvent<HTMLElement>) {
const {dispatchEvent, data} = this.props;
dispatchEvent(e, data);
}
async handleChange(inputValue: any) {
const {
classPrefix: ns,
onChange,
resetValue,
unitOptions,
data,
dispatchEvent
} = this.props;
getValue(inputValue: any) {
const {resetValue, unitOptions} = this.props;
if (inputValue && typeof inputValue !== 'number') {
return;
@ -200,7 +190,20 @@ export default class NumberControl extends React.Component<
if (inputValue !== null && unitOptions && this.state.unit) {
inputValue = inputValue + this.state.unit;
}
const value = inputValue === null ? resetValue ?? null : inputValue;
return inputValue === null ? resetValue ?? null : inputValue;
}
// 派发有event的事件
@autobind
dispatchEvent(e: React.SyntheticEvent<HTMLElement>) {
const {dispatchEvent, data} = this.props;
dispatchEvent(e, data);
}
async handleChange(inputValue: any) {
const {onChange, data, dispatchEvent} = this.props;
const value = this.getValue(inputValue);
const rendererEvent = await dispatchEvent(
'change',
createObject(data, {

View File

@ -104,7 +104,8 @@ export interface RangeControlSchema extends FormBaseControl {
}
type MarksType = {
[index: number | string]: MarksValue;
[index: string]: MarksValue;
[index: number]: MarksValue;
};
type MarksValue = Record<
@ -488,19 +489,28 @@ export default class RangeControl extends React.PureComponent<
}
doAction(action: Action, data: object, throwErrors: boolean) {
if (action.actionType === 'clear') {
this.clearValue();
const actionType = action?.actionType as string;
const {multiple, min, max} = this.props;
if (!!~['clear', 'reset'].indexOf(actionType)) {
this.clearValue(actionType);
}
}
@autobind
clearValue() {
const {multiple, min, max} = this.props;
if (multiple) {
this.updateValue({min, max});
} else {
this.updateValue(min);
clearValue(type: string = 'clear') {
const {multiple, min, max, onChange} = this.props;
let resetValue = this.props.resetValue;
if (type === 'clear') {
resetValue = undefined;
}
const value = this.getFormatValue(
resetValue ?? (multiple ? {min, max} : min)
);
onChange?.(value);
}
@autobind
@ -535,7 +545,7 @@ export default class RangeControl extends React.PureComponent<
return;
}
onChange && onChange(result);
onChange?.(result);
}
/**
@ -595,7 +605,7 @@ export default class RangeControl extends React.PureComponent<
// 处理自定义json配置
let renderMarks:
| MarksType
| {[index: number | string]: ReactNode}
| {[index: string]: ReactNode; [index: number]: ReactNode}
| undefined = marks ? {...marks} : marks;
marks &&
forEach(marks, (item, key) => {

View File

@ -87,9 +87,13 @@ export default class RatingControl extends React.Component<RatingProps, any> {
};
doAction(action: Action, data: object, throwErrors: boolean) {
const {resetValue} = this.props;
if (action.actionType && ['clear', 'reset'].includes(action.actionType)) {
this.handleChange(resetValue ?? '');
const actionType = action?.actionType as string;
const {onChange, resetValue} = this.props;
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
onChange?.(resetValue ?? '');
}
}
@ -97,15 +101,18 @@ export default class RatingControl extends React.Component<RatingProps, any> {
async handleChange(value: any) {
const {onChange, dispatchEvent, data} = this.props;
const rendererEvent = await dispatchEvent('change', createObject(data, {
const rendererEvent = await dispatchEvent(
'change',
createObject(data, {
value
}));
})
);
if (rendererEvent?.prevented) {
return;
}
onChange && onChange(value);
onChange?.(value);
}
render() {

View File

@ -85,8 +85,10 @@ export default class TagControl extends React.PureComponent<
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
onChange(resetValue ?? '');
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
onChange?.(resetValue ?? '');
}
}
@ -106,13 +108,8 @@ export default class TagControl extends React.PureComponent<
@autobind
getValue(type: 'push' | 'pop' | 'normal' = 'normal', option: any = {}) {
const {
selectedOptions,
joinValues,
extractValue,
delimiter,
valueField
} = this.props;
const {selectedOptions, joinValues, extractValue, delimiter, valueField} =
this.props;
const newValue = selectedOptions.concat();
if (type === 'push') {
@ -122,9 +119,7 @@ export default class TagControl extends React.PureComponent<
}
const newValueRes = joinValues
? newValue
.map(item => item[valueField || 'value'])
.join(delimiter || ',')
? newValue.map(item => item[valueField || 'value']).join(delimiter || ',')
: extractValue
? newValue.map(item => item[valueField || 'value'])
: newValue;
@ -132,10 +127,7 @@ export default class TagControl extends React.PureComponent<
}
async addItem(option: Option) {
const {
selectedOptions,
onChange
} = this.props;
const {selectedOptions, onChange} = this.props;
const newValue = selectedOptions.concat();
if (find(newValue, item => item.value == option.value)) {
@ -255,11 +247,7 @@ export default class TagControl extends React.PureComponent<
@autobind
async handleKeyDown(evt: React.KeyboardEvent<HTMLInputElement>) {
const {
selectedOptions,
onChange,
delimiter
} = this.props;
const {selectedOptions, onChange, delimiter} = this.props;
const value = this.state.inputValue.trim();

View File

@ -117,14 +117,16 @@ export default class TreeControl extends React.Component<TreeProps> {
}
doAction(action: Action, data: any, throwErrors: boolean) {
const {resetValue, onChange, options} = this.props;
if (action.actionType && ['clear', 'reset'].includes(action.actionType)) {
onChange && onChange(resetValue ?? '');
}
if (action.actionType === 'expand') {
const actionType = action?.actionType as string;
const {resetValue, onChange} = this.props;
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
onChange?.(resetValue ?? '');
} else if (action.actionType === 'expand') {
this.treeRef.syncUnFolded(this.props, action.args.openLevel);
}
if (action.actionType === 'collapse') {
} else if (action.actionType === 'collapse') {
this.treeRef.syncUnFolded(this.props, 0);
}
}

View File

@ -61,8 +61,11 @@ export default class ListControl extends React.Component<ListProps, any> {
doAction(action: Action, data: object, throwErrors: boolean) {
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
onChange(resetValue ?? '');
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
onChange?.(resetValue ?? '');
}
}

View File

@ -151,8 +151,10 @@ export default class MatrixCheckbox extends React.Component<
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
onChange(resetValue ?? '');
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
onChange?.(resetValue ?? '');
}
}
@ -271,9 +273,10 @@ export default class MatrixCheckbox extends React.Component<
}
}
const rendererEvent = await dispatchEvent('change',
const rendererEvent = await dispatchEvent(
'change',
createObject(data, {
value: value.concat(),
value: value.concat()
})
);
if (rendererEvent?.prevented) {

View File

@ -129,8 +129,10 @@ export default class NestedSelectControl extends React.Component<
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
onChange(resetValue ?? '');
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
onChange?.(resetValue ?? '');
}
}

View File

@ -471,9 +471,11 @@ export function registerOptionsControl(config: OptionsConfig) {
doAction(action: Action, data: object, throwErrors: boolean) {
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
debugger;
if (!!~['clear', 'reset'].indexOf(actionType)) {
onChange(resetValue ?? '');
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
onChange?.(resetValue ?? '');
}
}

View File

@ -41,23 +41,34 @@ export default class RadiosControl extends React.Component<RadiosProps, any> {
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
onChange(resetValue ?? '');
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
onChange?.(resetValue ?? '');
}
}
@autobind
async handleChange(option: Option) {
const {joinValues, extractValue, valueField, onChange, dispatchEvent, options, data} = this.props;
const {
joinValues,
extractValue,
valueField,
onChange,
dispatchEvent,
options,
data
} = this.props;
if (option && (joinValues || extractValue)) {
option = option[valueField || 'value'];
}
const rendererEvent = await dispatchEvent('change',
const rendererEvent = await dispatchEvent(
'change',
createObject(data, {
value: option,
options,
options
})
);
if (rendererEvent?.prevented) {

View File

@ -151,38 +151,9 @@ export default class SelectControl extends React.Component<SelectProps, any> {
this.input && this.input.focus();
}
async dispatchEvent(eventName: SelectRendererEvent, eventData: any = {}) {
const event = 'on' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
const {dispatchEvent, options, data} = this.props;
// 触发渲染器事件
const rendererEvent = await dispatchEvent(
eventName,
createObject(data, {
options,
...eventData
})
);
if (rendererEvent?.prevented) {
return;
}
this.props[event](eventData);
}
async changeValue(value: Option | Array<Option> | string | void) {
const {
joinValues,
extractValue,
delimiter,
multiple,
type,
valueField,
onChange,
setOptions,
options,
data,
dispatchEvent
} = this.props;
getValue(value: Option | Array<Option> | string | void) {
const {joinValues, extractValue, delimiter, multiple, valueField, options} =
this.props;
let newValue: string | Option | Array<Option> | void = value;
let additonalOptions: Array<any> = [];
@ -221,6 +192,31 @@ export default class SelectControl extends React.Component<SelectProps, any> {
}
}
return newValue;
}
async dispatchEvent(eventName: SelectRendererEvent, eventData: any = {}) {
const event = 'on' + eventName.charAt(0).toUpperCase() + eventName.slice(1);
const {dispatchEvent, options, data} = this.props;
// 触发渲染器事件
const rendererEvent = await dispatchEvent(
eventName,
createObject(data, {
options,
...eventData
})
);
if (rendererEvent?.prevented) {
return;
}
this.props[event](eventData);
}
async changeValue(value: Option | Array<Option> | string | void) {
const {onChange, setOptions, options, data, dispatchEvent} = this.props;
let newValue: string | Option | Array<Option> | void = this.getValue(value);
let additonalOptions: Array<any> = [];
// 不设置没法回显
additonalOptions.length && setOptions(options.concat(additonalOptions));
@ -235,7 +231,7 @@ export default class SelectControl extends React.Component<SelectProps, any> {
return;
}
onChange(newValue);
onChange?.(newValue);
}
async loadRemote(input: string) {
@ -336,11 +332,14 @@ export default class SelectControl extends React.Component<SelectProps, any> {
}
doAction(action: Action, data: object, throwErrors: boolean): any {
const {resetValue} = this.props;
const {resetValue, onChange} = this.props;
const actionType = action?.actionType as string;
if (!!~['clear', 'reset'].indexOf(actionType)) {
this.changeValue(resetValue ?? '');
if (actionType === 'clear') {
onChange?.('');
} else if (actionType === 'reset') {
const value = this.getValue(resetValue ?? '');
onChange?.(value);
}
}

View File

@ -254,10 +254,10 @@ export class TabsTransferRenderer extends BaseTabsTransferRenderer<TabsTransferP
const activeKey = args?.activeKey as number;
switch (action.actionType) {
case 'clear':
onChange('');
onChange?.('');
break;
case 'reset':
onChange(resetValue);
onChange?.(resetValue ?? '');
break;
case 'changeTabKey':
this.setState({

View File

@ -30,17 +30,16 @@ export interface TabsTransferProps
> {}
interface BaseTransferState {
activeKey: number
activeKey: number;
}
@OptionsControl({
type: 'tabs-transfer-picker'
})
export class TabsTransferPickerRenderer extends BaseTabsTransferRenderer<TabsTransferProps> {
state: BaseTransferState = {
activeKey: 0
}
};
@autobind
optionItemRender(option: any, states: ItemRenderStates) {
@ -62,16 +61,15 @@ export class TabsTransferPickerRenderer extends BaseTabsTransferRenderer<TabsTra
return BaseSelection.itemRender(option, states);
}
// 动作
doAction(action: Action) {
const {resetValue, onChange} = this.props;
switch (action.actionType) {
case 'clear':
onChange('');
onChange?.('');
break;
case 'reset':
onChange(resetValue);
onChange?.(resetValue ?? '');
break;
}
}

View File

@ -339,10 +339,10 @@ export class BaseTransferRenderer<
const {resetValue, onChange} = this.props;
switch (action.actionType) {
case 'clear':
onChange('');
onChange?.('');
break;
case 'reset':
onChange(resetValue);
onChange?.(resetValue ?? '');
break;
case 'selectAll':
this.tranferRef?.selectAll();

View File

@ -45,7 +45,6 @@ export interface TabsTransferProps
type: 'transfer-picker'
})
export class TransferPickerRenderer extends BaseTransferRenderer<TabsTransferProps> {
@autobind
dispatchEvent(name: string) {
const {dispatchEvent, data} = this.props;
@ -57,10 +56,10 @@ export class TransferPickerRenderer extends BaseTransferRenderer<TabsTransferPro
const {resetValue, onChange} = this.props;
switch (action.actionType) {
case 'clear':
onChange('');
onChange?.('');
break;
case 'reset':
onChange(resetValue);
onChange?.(resetValue ?? '');
break;
}
}