@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.
Files changed (108) hide show
  1. package/CHANGELOG.md +240 -0
  2. package/package.json +61 -40
  3. package/src/.DS_Store +0 -0
  4. package/src/configs/.DS_Store +0 -0
  5. package/src/configs/components/button.json +7 -3
  6. package/src/configs/components/form/richText.json +1 -1
  7. package/src/configs/components/form/uploader.json +29 -1
  8. package/src/configs/components/form/uploaderFile.json +158 -0
  9. package/src/configs/components/image.json +12 -3
  10. package/src/configs/components/link.json +3 -3
  11. package/src/configs/components/richtextview.json +2 -2
  12. package/src/configs/components/scrollVeiw.json +5 -5
  13. package/src/configs/components/swiper.json +6 -6
  14. package/src/configs/components/tabs.json +3 -3
  15. package/src/configs/components/text.json +39 -4
  16. package/src/configs/index.js +5 -3
  17. package/src/mp/.gitignore +10 -0
  18. package/src/mp/components/button/index.js +1 -0
  19. package/src/mp/components/button/index.wxss +8 -0
  20. package/src/mp/components/form/select/index.js +18 -0
  21. package/src/mp/components/form/uploader/index.js +26 -29
  22. package/src/mp/components/form/uploaderFile/index.js +247 -0
  23. package/src/mp/components/form/uploaderFile/index.json +9 -0
  24. package/src/mp/components/form/uploaderFile/index.wxml +46 -0
  25. package/src/mp/components/form/uploaderFile/index.wxss +104 -0
  26. package/src/mp/components/text/index.js +33 -0
  27. package/src/mp/components/text/index.wxml +1 -1
  28. package/src/mp/components/text/index.wxss +18 -0
  29. package/src/mp/index.json +1 -0
  30. package/src/mp/utils/platform.js +20 -0
  31. package/src/mp/utils/tcb.js +11 -0
  32. package/src/web/.DS_Store +0 -0
  33. package/src/web/actions/showModal/{index.jsx → index.tsx} +53 -3
  34. package/src/web/components/auth/index.js +2 -2
  35. package/src/web/components/button/index.css +9 -0
  36. package/src/web/components/button/{index.jsx → index.tsx} +27 -41
  37. package/src/web/components/container/{index.jsx → index.tsx} +6 -10
  38. package/src/web/components/drawer/index.tsx +57 -0
  39. package/src/web/components/form/checkbox/{index.jsx → index.tsx} +24 -48
  40. package/src/web/components/form/enumSelect/{NormalSelect.jsx → NormalSelect.tsx} +2 -9
  41. package/src/web/components/form/form/index.tsx +48 -0
  42. package/src/web/components/form/formcell/{index.jsx → index.tsx} +6 -13
  43. package/src/web/components/form/input/index.css +4 -0
  44. package/src/web/components/form/input/{index.jsx → index.tsx} +33 -67
  45. package/src/web/components/form/radio/{index.jsx → index.tsx} +19 -42
  46. package/src/web/components/form/{renderDecorator.jsx → renderDecorator.tsx} +1 -3
  47. package/src/web/components/form/select/{h5.jsx → h5.tsx} +18 -62
  48. package/src/web/components/form/select/{index.jsx → index.tsx} +51 -94
  49. package/src/web/components/form/select/region/{cities.js → cities.ts} +1 -1
  50. package/src/web/components/form/select/region/{index.js → index.ts} +3 -3
  51. package/src/web/components/form/select/region/{provinces.js → provinces.ts} +1 -1
  52. package/src/web/components/form/select/region/{regions.js → regions.ts} +1 -1
  53. package/src/web/components/form/select/time.jsx +2 -2
  54. package/src/web/components/form/switch/{index.jsx → index.tsx} +30 -47
  55. package/src/web/components/form/textarea/{index.jsx → index.tsx} +22 -55
  56. package/src/web/components/form/tips/{index.jsx → index.tsx} +8 -22
  57. package/src/web/components/form/types.d.ts +12 -0
  58. package/src/web/components/form/uploader/{index.jsx → index.tsx} +16 -14
  59. package/src/web/components/form/uploader/{uploader.h5.jsx → uploader.h5.tsx} +67 -57
  60. package/src/web/components/form/uploader/{uploader.pc.jsx → uploader.pc.tsx} +26 -43
  61. package/src/web/components/form/uploaderFile/fail.svg +12 -0
  62. package/src/web/components/form/uploaderFile/index.css +423 -0
  63. package/src/web/components/form/uploaderFile/index.jsx +30 -0
  64. package/src/web/components/form/uploaderFile/pending.svg +18 -0
  65. package/src/web/components/form/uploaderFile/success.svg +12 -0
  66. package/src/web/components/form/uploaderFile/uploadFile.h5.jsx +562 -0
  67. package/src/web/components/form/uploaderFile/uploadFile.pc.jsx +487 -0
  68. package/src/web/components/image/{image.jsx → image.tsx} +8 -21
  69. package/src/web/components/image/{index.jsx → index.tsx} +22 -37
  70. package/src/web/components/index.js +35 -1
  71. package/src/web/components/link/{index.jsx → index.tsx} +19 -36
  72. package/src/web/components/modal/{index.jsx → index.tsx} +22 -9
  73. package/src/web/components/picker/{datePicker.jsx → datePicker.tsx} +11 -12
  74. package/src/web/components/picker/{picker.jsx → picker.tsx} +7 -10
  75. package/src/web/components/picker/{timePicker.jsx → timePicker.tsx} +8 -16
  76. package/src/web/components/richText/{const.js → const.ts} +0 -0
  77. package/src/web/components/richText/index.jsx +5 -2
  78. package/src/web/components/richTextView/index.tsx +67 -0
  79. package/src/web/components/scrollView/{index.jsx → index.tsx} +18 -33
  80. package/src/web/components/slot/{index.jsx → index.tsx} +8 -9
  81. package/src/web/components/swiper/index.css +1 -1
  82. package/src/web/components/swiper/{index.jsx → index.tsx} +66 -73
  83. package/src/web/components/tabs/index.tsx +33 -0
  84. package/src/web/components/tabs/{tabs.h5.jsx → tabs.h5.tsx} +4 -33
  85. package/src/web/components/tabs/{tabs.pc.jsx → tabs.pc.tsx} +5 -39
  86. package/src/web/components/text/index.css +18 -0
  87. package/src/web/components/text/index.tsx +69 -0
  88. package/src/web/components/uploaderFileView/index.css +11 -0
  89. package/src/web/components/uploaderFileView/index.jsx +75 -0
  90. package/src/web/components/uploaderView/{index.jsx → index.tsx} +12 -15
  91. package/src/web/types.d.ts +20 -0
  92. package/src/web/utils/constant.js +2 -0
  93. package/src/web/utils/loading-fallback.tsx +2 -0
  94. package/src/web/utils/platform.js +77 -6
  95. package/src/web/utils/useSetState.ts +14 -0
  96. package/src/web/utils/useSyncValue.ts +17 -0
  97. package/src/web/wedatheme/.git +1 -0
  98. package/src/web/wedatheme/.gitignore +5 -0
  99. package/src/web/wedatheme/.npmrc +1 -0
  100. package/src/web/wedatheme/package-lock.json +14335 -0
  101. package/src/configs/components/button.svg +0 -18
  102. package/src/web/components/drawer/index.jsx +0 -64
  103. package/src/web/components/form/form/index.jsx +0 -76
  104. package/src/web/components/link/test/__snapshots__/storybook.test.js.snap +0 -754
  105. package/src/web/components/richTextView/index.jsx +0 -89
  106. package/src/web/components/tabs/index.jsx +0 -10
  107. package/src/web/components/text/index.jsx +0 -71
  108. 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
- SelectPc.propTypes = {
52
- // 系统属性
53
- className: PropTypes.string,
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: PropTypes.array,
65
- defaultValue: PropTypes.string,
57
+ range?: any[];
58
+ defaultValue?: string;
66
59
  // date mode
67
- startDate: PropTypes.string,
68
- endDate: PropTypes.string,
69
- defaultDate: PropTypes.string,
60
+ startDate?: string;
61
+ endDate?: string;
62
+ defaultDate?: string;
70
63
  // time mode
71
- startTime: PropTypes.string,
72
- endTime: PropTypes.string,
73
- defaultTime: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
64
+ startTime?: string;
65
+ endTime?: string;
66
+ defaultTime?: string | number;
74
67
  // region mode
75
- defaultRegion: PropTypes.array,
76
- separator: PropTypes.string,
77
- size: PropTypes.oneOf(['s', 'm', 'l', 'full'])
78
- };
79
-
68
+ defaultRegion?: any[];
69
+ separator?: string;
70
+ requiredFlag?: boolean;
71
+ }
80
72
 
81
- Select.propTypes = {
73
+ export const defaultProps = {
82
74
  // 系统属性
83
- id: PropTypes.string,
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: PropTypes.string,
90
- labelVisible: PropTypes.bool,
91
- name: PropTypes.string,
92
- placeholder: PropTypes.string,
93
- layout: PropTypes.string,
94
- mode: PropTypes.string,
95
- disabled: PropTypes.bool,
96
- decorator: PropTypes.oneOfType([PropTypes.array, PropTypes.node]),
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: PropTypes.array,
99
- defaultValue: PropTypes.string,
100
- // date mode
101
- startDate: PropTypes.string,
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
- defaultRegion: PropTypes.array,
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
  );
@@ -2407,4 +2407,4 @@ export const cities = [
2407
2407
  "parent_code": "65",
2408
2408
  "en": "County-level administrative divisions directly under the Central Government"
2409
2409
  }
2410
- ];
2410
+ ] as const;
@@ -1,7 +1,7 @@
1
1
  // 暂时把地区信息打包在本地, 后续移到COS桶内
2
- import {provinces} from './provinces.js';
3
- import {cities} from './cities.js';
4
- import {regions} from './regions.js';
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;
@@ -237,4 +237,4 @@ export const provinces = [
237
237
  "parent_code": "",
238
238
  "en": "Taiwan"
239
239
  }
240
- ];
240
+ ] as const;
@@ -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 = parseInt(fixInitTime / 60);
22
- const fixInitMin = parseInt(fixInitTime % 60);
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={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
- <TeaSwitch
72
- id={_id}
73
- value={checked}
74
- disabled={disabled}
75
- onChange={onChange}
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
- Switch.propTypes = {
92
- // 系统属性
93
- id: PropTypes.string,
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
- Textarea.propTypes = {
110
- // 系统属性
111
- id: PropTypes.string,
112
- style: PropTypes.string,
113
- className: PropTypes.string,
114
- events: PropTypes.object,
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
- Tips.propTypes = {
31
- // 系统属性
32
- id: PropTypes.string,
33
- className: PropTypes.string,
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
- 'cloudbase_standard': true
30
+ cloudbase_standard: true,
32
31
  });
33
32
  return renderDecorator(
34
- <UploaderPCInner
35
- {...restProps}
36
- style={{
37
- height: '100%',
38
- display: 'flex',
39
- alignItems: 'center'
40
- }} />, decorator)({
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' ? <UploaderH5 {...props} /> : <UploaderPc {...props} />;
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
- };