@cloudbase/weda-ui 0.2.11 → 0.2.12
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 +240 -0
- package/package.json +61 -40
- package/src/.DS_Store +0 -0
- package/src/configs/.DS_Store +0 -0
- package/src/configs/components/button.json +7 -3
- package/src/configs/components/form/richText.json +1 -1
- package/src/configs/components/form/uploader.json +29 -1
- package/src/configs/components/form/uploaderFile.json +158 -0
- package/src/configs/components/image.json +12 -3
- package/src/configs/components/link.json +3 -3
- package/src/configs/components/richtextview.json +2 -2
- package/src/configs/components/scrollVeiw.json +5 -5
- package/src/configs/components/swiper.json +6 -6
- package/src/configs/components/tabs.json +3 -3
- package/src/configs/components/text.json +39 -4
- package/src/configs/index.js +5 -3
- package/src/mp/.gitignore +10 -0
- package/src/mp/components/button/index.js +1 -0
- package/src/mp/components/button/index.wxss +8 -0
- package/src/mp/components/form/select/index.js +18 -0
- package/src/mp/components/form/uploader/index.js +26 -29
- package/src/mp/components/form/uploaderFile/index.js +247 -0
- package/src/mp/components/form/uploaderFile/index.json +9 -0
- package/src/mp/components/form/uploaderFile/index.wxml +46 -0
- package/src/mp/components/form/uploaderFile/index.wxss +104 -0
- package/src/mp/components/text/index.js +33 -0
- package/src/mp/components/text/index.wxml +1 -1
- package/src/mp/components/text/index.wxss +18 -0
- package/src/mp/index.json +1 -0
- package/src/mp/utils/platform.js +20 -0
- package/src/mp/utils/tcb.js +11 -0
- package/src/web/.DS_Store +0 -0
- package/src/web/actions/showModal/{index.jsx → index.tsx} +53 -3
- package/src/web/components/auth/index.js +2 -2
- package/src/web/components/button/index.css +9 -0
- package/src/web/components/button/{index.jsx → index.tsx} +27 -41
- package/src/web/components/container/{index.jsx → index.tsx} +6 -10
- package/src/web/components/drawer/index.tsx +57 -0
- package/src/web/components/form/checkbox/{index.jsx → index.tsx} +24 -48
- package/src/web/components/form/enumSelect/{NormalSelect.jsx → NormalSelect.tsx} +2 -9
- package/src/web/components/form/form/index.tsx +48 -0
- package/src/web/components/form/formcell/{index.jsx → index.tsx} +6 -13
- package/src/web/components/form/input/index.css +4 -0
- package/src/web/components/form/input/{index.jsx → index.tsx} +33 -67
- package/src/web/components/form/radio/{index.jsx → index.tsx} +19 -42
- package/src/web/components/form/{renderDecorator.jsx → renderDecorator.tsx} +1 -3
- package/src/web/components/form/select/{h5.jsx → h5.tsx} +18 -62
- package/src/web/components/form/select/{index.jsx → index.tsx} +51 -94
- package/src/web/components/form/select/region/{cities.js → cities.ts} +1 -1
- package/src/web/components/form/select/region/{index.js → index.ts} +3 -3
- package/src/web/components/form/select/region/{provinces.js → provinces.ts} +1 -1
- package/src/web/components/form/select/region/{regions.js → regions.ts} +1 -1
- package/src/web/components/form/select/time.jsx +2 -2
- package/src/web/components/form/switch/{index.jsx → index.tsx} +30 -47
- package/src/web/components/form/textarea/{index.jsx → index.tsx} +22 -55
- package/src/web/components/form/tips/{index.jsx → index.tsx} +8 -22
- package/src/web/components/form/types.d.ts +12 -0
- package/src/web/components/form/uploader/{index.jsx → index.tsx} +16 -14
- package/src/web/components/form/uploader/{uploader.h5.jsx → uploader.h5.tsx} +67 -57
- package/src/web/components/form/uploader/{uploader.pc.jsx → uploader.pc.tsx} +26 -43
- package/src/web/components/form/uploaderFile/fail.svg +12 -0
- package/src/web/components/form/uploaderFile/index.css +423 -0
- package/src/web/components/form/uploaderFile/index.jsx +30 -0
- package/src/web/components/form/uploaderFile/pending.svg +18 -0
- package/src/web/components/form/uploaderFile/success.svg +12 -0
- package/src/web/components/form/uploaderFile/uploadFile.h5.jsx +562 -0
- package/src/web/components/form/uploaderFile/uploadFile.pc.jsx +487 -0
- package/src/web/components/image/{image.jsx → image.tsx} +8 -21
- package/src/web/components/image/{index.jsx → index.tsx} +22 -37
- package/src/web/components/index.js +35 -1
- package/src/web/components/link/{index.jsx → index.tsx} +19 -36
- package/src/web/components/modal/{index.jsx → index.tsx} +22 -9
- package/src/web/components/picker/{datePicker.jsx → datePicker.tsx} +11 -12
- package/src/web/components/picker/{picker.jsx → picker.tsx} +7 -10
- package/src/web/components/picker/{timePicker.jsx → timePicker.tsx} +8 -16
- package/src/web/components/richText/{const.js → const.ts} +0 -0
- package/src/web/components/richText/index.jsx +5 -2
- package/src/web/components/richTextView/index.tsx +67 -0
- package/src/web/components/scrollView/{index.jsx → index.tsx} +18 -33
- package/src/web/components/slot/{index.jsx → index.tsx} +8 -9
- package/src/web/components/swiper/index.css +1 -1
- package/src/web/components/swiper/{index.jsx → index.tsx} +66 -73
- package/src/web/components/tabs/index.tsx +33 -0
- package/src/web/components/tabs/{tabs.h5.jsx → tabs.h5.tsx} +4 -33
- package/src/web/components/tabs/{tabs.pc.jsx → tabs.pc.tsx} +5 -39
- package/src/web/components/text/index.css +18 -0
- package/src/web/components/text/index.tsx +69 -0
- package/src/web/components/uploaderFileView/index.css +11 -0
- package/src/web/components/uploaderFileView/index.jsx +75 -0
- package/src/web/components/uploaderView/{index.jsx → index.tsx} +12 -15
- package/src/web/types.d.ts +20 -0
- package/src/web/utils/constant.js +2 -0
- package/src/web/utils/loading-fallback.tsx +2 -0
- package/src/web/utils/platform.js +77 -6
- package/src/web/utils/useSetState.ts +14 -0
- package/src/web/utils/useSyncValue.ts +17 -0
- package/src/web/wedatheme/.git +1 -0
- package/src/web/wedatheme/.gitignore +5 -0
- package/src/web/wedatheme/.npmrc +1 -0
- package/src/web/wedatheme/package-lock.json +14335 -0
- package/src/configs/components/button.svg +0 -18
- package/src/web/components/drawer/index.jsx +0 -64
- package/src/web/components/form/form/index.jsx +0 -76
- package/src/web/components/link/test/__snapshots__/storybook.test.js.snap +0 -754
- package/src/web/components/richTextView/index.jsx +0 -89
- package/src/web/components/tabs/index.jsx +0 -10
- package/src/web/components/text/index.jsx +0 -71
- package/src/web/utils/useSyncValue.js +0 -14
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as _moment from 'moment';
|
|
2
3
|
import { usePlatform } from '../../../utils/platform';
|
|
3
4
|
import SelectH5, { decodeIsoDatetime } from './h5';
|
|
4
5
|
import classNames from '../../../utils/classnames';
|
|
5
|
-
import * as PropTypes from 'prop-types';
|
|
6
6
|
import {Select as TeaSelect, DatePicker, TimePicker, Cascader, ConfigProvider} from 'tea-component';
|
|
7
|
-
import moment from 'moment';
|
|
8
7
|
import isObjectEqual from '../../../utils/isObjectEqual';
|
|
9
8
|
import { getRegionTree } from './region';
|
|
10
9
|
import { renderDecorator } from '../renderDecorator';
|
|
10
|
+
import { CommonFormPropsType } from '../types';
|
|
11
11
|
|
|
12
|
+
// @ts-expect-error TODO: fix 与plugin构建阶段效果不同
|
|
13
|
+
const moment = (typeof _moment === 'function' ? _moment : _moment.default) as _moment.moment;
|
|
12
14
|
export default function Select(props) {
|
|
13
15
|
const {
|
|
14
16
|
id,
|
|
15
17
|
style,
|
|
16
18
|
className,
|
|
17
|
-
label,
|
|
18
|
-
labelVisible,
|
|
19
|
-
layout,
|
|
20
|
-
requiredFlag,
|
|
21
|
-
size,
|
|
19
|
+
label = '标题',
|
|
20
|
+
labelVisible = true,
|
|
21
|
+
layout = 'horizontal',
|
|
22
|
+
requiredFlag = false,
|
|
23
|
+
size = 'l',
|
|
22
24
|
decorator
|
|
23
25
|
} = props;
|
|
24
26
|
const platform = usePlatform();
|
|
@@ -47,101 +49,56 @@ export default function Select(props) {
|
|
|
47
49
|
}
|
|
48
50
|
);
|
|
49
51
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
events: PropTypes.objectOf(PropTypes.func),
|
|
55
|
-
// 组件属性
|
|
56
|
-
label: PropTypes.string,
|
|
57
|
-
labelVisible: PropTypes.bool,
|
|
58
|
-
name: PropTypes.string,
|
|
59
|
-
placeholder: PropTypes.string,
|
|
60
|
-
layout: PropTypes.string,
|
|
61
|
-
mode: PropTypes.string,
|
|
62
|
-
disabled: PropTypes.bool,
|
|
52
|
+
export interface PropsType extends CommonFormPropsType {
|
|
53
|
+
size: 's' | 'm' | 'l' | 'full';
|
|
54
|
+
placeholder: string;
|
|
55
|
+
mode: 'selector' | 'date' | 'time' | 'region';
|
|
63
56
|
// selector mode
|
|
64
|
-
range
|
|
65
|
-
defaultValue
|
|
57
|
+
range?: any[];
|
|
58
|
+
defaultValue?: string;
|
|
66
59
|
// date mode
|
|
67
|
-
startDate
|
|
68
|
-
endDate
|
|
69
|
-
defaultDate
|
|
60
|
+
startDate?: string;
|
|
61
|
+
endDate?: string;
|
|
62
|
+
defaultDate?: string;
|
|
70
63
|
// time mode
|
|
71
|
-
startTime
|
|
72
|
-
endTime
|
|
73
|
-
defaultTime
|
|
64
|
+
startTime?: string;
|
|
65
|
+
endTime?: string;
|
|
66
|
+
defaultTime?: string | number;
|
|
74
67
|
// region mode
|
|
75
|
-
defaultRegion
|
|
76
|
-
separator
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
|
|
68
|
+
defaultRegion?: any[];
|
|
69
|
+
separator?: string;
|
|
70
|
+
requiredFlag?: boolean;
|
|
71
|
+
}
|
|
80
72
|
|
|
81
|
-
|
|
73
|
+
export const defaultProps = {
|
|
82
74
|
// 系统属性
|
|
83
|
-
|
|
84
|
-
className: PropTypes.string,
|
|
85
|
-
style: PropTypes.string,
|
|
86
|
-
size: PropTypes.oneOf(['s', 'm', 'l', 'full']),
|
|
87
|
-
events: PropTypes.objectOf(PropTypes.func),
|
|
75
|
+
events: {},
|
|
88
76
|
// 组件属性
|
|
89
|
-
label:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
77
|
+
label: '标题',
|
|
78
|
+
size: 'l' as const,
|
|
79
|
+
labelVisible: true,
|
|
80
|
+
name: 'formSelect',
|
|
81
|
+
placeholder: '请选择',
|
|
82
|
+
layout: 'horizontal',
|
|
83
|
+
mode: 'selector',
|
|
84
|
+
disabled: false,
|
|
85
|
+
requiredFlag: false,
|
|
97
86
|
// selector mode
|
|
98
|
-
range:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
endDate: PropTypes.string,
|
|
103
|
-
defaultDate: PropTypes.string,
|
|
104
|
-
// time mode
|
|
105
|
-
startTime: PropTypes.string,
|
|
106
|
-
endTime: PropTypes.string,
|
|
107
|
-
defaultTime: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
87
|
+
range: [
|
|
88
|
+
{ name: '选项一', value: 'first' },
|
|
89
|
+
{ name: '选项二', value: 'second' },
|
|
90
|
+
],
|
|
108
91
|
// region mode
|
|
109
|
-
|
|
110
|
-
separator: PropTypes.string,
|
|
111
|
-
requiredFlag: PropTypes.bool,
|
|
92
|
+
separator: ',',
|
|
112
93
|
};
|
|
113
94
|
|
|
114
|
-
|
|
115
|
-
Select.defaultProps = {
|
|
116
|
-
// 系统属性
|
|
117
|
-
events: {},
|
|
118
|
-
// 组件属性
|
|
119
|
-
label: '标题',
|
|
120
|
-
size: 'l',
|
|
121
|
-
labelVisible: true,
|
|
122
|
-
name: 'formSelect',
|
|
123
|
-
placeholder: '请选择',
|
|
124
|
-
layout: 'horizontal',
|
|
125
|
-
mode: 'selector',
|
|
126
|
-
disabled: false,
|
|
127
|
-
requiredFlag: false,
|
|
128
|
-
// selector mode
|
|
129
|
-
range: [
|
|
130
|
-
{ name: '选项一', value: 'first' },
|
|
131
|
-
{ name: '选项二', value: 'second' },
|
|
132
|
-
],
|
|
133
|
-
// region mode
|
|
134
|
-
separator: ',',
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
|
|
138
95
|
function SelectPc({
|
|
139
96
|
defaultValue,
|
|
140
|
-
placeholder,
|
|
141
|
-
mode,
|
|
142
|
-
events,
|
|
143
|
-
disabled,
|
|
144
|
-
range,
|
|
97
|
+
placeholder = '请选择',
|
|
98
|
+
mode = 'selector',
|
|
99
|
+
events = {},
|
|
100
|
+
disabled = false,
|
|
101
|
+
range = defaultProps.range,
|
|
145
102
|
startDate,
|
|
146
103
|
endDate,
|
|
147
104
|
defaultDate,
|
|
@@ -149,12 +106,12 @@ function SelectPc({
|
|
|
149
106
|
startTime,
|
|
150
107
|
endTime,
|
|
151
108
|
defaultRegion,
|
|
152
|
-
separator,
|
|
153
|
-
size
|
|
154
|
-
}) {
|
|
109
|
+
separator = defaultProps.separator,
|
|
110
|
+
size = defaultProps.size,
|
|
111
|
+
}: PropsType) {
|
|
155
112
|
|
|
156
113
|
// 两次默认值不同, 需要刷新
|
|
157
|
-
const prevDefaultRef = React.useRef();
|
|
114
|
+
const prevDefaultRef = React.useRef<any>();
|
|
158
115
|
const [date, setDate] = React.useState(
|
|
159
116
|
decodeIsoDatetime(defaultDate, 'date')
|
|
160
117
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// 暂时把地区信息打包在本地, 后续移到COS桶内
|
|
2
|
-
import {provinces} from './provinces
|
|
3
|
-
import {cities} from './cities
|
|
4
|
-
import {regions} from './regions
|
|
2
|
+
import {provinces} from './provinces';
|
|
3
|
+
import {cities} from './cities';
|
|
4
|
+
import {regions} from './regions';
|
|
5
5
|
import weui from '../../../../utils/weui';
|
|
6
6
|
|
|
7
7
|
let tree;
|
|
@@ -20642,4 +20642,4 @@ export const regions = [
|
|
|
20642
20642
|
"parent_code": "620201",
|
|
20643
20643
|
"en": "Changcheng District"
|
|
20644
20644
|
}
|
|
20645
|
-
];
|
|
20645
|
+
] as const;
|
|
@@ -18,8 +18,8 @@ export function timePicker(options) {
|
|
|
18
18
|
).split(':');
|
|
19
19
|
const initTime = parseInt(initHour) * 60 + parseInt(initMin);
|
|
20
20
|
const fixInitTime = Math.max(startTime, Math.min(endTime, initTime));
|
|
21
|
-
const fixInitHour =
|
|
22
|
-
const fixInitMin =
|
|
21
|
+
const fixInitHour = Math.floor(fixInitTime / 60);
|
|
22
|
+
const fixInitMin = Math.floor(fixInitTime % 60);
|
|
23
23
|
|
|
24
24
|
const hours = [];
|
|
25
25
|
for (let hour = 0; hour < 24; hour++) {
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import * as PropTypes from 'prop-types';
|
|
3
2
|
|
|
4
3
|
import classNames from '../../../utils/classnames';
|
|
5
4
|
import getLocalCounter from '../../../utils/getLocalCounter';
|
|
6
5
|
import {usePlatform} from '../../../utils/platform';
|
|
7
|
-
import {Switch as TeaSwitch} from 'tea-component';
|
|
6
|
+
import {ConfigProvider, Switch as TeaSwitch} from 'tea-component';
|
|
8
7
|
import { renderDecorator } from '../renderDecorator';
|
|
9
8
|
import { useSyncValue } from '../../../utils/useSyncValue';
|
|
9
|
+
import { CommonFormPropsType } from '../types';
|
|
10
|
+
|
|
10
11
|
export default function Switch({
|
|
11
12
|
// 系统属性
|
|
12
13
|
id,
|
|
13
14
|
className,
|
|
14
15
|
style,
|
|
15
|
-
events,
|
|
16
|
+
events = {},
|
|
16
17
|
// 组件属性
|
|
17
|
-
label,
|
|
18
|
-
labelVisible,
|
|
18
|
+
label = '标题',
|
|
19
|
+
labelVisible = true,
|
|
19
20
|
checked: defaultChecked,
|
|
20
|
-
layout,
|
|
21
|
-
disabled,
|
|
22
|
-
requiredFlag,
|
|
21
|
+
layout = 'horizontal',
|
|
22
|
+
disabled = false,
|
|
23
|
+
requiredFlag = false,
|
|
23
24
|
decorator
|
|
24
|
-
}) {
|
|
25
|
+
}: PropsType) {
|
|
25
26
|
const isFlex = layout !== 'vertical';
|
|
26
27
|
const cls = classNames({
|
|
27
28
|
'weda-ui': true,
|
|
@@ -40,10 +41,6 @@ export default function Switch({
|
|
|
40
41
|
// 两次默认值不同时, 需要刷新
|
|
41
42
|
const [checked, setChecked] = useSyncValue(defaultChecked);
|
|
42
43
|
|
|
43
|
-
const onChange = function (e) {
|
|
44
|
-
setChecked(e.target.checked);
|
|
45
|
-
events.change({ value: e.target.checked }, { originEvent: e });
|
|
46
|
-
};
|
|
47
44
|
|
|
48
45
|
// 现在低码组件往源码组件传入的id不唯一, 暂时使用hashcode替代
|
|
49
46
|
const hashcode = getLocalCounter();
|
|
@@ -60,7 +57,11 @@ export default function Switch({
|
|
|
60
57
|
type="checkbox"
|
|
61
58
|
checked={checked}
|
|
62
59
|
disabled={disabled}
|
|
63
|
-
onChange={
|
|
60
|
+
onChange={(ev) => {
|
|
61
|
+
const value = ev.target.checked;
|
|
62
|
+
setChecked(value);
|
|
63
|
+
events.change({ value }, {orgianalEvent: ev});
|
|
64
|
+
}}
|
|
64
65
|
/>
|
|
65
66
|
<div className="weui-switch-cp__box"></div>
|
|
66
67
|
</label>
|
|
@@ -68,12 +69,18 @@ export default function Switch({
|
|
|
68
69
|
</div>
|
|
69
70
|
) :
|
|
70
71
|
(
|
|
71
|
-
<
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
<ConfigProvider classPrefix="wedatea2td">
|
|
73
|
+
<TeaSwitch
|
|
74
|
+
id={_id}
|
|
75
|
+
value={checked}
|
|
76
|
+
disabled={disabled}
|
|
77
|
+
onChange={(value, context) => {
|
|
78
|
+
const originEvent = context.event;
|
|
79
|
+
setChecked(value);
|
|
80
|
+
events.change({ value }, {originEvent});
|
|
81
|
+
}}
|
|
82
|
+
/>
|
|
83
|
+
</ConfigProvider>
|
|
77
84
|
);
|
|
78
85
|
|
|
79
86
|
return renderDecorator(switchElement, decorator)({
|
|
@@ -88,30 +95,6 @@ export default function Switch({
|
|
|
88
95
|
});
|
|
89
96
|
}
|
|
90
97
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
className: PropTypes.string,
|
|
95
|
-
style: PropTypes.string,
|
|
96
|
-
events: PropTypes.objectOf(PropTypes.func),
|
|
97
|
-
// 组件属性
|
|
98
|
-
label: PropTypes.string,
|
|
99
|
-
labelVisible: PropTypes.bool,
|
|
100
|
-
disabled: PropTypes.bool,
|
|
101
|
-
checked: PropTypes.bool,
|
|
102
|
-
layout: PropTypes.string,
|
|
103
|
-
requiredFlag: PropTypes.bool,
|
|
104
|
-
decorator: PropTypes.oneOfType([PropTypes.array, PropTypes.node])
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
Switch.defaultProps = {
|
|
108
|
-
// 系统属性
|
|
109
|
-
events: {},
|
|
110
|
-
// 组件属性
|
|
111
|
-
label: '标题',
|
|
112
|
-
labelVisible: true,
|
|
113
|
-
disabled: false,
|
|
114
|
-
checked: false,
|
|
115
|
-
layout: PropTypes.string,
|
|
116
|
-
requiredFlag: false,
|
|
117
|
-
};
|
|
98
|
+
export interface PropsType extends CommonFormPropsType {
|
|
99
|
+
checked?: boolean;
|
|
100
|
+
}
|
|
@@ -1,34 +1,33 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import * as PropTypes from 'prop-types';
|
|
3
2
|
|
|
4
3
|
import classNames from '../../../utils/classnames';
|
|
5
|
-
import FormCell from '../formcell';
|
|
6
4
|
import './index.css';
|
|
7
5
|
import { ConfigProvider, Input } from 'tea-component';
|
|
8
6
|
import { usePlatform } from '../../../utils/platform';
|
|
9
7
|
import { renderDecorator } from '../renderDecorator';
|
|
10
8
|
import { useSyncValue } from '../../../utils/useSyncValue';
|
|
9
|
+
import { CommonFormPropsType } from '../types';
|
|
11
10
|
|
|
12
11
|
export default function Textarea({
|
|
13
12
|
// 系统属性
|
|
14
13
|
id,
|
|
15
14
|
className,
|
|
16
15
|
style,
|
|
17
|
-
events,
|
|
16
|
+
events = {},
|
|
18
17
|
// 组件属性
|
|
19
|
-
label,
|
|
20
|
-
labelVisible,
|
|
21
|
-
defaultValue,
|
|
22
|
-
placeholder,
|
|
23
|
-
maxLength,
|
|
24
|
-
disabled,
|
|
25
|
-
focus: autoFocus,
|
|
26
|
-
layout,
|
|
27
|
-
requiredFlag,
|
|
28
|
-
counterVisible,
|
|
29
|
-
size,
|
|
18
|
+
label = '标题',
|
|
19
|
+
labelVisible = true,
|
|
20
|
+
defaultValue = '',
|
|
21
|
+
placeholder = '请输入',
|
|
22
|
+
maxLength = 140,
|
|
23
|
+
disabled = false,
|
|
24
|
+
focus: autoFocus = false,
|
|
25
|
+
layout = 'horizontal',
|
|
26
|
+
requiredFlag = false,
|
|
27
|
+
counterVisible = true,
|
|
28
|
+
size = 'l',
|
|
30
29
|
decorator
|
|
31
|
-
}) {
|
|
30
|
+
}: PropsType) {
|
|
32
31
|
const platform = usePlatform();
|
|
33
32
|
|
|
34
33
|
const cls = classNames({
|
|
@@ -105,43 +104,11 @@ export default function Textarea({
|
|
|
105
104
|
}
|
|
106
105
|
);
|
|
107
106
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
label: PropTypes.string,
|
|
117
|
-
labelVisible: PropTypes.bool,
|
|
118
|
-
name: PropTypes.string,
|
|
119
|
-
defaultValue: PropTypes.string,
|
|
120
|
-
placeholder: PropTypes.string,
|
|
121
|
-
maxLength: PropTypes.number,
|
|
122
|
-
disabled: PropTypes.bool,
|
|
123
|
-
focus: PropTypes.bool,
|
|
124
|
-
layout: PropTypes.oneOf(['horizontal', 'vertical']),
|
|
125
|
-
requiredFlag: PropTypes.bool,
|
|
126
|
-
counterVisible: PropTypes.bool,
|
|
127
|
-
size: PropTypes.oneOf(['s', 'm', 'l', 'full']),
|
|
128
|
-
decorator: PropTypes.oneOfType([PropTypes.array, PropTypes.node])
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
Textarea.defaultProps = {
|
|
132
|
-
// 系统属性
|
|
133
|
-
events: {},
|
|
134
|
-
// 组件属性
|
|
135
|
-
label: '标题',
|
|
136
|
-
labelVisible: true,
|
|
137
|
-
nane: 'formTextarea',
|
|
138
|
-
defaultValue: '',
|
|
139
|
-
placeholder: '请输入',
|
|
140
|
-
maxLength: 140,
|
|
141
|
-
disabled: false,
|
|
142
|
-
focus: false,
|
|
143
|
-
layout: 'horizontal',
|
|
144
|
-
requiredFlag: false,
|
|
145
|
-
counterVisible: true,
|
|
146
|
-
size: 'l'
|
|
147
|
-
};
|
|
107
|
+
export interface PropsType extends CommonFormPropsType {
|
|
108
|
+
defaultValue?: string;
|
|
109
|
+
placeholder?: string;
|
|
110
|
+
maxLength?: number;
|
|
111
|
+
focus?: boolean;
|
|
112
|
+
counterVisible?: boolean;
|
|
113
|
+
size?: 's' | 'm' | 'l' | 'full';
|
|
114
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import * as PropTypes from 'prop-types';
|
|
3
2
|
|
|
4
3
|
import classNames from '../../../utils/classnames';
|
|
4
|
+
import { CommonPropsType } from '../../../types';
|
|
5
5
|
|
|
6
6
|
export default function Tips({
|
|
7
7
|
// 系统属性
|
|
8
8
|
className,
|
|
9
9
|
// 组件属性
|
|
10
|
-
tips,
|
|
11
|
-
type,
|
|
10
|
+
tips = '表单提示',
|
|
11
|
+
type = 'normal',
|
|
12
12
|
id,
|
|
13
13
|
style
|
|
14
|
-
}) {
|
|
14
|
+
}: PropsType) {
|
|
15
15
|
const cls = classNames({
|
|
16
16
|
'weda-ui': true,
|
|
17
17
|
'weda-tips': true,
|
|
@@ -27,21 +27,7 @@ export default function Tips({
|
|
|
27
27
|
);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
events: PropTypes.objectOf(PropTypes.func),
|
|
35
|
-
// 组件属性
|
|
36
|
-
tips: PropTypes.string,
|
|
37
|
-
type: PropTypes.oneOf(['normal', 'warn']),
|
|
38
|
-
style: PropTypes.object
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
Tips.defaultProps = {
|
|
42
|
-
// 系统属性
|
|
43
|
-
events: {},
|
|
44
|
-
// 组件属性
|
|
45
|
-
tips: '表单提示',
|
|
46
|
-
type: 'normal',
|
|
47
|
-
};
|
|
30
|
+
export interface PropsType extends CommonPropsType {
|
|
31
|
+
tips?: string;
|
|
32
|
+
type?: 'warn' | 'normal';
|
|
33
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { CommonPropsType } from "../../types";
|
|
3
|
+
|
|
4
|
+
export interface CommonFormPropsType extends CommonPropsType {
|
|
5
|
+
name?: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
labelVisible?: boolean;
|
|
8
|
+
layout?: "horizontal" | "vertical";
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
requiredFlag?: boolean;
|
|
11
|
+
decorator?: React.FC<any>;
|
|
12
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/* eslint-disable react/prop-types */
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import * as PropTypes from 'prop-types';
|
|
4
3
|
import { usePlatform } from '../../../utils/platform';
|
|
5
4
|
import { ImageUploaderH5 as UploaderH5 } from './uploader.h5';
|
|
6
5
|
import classNames from '../../../utils/classnames';
|
|
@@ -28,16 +27,19 @@ function UploaderPc(props) {
|
|
|
28
27
|
const cls = classNames({
|
|
29
28
|
'weda-ui': true,
|
|
30
29
|
[className]: className,
|
|
31
|
-
|
|
30
|
+
cloudbase_standard: true,
|
|
32
31
|
});
|
|
33
32
|
return renderDecorator(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
<UploaderPCInner
|
|
34
|
+
{...restProps}
|
|
35
|
+
style={{
|
|
36
|
+
height: '100%',
|
|
37
|
+
display: 'flex',
|
|
38
|
+
alignItems: 'center',
|
|
39
|
+
}}
|
|
40
|
+
/>,
|
|
41
|
+
decorator
|
|
42
|
+
)({
|
|
41
43
|
id,
|
|
42
44
|
className: cls,
|
|
43
45
|
style,
|
|
@@ -55,9 +57,9 @@ export default function Uploader(props) {
|
|
|
55
57
|
if (props?.showType === 'h5') {
|
|
56
58
|
return <UploaderH5 {...props} />;
|
|
57
59
|
}
|
|
58
|
-
return platform === 'h5' ?
|
|
60
|
+
return platform === 'h5' ? (
|
|
61
|
+
<UploaderH5 {...props} />
|
|
62
|
+
) : (
|
|
63
|
+
<UploaderPc {...props} />
|
|
64
|
+
);
|
|
59
65
|
}
|
|
60
|
-
|
|
61
|
-
Uploader.propTypes = {
|
|
62
|
-
showType: PropTypes.string, // 强制展示某个平台 pc | h5
|
|
63
|
-
};
|