@hzab/form-render 1.7.15 → 1.7.16-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # @hzab/form-render@1.7.16
2
+
3
+ fix: 增加带描述和支持单个option禁用的radio和checkbox组件
4
+
1
5
  # @hzab/form-render@1.7.15
2
6
 
3
7
  fix: utils ossUpload 引用更新
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hzab/form-render",
3
- "version": "1.7.15",
3
+ "version": "1.7.16-alpha.0",
4
4
  "description": "",
5
5
  "main": "src",
6
6
  "scripts": {
@@ -0,0 +1,14 @@
1
+ .checkbox-desc {
2
+ .check-item {
3
+ .label-text {
4
+ font-size: 14px;
5
+ }
6
+
7
+ .desc-text {
8
+ font-size: 12px;
9
+ color: #8c8c8c;
10
+ margin-top: 4px;
11
+ line-height: 1.5;
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,39 @@
1
+ import React from "react";
2
+ import { Checkbox } from "antd";
3
+ import { useField } from "@formily/react";
4
+ import "./index.less";
5
+
6
+ export interface CheckboxDescItem {
7
+ value: string | number;
8
+ label: string;
9
+ desc: string;
10
+ disabled?: boolean;
11
+ }
12
+
13
+ interface CheckboxWithDescProps {
14
+ value?: (string | number)[];
15
+ onChange?: (val: any[]) => void;
16
+ dataSource: CheckboxDescItem[];
17
+ }
18
+
19
+ const CheckboxWithTip: React.FC<CheckboxWithDescProps> = (props) => {
20
+ const field: any = useField();
21
+ const { value, onChange, dataSource = field?.dataSource || [], ...rest } = props;
22
+ return (
23
+ <Checkbox.Group
24
+ value={value}
25
+ onChange={(checkedList) => onChange?.(checkedList)}
26
+ className="checkbox-desc"
27
+ {...rest}
28
+ >
29
+ {dataSource.map((item, index) => (
30
+ <Checkbox className="check-item" key={index} value={item?.value} disabled={item?.disabled}>
31
+ <div className="label-text">{item?.label}</div>
32
+ <div className="desc-text">{item?.desc}</div>
33
+ </Checkbox>
34
+ ))}
35
+ </Checkbox.Group>
36
+ );
37
+ };
38
+
39
+ export { CheckboxWithTip };
@@ -0,0 +1,13 @@
1
+ .radio-group-tip {
2
+ .radio-item {
3
+ .radio-title {
4
+ font-size: 14px;
5
+ }
6
+ .radio-desc {
7
+ font-size: 12px;
8
+ color: #8c8c8c;
9
+ margin-top: 4px;
10
+ line-height: 1.5;
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,38 @@
1
+ import { Radio } from "antd";
2
+ import { useField } from "@formily/react";
3
+ import "./index.less";
4
+
5
+ export interface RadioTipItem {
6
+ value: string | number;
7
+ label: string;
8
+ desc: string;
9
+ disabled?: boolean;
10
+ }
11
+
12
+ export interface RadioGroupWithTipProps {
13
+ value?: string | number;
14
+ onChange?: (val: string | number) => void;
15
+ dataSource?: RadioTipItem[];
16
+ }
17
+
18
+ const RadioGroupWithTip = (props: RadioGroupWithTipProps) => {
19
+ const field: any = useField();
20
+ const { value, onChange, dataSource = field?.dataSource || [], ...rest } = props;
21
+
22
+ const handleChange = (val: string | number) => {
23
+ onChange?.(val);
24
+ };
25
+
26
+ return (
27
+ <Radio.Group className="radio-group-tip" value={value} onChange={(e) => handleChange(e.target.value)} {...rest}>
28
+ {dataSource.map((item, index) => (
29
+ <Radio value={item?.value} className="radio-item" disabled={item?.disabled} key={index}>
30
+ <div className="radio-title">{item?.label}</div>
31
+ <div className="radio-desc">{item?.desc}</div>
32
+ </Radio>
33
+ ))}
34
+ </Radio.Group>
35
+ );
36
+ };
37
+
38
+ export { RadioGroupWithTip };
@@ -13,5 +13,7 @@ export * from "./DatePicker";
13
13
  export * from "./LocationPicker";
14
14
  export * from "./LocationListPicker";
15
15
  export * from "./RichEditor";
16
+ export * from "./RadioGroupWithTip"
17
+ export * from "./CheckboxWithTip"
16
18
 
17
19
  export { Text };