amis 1.6.5-beta.4 → 1.8.0-beta.1
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/Avatar.d.ts +20 -20
- package/lib/components/Card.d.ts +20 -20
- package/lib/components/CityArea.js +3 -0
- package/lib/components/CityArea.js.map +2 -2
- package/lib/components/DatePicker.d.ts +3 -0
- package/lib/components/DatePicker.js +41 -7
- package/lib/components/DatePicker.js.map +2 -2
- 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/Progress.js +12 -9
- package/lib/components/Progress.js.map +2 -2
- package/lib/components/Range.js.map +2 -2
- package/lib/components/Tabs.d.ts +27 -23
- package/lib/components/Tabs.js +37 -22
- 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/calendar/Calendar.js +16 -12
- package/lib/components/calendar/Calendar.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +3 -1
- package/lib/components/formula/Editor.js +20 -2
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +5 -0
- package/lib/components/formula/Picker.js +19 -4
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/icons.js +2 -0
- package/lib/components/icons.js.map +2 -2
- package/lib/factory.js +2 -2
- package/lib/factory.js.map +2 -2
- package/lib/icons/trash.js +10 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index.js.map +2 -2
- package/lib/renderers/Action.d.ts +1 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/ButtonGroup.d.ts +2 -2
- package/lib/renderers/ButtonGroup.js.map +1 -1
- package/lib/renderers/Dialog.d.ts +4 -0
- package/lib/renderers/Dialog.js +4 -3
- package/lib/renderers/Dialog.js.map +2 -2
- package/lib/renderers/DropDownButton.d.ts +2 -0
- package/lib/renderers/DropDownButton.js +13 -4
- package/lib/renderers/DropDownButton.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/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 +4 -1
- package/lib/renderers/Form/InputFile.js +9 -0
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputFormula.d.ts +4 -0
- package/lib/renderers/Form/InputFormula.js +2 -2
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputImage.d.ts +4 -1
- package/lib/renderers/Form/InputImage.js +12 -2
- 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/InputTable.js +4 -2
- package/lib/renderers/Form/InputTable.js.map +2 -2
- package/lib/renderers/Form/Select.js +3 -1
- 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/Page.js +2 -3
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/PopOver.js +1 -1
- package/lib/renderers/PopOver.js.map +2 -2
- package/lib/renderers/Progress.d.ts +1 -1
- package/lib/renderers/Progress.js +1 -1
- package/lib/renderers/Progress.js.map +2 -2
- package/lib/renderers/Table/TableRow.js +1 -1
- package/lib/renderers/Table/TableRow.js.map +2 -2
- package/lib/renderers/Tabs.d.ts +10 -2
- package/lib/renderers/Tabs.js +3 -3
- 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/table.js +1 -1
- package/lib/store/table.js.map +2 -2
- package/lib/themes/ang-ie11.css +242 -46
- package/lib/themes/ang.css +250 -41
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +242 -46
- package/lib/themes/antd.css +250 -41
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +231 -35
- package/lib/themes/cxd.css +252 -42
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +242 -46
- package/lib/themes/dark.css +250 -41
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +231 -35
- package/lib/themes/default.css +252 -42
- package/lib/themes/default.css.map +1 -1
- package/package.json +1 -1
- package/schema.json +15871 -608
- package/scss/_properties.scss +23 -12
- package/scss/components/_alert.scss +1 -1
- package/scss/components/_button-group.scss +15 -0
- package/scss/components/_city-area.scss +2 -0
- package/scss/components/_formula.scss +18 -0
- package/scss/components/_popup.scss +13 -3
- package/scss/components/_progress.scss +3 -8
- package/scss/components/_tabs.scss +145 -13
- package/scss/components/_tooltip.scss +72 -0
- package/scss/components/form/_date.scss +13 -0
- package/scss/components/form/_number.scss +2 -0
- package/scss/components/form/_switch.scss +1 -3
- package/scss/themes/_cxd-variables.scss +2 -1
- package/sdk/ang-ie11.css +287 -48
- package/sdk/ang.css +295 -43
- package/sdk/antd-ie11.css +287 -48
- package/sdk/antd.css +295 -43
- 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 +276 -37
- package/sdk/cxd.css +297 -44
- package/sdk/dark-ie11.css +287 -48
- package/sdk/dark.css +295 -43
- 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 +276 -37
- package/sdk/sdk.css +297 -44
- package/sdk/sdk.js +1251 -1247
- 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/CityArea.tsx +3 -0
- package/src/components/DatePicker.tsx +56 -18
- package/src/components/PopUp.tsx +6 -5
- package/src/components/Progress.tsx +8 -12
- package/src/components/Range.tsx +7 -1
- package/src/components/Tabs.tsx +51 -21
- package/src/components/TooltipWrapper.tsx +4 -1
- package/src/components/calendar/Calendar.tsx +17 -12
- package/src/components/formula/Editor.tsx +34 -3
- package/src/components/formula/Picker.tsx +28 -1
- package/src/components/icons.tsx +2 -0
- package/src/factory.tsx +2 -2
- package/src/icons/trash.svg +8 -0
- package/src/index.tsx +1 -0
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/ButtonGroup.tsx +2 -2
- package/src/renderers/Dialog.tsx +17 -3
- package/src/renderers/DropDownButton.tsx +14 -3
- 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 +13 -1
- package/src/renderers/Form/InputFormula.tsx +7 -0
- package/src/renderers/Form/InputImage.tsx +32 -12
- package/src/renderers/Form/InputRange.tsx +95 -40
- package/src/renderers/Form/InputTable.tsx +6 -2
- package/src/renderers/Form/Select.tsx +2 -0
- package/src/renderers/Form/Switch.tsx +16 -9
- package/src/renderers/Log.tsx +2 -1
- package/src/renderers/Page.tsx +1 -2
- package/src/renderers/PopOver.tsx +1 -1
- package/src/renderers/Progress.tsx +2 -2
- package/src/renderers/Table/TableRow.tsx +1 -1
- package/src/renderers/Tabs.tsx +16 -4
- package/src/renderers/TooltipWrapper.tsx +219 -0
- package/src/renderers/Video.tsx +21 -6
- package/src/store/table.ts +1 -1
@@ -6,6 +6,7 @@ var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
6
6
|
var isNumber_1 = (0, tslib_1.__importDefault)(require("lodash/isNumber"));
|
7
7
|
var isObject_1 = (0, tslib_1.__importDefault)(require("lodash/isObject"));
|
8
8
|
var isEqual_1 = (0, tslib_1.__importDefault)(require("lodash/isEqual"));
|
9
|
+
var forEach_1 = (0, tslib_1.__importDefault)(require("lodash/forEach"));
|
9
10
|
var Item_1 = require("./Item");
|
10
11
|
var Range_1 = (0, tslib_1.__importDefault)(require("../../components/Range"));
|
11
12
|
var NumberInput_1 = (0, tslib_1.__importDefault)(require("../../components/NumberInput"));
|
@@ -130,6 +131,20 @@ var Input = /** @class */ (function (_super) {
|
|
130
131
|
return (_value < min && min) || (_value > max && max) || _value;
|
131
132
|
}
|
132
133
|
};
|
134
|
+
/**
|
135
|
+
* 失焦事件
|
136
|
+
*/
|
137
|
+
Input.prototype.onBlur = function () {
|
138
|
+
var _a = this.props, data = _a.data, dispatchEvent = _a.dispatchEvent;
|
139
|
+
dispatchEvent('blur', data);
|
140
|
+
};
|
141
|
+
/**
|
142
|
+
* 聚焦事件
|
143
|
+
*/
|
144
|
+
Input.prototype.onFocus = function () {
|
145
|
+
var _a = this.props, data = _a.data, dispatchEvent = _a.dispatchEvent;
|
146
|
+
dispatchEvent('focus', data);
|
147
|
+
};
|
133
148
|
Input.prototype.render = function () {
|
134
149
|
var _a = this.props, cx = _a.classnames, value = _a.value, multiple = _a.multiple, type = _a.type, step = _a.step, ns = _a.classPrefix, disabled = _a.disabled, max = _a.max, min = _a.min;
|
135
150
|
var _value = multiple
|
@@ -138,7 +153,7 @@ var Input = /** @class */ (function (_super) {
|
|
138
153
|
: Math.max(value.min, value.max)
|
139
154
|
: value;
|
140
155
|
return (react_1.default.createElement("div", { className: cx("".concat(ns, "InputRange-input")) },
|
141
|
-
react_1.default.createElement(NumberInput_1.default, { value: +_value, step: step, max: this.checkNum(max), min: this.checkNum(min), onChange: this.onChange, disabled: disabled })));
|
156
|
+
react_1.default.createElement(NumberInput_1.default, { value: +_value, step: step, max: this.checkNum(max), min: this.checkNum(min), onChange: this.onChange, disabled: disabled, onBlur: this.onBlur, onFocus: this.onFocus })));
|
142
157
|
};
|
143
158
|
(0, tslib_1.__decorate)([
|
144
159
|
helper_1.autobind,
|
@@ -152,6 +167,18 @@ var Input = /** @class */ (function (_super) {
|
|
152
167
|
(0, tslib_1.__metadata)("design:paramtypes", [Number]),
|
153
168
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
154
169
|
], Input.prototype, "onUpdateValue", null);
|
170
|
+
(0, tslib_1.__decorate)([
|
171
|
+
helper_1.autobind,
|
172
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
173
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
174
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
175
|
+
], Input.prototype, "onBlur", null);
|
176
|
+
(0, tslib_1.__decorate)([
|
177
|
+
helper_1.autobind,
|
178
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
179
|
+
(0, tslib_1.__metadata)("design:paramtypes", []),
|
180
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
181
|
+
], Input.prototype, "onFocus", null);
|
155
182
|
return Input;
|
156
183
|
}(react_1.default.Component));
|
157
184
|
exports.Input = Input;
|
@@ -186,6 +213,11 @@ var RangeControl = /** @class */ (function (_super) {
|
|
186
213
|
});
|
187
214
|
}
|
188
215
|
};
|
216
|
+
RangeControl.prototype.doAction = function (action, data, throwErrors) {
|
217
|
+
if (action.actionType === 'clear') {
|
218
|
+
this.clearValue();
|
219
|
+
}
|
220
|
+
};
|
189
221
|
RangeControl.prototype.clearValue = function () {
|
190
222
|
var _a = this.props, multiple = _a.multiple, min = _a.min, max = _a.max;
|
191
223
|
if (multiple) {
|
@@ -209,46 +241,73 @@ var RangeControl = /** @class */ (function (_super) {
|
|
209
241
|
* @param value
|
210
242
|
*/
|
211
243
|
RangeControl.prototype.updateValue = function (value) {
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
244
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
245
|
+
var _a, onChange, data, dispatchEvent, result, rendererEvent;
|
246
|
+
return (0, tslib_1.__generator)(this, function (_b) {
|
247
|
+
switch (_b.label) {
|
248
|
+
case 0:
|
249
|
+
this.setState({ value: this.getValue(value) });
|
250
|
+
_a = this.props, onChange = _a.onChange, data = _a.data, dispatchEvent = _a.dispatchEvent;
|
251
|
+
result = this.getFormatValue(value);
|
252
|
+
return [4 /*yield*/, dispatchEvent('change', (0, helper_1.createObject)(data, {
|
253
|
+
value: result
|
254
|
+
}))];
|
255
|
+
case 1:
|
256
|
+
rendererEvent = _b.sent();
|
257
|
+
if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
|
258
|
+
return [2 /*return*/];
|
259
|
+
}
|
260
|
+
onChange && onChange(result);
|
261
|
+
return [2 /*return*/];
|
220
262
|
}
|
221
|
-
|
263
|
+
});
|
264
|
+
});
|
222
265
|
};
|
223
266
|
/**
|
224
267
|
* 鼠标松开事件
|
225
268
|
*/
|
226
269
|
RangeControl.prototype.onAfterChange = function () {
|
227
270
|
var value = this.state.value;
|
228
|
-
var _a = this.props,
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
271
|
+
var _a = this.props, onAfterChange = _a.onAfterChange, dispatchEvent = _a.dispatchEvent, data = _a.data;
|
272
|
+
var result = this.getFormatValue(value);
|
273
|
+
onAfterChange && onAfterChange(result);
|
274
|
+
};
|
275
|
+
/**
|
276
|
+
* 获取导出格式数据
|
277
|
+
*/
|
278
|
+
RangeControl.prototype.getFormatValue = function (value) {
|
279
|
+
var _a = this.props, multiple = _a.multiple, joinValues = _a.joinValues, delimiter = _a.delimiter;
|
280
|
+
return multiple
|
281
|
+
? joinValues
|
282
|
+
? [value.min, value.max].join(delimiter || ',')
|
283
|
+
: {
|
284
|
+
min: value.min,
|
285
|
+
max: value.max
|
286
|
+
}
|
287
|
+
: value;
|
238
288
|
};
|
239
289
|
RangeControl.prototype.render = function () {
|
240
290
|
var _this = this;
|
241
291
|
var value = this.state.value;
|
242
292
|
var props = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, this.props), { value: value, updateValue: this.updateValue, onAfterChange: this.onAfterChange });
|
243
|
-
var ns = props.classPrefix, multiple = props.multiple, parts = props.parts, showInput = props.showInput, cx = props.classnames, className = props.className, disabled = props.disabled, clearable = props.clearable, min = props.min, max = props.max;
|
293
|
+
var ns = props.classPrefix, multiple = props.multiple, parts = props.parts, showInput = props.showInput, cx = props.classnames, className = props.className, disabled = props.disabled, clearable = props.clearable, min = props.min, max = props.max, render = props.render, marks = props.marks, region = props.region;
|
244
294
|
// 指定parts -> 重新计算步长
|
245
295
|
if (parts > 1) {
|
246
296
|
props.step = (props.max - props.min) / props.parts;
|
247
297
|
props.showSteps = true;
|
248
298
|
}
|
299
|
+
// 处理自定义json配置
|
300
|
+
var renderMarks = marks ? (0, tslib_1.__assign)({}, marks) : marks;
|
301
|
+
marks &&
|
302
|
+
(0, forEach_1.default)(marks, function (item, key) {
|
303
|
+
if ((0, isObject_1.default)(item) && item.type) {
|
304
|
+
renderMarks &&
|
305
|
+
(renderMarks[key] = render(region, item));
|
306
|
+
}
|
307
|
+
});
|
249
308
|
return (react_1.default.createElement("div", { className: cx('RangeControl', "".concat(ns, "InputRange"), { 'is-disabled': disabled }, className) },
|
250
309
|
showInput && multiple && react_1.default.createElement(Input, (0, tslib_1.__assign)({}, props, { type: "min" })),
|
251
|
-
react_1.default.createElement(Range_1.default, (0, tslib_1.__assign)({}, props)),
|
310
|
+
react_1.default.createElement(Range_1.default, (0, tslib_1.__assign)({}, props, { marks: renderMarks })),
|
252
311
|
showInput && react_1.default.createElement(Input, (0, tslib_1.__assign)({}, props, { type: "max" })),
|
253
312
|
clearable && !disabled && showInput ? (react_1.default.createElement("a", { onClick: function () { return _this.clearValue(); }, className: cx('InputRange-clear', {
|
254
313
|
'is-active': multiple
|
@@ -289,7 +348,7 @@ var RangeControl = /** @class */ (function (_super) {
|
|
289
348
|
helper_1.autobind,
|
290
349
|
(0, tslib_1.__metadata)("design:type", Function),
|
291
350
|
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
292
|
-
(0, tslib_1.__metadata)("design:returntype",
|
351
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
293
352
|
], RangeControl.prototype, "updateValue", null);
|
294
353
|
(0, tslib_1.__decorate)([
|
295
354
|
helper_1.autobind,
|
@@ -297,6 +356,12 @@ var RangeControl = /** @class */ (function (_super) {
|
|
297
356
|
(0, tslib_1.__metadata)("design:paramtypes", []),
|
298
357
|
(0, tslib_1.__metadata)("design:returntype", void 0)
|
299
358
|
], RangeControl.prototype, "onAfterChange", null);
|
359
|
+
(0, tslib_1.__decorate)([
|
360
|
+
helper_1.autobind,
|
361
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
362
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
363
|
+
(0, tslib_1.__metadata)("design:returntype", void 0)
|
364
|
+
], RangeControl.prototype, "getFormatValue", null);
|
300
365
|
return RangeControl;
|
301
366
|
}(react_1.default.PureComponent));
|
302
367
|
exports.default = RangeControl;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/InputRange.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAAsD;AACtD,0EAAuC;AACvC,0EAAuC;AACvC,wEAAqC;AAErC,+BAAmE;AACnE,8EAAgD;AAChD,0FAAuD;AACvD,gDAA4C;AAC5C,uDAAoD;AACpD,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React, {CSSProperties, ReactNode} from 'react';\nimport isNumber from 'lodash/isNumber';\nimport isObject from 'lodash/isObject';\nimport isEqual from 'lodash/isEqual';\n\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport InputRange from '../../components/Range';\nimport NumberInput from '../../components/NumberInput';\nimport {Icon} from '../../components/icons';\nimport {stripNumber} from '../../utils/tpl-builtin';\nimport {autobind} from '../../utils/helper';\nimport {filter} from '../../utils/tpl';\n\n/**\n * Range\n * 文档:https://baidu.gitee.io/amis/docs/components/form/range\n */\n\nexport type Value = string | MultipleValue | number | [number, number];\nexport type FormatValue = MultipleValue | number;\nexport type TooltipPosType = 'auto' | 'top' | 'right' | 'bottom' | 'left';\nexport interface RangeControlSchema extends FormBaseControl {\n type: 'input-range';\n\n /**\n * 滑块值\n */\n value?: Value;\n\n /**\n * 最大值\n */\n max?: number;\n\n /**\n * 最小值\n */\n min?: number;\n\n /**\n * 步长\n */\n step?: number;\n\n /**\n * 单位\n */\n unit?: string;\n\n /**\n * 是否展示步长\n */\n showSteps?: boolean;\n\n /**\n * 分割块数\n */\n parts?: number;\n\n /**\n * 刻度\n */\n // marks?: MarksType;\n\n /**\n * 是否展示标签\n */\n tooltipVisible?: boolean;\n\n /**\n * 标签方向\n */\n tooltipPlacement?: TooltipPosType;\n\n /**\n * 是否为双滑块\n */\n multiple?: boolean;\n\n /**\n * 是否通过分隔符连接\n */\n joinValues?: boolean;\n\n /**\n * 分隔符\n */\n delimiter?: string;\n\n /**\n * 是否展示输入框\n */\n showInput?: boolean;\n\n /**\n * 是否禁用\n */\n disabled?: boolean;\n}\n\nexport type MarksType = {\n [index: number | string]: Record<\n number,\n {style?: React.CSSProperties; label?: string} | any\n >;\n};\n\nexport interface RangeProps extends FormControlProps {\n /**\n * 滑块值\n */\n value: Value;\n\n /**\n * 最小值\n */\n min: number;\n\n /**\n * 最大值\n */\n max: number;\n\n /**\n * 步长\n */\n step: number;\n\n /**\n * 是否展示步长\n */\n showSteps: boolean;\n\n /**\n * 分割块数\n */\n parts: number;\n\n /**\n * 刻度\n *\n * todo 这里面存在 React.Compnonent 复杂定义,不能转成 json schema\n * 需要简化类型定义,json 中是不能定义复杂类型的,如 function\n */\n // marks?: MarksType;\n\n /**\n * 是否展示标签\n */\n tooltipVisible: boolean;\n\n /**\n * 标签方向\n */\n tooltipPlacement: TooltipPosType;\n\n /**\n * 控制滑块标签显隐函数\n */\n tipFormatter?: (value: Value) => boolean;\n\n /**\n * 是否为双滑块\n */\n multiple: boolean;\n\n /**\n * 是否通过分隔符连接\n */\n joinValues: boolean;\n\n /**\n * 分隔符\n */\n delimiter: string;\n\n /**\n * 单位\n */\n unit?: string;\n\n /**\n * 是否展示输入框\n */\n showInput: boolean;\n\n /**\n * 是否禁用\n */\n disabled: boolean;\n\n /**\n * value改变事件\n */\n onChange: (value: Value) => void;\n\n /**\n * 鼠标松开事件\n */\n onAfterChange?: (value: Value) => any;\n}\n\nexport interface MultipleValue {\n min: number;\n max: number;\n}\n\nexport interface DefaultProps {\n value: Value;\n max: number;\n min: number;\n step: number;\n unit: string;\n clearable: boolean;\n disabled: boolean;\n showInput: boolean;\n multiple: boolean;\n joinValues: boolean;\n delimiter: string;\n showSteps: boolean;\n parts: number;\n tooltipPlacement: TooltipPosType;\n}\n\nexport interface RangeItemProps extends RangeProps {\n value: FormatValue;\n updateValue: (value: Value) => void;\n onAfterChange: () => void;\n}\n\nexport interface RangeState {\n value: FormatValue;\n}\n\n/**\n * 格式化初始value值\n * @param value 初始value值 Value\n * @param props RangeProps\n * @returns number | {min: number, max: number}\n */\nexport function formatValue(\n value: Value,\n props: {\n multiple: boolean;\n delimiter: string;\n min: number;\n max: number;\n }\n): FormatValue {\n if (props.multiple) {\n let {min, max} = props;\n // value是字符串\n if (typeof value === 'string') {\n [min, max] = value.split(props.delimiter || ',').map(v => Number(v));\n }\n // value是数组\n else if (Array.isArray(value)) {\n [min, max] = value;\n }\n // value是对象\n else if (typeof value === 'object') {\n min = value.min;\n max = value.max;\n }\n return {\n min: min === undefined || min < props.min ? props.min : min,\n max: max === undefined || max > props.max ? props.max : max\n };\n }\n return +value ?? props.min;\n}\n\n/**\n * 输入框\n */\nexport class Input extends React.Component<RangeItemProps, any> {\n /**\n * onChange事件,只能输入数字\n * @param e React.ChangeEvent\n */\n @autobind\n onChange(value: number) {\n const {multiple, value: originValue, type} = this.props;\n const _value = this.getValue(value, type);\n\n this.props.updateValue(\n multiple ? {...(originValue as MultipleValue), [type]: _value} : value\n );\n }\n\n /**\n * 双滑块 更新value\n * @param value 输入的value值\n */\n @autobind\n onUpdateValue(value: number) {\n const {multiple, value: originValue, type} = this.props;\n const _value = this.getValue(value, type);\n\n this.props.updateValue(\n multiple ? {...(originValue as MultipleValue), [type]: _value} : value\n );\n }\n\n checkNum(value: number | string | undefined) {\n if (typeof value !== 'number') {\n value = filter(value, this.props.data);\n value = /^[-]?\\d+/.test(value) ? +value : undefined;\n }\n return value;\n }\n\n /**\n * 获取步长小数精度\n * @returns\n */\n getStepPrecision() {\n const {step} = this.props;\n const stepIsDecimal = /^\\d+\\.\\d+$/.test(step.toString());\n return !stepIsDecimal || step < 0\n ? 0\n : step.toString().split('.')[1]?.length;\n }\n\n /**\n * 处理数据\n * @param value input数据\n * @param type min | max 双滑块\n * @returns 处理之后数据\n */\n getValue(value: string | number, type?: string) {\n const {max, min, step, value: stateValue} = this.props as RangeItemProps;\n\n // 校正value为step的倍数\n let _value = Math.round(parseFloat(value + '') / step) * step;\n // 同步value与步长小数位数\n _value = parseFloat(_value.toFixed(this.getStepPrecision()));\n // 单滑块只用考虑 轨道边界 ,双滑块需要考虑 两端滑块边界\n switch (type) {\n case 'min': {\n if (isObject(stateValue) && isNumber(stateValue.max)) {\n // 如果 大于当前双滑块最大值 取 当前双滑块max值 - 步长\n if (_value >= stateValue.max) {\n return stateValue.max - step;\n }\n return _value;\n }\n return min;\n }\n case 'max':\n if (isObject(stateValue) && isNumber(stateValue.min)) {\n // 如果 小于当前双滑块最大值 取 当前双滑块min值 + 步长\n if (_value <= stateValue.min) {\n return stateValue.min + step;\n }\n return _value;\n }\n return max;\n default:\n // 轨道边界\n return (_value < min && min) || (_value > max && max) || _value;\n }\n }\n\n render() {\n const {\n classnames: cx,\n value,\n multiple,\n type,\n step,\n classPrefix: ns,\n disabled,\n max,\n min\n } = this.props;\n const _value = multiple\n ? type === 'min'\n ? Math.min((value as MultipleValue).min, (value as MultipleValue).max)\n : Math.max((value as MultipleValue).min, (value as MultipleValue).max)\n : value;\n return (\n <div className={cx(`${ns}InputRange-input`)}>\n <NumberInput\n value={+_value}\n step={step}\n max={this.checkNum(max)}\n min={this.checkNum(min)}\n onChange={this.onChange}\n disabled={disabled}\n />\n </div>\n );\n }\n}\n\nexport default class RangeControl extends React.PureComponent<\n RangeProps,\n RangeState\n> {\n midLabel?: HTMLSpanElement;\n\n static defaultProps: DefaultProps = {\n value: 0,\n max: 100,\n min: 0,\n step: 1,\n unit: '',\n clearable: true,\n disabled: false,\n showInput: false,\n multiple: false,\n joinValues: true,\n delimiter: ',',\n showSteps: false,\n parts: 1,\n tooltipPlacement: 'auto'\n };\n\n constructor(props: RangeProps) {\n super(props);\n const {value: propsValue, multiple, delimiter, min, max} = this.props;\n const value = formatValue(propsValue, {\n multiple,\n delimiter,\n min,\n max\n });\n\n this.state = {\n value: this.getValue(value)\n };\n }\n\n componentDidUpdate(prevProps: RangeProps) {\n const {value} = prevProps;\n const {\n value: nextPropsValue,\n multiple,\n delimiter,\n min,\n max,\n onChange\n } = this.props;\n if (value !== nextPropsValue) {\n const value = formatValue(nextPropsValue, {\n multiple,\n delimiter,\n min,\n max\n });\n this.setState({\n value: this.getValue(value)\n });\n }\n }\n\n @autobind\n clearValue() {\n const {multiple, min, max} = this.props;\n if (multiple) {\n this.updateValue({min, max});\n } else {\n this.updateValue(min);\n }\n }\n\n @autobind\n getValue(value: FormatValue) {\n const {multiple} = this.props;\n return multiple\n ? {\n max: stripNumber((value as MultipleValue).max),\n min: stripNumber((value as MultipleValue).min)\n }\n : stripNumber(value as number);\n }\n\n /**\n * 所有触发value变换 -> updateValue\n * @param value\n */\n @autobind\n updateValue(value: FormatValue) {\n this.setState({value: this.getValue(value)});\n const {multiple, joinValues, delimiter, onChange} = this.props;\n onChange(\n multiple\n ? joinValues\n ? [(value as MultipleValue).min, (value as MultipleValue).max].join(\n delimiter || ','\n )\n : {\n min: (value as MultipleValue).min,\n max: (value as MultipleValue).max\n }\n : value\n );\n }\n\n /**\n * 鼠标松开事件\n */\n @autobind\n onAfterChange() {\n const {value} = this.state;\n const {multiple, joinValues, delimiter, onAfterChange} = this.props;\n onAfterChange &&\n onAfterChange(\n multiple\n ? joinValues\n ? [(value as MultipleValue).min, (value as MultipleValue).max].join(\n delimiter || ','\n )\n : {\n min: (value as MultipleValue).min,\n max: (value as MultipleValue).max\n }\n : value\n );\n }\n\n render() {\n const {value} = this.state;\n const props: RangeItemProps = {\n ...this.props,\n value,\n updateValue: this.updateValue,\n onAfterChange: this.onAfterChange\n };\n\n const {\n classPrefix: ns,\n multiple,\n parts,\n showInput,\n classnames: cx,\n className,\n disabled,\n clearable,\n min,\n max\n } = props;\n\n // 指定parts -> 重新计算步长\n if (parts > 1) {\n props.step = (props.max - props.min) / props.parts;\n props.showSteps = true;\n }\n\n return (\n <div\n className={cx(\n 'RangeControl',\n `${ns}InputRange`,\n {'is-disabled': disabled},\n className\n )}\n >\n {showInput && multiple && <Input {...props} type=\"min\" />}\n <InputRange {...props} />\n {showInput && <Input {...props} type=\"max\" />}\n {clearable && !disabled && showInput ? (\n <a\n onClick={() => this.clearValue()}\n className={cx('InputRange-clear', {\n 'is-active': multiple\n ? isEqual(this.state.value, {min: min, max: max})\n : this.state.value !== min\n })}\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-range'\n})\nexport class RangeControlRenderer extends RangeControl {}\n"
|
11
|
+
"import React, {CSSProperties, ReactNode} from 'react';\nimport isNumber from 'lodash/isNumber';\nimport isObject from 'lodash/isObject';\nimport isEqual from 'lodash/isEqual';\nimport forEach from 'lodash/forEach';\n\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport InputRange from '../../components/Range';\nimport NumberInput from '../../components/NumberInput';\nimport {Icon} from '../../components/icons';\nimport {stripNumber} from '../../utils/tpl-builtin';\nimport {autobind, createObject} from '../../utils/helper';\nimport {filter} from '../../utils/tpl';\nimport {SchemaObject} from '../../Schema';\nimport {Action} from '../../types';\n\n/**\n * Range\n * 文档:https://baidu.gitee.io/amis/docs/components/form/range\n */\n\nexport type Value = string | MultipleValue | number | [number, number];\nexport type FormatValue = MultipleValue | number;\nexport type TooltipPosType = 'auto' | 'top' | 'right' | 'bottom' | 'left';\nexport type InputRangeRendererEvent = 'change' | 'blur' | 'focus';\nexport type InputRangeRendererAction = 'clear';\nexport interface RangeControlSchema extends FormBaseControl {\n type: 'input-range';\n\n /**\n * 滑块值\n */\n value?: Value;\n\n /**\n * 最大值\n */\n max?: number;\n\n /**\n * 最小值\n */\n min?: number;\n\n /**\n * 步长\n */\n step?: number;\n\n /**\n * 单位\n */\n unit?: string;\n\n /**\n * 是否展示步长\n */\n showSteps?: boolean;\n\n /**\n * 分割块数\n */\n parts?: number;\n\n /**\n * 刻度\n */\n marks?: MarksType;\n\n /**\n * 是否展示标签\n */\n tooltipVisible?: boolean;\n\n /**\n * 标签方向\n */\n tooltipPlacement?: TooltipPosType;\n\n /**\n * 是否为双滑块\n */\n multiple?: boolean;\n\n /**\n * 是否通过分隔符连接\n */\n joinValues?: boolean;\n\n /**\n * 分隔符\n */\n delimiter?: string;\n\n /**\n * 是否展示输入框\n */\n showInput?: boolean;\n\n /**\n * 是否禁用\n */\n disabled?: boolean;\n}\n\ntype MarksType = {\n [index: number | string]: MarksValue;\n};\n\ntype MarksValue = Record<\n number,\n SchemaObject | {style?: React.CSSProperties; label?: string}\n>;\n\nexport interface RangeProps extends FormControlProps {\n /**\n * 滑块值\n */\n value: Value;\n\n /**\n * 最小值\n */\n min: number;\n\n /**\n * 最大值\n */\n max: number;\n\n /**\n * 步长\n */\n step: number;\n\n /**\n * 是否展示步长\n */\n showSteps: boolean;\n\n /**\n * 分割块数\n */\n parts: number;\n\n /**\n * 刻度\n */\n marks?: MarksType;\n\n /**\n * 是否展示标签\n */\n tooltipVisible: boolean;\n\n /**\n * 标签方向\n */\n tooltipPlacement: TooltipPosType;\n\n /**\n * 控制滑块标签显隐函数\n */\n tipFormatter?: (value: Value) => boolean;\n\n /**\n * 是否为双滑块\n */\n multiple: boolean;\n\n /**\n * 是否通过分隔符连接\n */\n joinValues: boolean;\n\n /**\n * 分隔符\n */\n delimiter: string;\n\n /**\n * 单位\n */\n unit?: string;\n\n /**\n * 是否展示输入框\n */\n showInput: boolean;\n\n /**\n * 是否禁用\n */\n disabled: boolean;\n\n /**\n * value改变事件\n */\n onChange: (value: Value) => void;\n\n /**\n * 鼠标松开事件\n */\n onAfterChange?: (value: Value) => any;\n}\n\nexport interface MultipleValue {\n min: number;\n max: number;\n}\n\nexport interface DefaultProps {\n value: Value;\n max: number;\n min: number;\n step: number;\n unit: string;\n clearable: boolean;\n disabled: boolean;\n showInput: boolean;\n multiple: boolean;\n joinValues: boolean;\n delimiter: string;\n showSteps: boolean;\n parts: number;\n tooltipPlacement: TooltipPosType;\n}\n\nexport interface RangeItemProps extends RangeProps {\n value: FormatValue;\n updateValue: (value: Value) => void;\n onAfterChange: () => void;\n}\n\nexport interface RangeState {\n value: FormatValue;\n}\n\n/**\n * 格式化初始value值\n * @param value 初始value值 Value\n * @param props RangeProps\n * @returns number | {min: number, max: number}\n */\nexport function formatValue(\n value: Value,\n props: {\n multiple: boolean;\n delimiter: string;\n min: number;\n max: number;\n }\n): FormatValue {\n if (props.multiple) {\n let {min, max} = props;\n // value是字符串\n if (typeof value === 'string') {\n [min, max] = value.split(props.delimiter || ',').map(v => Number(v));\n }\n // value是数组\n else if (Array.isArray(value)) {\n [min, max] = value;\n }\n // value是对象\n else if (typeof value === 'object') {\n min = value.min;\n max = value.max;\n }\n return {\n min: min === undefined || min < props.min ? props.min : min,\n max: max === undefined || max > props.max ? props.max : max\n };\n }\n return +value ?? props.min;\n}\n\n/**\n * 输入框\n */\nexport class Input extends React.Component<RangeItemProps, any> {\n /**\n * onChange事件,只能输入数字\n * @param e React.ChangeEvent\n */\n @autobind\n onChange(value: number) {\n const {multiple, value: originValue, type} = this.props;\n const _value = this.getValue(value, type);\n\n this.props.updateValue(\n multiple ? {...(originValue as MultipleValue), [type]: _value} : value\n );\n }\n\n /**\n * 双滑块 更新value\n * @param value 输入的value值\n */\n @autobind\n onUpdateValue(value: number) {\n const {multiple, value: originValue, type} = this.props;\n const _value = this.getValue(value, type);\n\n this.props.updateValue(\n multiple ? {...(originValue as MultipleValue), [type]: _value} : value\n );\n }\n\n checkNum(value: number | string | undefined) {\n if (typeof value !== 'number') {\n value = filter(value, this.props.data);\n value = /^[-]?\\d+/.test(value) ? +value : undefined;\n }\n return value;\n }\n\n /**\n * 获取步长小数精度\n * @returns\n */\n getStepPrecision() {\n const {step} = this.props;\n const stepIsDecimal = /^\\d+\\.\\d+$/.test(step.toString());\n return !stepIsDecimal || step < 0\n ? 0\n : step.toString().split('.')[1]?.length;\n }\n\n /**\n * 处理数据\n * @param value input数据\n * @param type min | max 双滑块\n * @returns 处理之后数据\n */\n getValue(value: string | number, type?: string) {\n const {max, min, step, value: stateValue} = this.props as RangeItemProps;\n\n // 校正value为step的倍数\n let _value = Math.round(parseFloat(value + '') / step) * step;\n // 同步value与步长小数位数\n _value = parseFloat(_value.toFixed(this.getStepPrecision()));\n // 单滑块只用考虑 轨道边界 ,双滑块需要考虑 两端滑块边界\n switch (type) {\n case 'min': {\n if (isObject(stateValue) && isNumber(stateValue.max)) {\n // 如果 大于当前双滑块最大值 取 当前双滑块max值 - 步长\n if (_value >= stateValue.max) {\n return stateValue.max - step;\n }\n return _value;\n }\n return min;\n }\n case 'max':\n if (isObject(stateValue) && isNumber(stateValue.min)) {\n // 如果 小于当前双滑块最大值 取 当前双滑块min值 + 步长\n if (_value <= stateValue.min) {\n return stateValue.min + step;\n }\n return _value;\n }\n return max;\n default:\n // 轨道边界\n return (_value < min && min) || (_value > max && max) || _value;\n }\n }\n\n /**\n * 失焦事件\n */\n @autobind\n onBlur() {\n const {data, dispatchEvent} = this.props;\n dispatchEvent('blur', data);\n }\n\n /**\n * 聚焦事件\n */\n @autobind\n onFocus() {\n const {data, dispatchEvent} = this.props;\n dispatchEvent('focus', data);\n }\n\n render() {\n const {\n classnames: cx,\n value,\n multiple,\n type,\n step,\n classPrefix: ns,\n disabled,\n max,\n min\n } = this.props;\n const _value = multiple\n ? type === 'min'\n ? Math.min((value as MultipleValue).min, (value as MultipleValue).max)\n : Math.max((value as MultipleValue).min, (value as MultipleValue).max)\n : value;\n return (\n <div className={cx(`${ns}InputRange-input`)}>\n <NumberInput\n value={+_value}\n step={step}\n max={this.checkNum(max)}\n min={this.checkNum(min)}\n onChange={this.onChange}\n disabled={disabled}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n />\n </div>\n );\n }\n}\n\nexport default class RangeControl extends React.PureComponent<\n RangeProps,\n RangeState\n> {\n midLabel?: HTMLSpanElement;\n\n static defaultProps: DefaultProps = {\n value: 0,\n max: 100,\n min: 0,\n step: 1,\n unit: '',\n clearable: true,\n disabled: false,\n showInput: false,\n multiple: false,\n joinValues: true,\n delimiter: ',',\n showSteps: false,\n parts: 1,\n tooltipPlacement: 'auto'\n };\n\n constructor(props: RangeProps) {\n super(props);\n const {value: propsValue, multiple, delimiter, min, max} = this.props;\n const value = formatValue(propsValue, {\n multiple,\n delimiter,\n min,\n max\n });\n\n this.state = {\n value: this.getValue(value)\n };\n }\n\n componentDidUpdate(prevProps: RangeProps) {\n const {value} = prevProps;\n const {\n value: nextPropsValue,\n multiple,\n delimiter,\n min,\n max,\n onChange\n } = this.props;\n if (value !== nextPropsValue) {\n const value = formatValue(nextPropsValue, {\n multiple,\n delimiter,\n min,\n max\n });\n this.setState({\n value: this.getValue(value)\n });\n }\n }\n\n doAction(action: Action, data: object, throwErrors: boolean) {\n if (action.actionType === 'clear') {\n this.clearValue();\n }\n }\n\n @autobind\n clearValue() {\n const {multiple, min, max} = this.props;\n if (multiple) {\n this.updateValue({min, max});\n } else {\n this.updateValue(min);\n }\n }\n\n @autobind\n getValue(value: FormatValue) {\n const {multiple} = this.props;\n return multiple\n ? {\n max: stripNumber((value as MultipleValue).max),\n min: stripNumber((value as MultipleValue).min)\n }\n : stripNumber(value as number);\n }\n\n /**\n * 所有触发value变换 -> updateValue\n * @param value\n */\n @autobind\n async updateValue(value: FormatValue) {\n this.setState({value: this.getValue(value)});\n const {onChange, data, dispatchEvent} = this.props;\n const result = this.getFormatValue(value);\n\n const rendererEvent = await dispatchEvent(\n 'change',\n createObject(data, {\n value: result\n })\n );\n\n if (rendererEvent?.prevented) {\n return;\n }\n\n onChange && onChange(result);\n }\n\n /**\n * 鼠标松开事件\n */\n @autobind\n onAfterChange() {\n const {value} = this.state;\n const {onAfterChange, dispatchEvent, data} = this.props;\n const result = this.getFormatValue(value);\n onAfterChange && onAfterChange(result);\n }\n\n /**\n * 获取导出格式数据\n */\n @autobind\n getFormatValue(value: FormatValue) {\n const {multiple, joinValues, delimiter} = this.props;\n return multiple\n ? joinValues\n ? [(value as MultipleValue).min, (value as MultipleValue).max].join(\n delimiter || ','\n )\n : {\n min: (value as MultipleValue).min,\n max: (value as MultipleValue).max\n }\n : value;\n }\n\n render() {\n const {value} = this.state;\n const props: RangeItemProps = {\n ...this.props,\n value,\n updateValue: this.updateValue,\n onAfterChange: this.onAfterChange\n };\n\n const {\n classPrefix: ns,\n multiple,\n parts,\n showInput,\n classnames: cx,\n className,\n disabled,\n clearable,\n min,\n max,\n render,\n marks,\n region\n } = props;\n\n // 指定parts -> 重新计算步长\n if (parts > 1) {\n props.step = (props.max - props.min) / props.parts;\n props.showSteps = true;\n }\n\n // 处理自定义json配置\n let renderMarks:\n | MarksType\n | {[index: number | string]: ReactNode}\n | undefined = marks ? {...marks} : marks;\n marks &&\n forEach(marks, (item, key) => {\n if (isObject(item) && (item as SchemaObject).type) {\n renderMarks &&\n (renderMarks[key] = render(region, item as SchemaObject));\n }\n });\n\n return (\n <div\n className={cx(\n 'RangeControl',\n `${ns}InputRange`,\n {'is-disabled': disabled},\n className\n )}\n >\n {showInput && multiple && <Input {...props} type=\"min\" />}\n <InputRange {...props} marks={renderMarks} />\n {showInput && <Input {...props} type=\"max\" />}\n {clearable && !disabled && showInput ? (\n <a\n onClick={() => this.clearValue()}\n className={cx('InputRange-clear', {\n 'is-active': multiple\n ? isEqual(this.state.value, {min: min, max: max})\n : this.state.value !== min\n })}\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-range'\n})\nexport class RangeControlRenderer extends RangeControl {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -574,7 +574,7 @@ var FormTable = /** @class */ (function (_super) {
|
|
574
574
|
};
|
575
575
|
FormTable.prototype.render = function () {
|
576
576
|
var _this = this;
|
577
|
-
var _a = this.props, className = _a.className, value = _a.value, showAddBtn = _a.showAddBtn, disabled = _a.disabled, render = _a.render, placeholder = _a.placeholder, draggable = _a.draggable, addable = _a.addable, columnsTogglable = _a.columnsTogglable, combineNum = _a.combineNum, combineFromIndex = _a.combineFromIndex, __ = _a.translate, canAccessSuperData = _a.canAccessSuperData, expandConfig = _a.expandConfig, affixRow = _a.affixRow, prefixRow = _a.prefixRow, formInited = _a.formInited, perPage = _a.perPage, cx = _a.classnames;
|
577
|
+
var _a = this.props, className = _a.className, value = _a.value, showAddBtn = _a.showAddBtn, disabled = _a.disabled, render = _a.render, placeholder = _a.placeholder, draggable = _a.draggable, addable = _a.addable, columnsTogglable = _a.columnsTogglable, combineNum = _a.combineNum, combineFromIndex = _a.combineFromIndex, __ = _a.translate, canAccessSuperData = _a.canAccessSuperData, expandConfig = _a.expandConfig, affixRow = _a.affixRow, prefixRow = _a.prefixRow, formInited = _a.formInited, perPage = _a.perPage, cx = _a.classnames, rowClassName = _a.rowClassName, rowClassNameExpr = _a.rowClassNameExpr;
|
578
578
|
if (formInited === false) {
|
579
579
|
return null;
|
580
580
|
}
|
@@ -614,7 +614,9 @@ var FormTable = /** @class */ (function (_super) {
|
|
614
614
|
expandConfig: expandConfig,
|
615
615
|
canAccessSuperData: canAccessSuperData,
|
616
616
|
reUseRow: false,
|
617
|
-
offset: offset
|
617
|
+
offset: offset,
|
618
|
+
rowClassName: rowClassName,
|
619
|
+
rowClassNameExpr: rowClassNameExpr
|
618
620
|
}),
|
619
621
|
(addable && showAddBtn !== false) || showPager ? (react_1.default.createElement("div", { className: cx('InputTable-toolbar') },
|
620
622
|
addable && showAddBtn !== false ? (react_1.default.createElement(Button_1.default, { disabled: disabled, size: "sm", onClick: function () { return _this.addItem(_this.state.items.length); } },
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/InputTable.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport Button from '../../components/Button';\nimport {\n createObject,\n getTree,\n getVariable,\n setVariable,\n spliceTree\n} from '../../utils/helper';\nimport {RendererData, Action, Api, Payload, ApiObject} from '../../types';\nimport {isEffectiveApi} from '../../utils/api';\nimport {filter} from '../../utils/tpl';\nimport omit from 'lodash/omit';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport findIndex from 'lodash/findIndex';\nimport {SimpleMap} from '../../utils/SimpleMap';\nimport {Icon} from '../../components/icons';\nimport {TableSchema} from '../Table';\nimport {SchemaApi} from '../../Schema';\nimport find from 'lodash/find';\n\nexport interface TableControlSchema\n extends FormBaseControl,\n Omit<TableSchema, 'type'> {\n type: 'input-table';\n\n /**\n * 可新增\n */\n addable?: boolean;\n\n /**\n * 可复制新增\n */\n copyable?: boolean;\n\n /**\n * 复制按钮文字\n */\n copyBtnLabel?: string;\n\n /**\n * 复制按钮图标\n */\n copyBtnIcon?: string;\n\n /**\n * 是否显示复制按钮\n */\n copyAddBtn?: boolean;\n\n /**\n * 是否可以拖拽排序\n */\n draggable?: boolean;\n\n /**\n * 新增 API\n */\n addApi?: SchemaApi;\n\n /**\n * 新增按钮文字\n */\n addBtnLabel?: string;\n\n /**\n * 新增按钮图标\n */\n addBtnIcon?: string;\n\n /**\n * 显示新增按钮\n */\n showAddBtn?: boolean;\n\n /**\n * 可否删除\n */\n removable?: boolean;\n\n /**\n * 删除的 API\n */\n deleteApi?: SchemaApi;\n\n /**\n * 可否编辑\n */\n editable?: boolean;\n\n /**\n * 更新按钮名称\n */\n editBtnLabel?: string;\n\n /**\n * 更新按钮图标\n */\n editBtnIcon?: string;\n\n /**\n * 确认按钮文字\n */\n confirmBtnLabel?: string;\n\n /**\n * 确认按钮图标\n */\n confirmBtnIcon?: string;\n\n /**\n * 取消按钮文字\n */\n cancelBtnLabel?: string;\n\n /**\n * 取消按钮图标\n */\n cancelBtnIcon?: string;\n\n /**\n * 删除按钮文字\n */\n deleteBtnLabel?: string;\n\n /**\n * 删除按钮图标\n */\n deleteBtnIcon?: string;\n\n /**\n * 更新 API\n */\n updateApi?: SchemaApi;\n\n /**\n * 初始值,新增的时候\n */\n scaffold?: any;\n\n /**\n * 删除确认文字\n */\n deleteConfirmText?: string;\n\n /**\n * 值字段\n */\n valueField?: string;\n\n /**\n * 是否为确认的编辑模式。\n */\n needConfirm?: boolean;\n\n /**\n * 是否可以访问父级数据,正常 combo 已经关联到数组成员,是不能访问父级数据的。\n */\n canAccessSuperData?: boolean;\n\n /**\n * 是否显示序号\n */\n showIndex?: boolean;\n\n /**\n * 分页个数,默认不分页\n */\n perPage?: number;\n}\n\nexport interface TableProps\n extends FormControlProps,\n Omit<\n TableControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {}\n\nexport interface TableState {\n items: Array<any>;\n raw?: any;\n columns: Array<any>;\n editIndex: number;\n isCreateMode?: boolean;\n page?: number;\n}\n\nexport default class FormTable extends React.Component<TableProps, TableState> {\n static defaultProps = {\n placeholder: '空',\n scaffold: {},\n addBtnIcon: 'plus',\n copyBtnIcon: 'copy',\n editBtnIcon: 'pencil',\n deleteBtnIcon: 'minus',\n confirmBtnIcon: 'check',\n cancelBtnIcon: 'close',\n valueField: ''\n };\n\n static propsList: Array<string> = [\n 'onChange',\n 'name',\n 'columns',\n 'label',\n 'scaffold',\n 'showAddBtn',\n 'addable',\n 'removable',\n 'copyable',\n 'editable',\n 'addApi',\n 'updateApi',\n 'deleteApi',\n 'needConfirm',\n 'canAccessSuperData',\n 'formStore'\n ];\n\n entries: SimpleMap<any, number>;\n entityId: number = 1;\n subForms: any = {};\n rowPrinstine: Array<any> = [];\n editting: any = {};\n constructor(props: TableProps) {\n super(props);\n\n this.state = {\n columns: this.buildColumns(props),\n editIndex: -1,\n items: Array.isArray(props.value) ? props.value.concat() : []\n };\n\n this.entries = new SimpleMap();\n this.buildItemProps = this.buildItemProps.bind(this);\n this.confirmEdit = this.confirmEdit.bind(this);\n this.cancelEdit = this.cancelEdit.bind(this);\n this.handleSaveTableOrder = this.handleSaveTableOrder.bind(this);\n this.handleTableSave = this.handleTableSave.bind(this);\n this.getEntryId = this.getEntryId.bind(this);\n this.subFormRef = this.subFormRef.bind(this);\n this.handlePageChange = this.handlePageChange.bind(this);\n this.emitValue = this.emitValue.bind(this);\n }\n\n componentDidUpdate(nextProps: TableProps) {\n const props = this.props;\n let toUpdate: any = null;\n\n if (props.columns !== nextProps.columns) {\n toUpdate = {\n ...toUpdate,\n columns: this.buildColumns(props)\n };\n }\n\n if (props.value !== nextProps.value) {\n toUpdate = {\n ...toUpdate,\n items: Array.isArray(props.value) ? props.value.concat() : [],\n editIndex: -1,\n raw: undefined\n };\n }\n\n toUpdate && this.setState(toUpdate);\n }\n\n componentWillUnmount() {\n this.entries.dispose();\n }\n\n subFormRef(form: any, x: number, y: number) {\n this.subForms[`${x}-${y}`] = form;\n }\n\n async validate(): Promise<string | void> {\n const {value, minLength, maxLength, translate: __, columns} = this.props;\n\n // todo: 如果当前正在编辑中,表单提交了,应该先让正在编辑的东西提交然后再做验证。\n if (~this.state.editIndex) {\n return __('Table.editing');\n }\n\n if (minLength && (!Array.isArray(value) || value.length < minLength)) {\n return __('Combo.minLength', {minLength});\n } else if (maxLength && Array.isArray(value) && value.length > maxLength) {\n return __('Combo.maxLength', {maxLength});\n } else {\n const subForms: Array<any> = [];\n Object.keys(this.subForms).forEach(\n key => this.subForms[key] && subForms.push(this.subForms[key])\n );\n if (subForms.length) {\n const results = await Promise.all(\n subForms.map(item => item.validate())\n );\n\n let msg = ~results.indexOf(false) ? __('Form.validateFailed') : '';\n let uniqueColumn = '';\n\n if (\n !msg &&\n Array.isArray(columns) &&\n Array.isArray(value) &&\n columns.some(item => {\n if (item.unique && item.name) {\n let exists: Array<any> = [];\n\n return value.some((obj: any) => {\n const value = getVariable(obj, item.name);\n\n if (~exists.indexOf(value)) {\n uniqueColumn = `${item.label || item.name}`;\n return true;\n }\n\n exists.push(value);\n return false;\n });\n }\n\n return false;\n })\n ) {\n msg = __('InputTable.uniqueError', {\n label: uniqueColumn\n });\n }\n\n return msg;\n }\n }\n }\n\n emitValue() {\n const items = this.state.items.filter(item => !item.__isPlaceholder);\n const {onChange} = this.props;\n onChange?.(items);\n }\n\n async doAction(action: Action, ctx: RendererData, ...rest: Array<any>) {\n const {\n onAction,\n valueField,\n env,\n onChange,\n editable,\n needConfirm,\n addable,\n addApi,\n translate: __\n } = this.props;\n\n if (action.actionType === 'add') {\n if (addable === false) {\n return;\n }\n\n const items = this.state.items.concat();\n\n if (addApi || action.payload) {\n let toAdd = null;\n\n if (isEffectiveApi(addApi, ctx)) {\n const payload = await env.fetcher(addApi, ctx);\n if (payload && !payload.ok) {\n env.notify('error', payload.msg || __('fetchFailed'));\n return;\n } else if (payload && payload.ok) {\n toAdd = payload.data;\n }\n } else {\n toAdd = dataMapping(action.payload, ctx);\n }\n\n toAdd = Array.isArray(toAdd) ? toAdd : [toAdd];\n toAdd.forEach((toAdd: any) => {\n if (\n !valueField ||\n !find(\n items,\n item => item[valueField as string] == toAdd[valueField as string]\n )\n ) {\n // 不要重复加入\n items.push(toAdd);\n }\n });\n\n this.setState(\n {\n items\n },\n () => {\n this.emitValue();\n\n if (toAdd.length === 1 && needConfirm !== false) {\n this.startEdit(items.length - 1, true);\n }\n }\n );\n\n return;\n } else {\n return this.addItem(items.length - 1);\n }\n } else if (\n action.actionType === 'remove' ||\n action.actionType === 'delete'\n ) {\n if (!valueField) {\n return env.alert(__('Table.valueField'));\n } else if (!action.payload) {\n return env.alert(__('Table.playload'));\n }\n\n const items = this.state.items.concat();\n let toRemove: any = dataMapping(action.payload, ctx);\n toRemove = Array.isArray(toRemove) ? toRemove : [toRemove];\n\n toRemove.forEach((toRemove: any) => {\n const idx = findIndex(\n items,\n item => item[valueField as string] == toRemove[valueField as string]\n );\n if (~idx) {\n items.splice(idx, 1);\n }\n });\n\n this.setState(\n {\n items\n },\n () => this.emitValue()\n );\n\n // todo 如果配置删除 Api 怎么办?\n return;\n }\n\n return onAction && onAction(action, ctx, ...rest);\n }\n\n copyItem(index: number) {\n const {needConfirm} = this.props;\n const items = this.state.items.concat();\n\n items.splice(index + 1, 0, items[index]);\n index = Math.min(index + 1, items.length - 1);\n this.setState(\n {\n items\n },\n () => {\n if (needConfirm === false) {\n this.emitValue();\n } else {\n this.startEdit(index, true);\n }\n }\n );\n }\n\n addItem(index: number) {\n const {needConfirm, scaffold, columns} = this.props;\n const items = this.state.items.concat();\n let value: any = {\n __isPlaceholder: true\n };\n\n if (Array.isArray(columns)) {\n columns.forEach(column => {\n if (\n typeof column.value !== 'undefined' &&\n typeof column.name === 'string'\n ) {\n setVariable(value, column.name, column.value);\n }\n });\n }\n\n value = {\n ...value,\n ...scaffold\n };\n\n if (needConfirm === false) {\n delete value.__isPlaceholder;\n }\n\n items.splice(index + 1, 0, value);\n index = Math.min(index + 1, items.length - 1);\n\n this.setState(\n {\n items\n },\n () => {\n if (needConfirm === false) {\n this.emitValue();\n } else {\n this.startEdit(index, true);\n }\n }\n );\n }\n\n startEdit(index: number, isCreate: boolean = false) {\n this.setState({\n editIndex: index,\n isCreateMode: isCreate,\n raw: this.state.items[index],\n\n columns: this.buildColumns(this.props, isCreate)\n });\n }\n\n async confirmEdit() {\n const {addApi, updateApi, data, env, translate: __} = this.props;\n\n // form 是 lazyChange 的,先让他们 flush, 即把未提交的数据提交。\n const subForms: Array<any> = [];\n Object.keys(this.subForms).forEach(\n key => this.subForms[key] && subForms.push(this.subForms[key])\n );\n subForms.forEach(form => form.flush());\n\n const items = this.state.items.concat();\n let item = {\n ...items[this.state.editIndex]\n };\n const isNew = item.__isPlaceholder;\n\n let remote: Payload | null = null;\n if (isNew && isEffectiveApi(addApi, createObject(data, item))) {\n remote = await env.fetcher(addApi, createObject(data, item));\n } else if (isEffectiveApi(updateApi, createObject(data, item))) {\n remote = await env.fetcher(updateApi, createObject(data, item));\n }\n\n if (remote && !remote.ok) {\n env.notify('error', remote.msg || __('saveFailed'));\n return;\n } else if (remote && remote.ok) {\n item = {\n ...(((isNew ? addApi : updateApi) as ApiObject).replaceData\n ? {}\n : item),\n ...remote.data\n };\n }\n\n delete item.__isPlaceholder;\n items.splice(this.state.editIndex, 1, item);\n\n this.setState(\n {\n editIndex: -1,\n items: items,\n raw: undefined\n },\n this.emitValue\n );\n }\n\n cancelEdit() {\n let items = this.state.items.concat();\n\n if (this.state.isCreateMode) {\n items = items.filter(item => !item.__isPlaceholder);\n } else if (this.state.raw) {\n items.splice(this.state.editIndex, 1, this.state.raw);\n }\n\n this.setState(\n {\n editIndex: -1,\n raw: undefined,\n items: items\n },\n this.emitValue\n );\n }\n\n async removeItem(index: number) {\n const {\n value,\n onChange,\n deleteApi,\n deleteConfirmText,\n env,\n data,\n translate: __\n } = this.props;\n\n let newValue = Array.isArray(value) ? value.concat() : [];\n const item = newValue[index];\n\n if (!item) {\n return;\n }\n\n const ctx = createObject(data, item);\n if (isEffectiveApi(deleteApi, ctx)) {\n const confirmed = await env.confirm(\n deleteConfirmText ? filter(deleteConfirmText, ctx) : __('deleteConfirm')\n );\n if (!confirmed) {\n // 如果不确认,则跳过!\n return;\n }\n\n const result = await env.fetcher(deleteApi, ctx);\n\n if (!result.ok) {\n env.notify('error', __('deleteFailed'));\n return;\n }\n }\n\n this.removeEntry(item);\n newValue.splice(index, 1);\n onChange(newValue);\n }\n\n buildItemProps(item: any, index: number) {\n if (this.props.needConfirm === false) {\n return {\n quickEditEnabled: true\n };\n } else if (\n !this.props.editable &&\n !this.props.addable &&\n !this.state.isCreateMode\n ) {\n return null;\n }\n\n const perPage = this.props.perPage;\n const page = this.state.page || 1;\n let offset = 0;\n if (typeof perPage === 'number' && perPage) {\n offset = (page - 1) * perPage;\n }\n\n return {\n quickEditEnabled: this.state.editIndex === index + offset\n };\n }\n\n buildColumns(props: TableProps, isCreateMode = false): Array<any> {\n const env = this.props.env;\n let columns: Array<any> = Array.isArray(props.columns)\n ? props.columns.concat()\n : [];\n const ns = this.props.classPrefix;\n const __ = this.props.translate;\n const needConfirm = this.props.needConfirm;\n const showIndex = this.props.showIndex;\n\n let btns = [];\n if (props.addable && props.showAddBtn !== false) {\n btns.push({\n children: ({\n key,\n rowIndex,\n offset\n }: {\n key: any;\n rowIndex: number;\n offset: number;\n }) =>\n ~this.state.editIndex && needConfirm !== false ? null : (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('Table.addRow')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.addItem.bind(this, rowIndex + offset, undefined)}\n >\n {props.addBtnLabel ? <span>{props.addBtnLabel}</span> : null}\n {props.addBtnIcon ? (\n <Icon icon={props.addBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n )\n });\n }\n\n if (props.copyable && props.showCopyBtn !== false) {\n btns.push({\n children: ({\n key,\n rowIndex,\n offset\n }: {\n key: any;\n rowIndex: number;\n offset: number;\n }) =>\n ~this.state.editIndex && needConfirm !== false ? null : (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('Table.copyRow')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.copyItem.bind(this, rowIndex + offset, undefined)}\n >\n {props.copyBtnLabel ? <span>{props.copyBtnLabel}</span> : null}\n {props.copyBtnIcon ? (\n <Icon icon={props.copyBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n )\n });\n }\n\n if (props.needConfirm === false) {\n columns = columns.map(column => {\n const quickEdit = column.quickEdit;\n\n return quickEdit === false\n ? omit(column, ['quickEdit'])\n : {\n ...column,\n quickEdit: {\n ...this.columnToQuickEdit(column),\n ...quickEdit,\n saveImmediately: true,\n mode: 'inline'\n }\n };\n });\n } else if (props.addable || props.editable || isCreateMode) {\n columns = columns.map(column => {\n const quickEdit =\n !isCreateMode && column.hasOwnProperty('quickEditOnUpdate')\n ? column.quickEditOnUpdate\n : column.quickEdit;\n\n return quickEdit === false\n ? omit(column, ['quickEdit'])\n : {\n ...column,\n quickEdit: {\n ...this.columnToQuickEdit(column),\n ...quickEdit,\n saveImmediately: true,\n mode: 'inline'\n }\n };\n });\n\n props.editable &&\n btns.push({\n children: ({\n key,\n rowIndex,\n data,\n offset\n }: {\n key: any;\n rowIndex: number;\n data: any;\n offset: number;\n }) =>\n ~this.state.editIndex || (data && data.__isPlaceholder) ? null : (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('Table.editRow')}\n tooltipContainer={\n env && env.getModalContainer\n ? env.getModalContainer\n : undefined\n }\n onClick={() => this.startEdit(rowIndex + offset)}\n >\n {props.updateBtnLabel || props.editBtnLabel ? (\n <span>{props.updateBtnLabel || props.editBtnLabel}</span>\n ) : null}\n {/* 兼容之前的写法 */}\n {typeof props.updateBtnIcon !== 'undefined' ? (\n props.updateBtnIcon ? (\n <Icon icon={props.updateBtnIcon} className=\"icon\" />\n ) : null\n ) : props.editBtnIcon ? (\n <Icon icon={props.editBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n )\n });\n\n btns.push({\n children: ({\n key,\n rowIndex,\n offset\n }: {\n key: any;\n rowIndex: number;\n offset: number;\n }) =>\n this.state.editIndex === rowIndex + offset ? (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('save')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.confirmEdit}\n >\n {props.confirmBtnLabel ? (\n <span>{props.confirmBtnLabel}</span>\n ) : null}\n {props.confirmBtnIcon ? (\n <Icon icon={props.confirmBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n ) : null\n });\n\n btns.push({\n children: ({\n key,\n rowIndex,\n offset\n }: {\n key: any;\n rowIndex: number;\n offset: number;\n }) =>\n this.state.editIndex === rowIndex + offset ? (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('cancel')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.cancelEdit}\n >\n {props.cancelBtnLabel ? (\n <span>{props.cancelBtnLabel}</span>\n ) : null}\n {props.cancelBtnIcon ? (\n <Icon icon={props.cancelBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n ) : null\n });\n }\n\n if (props.removable) {\n btns.push({\n children: ({\n key,\n rowIndex,\n data,\n offset\n }: {\n key: any;\n rowIndex: number;\n data: any;\n offset: number;\n }) =>\n (~this.state.editIndex || (data && data.__isPlaceholder)) &&\n needConfirm !== false ? null : (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('Table.deleteRow')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.removeItem.bind(this, rowIndex + offset)}\n >\n {props.deleteBtnLabel ? (\n <span>{props.deleteBtnLabel}</span>\n ) : null}\n {props.deleteBtnIcon ? (\n <Icon icon={props.deleteBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n )\n });\n }\n\n if (btns.length) {\n let operation = columns.find(item => item.type === 'operation');\n\n if (!operation) {\n operation = {\n type: 'operation',\n buttons: [],\n label: __('Table.operation'),\n className: 'v-middle nowrap',\n fixed: 'right',\n width: '1%',\n innerClassName: 'm-n'\n };\n columns.push(operation);\n }\n\n operation.buttons = Array.isArray(operation.buttons)\n ? operation.buttons.concat()\n : [];\n operation.buttons.unshift.apply(operation.buttons, btns);\n }\n\n if (showIndex) {\n columns.unshift({\n label: __('Table.index'),\n width: '1%',\n children: (props: any) => {\n return <td>{props.offset + props.data.index + 1}</td>;\n }\n });\n }\n\n return columns;\n }\n\n columnToQuickEdit(column: any) {\n const quickEdit: any = {\n type: 'input-text'\n };\n\n if (\n (column.type &&\n /^input\\-|(?:select|picker|checkbox|checkboxes|editor|transfer|radios)$/i.test(\n column.type\n )) ||\n ~['textarea', 'combo', 'condition-builder', 'group'].indexOf(column.type)\n ) {\n return {\n ...column,\n label: ''\n };\n }\n\n return quickEdit;\n }\n\n handleTableSave(\n rows: Array<object> | object,\n diff: Array<object> | object,\n rowIndexes: Array<string> | string\n ) {\n const {perPage} = this.props;\n\n if (~this.state.editIndex) {\n const items = this.state.items.concat();\n const origin = items[this.state.editIndex];\n\n if (!origin) {\n return;\n }\n\n const value: any = {\n ...rows\n };\n this.entries.set(value, this.entries.get(origin) || this.entityId++);\n this.entries.delete(origin);\n items.splice(this.state.editIndex, 1, value);\n\n this.setState({\n items\n });\n return;\n }\n\n const page = this.state.page;\n let items = this.state.items.concat();\n\n if (Array.isArray(rows)) {\n (rowIndexes as Array<string>).forEach((rowIndex, index) => {\n const indexes = rowIndex.split('.').map(item => parseInt(item, 10));\n\n if (page && page > 1 && typeof perPage === 'number') {\n indexes[0] += (page - 1) * perPage;\n }\n const origin = getTree(items, indexes);\n\n const data = {\n ...origin,\n ...(diff as Array<object>)[index]\n };\n\n items = spliceTree(items, indexes, 1, data);\n });\n } else {\n const indexes = (rowIndexes as string)\n .split('.')\n .map(item => parseInt(item, 10));\n\n if (page && page > 1 && typeof perPage === 'number') {\n indexes[0] += (page - 1) * perPage;\n }\n\n const origin = getTree(items, indexes);\n const data = {\n ...origin,\n ...diff\n };\n\n items = spliceTree(items, indexes, 1, data);\n this.entries.set(data, this.entries.get(origin) || this.entityId++);\n // this.entries.delete(origin); // 反正最后都会清理的,先不删了吧。\n }\n\n this.setState(\n {\n items\n },\n this.emitValue\n );\n }\n\n handleSaveTableOrder(moved: Array<object>, rows: Array<object>) {\n const {onChange} = this.props;\n\n onChange(rows.map((item: object) => ({...item})));\n }\n\n handlePageChange(page: number) {\n this.setState({page});\n }\n\n removeEntry(entry: any) {\n if (this.entries.has(entry)) {\n this.entries.delete(entry);\n }\n }\n\n getEntryId(entry: any) {\n if (!this.entries.has(entry)) {\n this.entries.set(entry, this.entityId++);\n }\n\n return String(this.entries.get(entry));\n }\n\n render() {\n const {\n className,\n value,\n showAddBtn,\n disabled,\n render,\n placeholder,\n draggable,\n addable,\n columnsTogglable,\n combineNum,\n combineFromIndex,\n translate: __,\n canAccessSuperData,\n expandConfig,\n affixRow,\n prefixRow,\n formInited,\n perPage,\n classnames: cx\n } = this.props;\n\n if (formInited === false) {\n return null;\n }\n\n let items = this.state.items;\n\n let showPager = false;\n const page = this.state.page || 1;\n let offset = 0;\n let lastPage = 1;\n if (typeof perPage === 'number' && perPage && items.length > perPage) {\n lastPage = Math.ceil(items.length / perPage);\n items = items.slice((page - 1) * perPage, page * perPage);\n showPager = true;\n offset = (page - 1) * perPage;\n }\n\n return (\n <div className={cx('InputTable', className)}>\n {render(\n 'body',\n {\n type: 'table',\n placeholder: __(placeholder),\n columns: this.state.columns,\n affixHeader: false,\n prefixRow,\n affixRow\n },\n {\n value: undefined,\n saveImmediately: true,\n disabled,\n draggable: draggable && !~this.state.editIndex,\n items: items,\n getEntryId: this.getEntryId,\n onSave: this.handleTableSave,\n onSaveOrder: this.handleSaveTableOrder,\n buildItemProps: this.buildItemProps,\n quickEditFormRef: this.subFormRef,\n columnsTogglable: columnsTogglable,\n combineNum: combineNum,\n combineFromIndex: combineFromIndex,\n expandConfig,\n canAccessSuperData,\n reUseRow: false,\n offset\n }\n )}\n {(addable && showAddBtn !== false) || showPager ? (\n <div className={cx('InputTable-toolbar')}>\n {addable && showAddBtn !== false ? (\n <Button\n disabled={disabled}\n size=\"sm\"\n onClick={() => this.addItem(this.state.items.length)}\n >\n <Icon icon=\"plus\" className=\"icon\" />\n <span>{__('Combo.add')}</span>\n </Button>\n ) : null}\n\n {showPager\n ? render(\n 'pager',\n {\n type: 'pagination'\n },\n {\n activePage: page,\n lastPage: lastPage,\n onPageChange: this.handlePageChange,\n className: 'InputTable-pager'\n }\n )\n : null}\n </div>\n ) : null}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-table'\n})\nexport class TableControlRenderer extends FormTable {}\n"
|
11
|
+
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport Button from '../../components/Button';\nimport {\n createObject,\n getTree,\n getVariable,\n setVariable,\n spliceTree\n} from '../../utils/helper';\nimport {RendererData, Action, Api, Payload, ApiObject} from '../../types';\nimport {isEffectiveApi} from '../../utils/api';\nimport {filter} from '../../utils/tpl';\nimport omit from 'lodash/omit';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport findIndex from 'lodash/findIndex';\nimport {SimpleMap} from '../../utils/SimpleMap';\nimport {Icon} from '../../components/icons';\nimport {TableSchema} from '../Table';\nimport {SchemaApi} from '../../Schema';\nimport find from 'lodash/find';\n\nexport interface TableControlSchema\n extends FormBaseControl,\n Omit<TableSchema, 'type'> {\n type: 'input-table';\n\n /**\n * 可新增\n */\n addable?: boolean;\n\n /**\n * 可复制新增\n */\n copyable?: boolean;\n\n /**\n * 复制按钮文字\n */\n copyBtnLabel?: string;\n\n /**\n * 复制按钮图标\n */\n copyBtnIcon?: string;\n\n /**\n * 是否显示复制按钮\n */\n copyAddBtn?: boolean;\n\n /**\n * 是否可以拖拽排序\n */\n draggable?: boolean;\n\n /**\n * 新增 API\n */\n addApi?: SchemaApi;\n\n /**\n * 新增按钮文字\n */\n addBtnLabel?: string;\n\n /**\n * 新增按钮图标\n */\n addBtnIcon?: string;\n\n /**\n * 显示新增按钮\n */\n showAddBtn?: boolean;\n\n /**\n * 可否删除\n */\n removable?: boolean;\n\n /**\n * 删除的 API\n */\n deleteApi?: SchemaApi;\n\n /**\n * 可否编辑\n */\n editable?: boolean;\n\n /**\n * 更新按钮名称\n */\n editBtnLabel?: string;\n\n /**\n * 更新按钮图标\n */\n editBtnIcon?: string;\n\n /**\n * 确认按钮文字\n */\n confirmBtnLabel?: string;\n\n /**\n * 确认按钮图标\n */\n confirmBtnIcon?: string;\n\n /**\n * 取消按钮文字\n */\n cancelBtnLabel?: string;\n\n /**\n * 取消按钮图标\n */\n cancelBtnIcon?: string;\n\n /**\n * 删除按钮文字\n */\n deleteBtnLabel?: string;\n\n /**\n * 删除按钮图标\n */\n deleteBtnIcon?: string;\n\n /**\n * 更新 API\n */\n updateApi?: SchemaApi;\n\n /**\n * 初始值,新增的时候\n */\n scaffold?: any;\n\n /**\n * 删除确认文字\n */\n deleteConfirmText?: string;\n\n /**\n * 值字段\n */\n valueField?: string;\n\n /**\n * 是否为确认的编辑模式。\n */\n needConfirm?: boolean;\n\n /**\n * 是否可以访问父级数据,正常 combo 已经关联到数组成员,是不能访问父级数据的。\n */\n canAccessSuperData?: boolean;\n\n /**\n * 是否显示序号\n */\n showIndex?: boolean;\n\n /**\n * 分页个数,默认不分页\n */\n perPage?: number;\n}\n\nexport interface TableProps\n extends FormControlProps,\n Omit<\n TableControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {}\n\nexport interface TableState {\n items: Array<any>;\n raw?: any;\n columns: Array<any>;\n editIndex: number;\n isCreateMode?: boolean;\n page?: number;\n}\n\nexport default class FormTable extends React.Component<TableProps, TableState> {\n static defaultProps = {\n placeholder: '空',\n scaffold: {},\n addBtnIcon: 'plus',\n copyBtnIcon: 'copy',\n editBtnIcon: 'pencil',\n deleteBtnIcon: 'minus',\n confirmBtnIcon: 'check',\n cancelBtnIcon: 'close',\n valueField: ''\n };\n\n static propsList: Array<string> = [\n 'onChange',\n 'name',\n 'columns',\n 'label',\n 'scaffold',\n 'showAddBtn',\n 'addable',\n 'removable',\n 'copyable',\n 'editable',\n 'addApi',\n 'updateApi',\n 'deleteApi',\n 'needConfirm',\n 'canAccessSuperData',\n 'formStore'\n ];\n\n entries: SimpleMap<any, number>;\n entityId: number = 1;\n subForms: any = {};\n rowPrinstine: Array<any> = [];\n editting: any = {};\n constructor(props: TableProps) {\n super(props);\n\n this.state = {\n columns: this.buildColumns(props),\n editIndex: -1,\n items: Array.isArray(props.value) ? props.value.concat() : []\n };\n\n this.entries = new SimpleMap();\n this.buildItemProps = this.buildItemProps.bind(this);\n this.confirmEdit = this.confirmEdit.bind(this);\n this.cancelEdit = this.cancelEdit.bind(this);\n this.handleSaveTableOrder = this.handleSaveTableOrder.bind(this);\n this.handleTableSave = this.handleTableSave.bind(this);\n this.getEntryId = this.getEntryId.bind(this);\n this.subFormRef = this.subFormRef.bind(this);\n this.handlePageChange = this.handlePageChange.bind(this);\n this.emitValue = this.emitValue.bind(this);\n }\n\n componentDidUpdate(nextProps: TableProps) {\n const props = this.props;\n let toUpdate: any = null;\n\n if (props.columns !== nextProps.columns) {\n toUpdate = {\n ...toUpdate,\n columns: this.buildColumns(props)\n };\n }\n\n if (props.value !== nextProps.value) {\n toUpdate = {\n ...toUpdate,\n items: Array.isArray(props.value) ? props.value.concat() : [],\n editIndex: -1,\n raw: undefined\n };\n }\n\n toUpdate && this.setState(toUpdate);\n }\n\n componentWillUnmount() {\n this.entries.dispose();\n }\n\n subFormRef(form: any, x: number, y: number) {\n this.subForms[`${x}-${y}`] = form;\n }\n\n async validate(): Promise<string | void> {\n const {value, minLength, maxLength, translate: __, columns} = this.props;\n\n // todo: 如果当前正在编辑中,表单提交了,应该先让正在编辑的东西提交然后再做验证。\n if (~this.state.editIndex) {\n return __('Table.editing');\n }\n\n if (minLength && (!Array.isArray(value) || value.length < minLength)) {\n return __('Combo.minLength', {minLength});\n } else if (maxLength && Array.isArray(value) && value.length > maxLength) {\n return __('Combo.maxLength', {maxLength});\n } else {\n const subForms: Array<any> = [];\n Object.keys(this.subForms).forEach(\n key => this.subForms[key] && subForms.push(this.subForms[key])\n );\n if (subForms.length) {\n const results = await Promise.all(\n subForms.map(item => item.validate())\n );\n\n let msg = ~results.indexOf(false) ? __('Form.validateFailed') : '';\n let uniqueColumn = '';\n\n if (\n !msg &&\n Array.isArray(columns) &&\n Array.isArray(value) &&\n columns.some(item => {\n if (item.unique && item.name) {\n let exists: Array<any> = [];\n\n return value.some((obj: any) => {\n const value = getVariable(obj, item.name);\n\n if (~exists.indexOf(value)) {\n uniqueColumn = `${item.label || item.name}`;\n return true;\n }\n\n exists.push(value);\n return false;\n });\n }\n\n return false;\n })\n ) {\n msg = __('InputTable.uniqueError', {\n label: uniqueColumn\n });\n }\n\n return msg;\n }\n }\n }\n\n emitValue() {\n const items = this.state.items.filter(item => !item.__isPlaceholder);\n const {onChange} = this.props;\n onChange?.(items);\n }\n\n async doAction(action: Action, ctx: RendererData, ...rest: Array<any>) {\n const {\n onAction,\n valueField,\n env,\n onChange,\n editable,\n needConfirm,\n addable,\n addApi,\n translate: __\n } = this.props;\n\n if (action.actionType === 'add') {\n if (addable === false) {\n return;\n }\n\n const items = this.state.items.concat();\n\n if (addApi || action.payload) {\n let toAdd = null;\n\n if (isEffectiveApi(addApi, ctx)) {\n const payload = await env.fetcher(addApi, ctx);\n if (payload && !payload.ok) {\n env.notify('error', payload.msg || __('fetchFailed'));\n return;\n } else if (payload && payload.ok) {\n toAdd = payload.data;\n }\n } else {\n toAdd = dataMapping(action.payload, ctx);\n }\n\n toAdd = Array.isArray(toAdd) ? toAdd : [toAdd];\n toAdd.forEach((toAdd: any) => {\n if (\n !valueField ||\n !find(\n items,\n item => item[valueField as string] == toAdd[valueField as string]\n )\n ) {\n // 不要重复加入\n items.push(toAdd);\n }\n });\n\n this.setState(\n {\n items\n },\n () => {\n this.emitValue();\n\n if (toAdd.length === 1 && needConfirm !== false) {\n this.startEdit(items.length - 1, true);\n }\n }\n );\n\n return;\n } else {\n return this.addItem(items.length - 1);\n }\n } else if (\n action.actionType === 'remove' ||\n action.actionType === 'delete'\n ) {\n if (!valueField) {\n return env.alert(__('Table.valueField'));\n } else if (!action.payload) {\n return env.alert(__('Table.playload'));\n }\n\n const items = this.state.items.concat();\n let toRemove: any = dataMapping(action.payload, ctx);\n toRemove = Array.isArray(toRemove) ? toRemove : [toRemove];\n\n toRemove.forEach((toRemove: any) => {\n const idx = findIndex(\n items,\n item => item[valueField as string] == toRemove[valueField as string]\n );\n if (~idx) {\n items.splice(idx, 1);\n }\n });\n\n this.setState(\n {\n items\n },\n () => this.emitValue()\n );\n\n // todo 如果配置删除 Api 怎么办?\n return;\n }\n\n return onAction && onAction(action, ctx, ...rest);\n }\n\n copyItem(index: number) {\n const {needConfirm} = this.props;\n const items = this.state.items.concat();\n\n items.splice(index + 1, 0, items[index]);\n index = Math.min(index + 1, items.length - 1);\n this.setState(\n {\n items\n },\n () => {\n if (needConfirm === false) {\n this.emitValue();\n } else {\n this.startEdit(index, true);\n }\n }\n );\n }\n\n addItem(index: number) {\n const {needConfirm, scaffold, columns} = this.props;\n const items = this.state.items.concat();\n let value: any = {\n __isPlaceholder: true\n };\n\n if (Array.isArray(columns)) {\n columns.forEach(column => {\n if (\n typeof column.value !== 'undefined' &&\n typeof column.name === 'string'\n ) {\n setVariable(value, column.name, column.value);\n }\n });\n }\n\n value = {\n ...value,\n ...scaffold\n };\n\n if (needConfirm === false) {\n delete value.__isPlaceholder;\n }\n\n items.splice(index + 1, 0, value);\n index = Math.min(index + 1, items.length - 1);\n\n this.setState(\n {\n items\n },\n () => {\n if (needConfirm === false) {\n this.emitValue();\n } else {\n this.startEdit(index, true);\n }\n }\n );\n }\n\n startEdit(index: number, isCreate: boolean = false) {\n this.setState({\n editIndex: index,\n isCreateMode: isCreate,\n raw: this.state.items[index],\n\n columns: this.buildColumns(this.props, isCreate)\n });\n }\n\n async confirmEdit() {\n const {addApi, updateApi, data, env, translate: __} = this.props;\n\n // form 是 lazyChange 的,先让他们 flush, 即把未提交的数据提交。\n const subForms: Array<any> = [];\n Object.keys(this.subForms).forEach(\n key => this.subForms[key] && subForms.push(this.subForms[key])\n );\n subForms.forEach(form => form.flush());\n\n const items = this.state.items.concat();\n let item = {\n ...items[this.state.editIndex]\n };\n const isNew = item.__isPlaceholder;\n\n let remote: Payload | null = null;\n if (isNew && isEffectiveApi(addApi, createObject(data, item))) {\n remote = await env.fetcher(addApi, createObject(data, item));\n } else if (isEffectiveApi(updateApi, createObject(data, item))) {\n remote = await env.fetcher(updateApi, createObject(data, item));\n }\n\n if (remote && !remote.ok) {\n env.notify('error', remote.msg || __('saveFailed'));\n return;\n } else if (remote && remote.ok) {\n item = {\n ...(((isNew ? addApi : updateApi) as ApiObject).replaceData\n ? {}\n : item),\n ...remote.data\n };\n }\n\n delete item.__isPlaceholder;\n items.splice(this.state.editIndex, 1, item);\n\n this.setState(\n {\n editIndex: -1,\n items: items,\n raw: undefined\n },\n this.emitValue\n );\n }\n\n cancelEdit() {\n let items = this.state.items.concat();\n\n if (this.state.isCreateMode) {\n items = items.filter(item => !item.__isPlaceholder);\n } else if (this.state.raw) {\n items.splice(this.state.editIndex, 1, this.state.raw);\n }\n\n this.setState(\n {\n editIndex: -1,\n raw: undefined,\n items: items\n },\n this.emitValue\n );\n }\n\n async removeItem(index: number) {\n const {\n value,\n onChange,\n deleteApi,\n deleteConfirmText,\n env,\n data,\n translate: __\n } = this.props;\n\n let newValue = Array.isArray(value) ? value.concat() : [];\n const item = newValue[index];\n\n if (!item) {\n return;\n }\n\n const ctx = createObject(data, item);\n if (isEffectiveApi(deleteApi, ctx)) {\n const confirmed = await env.confirm(\n deleteConfirmText ? filter(deleteConfirmText, ctx) : __('deleteConfirm')\n );\n if (!confirmed) {\n // 如果不确认,则跳过!\n return;\n }\n\n const result = await env.fetcher(deleteApi, ctx);\n\n if (!result.ok) {\n env.notify('error', __('deleteFailed'));\n return;\n }\n }\n\n this.removeEntry(item);\n newValue.splice(index, 1);\n onChange(newValue);\n }\n\n buildItemProps(item: any, index: number) {\n if (this.props.needConfirm === false) {\n return {\n quickEditEnabled: true\n };\n } else if (\n !this.props.editable &&\n !this.props.addable &&\n !this.state.isCreateMode\n ) {\n return null;\n }\n\n const perPage = this.props.perPage;\n const page = this.state.page || 1;\n let offset = 0;\n if (typeof perPage === 'number' && perPage) {\n offset = (page - 1) * perPage;\n }\n\n return {\n quickEditEnabled: this.state.editIndex === index + offset\n };\n }\n\n buildColumns(props: TableProps, isCreateMode = false): Array<any> {\n const env = this.props.env;\n let columns: Array<any> = Array.isArray(props.columns)\n ? props.columns.concat()\n : [];\n const ns = this.props.classPrefix;\n const __ = this.props.translate;\n const needConfirm = this.props.needConfirm;\n const showIndex = this.props.showIndex;\n\n let btns = [];\n if (props.addable && props.showAddBtn !== false) {\n btns.push({\n children: ({\n key,\n rowIndex,\n offset\n }: {\n key: any;\n rowIndex: number;\n offset: number;\n }) =>\n ~this.state.editIndex && needConfirm !== false ? null : (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('Table.addRow')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.addItem.bind(this, rowIndex + offset, undefined)}\n >\n {props.addBtnLabel ? <span>{props.addBtnLabel}</span> : null}\n {props.addBtnIcon ? (\n <Icon icon={props.addBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n )\n });\n }\n\n if (props.copyable && props.showCopyBtn !== false) {\n btns.push({\n children: ({\n key,\n rowIndex,\n offset\n }: {\n key: any;\n rowIndex: number;\n offset: number;\n }) =>\n ~this.state.editIndex && needConfirm !== false ? null : (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('Table.copyRow')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.copyItem.bind(this, rowIndex + offset, undefined)}\n >\n {props.copyBtnLabel ? <span>{props.copyBtnLabel}</span> : null}\n {props.copyBtnIcon ? (\n <Icon icon={props.copyBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n )\n });\n }\n\n if (props.needConfirm === false) {\n columns = columns.map(column => {\n const quickEdit = column.quickEdit;\n\n return quickEdit === false\n ? omit(column, ['quickEdit'])\n : {\n ...column,\n quickEdit: {\n ...this.columnToQuickEdit(column),\n ...quickEdit,\n saveImmediately: true,\n mode: 'inline'\n }\n };\n });\n } else if (props.addable || props.editable || isCreateMode) {\n columns = columns.map(column => {\n const quickEdit =\n !isCreateMode && column.hasOwnProperty('quickEditOnUpdate')\n ? column.quickEditOnUpdate\n : column.quickEdit;\n\n return quickEdit === false\n ? omit(column, ['quickEdit'])\n : {\n ...column,\n quickEdit: {\n ...this.columnToQuickEdit(column),\n ...quickEdit,\n saveImmediately: true,\n mode: 'inline'\n }\n };\n });\n\n props.editable &&\n btns.push({\n children: ({\n key,\n rowIndex,\n data,\n offset\n }: {\n key: any;\n rowIndex: number;\n data: any;\n offset: number;\n }) =>\n ~this.state.editIndex || (data && data.__isPlaceholder) ? null : (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('Table.editRow')}\n tooltipContainer={\n env && env.getModalContainer\n ? env.getModalContainer\n : undefined\n }\n onClick={() => this.startEdit(rowIndex + offset)}\n >\n {props.updateBtnLabel || props.editBtnLabel ? (\n <span>{props.updateBtnLabel || props.editBtnLabel}</span>\n ) : null}\n {/* 兼容之前的写法 */}\n {typeof props.updateBtnIcon !== 'undefined' ? (\n props.updateBtnIcon ? (\n <Icon icon={props.updateBtnIcon} className=\"icon\" />\n ) : null\n ) : props.editBtnIcon ? (\n <Icon icon={props.editBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n )\n });\n\n btns.push({\n children: ({\n key,\n rowIndex,\n offset\n }: {\n key: any;\n rowIndex: number;\n offset: number;\n }) =>\n this.state.editIndex === rowIndex + offset ? (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('save')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.confirmEdit}\n >\n {props.confirmBtnLabel ? (\n <span>{props.confirmBtnLabel}</span>\n ) : null}\n {props.confirmBtnIcon ? (\n <Icon icon={props.confirmBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n ) : null\n });\n\n btns.push({\n children: ({\n key,\n rowIndex,\n offset\n }: {\n key: any;\n rowIndex: number;\n offset: number;\n }) =>\n this.state.editIndex === rowIndex + offset ? (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('cancel')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.cancelEdit}\n >\n {props.cancelBtnLabel ? (\n <span>{props.cancelBtnLabel}</span>\n ) : null}\n {props.cancelBtnIcon ? (\n <Icon icon={props.cancelBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n ) : null\n });\n }\n\n if (props.removable) {\n btns.push({\n children: ({\n key,\n rowIndex,\n data,\n offset\n }: {\n key: any;\n rowIndex: number;\n data: any;\n offset: number;\n }) =>\n (~this.state.editIndex || (data && data.__isPlaceholder)) &&\n needConfirm !== false ? null : (\n <Button\n classPrefix={ns}\n size=\"sm\"\n key={key}\n level=\"link\"\n tooltip={__('Table.deleteRow')}\n tooltipContainer={\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n onClick={this.removeItem.bind(this, rowIndex + offset)}\n >\n {props.deleteBtnLabel ? (\n <span>{props.deleteBtnLabel}</span>\n ) : null}\n {props.deleteBtnIcon ? (\n <Icon icon={props.deleteBtnIcon} className=\"icon\" />\n ) : null}\n </Button>\n )\n });\n }\n\n if (btns.length) {\n let operation = columns.find(item => item.type === 'operation');\n\n if (!operation) {\n operation = {\n type: 'operation',\n buttons: [],\n label: __('Table.operation'),\n className: 'v-middle nowrap',\n fixed: 'right',\n width: '1%',\n innerClassName: 'm-n'\n };\n columns.push(operation);\n }\n\n operation.buttons = Array.isArray(operation.buttons)\n ? operation.buttons.concat()\n : [];\n operation.buttons.unshift.apply(operation.buttons, btns);\n }\n\n if (showIndex) {\n columns.unshift({\n label: __('Table.index'),\n width: '1%',\n children: (props: any) => {\n return <td>{props.offset + props.data.index + 1}</td>;\n }\n });\n }\n\n return columns;\n }\n\n columnToQuickEdit(column: any) {\n const quickEdit: any = {\n type: 'input-text'\n };\n\n if (\n (column.type &&\n /^input\\-|(?:select|picker|checkbox|checkboxes|editor|transfer|radios)$/i.test(\n column.type\n )) ||\n ~['textarea', 'combo', 'condition-builder', 'group'].indexOf(column.type)\n ) {\n return {\n ...column,\n label: ''\n };\n }\n\n return quickEdit;\n }\n\n handleTableSave(\n rows: Array<object> | object,\n diff: Array<object> | object,\n rowIndexes: Array<string> | string\n ) {\n const {perPage} = this.props;\n\n if (~this.state.editIndex) {\n const items = this.state.items.concat();\n const origin = items[this.state.editIndex];\n\n if (!origin) {\n return;\n }\n\n const value: any = {\n ...rows\n };\n this.entries.set(value, this.entries.get(origin) || this.entityId++);\n this.entries.delete(origin);\n items.splice(this.state.editIndex, 1, value);\n\n this.setState({\n items\n });\n return;\n }\n\n const page = this.state.page;\n let items = this.state.items.concat();\n\n if (Array.isArray(rows)) {\n (rowIndexes as Array<string>).forEach((rowIndex, index) => {\n const indexes = rowIndex.split('.').map(item => parseInt(item, 10));\n\n if (page && page > 1 && typeof perPage === 'number') {\n indexes[0] += (page - 1) * perPage;\n }\n const origin = getTree(items, indexes);\n\n const data = {\n ...origin,\n ...(diff as Array<object>)[index]\n };\n\n items = spliceTree(items, indexes, 1, data);\n });\n } else {\n const indexes = (rowIndexes as string)\n .split('.')\n .map(item => parseInt(item, 10));\n\n if (page && page > 1 && typeof perPage === 'number') {\n indexes[0] += (page - 1) * perPage;\n }\n\n const origin = getTree(items, indexes);\n const data = {\n ...origin,\n ...diff\n };\n\n items = spliceTree(items, indexes, 1, data);\n this.entries.set(data, this.entries.get(origin) || this.entityId++);\n // this.entries.delete(origin); // 反正最后都会清理的,先不删了吧。\n }\n\n this.setState(\n {\n items\n },\n this.emitValue\n );\n }\n\n handleSaveTableOrder(moved: Array<object>, rows: Array<object>) {\n const {onChange} = this.props;\n\n onChange(rows.map((item: object) => ({...item})));\n }\n\n handlePageChange(page: number) {\n this.setState({page});\n }\n\n removeEntry(entry: any) {\n if (this.entries.has(entry)) {\n this.entries.delete(entry);\n }\n }\n\n getEntryId(entry: any) {\n if (!this.entries.has(entry)) {\n this.entries.set(entry, this.entityId++);\n }\n\n return String(this.entries.get(entry));\n }\n\n render() {\n const {\n className,\n value,\n showAddBtn,\n disabled,\n render,\n placeholder,\n draggable,\n addable,\n columnsTogglable,\n combineNum,\n combineFromIndex,\n translate: __,\n canAccessSuperData,\n expandConfig,\n affixRow,\n prefixRow,\n formInited,\n perPage,\n classnames: cx,\n rowClassName,\n rowClassNameExpr\n } = this.props;\n\n if (formInited === false) {\n return null;\n }\n\n let items = this.state.items;\n\n let showPager = false;\n const page = this.state.page || 1;\n let offset = 0;\n let lastPage = 1;\n if (typeof perPage === 'number' && perPage && items.length > perPage) {\n lastPage = Math.ceil(items.length / perPage);\n items = items.slice((page - 1) * perPage, page * perPage);\n showPager = true;\n offset = (page - 1) * perPage;\n }\n\n return (\n <div className={cx('InputTable', className)}>\n {render(\n 'body',\n {\n type: 'table',\n placeholder: __(placeholder),\n columns: this.state.columns,\n affixHeader: false,\n prefixRow,\n affixRow\n },\n {\n value: undefined,\n saveImmediately: true,\n disabled,\n draggable: draggable && !~this.state.editIndex,\n items: items,\n getEntryId: this.getEntryId,\n onSave: this.handleTableSave,\n onSaveOrder: this.handleSaveTableOrder,\n buildItemProps: this.buildItemProps,\n quickEditFormRef: this.subFormRef,\n columnsTogglable: columnsTogglable,\n combineNum: combineNum,\n combineFromIndex: combineFromIndex,\n expandConfig,\n canAccessSuperData,\n reUseRow: false,\n offset,\n rowClassName,\n rowClassNameExpr\n }\n )}\n {(addable && showAddBtn !== false) || showPager ? (\n <div className={cx('InputTable-toolbar')}>\n {addable && showAddBtn !== false ? (\n <Button\n disabled={disabled}\n size=\"sm\"\n onClick={() => this.addItem(this.state.items.length)}\n >\n <Icon icon=\"plus\" className=\"icon\" />\n <span>{__('Combo.add')}</span>\n </Button>\n ) : null}\n\n {showPager\n ? render(\n 'pager',\n {\n type: 'pagination'\n },\n {\n activePage: page,\n lastPage: lastPage,\n onPageChange: this.handlePageChange,\n className: 'InputTable-pager'\n }\n )\n : null}\n </div>\n ) : null}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-table'\n})\nexport class TableControlRenderer extends FormTable {}\n"
|
12
12
|
]
|
13
13
|
}
|