amis 1.6.5-beta.3 → 1.8.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Schema.d.ts +3 -2
- package/lib/Schema.js +0 -1
- package/lib/Schema.js.map +2 -2
- package/lib/components/Alert2.js +4 -2
- package/lib/components/Alert2.js.map +2 -2
- package/lib/components/AssociatedSelection.d.ts +84 -84
- package/lib/components/Avatar.d.ts +20 -20
- package/lib/components/Breadcrumb.d.ts +130 -0
- package/lib/components/Breadcrumb.js +161 -0
- package/lib/components/Breadcrumb.js.map +13 -0
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/ChainedSelection.d.ts +84 -84
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/Collapse.d.ts +20 -20
- package/lib/components/CollapseGroup.d.ts +20 -20
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DateRangePicker.d.ts +2 -2
- package/lib/components/DateRangePicker.js +36 -45
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/GroupedSelection.d.ts +84 -84
- package/lib/components/Layout.d.ts +21 -21
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/PopUp.js +2 -1
- package/lib/components/PopUp.js.map +2 -2
- package/lib/components/Radios.d.ts +21 -21
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Selection.d.ts +84 -84
- package/lib/components/TableSelection.d.ts +84 -84
- package/lib/components/Tabs.d.ts +52 -23
- package/lib/components/Tabs.js +198 -46
- package/lib/components/Tabs.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +21 -20
- package/lib/components/TooltipWrapper.js +2 -2
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/Transfer.d.ts +84 -84
- package/lib/components/TransferDropDown.d.ts +84 -84
- package/lib/components/Tree.d.ts +84 -84
- package/lib/components/TreeSelection.d.ts +84 -84
- package/lib/components/calendar/Calendar.js +5 -0
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/DaysView.js.map +1 -1
- package/lib/components/icons.js +8 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +4 -2
- package/lib/components/index.js.map +2 -2
- package/lib/icons/cloud-upload.js +17 -0
- package/lib/icons/image.js +7 -0
- package/lib/icons/refresh.js +9 -0
- package/lib/icons/trash.js +10 -0
- package/lib/icons/upload.js +3 -8
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/locale/en-US.js +3 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +4 -2
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +1 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/Breadcrumb.d.ts +41 -6
- package/lib/renderers/Breadcrumb.js +23 -19
- package/lib/renderers/Breadcrumb.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/Form/ChainedSelect.d.ts +4 -1
- package/lib/renderers/Form/ChainedSelect.js +83 -34
- package/lib/renderers/Form/ChainedSelect.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +3 -0
- package/lib/renderers/Form/Checkbox.js +38 -1
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +4 -3
- package/lib/renderers/Form/Combo.js +81 -32
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +1 -1
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputCity.js +4 -1
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputColor.js +3 -1
- package/lib/renderers/Form/InputColor.js.map +2 -2
- package/lib/renderers/Form/InputDate.js +3 -1
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +3 -1
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputExcel.d.ts +4 -0
- package/lib/renderers/Form/InputExcel.js +33 -6
- package/lib/renderers/Form/InputExcel.js.map +2 -2
- package/lib/renderers/Form/InputFile.d.ts +8 -1
- package/lib/renderers/Form/InputFile.js +71 -42
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +4 -1
- package/lib/renderers/Form/InputImage.js +21 -9
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputRange.d.ts +27 -9
- package/lib/renderers/Form/InputRange.js +88 -23
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/InputSubForm.js +2 -1
- package/lib/renderers/Form/InputSubForm.js.map +2 -2
- package/lib/renderers/Form/InputTag.js +2 -1
- package/lib/renderers/Form/InputTag.js.map +2 -2
- package/lib/renderers/Form/MatrixCheckboxes.js +2 -1
- package/lib/renderers/Form/MatrixCheckboxes.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +9 -6
- package/lib/renderers/Form/NestedSelect.js +247 -130
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +2 -1
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Radios.js +2 -1
- package/lib/renderers/Form/Radios.js.map +2 -2
- package/lib/renderers/Form/Select.js +6 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Switch.d.ts +7 -6
- package/lib/renderers/Form/Switch.js +4 -1
- package/lib/renderers/Form/Switch.js.map +2 -2
- package/lib/renderers/Log.js +2 -1
- package/lib/renderers/Log.js.map +2 -2
- package/lib/renderers/PopOver.js +1 -1
- package/lib/renderers/PopOver.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +58 -5
- package/lib/renderers/Tabs.js +170 -58
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +104 -0
- package/lib/renderers/TooltipWrapper.js +59 -0
- package/lib/renderers/TooltipWrapper.js.map +13 -0
- package/lib/renderers/Video.d.ts +6 -0
- package/lib/renderers/Video.js +13 -6
- package/lib/renderers/Video.js.map +2 -2
- package/lib/store/form.js +4 -13
- package/lib/store/form.js.map +2 -2
- package/lib/store/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +742 -160
- package/lib/themes/ang.css +793 -163
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +757 -175
- package/lib/themes/antd.css +793 -163
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +1249 -667
- package/lib/themes/cxd.css +970 -321
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +742 -160
- package/lib/themes/dark.css +793 -163
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +1249 -667
- package/lib/themes/default.css +970 -321
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +16012 -736
- package/scss/_properties.scss +56 -2
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_breadcrumb.scss +90 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_city-area.scss +2 -0
- package/scss/components/_popup.scss +13 -3
- package/scss/components/_tabs.scss +629 -132
- package/scss/components/_tooltip.scss +72 -0
- package/scss/components/form/_file.scss +82 -24
- package/scss/components/form/_image.scss +30 -25
- package/scss/components/form/_number.scss +2 -0
- package/scss/components/form/_switch.scss +1 -3
- package/scss/themes/_cxd-colors.scss +47 -47
- package/scss/themes/_cxd-variables.scss +20 -0
- package/sdk/ang-ie11.css +879 -196
- package/sdk/ang.css +931 -200
- package/sdk/antd-ie11.css +951 -268
- package/sdk/antd.css +931 -200
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +1386 -703
- package/sdk/cxd.css +1107 -357
- package/sdk/dark-ie11.css +879 -196
- package/sdk/dark.css +931 -200
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +1386 -703
- package/sdk/sdk.css +1107 -357
- package/sdk/sdk.js +1260 -1248
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +5 -2
- package/src/components/Alert2.tsx +9 -3
- package/src/components/Breadcrumb.tsx +294 -0
- package/src/components/CityArea.tsx +3 -0
- package/src/components/DateRangePicker.tsx +40 -68
- package/src/components/PopUp.tsx +6 -5
- package/src/components/Range.tsx +7 -1
- package/src/components/Tabs.tsx +300 -54
- package/src/components/TooltipWrapper.tsx +4 -1
- package/src/components/calendar/Calendar.tsx +5 -0
- package/src/components/calendar/DaysView.tsx +2 -2
- package/src/components/icons.tsx +8 -0
- package/src/components/index.tsx +2 -0
- package/src/icons/cloud-upload.svg +22 -0
- package/src/icons/image.svg +1 -0
- package/src/icons/refresh.svg +7 -0
- package/src/icons/trash.svg +8 -0
- package/src/icons/upload.svg +4 -9
- package/src/index.tsx +1 -0
- package/src/locale/en-US.ts +3 -1
- package/src/locale/zh-CN.ts +4 -2
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/Breadcrumb.tsx +89 -45
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/Form/ChainedSelect.tsx +56 -12
- package/src/renderers/Form/Checkbox.tsx +30 -1
- package/src/renderers/Form/Combo.tsx +84 -26
- package/src/renderers/Form/InputCity.tsx +13 -1
- package/src/renderers/Form/InputColor.tsx +2 -0
- package/src/renderers/Form/InputDate.tsx +2 -0
- package/src/renderers/Form/InputDateRange.tsx +2 -0
- package/src/renderers/Form/InputExcel.tsx +27 -5
- package/src/renderers/Form/InputFile.tsx +167 -115
- package/src/renderers/Form/InputImage.tsx +61 -35
- package/src/renderers/Form/InputRange.tsx +95 -40
- package/src/renderers/Form/InputSubForm.tsx +2 -1
- package/src/renderers/Form/InputTag.tsx +3 -1
- package/src/renderers/Form/MatrixCheckboxes.tsx +3 -1
- package/src/renderers/Form/NestedSelect.tsx +75 -26
- package/src/renderers/Form/Options.tsx +3 -1
- package/src/renderers/Form/Radios.tsx +3 -1
- package/src/renderers/Form/Select.tsx +6 -2
- package/src/renderers/Form/Switch.tsx +16 -9
- package/src/renderers/Log.tsx +2 -1
- package/src/renderers/PopOver.tsx +1 -1
- package/src/renderers/Tabs.tsx +254 -93
- package/src/renderers/TooltipWrapper.tsx +219 -0
- package/src/renderers/Video.tsx +21 -6
- package/src/store/form.ts +0 -9
- package/src/store/table.ts +1 -1
@@ -1,5 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import {findDOMNode} from 'react-dom';
|
3
|
+
import cloneDeep from 'lodash/cloneDeep';
|
3
4
|
import {
|
4
5
|
FormItem,
|
5
6
|
FormControlProps,
|
@@ -9,6 +10,7 @@ import {
|
|
9
10
|
import {Schema, Action, Api} from '../../types';
|
10
11
|
import {ComboStore, IComboStore} from '../../store/combo';
|
11
12
|
import {default as CTabs, Tab} from '../../components/Tabs';
|
13
|
+
import Button from '../../components/Button';
|
12
14
|
|
13
15
|
import {
|
14
16
|
guid,
|
@@ -255,6 +257,8 @@ export interface ComboControlSchema extends FormBaseControl {
|
|
255
257
|
};
|
256
258
|
}
|
257
259
|
|
260
|
+
export type ComboRendererEvent = 'add' | 'delete' | 'tabsChange';
|
261
|
+
|
258
262
|
function pickVars(vars: any, fields: Array<string>) {
|
259
263
|
return fields.reduce((data: any, key: string) => {
|
260
264
|
data[key] = resolveVariable(key, vars);
|
@@ -291,6 +295,8 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
291
295
|
| 'tabsMode'
|
292
296
|
| 'tabsStyle'
|
293
297
|
| 'placeholder'
|
298
|
+
| 'itemClassName'
|
299
|
+
| 'itemsWrapperClassName'
|
294
300
|
> = {
|
295
301
|
minLength: 0,
|
296
302
|
maxLength: 0,
|
@@ -307,7 +313,9 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
307
313
|
deleteIcon: '',
|
308
314
|
tabsMode: false,
|
309
315
|
tabsStyle: '',
|
310
|
-
placeholder: 'placeholder.empty'
|
316
|
+
placeholder: 'placeholder.empty',
|
317
|
+
itemClassName: '',
|
318
|
+
itemsWrapperClassName: ''
|
311
319
|
};
|
312
320
|
static propsList: Array<string> = [
|
313
321
|
'minLength',
|
@@ -334,7 +342,9 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
334
342
|
'items',
|
335
343
|
'conditions',
|
336
344
|
'messages',
|
337
|
-
'formStore'
|
345
|
+
'formStore',
|
346
|
+
'itemClassName',
|
347
|
+
'itemsWrapperClassName'
|
338
348
|
];
|
339
349
|
|
340
350
|
subForms: Array<any> = [];
|
@@ -469,9 +479,17 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
469
479
|
this.props.onChange(value, submitOnChange, true);
|
470
480
|
}
|
471
481
|
|
472
|
-
addItem() {
|
473
|
-
const {
|
474
|
-
|
482
|
+
async addItem() {
|
483
|
+
const {
|
484
|
+
flat,
|
485
|
+
joinValues,
|
486
|
+
delimiter,
|
487
|
+
scaffold,
|
488
|
+
disabled,
|
489
|
+
submitOnChange,
|
490
|
+
data,
|
491
|
+
dispatchEvent
|
492
|
+
} = this.props;
|
475
493
|
|
476
494
|
if (disabled) {
|
477
495
|
return;
|
@@ -479,6 +497,18 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
479
497
|
|
480
498
|
let value = this.getValueAsArray();
|
481
499
|
|
500
|
+
const rendererEvent = await dispatchEvent(
|
501
|
+
'add',
|
502
|
+
createObject(data, {
|
503
|
+
value:
|
504
|
+
flat && joinValues ? value.join(delimiter || ',') : cloneDeep(value)
|
505
|
+
})
|
506
|
+
);
|
507
|
+
|
508
|
+
if (rendererEvent?.prevented) {
|
509
|
+
return;
|
510
|
+
}
|
511
|
+
|
482
512
|
value.push(
|
483
513
|
flat
|
484
514
|
? scaffold || ''
|
@@ -505,7 +535,8 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
505
535
|
deleteConfirmText,
|
506
536
|
data,
|
507
537
|
env,
|
508
|
-
translate: __
|
538
|
+
translate: __,
|
539
|
+
dispatchEvent
|
509
540
|
} = this.props;
|
510
541
|
|
511
542
|
if (disabled) {
|
@@ -515,6 +546,19 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
515
546
|
let value = this.getValueAsArray();
|
516
547
|
const ctx = createObject(data, value[key]);
|
517
548
|
|
549
|
+
const rendererEvent = await dispatchEvent(
|
550
|
+
'delete',
|
551
|
+
createObject(data, {
|
552
|
+
key,
|
553
|
+
value:
|
554
|
+
flat && joinValues ? value.join(delimiter || ',') : cloneDeep(value)
|
555
|
+
})
|
556
|
+
);
|
557
|
+
|
558
|
+
if (rendererEvent?.prevented) {
|
559
|
+
return;
|
560
|
+
}
|
561
|
+
|
518
562
|
if (isEffectiveApi(deleteApi, ctx)) {
|
519
563
|
const confirmed = await env.confirm(
|
520
564
|
deleteConfirmText ? filter(deleteConfirmText, ctx) : __('deleteConfirm')
|
@@ -866,8 +910,19 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
866
910
|
}
|
867
911
|
|
868
912
|
@autobind
|
869
|
-
handleTabSelect(key: number) {
|
870
|
-
const {store} = this.props;
|
913
|
+
async handleTabSelect(key: number) {
|
914
|
+
const {store, data, dispatchEvent} = this.props;
|
915
|
+
|
916
|
+
const rendererEvent = await dispatchEvent(
|
917
|
+
'tabsChange',
|
918
|
+
createObject(data, {
|
919
|
+
key
|
920
|
+
})
|
921
|
+
);
|
922
|
+
|
923
|
+
if (rendererEvent?.prevented) {
|
924
|
+
return;
|
925
|
+
}
|
871
926
|
|
872
927
|
store.setActiveKey(key);
|
873
928
|
}
|
@@ -1138,7 +1193,9 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1138
1193
|
lazyLoad,
|
1139
1194
|
changeImmediately,
|
1140
1195
|
placeholder,
|
1141
|
-
translate: __
|
1196
|
+
translate: __,
|
1197
|
+
itemClassName,
|
1198
|
+
itemsWrapperClassName
|
1142
1199
|
} = this.props;
|
1143
1200
|
|
1144
1201
|
let items = this.props.items;
|
@@ -1165,7 +1222,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1165
1222
|
: ''
|
1166
1223
|
)}
|
1167
1224
|
>
|
1168
|
-
<div className={cx(`Combo-items
|
1225
|
+
<div className={cx(`Combo-items`, itemsWrapperClassName)}>
|
1169
1226
|
{Array.isArray(value) && value.length ? (
|
1170
1227
|
value.map((value, index, thelist) => {
|
1171
1228
|
let delBtn: any = null;
|
@@ -1176,21 +1233,20 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1176
1233
|
evalExpression(itemRemovableOn, value) !== false)
|
1177
1234
|
) {
|
1178
1235
|
delBtn = (
|
1179
|
-
<
|
1180
|
-
onClick={this.removeItem.bind(this, index)}
|
1236
|
+
<Button
|
1181
1237
|
key="remove"
|
1182
|
-
className={cx(
|
1183
|
-
|
1184
|
-
)}
|
1185
|
-
|
1186
|
-
|
1238
|
+
className={cx('Combo-delBtn')}
|
1239
|
+
disabled={!store.removable}
|
1240
|
+
tooltip={__('delete')}
|
1241
|
+
tooltipPlacement="bottom"
|
1242
|
+
onClick={this.removeItem.bind(this, index)}
|
1187
1243
|
>
|
1188
1244
|
{deleteIcon ? (
|
1189
1245
|
<i className={deleteIcon} />
|
1190
1246
|
) : (
|
1191
1247
|
<Icon icon="status-close" className="icon" />
|
1192
1248
|
)}
|
1193
|
-
</
|
1249
|
+
</Button>
|
1194
1250
|
);
|
1195
1251
|
}
|
1196
1252
|
|
@@ -1214,7 +1270,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1214
1270
|
|
1215
1271
|
return (
|
1216
1272
|
<div
|
1217
|
-
className={cx(`Combo-item
|
1273
|
+
className={cx(`Combo-item`, itemClassName)}
|
1218
1274
|
key={this.keys[index] || (this.keys[index] = guid())}
|
1219
1275
|
>
|
1220
1276
|
{!disabled && draggable && thelist.length > 1 ? (
|
@@ -1315,15 +1371,16 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1315
1371
|
}
|
1316
1372
|
)
|
1317
1373
|
) : (
|
1318
|
-
<
|
1319
|
-
|
1374
|
+
<Button
|
1375
|
+
level="default"
|
1376
|
+
className={cx(`Combo-addBtn`, addButtonClassName)}
|
1377
|
+
block
|
1378
|
+
tooltip={__('Combo.add')}
|
1320
1379
|
onClick={this.addItem}
|
1321
|
-
className={cx(`Button Combo-addBtn`, addButtonClassName)}
|
1322
|
-
data-tooltip={__('Combo.add')}
|
1323
1380
|
>
|
1324
1381
|
{addIcon ? <Icon icon="plus" className="icon" /> : null}
|
1325
1382
|
<span>{__(addButtonText || 'Combo.add')}</span>
|
1326
|
-
</
|
1383
|
+
</Button>
|
1327
1384
|
)
|
1328
1385
|
) : null}
|
1329
1386
|
{draggable ? (
|
@@ -1352,7 +1409,8 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1352
1409
|
disabled,
|
1353
1410
|
typeSwitchable,
|
1354
1411
|
nullable,
|
1355
|
-
translate: __
|
1412
|
+
translate: __,
|
1413
|
+
itemClassName
|
1356
1414
|
} = this.props;
|
1357
1415
|
|
1358
1416
|
let items = this.props.items;
|
@@ -1373,7 +1431,7 @@ export default class ComboControl extends React.Component<ComboProps> {
|
|
1373
1431
|
disabled ? 'is-disabled' : ''
|
1374
1432
|
)}
|
1375
1433
|
>
|
1376
|
-
<div className={cx(`Combo-item
|
1434
|
+
<div className={cx(`Combo-item`, itemClassName)}>
|
1377
1435
|
{condition && typeSwitchable !== false ? (
|
1378
1436
|
<div className={cx('Combo-itemTag')}>
|
1379
1437
|
<label>{__('Combo.type')}</label>
|
@@ -299,7 +299,16 @@ export class CityPicker extends React.Component<
|
|
299
299
|
const {onChange, allowStreet, joinValues, extractValue, delimiter} =
|
300
300
|
this.props;
|
301
301
|
|
302
|
-
const {
|
302
|
+
const {
|
303
|
+
code,
|
304
|
+
province,
|
305
|
+
city,
|
306
|
+
district,
|
307
|
+
street,
|
308
|
+
provinceCode,
|
309
|
+
cityCode,
|
310
|
+
districtCode
|
311
|
+
} = this.state;
|
303
312
|
|
304
313
|
if (typeof extractValue === 'undefined' ? joinValues : extractValue) {
|
305
314
|
code
|
@@ -312,8 +321,11 @@ export class CityPicker extends React.Component<
|
|
312
321
|
} else {
|
313
322
|
onChange({
|
314
323
|
code,
|
324
|
+
provinceCode,
|
315
325
|
province,
|
326
|
+
cityCode,
|
316
327
|
city,
|
328
|
+
districtCode,
|
317
329
|
district,
|
318
330
|
street
|
319
331
|
});
|
@@ -215,6 +215,8 @@ export default class DateRangeControl extends React.Component<DateRangeProps> {
|
|
215
215
|
popOverContainer={
|
216
216
|
mobileUI && env && env.getModalContainer
|
217
217
|
? env.getModalContainer
|
218
|
+
: mobileUI
|
219
|
+
? undefined
|
218
220
|
: rest.popOverContainer
|
219
221
|
}
|
220
222
|
data={data}
|
@@ -2,7 +2,7 @@ import React, {Suspense} from 'react';
|
|
2
2
|
import Dropzone from 'react-dropzone';
|
3
3
|
import {FileRejection} from 'react-dropzone';
|
4
4
|
import {Icon} from '../../components/icons';
|
5
|
-
import {autobind} from '../../utils/helper';
|
5
|
+
import {autobind, createObject} from '../../utils/helper';
|
6
6
|
import {FormItem, FormControlProps, FormBaseControl} from './Item';
|
7
7
|
|
8
8
|
/**
|
@@ -47,6 +47,8 @@ export interface ExcelControlState {
|
|
47
47
|
filename: string;
|
48
48
|
}
|
49
49
|
|
50
|
+
export type InputExcelRendererEvent = 'change';
|
51
|
+
export type InputExcelRendererAction = 'clear';
|
50
52
|
export default class ExcelControl extends React.PureComponent<
|
51
53
|
ExcelProps,
|
52
54
|
ExcelControlState
|
@@ -66,7 +68,7 @@ export default class ExcelControl extends React.PureComponent<
|
|
66
68
|
|
67
69
|
@autobind
|
68
70
|
handleDrop(files: File[]) {
|
69
|
-
const {allSheets, onChange} = this.props;
|
71
|
+
const {allSheets, onChange, dispatchEvent, data} = this.props;
|
70
72
|
const excel = files[0];
|
71
73
|
const reader = new FileReader();
|
72
74
|
reader.readAsArrayBuffer(excel);
|
@@ -76,25 +78,38 @@ export default class ExcelControl extends React.PureComponent<
|
|
76
78
|
this.ExcelJS = ExcelJS;
|
77
79
|
const workbook = new ExcelJS.Workbook();
|
78
80
|
await workbook.xlsx.load(reader.result);
|
81
|
+
let sheetsResult: any[] = [];
|
79
82
|
if (allSheets) {
|
80
|
-
const sheetsResult: any[] = [];
|
81
83
|
workbook.eachSheet((worksheet: any) => {
|
82
84
|
sheetsResult.push({
|
83
85
|
sheetName: worksheet.name,
|
84
86
|
data: this.readWorksheet(worksheet)
|
85
87
|
});
|
86
|
-
onChange(sheetsResult);
|
87
88
|
});
|
88
89
|
} else {
|
89
90
|
const worksheet = workbook.worksheets[0];
|
90
|
-
|
91
|
+
sheetsResult = this.readWorksheet(worksheet);
|
91
92
|
}
|
93
|
+
const dispatcher = await this.dispatchEvent('change', sheetsResult);
|
94
|
+
if (dispatcher?.prevented) {
|
95
|
+
return;
|
96
|
+
}
|
97
|
+
onChange(sheetsResult);
|
92
98
|
this.setState({filename: files[0].name});
|
93
99
|
});
|
94
100
|
}
|
95
101
|
};
|
96
102
|
}
|
97
103
|
|
104
|
+
async dispatchEvent(eventName: string, eventData?: Record<string, any>) {
|
105
|
+
const {dispatchEvent, data} = this.props;
|
106
|
+
return await dispatchEvent(
|
107
|
+
eventName,
|
108
|
+
createObject(data, {
|
109
|
+
value: eventData
|
110
|
+
})
|
111
|
+
);
|
112
|
+
}
|
98
113
|
/**
|
99
114
|
* 读取单个 sheet 的内容
|
100
115
|
*/
|
@@ -145,6 +160,13 @@ export default class ExcelControl extends React.PureComponent<
|
|
145
160
|
}
|
146
161
|
}
|
147
162
|
|
163
|
+
doAction(action: any, data: object, throwErrors: boolean) {
|
164
|
+
const {onChange} = this.props;
|
165
|
+
if (action.actionType === 'clear') {
|
166
|
+
onChange('');
|
167
|
+
}
|
168
|
+
}
|
169
|
+
|
148
170
|
render() {
|
149
171
|
const {
|
150
172
|
className,
|