amis 1.8.0-beta.1 → 1.8.0-beta.5
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/SchemaRenderer.js +19 -3
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/WithRootStore.d.ts +18 -0
- package/lib/WithStore.js +2 -1
- package/lib/WithStore.js.map +2 -2
- package/lib/actions/CmptAction.js +14 -3
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/components/AssociatedSelection.js +9 -2
- package/lib/components/AssociatedSelection.js.map +2 -2
- package/lib/components/BarCode.js +1 -1
- package/lib/components/BarCode.js.map +2 -2
- package/lib/components/Checkbox.d.ts +24 -23
- package/lib/components/Checkbox.js +6 -2
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/DatePicker.js +16 -5
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/DateRangePicker.d.ts +94 -84
- package/lib/components/DateRangePicker.js +259 -7
- package/lib/components/DateRangePicker.js.map +2 -2
- package/lib/components/MonthRangePicker.d.ts +84 -84
- package/lib/components/Radios.d.ts +22 -22
- package/lib/components/Radios.js +3 -5
- package/lib/components/Radios.js.map +2 -2
- package/lib/components/Range.d.ts +2 -2
- package/lib/components/Range.js +24 -11
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Steps.d.ts +6 -0
- package/lib/components/Steps.js +13 -9
- package/lib/components/Steps.js.map +2 -2
- package/lib/components/calendar/Calendar.js +2 -14
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/calendar/YearsView.js +3 -3
- package/lib/components/calendar/YearsView.js.map +2 -2
- package/lib/factory.d.ts +4 -0
- package/lib/factory.js +9 -0
- package/lib/factory.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/locale/de-DE.js +13 -0
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +13 -0
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +13 -0
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/Action.d.ts +2 -0
- package/lib/renderers/Action.js +23 -5
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/CRUD.d.ts +8 -0
- package/lib/renderers/CRUD.js +11 -4
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Carousel.d.ts +1 -0
- package/lib/renderers/Carousel.js +13 -1
- package/lib/renderers/Carousel.js.map +2 -2
- package/lib/renderers/Form/Checkbox.d.ts +5 -2
- package/lib/renderers/Form/Checkbox.js +2 -2
- package/lib/renderers/Form/Checkbox.js.map +2 -2
- package/lib/renderers/Form/Checkboxes.d.ts +7 -2
- package/lib/renderers/Form/Checkboxes.js +101 -12
- package/lib/renderers/Form/Checkboxes.js.map +2 -2
- package/lib/renderers/Form/Combo.js +3 -2
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/InputCity.d.ts +3 -0
- package/lib/renderers/Form/InputCity.js +44 -2
- package/lib/renderers/Form/InputCity.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.d.ts +5 -0
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +6 -3
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +6 -3
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputRange.js +13 -14
- package/lib/renderers/Form/InputRange.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +11 -6
- package/lib/renderers/Form/Item.js +3 -1
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/index.d.ts +1 -0
- package/lib/renderers/Form/index.js +1 -1
- package/lib/renderers/Form/index.js.map +2 -2
- package/lib/renderers/Form/wrapControl.d.ts +9 -0
- package/lib/renderers/Form/wrapControl.js +1 -1
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Nav.js +2 -2
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Steps.d.ts +8 -0
- package/lib/renderers/Steps.js +2 -2
- package/lib/renderers/Steps.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +1 -0
- package/lib/renderers/Table/index.js +10 -5
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +4 -0
- package/lib/renderers/Tabs.js +22 -6
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/Wizard.d.ts +6 -3
- package/lib/renderers/Wizard.js +257 -152
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/store/crud.d.ts +1 -0
- package/lib/store/crud.js +33 -7
- package/lib/store/crud.js.map +2 -2
- package/lib/store/formItem.js +1 -1
- package/lib/store/formItem.js.map +2 -2
- package/lib/store/index.d.ts +5 -0
- package/lib/store/index.js +14 -0
- package/lib/store/index.js.map +2 -2
- package/lib/store/table.js +2 -2
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +278 -17
- package/lib/themes/ang.css +286 -17
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +278 -17
- package/lib/themes/antd.css +286 -17
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +278 -17
- package/lib/themes/cxd.css +286 -17
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +278 -17
- package/lib/themes/dark.css +286 -17
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +278 -17
- package/lib/themes/default.css +286 -17
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/columnsSplit.d.ts +1 -0
- package/lib/utils/columnsSplit.js +40 -0
- package/lib/utils/columnsSplit.js.map +13 -0
- package/lib/utils/debug.d.ts +1 -1
- package/lib/utils/debug.js +16 -22
- package/lib/utils/debug.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +237 -29
- package/scss/_properties.scss +10 -1
- package/scss/components/_barcode.scss +1 -1
- package/scss/components/_carousel.scss +1 -0
- package/scss/components/_debug.scss +3 -3
- package/scss/components/_steps.scss +199 -8
- package/scss/components/form/_checks.scss +122 -1
- package/scss/components/form/_date.scss +2 -1
- package/scss/components/form/_editor.scss +2 -1
- package/scss/components/form/_form.scss +16 -0
- package/sdk/ang-ie11.css +335 -18
- package/sdk/ang.css +343 -18
- package/sdk/antd-ie11.css +335 -18
- package/sdk/antd.css +343 -18
- 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 +335 -18
- package/sdk/cxd.css +343 -18
- package/sdk/dark-ie11.css +335 -18
- package/sdk/dark.css +343 -18
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +13 -0
- 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 +335 -18
- package/sdk/sdk.css +343 -18
- package/sdk/sdk.js +1289 -1287
- 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/SchemaRenderer.tsx +32 -14
- package/src/WithStore.tsx +3 -1
- package/src/actions/CmptAction.ts +18 -0
- package/src/components/AssociatedSelection.tsx +9 -3
- package/src/components/BarCode.tsx +2 -2
- package/src/components/Checkbox.tsx +11 -5
- package/src/components/DatePicker.tsx +21 -4
- package/src/components/DateRangePicker.tsx +295 -6
- package/src/components/Radios.tsx +6 -17
- package/src/components/Range.tsx +26 -12
- package/src/components/Steps.tsx +28 -27
- package/src/components/calendar/Calendar.tsx +2 -15
- package/src/components/calendar/YearsView.tsx +3 -4
- package/src/factory.tsx +16 -0
- package/src/locale/de-DE.ts +13 -0
- package/src/locale/en-US.ts +13 -0
- package/src/locale/zh-CN.ts +13 -0
- package/src/renderers/Action.tsx +22 -1
- package/src/renderers/CRUD.tsx +22 -4
- package/src/renderers/Carousel.tsx +8 -0
- package/src/renderers/Form/Checkbox.tsx +11 -2
- package/src/renderers/Form/Checkboxes.tsx +106 -23
- package/src/renderers/Form/Combo.tsx +2 -3
- package/src/renderers/Form/InputCity.tsx +33 -4
- package/src/renderers/Form/InputDateRange.tsx +8 -1
- package/src/renderers/Form/InputFile.tsx +7 -3
- package/src/renderers/Form/InputImage.tsx +7 -3
- package/src/renderers/Form/InputRange.tsx +18 -16
- package/src/renderers/Form/Item.tsx +1 -0
- package/src/renderers/Form/index.tsx +2 -1
- package/src/renderers/Form/wrapControl.tsx +1 -1
- package/src/renderers/Nav.tsx +1 -1
- package/src/renderers/Steps.tsx +14 -0
- package/src/renderers/Table/index.tsx +15 -4
- package/src/renderers/Tabs.tsx +75 -28
- package/src/renderers/Wizard.tsx +154 -93
- package/src/store/crud.ts +40 -5
- package/src/store/formItem.ts +1 -2
- package/src/store/index.ts +20 -0
- package/src/store/table.ts +2 -2
- package/src/types.ts +3 -1
- package/src/utils/columnsSplit.tsx +57 -0
- package/src/utils/debug.tsx +17 -24
package/src/components/Range.tsx
CHANGED
@@ -11,11 +11,11 @@ import difference from 'lodash/difference';
|
|
11
11
|
import React from 'react';
|
12
12
|
import {uncontrollable} from 'uncontrollable';
|
13
13
|
|
14
|
-
import {RendererProps} from '../factory';
|
15
14
|
import Overlay from './Overlay';
|
16
|
-
import {ThemeProps
|
15
|
+
import type { ThemeProps } from '../theme'
|
16
|
+
import {themeable} from '../theme';
|
17
17
|
import {autobind, camel} from '../utils/helper';
|
18
|
-
import {
|
18
|
+
import type {
|
19
19
|
MultipleValue,
|
20
20
|
Value,
|
21
21
|
FormatValue,
|
@@ -71,7 +71,7 @@ interface LabelProps extends ThemeProps {
|
|
71
71
|
* @returns position.left
|
72
72
|
*/
|
73
73
|
const valueToOffsetLeft = (value: any, min: number, max: number) =>
|
74
|
-
(value * 100) / (max - min) + '%';
|
74
|
+
((value - min) * 100) / (max - min) + '%';
|
75
75
|
|
76
76
|
/**
|
77
77
|
* 滑块handle
|
@@ -298,7 +298,7 @@ export class Range extends React.Component<RangeItemProps, any> {
|
|
298
298
|
pageXToValue(pageX: number) {
|
299
299
|
const {x, width} = this.getBoundingClient(this.trackRef.current as Element);
|
300
300
|
const {max, min} = this.props;
|
301
|
-
return ((pageX - x) * (max - min)) / width;
|
301
|
+
return ((pageX - x) * (max - min)) / width + min;
|
302
302
|
}
|
303
303
|
|
304
304
|
/**
|
@@ -366,16 +366,30 @@ export class Range extends React.Component<RangeItemProps, any> {
|
|
366
366
|
*/
|
367
367
|
@autobind
|
368
368
|
renderSteps() {
|
369
|
-
const {max, min, step, showSteps, classnames: cx} = this.props;
|
370
|
-
|
369
|
+
const {max, min, step, showSteps, classnames: cx, parts} = this.props;
|
370
|
+
let isShowSteps = showSteps;
|
371
|
+
// 只要设置了 parts 就展示分隔
|
372
|
+
if (parts > 1 || Array.isArray(parts)) {
|
373
|
+
isShowSteps = true;
|
374
|
+
}
|
375
|
+
// 总区间
|
376
|
+
const section = max - min;
|
377
|
+
// 总区间被平均分为多少块
|
378
|
+
const steps = parts > 1 ? parts : Math.floor(section / step);
|
379
|
+
// 平均分 每块的长度
|
380
|
+
const partLength = section / steps;
|
381
|
+
// parts为数组时,以0为起点(传入的值 - min)
|
382
|
+
const partLengthList = Array.isArray(parts)
|
383
|
+
? parts.map(item => item - min)
|
384
|
+
: range(steps - 1).map(item => (item + 1) * partLength);
|
371
385
|
return (
|
372
|
-
|
386
|
+
isShowSteps && (
|
373
387
|
<div>
|
374
|
-
{
|
388
|
+
{partLengthList.map(item => (
|
375
389
|
<span
|
376
390
|
key={item}
|
377
391
|
className={cx('InputRange-track-dot')}
|
378
|
-
style={{left: (
|
392
|
+
style={{left: (item * 100) / (max - min) + '%'}}
|
379
393
|
></span>
|
380
394
|
))}
|
381
395
|
</div>
|
@@ -437,13 +451,13 @@ export class Range extends React.Component<RangeItemProps, any> {
|
|
437
451
|
const traceActiveStyle = {
|
438
452
|
width: valueToOffsetLeft(
|
439
453
|
multiple
|
440
|
-
? (value as MultipleValue).max - (value as MultipleValue).min
|
454
|
+
? (value as MultipleValue).max - (value as MultipleValue).min + min
|
441
455
|
: value,
|
442
456
|
min,
|
443
457
|
max
|
444
458
|
),
|
445
459
|
left: valueToOffsetLeft(
|
446
|
-
multiple ? (value as MultipleValue).min :
|
460
|
+
multiple ? (value as MultipleValue).min : min,
|
447
461
|
min,
|
448
462
|
max
|
449
463
|
)
|
package/src/components/Steps.tsx
CHANGED
@@ -69,8 +69,12 @@ export interface StepsSchema extends BaseSchema {
|
|
69
69
|
* 展示模式
|
70
70
|
*/
|
71
71
|
mode?: 'horizontal' | 'vertical';
|
72
|
-
}
|
73
72
|
|
73
|
+
/**
|
74
|
+
* 标签放置位置
|
75
|
+
*/
|
76
|
+
labelPlacement?: 'horizontal' | 'vertical';
|
77
|
+
}
|
74
78
|
export interface StepsProps extends ThemeProps {
|
75
79
|
steps: StepSchema[];
|
76
80
|
className: string;
|
@@ -81,6 +85,8 @@ export interface StepsProps extends ThemeProps {
|
|
81
85
|
[propName: string]: StepStatus;
|
82
86
|
};
|
83
87
|
mode?: 'horizontal' | 'vertical';
|
88
|
+
labelPlacement?: 'horizontal' | 'vertical';
|
89
|
+
progressDot?: boolean;
|
84
90
|
useMobileUI?: boolean;
|
85
91
|
}
|
86
92
|
|
@@ -92,6 +98,8 @@ export function Steps(props: StepsProps) {
|
|
92
98
|
current,
|
93
99
|
status,
|
94
100
|
mode = 'horizontal',
|
101
|
+
labelPlacement = 'horizontal',
|
102
|
+
progressDot = false,
|
95
103
|
useMobileUI
|
96
104
|
} = props;
|
97
105
|
const FINISH_ICON = 'check';
|
@@ -129,48 +137,41 @@ export function Steps(props: StepsProps) {
|
|
129
137
|
|
130
138
|
const mobileUI = useMobileUI && isMobile();
|
131
139
|
return (
|
132
|
-
<ul
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
)}
|
139
|
-
>
|
140
|
+
<ul className={cx( // 纵向步骤条暂时不支持labelPlacement属性
|
141
|
+
'Steps',
|
142
|
+
`Steps--Placement-${(progressDot || (labelPlacement === 'vertical' && mode != 'vertical')) ? 'vertical' : ''}`,
|
143
|
+
`Steps--${progressDot ? 'ProgressDot' : ''}`,
|
144
|
+
`Steps--${mode}`,
|
145
|
+
mobileUI ? 'Steps-mobile' : '', className)}>
|
140
146
|
{stepsRow.map((step, i) => {
|
141
147
|
const {stepStatus, icon} = getStepStatus(step, i);
|
142
|
-
|
143
148
|
return (
|
144
149
|
<li
|
145
150
|
key={i}
|
146
|
-
className={cx('StepsItem', `is-${stepStatus}`, step.className)}
|
151
|
+
className={cx('StepsItem', `is-${stepStatus}`, step.className, `StepsItem-${progressDot ? 'ProgressDot' : ''}`)}
|
147
152
|
>
|
148
153
|
<div className={cx('StepsItem-container')}>
|
149
|
-
|
150
|
-
className={cx(
|
151
|
-
'StepsItem-containerIcon',
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
{icon ? <Icon icon={icon} className="icon" /> : i + 1}
|
157
|
-
</span>
|
158
|
-
</div>
|
154
|
+
<div className={cx('StepsItem-containerTail')}></div>
|
155
|
+
{progressDot ? <div className={cx('StepsItem-containerProgressDot')}></div>
|
156
|
+
: <div className={cx('StepsItem-containerIcon', i < current && 'is-success')}>
|
157
|
+
<span className={cx('StepsItem-icon')}>
|
158
|
+
{icon ? <Icon icon={icon} className="icon" /> : i + 1}
|
159
|
+
</span>
|
160
|
+
</div>}
|
159
161
|
<div className={cx('StepsItem-containerWrapper')}>
|
160
162
|
<div className={cx('StepsItem-body')}>
|
161
163
|
<div
|
162
164
|
className={cx(
|
163
165
|
'StepsItem-title',
|
166
|
+
`StepsItem-${progressDot ? 'vertical-ProgressDot' : ''}`,
|
164
167
|
i < current && 'is-success'
|
165
168
|
)}
|
166
169
|
>
|
167
|
-
<span>{step.title}</span>
|
168
|
-
<span className={cx('StepsItem-subTitle')}>
|
169
|
-
{step.subTitle}
|
170
|
-
</span>
|
170
|
+
<span className={cx('StepsItem-ellText')} title={String(step.title)}>{step.title}</span>
|
171
|
+
<span className={cx('StepsItem-subTitle', 'StepsItem-ellText')} title={String(step.subTitle)}>{step.subTitle}</span>
|
171
172
|
</div>
|
172
|
-
<div className={cx('StepsItem-description')}>
|
173
|
-
{step.description}
|
173
|
+
<div className={cx('StepsItem-description', 'StepsItem-ellText')} title={String(step.description)}>
|
174
|
+
<span>{step.description}</span>
|
174
175
|
</div>
|
175
176
|
</div>
|
176
177
|
</div>
|
@@ -161,20 +161,6 @@ class BaseDatePicker extends React.Component<
|
|
161
161
|
updatedState = this.getStateFromProps(props);
|
162
162
|
}
|
163
163
|
|
164
|
-
// open 是外部控制了
|
165
|
-
// if (updatedState.open === undefined) {
|
166
|
-
// if (typeof props.open !== 'undefined') {
|
167
|
-
// updatedState.open = props.open;
|
168
|
-
// } else if (
|
169
|
-
// prevProps.closeOnSelect &&
|
170
|
-
// this.state.currentView !== viewModes.TIME
|
171
|
-
// ) {
|
172
|
-
// updatedState.open = false;
|
173
|
-
// } else {
|
174
|
-
// updatedState.open = this.state.open;
|
175
|
-
// }
|
176
|
-
// }
|
177
|
-
|
178
164
|
if (props.viewMode !== prevProps.viewMode) {
|
179
165
|
updatedState.currentView = props.viewMode;
|
180
166
|
}
|
@@ -237,7 +223,8 @@ class BaseDatePicker extends React.Component<
|
|
237
223
|
updatedState.viewDate = moment(props.viewDate);
|
238
224
|
}
|
239
225
|
|
240
|
-
|
226
|
+
// time-range 下会有问题,先不支持
|
227
|
+
if (Object.keys(updatedState).length && props.viewMode !== 'time') {
|
241
228
|
this.setState(updatedState);
|
242
229
|
}
|
243
230
|
|
@@ -75,10 +75,6 @@ export class CustomYearsView extends React.Component<CustomYearsViewProps> {
|
|
75
75
|
.clone()
|
76
76
|
.set({year: year, month: irrelevantMonth, date: irrelevantDate});
|
77
77
|
|
78
|
-
// Not sure what 'rdtOld' is for, commenting out for now as it's not working properly
|
79
|
-
// if ( i === -1 | i === 10 )
|
80
|
-
// classes += ' rdtOld';
|
81
|
-
|
82
78
|
noOfDaysInYear = parseInt(currentYear.endOf('year').format('DDD'), 10);
|
83
79
|
daysInYear = Array.from({length: noOfDaysInYear}, function (e, i) {
|
84
80
|
return i + 1;
|
@@ -95,6 +91,9 @@ export class CustomYearsView extends React.Component<CustomYearsViewProps> {
|
|
95
91
|
|
96
92
|
if (selectedDate && selectedDate.year() === year) classes += ' rdtActive';
|
97
93
|
|
94
|
+
// 第一个和最后一个置灰
|
95
|
+
if (i === -1 || i === 10) classes += ' text-muted';
|
96
|
+
|
98
97
|
props = {
|
99
98
|
'key': year,
|
100
99
|
'data-value': year,
|
package/src/factory.tsx
CHANGED
@@ -42,6 +42,7 @@ import {
|
|
42
42
|
RendererEvent
|
43
43
|
} from './utils/renderer-event';
|
44
44
|
import {runActions} from './actions/Action';
|
45
|
+
import {enableDebug} from './utils/debug';
|
45
46
|
|
46
47
|
export interface TestFunc {
|
47
48
|
(
|
@@ -152,6 +153,10 @@ export interface RenderOptions {
|
|
152
153
|
* 过滤 html 标签,可用来添加 xss 保护逻辑
|
153
154
|
*/
|
154
155
|
filterHtml?: (input: string) => string;
|
156
|
+
/**
|
157
|
+
* 是否开启 amis 调试
|
158
|
+
*/
|
159
|
+
enableAMISDebug?: boolean;
|
155
160
|
[propName: string]: any;
|
156
161
|
}
|
157
162
|
|
@@ -271,6 +276,10 @@ const defaultOptions: RenderOptions = {
|
|
271
276
|
affixOffsetBottom: 0,
|
272
277
|
richTextToken: '',
|
273
278
|
useMobileUI: true, // 是否启用移动端原生 UI
|
279
|
+
enableAMISDebug:
|
280
|
+
(window as any).enableAMISDebug ??
|
281
|
+
location.search.indexOf('amisDebug=1') !== -1 ??
|
282
|
+
false,
|
274
283
|
loadRenderer,
|
275
284
|
rendererEventListeners: [],
|
276
285
|
fetcher() {
|
@@ -492,6 +501,13 @@ export function render(
|
|
492
501
|
translate
|
493
502
|
} as any;
|
494
503
|
|
504
|
+
if (options.enableAMISDebug) {
|
505
|
+
// 因为里面还有 render
|
506
|
+
setTimeout(() => {
|
507
|
+
enableDebug();
|
508
|
+
}, 10);
|
509
|
+
}
|
510
|
+
|
495
511
|
store = RendererStore.create({}, options);
|
496
512
|
stores[options.session || 'global'] = store;
|
497
513
|
}
|
package/src/locale/de-DE.ts
CHANGED
@@ -75,6 +75,19 @@ register('de-DE', {
|
|
75
75
|
'Date.weekslater': '{{weeks}} Wochen später',
|
76
76
|
'Date.yesterday': 'Gestern',
|
77
77
|
'dateformat.year': 'YYYY',
|
78
|
+
'DateRange.daysago': 'letzten {{days}} Tage',
|
79
|
+
'DateRange.dayslater': 'innerhalb von {{days}} Tagen',
|
80
|
+
'DateRange.weeksago': 'letzten {{weeks}} Wochen',
|
81
|
+
'DateRange.weekslater': 'innerhalb von {{weeks}} Wochen',
|
82
|
+
'DateRange.monthsago': 'letzten {{months}} Monate',
|
83
|
+
'DateRange.monthslater': 'innerhalb von {{months}} Monaten',
|
84
|
+
'DateRange.quartersago': 'letzten {{quarters}} Quartale',
|
85
|
+
'DateRange.quarterslater': 'innerhalb von {{quarters}} Quartalen',
|
86
|
+
'DateRange.yearsago': 'letzten {{years}} Jahre',
|
87
|
+
'DateRange.yearslater': '{{years}} Jahren',
|
88
|
+
'DateRange.hoursago': 'letzten {{hours}} Stunden',
|
89
|
+
'DateRange.hourslater': 'innerhalb von {{hours}} Stunden',
|
90
|
+
'DateRange.1dayago': 'Vor 1 Tag',
|
78
91
|
'DateRange.1daysago': 'Vor 1 Tag',
|
79
92
|
'DateRange.7daysago': 'Vor 7 Tagen',
|
80
93
|
'DateRange.30daysago': 'Vor 30 Tagen',
|
package/src/locale/en-US.ts
CHANGED
@@ -72,6 +72,19 @@ register('en-US', {
|
|
72
72
|
'Date.weekslater': '{{weeks}} week(s) later',
|
73
73
|
'Date.yesterday': 'Yesterday',
|
74
74
|
'dateformat.year': 'YYYY',
|
75
|
+
'DateRange.daysago': 'Last {{days}} day(s)',
|
76
|
+
'DateRange.dayslater': 'Within {{days}} day(s)',
|
77
|
+
'DateRange.weeksago': 'Last {{weeks}} week(s)',
|
78
|
+
'DateRange.weekslater': 'Within {{weeks}} week(s)',
|
79
|
+
'DateRange.monthsago': 'Last {{months}} month(s)',
|
80
|
+
'DateRange.monthslater': 'Within {{months}} month(s)',
|
81
|
+
'DateRange.quartersago': 'Last {{quarters}} quarter(s)',
|
82
|
+
'DateRange.quarterslater': 'Within {{quarters}} quarter(s)',
|
83
|
+
'DateRange.yearsago': 'Last {{years}} year(s)',
|
84
|
+
'DateRange.yearslater': 'Within {{years}} year(s)',
|
85
|
+
'DateRange.hoursago': 'Last {{hours}} hour(s)',
|
86
|
+
'DateRange.hourslater': 'Within {{hours}} hour(s)',
|
87
|
+
'DateRange.1dayago': '1 day ago',
|
75
88
|
'DateRange.1daysago': '1 day ago',
|
76
89
|
'DateRange.7daysago': '7 days ago',
|
77
90
|
'DateRange.30daysago': '30 days ago',
|
package/src/locale/zh-CN.ts
CHANGED
@@ -75,7 +75,20 @@ register('zh-CN', {
|
|
75
75
|
'Date.weekslater': '{{weeks}}周后',
|
76
76
|
'Date.yesterday': '昨天',
|
77
77
|
'dateformat.year': 'YYYY年',
|
78
|
+
'DateRange.daysago': '最近{{days}}天',
|
79
|
+
'DateRange.dayslater': '{{days}}天以内',
|
80
|
+
'DateRange.weeksago': '最近{{weeks}}周',
|
81
|
+
'DateRange.weekslater': '{{weeks}}周以内',
|
82
|
+
'DateRange.monthsago': '最近{{months}}月',
|
83
|
+
'DateRange.monthslater': '{{months}}月以内',
|
84
|
+
'DateRange.quartersago': '最近{{quarters}}季度',
|
85
|
+
'DateRange.quarterslater': '{{quarters}}季度以内',
|
86
|
+
'DateRange.yearsago': '最近{{years}}年',
|
87
|
+
'DateRange.yearslater': '{{years}}年以内',
|
88
|
+
'DateRange.hoursago': '最近{{hours}}小时',
|
89
|
+
'DateRange.hourslater': '{{hours}}小时以内',
|
78
90
|
'DateRange.1daysago': '最近1天',
|
91
|
+
'DateRange.1dayago': '最近1天',
|
79
92
|
'DateRange.7daysago': '最近7天',
|
80
93
|
'DateRange.30daysago': '最近30天',
|
81
94
|
'DateRange.90daysago': '最近90天',
|
package/src/renderers/Action.tsx
CHANGED
@@ -753,6 +753,8 @@ export class Action extends React.Component<ActionProps, ActionState> {
|
|
753
753
|
loading,
|
754
754
|
body,
|
755
755
|
render,
|
756
|
+
onMouseEnter,
|
757
|
+
onMouseLeave,
|
756
758
|
classnames: cx,
|
757
759
|
classPrefix: ns
|
758
760
|
} = this.props;
|
@@ -768,7 +770,12 @@ export class Action extends React.Component<ActionProps, ActionState> {
|
|
768
770
|
trigger={tooltipTrigger}
|
769
771
|
rootClose={tooltipRootClose}
|
770
772
|
>
|
771
|
-
<div
|
773
|
+
<div
|
774
|
+
className={cx('Action', className)}
|
775
|
+
onClick={this.handleAction}
|
776
|
+
onMouseEnter={onMouseEnter}
|
777
|
+
onMouseLeave={onMouseLeave}
|
778
|
+
>
|
772
779
|
{render('body', body) as JSX.Element}
|
773
780
|
</div>
|
774
781
|
</TooltipWrapper>
|
@@ -814,6 +821,8 @@ export class Action extends React.Component<ActionProps, ActionState> {
|
|
814
821
|
loadingClassName={loadingClassName}
|
815
822
|
loading={loading}
|
816
823
|
onClick={this.handleAction}
|
824
|
+
onMouseEnter={onMouseEnter}
|
825
|
+
onMouseLeave={onMouseLeave}
|
817
826
|
type={type && ~allowedType.indexOf(type) ? type : 'button'}
|
818
827
|
disabled={disabled}
|
819
828
|
componentClass={isMenuItem ? 'a' : componentClass}
|
@@ -877,6 +886,16 @@ export class ActionRenderer extends React.Component<
|
|
877
886
|
}
|
878
887
|
}
|
879
888
|
|
889
|
+
@autobind
|
890
|
+
handleMouseEnter(e: React.MouseEvent<any>) {
|
891
|
+
this.props.dispatchEvent(e, this.props.data);
|
892
|
+
}
|
893
|
+
|
894
|
+
@autobind
|
895
|
+
handleMouseLeave(e: React.MouseEvent<any>) {
|
896
|
+
this.props.dispatchEvent(e, this.props.data);
|
897
|
+
}
|
898
|
+
|
880
899
|
@autobind
|
881
900
|
isCurrentAction(link: string) {
|
882
901
|
const {env, data} = this.props;
|
@@ -892,6 +911,8 @@ export class ActionRenderer extends React.Component<
|
|
892
911
|
env={env}
|
893
912
|
disabled={disabled || btnDisabled}
|
894
913
|
onAction={this.handleAction}
|
914
|
+
onMouseEnter={this.handleMouseEnter}
|
915
|
+
onMouseLeave={this.handleMouseLeave}
|
895
916
|
loading={loading}
|
896
917
|
isCurrentUrl={this.isCurrentAction}
|
897
918
|
tooltipContainer={
|
package/src/renderers/CRUD.tsx
CHANGED
@@ -105,6 +105,16 @@ export interface CRUDCommonSchema extends BaseSchema {
|
|
105
105
|
*/
|
106
106
|
perPage?: number;
|
107
107
|
|
108
|
+
/**
|
109
|
+
* 默认排序字段
|
110
|
+
*/
|
111
|
+
orderBy?: string;
|
112
|
+
|
113
|
+
/**
|
114
|
+
* 默认排序方向
|
115
|
+
*/
|
116
|
+
orderDir?: 'asc' | 'desc';
|
117
|
+
|
108
118
|
/**
|
109
119
|
* 可以默认给定初始参数如: {\"perPage\": 24}
|
110
120
|
*/
|
@@ -772,11 +782,17 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
772
782
|
}
|
773
783
|
|
774
784
|
handleFilterInit(values: object) {
|
775
|
-
const {defaultParams, data, store} = this.props;
|
785
|
+
const {defaultParams, data, store, orderBy, orderDir} = this.props;
|
786
|
+
const params = {...defaultParams};
|
787
|
+
|
788
|
+
if (orderBy) {
|
789
|
+
params['orderBy'] = orderBy;
|
790
|
+
params['orderDir'] = orderDir || 'asc';
|
791
|
+
}
|
776
792
|
|
777
793
|
this.handleFilterSubmit(
|
778
794
|
{
|
779
|
-
...
|
795
|
+
...params,
|
780
796
|
...values,
|
781
797
|
...store.query
|
782
798
|
},
|
@@ -1025,7 +1041,8 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
1025
1041
|
env,
|
1026
1042
|
loadDataOnce,
|
1027
1043
|
loadDataOnceFetchOnFilter,
|
1028
|
-
source
|
1044
|
+
source,
|
1045
|
+
columns
|
1029
1046
|
} = this.props;
|
1030
1047
|
|
1031
1048
|
// reload 需要清空用户选择。
|
@@ -1066,7 +1083,8 @@ export default class CRUD extends React.Component<CRUDProps, any> {
|
|
1066
1083
|
pageField,
|
1067
1084
|
perPageField,
|
1068
1085
|
loadDataMode,
|
1069
|
-
syncResponse2Query
|
1086
|
+
syncResponse2Query,
|
1087
|
+
columns: store.columns ?? columns
|
1070
1088
|
})
|
1071
1089
|
.then(value => {
|
1072
1090
|
interval &&
|
@@ -278,6 +278,13 @@ export class Carousel extends React.Component<CarouselProps, CarouselState> {
|
|
278
278
|
clearTimeout(this.durationTimeout as number);
|
279
279
|
}
|
280
280
|
|
281
|
+
@autobind
|
282
|
+
changeSlide(index: number) {
|
283
|
+
this.setState({
|
284
|
+
current: index
|
285
|
+
});
|
286
|
+
}
|
287
|
+
|
281
288
|
renderDots() {
|
282
289
|
const {classnames: cx} = this.props;
|
283
290
|
const {current, options} = this.state;
|
@@ -290,6 +297,7 @@ export class Carousel extends React.Component<CarouselProps, CarouselState> {
|
|
290
297
|
{Array.from({length: options.length}).map((_, i) => (
|
291
298
|
<span
|
292
299
|
key={i}
|
300
|
+
onClick={() => this.changeSlide(i)}
|
293
301
|
className={cx('Carousel-dot', current === i ? 'is-active' : '')}
|
294
302
|
/>
|
295
303
|
))}
|
@@ -19,12 +19,12 @@ export interface CheckboxControlSchema extends FormBaseControl {
|
|
19
19
|
/**
|
20
20
|
* 勾选值
|
21
21
|
*/
|
22
|
-
trueValue?:
|
22
|
+
trueValue?: boolean | string | number;
|
23
23
|
|
24
24
|
/**
|
25
25
|
* 未勾选值
|
26
26
|
*/
|
27
|
-
falseValue?:
|
27
|
+
falseValue?: boolean | string | number;
|
28
28
|
|
29
29
|
/**
|
30
30
|
* 选项说明
|
@@ -35,6 +35,9 @@ export interface CheckboxControlSchema extends FormBaseControl {
|
|
35
35
|
* 角标
|
36
36
|
*/
|
37
37
|
badge?: BadgeSchema;
|
38
|
+
partial?: boolean;
|
39
|
+
optionType?: 'default' | 'button';
|
40
|
+
checked?: boolean;
|
38
41
|
}
|
39
42
|
|
40
43
|
export interface CheckboxProps
|
@@ -89,6 +92,9 @@ export default class CheckboxControl extends React.Component<
|
|
89
92
|
onChange,
|
90
93
|
disabled,
|
91
94
|
render,
|
95
|
+
partial,
|
96
|
+
optionType,
|
97
|
+
checked,
|
92
98
|
classPrefix: ns
|
93
99
|
} = this.props;
|
94
100
|
|
@@ -101,6 +107,9 @@ export default class CheckboxControl extends React.Component<
|
|
101
107
|
falseValue={falseValue}
|
102
108
|
disabled={disabled}
|
103
109
|
onChange={(value: any) => this.dispatchChangeEvent(value)}
|
110
|
+
partial={partial}
|
111
|
+
optionType={optionType}
|
112
|
+
checked={checked}
|
104
113
|
>
|
105
114
|
{option ? render('option', option) : null}
|
106
115
|
</Checkbox>
|