amis 1.8.0-beta.5 → 1.8.0-beta.9
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 +9 -2
- package/lib/Schema.js.map +1 -1
- package/lib/actions/PageAction.d.ts +32 -0
- package/lib/actions/PageAction.js +72 -0
- package/lib/actions/PageAction.js.map +13 -0
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +1 -0
- package/lib/actions/index.js.map +2 -2
- package/lib/components/CalendarMobile.d.ts +84 -84
- package/lib/components/Cascader.d.ts +2 -0
- package/lib/components/Cascader.js +28 -12
- package/lib/components/Cascader.js.map +2 -2
- package/lib/components/Checkbox.js +2 -2
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/Collapse.d.ts +20 -20
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +5 -5
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/Drawer.js +1 -1
- package/lib/components/Drawer.js.map +2 -2
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/Modal.js +1 -1
- package/lib/components/Modal.js.map +2 -2
- package/lib/components/Overlay.d.ts +1 -0
- package/lib/components/Overlay.js +4 -3
- package/lib/components/Overlay.js.map +2 -2
- package/lib/components/PullRefresh.d.ts +86 -0
- package/lib/components/PullRefresh.js +135 -0
- package/lib/components/PullRefresh.js.map +13 -0
- package/lib/components/Spinner.d.ts +200 -107
- package/lib/components/Spinner.js +30 -26
- package/lib/components/Spinner.js.map +2 -2
- package/lib/components/Tooltip.d.ts +4 -0
- package/lib/components/Tooltip.js +6 -4
- package/lib/components/Tooltip.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +60 -4
- package/lib/components/TooltipWrapper.js +27 -8
- 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 +87 -85
- package/lib/components/Tree.js +13 -5
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/TreeSelection.d.ts +84 -84
- package/lib/components/calendar/TimeView.d.ts +1 -0
- package/lib/components/calendar/TimeView.js +7 -0
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/condition-builder/Expression.d.ts +1 -0
- package/lib/components/condition-builder/Expression.js +4 -4
- package/lib/components/condition-builder/Expression.js.map +2 -2
- package/lib/components/condition-builder/Field.d.ts +1 -0
- package/lib/components/condition-builder/Field.js +3 -2
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Group.d.ts +1 -0
- package/lib/components/condition-builder/Group.js +2 -2
- package/lib/components/condition-builder/Group.js.map +2 -2
- package/lib/components/condition-builder/GroupOrItem.d.ts +1 -0
- package/lib/components/condition-builder/GroupOrItem.js +2 -2
- package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
- package/lib/components/condition-builder/InputSwitch.d.ts +2 -1
- package/lib/components/condition-builder/InputSwitch.js +2 -2
- package/lib/components/condition-builder/InputSwitch.js.map +2 -2
- package/lib/components/condition-builder/Item.d.ts +1 -0
- package/lib/components/condition-builder/Item.js +9 -8
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/condition-builder/Value.d.ts +1 -0
- package/lib/components/condition-builder/Value.js +5 -5
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/index.d.ts +1 -0
- package/lib/components/condition-builder/index.js +2 -2
- package/lib/components/condition-builder/index.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +87 -85
- package/lib/components/formula/Editor.js +10 -6
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.js +3 -1
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/locale/de-DE.js +5 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +5 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +5 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/CRUD.js +1 -1
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +2 -1
- package/lib/renderers/Form/Combo.js +51 -14
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +1 -0
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputDate.js +10 -3
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +12 -3
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +13 -5
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +12 -4
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputMonthRange.js +5 -1
- package/lib/renderers/Form/InputMonthRange.js.map +2 -2
- package/lib/renderers/Form/InputText.js +8 -4
- package/lib/renderers/Form/InputText.js.map +2 -2
- package/lib/renderers/Form/InputTree.d.ts +5 -0
- package/lib/renderers/Form/InputTree.js +51 -2
- package/lib/renderers/Form/InputTree.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +68 -70
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +4 -0
- package/lib/renderers/Form/NestedSelect.js +14 -5
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +61 -27
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.js +4 -2
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +11 -2
- package/lib/renderers/Form/TreeSelect.js +56 -10
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +3 -3
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Nav.d.ts +82 -67
- package/lib/renderers/Nav.js +47 -11
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.d.ts +20 -0
- package/lib/renderers/Page.js +51 -14
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Service.d.ts +2 -0
- package/lib/renderers/Service.js +52 -20
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Spinner.d.ts +58 -2
- package/lib/renderers/Spinner.js +8 -1
- package/lib/renderers/Spinner.js.map +2 -2
- package/lib/renderers/Table/ColumnToggler.d.ts +4 -0
- package/lib/renderers/Table/ColumnToggler.js +11 -6
- package/lib/renderers/Table/ColumnToggler.js.map +2 -2
- package/lib/renderers/Table/TableCell.js +27 -1
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +1 -0
- package/lib/renderers/Table/index.js +19 -11
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +31 -6
- package/lib/renderers/TooltipWrapper.js +18 -8
- package/lib/renderers/TooltipWrapper.js.map +2 -2
- package/lib/renderers/Wizard.js +23 -14
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/store/crud.js +23 -13
- package/lib/store/crud.js.map +2 -2
- package/lib/themes/ang-ie11.css +313 -100
- package/lib/themes/ang.css +322 -103
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +429 -216
- package/lib/themes/antd.css +323 -104
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +424 -211
- package/lib/themes/cxd.css +324 -105
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +313 -100
- package/lib/themes/dark.css +322 -103
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +424 -211
- package/lib/themes/default.css +324 -105
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +3 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/ColorScale.d.ts +19 -0
- package/lib/utils/ColorScale.js +104 -0
- package/lib/utils/ColorScale.js.map +13 -0
- package/lib/utils/api.js +20 -4
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/dom.d.ts +1 -1
- package/lib/utils/dom.js +7 -5
- package/lib/utils/dom.js.map +2 -2
- package/package.json +3 -2
- package/schema.json +29645 -29137
- package/scss/_properties.scss +33 -15
- package/scss/components/_column-toggler.scss +21 -11
- package/scss/components/_formula.scss +1 -1
- package/scss/components/_nav.scss +51 -6
- package/scss/components/_pull-refresh.scss +25 -0
- package/scss/components/_spinner.scss +134 -56
- package/scss/components/_tooltip.scss +4 -9
- package/scss/components/form/_checks.scss +1 -0
- package/scss/components/form/_combo.scss +13 -1
- package/scss/components/form/_date-range.scss +11 -2
- package/scss/components/form/_date.scss +11 -0
- package/scss/components/form/_file.scss +4 -0
- package/scss/components/form/_form.scss +15 -8
- package/scss/components/form/_transfer.scss +3 -2
- package/scss/themes/_antd-variables.scss +1 -1
- package/scss/themes/_common.scss +1 -0
- package/scss/themes/_cxd-variables.scss +2 -2
- package/sdk/ang-ie11.css +286 -80
- package/sdk/ang.css +294 -82
- package/sdk/antd-ie11.css +402 -196
- package/sdk/antd.css +295 -83
- 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 +397 -191
- package/sdk/cxd.css +296 -84
- package/sdk/dark-ie11.css +286 -80
- package/sdk/dark.css +294 -82
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +5 -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 +397 -191
- package/sdk/sdk.css +296 -84
- package/sdk/sdk.js +1300 -1260
- 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 +10 -0
- package/src/actions/PageAction.ts +62 -0
- package/src/actions/index.ts +1 -0
- package/src/components/Cascader.tsx +37 -11
- package/src/components/Checkbox.tsx +1 -1
- package/src/components/DatePicker.tsx +7 -5
- package/src/components/Drawer.tsx +1 -0
- package/src/components/Modal.tsx +1 -0
- package/src/components/Overlay.tsx +6 -3
- package/src/components/PullRefresh.tsx +197 -0
- package/src/components/Spinner.tsx +77 -42
- package/src/components/Tooltip.tsx +12 -3
- package/src/components/TooltipWrapper.tsx +120 -33
- package/src/components/Tree.tsx +19 -5
- package/src/components/calendar/TimeView.tsx +12 -0
- package/src/components/condition-builder/Expression.tsx +6 -1
- package/src/components/condition-builder/Field.tsx +5 -1
- package/src/components/condition-builder/Group.tsx +4 -1
- package/src/components/condition-builder/GroupOrItem.tsx +4 -1
- package/src/components/condition-builder/InputSwitch.tsx +4 -1
- package/src/components/condition-builder/Item.tsx +28 -4
- package/src/components/condition-builder/Value.tsx +7 -1
- package/src/components/condition-builder/index.tsx +4 -2
- package/src/components/formula/Editor.tsx +20 -15
- package/src/components/formula/Picker.tsx +9 -5
- package/src/locale/de-DE.ts +5 -1
- package/src/locale/en-US.ts +5 -1
- package/src/locale/zh-CN.ts +5 -1
- package/src/renderers/CRUD.tsx +1 -1
- package/src/renderers/Form/Combo.tsx +102 -46
- package/src/renderers/Form/InputDate.tsx +18 -4
- package/src/renderers/Form/InputDateRange.tsx +19 -2
- package/src/renderers/Form/InputFile.tsx +16 -4
- package/src/renderers/Form/InputImage.tsx +15 -3
- package/src/renderers/Form/InputMonthRange.tsx +7 -1
- package/src/renderers/Form/InputText.tsx +14 -2
- package/src/renderers/Form/InputTree.tsx +40 -2
- package/src/renderers/Form/Item.tsx +6 -0
- package/src/renderers/Form/NestedSelect.tsx +23 -4
- package/src/renderers/Form/Options.tsx +26 -7
- package/src/renderers/Form/Select.tsx +5 -3
- package/src/renderers/Form/TreeSelect.tsx +47 -9
- package/src/renderers/Form/wrapControl.tsx +2 -2
- package/src/renderers/Nav.tsx +230 -32
- package/src/renderers/Page.tsx +89 -33
- package/src/renderers/Service.tsx +62 -27
- package/src/renderers/Spinner.tsx +85 -3
- package/src/renderers/Table/ColumnToggler.tsx +36 -11
- package/src/renderers/Table/TableCell.tsx +39 -1
- package/src/renderers/Table/index.tsx +34 -21
- package/src/renderers/TooltipWrapper.tsx +64 -28
- package/src/renderers/Wizard.tsx +36 -25
- package/src/store/crud.ts +10 -0
- package/src/types.ts +4 -0
- package/src/utils/ColorScale.ts +138 -0
- package/src/utils/api.ts +26 -4
- package/src/utils/dom.tsx +7 -6
@@ -1,14 +1,96 @@
|
|
1
1
|
import Spinner from '../components/Spinner';
|
2
2
|
import {Renderer, RendererProps} from '../factory';
|
3
3
|
import React from 'react';
|
4
|
+
import {BaseSchema, SchemaCollection} from '../Schema';
|
4
5
|
|
5
|
-
interface
|
6
|
+
export interface SpinnerSchema extends BaseSchema {
|
7
|
+
/**
|
8
|
+
* 组件类型
|
9
|
+
*/
|
10
|
+
type: 'spinner';
|
11
|
+
|
12
|
+
/**
|
13
|
+
* 控制Spinner显示与隐藏
|
14
|
+
*/
|
15
|
+
show: boolean;
|
16
|
+
|
17
|
+
/**
|
18
|
+
* 自定义spinner的class
|
19
|
+
*/
|
20
|
+
className?: string;
|
21
|
+
|
22
|
+
/**
|
23
|
+
* spin图标位置包裹元素的自定义class
|
24
|
+
*/
|
25
|
+
spinnerClassName?: string;
|
26
|
+
|
27
|
+
/**
|
28
|
+
* 作为容器使用时最外层元素的class
|
29
|
+
*/
|
30
|
+
spinnerWrapClassName?: string;
|
31
|
+
|
32
|
+
/**
|
33
|
+
* @deprecated 已废弃,没有作用
|
34
|
+
*/
|
35
|
+
mode?: string;
|
36
|
+
|
37
|
+
/**
|
38
|
+
* spinner Icon 大小
|
39
|
+
*/
|
40
|
+
size?: 'sm' | 'lg' | '';
|
41
|
+
|
42
|
+
/**
|
43
|
+
* 自定义icon
|
44
|
+
*/
|
45
|
+
icon?: string;
|
46
|
+
|
47
|
+
/**
|
48
|
+
* spinner文案
|
49
|
+
*/
|
50
|
+
tip?: string;
|
51
|
+
|
52
|
+
/**
|
53
|
+
* spinner文案位置
|
54
|
+
*/
|
55
|
+
tipPlacement?: 'top' | 'right' | 'bottom' | 'left';
|
56
|
+
|
57
|
+
/**
|
58
|
+
* 延迟显示
|
59
|
+
*/
|
60
|
+
delay?: number;
|
61
|
+
|
62
|
+
/**
|
63
|
+
* 是否显示遮罩层
|
64
|
+
*/
|
65
|
+
overlay?: boolean;
|
66
|
+
|
67
|
+
/**
|
68
|
+
* 作为容器使用时内容
|
69
|
+
*/
|
70
|
+
body?: SchemaCollection;
|
71
|
+
}
|
72
|
+
|
73
|
+
interface SpinnerRenderProps
|
74
|
+
extends RendererProps,
|
75
|
+
Omit<SpinnerSchema, 'className'> {}
|
6
76
|
|
7
77
|
@Renderer({
|
8
78
|
type: 'spinner'
|
9
79
|
})
|
10
|
-
export class SpinnerRenderer extends React.Component<
|
80
|
+
export class SpinnerRenderer extends React.Component<SpinnerRenderProps> {
|
81
|
+
renderBody() {
|
82
|
+
const {body, render} = this.props;
|
83
|
+
return body ? render('body', body) : null;
|
84
|
+
}
|
11
85
|
render() {
|
12
|
-
|
86
|
+
const {classnames: cx, spinnerWrapClassName, body, ...rest} = this.props;
|
87
|
+
return body ? (
|
88
|
+
<div className={cx(`Spinner-wrap`, spinnerWrapClassName)}>
|
89
|
+
<Spinner {...rest}></Spinner>
|
90
|
+
{this.renderBody()}
|
91
|
+
</div>
|
92
|
+
) : (
|
93
|
+
<Spinner {...rest}></Spinner>
|
94
|
+
);
|
13
95
|
}
|
14
96
|
}
|
@@ -13,6 +13,8 @@ import type {TooltipObject} from '../../components/TooltipWrapper';
|
|
13
13
|
import {noop, autobind} from '../../utils/helper';
|
14
14
|
import {filter} from '../../utils/tpl';
|
15
15
|
import {Icon} from '../../components/icons';
|
16
|
+
import {getIcon} from '../../components/icons';
|
17
|
+
import {generateIcon} from '../../utils/icon';
|
16
18
|
import {RootClose} from '../../utils/RootClose';
|
17
19
|
import {IColumn} from '../../store/table';
|
18
20
|
|
@@ -112,6 +114,11 @@ export interface ColumnTogglerProps extends RendererProps {
|
|
112
114
|
*/
|
113
115
|
columns: Array<IColumn>;
|
114
116
|
|
117
|
+
/**
|
118
|
+
* 弹窗底部按钮大小
|
119
|
+
*/
|
120
|
+
footerBtnSize?: 'xs' | 'sm' | 'md' | 'lg';
|
121
|
+
|
115
122
|
onColumnToggle: (columns: Array<IColumn>) => void;
|
116
123
|
modalContainer?: () => HTMLElement;
|
117
124
|
}
|
@@ -326,7 +333,8 @@ export default class ColumnToggler extends React.Component<
|
|
326
333
|
modalContainer,
|
327
334
|
draggable,
|
328
335
|
overlay,
|
329
|
-
translate: __
|
336
|
+
translate: __,
|
337
|
+
footerBtnSize
|
330
338
|
} = this.props;
|
331
339
|
|
332
340
|
const {enableSorting, tempColumns} = this.state;
|
@@ -372,13 +380,14 @@ export default class ColumnToggler extends React.Component<
|
|
372
380
|
<a className={cx('ColumnToggler-menuItem-dragBar')}>
|
373
381
|
<Icon icon="drag-bar" className={cx('icon')} />
|
374
382
|
</a>
|
375
|
-
<span>
|
376
|
-
{column.label
|
383
|
+
<span className={cx('ColumnToggler-menuItem-label')}>
|
384
|
+
<span>{column.label || '-'}</span>
|
377
385
|
</span>
|
378
386
|
</>
|
379
387
|
) : (
|
380
388
|
<Checkbox
|
381
389
|
size="sm"
|
390
|
+
labelClassName={cx('ColumnToggler-menuItem-label')}
|
382
391
|
classPrefix={ns}
|
383
392
|
checked={column.toggled}
|
384
393
|
disabled={!column.toggable || enableSorting}
|
@@ -388,9 +397,7 @@ export default class ColumnToggler extends React.Component<
|
|
388
397
|
index
|
389
398
|
)}
|
390
399
|
>
|
391
|
-
<span>
|
392
|
-
{column.label ? render('tpl', column.label) : null}
|
393
|
-
</span>
|
400
|
+
<span>{column.label || '-'}</span>
|
394
401
|
</Checkbox>
|
395
402
|
)}
|
396
403
|
</li>
|
@@ -430,10 +437,18 @@ export default class ColumnToggler extends React.Component<
|
|
430
437
|
</Button>
|
431
438
|
</div>
|
432
439
|
<div>
|
433
|
-
<Button
|
440
|
+
<Button
|
441
|
+
size={footerBtnSize}
|
442
|
+
className="mr-3"
|
443
|
+
onClick={this.close}
|
444
|
+
>
|
434
445
|
{__('cancel')}
|
435
446
|
</Button>
|
436
|
-
<Button
|
447
|
+
<Button
|
448
|
+
size={footerBtnSize}
|
449
|
+
level="primary"
|
450
|
+
onClick={this.onConfirm}
|
451
|
+
>
|
437
452
|
{__('confirm')}
|
438
453
|
</Button>
|
439
454
|
</div>
|
@@ -492,11 +507,21 @@ export default class ColumnToggler extends React.Component<
|
|
492
507
|
>
|
493
508
|
{icon ? (
|
494
509
|
typeof icon === 'string' ? (
|
495
|
-
|
510
|
+
getIcon(icon!) ? (
|
511
|
+
<Icon icon={icon} className={cx('icon', {'m-r-xs': !!label})} />
|
512
|
+
) : (
|
513
|
+
generateIcon(cx, icon, label ? 'm-r-xs' : '')
|
514
|
+
)
|
515
|
+
) : React.isValidElement(icon) ? (
|
516
|
+
React.cloneElement(icon, {
|
517
|
+
className: cx({'m-r-xs': !!label})
|
518
|
+
})
|
496
519
|
) : (
|
497
|
-
icon
|
520
|
+
<Icon icon="columns" className="icon m-r-none" />
|
498
521
|
)
|
499
|
-
) :
|
522
|
+
) : (
|
523
|
+
<Icon icon="columns" className="icon m-r-none" />
|
524
|
+
)}
|
500
525
|
{typeof label === 'string' ? filter(label, data) : label}
|
501
526
|
{hideExpandIcon || draggable ? null : (
|
502
527
|
<span className={cx('ColumnToggler-caret')}>
|
@@ -7,6 +7,11 @@ import {observer} from 'mobx-react';
|
|
7
7
|
import omit = require('lodash/omit');
|
8
8
|
import {filter} from '../../utils/tpl';
|
9
9
|
import {Badge} from '../../components/Badge';
|
10
|
+
import ColorScale from '../../utils/ColorScale';
|
11
|
+
import {
|
12
|
+
isPureVariable,
|
13
|
+
resolveVariableAndFilter
|
14
|
+
} from '../../utils/tpl-builtin';
|
10
15
|
|
11
16
|
export interface TableCellProps extends RendererProps {
|
12
17
|
wrapperComponent?: React.ReactType;
|
@@ -34,7 +39,7 @@ export class TableCell extends React.Component<RendererProps> {
|
|
34
39
|
className,
|
35
40
|
classNameExpr,
|
36
41
|
render,
|
37
|
-
style,
|
42
|
+
style = {},
|
38
43
|
wrapperComponent: Component,
|
39
44
|
column,
|
40
45
|
value,
|
@@ -106,6 +111,39 @@ export class TableCell extends React.Component<RendererProps> {
|
|
106
111
|
};
|
107
112
|
}
|
108
113
|
|
114
|
+
if (column.backgroundScale) {
|
115
|
+
const backgroundScale = column.backgroundScale;
|
116
|
+
let min = backgroundScale.min;
|
117
|
+
let max = backgroundScale.max;
|
118
|
+
|
119
|
+
if (isPureVariable(min)) {
|
120
|
+
min = resolveVariableAndFilter(min, data, '| raw');
|
121
|
+
}
|
122
|
+
if (isPureVariable(max)) {
|
123
|
+
max = resolveVariableAndFilter(max, data, '| raw');
|
124
|
+
}
|
125
|
+
|
126
|
+
if (typeof min === 'undefined') {
|
127
|
+
min = Math.min(...data.rows.map((r: any) => r[column.name]));
|
128
|
+
}
|
129
|
+
if (typeof max === 'undefined') {
|
130
|
+
max = Math.max(...data.rows.map((r: any) => r[column.name]));
|
131
|
+
}
|
132
|
+
|
133
|
+
const colorScale = new ColorScale(
|
134
|
+
min,
|
135
|
+
max,
|
136
|
+
backgroundScale.colors || ['#FFEF9C', '#FF7127']
|
137
|
+
);
|
138
|
+
let value = data[column.name];
|
139
|
+
if (isPureVariable(backgroundScale.source)) {
|
140
|
+
value = resolveVariableAndFilter(backgroundScale.source, data, '| raw');
|
141
|
+
}
|
142
|
+
|
143
|
+
const color = colorScale.getColor(Number(value)).toHexString();
|
144
|
+
style.background = color;
|
145
|
+
}
|
146
|
+
|
109
147
|
if (!Component) {
|
110
148
|
return body as JSX.Element;
|
111
149
|
}
|
@@ -370,6 +370,7 @@ export interface TableProps extends RendererProps {
|
|
370
370
|
type ExportExcelToolbar = SchemaNode & {
|
371
371
|
api?: SchemaApi;
|
372
372
|
columns?: string[];
|
373
|
+
exportColumns?: any[];
|
373
374
|
filename?: string;
|
374
375
|
};
|
375
376
|
|
@@ -2202,9 +2203,8 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2202
2203
|
classPrefix={ns}
|
2203
2204
|
key="columns-toggable"
|
2204
2205
|
size={config?.size || 'sm'}
|
2205
|
-
|
2206
|
-
|
2207
|
-
}
|
2206
|
+
icon={config?.icon}
|
2207
|
+
label={config?.label}
|
2208
2208
|
draggable={config?.draggable}
|
2209
2209
|
columns={store.columnsData}
|
2210
2210
|
onColumnToggle={this.handleColumnToggle}
|
@@ -2261,18 +2261,25 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2261
2261
|
classPrefix: ns,
|
2262
2262
|
classnames: cx,
|
2263
2263
|
translate: __,
|
2264
|
-
|
2265
|
-
|
2264
|
+
data,
|
2265
|
+
render
|
2266
2266
|
} = this.props;
|
2267
2267
|
|
2268
|
+
let columns = store.filteredColumns || [];
|
2269
|
+
|
2268
2270
|
if (!columns) {
|
2269
2271
|
return null;
|
2270
2272
|
}
|
2271
2273
|
|
2272
|
-
return (
|
2273
|
-
|
2274
|
-
|
2275
|
-
|
2274
|
+
return render(
|
2275
|
+
'exportExcel',
|
2276
|
+
{
|
2277
|
+
label: __('CRUD.exportExcel'),
|
2278
|
+
...(toolbar as any),
|
2279
|
+
type: 'button'
|
2280
|
+
},
|
2281
|
+
{
|
2282
|
+
onAction: () => {
|
2276
2283
|
import('exceljs').then(async (ExcelJS: any) => {
|
2277
2284
|
let rows = [];
|
2278
2285
|
let tmpStore;
|
@@ -2312,19 +2319,28 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2312
2319
|
});
|
2313
2320
|
worksheet.views = [{state: 'frozen', xSplit: 0, ySplit: 1}];
|
2314
2321
|
|
2315
|
-
let
|
2316
|
-
|
2317
|
-
|
2318
|
-
|
2322
|
+
let exportColumnNames = toolbar.columns;
|
2323
|
+
|
2324
|
+
if (isPureVariable(exportColumnNames)) {
|
2325
|
+
exportColumnNames = resolveVariableAndFilter(
|
2326
|
+
exportColumnNames,
|
2319
2327
|
data,
|
2320
2328
|
'| raw'
|
2321
2329
|
);
|
2322
2330
|
}
|
2323
2331
|
|
2324
|
-
|
2332
|
+
// 自定义导出列配置
|
2333
|
+
if (toolbar.exportColumns && Array.isArray(toolbar.exportColumns)) {
|
2334
|
+
columns = toolbar.exportColumns;
|
2335
|
+
}
|
2336
|
+
|
2337
|
+
const filteredColumns = exportColumnNames
|
2325
2338
|
? columns.filter(column => {
|
2326
|
-
const filterColumnsNames =
|
2327
|
-
if (
|
2339
|
+
const filterColumnsNames = exportColumnNames!;
|
2340
|
+
if (
|
2341
|
+
column.name &&
|
2342
|
+
filterColumnsNames.indexOf(column.name) !== -1
|
2343
|
+
) {
|
2328
2344
|
return true;
|
2329
2345
|
}
|
2330
2346
|
return false;
|
@@ -2505,11 +2521,8 @@ export default class Table extends React.Component<TableProps, object> {
|
|
2505
2521
|
saveAs(blob, filename + '.xlsx');
|
2506
2522
|
}
|
2507
2523
|
});
|
2508
|
-
}
|
2509
|
-
|
2510
|
-
>
|
2511
|
-
{(toolbar as Schema).label || __('CRUD.exportExcel')}
|
2512
|
-
</Button>
|
2524
|
+
}
|
2525
|
+
}
|
2513
2526
|
);
|
2514
2527
|
}
|
2515
2528
|
|
@@ -6,7 +6,7 @@ import {escapeHtml} from '../utils/tpl-builtin';
|
|
6
6
|
import {buildStyle} from '../utils/style';
|
7
7
|
import {TooltipWrapper as TooltipWrapperComp} from '../components';
|
8
8
|
|
9
|
-
import type {Trigger} from '../components/TooltipWrapper';
|
9
|
+
import type {Trigger, TooltipObject} from '../components/TooltipWrapper';
|
10
10
|
|
11
11
|
export interface TooltipWrapperSchema extends BaseSchema {
|
12
12
|
/**
|
@@ -20,7 +20,12 @@ export interface TooltipWrapperSchema extends BaseSchema {
|
|
20
20
|
title?: string;
|
21
21
|
|
22
22
|
/**
|
23
|
-
*
|
23
|
+
* 文字提示内容,兼容 tooltip,但建议通过 content 来实现提示内容
|
24
|
+
*/
|
25
|
+
content?: string;
|
26
|
+
|
27
|
+
/**
|
28
|
+
* @deprecated 文字提示内容
|
24
29
|
*/
|
25
30
|
tooltip?: string;
|
26
31
|
|
@@ -29,15 +34,35 @@ export interface TooltipWrapperSchema extends BaseSchema {
|
|
29
34
|
*/
|
30
35
|
placement?: 'top' | 'right' | 'bottom' | 'left';
|
31
36
|
|
37
|
+
/**
|
38
|
+
* 浮层位置相对偏移量
|
39
|
+
*/
|
40
|
+
offset?: [number, number];
|
41
|
+
|
42
|
+
/**
|
43
|
+
* 是否展示浮层指向箭头
|
44
|
+
*/
|
45
|
+
showArrow?: boolean;
|
46
|
+
|
47
|
+
/**
|
48
|
+
* 是否禁用提示
|
49
|
+
*/
|
50
|
+
disabled?: boolean;
|
51
|
+
|
32
52
|
/**
|
33
53
|
* 浮层触发方式,默认为hover
|
34
54
|
*/
|
35
55
|
trigger?: Trigger | Array<Trigger>;
|
36
56
|
|
37
57
|
/**
|
38
|
-
*
|
58
|
+
* 浮层延迟显示时间, 单位 ms
|
59
|
+
*/
|
60
|
+
|
61
|
+
mouseEnterDelay?: number;
|
62
|
+
/**
|
63
|
+
* 浮层延迟隐藏时间, 单位 ms
|
39
64
|
*/
|
40
|
-
|
65
|
+
mouseLeaveDelay?: number;
|
41
66
|
|
42
67
|
/**
|
43
68
|
* 是否点击非内容区域关闭提示,默认为true
|
@@ -60,7 +85,7 @@ export interface TooltipWrapperSchema extends BaseSchema {
|
|
60
85
|
inline?: boolean;
|
61
86
|
|
62
87
|
/**
|
63
|
-
*
|
88
|
+
* 主题样式, 默认为light
|
64
89
|
*/
|
65
90
|
tooltipTheme?: 'light' | 'dark';
|
66
91
|
|
@@ -97,6 +122,7 @@ export interface TooltipWrapperProps extends RendererProps {
|
|
97
122
|
/**
|
98
123
|
* 文字提示
|
99
124
|
*/
|
125
|
+
content?: string;
|
100
126
|
tooltip?: string;
|
101
127
|
/**
|
102
128
|
* 文字提示位置
|
@@ -105,7 +131,11 @@ export interface TooltipWrapperProps extends RendererProps {
|
|
105
131
|
inline?: boolean;
|
106
132
|
trigger: Trigger | Array<Trigger>;
|
107
133
|
rootClose?: boolean;
|
108
|
-
|
134
|
+
showArrow?: boolean;
|
135
|
+
offset?: [number, number];
|
136
|
+
disabled?: boolean;
|
137
|
+
mouseEnterDelay?: number;
|
138
|
+
mouseLeaveDelay?: number;
|
109
139
|
container?: React.ReactNode;
|
110
140
|
style?: React.CSSProperties;
|
111
141
|
tooltipStyle?: React.CSSProperties;
|
@@ -124,7 +154,8 @@ export default class TooltipWrapper extends React.Component<
|
|
124
154
|
| 'placement'
|
125
155
|
| 'trigger'
|
126
156
|
| 'rootClose'
|
127
|
-
| '
|
157
|
+
| 'mouseEnterDelay'
|
158
|
+
| 'mouseLeaveDelay'
|
128
159
|
| 'inline'
|
129
160
|
| 'wrap'
|
130
161
|
| 'tooltipTheme'
|
@@ -132,7 +163,8 @@ export default class TooltipWrapper extends React.Component<
|
|
132
163
|
placement: 'top',
|
133
164
|
trigger: 'hover',
|
134
165
|
rootClose: true,
|
135
|
-
|
166
|
+
mouseEnterDelay: 0,
|
167
|
+
mouseLeaveDelay: 200,
|
136
168
|
inline: false,
|
137
169
|
wrap: false,
|
138
170
|
tooltipTheme: 'light'
|
@@ -172,41 +204,45 @@ export default class TooltipWrapper extends React.Component<
|
|
172
204
|
|
173
205
|
render() {
|
174
206
|
const {
|
175
|
-
tooltipClassName,
|
176
207
|
classPrefix: ns,
|
177
208
|
classnames: cx,
|
209
|
+
tooltipClassName,
|
210
|
+
tooltipTheme,
|
178
211
|
container,
|
179
212
|
placement,
|
180
213
|
rootClose,
|
181
214
|
tooltipStyle,
|
182
215
|
title,
|
216
|
+
content,
|
183
217
|
tooltip,
|
184
|
-
|
218
|
+
mouseEnterDelay,
|
219
|
+
mouseLeaveDelay,
|
185
220
|
trigger,
|
186
|
-
|
221
|
+
offset,
|
222
|
+
showArrow,
|
223
|
+
disabled,
|
187
224
|
data
|
188
225
|
} = this.props;
|
189
226
|
|
190
|
-
const tooltipObj = {
|
191
|
-
title:
|
192
|
-
content:
|
227
|
+
const tooltipObj: TooltipObject = {
|
228
|
+
title: filter(title, data),
|
229
|
+
content: filter(content || tooltip, data),
|
230
|
+
style: buildStyle(tooltipStyle, data),
|
231
|
+
placement,
|
232
|
+
trigger,
|
233
|
+
rootClose,
|
234
|
+
container,
|
235
|
+
tooltipTheme,
|
236
|
+
tooltipClassName,
|
237
|
+
mouseEnterDelay,
|
238
|
+
mouseLeaveDelay,
|
239
|
+
offset,
|
240
|
+
showArrow,
|
241
|
+
disabled
|
193
242
|
};
|
194
243
|
|
195
244
|
return (
|
196
|
-
<TooltipWrapperComp
|
197
|
-
classPrefix={ns}
|
198
|
-
classnames={cx}
|
199
|
-
style={buildStyle(tooltipStyle, data)}
|
200
|
-
placement={placement}
|
201
|
-
tooltip={tooltipObj}
|
202
|
-
trigger={trigger}
|
203
|
-
rootClose={rootClose}
|
204
|
-
delay={delay}
|
205
|
-
container={container}
|
206
|
-
tooltipClassName={cx(tooltipClassName, {
|
207
|
-
'Tooltip--dark': tooltipTheme === 'dark'
|
208
|
-
})}
|
209
|
-
>
|
245
|
+
<TooltipWrapperComp classPrefix={ns} classnames={cx} tooltip={tooltipObj}>
|
210
246
|
{this.renderBody()}
|
211
247
|
</TooltipWrapperComp>
|
212
248
|
);
|