feffery_antd_components 0.1.16 → 0.2.0-rc0

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 (148) hide show
  1. package/DESCRIPTION +1 -1
  2. package/NAMESPACE +1 -0
  3. package/Project.toml +1 -1
  4. package/README-en_US.md +51 -0
  5. package/README.md +14 -5
  6. package/feffery_antd_components/AntdAlert.py +1 -1
  7. package/feffery_antd_components/AntdAnchor.py +1 -1
  8. package/feffery_antd_components/AntdAvatar.py +1 -1
  9. package/feffery_antd_components/AntdBackTop.py +1 -1
  10. package/feffery_antd_components/AntdButton.py +10 -6
  11. package/feffery_antd_components/AntdCarousel.py +1 -1
  12. package/feffery_antd_components/AntdCascader.py +9 -5
  13. package/feffery_antd_components/AntdCol.py +1 -1
  14. package/feffery_antd_components/AntdContent.py +1 -1
  15. package/feffery_antd_components/AntdCustomSkeleton.py +1 -1
  16. package/feffery_antd_components/AntdDraggerUpload.py +1 -1
  17. package/feffery_antd_components/AntdDrawer.py +1 -1
  18. package/feffery_antd_components/AntdFooter.py +1 -1
  19. package/feffery_antd_components/AntdHeader.py +1 -1
  20. package/feffery_antd_components/AntdIcon.py +8 -4
  21. package/feffery_antd_components/AntdImage.py +1 -1
  22. package/feffery_antd_components/AntdInput.py +16 -8
  23. package/feffery_antd_components/AntdInputNumber.py +11 -7
  24. package/feffery_antd_components/AntdLayout.py +1 -1
  25. package/feffery_antd_components/AntdModal.py +10 -4
  26. package/feffery_antd_components/AntdParagraph.py +1 -1
  27. package/feffery_antd_components/AntdPasteImage.py +1 -1
  28. package/feffery_antd_components/AntdPopupCard.py +72 -0
  29. package/feffery_antd_components/AntdRibbon.py +3 -3
  30. package/feffery_antd_components/AntdRow.py +1 -1
  31. package/feffery_antd_components/AntdSegmented.py +5 -3
  32. package/feffery_antd_components/AntdSegmentedColoring.py +7 -3
  33. package/feffery_antd_components/AntdSider.py +1 -1
  34. package/feffery_antd_components/AntdSkeleton.py +1 -1
  35. package/feffery_antd_components/AntdSpace.py +1 -1
  36. package/feffery_antd_components/AntdSpin.py +2 -2
  37. package/feffery_antd_components/AntdStatistic.py +1 -1
  38. package/feffery_antd_components/AntdTabPane.py +1 -1
  39. package/feffery_antd_components/AntdTable.py +55 -7
  40. package/feffery_antd_components/AntdTag.py +1 -1
  41. package/feffery_antd_components/AntdText.py +1 -1
  42. package/feffery_antd_components/AntdTitle.py +1 -1
  43. package/feffery_antd_components/AntdTree.py +6 -4
  44. package/feffery_antd_components/AntdTreeSelect.py +8 -6
  45. package/feffery_antd_components/_imports_.py +2 -0
  46. package/feffery_antd_components/feffery_antd_components.min.js +1 -1
  47. package/feffery_antd_components/metadata.json +1042 -93
  48. package/feffery_antd_components/package-info.json +6 -2
  49. package/git-operations.md +0 -1
  50. package/images//345/233/275/351/231/205/345/214/226/347/244/272/344/276/213.png +0 -0
  51. package/package.json +6 -2
  52. package/setup.py +0 -1
  53. package/src/FefferyAntdComponents.jl +4 -3
  54. package/src/jl/'feffery'_antdalert.jl +1 -1
  55. package/src/jl/'feffery'_antdanchor.jl +1 -1
  56. package/src/jl/'feffery'_antdavatar.jl +1 -1
  57. package/src/jl/'feffery'_antdbacktop.jl +1 -1
  58. package/src/jl/'feffery'_antdbutton.jl +4 -2
  59. package/src/jl/'feffery'_antdcarousel.jl +1 -1
  60. package/src/jl/'feffery'_antdcascader.jl +4 -2
  61. package/src/jl/'feffery'_antdcol.jl +1 -1
  62. package/src/jl/'feffery'_antdcontent.jl +1 -1
  63. package/src/jl/'feffery'_antdcustomskeleton.jl +1 -1
  64. package/src/jl/'feffery'_antddraggerupload.jl +1 -1
  65. package/src/jl/'feffery'_antddrawer.jl +1 -1
  66. package/src/jl/'feffery'_antdfooter.jl +1 -1
  67. package/src/jl/'feffery'_antdheader.jl +1 -1
  68. package/src/jl/'feffery'_antdicon.jl +4 -2
  69. package/src/jl/'feffery'_antdimage.jl +1 -1
  70. package/src/jl/'feffery'_antdinput.jl +8 -4
  71. package/src/jl/'feffery'_antdinputnumber.jl +5 -3
  72. package/src/jl/'feffery'_antdlayout.jl +1 -1
  73. package/src/jl/'feffery'_antdmodal.jl +5 -2
  74. package/src/jl/'feffery'_antdparagraph.jl +1 -1
  75. package/src/jl/'feffery'_antdpasteimage.jl +1 -1
  76. package/src/jl/'feffery'_antdpopupcard.jl +43 -0
  77. package/src/jl/'feffery'_antdribbon.jl +1 -1
  78. package/src/jl/'feffery'_antdrow.jl +1 -1
  79. package/src/jl/'feffery'_antdsegmented.jl +5 -4
  80. package/src/jl/'feffery'_antdsegmentedcoloring.jl +3 -1
  81. package/src/jl/'feffery'_antdsider.jl +1 -1
  82. package/src/jl/'feffery'_antdskeleton.jl +1 -1
  83. package/src/jl/'feffery'_antdspace.jl +1 -1
  84. package/src/jl/'feffery'_antdspin.jl +2 -2
  85. package/src/jl/'feffery'_antdstatistic.jl +1 -1
  86. package/src/jl/'feffery'_antdtable.jl +31 -4
  87. package/src/jl/'feffery'_antdtabpane.jl +1 -1
  88. package/src/jl/'feffery'_antdtag.jl +1 -1
  89. package/src/jl/'feffery'_antdtext.jl +1 -1
  90. package/src/jl/'feffery'_antdtitle.jl +1 -1
  91. package/src/jl/'feffery'_antdtree.jl +3 -2
  92. package/src/jl/'feffery'_antdtreeselect.jl +3 -2
  93. package/src/lib/components/AntdAlert.react.js +16 -3
  94. package/src/lib/components/AntdAnchor.react.js +79 -70
  95. package/src/lib/components/AntdAvatar.react.js +21 -4
  96. package/src/lib/components/AntdBackTop.react.js +11 -2
  97. package/src/lib/components/AntdButton.react.js +82 -54
  98. package/src/lib/components/AntdCarousel.react.js +11 -2
  99. package/src/lib/components/AntdCascader.react.js +128 -82
  100. package/src/lib/components/AntdCheckboxGroup.react.js +2 -0
  101. package/src/lib/components/AntdDrawer.react.js +11 -2
  102. package/src/lib/components/AntdIcon.react.js +70 -37
  103. package/src/lib/components/AntdImage.react.js +16 -3
  104. package/src/lib/components/AntdInput.react.js +212 -175
  105. package/src/lib/components/AntdInputNumber.react.js +12 -2
  106. package/src/lib/components/AntdModal.react.js +22 -1
  107. package/src/lib/components/AntdPasteImage.react.js +11 -2
  108. package/src/lib/components/AntdPopupCard.react.js +241 -0
  109. package/src/lib/components/AntdRibbon.react.js +1 -1
  110. package/src/lib/components/AntdSegmented.react.js +19 -4
  111. package/src/lib/components/AntdSegmentedColoring.react.js +107 -82
  112. package/src/lib/components/AntdSelect.react.js +5 -0
  113. package/src/lib/components/AntdSpace.react.js +21 -4
  114. package/src/lib/components/AntdSpin.react.js +21 -6
  115. package/src/lib/components/AntdStatistic.react.js +11 -2
  116. package/src/lib/components/AntdTable.react.js +252 -18
  117. package/src/lib/components/AntdTag.react.js +12 -2
  118. package/src/lib/components/AntdTree.react.js +182 -136
  119. package/src/lib/components/AntdTreeSelect.react.js +144 -101
  120. package/src/lib/components/grid/AntdCol.react.js +11 -2
  121. package/src/lib/components/grid/AntdRow.react.js +12 -3
  122. package/src/lib/components/layout/AntdContent.react.js +11 -2
  123. package/src/lib/components/layout/AntdFooter.react.js +11 -2
  124. package/src/lib/components/layout/AntdHeader.react.js +11 -2
  125. package/src/lib/components/layout/AntdLayout.react.js +11 -2
  126. package/src/lib/components/layout/AntdSider.react.js +11 -2
  127. package/src/lib/components/skeleton/AntdCustomSkeleton.react.js +11 -3
  128. package/src/lib/components/skeleton/AntdSkeleton.react.js +11 -2
  129. package/src/lib/components/styles.css +4 -0
  130. package/src/lib/components/tabs/AntdTabPane.react.js +11 -2
  131. package/src/lib/components/typography/AntdParagraph.react.js +11 -2
  132. package/src/lib/components/typography/AntdText.react.js +11 -2
  133. package/src/lib/components/typography/AntdTitle.react.js +11 -2
  134. package/src/lib/components/upload/AntdDraggerUpload.react.js +11 -2
  135. package/src/lib/components/utils.js +17 -2
  136. package/src/lib/index.js +24 -1
  137. package/tests/DebounceTest/app.py +89 -0
  138. package/tests/SegmentedColoringTest/app.py +106 -0
  139. package/tests/TableCellClickTest/app.py +67 -0
  140. package/tests/TableCellRowMergeTest/app.py +88 -0
  141. package/tests/TableEmptyContentTest/app.py +37 -0
  142. package/tests/TableMiniChartAdvanceTest/app.py +85 -0
  143. package/tests/TreeNodeStyleTest/app.py +73 -0
  144. package/tests/TreeTest/app.py +96 -0
  145. package/tests/VirtualClassNameTest/app.py +49 -0
  146. package/usage.py +125 -62
  147. package/webpack.config.js +45 -11
  148. package/tests/UploadTest/app.py +0 -70
@@ -1,191 +1,213 @@
1
- import React, { Component } from 'react';
1
+ import { useEffect } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { Input } from 'antd';
4
4
  import md5 from 'md5';
5
+ import { useRequest } from 'ahooks';
5
6
  import 'antd/dist/antd.css';
6
7
 
7
8
  const { Search, TextArea } = Input;
8
9
 
9
10
  // 定义输入框组件AntdInput,api参数参考https://ant.design/components/input-cn/
10
- export default class AntdInput extends Component {
11
-
12
- constructor(props) {
13
- super(props)
11
+ const AntdInput = (props) => {
12
+ // 取得必要属性或参数
13
+ let {
14
+ id,
15
+ className,
16
+ style,
17
+ key,
18
+ mode,
19
+ passwordUseMd5,
20
+ autoComplete,
21
+ placeholder,
22
+ value,
23
+ size,
24
+ addonBefore,
25
+ addonAfter,
26
+ prefix,
27
+ suffix,
28
+ allowClear,
29
+ bordered,
30
+ defaultValue,
31
+ disabled,
32
+ maxLength,
33
+ showCount,
34
+ nClicksSearch,
35
+ nSubmit,
36
+ status,
37
+ autoSize,
38
+ debounceWait,
39
+ setProps,
40
+ loading_state,
41
+ persistence,
42
+ persisted_props,
43
+ persistence_type
44
+ } = props;
45
+
46
+ useEffect(() => {
14
47
  // 初始化value
15
- if (props.defaultValue) {
48
+ if (defaultValue) {
16
49
  // 当defaultValue不为空时,为value初始化defaultValue对应的value值
17
- props.setProps({
18
- value: props.defaultValue,
19
- md5Value: md5(props.defaultValue)
50
+ setProps({
51
+ value: defaultValue,
52
+ md5Value: md5(defaultValue)
20
53
  })
21
54
  }
22
- }
23
-
24
- render() {
25
- // 取得必要属性或参数
26
- let {
27
- id,
28
- className,
29
- style,
30
- key,
31
- mode,
32
- passwordUseMd5,
33
- autoComplete,
34
- placeholder,
35
- value,
36
- size,
37
- addonBefore,
38
- addonAfter,
39
- allowClear,
40
- bordered,
41
- defaultValue,
42
- disabled,
43
- maxLength,
44
- showCount,
45
- nClicksSearch,
46
- nSubmit,
47
- status,
48
- autoSize,
49
- setProps,
50
- loading_state,
51
- persistence,
52
- persisted_props,
53
- persistence_type
54
- } = this.props;
55
-
56
- // 监听输入内容变化事件
57
- const onChange = e => {
55
+ }, [])
56
+
57
+ // 监听输入内容变化事件
58
+ const onChange = e => {
59
+ // 若启用md5加密且为密码模式
60
+ if (passwordUseMd5 && mode === 'password') {
61
+ setProps({
62
+ md5Value: md5(e.target.value),
63
+ value: e.target.value
64
+ })
65
+ } else {
58
66
  setProps({ value: e.target.value })
59
67
  }
68
+ }
60
69
 
61
- // 监听聚焦到输入框时enter键点按次数
62
- const onPressEnter = e => {
63
- setProps({ nSubmit: nSubmit + 1 })
70
+ const { run: onDebounceChange } = useRequest(
71
+ (e) => {
72
+ setProps({ debounceValue: e })
73
+ },
74
+ {
75
+ debounceWait: debounceWait,
76
+ manual: true
64
77
  }
78
+ )
65
79
 
66
- // 监听搜索按钮点按事件
67
- const onSearch = e => {
68
- setProps({ nClicksSearch: nClicksSearch + 1 })
69
- }
80
+ // 监听聚焦到输入框时enter键点按次数
81
+ const onPressEnter = e => {
82
+ setProps({ nSubmit: nSubmit + 1 })
83
+ }
70
84
 
71
- // 不同的mode模式下渲染不同的组件
72
- if (mode === 'default') {
73
- return (
74
- <Input id={id}
75
- className={className}
76
- style={style}
77
- key={key}
78
- placeholder={placeholder}
79
- autoComplete={autoComplete}
80
- value={value}
81
- size={size}
82
- addonBefore={addonBefore}
83
- addonAfter={addonAfter}
84
- allowClear={allowClear}
85
- bordered={bordered}
86
- defaultValue={defaultValue}
87
- disabled={disabled}
88
- maxLength={maxLength}
89
- status={status}
90
- onChange={onChange}
91
- onPressEnter={onPressEnter}
92
- persistence={persistence}
93
- persisted_props={persisted_props}
94
- persistence_type={persistence_type}
95
- data-dash-is-loading={
96
- (loading_state && loading_state.is_loading) || undefined
97
- } />
98
- );
99
- } else if (mode === 'search') {
100
- return (
101
- <Search id={id}
102
- className={className}
103
- style={style}
104
- key={key}
105
- placeholder={placeholder}
106
- autoComplete={autoComplete}
107
- size={size}
108
- allowClear={allowClear}
109
- bordered={bordered}
110
- value={value}
111
- defaultValue={defaultValue}
112
- disabled={disabled}
113
- maxLength={maxLength}
114
- status={status}
115
- onSearch={onSearch}
116
- onChange={onChange}
117
- onPressEnter={onPressEnter}
118
- persistence={persistence}
119
- persisted_props={persisted_props}
120
- persistence_type={persistence_type}
121
- data-dash-is-loading={
122
- (loading_state && loading_state.is_loading) || undefined
123
- } />
124
- );
125
- } else if (mode === 'text-area') {
126
- return (
127
- <TextArea id={id}
128
- className={className}
129
- style={style}
130
- key={key}
131
- placeholder={placeholder}
132
- autoComplete={autoComplete}
133
- size={size}
134
- allowClear={allowClear}
135
- bordered={bordered}
136
- value={value}
137
- defaultValue={defaultValue}
138
- disabled={disabled}
139
- maxLength={maxLength}
140
- showCount={showCount}
141
- status={status}
142
- autoSize={autoSize}
143
- onChange={onChange}
144
- onPressEnter={onPressEnter}
145
- persistence={persistence}
146
- persisted_props={persisted_props}
147
- persistence_type={persistence_type}
148
- data-dash-is-loading={
149
- (loading_state && loading_state.is_loading) || undefined
150
- } />
151
- );
152
- } else if (mode === 'password') {
153
- return (
154
- <Input.Password id={id}
155
- className={className}
156
- style={style}
157
- key={key}
158
- placeholder={placeholder}
159
- autoComplete={autoComplete}
160
- size={size}
161
- bordered={bordered}
162
- disabled={disabled}
163
- value={value}
164
- defaultValue={defaultValue}
165
- maxLength={maxLength}
166
- status={status}
167
- onChange={(e) => {
168
- // 若启用md5加密
169
- if (passwordUseMd5) {
170
- setProps({
171
- md5Value: md5(e.target.value),
172
- value: e.target.value
173
- })
174
- } else {
175
- setProps({
176
- value: e.target.value
177
- })
178
- }
179
- }}
180
- onPressEnter={onPressEnter}
181
- persistence={persistence}
182
- persisted_props={persisted_props}
183
- persistence_type={persistence_type}
184
- data-dash-is-loading={
185
- (loading_state && loading_state.is_loading) || undefined
186
- } />
187
- );
188
- }
85
+ // 监听搜索按钮点按事件
86
+ const onSearch = e => {
87
+ setProps({ nClicksSearch: nClicksSearch + 1 })
88
+ }
89
+
90
+ // 不同的mode模式下渲染不同的组件
91
+ if (mode === 'default') {
92
+ return (
93
+ <Input id={id}
94
+ className={className}
95
+ style={style}
96
+ key={key}
97
+ placeholder={placeholder}
98
+ autoComplete={autoComplete}
99
+ value={value}
100
+ size={size}
101
+ addonBefore={addonBefore}
102
+ addonAfter={addonAfter}
103
+ prefix={prefix}
104
+ suffix={suffix}
105
+ allowClear={allowClear}
106
+ bordered={bordered}
107
+ defaultValue={defaultValue}
108
+ disabled={disabled}
109
+ maxLength={maxLength}
110
+ status={status}
111
+ onChange={(e) => {
112
+ onChange(e)
113
+ onDebounceChange(e.target.value)
114
+ }}
115
+ onPressEnter={onPressEnter}
116
+ persistence={persistence}
117
+ persisted_props={persisted_props}
118
+ persistence_type={persistence_type}
119
+ data-dash-is-loading={
120
+ (loading_state && loading_state.is_loading) || undefined
121
+ } />
122
+ );
123
+ } else if (mode === 'search') {
124
+ return (
125
+ <Search id={id}
126
+ className={className}
127
+ style={style}
128
+ key={key}
129
+ placeholder={placeholder}
130
+ autoComplete={autoComplete}
131
+ size={size}
132
+ allowClear={allowClear}
133
+ bordered={bordered}
134
+ value={value}
135
+ defaultValue={defaultValue}
136
+ disabled={disabled}
137
+ maxLength={maxLength}
138
+ status={status}
139
+ onSearch={onSearch}
140
+ onChange={(e) => {
141
+ onChange(e)
142
+ onDebounceChange(e.target.value)
143
+ }}
144
+ onPressEnter={onPressEnter}
145
+ persistence={persistence}
146
+ persisted_props={persisted_props}
147
+ persistence_type={persistence_type}
148
+ data-dash-is-loading={
149
+ (loading_state && loading_state.is_loading) || undefined
150
+ } />
151
+ );
152
+ } else if (mode === 'text-area') {
153
+ return (
154
+ <TextArea id={id}
155
+ className={className}
156
+ style={style}
157
+ key={key}
158
+ placeholder={placeholder}
159
+ autoComplete={autoComplete}
160
+ size={size}
161
+ allowClear={allowClear}
162
+ bordered={bordered}
163
+ value={value}
164
+ defaultValue={defaultValue}
165
+ disabled={disabled}
166
+ maxLength={maxLength}
167
+ showCount={showCount}
168
+ status={status}
169
+ autoSize={autoSize}
170
+ onChange={(e) => {
171
+ onChange(e)
172
+ onDebounceChange(e.target.value)
173
+ }}
174
+ onPressEnter={onPressEnter}
175
+ persistence={persistence}
176
+ persisted_props={persisted_props}
177
+ persistence_type={persistence_type}
178
+ data-dash-is-loading={
179
+ (loading_state && loading_state.is_loading) || undefined
180
+ } />
181
+ );
182
+ } else if (mode === 'password') {
183
+ return (
184
+ <Input.Password id={id}
185
+ className={className}
186
+ style={style}
187
+ key={key}
188
+ placeholder={placeholder}
189
+ autoComplete={autoComplete}
190
+ size={size}
191
+ bordered={bordered}
192
+ disabled={disabled}
193
+ value={value}
194
+ defaultValue={defaultValue}
195
+ maxLength={maxLength}
196
+ status={status}
197
+ prefix={prefix}
198
+ suffix={suffix}
199
+ onChange={(e) => {
200
+ onChange(e)
201
+ onDebounceChange(e.target.value)
202
+ }}
203
+ onPressEnter={onPressEnter}
204
+ persistence={persistence}
205
+ persisted_props={persisted_props}
206
+ persistence_type={persistence_type}
207
+ data-dash-is-loading={
208
+ (loading_state && loading_state.is_loading) || undefined
209
+ } />
210
+ );
189
211
  }
190
212
  }
191
213
 
@@ -231,10 +253,16 @@ AntdInput.propTypes = {
231
253
  size: PropTypes.oneOf(['small', 'middle', 'large']),
232
254
 
233
255
  // 设置前置标签内容
234
- addonBefore: PropTypes.string,
256
+ addonBefore: PropTypes.node,
235
257
 
236
258
  // 设置后置标签内容
237
- addonAfter: PropTypes.string,
259
+ addonAfter: PropTypes.node,
260
+
261
+ // 设置框内嵌前缀内容
262
+ prefix: PropTypes.node,
263
+
264
+ // 设置框内嵌后缀内容
265
+ suffix: PropTypes.node,
238
266
 
239
267
  // 设置是否添加内容清除按钮,默认false
240
268
  allowClear: PropTypes.bool,
@@ -257,6 +285,12 @@ AntdInput.propTypes = {
257
285
  // 当passwordUseMd5=true时,用于记录加密的value值
258
286
  md5Value: PropTypes.string,
259
287
 
288
+ // 记录防抖状态下的已输入文字内容
289
+ debounceValue: PropTypes.string,
290
+
291
+ // 用于配置debounceValue变化更新的防抖等待时长(单位:毫秒),默认为0
292
+ debounceWait: PropTypes.number,
293
+
260
294
  // 设置是否展示字数,默认为false
261
295
  showCount: PropTypes.bool,
262
296
 
@@ -306,7 +340,7 @@ AntdInput.propTypes = {
306
340
  * component or the page. Since only `value` is allowed this prop can
307
341
  * normally be ignored.
308
342
  */
309
- persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value'])),
343
+ persisted_props: PropTypes.arrayOf(PropTypes.oneOf(['value', 'md5Value'])),
310
344
 
311
345
  /**
312
346
  * Where persisted user changes will be stored:
@@ -324,5 +358,8 @@ AntdInput.defaultProps = {
324
358
  nClicksSearch: 0,
325
359
  nSubmit: 0,
326
360
  persisted_props: ['value'],
327
- persistence_type: 'local'
328
- }
361
+ persistence_type: 'local',
362
+ debounceWait: 300
363
+ }
364
+
365
+ export default AntdInput;
@@ -25,6 +25,8 @@ export default class AntdInputNumber extends Component {
25
25
  size,
26
26
  addonBefore,
27
27
  addonAfter,
28
+ prefix,
29
+ suffix,
28
30
  bordered,
29
31
  controls,
30
32
  value,
@@ -69,6 +71,8 @@ export default class AntdInputNumber extends Component {
69
71
  size={size}
70
72
  addonBefore={addonBefore}
71
73
  addonAfter={addonAfter}
74
+ prefix={prefix}
75
+ suffix={suffix}
72
76
  placeholder={placeholder}
73
77
  bordered={bordered}
74
78
  controls={controls}
@@ -113,10 +117,16 @@ AntdInputNumber.propTypes = {
113
117
  size: PropTypes.oneOf(['small', 'middle', 'large']),
114
118
 
115
119
  // 设置前置标签内容
116
- addonBefore: PropTypes.string,
120
+ addonBefore: PropTypes.node,
117
121
 
118
122
  // 设置后置标签内容
119
- addonAfter: PropTypes.string,
123
+ addonAfter: PropTypes.node,
124
+
125
+ // 设置框内嵌前缀内容
126
+ prefix: PropTypes.node,
127
+
128
+ // 设置框内嵌后缀内容
129
+ suffix: PropTypes.node,
120
130
 
121
131
  // 设置是否有边框,默认为true
122
132
  bordered: PropTypes.bool,
@@ -31,6 +31,9 @@ export default class AntdModal extends Component {
31
31
  mask,
32
32
  maskClosable,
33
33
  okClickClose,
34
+ zIndex,
35
+ maskStyle,
36
+ bodyStyle,
34
37
  okCounts,
35
38
  cancelCounts,
36
39
  closeCounts,
@@ -79,6 +82,9 @@ export default class AntdModal extends Component {
79
82
  closable={closable}
80
83
  mask={mask}
81
84
  maskClosable={maskClosable}
85
+ zIndex={zIndex}
86
+ maskStyle={maskStyle}
87
+ bodyStyle={bodyStyle}
82
88
  onOk={listenOk}
83
89
  onCancel={listenCancel}
84
90
  afterClose={listenClose}
@@ -111,6 +117,9 @@ export default class AntdModal extends Component {
111
117
  closable={closable}
112
118
  mask={mask}
113
119
  maskClosable={maskClosable}
120
+ zIndex={zIndex}
121
+ maskStyle={maskStyle}
122
+ bodyStyle={bodyStyle}
114
123
  onOk={listenOk}
115
124
  onCancel={listenCancel}
116
125
  destroyOnClose={true}
@@ -167,7 +176,10 @@ AntdModal.propTypes = {
167
176
  renderFooter: PropTypes.bool,
168
177
 
169
178
  // 自定义对话框的像素宽度
170
- width: PropTypes.number,
179
+ width: PropTypes.oneOfType([
180
+ PropTypes.number,
181
+ PropTypes.string
182
+ ]),
171
183
 
172
184
  // 设置是否垂直居中显示对话框
173
185
  centered: PropTypes.bool,
@@ -187,6 +199,15 @@ AntdModal.propTypes = {
187
199
  // 设置点击确认按钮是否会触发对话框关闭,默认为true
188
200
  okClickClose: PropTypes.bool,
189
201
 
202
+ // 设置模态框的zIndex,默认为1000
203
+ zIndex: PropTypes.number,
204
+
205
+ // 自定义mask遮罩css样式
206
+ maskStyle: PropTypes.object,
207
+
208
+ // 自定义模态框主体区域css样式
209
+ bodyStyle: PropTypes.object,
210
+
190
211
  // 记录确认按钮被点击的次数
191
212
  okCounts: PropTypes.number,
192
213
 
@@ -2,6 +2,8 @@ import React, { useCallback } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { Card, Button, ConfigProvider, Image as Image_ } from 'antd';
4
4
  import zhCN from 'antd/lib/locale/zh_CN';
5
+ import { useCss } from 'react-use';
6
+ import { isString } from 'lodash';
5
7
  import { Gluejar } from '@charliewilco/gluejar'
6
8
  import { DeleteOutlined } from '@ant-design/icons';
7
9
  import './styles.css'
@@ -73,7 +75,11 @@ const AntdPasteImage = (props) => {
73
75
 
74
76
  return (
75
77
  <div id={id}
76
- className={className}
78
+ className={
79
+ isString(className) ?
80
+ className :
81
+ useCss(className)
82
+ }
77
83
  style={style}
78
84
  key={key}
79
85
  data-dash-is-loading={
@@ -125,7 +131,10 @@ AntdPasteImage.propTypes = {
125
131
  id: PropTypes.string,
126
132
 
127
133
  // css类名
128
- className: PropTypes.string,
134
+ className: PropTypes.oneOfType([
135
+ PropTypes.string,
136
+ PropTypes.object
137
+ ]),
129
138
 
130
139
  // 自定义css字典
131
140
  style: PropTypes.object,