@nokecy/qc-ui 1.1.70 → 1.1.72
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.
|
@@ -8,7 +8,10 @@ var _react = require("react");
|
|
|
8
8
|
// setSelectionRange 仅 textarea 与 text/search/url/tel/password 类型 input 支持;
|
|
9
9
|
// checkbox/number/date 等调用会抛 InvalidStateError,故用白名单守卫。@author nokecy
|
|
10
10
|
var supportsSelectionRange = function supportsSelectionRange(el) {
|
|
11
|
-
return
|
|
11
|
+
return (
|
|
12
|
+
// 日期组件自行管理光标和分段选区,表格只聚焦,不覆盖其选区。@author nokecy
|
|
13
|
+
!el.closest('.ant-picker') && (el.tagName === 'TEXTAREA' || /^(text|search|url|tel|password)$/i.test(el.type || 'text'))
|
|
14
|
+
);
|
|
12
15
|
};
|
|
13
16
|
|
|
14
17
|
/**
|
|
@@ -9,15 +9,22 @@ var _react2 = require("@formily/react");
|
|
|
9
9
|
var _utils = require("./utils");
|
|
10
10
|
var _agGridPlus = require("../ag-grid-plus");
|
|
11
11
|
var _theme = require("./theme");
|
|
12
|
+
var _indexColumn = require("./indexColumn");
|
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
14
|
//@ts-ignore
|
|
14
15
|
var ArrayTable = function ArrayTable(props) {
|
|
16
|
+
var _buildArrayTableColum;
|
|
15
17
|
var height = props.height;
|
|
16
18
|
var arrayTablePreviewTheme = (0, _theme.useArrayTableTheme)();
|
|
17
19
|
var field = (0, _react2.useField)();
|
|
18
20
|
var dataSource = Array.isArray(field.value) ? field.value.slice() : [];
|
|
19
21
|
var sources = (0, _utils.useArrayTableSources)();
|
|
20
|
-
var columns = (0, _utils.buildArrayTableColumns)(dataSource, field, sources);
|
|
22
|
+
var columns = (_buildArrayTableColum = (0, _utils.buildArrayTableColumns)(dataSource, field, sources)) !== null && _buildArrayTableColum !== void 0 ? _buildArrayTableColum : [];
|
|
23
|
+
// 阅读态与编辑态共用默认序号规则,已有序号列时不重复添加。@author nokecy
|
|
24
|
+
var showDefaultIndex = columns.length > 0 && !(0, _indexColumn.hasOwnIndexColumn)(sources);
|
|
25
|
+
if (showDefaultIndex) {
|
|
26
|
+
columns.unshift((0, _indexColumn.makeIndexColumn)());
|
|
27
|
+
}
|
|
21
28
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
22
29
|
style: {
|
|
23
30
|
height: height ? height : 400
|
|
@@ -36,6 +43,15 @@ var ArrayTable = function ArrayTable(props) {
|
|
|
36
43
|
theme: arrayTablePreviewTheme,
|
|
37
44
|
rowHeight: _theme.ARRAY_TABLE_ROW_HEIGHT,
|
|
38
45
|
pagination: false,
|
|
46
|
+
onRowDataUpdated: function onRowDataUpdated(event) {
|
|
47
|
+
// 阅读态明细替换或重排后刷新序号,不向表单写入编号。@author nokecy
|
|
48
|
+
if (showDefaultIndex) {
|
|
49
|
+
event.api.refreshCells({
|
|
50
|
+
columns: [_indexColumn.ARRAY_TABLE_INDEX_FIELD],
|
|
51
|
+
force: true
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
},
|
|
39
55
|
columnDefs: columns,
|
|
40
56
|
rowData: dataSource
|
|
41
57
|
}));
|
|
@@ -2,7 +2,10 @@ import { useCallback } from 'react';
|
|
|
2
2
|
// setSelectionRange 仅 textarea 与 text/search/url/tel/password 类型 input 支持;
|
|
3
3
|
// checkbox/number/date 等调用会抛 InvalidStateError,故用白名单守卫。@author nokecy
|
|
4
4
|
var supportsSelectionRange = function supportsSelectionRange(el) {
|
|
5
|
-
return
|
|
5
|
+
return (
|
|
6
|
+
// 日期组件自行管理光标和分段选区,表格只聚焦,不覆盖其选区。@author nokecy
|
|
7
|
+
!el.closest('.ant-picker') && (el.tagName === 'TEXTAREA' || /^(text|search|url|tel|password)$/i.test(el.type || 'text'))
|
|
8
|
+
);
|
|
6
9
|
};
|
|
7
10
|
|
|
8
11
|
/**
|
|
@@ -3,14 +3,21 @@ import { useField } from "@formily/react";
|
|
|
3
3
|
import { buildArrayTableColumns, useArrayTableSources } from "./utils";
|
|
4
4
|
import { AgGridPlus } from "../ag-grid-plus";
|
|
5
5
|
import { useArrayTableTheme, ARRAY_TABLE_ROW_HEIGHT } from "./theme";
|
|
6
|
+
import { ARRAY_TABLE_INDEX_FIELD, hasOwnIndexColumn, makeIndexColumn } from "./indexColumn";
|
|
6
7
|
//@ts-ignore
|
|
7
8
|
var ArrayTable = function ArrayTable(props) {
|
|
9
|
+
var _buildArrayTableColum;
|
|
8
10
|
var height = props.height;
|
|
9
11
|
var arrayTablePreviewTheme = useArrayTableTheme();
|
|
10
12
|
var field = useField();
|
|
11
13
|
var dataSource = Array.isArray(field.value) ? field.value.slice() : [];
|
|
12
14
|
var sources = useArrayTableSources();
|
|
13
|
-
var columns = buildArrayTableColumns(dataSource, field, sources);
|
|
15
|
+
var columns = (_buildArrayTableColum = buildArrayTableColumns(dataSource, field, sources)) !== null && _buildArrayTableColum !== void 0 ? _buildArrayTableColum : [];
|
|
16
|
+
// 阅读态与编辑态共用默认序号规则,已有序号列时不重复添加。@author nokecy
|
|
17
|
+
var showDefaultIndex = columns.length > 0 && !hasOwnIndexColumn(sources);
|
|
18
|
+
if (showDefaultIndex) {
|
|
19
|
+
columns.unshift(makeIndexColumn());
|
|
20
|
+
}
|
|
14
21
|
return /*#__PURE__*/React.createElement("div", {
|
|
15
22
|
style: {
|
|
16
23
|
height: height ? height : 400
|
|
@@ -29,6 +36,15 @@ var ArrayTable = function ArrayTable(props) {
|
|
|
29
36
|
theme: arrayTablePreviewTheme,
|
|
30
37
|
rowHeight: ARRAY_TABLE_ROW_HEIGHT,
|
|
31
38
|
pagination: false,
|
|
39
|
+
onRowDataUpdated: function onRowDataUpdated(event) {
|
|
40
|
+
// 阅读态明细替换或重排后刷新序号,不向表单写入编号。@author nokecy
|
|
41
|
+
if (showDefaultIndex) {
|
|
42
|
+
event.api.refreshCells({
|
|
43
|
+
columns: [ARRAY_TABLE_INDEX_FIELD],
|
|
44
|
+
force: true
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
},
|
|
32
48
|
columnDefs: columns,
|
|
33
49
|
rowData: dataSource
|
|
34
50
|
}));
|