@nokecy/qc-ui 1.1.74 → 1.1.75
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/dist/cjs/dialogSelect/index.d.ts +2 -2
- package/dist/cjs/dialogSelect/index.js +65 -10
- package/dist/cjs/entitySelect/index.d.ts +57 -0
- package/dist/cjs/entitySelect/index.js +172 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/readPretty/arrayTable.d.ts +6 -0
- package/dist/cjs/readPretty/arrayTable.js +156 -0
- package/dist/cjs/readPretty/controls.d.ts +11 -0
- package/dist/cjs/readPretty/controls.js +68 -0
- package/dist/cjs/readPretty/decimal.d.ts +4 -0
- package/dist/cjs/readPretty/decimal.js +28 -0
- package/dist/cjs/readPretty/formily.d.ts +2 -0
- package/dist/cjs/readPretty/formily.js +71 -0
- package/dist/cjs/readPretty/hoistStatics.d.ts +1 -0
- package/dist/cjs/readPretty/hoistStatics.js +37 -0
- package/dist/cjs/readPretty/index.d.ts +11 -0
- package/dist/cjs/readPretty/index.js +70 -0
- package/dist/cjs/readPretty/selectValue.d.ts +7 -0
- package/dist/cjs/readPretty/selectValue.js +60 -0
- package/dist/cjs/readPretty/values.d.ts +4 -0
- package/dist/cjs/readPretty/values.js +49 -0
- package/dist/esm/dialogSelect/index.d.ts +2 -2
- package/dist/esm/dialogSelect/index.js +59 -4
- package/dist/esm/entitySelect/index.d.ts +57 -0
- package/dist/esm/entitySelect/index.js +164 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/readPretty/arrayTable.d.ts +6 -0
- package/dist/esm/readPretty/arrayTable.js +147 -0
- package/dist/esm/readPretty/controls.d.ts +11 -0
- package/dist/esm/readPretty/controls.js +62 -0
- package/dist/esm/readPretty/decimal.d.ts +4 -0
- package/dist/esm/readPretty/decimal.js +22 -0
- package/dist/esm/readPretty/formily.d.ts +2 -0
- package/dist/esm/readPretty/formily.js +63 -0
- package/dist/esm/readPretty/hoistStatics.d.ts +1 -0
- package/dist/esm/readPretty/hoistStatics.js +31 -0
- package/dist/esm/readPretty/index.d.ts +11 -0
- package/dist/esm/readPretty/index.js +12 -0
- package/dist/esm/readPretty/selectValue.d.ts +7 -0
- package/dist/esm/readPretty/selectValue.js +53 -0
- package/dist/esm/readPretty/values.d.ts +4 -0
- package/dist/esm/readPretty/values.js +43 -0
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
|
@@ -43,6 +43,6 @@ interface IDialogSelectProps extends SelectProps<any> {
|
|
|
43
43
|
/** 选择窗口里使用的表格组件,默认 `AgGridPlus`;宿主可注入自己封装过的表格基座。 */
|
|
44
44
|
gridComponent?: React.ComponentType<any>;
|
|
45
45
|
}
|
|
46
|
-
declare const DialogSelect: (props: IDialogSelectProps) => React.JSX.Element;
|
|
47
46
|
export { IDialogSelectProps };
|
|
48
|
-
|
|
47
|
+
declare const _default: (props: IDialogSelectProps) => React.ReactElement;
|
|
48
|
+
export default _default;
|
|
@@ -5,15 +5,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _antd = require("antd");
|
|
8
|
+
var _react = require("@formily/react");
|
|
8
9
|
var _antdV = require("@formily/antd-v5");
|
|
9
10
|
var _icons = require("@ant-design/icons");
|
|
10
|
-
var
|
|
11
|
+
var _react2 = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _agGridPlus = require("../ag-grid-plus");
|
|
12
13
|
var _ahooks = require("ahooks");
|
|
13
14
|
var _draggableModal = _interopRequireDefault(require("../draggableModal"));
|
|
14
15
|
var _adapters = require("../adapters");
|
|
16
|
+
var _controls = require("../readPretty/controls");
|
|
17
|
+
var _selectValue = require("../readPretty/selectValue");
|
|
15
18
|
require("./index.less");
|
|
16
|
-
var _excluded = ["request", "columnDefs", "value", "labelField", "valueField", "onChangeItem", "hideBtn", "useAutoComplete", "queryFun", "pagedApiAdapter", "modalWidth", "dialogZIndex", "dialogMode", "dialogPageSize", "dialogPageSizeOptions", "dialogGridKey", "dialogDataSource", "dialogIsRowSelectable", "dialogRenderer", "gridComponent"]
|
|
19
|
+
var _excluded = ["request", "columnDefs", "value", "labelField", "valueField", "onChangeItem", "hideBtn", "useAutoComplete", "queryFun", "pagedApiAdapter", "modalWidth", "dialogZIndex", "dialogMode", "dialogPageSize", "dialogPageSizeOptions", "dialogGridKey", "dialogDataSource", "dialogIsRowSelectable", "dialogRenderer", "gridComponent"],
|
|
20
|
+
_excluded2 = ["request", "columnDefs", "labelField", "valueField", "onChangeItem", "hideBtn", "useAutoComplete", "queryFun", "pagedApiAdapter", "modalWidth", "dialogZIndex", "dialogMode", "dialogPageSize", "dialogPageSizeOptions", "dialogGridKey", "dialogDataSource", "dialogIsRowSelectable", "dialogRenderer", "gridComponent"];
|
|
17
21
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
22
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
19
23
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -37,7 +41,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
37
41
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
38
42
|
/** 选择窗口的行选择模式。 */
|
|
39
43
|
|
|
40
|
-
var
|
|
44
|
+
var DialogSelectInner = function DialogSelectInner(props) {
|
|
41
45
|
var _selectRows$length;
|
|
42
46
|
// 这些是本组件自己的属性,不能透传给 Select(否则会落到 DOM 上触发未知属性告警)。
|
|
43
47
|
var request = props.request,
|
|
@@ -74,7 +78,7 @@ var DialogSelect = function DialogSelect(props) {
|
|
|
74
78
|
_useBoolean2$ = _useBoolean2[1],
|
|
75
79
|
setTrue = _useBoolean2$.setTrue,
|
|
76
80
|
setFalse = _useBoolean2$.setFalse;
|
|
77
|
-
var _useState = (0,
|
|
81
|
+
var _useState = (0, _react2.useState)(undefined),
|
|
78
82
|
_useState2 = _slicedToArray(_useState, 2),
|
|
79
83
|
selectRows = _useState2[0],
|
|
80
84
|
setSelectRows = _useState2[1];
|
|
@@ -123,7 +127,7 @@ var DialogSelect = function DialogSelect(props) {
|
|
|
123
127
|
|
|
124
128
|
// 入口做成输入框内的后缀图标:不占右侧宽度,禁用/只读时不出现。@author nokecy
|
|
125
129
|
var canOpen = !props.disabled && !hideBtn;
|
|
126
|
-
var trigger = canOpen ? /*#__PURE__*/
|
|
130
|
+
var trigger = canOpen ? /*#__PURE__*/_react2.default.createElement("span", {
|
|
127
131
|
className: "qc-dialog-select-trigger",
|
|
128
132
|
role: "button",
|
|
129
133
|
"aria-label": "\u6253\u5F00\u9009\u62E9\u7A97\u53E3",
|
|
@@ -139,7 +143,7 @@ var DialogSelect = function DialogSelect(props) {
|
|
|
139
143
|
setSelectRows(undefined);
|
|
140
144
|
setTrue();
|
|
141
145
|
}
|
|
142
|
-
}, /*#__PURE__*/
|
|
146
|
+
}, /*#__PURE__*/_react2.default.createElement(_icons.SearchOutlined, null)) : undefined;
|
|
143
147
|
var mergedClassName = ['qc-dialog-select', rest.className].filter(Boolean).join(' ');
|
|
144
148
|
var triggerStyle = {
|
|
145
149
|
'--qc-dialog-select-trigger-color': token.colorTextTertiary,
|
|
@@ -152,7 +156,7 @@ var DialogSelect = function DialogSelect(props) {
|
|
|
152
156
|
}, trigger ? {
|
|
153
157
|
suffixIcon: trigger
|
|
154
158
|
} : {});
|
|
155
|
-
return /*#__PURE__*/
|
|
159
|
+
return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, useAutoComplete && !props.labelInValue ? /*#__PURE__*/_react2.default.createElement(_antd.AutoComplete, commonProps) : /*#__PURE__*/_react2.default.createElement(_antdV.Select, _extends({
|
|
156
160
|
maxTagCount: 'responsive',
|
|
157
161
|
filterOption: false
|
|
158
162
|
}, commonProps)), dialogRenderer ? dialogRenderer({
|
|
@@ -160,7 +164,7 @@ var DialogSelect = function DialogSelect(props) {
|
|
|
160
164
|
mode: selectionMode,
|
|
161
165
|
onCancel: close,
|
|
162
166
|
onConfirm: confirmRows
|
|
163
|
-
}) : /*#__PURE__*/
|
|
167
|
+
}) : /*#__PURE__*/_react2.default.createElement(_draggableModal.default, {
|
|
164
168
|
width: modalWidth,
|
|
165
169
|
title: "\u9009\u62E9",
|
|
166
170
|
zIndex: dialogZIndex,
|
|
@@ -173,12 +177,14 @@ var DialogSelect = function DialogSelect(props) {
|
|
|
173
177
|
okButtonProps: {
|
|
174
178
|
disabled: !(selectRows !== null && selectRows !== void 0 && selectRows.length)
|
|
175
179
|
}
|
|
176
|
-
}, selectionMode === 'multiple' && /*#__PURE__*/
|
|
180
|
+
}, selectionMode === 'multiple' && /*#__PURE__*/_react2.default.createElement("div", {
|
|
177
181
|
style: {
|
|
178
182
|
marginBottom: 8,
|
|
179
183
|
textAlign: 'right'
|
|
180
184
|
}
|
|
181
|
-
}, "\u5DF2\u9009 ", (_selectRows$length = selectRows === null || selectRows === void 0 ? void 0 : selectRows.length) !== null && _selectRows$length !== void 0 ? _selectRows$length : 0, " \u9879"), /*#__PURE__*/
|
|
185
|
+
}, "\u5DF2\u9009 ", (_selectRows$length = selectRows === null || selectRows === void 0 ? void 0 : selectRows.length) !== null && _selectRows$length !== void 0 ? _selectRows$length : 0, " \u9879"), /*#__PURE__*/_react2.default.createElement(Grid, _extends({}, gridComponent ? {} : {
|
|
186
|
+
valueEnumContrast: true
|
|
187
|
+
}, {
|
|
182
188
|
gridKey: dialogGridKey,
|
|
183
189
|
dataSource: dialogDataSource,
|
|
184
190
|
hidePagination: localData
|
|
@@ -256,4 +262,53 @@ var DialogSelect = function DialogSelect(props) {
|
|
|
256
262
|
columnDefs: columnDefs
|
|
257
263
|
}))));
|
|
258
264
|
};
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* 选择字段。
|
|
268
|
+
*
|
|
269
|
+
* 不可编辑(自身 disabled、外层 ConfigProvider 禁用,或 Formily 字段 disabled / readOnly / readPretty)时
|
|
270
|
+
* 只显示名称,不保留输入框和弹窗入口;`value` / `defaultValue` 统一规范成 Select 能识别的形状
|
|
271
|
+
* (含 `{ value, label }` 嵌套对象),仅在调用方传了对应属性时才下发,以保持受控/非受控语义。
|
|
272
|
+
*
|
|
273
|
+
* @author nokecy
|
|
274
|
+
*/
|
|
275
|
+
var DialogSelect = (0, _react.observer)(function (props) {
|
|
276
|
+
var _props$disabled;
|
|
277
|
+
var field = (0, _react.useField)();
|
|
278
|
+
var _ConfigProvider$useCo = _antd.ConfigProvider.useConfig(),
|
|
279
|
+
componentDisabled = _ConfigProvider$useCo.componentDisabled;
|
|
280
|
+
var reading = (_props$disabled = props.disabled) !== null && _props$disabled !== void 0 ? _props$disabled : componentDisabled;
|
|
281
|
+
var safeProps = _objectSpread(_objectSpread(_objectSpread({}, props), 'value' in props ? {
|
|
282
|
+
value: (0, _selectValue.normalizeSelectValue)(props.value, props.labelInValue)
|
|
283
|
+
} : {}), 'defaultValue' in props ? {
|
|
284
|
+
defaultValue: (0, _selectValue.normalizeSelectValue)(props.defaultValue, props.labelInValue)
|
|
285
|
+
} : {});
|
|
286
|
+
if (reading || field !== null && field !== void 0 && field.disabled || field !== null && field !== void 0 && field.readOnly || field !== null && field !== void 0 && field.readPretty) {
|
|
287
|
+
// 阅读态只需要选项与值;弹窗、取数等属性不下发。
|
|
288
|
+
var request = safeProps.request,
|
|
289
|
+
columnDefs = safeProps.columnDefs,
|
|
290
|
+
labelField = safeProps.labelField,
|
|
291
|
+
valueField = safeProps.valueField,
|
|
292
|
+
onChangeItem = safeProps.onChangeItem,
|
|
293
|
+
hideBtn = safeProps.hideBtn,
|
|
294
|
+
useAutoComplete = safeProps.useAutoComplete,
|
|
295
|
+
queryFun = safeProps.queryFun,
|
|
296
|
+
pagedApiAdapter = safeProps.pagedApiAdapter,
|
|
297
|
+
modalWidth = safeProps.modalWidth,
|
|
298
|
+
dialogZIndex = safeProps.dialogZIndex,
|
|
299
|
+
dialogMode = safeProps.dialogMode,
|
|
300
|
+
dialogPageSize = safeProps.dialogPageSize,
|
|
301
|
+
dialogPageSizeOptions = safeProps.dialogPageSizeOptions,
|
|
302
|
+
dialogGridKey = safeProps.dialogGridKey,
|
|
303
|
+
dialogDataSource = safeProps.dialogDataSource,
|
|
304
|
+
dialogIsRowSelectable = safeProps.dialogIsRowSelectable,
|
|
305
|
+
dialogRenderer = safeProps.dialogRenderer,
|
|
306
|
+
gridComponent = safeProps.gridComponent,
|
|
307
|
+
selectProps = _objectWithoutProperties(safeProps, _excluded2);
|
|
308
|
+
return /*#__PURE__*/_react2.default.createElement(_controls.Select, _extends({}, selectProps, {
|
|
309
|
+
disabled: true
|
|
310
|
+
}));
|
|
311
|
+
}
|
|
312
|
+
return /*#__PURE__*/_react2.default.createElement(DialogSelectInner, safeProps);
|
|
313
|
+
});
|
|
259
314
|
var _default = exports.default = DialogSelect;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { SelectProps } from 'antd/lib/select';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* 实体选择器的骨架。
|
|
5
|
+
*
|
|
6
|
+
* 各业务模块的实体选择器(线体、车间、物料、供应商……)此前是逐个复制出来的:
|
|
7
|
+
* 取数、防抖、受控值、下拉即查、labelInValue、弹窗表格列,每份各写一遍,
|
|
8
|
+
* 真正不同的只有请求函数、提示语和表格列。骨架收在这里,各模块只填自己的那几项。
|
|
9
|
+
*
|
|
10
|
+
* 骨架不认识任何业务契约:请求函数由调用方传入,不引用任何生成服务客户端。
|
|
11
|
+
*
|
|
12
|
+
* @author nokecy
|
|
13
|
+
*/
|
|
14
|
+
/** 取数入参:与后端分页查询约定一致。 */
|
|
15
|
+
export interface EntitySelectQuery {
|
|
16
|
+
Filter?: string;
|
|
17
|
+
SkipCount?: number;
|
|
18
|
+
MaxResultCount?: number;
|
|
19
|
+
Sorting?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface EntitySelectConfig {
|
|
22
|
+
/** 取数函数,通常是生成服务客户端里的 XxxGetListAsync。 */
|
|
23
|
+
request: (query: EntitySelectQuery) => Promise<any>;
|
|
24
|
+
/** 未选择时的提示语。 */
|
|
25
|
+
placeholder: string;
|
|
26
|
+
/** 弹窗内表格的列定义。 */
|
|
27
|
+
columnDefs: any[];
|
|
28
|
+
/** 下拉项与回填值取哪个字段。传字符串则固定;不传则由 useCode 在 code 与 id 之间切换。 */
|
|
29
|
+
valueField?: string;
|
|
30
|
+
/** 回填标签取哪个字段。不传则不向 DialogSelect 声明,沿用其自身默认。 */
|
|
31
|
+
labelField?: string;
|
|
32
|
+
/** 弹窗宽度,不传则用 DialogSelect 的默认值。 */
|
|
33
|
+
modalWidth?: number;
|
|
34
|
+
/** 单页取数条数,默认 300。 */
|
|
35
|
+
pageSize?: number;
|
|
36
|
+
/** useCode 的默认值,默认 true(以编码而非主键作为值)。 */
|
|
37
|
+
useCodeByDefault?: boolean;
|
|
38
|
+
/** 搜索关键字如何拼成后端过滤表达式,默认按 name 或 code 模糊匹配。返回 undefined 表示不带过滤条件。 */
|
|
39
|
+
buildFilter?: (keyword: string) => string | undefined;
|
|
40
|
+
/** 下拉项显示文本,默认「编码 - 名称」。 */
|
|
41
|
+
renderOptionLabel?: (item: any) => React.ReactNode;
|
|
42
|
+
/** 下拉项需要额外属性时的逃生舱:整项自渲染,优先于 renderOptionLabel。 */
|
|
43
|
+
renderOption?: (item: any, valueField: string) => React.ReactNode;
|
|
44
|
+
/** 联动回调的 prop 名,如 onWorkLineSelect。声明后组件支持 enableLinkage。 */
|
|
45
|
+
linkagePropName?: string;
|
|
46
|
+
/** 选择窗口里使用的表格组件,不传则用 AgGridPlus;宿主可注入自己封装过的表格基座。 */
|
|
47
|
+
gridComponent?: React.ComponentType<any>;
|
|
48
|
+
}
|
|
49
|
+
export interface EntitySelectProps extends SelectProps<any> {
|
|
50
|
+
/** 以编码而非主键作为选中值。 */
|
|
51
|
+
useCode?: boolean;
|
|
52
|
+
/** 选中后把整条记录回调给使用方,需配置 linkagePropName。 */
|
|
53
|
+
enableLinkage?: boolean;
|
|
54
|
+
}
|
|
55
|
+
declare const createEntitySelect: (config: EntitySelectConfig) => React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<any>>;
|
|
56
|
+
export { createEntitySelect };
|
|
57
|
+
export default createEntitySelect;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.createEntitySelect = void 0;
|
|
7
|
+
var _dialogSelect = _interopRequireDefault(require("../dialogSelect"));
|
|
8
|
+
var _ahooks = require("ahooks");
|
|
9
|
+
var _antd = require("antd");
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
12
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
15
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
16
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
17
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
19
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
20
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
21
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
22
|
+
var Option = _antd.Select.Option;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 实体选择器的骨架。
|
|
26
|
+
*
|
|
27
|
+
* 各业务模块的实体选择器(线体、车间、物料、供应商……)此前是逐个复制出来的:
|
|
28
|
+
* 取数、防抖、受控值、下拉即查、labelInValue、弹窗表格列,每份各写一遍,
|
|
29
|
+
* 真正不同的只有请求函数、提示语和表格列。骨架收在这里,各模块只填自己的那几项。
|
|
30
|
+
*
|
|
31
|
+
* 骨架不认识任何业务契约:请求函数由调用方传入,不引用任何生成服务客户端。
|
|
32
|
+
*
|
|
33
|
+
* @author nokecy
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
/** 取数入参:与后端分页查询约定一致。 */
|
|
37
|
+
|
|
38
|
+
var createEntitySelect = exports.createEntitySelect = function createEntitySelect(config) {
|
|
39
|
+
var request = config.request,
|
|
40
|
+
placeholder = config.placeholder,
|
|
41
|
+
columnDefs = config.columnDefs,
|
|
42
|
+
valueField = config.valueField,
|
|
43
|
+
labelField = config.labelField,
|
|
44
|
+
modalWidth = config.modalWidth,
|
|
45
|
+
_config$pageSize = config.pageSize,
|
|
46
|
+
pageSize = _config$pageSize === void 0 ? 300 : _config$pageSize,
|
|
47
|
+
_config$useCodeByDefa = config.useCodeByDefault,
|
|
48
|
+
useCodeByDefault = _config$useCodeByDefa === void 0 ? true : _config$useCodeByDefa,
|
|
49
|
+
_config$buildFilter = config.buildFilter,
|
|
50
|
+
buildFilter = _config$buildFilter === void 0 ? function (keyword) {
|
|
51
|
+
return "(name =* ".concat(keyword, ") | (code =* ").concat(keyword, ")");
|
|
52
|
+
} : _config$buildFilter,
|
|
53
|
+
_config$renderOptionL = config.renderOptionLabel,
|
|
54
|
+
renderOptionLabel = _config$renderOptionL === void 0 ? function (item) {
|
|
55
|
+
return "".concat(item.code, " - ").concat(item.name);
|
|
56
|
+
} : _config$renderOptionL,
|
|
57
|
+
renderOption = config.renderOption,
|
|
58
|
+
linkagePropName = config.linkagePropName,
|
|
59
|
+
gridComponent = config.gridComponent;
|
|
60
|
+
var getData = function getData(_ref) {
|
|
61
|
+
var Filter = _ref.Filter,
|
|
62
|
+
SkipCount = _ref.SkipCount,
|
|
63
|
+
MaxResultCount = _ref.MaxResultCount,
|
|
64
|
+
Sorting = _ref.Sorting;
|
|
65
|
+
return request({
|
|
66
|
+
Filter: Filter ? Filter : undefined,
|
|
67
|
+
SkipCount: SkipCount ? SkipCount : 0,
|
|
68
|
+
MaxResultCount: MaxResultCount ? MaxResultCount : pageSize,
|
|
69
|
+
Sorting: Sorting ? Sorting : undefined
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// props 上不加索引签名、ref 不收窄:这些选择器会被当作 AgGridColumn 的 searchComponent 传递,
|
|
74
|
+
// 任一处收紧都会让 forwardRef 的推断结果与那处的 prop 类型不兼容。
|
|
75
|
+
var EntitySelect = function EntitySelect(props, ref) {
|
|
76
|
+
var _data$items2;
|
|
77
|
+
var _props$useCode = props.useCode,
|
|
78
|
+
useCode = _props$useCode === void 0 ? useCodeByDefault : _props$useCode,
|
|
79
|
+
_props$enableLinkage = props.enableLinkage,
|
|
80
|
+
enableLinkage = _props$enableLinkage === void 0 ? false : _props$enableLinkage;
|
|
81
|
+
var resolvedValueField = valueField !== null && valueField !== void 0 ? valueField : useCode ? 'code' : 'id';
|
|
82
|
+
var onLinkage = linkagePropName ? props[linkagePropName] : undefined;
|
|
83
|
+
var lastLinkedValueRef = (0, _react.useRef)();
|
|
84
|
+
var _useControllableValue = (0, _ahooks.useControllableValue)(props),
|
|
85
|
+
_useControllableValue2 = _slicedToArray(_useControllableValue, 2),
|
|
86
|
+
state = _useControllableValue2[0],
|
|
87
|
+
setState = _useControllableValue2[1];
|
|
88
|
+
var _useRequest = (0, _ahooks.useRequest)(getData, {
|
|
89
|
+
debounceMaxWait: 500,
|
|
90
|
+
manual: true
|
|
91
|
+
}),
|
|
92
|
+
data = _useRequest.data,
|
|
93
|
+
loading = _useRequest.loading,
|
|
94
|
+
run = _useRequest.run,
|
|
95
|
+
cancel = _useRequest.cancel;
|
|
96
|
+
var handleChange = function handleChange(value) {
|
|
97
|
+
var _data$items;
|
|
98
|
+
setState(value);
|
|
99
|
+
if (!value) {
|
|
100
|
+
lastLinkedValueRef.current = undefined;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (!enableLinkage || !onLinkage) return;
|
|
104
|
+
var picked = _typeof(value) === 'object' ? value.value : value;
|
|
105
|
+
var matched = data === null || data === void 0 || (_data$items = data.items) === null || _data$items === void 0 ? void 0 : _data$items.find(function (item) {
|
|
106
|
+
return item[resolvedValueField] === picked;
|
|
107
|
+
});
|
|
108
|
+
if (matched && lastLinkedValueRef.current !== picked) {
|
|
109
|
+
lastLinkedValueRef.current = picked;
|
|
110
|
+
onLinkage(matched);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
114
|
+
ref: ref,
|
|
115
|
+
style: {
|
|
116
|
+
display: 'block',
|
|
117
|
+
width: '100%',
|
|
118
|
+
minWidth: 0,
|
|
119
|
+
maxWidth: '100%'
|
|
120
|
+
}
|
|
121
|
+
}, /*#__PURE__*/_react.default.createElement(_dialogSelect.default, _extends({
|
|
122
|
+
placeholder: placeholder,
|
|
123
|
+
style: {
|
|
124
|
+
width: '100%',
|
|
125
|
+
maxWidth: '100%'
|
|
126
|
+
},
|
|
127
|
+
showSearch: true,
|
|
128
|
+
labelInValue: true,
|
|
129
|
+
filterOption: false
|
|
130
|
+
}, modalWidth ? {
|
|
131
|
+
modalWidth: modalWidth
|
|
132
|
+
} : {}, gridComponent ? {
|
|
133
|
+
gridComponent: gridComponent
|
|
134
|
+
} : {}, props, {
|
|
135
|
+
onSearch: function onSearch(value) {
|
|
136
|
+
run({
|
|
137
|
+
Filter: buildFilter(value)
|
|
138
|
+
});
|
|
139
|
+
},
|
|
140
|
+
onDropdownVisibleChange: function onDropdownVisibleChange(visible) {
|
|
141
|
+
visible && run({});
|
|
142
|
+
},
|
|
143
|
+
loading: loading,
|
|
144
|
+
onBlur: cancel,
|
|
145
|
+
value: JSON.stringify(state) === '{}' ? undefined : state,
|
|
146
|
+
onChange: handleChange,
|
|
147
|
+
valueField: resolvedValueField
|
|
148
|
+
}, labelField ? {
|
|
149
|
+
labelField: labelField
|
|
150
|
+
} : {}, {
|
|
151
|
+
request: getData,
|
|
152
|
+
columnDefs: columnDefs,
|
|
153
|
+
onChangeItem: function onChangeItem(item) {
|
|
154
|
+
if (!enableLinkage || !onLinkage || !item) return;
|
|
155
|
+
var selected = Array.isArray(item) ? item[0] : item;
|
|
156
|
+
if (!selected) return;
|
|
157
|
+
var picked = selected[resolvedValueField];
|
|
158
|
+
if (lastLinkedValueRef.current === picked) return;
|
|
159
|
+
lastLinkedValueRef.current = picked;
|
|
160
|
+
onLinkage(selected);
|
|
161
|
+
}
|
|
162
|
+
}), data === null || data === void 0 || (_data$items2 = data.items) === null || _data$items2 === void 0 ? void 0 : _data$items2.map(function (item) {
|
|
163
|
+
var _item$id;
|
|
164
|
+
return renderOption ? renderOption(item, resolvedValueField) : /*#__PURE__*/_react.default.createElement(Option, {
|
|
165
|
+
key: (_item$id = item.id) !== null && _item$id !== void 0 ? _item$id : item[resolvedValueField],
|
|
166
|
+
value: item[resolvedValueField]
|
|
167
|
+
}, renderOptionLabel(item));
|
|
168
|
+
})));
|
|
169
|
+
};
|
|
170
|
+
return /*#__PURE__*/_react.default.forwardRef(EntitySelect);
|
|
171
|
+
};
|
|
172
|
+
var _default = exports.default = createEntitySelect;
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -31,6 +31,9 @@ export type * from "./RuleBuilder";
|
|
|
31
31
|
export type { ColumnConfig } from "./array-table/columnHelper";
|
|
32
32
|
export type { CentralizedColumnScheme, QueryScheme, SchemeStorageAdapter, SchemeSyncDataDto, CurrentSchemeDto, SchemeStorageConfig, LocalStorageAdapterConfig, BackendApiAdapterConfig, UseSchemeManagerConfig, GridPlusContextValue, GlobalConfigPermissions, } from "./ag-grid-plus";
|
|
33
33
|
export * from './adapters';
|
|
34
|
+
export * from "./readPretty";
|
|
35
|
+
export { createEntitySelect } from "./entitySelect";
|
|
36
|
+
export type { EntitySelectConfig, EntitySelectProps, EntitySelectQuery } from "./entitySelect";
|
|
34
37
|
export { semanticTextColors, toGridTextColor, gridValueEnum } from "./ag-grid-plus/utils/valueEnumColor";
|
|
35
38
|
export type { SemanticPreset } from "./ag-grid-plus/utils/valueEnumColor";
|
|
36
39
|
export { contrastRatio, relativeLuminance, darkenUntilContrast, lightenUntilContrast, toRgb, toHsl, fromHsl } from "./utils/contrast";
|
package/dist/cjs/index.js
CHANGED
|
@@ -47,6 +47,7 @@ var _exportNames = {
|
|
|
47
47
|
FlagsSelector: true,
|
|
48
48
|
MatchItem: true,
|
|
49
49
|
RegexRailroadDiagram: true,
|
|
50
|
+
createEntitySelect: true,
|
|
50
51
|
semanticTextColors: true,
|
|
51
52
|
toGridTextColor: true,
|
|
52
53
|
gridValueEnum: true,
|
|
@@ -287,6 +288,12 @@ Object.defineProperty(exports, "createCascaderField", {
|
|
|
287
288
|
return _standardFormDialog.createCascaderField;
|
|
288
289
|
}
|
|
289
290
|
});
|
|
291
|
+
Object.defineProperty(exports, "createEntitySelect", {
|
|
292
|
+
enumerable: true,
|
|
293
|
+
get: function get() {
|
|
294
|
+
return _entitySelect.createEntitySelect;
|
|
295
|
+
}
|
|
296
|
+
});
|
|
290
297
|
Object.defineProperty(exports, "createSelectField", {
|
|
291
298
|
enumerable: true,
|
|
292
299
|
get: function get() {
|
|
@@ -460,6 +467,19 @@ Object.keys(_adapters).forEach(function (key) {
|
|
|
460
467
|
}
|
|
461
468
|
});
|
|
462
469
|
});
|
|
470
|
+
var _readPretty = require("./readPretty");
|
|
471
|
+
Object.keys(_readPretty).forEach(function (key) {
|
|
472
|
+
if (key === "default" || key === "__esModule") return;
|
|
473
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
474
|
+
if (key in exports && exports[key] === _readPretty[key]) return;
|
|
475
|
+
Object.defineProperty(exports, key, {
|
|
476
|
+
enumerable: true,
|
|
477
|
+
get: function get() {
|
|
478
|
+
return _readPretty[key];
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
});
|
|
482
|
+
var _entitySelect = require("./entitySelect");
|
|
463
483
|
var _valueEnumColor = require("./ag-grid-plus/utils/valueEnumColor");
|
|
464
484
|
var _contrast = require("./utils/contrast");
|
|
465
485
|
var _businessDecimal = require("./utils/businessDecimal");
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.withReadingArrayTable = void 0;
|
|
8
|
+
var _react = require("@formily/react");
|
|
9
|
+
var _agGridReact = require("ag-grid-react");
|
|
10
|
+
var _utils = require("../array-table/utils");
|
|
11
|
+
var _columnGroup = require("../array-table/columnGroup");
|
|
12
|
+
var _indexColumn = require("../array-table/indexColumn");
|
|
13
|
+
var _theme = require("../array-table/theme");
|
|
14
|
+
var _hoistStatics = require("./hoistStatics");
|
|
15
|
+
var _react2 = _interopRequireWildcard(require("react"));
|
|
16
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
19
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
20
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
21
|
+
/** 阅读态直接使用 ArrayTable 的列定义,避免 AgGridPlus 的原值渲染器覆盖格式化结果。@author nokecy */
|
|
22
|
+
var ReadingArrayTable = (0, _react.observer)(function (_ref) {
|
|
23
|
+
var _buildArrayTableColum;
|
|
24
|
+
var height = _ref.height;
|
|
25
|
+
var field = (0, _react.useField)();
|
|
26
|
+
var sources = (0, _utils.useArrayTableSources)();
|
|
27
|
+
var rows = Array.isArray(field.value) ? field.value.slice() : [];
|
|
28
|
+
var generatedRowIds = (0, _react2.useRef)(new WeakMap());
|
|
29
|
+
var generatedRowIdSequence = (0, _react2.useRef)(0);
|
|
30
|
+
var columns = (_buildArrayTableColum = (0, _utils.buildArrayTableColumns)(rows, field, sources)) !== null && _buildArrayTableColum !== void 0 ? _buildArrayTableColum : [];
|
|
31
|
+
var showIndex = columns.length > 0 && !(0, _indexColumn.hasOwnIndexColumn)(sources);
|
|
32
|
+
if (showIndex) columns.unshift((0, _indexColumn.makeIndexColumn)());
|
|
33
|
+
var theme = (0, _theme.useArrayTableTheme)();
|
|
34
|
+
return /*#__PURE__*/_react2.default.createElement("div", {
|
|
35
|
+
style: {
|
|
36
|
+
height: height !== null && height !== void 0 ? height : 400
|
|
37
|
+
}
|
|
38
|
+
}, /*#__PURE__*/_react2.default.createElement(_agGridReact.AgGridReact, {
|
|
39
|
+
theme: theme,
|
|
40
|
+
rowHeight: _theme.ARRAY_TABLE_ROW_HEIGHT,
|
|
41
|
+
enableCellTextSelection: true,
|
|
42
|
+
ensureDomOrder: true,
|
|
43
|
+
defaultColDef: {
|
|
44
|
+
resizable: true,
|
|
45
|
+
sortable: true,
|
|
46
|
+
filter: true
|
|
47
|
+
},
|
|
48
|
+
rowSelection: {
|
|
49
|
+
mode: 'singleRow',
|
|
50
|
+
enableClickSelection: true
|
|
51
|
+
},
|
|
52
|
+
selectionColumnDef: {
|
|
53
|
+
pinned: 'left',
|
|
54
|
+
lockPosition: true,
|
|
55
|
+
width: 50,
|
|
56
|
+
suppressHeaderMenuButton: true
|
|
57
|
+
},
|
|
58
|
+
columnDefs: (0, _columnGroup.groupColumnDefs)(columns),
|
|
59
|
+
rowData: rows,
|
|
60
|
+
getRowId: function getRowId(_ref2) {
|
|
61
|
+
var _data$_id;
|
|
62
|
+
var data = _ref2.data;
|
|
63
|
+
var id = (_data$_id = data === null || data === void 0 ? void 0 : data._id) !== null && _data$_id !== void 0 ? _data$_id : data === null || data === void 0 ? void 0 : data.id;
|
|
64
|
+
if (id != null) return "data:".concat(String(id));
|
|
65
|
+
|
|
66
|
+
// 阅读态明细常用旧表行号等字段,不一定有 id/_id。给无 ID 的对象分配稳定行键,
|
|
67
|
+
// 否则多行都会返回 "undefined",AG Grid 在数据更新后会合并掉重复行。@author nokecy
|
|
68
|
+
var row = data;
|
|
69
|
+
var rowId = generatedRowIds.current.get(row);
|
|
70
|
+
if (!rowId) {
|
|
71
|
+
rowId = "generated:".concat(++generatedRowIdSequence.current);
|
|
72
|
+
generatedRowIds.current.set(row, rowId);
|
|
73
|
+
}
|
|
74
|
+
return rowId;
|
|
75
|
+
},
|
|
76
|
+
onRowDataUpdated: function onRowDataUpdated(_ref3) {
|
|
77
|
+
var api = _ref3.api;
|
|
78
|
+
if (showIndex) api.refreshCells({
|
|
79
|
+
columns: [_indexColumn.ARRAY_TABLE_INDEX_FIELD],
|
|
80
|
+
force: true
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}));
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
/** 按 ArrayTable 的列提取规则收集列节点,不挂载明细数据字段。@author nokecy */
|
|
87
|
+
var columnsOf = function columnsOf(schema) {
|
|
88
|
+
var columns = [];
|
|
89
|
+
var visit = function visit(node) {
|
|
90
|
+
if (typeof node['x-component'] === 'string' && node['x-component'].includes('Column')) {
|
|
91
|
+
var _node$xComponentPro, _node$xComponentPro2;
|
|
92
|
+
var name = (_node$xComponentPro = (_node$xComponentPro2 = node['x-component-props']) === null || _node$xComponentPro2 === void 0 ? void 0 : _node$xComponentPro2.dataIndex) !== null && _node$xComponentPro !== void 0 ? _node$xComponentPro : node.name;
|
|
93
|
+
if (name !== undefined) columns.push({
|
|
94
|
+
name: name,
|
|
95
|
+
schema: node
|
|
96
|
+
});
|
|
97
|
+
} else {
|
|
98
|
+
Object.values(node.properties || {}).forEach(visit);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
var items = Array.isArray(schema.items) ? schema.items : schema.items ? [schema.items] : [];
|
|
102
|
+
items.forEach(visit);
|
|
103
|
+
return columns;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* 阅读态也创建列的 void 字段,让 Formily 求值标题、显隐与 reactions;
|
|
108
|
+
* qc-ui 的阅读视图只读取列状态,未像编辑视图一样挂载这些字段。
|
|
109
|
+
* @author nokecy
|
|
110
|
+
*/
|
|
111
|
+
var withReadingArrayTable = exports.withReadingArrayTable = function withReadingArrayTable(Control) {
|
|
112
|
+
var ReactiveTable = (0, _react.observer)(function (_ref4) {
|
|
113
|
+
var columns = _ref4.columns,
|
|
114
|
+
tableProps = _ref4.tableProps;
|
|
115
|
+
var field = (0, _react.useField)();
|
|
116
|
+
// 阅读视图本身未订阅列状态,在此建立依赖,条件变化后重新提取表头。@author nokecy
|
|
117
|
+
var _iterator = _createForOfIteratorHelper(columns),
|
|
118
|
+
_step;
|
|
119
|
+
try {
|
|
120
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
121
|
+
var _column$componentProp, _column$componentProp2, _column$componentProp3;
|
|
122
|
+
var name = _step.value.name;
|
|
123
|
+
var column = field.query(field.address.concat(name)).take();
|
|
124
|
+
void (column === null || column === void 0 ? void 0 : column.display);
|
|
125
|
+
void (column === null || column === void 0 || (_column$componentProp = column.componentProps) === null || _column$componentProp === void 0 ? void 0 : _column$componentProp.title);
|
|
126
|
+
void (column === null || column === void 0 || (_column$componentProp2 = column.componentProps) === null || _column$componentProp2 === void 0 ? void 0 : _column$componentProp2.headerName);
|
|
127
|
+
void (column === null || column === void 0 || (_column$componentProp3 = column.componentProps) === null || _column$componentProp3 === void 0 ? void 0 : _column$componentProp3.headerGroup);
|
|
128
|
+
}
|
|
129
|
+
} catch (err) {
|
|
130
|
+
_iterator.e(err);
|
|
131
|
+
} finally {
|
|
132
|
+
_iterator.f();
|
|
133
|
+
}
|
|
134
|
+
return /*#__PURE__*/_react2.default.createElement(ReadingArrayTable, tableProps);
|
|
135
|
+
});
|
|
136
|
+
var Table = (0, _react.observer)(function (props) {
|
|
137
|
+
var field = (0, _react.useField)();
|
|
138
|
+
var schema = (0, _react.useFieldSchema)();
|
|
139
|
+
var columns = (0, _react2.useMemo)(function () {
|
|
140
|
+
return columnsOf(schema);
|
|
141
|
+
}, [schema]);
|
|
142
|
+
if (field.pattern !== 'readPretty') return /*#__PURE__*/_react2.default.createElement(Control, props);
|
|
143
|
+
return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, columns.map(function (column) {
|
|
144
|
+
return /*#__PURE__*/_react2.default.createElement(_react.RecursionField, {
|
|
145
|
+
key: column.name,
|
|
146
|
+
name: column.name,
|
|
147
|
+
schema: column.schema,
|
|
148
|
+
onlyRenderSelf: true
|
|
149
|
+
});
|
|
150
|
+
}), /*#__PURE__*/_react2.default.createElement(ReactiveTable, {
|
|
151
|
+
columns: columns,
|
|
152
|
+
tableProps: props
|
|
153
|
+
}));
|
|
154
|
+
});
|
|
155
|
+
return (0, _hoistStatics.hoistStatics)(Table, Control);
|
|
156
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Input as AntInput, InputNumber as AntInputNumber, Select as AntSelect, Switch as AntSwitch, Checkbox as AntCheckbox, Radio as AntRadio, DatePicker as AntDatePicker, TimePicker as AntTimePicker, TreeSelect as AntTreeSelect, Cascader as AntCascader } from 'antd';
|
|
2
|
+
export declare const Input: typeof AntInput;
|
|
3
|
+
export declare const InputNumber: typeof AntInputNumber;
|
|
4
|
+
export declare const Select: typeof AntSelect;
|
|
5
|
+
export declare const Switch: typeof AntSwitch;
|
|
6
|
+
export declare const Checkbox: typeof AntCheckbox;
|
|
7
|
+
export declare const Radio: typeof AntRadio;
|
|
8
|
+
export declare const DatePicker: typeof AntDatePicker;
|
|
9
|
+
export declare const TimePicker: typeof AntTimePicker;
|
|
10
|
+
export declare const TreeSelect: typeof AntTreeSelect;
|
|
11
|
+
export declare const Cascader: typeof AntCascader;
|