@cloudbase/weda-ui 0.2.10 → 0.2.14
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 +233 -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 +105 -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/MultipleSelect.jsx +1 -6
- package/src/web/components/form/enumSelect/{NormalSelect.jsx → NormalSelect.tsx} +3 -14
- 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 +39 -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.tsx +578 -0
- package/src/web/components/form/uploaderFile/uploadFile.pc.tsx +507 -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 +36 -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} +73 -78
- 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/tcb.js +0 -8
- 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/enumSelect/hooks/index.js +0 -49
- 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,13 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import * as
|
|
3
|
-
import dayjs from 'dayjs';
|
|
2
|
+
import * as _moment from 'moment';
|
|
4
3
|
|
|
5
4
|
import weui from '../../../utils/weui';
|
|
6
5
|
import classNames from '../../../utils/classnames';
|
|
7
6
|
import isObjectEqual from '../../../utils/isObjectEqual';
|
|
8
7
|
import { timePicker } from './time';
|
|
9
8
|
import { regionPicker } from './region';
|
|
9
|
+
import {PropsType} from './index';
|
|
10
|
+
import { defaultProps } from './index';
|
|
10
11
|
|
|
12
|
+
// @ts-expect-error TODO: fix 与plugin构建阶段效果不同
|
|
13
|
+
const moment = (typeof _moment === 'function' ? _moment : _moment.default) as _moment.moment;
|
|
11
14
|
export default function Select({
|
|
12
15
|
// 系统属性
|
|
13
16
|
events,
|
|
@@ -18,7 +21,7 @@ export default function Select({
|
|
|
18
21
|
mode,
|
|
19
22
|
disabled = false,
|
|
20
23
|
// selector mode
|
|
21
|
-
range,
|
|
24
|
+
range = defaultProps.range,
|
|
22
25
|
defaultValue,
|
|
23
26
|
// date mode
|
|
24
27
|
startDate,
|
|
@@ -31,7 +34,7 @@ export default function Select({
|
|
|
31
34
|
// region mode
|
|
32
35
|
defaultRegion,
|
|
33
36
|
separator,
|
|
34
|
-
}) {
|
|
37
|
+
}: PropsType) {
|
|
35
38
|
const [date, setDate] = React.useState(
|
|
36
39
|
decodeIsoDatetime(defaultDate, 'date')
|
|
37
40
|
);
|
|
@@ -44,7 +47,7 @@ export default function Select({
|
|
|
44
47
|
const [selectedValue, setSelectedValue] = React.useState(defaultValue);
|
|
45
48
|
|
|
46
49
|
// 两次默认值不同, 需要刷新
|
|
47
|
-
const prevDefaultRef = React.useRef({});
|
|
50
|
+
const prevDefaultRef = React.useRef<any>({});
|
|
48
51
|
React.useEffect(() => {
|
|
49
52
|
let hasChange = false;
|
|
50
53
|
if (prevDefaultRef.current?.defaultValue !== defaultValue) {
|
|
@@ -82,7 +85,7 @@ export default function Select({
|
|
|
82
85
|
});
|
|
83
86
|
|
|
84
87
|
const onDateclick = function () {
|
|
85
|
-
const options = {
|
|
88
|
+
const options: Record<string, any> = {
|
|
86
89
|
className: 'weda-ui weda-picker',
|
|
87
90
|
};
|
|
88
91
|
!!date && (options.defaultDate = date);
|
|
@@ -92,7 +95,7 @@ export default function Select({
|
|
|
92
95
|
weui.datePicker({
|
|
93
96
|
...options,
|
|
94
97
|
onConfirm(result) {
|
|
95
|
-
const value =
|
|
98
|
+
const value = moment()
|
|
96
99
|
.year(result[0].value)
|
|
97
100
|
.month(result[1].value - 1)
|
|
98
101
|
.date(result[2].value)
|
|
@@ -104,7 +107,7 @@ export default function Select({
|
|
|
104
107
|
};
|
|
105
108
|
|
|
106
109
|
const onTimeClick = function () {
|
|
107
|
-
const options = {
|
|
110
|
+
const options: Record<string, any> = {
|
|
108
111
|
className: 'weda-ui weda-picker',
|
|
109
112
|
};
|
|
110
113
|
!!time && (options.defaultTime = time);
|
|
@@ -114,7 +117,7 @@ export default function Select({
|
|
|
114
117
|
timePicker({
|
|
115
118
|
...options,
|
|
116
119
|
onConfirm(result) {
|
|
117
|
-
const date =
|
|
120
|
+
const date = moment().hour(result[0].value).minute(result[1].value);
|
|
118
121
|
const value = date.format('HH:mm');
|
|
119
122
|
setTime(value);
|
|
120
123
|
events.change({
|
|
@@ -181,7 +184,7 @@ export default function Select({
|
|
|
181
184
|
|
|
182
185
|
const result = React.useMemo(() => {
|
|
183
186
|
return {
|
|
184
|
-
selector: range.find((item) => item.value === selectedValue)?.label,
|
|
187
|
+
selector: (range ?? []).find((item) => item.value === selectedValue)?.label,
|
|
185
188
|
date: date,
|
|
186
189
|
time: time,
|
|
187
190
|
region: (region || []).join(separator), // region 有可能是空串
|
|
@@ -207,53 +210,6 @@ export default function Select({
|
|
|
207
210
|
);
|
|
208
211
|
}
|
|
209
212
|
|
|
210
|
-
Select.propTypes = {
|
|
211
|
-
// 系统属性
|
|
212
|
-
className: PropTypes.string,
|
|
213
|
-
style: PropTypes.string,
|
|
214
|
-
events: PropTypes.objectOf(PropTypes.func),
|
|
215
|
-
// 组件属性
|
|
216
|
-
name: PropTypes.string,
|
|
217
|
-
placeholder: PropTypes.string,
|
|
218
|
-
layout: PropTypes.string,
|
|
219
|
-
mode: PropTypes.string,
|
|
220
|
-
disabled: PropTypes.bool,
|
|
221
|
-
// selector mode
|
|
222
|
-
range: PropTypes.array,
|
|
223
|
-
defaultValue: PropTypes.string,
|
|
224
|
-
// date mode
|
|
225
|
-
startDate: PropTypes.string,
|
|
226
|
-
endDate: PropTypes.string,
|
|
227
|
-
defaultDate: PropTypes.string,
|
|
228
|
-
// time mode
|
|
229
|
-
startTime: PropTypes.string,
|
|
230
|
-
endTime: PropTypes.string,
|
|
231
|
-
defaultTime: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
232
|
-
// region mode
|
|
233
|
-
defaultRegion: PropTypes.array,
|
|
234
|
-
separator: PropTypes.string,
|
|
235
|
-
};
|
|
236
|
-
|
|
237
|
-
Select.defaultProps = {
|
|
238
|
-
// 系统属性
|
|
239
|
-
events: {},
|
|
240
|
-
// 组件属性
|
|
241
|
-
label: '标题',
|
|
242
|
-
labelVisible: true,
|
|
243
|
-
name: 'formSelect',
|
|
244
|
-
placeholder: '请选择',
|
|
245
|
-
layout: 'horizontal',
|
|
246
|
-
mode: 'selector',
|
|
247
|
-
disabled: false,
|
|
248
|
-
requiredFlag: false,
|
|
249
|
-
// selector mode
|
|
250
|
-
range: [
|
|
251
|
-
{ name: '选项一', value: 'first' },
|
|
252
|
-
{ name: '选项二', value: 'second' },
|
|
253
|
-
],
|
|
254
|
-
// region mode
|
|
255
|
-
separator: ',',
|
|
256
|
-
};
|
|
257
213
|
|
|
258
214
|
export function decodeIsoDatetime(isoStringOrTimesnap, type) {
|
|
259
215
|
if (!isoStringOrTimesnap) {
|
|
@@ -275,22 +231,22 @@ export function decodeIsoDatetime(isoStringOrTimesnap, type) {
|
|
|
275
231
|
isoStringOrTimesnap.match &&
|
|
276
232
|
isoStringOrTimesnap.match(/^(\d{2}):(\d{2})$/);
|
|
277
233
|
if (time && time[1] < 24 && time[2] < 60) {
|
|
278
|
-
return
|
|
234
|
+
return moment().hour(time[1]).minute(time[2]).format('HH:mm');
|
|
279
235
|
} else if (typeof isoStringOrTimesnap === 'number') {
|
|
280
236
|
const timeSnap = Number(isoStringOrTimesnap);
|
|
281
237
|
let day;
|
|
282
238
|
try {
|
|
283
|
-
day =
|
|
239
|
+
day = moment()
|
|
284
240
|
.hour(Math.floor(timeSnap / 3600000) % 24)
|
|
285
241
|
.minute(Math.floor((timeSnap % 3600000) / 60000));
|
|
286
242
|
} catch (e) {
|
|
287
|
-
day =
|
|
243
|
+
day = moment(timeSnap);
|
|
288
244
|
}
|
|
289
245
|
return day.format('HH:mm');
|
|
290
246
|
} else {
|
|
291
|
-
return
|
|
247
|
+
return moment(isoStringOrTimesnap).format('HH:mm');
|
|
292
248
|
}
|
|
293
249
|
} else {
|
|
294
|
-
return
|
|
250
|
+
return moment(isoStringOrTimesnap).format('YYYY-MM-DD');
|
|
295
251
|
}
|
|
296
252
|
}
|
|
@@ -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
|
+
}
|