zmdms-webui 1.3.4 → 1.3.6
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/es/button/buttonExport.js +16 -14
- package/dist/es/detaillist/index.css +1 -1
- package/dist/es/dynamicsetting/useDynamic.js +46 -1
- package/dist/es/form/form.js +6 -2
- package/dist/es/form/hooks.js +22 -2
- package/dist/es/form/interface.d.ts +5 -0
- package/dist/es/table/interface.d.ts +5 -0
- package/dist/es/table/table.d.ts +7 -1
- package/dist/es/table/table.js +3 -3
- package/dist/es/table/useDynamicListByColumns.js +22 -2
- package/dist/es/uploadlist/interface.d.ts +2 -0
- package/dist/index.dark.css +1 -1
- package/dist/index.default.css +1 -1
- package/package.json +1 -1
|
@@ -24,32 +24,32 @@ var ButtonExport = function (props) {
|
|
|
24
24
|
var _a = useState(false), loading = _a[0], setLoading = _a[1];
|
|
25
25
|
// const { apiBaseUrl } = useBaseContext();
|
|
26
26
|
var onClickHandle = function (e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
27
|
-
var res, err_2, blob;
|
|
28
|
-
var
|
|
29
|
-
return __generator(this, function (
|
|
30
|
-
switch (
|
|
27
|
+
var res, err_2, blob, _a, errorFields, errors, msg, errorMsg;
|
|
28
|
+
var _b, _c, _d, _e;
|
|
29
|
+
return __generator(this, function (_f) {
|
|
30
|
+
switch (_f.label) {
|
|
31
31
|
case 0:
|
|
32
32
|
setLoading(true);
|
|
33
33
|
if (!beforeExportHandle) return [3 /*break*/, 4];
|
|
34
|
-
|
|
34
|
+
_f.label = 1;
|
|
35
35
|
case 1:
|
|
36
|
-
|
|
36
|
+
_f.trys.push([1, 3, , 4]);
|
|
37
37
|
return [4 /*yield*/, beforeExportHandle()];
|
|
38
38
|
case 2:
|
|
39
|
-
|
|
39
|
+
_f.sent();
|
|
40
40
|
return [3 /*break*/, 4];
|
|
41
41
|
case 3:
|
|
42
|
-
|
|
42
|
+
_f.sent();
|
|
43
43
|
onClick && onClick(e, { result: false });
|
|
44
44
|
setLoading(false);
|
|
45
45
|
return [2 /*return*/];
|
|
46
46
|
case 4:
|
|
47
|
-
|
|
47
|
+
_f.trys.push([4, 7, , 8]);
|
|
48
48
|
res = void 0;
|
|
49
49
|
if (!fetchHandle) return [3 /*break*/, 6];
|
|
50
50
|
return [4 /*yield*/, fetchHandle()];
|
|
51
51
|
case 5:
|
|
52
|
-
res =
|
|
52
|
+
res = _f.sent();
|
|
53
53
|
return [3 /*break*/, 6];
|
|
54
54
|
case 6:
|
|
55
55
|
exportBolb(res, fileName)
|
|
@@ -67,10 +67,10 @@ var ButtonExport = function (props) {
|
|
|
67
67
|
setLoading(false);
|
|
68
68
|
return [3 /*break*/, 8];
|
|
69
69
|
case 7:
|
|
70
|
-
err_2 =
|
|
70
|
+
err_2 = _f.sent();
|
|
71
71
|
setLoading(false);
|
|
72
|
-
if (Object.prototype.toString.call((
|
|
73
|
-
blob = (
|
|
72
|
+
if (Object.prototype.toString.call((_b = err_2 === null || err_2 === void 0 ? void 0 : err_2.response) === null || _b === void 0 ? void 0 : _b.data) === "[object Blob]") {
|
|
73
|
+
blob = (_c = err_2 === null || err_2 === void 0 ? void 0 : err_2.response) === null || _c === void 0 ? void 0 : _c.data;
|
|
74
74
|
blob
|
|
75
75
|
.text()
|
|
76
76
|
.then(function (text) {
|
|
@@ -87,7 +87,9 @@ var ButtonExport = function (props) {
|
|
|
87
87
|
message.error(err_2);
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
90
|
-
|
|
90
|
+
_a = err_2 || {}, errorFields = _a.errorFields, errors = _a.errors, msg = _a.msg;
|
|
91
|
+
errorMsg = errors || ((_e = (_d = errorFields === null || errorFields === void 0 ? void 0 : errorFields[0]) === null || _d === void 0 ? void 0 : _d.errors) === null || _e === void 0 ? void 0 : _e[0]) || msg;
|
|
92
|
+
message.error(errorMsg || "导出失败!");
|
|
91
93
|
}
|
|
92
94
|
return [2 /*return*/, err_2];
|
|
93
95
|
case 8: return [2 /*return*/];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ztxk-grid.ztxk-grid--default .ztxk-grid-item{line-height:18px}.ztxk-grid.ztxk-grid--large .ztxk-grid-item{line-height:32px}.ztxk-grid.ztxk-grid--border{border-left:1px solid #ebebeb}.ztxk-grid.ztxk-grid--border:first-child{border-top:1px solid #ebebeb}.ztxk-grid.ztxk-grid--border .ztxk-grid-item{border-bottom:1px solid #ebebeb;border-right:1px solid #ebebeb}.ztxk-grid.ztxk-grid--border .ztxk-grid-item.ztxk-grid-item--text{padding:2px 4px}.ztxk-grid .ztxk-grid-item--flex,.ztxk-grid.ztxk-grid--flex .ztxk-grid-item{align-items:center;display:flex}.ztxk-grid.ztxk-grid--background .ztxk-grid-item--title{background:#eff5fe}.ztxk-grid.ztxk-grid--background .ztxk-grid-item--title .ztxk-grid-item--title-text{color:#333}.ztxk-grid .ztxk-grid-item{font-size:12px;line-height:18px;overflow:hidden}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--title{word-wrap:break-word;color:#888;display:flex;padding:2px 0 2px 4px
|
|
1
|
+
.ztxk-grid.ztxk-grid--default .ztxk-grid-item{line-height:18px}.ztxk-grid.ztxk-grid--large .ztxk-grid-item{line-height:32px}.ztxk-grid.ztxk-grid--border{border-left:1px solid #ebebeb}.ztxk-grid.ztxk-grid--border:first-child{border-top:1px solid #ebebeb}.ztxk-grid.ztxk-grid--border .ztxk-grid-item{border-bottom:1px solid #ebebeb;border-right:1px solid #ebebeb}.ztxk-grid.ztxk-grid--border .ztxk-grid-item.ztxk-grid-item--text{padding:2px 4px}.ztxk-grid .ztxk-grid-item--flex,.ztxk-grid.ztxk-grid--flex .ztxk-grid-item{align-items:center;display:flex}.ztxk-grid.ztxk-grid--background .ztxk-grid-item--title{background:#eff5fe}.ztxk-grid.ztxk-grid--background .ztxk-grid-item--title .ztxk-grid-item--title-text{color:#333}.ztxk-grid .ztxk-grid-item{font-size:12px;line-height:18px;overflow:hidden}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--title{word-wrap:break-word;color:#888;display:flex;justify-content:flex-end;padding:2px 0 2px 4px}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--title .ztxk-grid-item--title-text{display:inline-block}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--title .ztxk-grid-item--title-colon{padding:0 0 0 1px}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--title .ztxk-grid-item--title-required{color:#ff4d4f!important;font-family:SimSun,sans-serif;font-size:14px;margin:1px 2px 0 0}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--title-vertical-center{align-items:center}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--diff{background-color:#fdfd19}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--text{word-wrap:break-word;color:#333;padding:3px 0}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ztxk-grid .ztxk-grid-item.ztxk-grid-item--text-noellipsis{white-space:pre-line}.ztxk-grid .ztxk-grid-item--merge{display:flex}.ztxk-grid .ztxk-grid-item--merge .ztxk-grid-item--text{flex:1}
|
|
@@ -184,6 +184,51 @@ function getSetDynamicKey(LOCALSTORAGE_KEY, LOCALSTORAGE_LRU_KEY) {
|
|
|
184
184
|
localStorage.setItem(LOCALSTORAGE_LRU_KEY, JSON.stringify(lruKeys));
|
|
185
185
|
};
|
|
186
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* @description 获取版本号信息
|
|
189
|
+
* @param LOCALSTORAGE_KEY 这一类dynamicKey标识
|
|
190
|
+
* @param dynamicKey 当前的KEY值
|
|
191
|
+
*/
|
|
192
|
+
function getDynamicVersionByKey(LOCALSTORAGE_KEY, dynamicKey) {
|
|
193
|
+
if (!dynamicKey) {
|
|
194
|
+
return 0;
|
|
195
|
+
}
|
|
196
|
+
var obj = {};
|
|
197
|
+
try {
|
|
198
|
+
obj =
|
|
199
|
+
JSON.parse(localStorage.getItem("".concat(LOCALSTORAGE_KEY, "_version")) || "{}") ||
|
|
200
|
+
{};
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
console.error("\u83B7\u53D6\u52A8\u6001\u5217".concat(dynamicKey, "\u7248\u672C\u4FE1\u606F\u5931\u8D25!"), err);
|
|
204
|
+
}
|
|
205
|
+
return obj[dynamicKey] ? Number(obj[dynamicKey]) : 0;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* @description 设置版本号信息
|
|
209
|
+
* @param LOCALSTORAGE_KEY 这一类dynamicKey标识
|
|
210
|
+
* @param dynamicKey 当前的KEY值
|
|
211
|
+
*/
|
|
212
|
+
function setDynamicVersionByKey(LOCALSTORAGE_KEY, dynamicKey, version) {
|
|
213
|
+
var obj = {};
|
|
214
|
+
try {
|
|
215
|
+
obj =
|
|
216
|
+
JSON.parse(localStorage.getItem("".concat(LOCALSTORAGE_KEY, "_version")) || "{}") ||
|
|
217
|
+
{};
|
|
218
|
+
}
|
|
219
|
+
catch (err) {
|
|
220
|
+
console.error(err);
|
|
221
|
+
}
|
|
222
|
+
if (!obj[dynamicKey]) {
|
|
223
|
+
obj[dynamicKey] = version;
|
|
224
|
+
}
|
|
225
|
+
try {
|
|
226
|
+
localStorage.setItem("".concat(LOCALSTORAGE_KEY, "_version"), JSON.stringify(obj));
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
console.error("\u8BBE\u7F6E\u52A8\u6001\u5217".concat(dynamicKey, "\u7248\u672C\u4FE1\u606F\u5931\u8D25!"), err);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
187
232
|
function useDynamic(dynamicKey, parentDynamicKey, list) {
|
|
188
233
|
// 内部可操作的动态列配置
|
|
189
234
|
var currentDynamicListMemo = useMemo(function () {
|
|
@@ -205,4 +250,4 @@ function useDynamic(dynamicKey, parentDynamicKey, list) {
|
|
|
205
250
|
};
|
|
206
251
|
}
|
|
207
252
|
|
|
208
|
-
export { getCurrentDynamicItems, getSetDynamicKey, useDynamic };
|
|
253
|
+
export { getCurrentDynamicItems, getDynamicVersionByKey, getSetDynamicKey, setDynamicVersionByKey, useDynamic };
|
package/dist/es/form/form.js
CHANGED
|
@@ -21,11 +21,15 @@ var FORM_DYNAMIC_KEY = "ztxk-webui-dynamic-form";
|
|
|
21
21
|
// 用户配置优先,先从远端获取到 表单配置信息。
|
|
22
22
|
// 给子元素设置好了表单配置信息后 接下来的内容 交给动态列配置接管
|
|
23
23
|
var Form = function (props, ref) {
|
|
24
|
-
var form = props.form, bottomBorder = props.bottomBorder, _a = props.isFlex, isFlex = _a === void 0 ? true : _a, wrapClassName = props.wrapClassName, leftClassName = props.leftClassName; props.itemClassName; var rightWrapVisible = props.rightWrapVisible, rightClassName = props.rightClassName, children = props.children, dynamicKey = props.dynamicKey, formPreferences = props.formPreferences, items = props.items, outsideState = props.outsideState, onValuesChange = props.onValuesChange, isResetAndClear = props.isResetAndClear, onResetHandle = props.onResetHandle, onSearchHandle = props.onSearchHandle, type = props.type, directionColumn = props.directionColumn, isToggle = props.isToggle, toggleNum = props.toggleNum, defaultToggle = props.defaultToggle, restProps = __rest(props, ["form", "bottomBorder", "isFlex", "wrapClassName", "leftClassName", "itemClassName", "rightWrapVisible", "rightClassName", "children", "dynamicKey", "formPreferences", "items", "outsideState", "onValuesChange", "isResetAndClear", "onResetHandle", "onSearchHandle", "type", "directionColumn", "isToggle", "toggleNum", "defaultToggle"]);
|
|
24
|
+
var form = props.form, bottomBorder = props.bottomBorder, _a = props.isFlex, isFlex = _a === void 0 ? true : _a, wrapClassName = props.wrapClassName, leftClassName = props.leftClassName; props.itemClassName; var rightWrapVisible = props.rightWrapVisible, rightClassName = props.rightClassName, children = props.children, dynamicKey = props.dynamicKey, dynamicVersion = props.dynamicVersion, formPreferences = props.formPreferences, items = props.items, outsideState = props.outsideState, onValuesChange = props.onValuesChange, isResetAndClear = props.isResetAndClear, onResetHandle = props.onResetHandle, onSearchHandle = props.onSearchHandle, type = props.type, directionColumn = props.directionColumn, isToggle = props.isToggle, toggleNum = props.toggleNum, defaultToggle = props.defaultToggle, restProps = __rest(props, ["form", "bottomBorder", "isFlex", "wrapClassName", "leftClassName", "itemClassName", "rightWrapVisible", "rightClassName", "children", "dynamicKey", "dynamicVersion", "formPreferences", "items", "outsideState", "onValuesChange", "isResetAndClear", "onResetHandle", "onSearchHandle", "type", "directionColumn", "isToggle", "toggleNum", "defaultToggle"]);
|
|
25
25
|
// 获取新的items 如果传入了配置项的话,配置项优先
|
|
26
26
|
var configInfoItems = useFormPreferencesCreateNewItems(formPreferences, items).configInfoItems;
|
|
27
27
|
// 根据items 和 dynamicKey 获取到动态列配置信息
|
|
28
|
-
var _b = useDynamicListByItems(configInfoItems,
|
|
28
|
+
var _b = useDynamicListByItems(configInfoItems, {
|
|
29
|
+
dynamicKey: dynamicKey,
|
|
30
|
+
formPreferences: formPreferences,
|
|
31
|
+
dynamicVersion: dynamicVersion,
|
|
32
|
+
}), dynamicList = _b.dynamicList, onCurrentListChange = _b.onCurrentListChange, newItems = _b.newItems, dynamicSettingRef = _b.dynamicSettingRef;
|
|
29
33
|
// 主容器类名
|
|
30
34
|
var wrapClasses = classNames("ztxk-form", wrapClassName, {
|
|
31
35
|
"ztxk-form--bottom-border": bottomBorder,
|
package/dist/es/form/hooks.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __assign } from '../_virtual/_tslib.js';
|
|
2
2
|
import { useMemo, useRef, useEffect, useState, useCallback } from 'react';
|
|
3
|
-
import { getCurrentDynamicItems } from '../dynamicsetting/useDynamic.js';
|
|
3
|
+
import { getCurrentDynamicItems, getDynamicVersionByKey, setDynamicVersionByKey } from '../dynamicsetting/useDynamic.js';
|
|
4
4
|
import { FORM_DYNAMIC_KEY } from './form.js';
|
|
5
5
|
import cloneDeep from 'lodash/cloneDeep';
|
|
6
6
|
|
|
@@ -20,7 +20,8 @@ function useFormPreferencesCreateNewItems(formPreferences, items) {
|
|
|
20
20
|
return { configInfoItems: configInfoItems };
|
|
21
21
|
}
|
|
22
22
|
// 根据新的表单项items 经过 dynamic处理后 得到最新的配置信息
|
|
23
|
-
function useDynamicListByItems(items,
|
|
23
|
+
function useDynamicListByItems(items, options) {
|
|
24
|
+
var dynamicKey = options.dynamicKey, dynamicVersion = options.dynamicVersion, formPreferences = options.formPreferences;
|
|
24
25
|
// 动态列配置手动刷新基础配置
|
|
25
26
|
var dynamicSettingRef = useRef({});
|
|
26
27
|
// 根据子元素生成动态列配置信息
|
|
@@ -85,6 +86,25 @@ function useDynamicListByItems(items, dynamicKey, formPreferences) {
|
|
|
85
86
|
}
|
|
86
87
|
return result;
|
|
87
88
|
}, [items, currentDynamicList]);
|
|
89
|
+
// 对比版本号,如果版本号较新那么需要重置表格列配置。如果版本号本来不存在,是新增的 也需要重置表格列配置。
|
|
90
|
+
useEffect(function () {
|
|
91
|
+
var _a, _b;
|
|
92
|
+
// 如果不需要版本比对
|
|
93
|
+
if (typeof dynamicVersion !== "number") {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// 如果没有列配置缓存
|
|
97
|
+
if (!dynamicKey) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
// 取到本地版本号
|
|
101
|
+
var localDynamicVersion = getDynamicVersionByKey(FORM_DYNAMIC_KEY, dynamicKey);
|
|
102
|
+
// 如果本地版本号小于传入版本号,需要更新
|
|
103
|
+
if (localDynamicVersion < dynamicVersion) {
|
|
104
|
+
(_b = (_a = dynamicSettingRef.current) === null || _a === void 0 ? void 0 : _a.resetList) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
105
|
+
setDynamicVersionByKey(FORM_DYNAMIC_KEY, dynamicKey, dynamicVersion);
|
|
106
|
+
}
|
|
107
|
+
}, [dynamicKey, dynamicVersion]);
|
|
88
108
|
return {
|
|
89
109
|
dynamicList: dynamicList,
|
|
90
110
|
currentDynamicList: currentDynamicList,
|
|
@@ -61,6 +61,11 @@ interface IProFormProps extends FormProps {
|
|
|
61
61
|
* 动态列配置
|
|
62
62
|
*/
|
|
63
63
|
dynamicKey?: string;
|
|
64
|
+
/**
|
|
65
|
+
* 动态列配置版本。版本号高的可以覆盖用户本地配置。
|
|
66
|
+
* 就按数字往上递增的规则就行 1 2 3 4 5这种
|
|
67
|
+
*/
|
|
68
|
+
dynamicVersion?: number;
|
|
64
69
|
/** 表单布局 默认是横向 设置为true后 为纵向布局 */
|
|
65
70
|
directionColumn?: boolean;
|
|
66
71
|
/**
|
|
@@ -261,6 +261,11 @@ interface ITableProps<RecordType> extends Omit<TableProps<RecordType>, "columns"
|
|
|
261
261
|
* 是否开启动态列配置
|
|
262
262
|
*/
|
|
263
263
|
dynamicKey?: string;
|
|
264
|
+
/**
|
|
265
|
+
* 动态列配置版本。版本号高的可以覆盖用户本地配置。
|
|
266
|
+
* 就按数字往上递增的规则就行 1 2 3 4 5这种
|
|
267
|
+
*/
|
|
268
|
+
dynamicVersion?: number;
|
|
264
269
|
/**
|
|
265
270
|
* 增加了column的表头过滤功能;如果想要过滤功能持久化,可以配置这个属性
|
|
266
271
|
* 同时也需要配置dynamicKey配置。
|
package/dist/es/table/table.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { TableComponent } from './interface.js';
|
|
2
2
|
|
|
3
|
-
declare const MemoTable: TableComponent<any>;
|
|
3
|
+
declare const MemoTable: TableComponent<any>;
|
|
4
|
+
/**
|
|
5
|
+
* BUG: 之前在业务处遇到一个很奇怪的bug。
|
|
6
|
+
* 业务通过isDisplay来控制表格列的显隐,导致newColumns的数据少了好几个。
|
|
7
|
+
* 但是页面的显示的列却是正常。这个在组件库中无法复现。
|
|
8
|
+
* 导致的问题是验证的时候,这些数据中没有的列无法得到验证
|
|
9
|
+
*/
|
|
4
10
|
|
|
5
11
|
export { MemoTable as default };
|
package/dist/es/table/table.js
CHANGED
|
@@ -35,10 +35,10 @@ import { DndProvider } from '../node_modules/react-dnd/dist/core/DndProvider.js'
|
|
|
35
35
|
// completed: 实现表头自定义伸缩
|
|
36
36
|
// completed: 排序功能优化
|
|
37
37
|
// completed: 过滤功能
|
|
38
|
-
//
|
|
38
|
+
// completed: 实现从execl复制到表格中的功能
|
|
39
39
|
var Table = function (props) {
|
|
40
40
|
// console.log("表格渲染");
|
|
41
|
-
var className = props.className, _a = props.bordered, bordered = _a === void 0 ? true : _a, _b = props.pagination, pagination = _b === void 0 ? false : _b, isFlex = props.isFlex; props.tablePreferences; var dynamicKey = props.dynamicKey, isRemeberFilter = props.isRemeberFilter, _c = props.isOrderUpdateData, isOrderUpdateData = _c === void 0 ? true : _c, hiddenDynamicIcon = props.hiddenDynamicIcon, _columns = props.columns, dataSource = props.dataSource, onTableChange = props.onTableChange, isEdit = props.isEdit, isMove = props.isMove, isAdd = props.isAdd, hiddenAddBtnHandle = props.hiddenAddBtnHandle, _d = props.isTheadTitleAdd, isTheadTitleAdd = _d === void 0 ? true : _d, addMode = props.addMode, addCallback = props.addCallback, isDel = props.isDel, delPopTitle = props.delPopTitle, hiddenDelBtnHandle = props.hiddenDelBtnHandle, _e = props.isDelAll, isDelAll = _e === void 0 ? true : _e, isAddAndDelAuto = props.isAddAndDelAuto, summaryConfig = props.summaryConfig, _f = props.summaryFixed, summaryFixed = _f === void 0 ? true : _f, isInnerPagination = props.isInnerPagination, _g = props.innerPaginationPageSize, innerPaginationPageSize = _g === void 0 ? 30 : _g, _h = props.innerPaginationPosition, innerPaginationPosition = _h === void 0 ? INNER_TABLE_PAGINATION_POSITION : _h, _j = props.innerPaginationPageSizeOptions, innerPaginationPageSizeOptions = _j === void 0 ? INNER_TABLE_PAGINATION_PAGESIZEOPTIONS : _j, innerPaginationConfig = props.innerPaginationConfig, tableRefHandle = props.tableRefHandle, tableName = props.tableName, serviceOrder = props.serviceOrder, differences = props.differences, virtualKey = props.virtualKey, _k = props.isResizableColumn, isResizableColumn = _k === void 0 ? true : _k, _l = props.isResizableTitleEllipsis, isResizableTitleEllipsis = _l === void 0 ? true : _l, _m = props.isRealTimeValidate, isRealTimeValidate = _m === void 0 ? true : _m, isMarginTop = props.isMarginTop, isMarginBottom = props.isMarginBottom, resetProps = __rest(props, ["className", "bordered", "pagination", "isFlex", "tablePreferences", "dynamicKey", "isRemeberFilter", "isOrderUpdateData", "hiddenDynamicIcon", "columns", "dataSource", "onTableChange", "isEdit", "isMove", "isAdd", "hiddenAddBtnHandle", "isTheadTitleAdd", "addMode", "addCallback", "isDel", "delPopTitle", "hiddenDelBtnHandle", "isDelAll", "isAddAndDelAuto", "summaryConfig", "summaryFixed", "isInnerPagination", "innerPaginationPageSize", "innerPaginationPosition", "innerPaginationPageSizeOptions", "innerPaginationConfig", "tableRefHandle", "tableName", "serviceOrder", "differences", "virtualKey", "isResizableColumn", "isResizableTitleEllipsis", "isRealTimeValidate", "isMarginTop", "isMarginBottom"]);
|
|
41
|
+
var className = props.className, _a = props.bordered, bordered = _a === void 0 ? true : _a, _b = props.pagination, pagination = _b === void 0 ? false : _b, isFlex = props.isFlex; props.tablePreferences; var dynamicKey = props.dynamicKey, dynamicVersion = props.dynamicVersion, isRemeberFilter = props.isRemeberFilter, _c = props.isOrderUpdateData, isOrderUpdateData = _c === void 0 ? true : _c, hiddenDynamicIcon = props.hiddenDynamicIcon, _columns = props.columns, dataSource = props.dataSource, onTableChange = props.onTableChange, isEdit = props.isEdit, isMove = props.isMove, isAdd = props.isAdd, hiddenAddBtnHandle = props.hiddenAddBtnHandle, _d = props.isTheadTitleAdd, isTheadTitleAdd = _d === void 0 ? true : _d, addMode = props.addMode, addCallback = props.addCallback, isDel = props.isDel, delPopTitle = props.delPopTitle, hiddenDelBtnHandle = props.hiddenDelBtnHandle, _e = props.isDelAll, isDelAll = _e === void 0 ? true : _e, isAddAndDelAuto = props.isAddAndDelAuto, summaryConfig = props.summaryConfig, _f = props.summaryFixed, summaryFixed = _f === void 0 ? true : _f, isInnerPagination = props.isInnerPagination, _g = props.innerPaginationPageSize, innerPaginationPageSize = _g === void 0 ? 30 : _g, _h = props.innerPaginationPosition, innerPaginationPosition = _h === void 0 ? INNER_TABLE_PAGINATION_POSITION : _h, _j = props.innerPaginationPageSizeOptions, innerPaginationPageSizeOptions = _j === void 0 ? INNER_TABLE_PAGINATION_PAGESIZEOPTIONS : _j, innerPaginationConfig = props.innerPaginationConfig, tableRefHandle = props.tableRefHandle, tableName = props.tableName, serviceOrder = props.serviceOrder, differences = props.differences, virtualKey = props.virtualKey, _k = props.isResizableColumn, isResizableColumn = _k === void 0 ? true : _k, _l = props.isResizableTitleEllipsis, isResizableTitleEllipsis = _l === void 0 ? true : _l, _m = props.isRealTimeValidate, isRealTimeValidate = _m === void 0 ? true : _m, isMarginTop = props.isMarginTop, isMarginBottom = props.isMarginBottom, resetProps = __rest(props, ["className", "bordered", "pagination", "isFlex", "tablePreferences", "dynamicKey", "dynamicVersion", "isRemeberFilter", "isOrderUpdateData", "hiddenDynamicIcon", "columns", "dataSource", "onTableChange", "isEdit", "isMove", "isAdd", "hiddenAddBtnHandle", "isTheadTitleAdd", "addMode", "addCallback", "isDel", "delPopTitle", "hiddenDelBtnHandle", "isDelAll", "isAddAndDelAuto", "summaryConfig", "summaryFixed", "isInnerPagination", "innerPaginationPageSize", "innerPaginationPosition", "innerPaginationPageSizeOptions", "innerPaginationConfig", "tableRefHandle", "tableName", "serviceOrder", "differences", "virtualKey", "isResizableColumn", "isResizableTitleEllipsis", "isRealTimeValidate", "isMarginTop", "isMarginBottom"]);
|
|
42
42
|
var classes = classNames("ztxk-table", className, {
|
|
43
43
|
"ztxk-table--flex": isFlex,
|
|
44
44
|
});
|
|
@@ -48,7 +48,7 @@ var Table = function (props) {
|
|
|
48
48
|
// 比如过滤某些列 不做展示
|
|
49
49
|
var columns = useParseColumns(_columns);
|
|
50
50
|
// 得到动态列配置信息
|
|
51
|
-
var _p = useDynamicListByColumns(columns, dynamicKey), defaultDynamicList = _p.defaultDynamicList, onCurrentListChange = _p.onCurrentListChange, currentDynamicList = _p.currentDynamicList, dynamicSettingRef = _p.dynamicSettingRef;
|
|
51
|
+
var _p = useDynamicListByColumns(columns, { dynamicKey: dynamicKey, dynamicVersion: dynamicVersion }), defaultDynamicList = _p.defaultDynamicList, onCurrentListChange = _p.onCurrentListChange, currentDynamicList = _p.currentDynamicList, dynamicSettingRef = _p.dynamicSettingRef;
|
|
52
52
|
// 因为内部分页需要知晓当前页面的数据展示,要不然数据排序就跟内部分页没关系了
|
|
53
53
|
// 自定义排序方法
|
|
54
54
|
var _q = useCustomSort(dataSource, onTableChange, {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useRef, useMemo, useState, useEffect, useCallback } from 'react';
|
|
2
|
-
import { getCurrentDynamicItems } from '../dynamicsetting/useDynamic.js';
|
|
2
|
+
import { getCurrentDynamicItems, getDynamicVersionByKey, setDynamicVersionByKey } from '../dynamicsetting/useDynamic.js';
|
|
3
3
|
import { TABLE_DYNAMIC_KEY } from './constant.js';
|
|
4
4
|
import isEqual from 'lodash/isEqual';
|
|
5
5
|
|
|
@@ -60,7 +60,8 @@ function getDynamicList(dynamicKey, columns) {
|
|
|
60
60
|
}
|
|
61
61
|
return result;
|
|
62
62
|
}
|
|
63
|
-
function useDynamicListByColumns(columns,
|
|
63
|
+
function useDynamicListByColumns(columns, options) {
|
|
64
|
+
var dynamicKey = options.dynamicKey, dynamicVersion = options.dynamicVersion;
|
|
64
65
|
// 动态列配置手动刷新基础配置
|
|
65
66
|
var dynamicSettingRef = useRef(null);
|
|
66
67
|
// 初始化list
|
|
@@ -91,6 +92,25 @@ function useDynamicListByColumns(columns, dynamicKey) {
|
|
|
91
92
|
return defaultDynamicList;
|
|
92
93
|
});
|
|
93
94
|
}, [dynamicKey, columns]);
|
|
95
|
+
// 对比版本号,如果版本号较新那么需要重置表格列配置。如果版本号本来不存在,是新增的 也需要重置表格列配置。
|
|
96
|
+
useEffect(function () {
|
|
97
|
+
var _a, _b;
|
|
98
|
+
// 如果不需要版本比对
|
|
99
|
+
if (typeof dynamicVersion !== "number") {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// 如果没有列配置缓存
|
|
103
|
+
if (!dynamicKey) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
// 取到本地版本号
|
|
107
|
+
var localDynamicVersion = getDynamicVersionByKey(TABLE_DYNAMIC_KEY, dynamicKey);
|
|
108
|
+
// 如果本地版本号小于传入版本号,需要更新
|
|
109
|
+
if (localDynamicVersion < dynamicVersion) {
|
|
110
|
+
(_b = (_a = dynamicSettingRef.current) === null || _a === void 0 ? void 0 : _a.resetList) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
111
|
+
setDynamicVersionByKey(TABLE_DYNAMIC_KEY, dynamicKey, dynamicVersion);
|
|
112
|
+
}
|
|
113
|
+
}, [dynamicKey, dynamicVersion]);
|
|
94
114
|
var onCurrentListChange = useCallback(function (newDynamicList) {
|
|
95
115
|
// console.log(newDynamicList);
|
|
96
116
|
setCurrentDynamicList(newDynamicList);
|
|
@@ -57,6 +57,8 @@ interface IUploadListProps extends Omit<UploadProps, "onChange"> {
|
|
|
57
57
|
fieldNames?: IUploadFieldNames;
|
|
58
58
|
/** 表格列自定义 */
|
|
59
59
|
tableColumns?: (IColumnsTypeProp<any> | string)[];
|
|
60
|
+
/** 选择文件前的校验 */
|
|
61
|
+
onBeforeSelectFileValidate?: () => Promise<boolean>;
|
|
60
62
|
}
|
|
61
63
|
interface IUploadFieldNames {
|
|
62
64
|
attachId?: string;
|