vap1 0.1.5 → 0.1.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/components/SearchBar/ByField.js +7 -1
- package/components/SearchBar/ByKeyword.js +52 -10
- package/components/Tables/STable.d.ts +9 -1
- package/components/Tables/STable.js +20 -5
- package/components/Tables/VTable.js +18 -10
- package/components/Trees/ActionTree.js +0 -1
- package/components/Trees/COTree/COSelect.d.ts +45 -0
- package/components/Trees/COTree/COSelect.js +107 -0
- package/components/Trees/COTree/COTree.d.ts +74 -0
- package/components/Trees/COTree/COTree.js +207 -0
- package/components/Trees/COTree/COTreeUtil.d.ts +17 -0
- package/components/Trees/COTree/COTreeUtil.js +187 -0
- package/components/UForm/UForm.js +0 -1
- package/components/UForm/UFormModal.js +1 -1
- package/components/UForm/_FieldType.d.ts +1 -1
- package/components/UForm/_FieldType.js +10 -2
- package/components/UForm/index.d.ts +10 -0
- package/components/_adapt/Drawer.js +1 -1
- package/components/_adapt/Dropdown.d.ts +12 -3
- package/components/_adapt/Dropdown.js +10 -2
- package/components/_adapt/Modal.js +1 -1
- package/components/_adapt/Radio.js +6 -6
- package/components/_common/Upagination.js +4 -4
- package/components/_setup/UForm/UFormCOTree.d.ts +1 -0
- package/components/_setup/UForm/UFormCOTree.js +23 -0
- package/components/_setup/UForm/UFormDate.js +99 -24
- package/components/_setup/UForm/UFormJSONTable.d.ts +1 -0
- package/components/_setup/UForm/UFormJSONTable.js +157 -0
- package/components/_setup/UForm/UFormSelect.js +19 -0
- package/components/_setup/index.d.ts +1 -0
- package/components/_setup/index.js +1 -0
- package/hooks/_list.js +2 -1
- package/hooks/useArray.d.ts +2 -3
- package/hooks/useArray.js +34 -67
- package/package.json +1 -1
- package/utils/ArrayUtil.js +8 -1
- package/utils/Global.d.ts +0 -1
- package/utils/index.d.ts +32 -1
- package/widget/index.d.ts +0 -4
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const react_1 = __importStar(require("react"));
|
|
30
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
31
|
+
const utils_1 = require("../../../utils");
|
|
32
|
+
const index_1 = require("../../../index");
|
|
33
|
+
const components_1 = require("../../../components");
|
|
34
|
+
const hooks_1 = require("../../../hooks");
|
|
35
|
+
const renderColumn = (txt, column) => {
|
|
36
|
+
if (column.options) {
|
|
37
|
+
let find = lodash_1.default.find(column.options, { value: txt });
|
|
38
|
+
if (find) {
|
|
39
|
+
return find.name;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return txt;
|
|
43
|
+
};
|
|
44
|
+
// json-table 不支持被联动,可联动其它
|
|
45
|
+
// 基础组件 JSON 数组, json-array 升级版本,适用于复杂的表格
|
|
46
|
+
(0, components_1.registerFormField)('json-table', props => {
|
|
47
|
+
const { field, disabled, value, } = props;
|
|
48
|
+
const config = field.config;
|
|
49
|
+
const rowKey = lodash_1.default.has(config, 'rowKey') ? config.rowKey : 'id';
|
|
50
|
+
const { modalState: { modalProps }, showAdd, showEdit, showInfo, hide } = (0, hooks_1.useModals)();
|
|
51
|
+
const onChange = (arr) => {
|
|
52
|
+
if (field.dataType == 'array') {
|
|
53
|
+
props.onChange(arr);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
props.onChange(JSON.stringify(arr));
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
const arr = (0, react_1.useMemo)(() => {
|
|
60
|
+
let arr = [];
|
|
61
|
+
if (lodash_1.default.isArray(value)) {
|
|
62
|
+
arr = [...props.value];
|
|
63
|
+
}
|
|
64
|
+
else if (lodash_1.default.isString(value)) {
|
|
65
|
+
try {
|
|
66
|
+
arr = JSON.parse(value);
|
|
67
|
+
if (!lodash_1.default.isArray(arr))
|
|
68
|
+
arr = [];
|
|
69
|
+
}
|
|
70
|
+
catch (_a) { }
|
|
71
|
+
}
|
|
72
|
+
arr.map(item => {
|
|
73
|
+
if (!lodash_1.default.has(item, rowKey)) {
|
|
74
|
+
lodash_1.default.set(item, rowKey, utils_1.StringUtil.genKey());
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return arr;
|
|
78
|
+
}, [value]);
|
|
79
|
+
const formFields = (0, react_1.useMemo)(() => {
|
|
80
|
+
if (lodash_1.default.has(config, 'formFields'))
|
|
81
|
+
return config.formFields;
|
|
82
|
+
let fields = [];
|
|
83
|
+
config.columns.map((col) => {
|
|
84
|
+
let field = { field: col.dataIndex, title: col.title, };
|
|
85
|
+
if (col.type)
|
|
86
|
+
field.type = col.type;
|
|
87
|
+
if (col.required)
|
|
88
|
+
field.required = true;
|
|
89
|
+
if (lodash_1.default.isArray(col.options))
|
|
90
|
+
field.options = col.options;
|
|
91
|
+
fields.push(field);
|
|
92
|
+
});
|
|
93
|
+
return fields;
|
|
94
|
+
}, []);
|
|
95
|
+
const tableColumns = (0, react_1.useMemo)(() => {
|
|
96
|
+
let columns = [];
|
|
97
|
+
config.columns.map((item) => {
|
|
98
|
+
let col = lodash_1.default.omit(item, ['type', 'options', 'required']);
|
|
99
|
+
if (!col.render && lodash_1.default.isArray(item.options)) {
|
|
100
|
+
col.render = utils_1.Renders.ListRender(item.options);
|
|
101
|
+
}
|
|
102
|
+
columns.push(col);
|
|
103
|
+
});
|
|
104
|
+
return columns;
|
|
105
|
+
}, []);
|
|
106
|
+
const add = (0, react_1.useCallback)((data) => onChange(utils_1.ArrayUtil.add(arr, Object.assign(Object.assign({}, data), { [rowKey]: utils_1.StringUtil.genKey() }))), [arr]);
|
|
107
|
+
const update = (0, react_1.useCallback)((data) => onChange(utils_1.ArrayUtil.update(arr, data, rowKey)), [arr]);
|
|
108
|
+
const del = (0, react_1.useCallback)((data) => onChange(utils_1.ArrayUtil.del(arr, data, rowKey)), [arr]);
|
|
109
|
+
return react_1.default.createElement(react_1.default.Fragment, null,
|
|
110
|
+
react_1.default.createElement(index_1.STable, { list: arr, locale: {
|
|
111
|
+
emptyText: react_1.default.createElement(index_1.Empty, { description: react_1.default.createElement(index_1.Button, { type: "primary", icon: "plus", onClick: showAdd },
|
|
112
|
+
"\u6DFB\u52A0",
|
|
113
|
+
field.title) })
|
|
114
|
+
}, columns: [
|
|
115
|
+
...tableColumns,
|
|
116
|
+
index_1.VTable.COL_OPERACTION((record) => [
|
|
117
|
+
react_1.default.createElement(index_1.VTable.INFO, { onClick: () => showInfo(record) }),
|
|
118
|
+
react_1.default.createElement(index_1.VTable.EDIT, { onClick: () => showEdit(record) }),
|
|
119
|
+
react_1.default.createElement(index_1.VTable.DELETE, { onClick: () => del(record) }),
|
|
120
|
+
])
|
|
121
|
+
], pagination: false, footer: () => {
|
|
122
|
+
if (arr.length == 0 || disabled) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
return react_1.default.createElement(index_1.Button, { type: "primary", icon: "plus", onClick: showAdd },
|
|
126
|
+
"\u6DFB\u52A0",
|
|
127
|
+
field.title);
|
|
128
|
+
} }),
|
|
129
|
+
react_1.default.createElement(index_1.UModal, Object.assign({}, modalProps, { autoTitle: field.title, fields: formFields, default: config.formDefault || {}, onOk: (data) => {
|
|
130
|
+
hide();
|
|
131
|
+
if (modalProps.isEdit) {
|
|
132
|
+
update(data);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
add(data);
|
|
136
|
+
}
|
|
137
|
+
} })));
|
|
138
|
+
}, {
|
|
139
|
+
breakCol: true,
|
|
140
|
+
breakTitle: true,
|
|
141
|
+
render: (value, data, field) => {
|
|
142
|
+
let list = [];
|
|
143
|
+
try {
|
|
144
|
+
list = JSON.parse(value);
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
console.error(e);
|
|
148
|
+
}
|
|
149
|
+
return react_1.default.createElement(index_1.STable
|
|
150
|
+
// className="c-table json-array-table"
|
|
151
|
+
// size="small"
|
|
152
|
+
, {
|
|
153
|
+
// className="c-table json-array-table"
|
|
154
|
+
// size="small"
|
|
155
|
+
locale: { emptyText: react_1.default.createElement(index_1.Empty, { description: "\u6682\u65E0\u6570\u636E" }) }, list: list, columns: field.config.columns.map(item => (Object.assign(Object.assign({}, item), { render: (txt) => renderColumn(txt, item) }))), pagination: false });
|
|
156
|
+
}
|
|
157
|
+
});
|
|
@@ -82,6 +82,25 @@ const Const_1 = require("../Const");
|
|
|
82
82
|
onChange(isCheck ? field.options[CHECKED].value : field.options[UNCHECKED].value);
|
|
83
83
|
} }));
|
|
84
84
|
});
|
|
85
|
+
// 用法与 switch 相同
|
|
86
|
+
(0, _register_1.registerFormField)('switch-checkbox', (props) => {
|
|
87
|
+
const { field, disabled, value, onChange, options } = props;
|
|
88
|
+
if (options.length <= 1) {
|
|
89
|
+
console.warn('Type Switch Must have 2 Options');
|
|
90
|
+
return utils_1.Const.NONE;
|
|
91
|
+
}
|
|
92
|
+
let CHECKED = utils_1.GLOBAL.CONFIG.FORM.SWITCH_DEFAULT_CHECKED;
|
|
93
|
+
if (lodash_1.default.has(field.config, 'reverse') && field.config.reverse)
|
|
94
|
+
CHECKED = 1 - CHECKED;
|
|
95
|
+
let UNCHECKED = 1 - CHECKED;
|
|
96
|
+
const isCheck = value == field.options[CHECKED].value;
|
|
97
|
+
return react_1.default.createElement(antd_1.Checkbox, Object.assign({}, field.config, { disabled: disabled, checked: isCheck, onChange: evt => {
|
|
98
|
+
utils_1.PageUtil.stopEvent(evt.nativeEvent);
|
|
99
|
+
const checked = evt.target.checked;
|
|
100
|
+
onChange(checked ? field.options[CHECKED].value : field.options[UNCHECKED].value);
|
|
101
|
+
} }),
|
|
102
|
+
react_1.default.createElement("span", { style: { userSelect: 'none' } }, isCheck ? field.options[CHECKED].label : field.options[UNCHECKED].label));
|
|
103
|
+
});
|
|
85
104
|
// 单选
|
|
86
105
|
(0, _register_1.registerFormField)('radio', (props) => {
|
|
87
106
|
const { field, disabled, value, onChange, options } = props;
|
|
@@ -16,6 +16,7 @@ import './UForm/UFormRole';
|
|
|
16
16
|
import './UForm/UFormOrg';
|
|
17
17
|
import './UForm/UFormSearch';
|
|
18
18
|
import './UForm/UFormJSON';
|
|
19
|
+
import './UForm/UFormJSONTable';
|
|
19
20
|
import './UForm/UFormCrontab';
|
|
20
21
|
import './UForm/UFormAdvanceInput';
|
|
21
22
|
import './UForm/UFormAdvanceSelect';
|
|
@@ -20,6 +20,7 @@ require("./UForm/UFormRole"); // 高阶类型:角色
|
|
|
20
20
|
require("./UForm/UFormOrg"); // 高阶类型:机构
|
|
21
21
|
require("./UForm/UFormSearch"); // 高阶类型:自动填充/自动搜索(API接口获取数据)
|
|
22
22
|
require("./UForm/UFormJSON"); // 高阶类型:JSON Array, JSON Object
|
|
23
|
+
require("./UForm/UFormJSONTable"); // 高阶类型:JSON Array 升级版本
|
|
23
24
|
require("./UForm/UFormCrontab"); // 高阶类型:Crontab
|
|
24
25
|
require("./UForm/UFormAdvanceInput"); // 高阶类型:高级输入
|
|
25
26
|
require("./UForm/UFormAdvanceSelect"); // 高阶类型:高级选择
|
package/hooks/_list.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEFAULT_STATE = void 0;
|
|
4
|
+
const Global_1 = require("../utils/Global");
|
|
4
5
|
exports.DEFAULT_STATE = {
|
|
5
6
|
rowKey: 'id',
|
|
6
7
|
list: [],
|
|
7
8
|
isQuerying: false,
|
|
8
9
|
pageNo: 1,
|
|
9
|
-
pageSize:
|
|
10
|
+
pageSize: Global_1.CONFIG.PAGINATION.SIZE_DEFAULT,
|
|
10
11
|
total: 0,
|
|
11
12
|
totalAcc: 0,
|
|
12
13
|
param: {},
|
package/hooks/useArray.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StaticListState, ListInit } from './_list';
|
|
2
|
-
type
|
|
2
|
+
export type UseArrayOption = ListInit & {
|
|
3
3
|
/**
|
|
4
4
|
* 页面大小,默认为 VLIST 大小
|
|
5
5
|
* 默认为 0 :为0时,不分页,非0时分页
|
|
@@ -17,5 +17,4 @@ type ArrayOption = ListInit & {
|
|
|
17
17
|
* 静态数组 Table,支持 CRUD(不调接口)
|
|
18
18
|
* 同样适用于 VTable 等组件
|
|
19
19
|
*/
|
|
20
|
-
export declare const useArray: (options:
|
|
21
|
-
export {};
|
|
20
|
+
export declare const useArray: (options: UseArrayOption) => StaticListState;
|
package/hooks/useArray.js
CHANGED
|
@@ -46,21 +46,43 @@ const getList = (result) => {
|
|
|
46
46
|
* 同样适用于 VTable 等组件
|
|
47
47
|
*/
|
|
48
48
|
const useArray = (options) => {
|
|
49
|
-
const
|
|
50
|
-
const BASE = Object.assign(Object.assign({}, _list_1.DEFAULT_STATE), { pageSize: 0 });
|
|
49
|
+
const [ALL, setList] = (0, react_1.useState)(options.list || []);
|
|
50
|
+
const BASE = Object.assign(Object.assign({}, _list_1.DEFAULT_STATE), { pageSize: 0, list: [] });
|
|
51
51
|
if (options.rowKey)
|
|
52
52
|
BASE.rowKey = options.rowKey;
|
|
53
|
-
let lastQueryRef = (0, react_1.useRef)(options.param || {});
|
|
54
|
-
let pageToRef = (0, react_1.useRef)(null);
|
|
55
|
-
let orderByRef = (0, react_1.useRef)(null);
|
|
56
53
|
if (options.pageSize && options.pageSize > 0)
|
|
57
54
|
BASE.pageSize = options.pageSize;
|
|
55
|
+
let lastQueryRef = (0, react_1.useRef)(options.param || {});
|
|
56
|
+
let pageToRef = (0, react_1.useRef)({ pageNo: 1, pageSize: BASE.pageSize > 0 ? BASE.pageSize : 99999 });
|
|
57
|
+
let orderByRef = (0, react_1.useRef)(null);
|
|
58
58
|
const [state, setState] = (0, useSetState_1.useSetState)(BASE);
|
|
59
|
+
(0, useEffectFunction_1.useEffectFunction)(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
+
if (ALL.length > 0 || options.api == null)
|
|
61
|
+
return;
|
|
62
|
+
setState({ isQuerying: true });
|
|
63
|
+
const param = options.param || {};
|
|
64
|
+
let response;
|
|
65
|
+
if (options.param) {
|
|
66
|
+
response = utils_1.Ajax.POST(options.api, options.param);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
response = utils_1.Ajax.GET(options.api);
|
|
70
|
+
;
|
|
71
|
+
}
|
|
72
|
+
const resp = yield response;
|
|
73
|
+
const list = getList(resp);
|
|
74
|
+
setList(list);
|
|
75
|
+
setState({ isQuerying: false, param });
|
|
76
|
+
}));
|
|
77
|
+
(0, react_1.useLayoutEffect)(() => {
|
|
78
|
+
setState({ total: ALL.length, totalAcc: ALL.length });
|
|
79
|
+
queryRef();
|
|
80
|
+
}, [ALL]);
|
|
59
81
|
const queryRef = () => {
|
|
60
82
|
const param = lastQueryRef.current;
|
|
61
83
|
const pageTo = pageToRef.current;
|
|
62
84
|
const orderBy = orderByRef.current;
|
|
63
|
-
let list =
|
|
85
|
+
let list = ALL.slice(0);
|
|
64
86
|
lodash_1.default.keys(param).map(field => {
|
|
65
87
|
if (lodash_1.default.endsWith('_'))
|
|
66
88
|
return;
|
|
@@ -76,28 +98,13 @@ const useArray = (options) => {
|
|
|
76
98
|
list = lodash_1.default.orderBy(list, orderBy.order, orderBy.by);
|
|
77
99
|
}
|
|
78
100
|
if (pageTo == null) {
|
|
79
|
-
setState({ isQuerying: false, list, total: list.length, totalAcc: list.length
|
|
101
|
+
setState({ isQuerying: false, list, param, pageNo: 1, total: list.length, totalAcc: list.length });
|
|
80
102
|
return;
|
|
81
103
|
}
|
|
82
104
|
let start = pageTo.pageSize * (pageTo.pageNo - 1);
|
|
83
105
|
let count = pageTo.pageSize;
|
|
84
|
-
setState({ isQuerying: false, list: list.slice(start, count), total: list.length, totalAcc: list.length
|
|
106
|
+
setState({ isQuerying: false, list: list.slice(start, start + count), param, pageNo: pageTo.pageNo, pageSize: pageTo.pageSize, total: list.length, totalAcc: list.length });
|
|
85
107
|
};
|
|
86
|
-
const queryApi = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
87
|
-
const param = lastQueryRef.current;
|
|
88
|
-
setState({ isQuerying: true });
|
|
89
|
-
const resp = yield utils_1.Ajax.POST(options.api, param);
|
|
90
|
-
const list = getList(resp);
|
|
91
|
-
AllRef.current = list;
|
|
92
|
-
const pageTo = pageToRef.current;
|
|
93
|
-
if (pageTo == null) {
|
|
94
|
-
setState({ isQuerying: false, list, total: list.length, totalAcc: list.length, param, pageNo: 1, });
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
let start = pageTo.pageSize * (pageTo.pageNo - 1);
|
|
98
|
-
let count = pageTo.pageSize;
|
|
99
|
-
setState({ isQuerying: false, list: list.slice(start, count), total: list.length, totalAcc: list.length, param, pageNo: 1, });
|
|
100
|
-
});
|
|
101
108
|
const query = (param, clean) => {
|
|
102
109
|
if (clean) {
|
|
103
110
|
lastQueryRef.current = param || {};
|
|
@@ -113,42 +120,20 @@ const useArray = (options) => {
|
|
|
113
120
|
}
|
|
114
121
|
if (options.pageSize && options.pageSize > 0) {
|
|
115
122
|
pageToRef.current = { pageNo: 1, pageSize: options.pageSize };
|
|
123
|
+
setState({ pageNo: 1, pageSize: options.pageSize });
|
|
116
124
|
}
|
|
117
125
|
else {
|
|
118
126
|
pageToRef.current = null;
|
|
119
127
|
}
|
|
120
|
-
|
|
121
|
-
queryApi();
|
|
122
|
-
}
|
|
123
|
-
else if (AllRef.current != null && lodash_1.default.isArray(AllRef.current)) {
|
|
124
|
-
queryRef();
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
console.error('list 与 api 到少需要指定一项');
|
|
128
|
-
}
|
|
128
|
+
queryRef();
|
|
129
129
|
};
|
|
130
|
-
(0, useEffectFunction_1.useEffectFunction)(() => {
|
|
131
|
-
if (lodash_1.default.isArray(options.list))
|
|
132
|
-
AllRef.current = options.list;
|
|
133
|
-
if (options.autoLoad !== false)
|
|
134
|
-
query(options.param || {}, true);
|
|
135
|
-
});
|
|
136
130
|
const pageTo = (pageNo, pageSize) => {
|
|
137
|
-
if (options.pageSize
|
|
138
|
-
// pageToRef.current = { pageNo: 1, pageSize: options.pageSize }
|
|
131
|
+
if (options.pageSize == null || options.pageSize == 0) {
|
|
139
132
|
console.error('静态Array默认不翻页,如果需要翻页,需要指定pageSize');
|
|
140
133
|
return;
|
|
141
134
|
}
|
|
142
135
|
pageToRef.current = { pageNo, pageSize };
|
|
143
|
-
|
|
144
|
-
queryRef();
|
|
145
|
-
}
|
|
146
|
-
else if (options.api) {
|
|
147
|
-
queryApi();
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
console.error('list 与 api 到少需要指定一项');
|
|
151
|
-
}
|
|
136
|
+
queryRef();
|
|
152
137
|
};
|
|
153
138
|
const orderBy = (order, by) => {
|
|
154
139
|
if (order == null || by == null) {
|
|
@@ -157,24 +142,6 @@ const useArray = (options) => {
|
|
|
157
142
|
else {
|
|
158
143
|
orderByRef.current = { order, by };
|
|
159
144
|
}
|
|
160
|
-
if (AllRef.current != null && lodash_1.default.isArray(AllRef.current)) {
|
|
161
|
-
queryRef();
|
|
162
|
-
}
|
|
163
|
-
else if (options.api) {
|
|
164
|
-
queryApi();
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
console.error('list 与 api 到少需要指定一项');
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
const setList = (list) => {
|
|
171
|
-
AllRef.current = list.slice();
|
|
172
|
-
if (options.pageSize && options.pageSize > 0) {
|
|
173
|
-
pageToRef.current = { pageNo: 1, pageSize: options.pageSize };
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
pageToRef.current = null;
|
|
177
|
-
}
|
|
178
145
|
queryRef();
|
|
179
146
|
};
|
|
180
147
|
return Object.assign(Object.assign({}, state), { mode: 'static', query, pageTo, orderBy, setList });
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"vap1","version":"0.1.
|
|
1
|
+
{"name":"vap1","version":"0.1.6","description":"vap1, Both support MicroService and SAP FrameWork, Support IE>9","main":"index.js","author":"Xiang da","license":"ISC"}
|
package/utils/ArrayUtil.js
CHANGED
|
@@ -43,7 +43,14 @@ exports.add = add;
|
|
|
43
43
|
*/
|
|
44
44
|
const del = (list, ids, rowKey = 'id') => {
|
|
45
45
|
if (lodash_1.default.isArray(ids)) {
|
|
46
|
-
let toDelete = new Set(ids.map(
|
|
46
|
+
let toDelete = new Set(ids.map(id => {
|
|
47
|
+
if (lodash_1.default.isPlainObject(id)) {
|
|
48
|
+
return id[rowKey] + '';
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return id + '';
|
|
52
|
+
}
|
|
53
|
+
}));
|
|
47
54
|
return lodash_1.default.filter(list, item => !toDelete.has(item[rowKey] + ''));
|
|
48
55
|
}
|
|
49
56
|
return lodash_1.default.filter(list, item => ids != item[rowKey]);
|
package/utils/Global.d.ts
CHANGED
package/utils/index.d.ts
CHANGED
|
@@ -11,9 +11,40 @@ export * as GLOBAL from './Global';
|
|
|
11
11
|
export * as Renders from './Renders';
|
|
12
12
|
export * as Const from './Const';
|
|
13
13
|
export { default as VAP } from './VAP';
|
|
14
|
+
/**
|
|
15
|
+
* 路由信息
|
|
16
|
+
*/
|
|
14
17
|
export type Route = {
|
|
18
|
+
/**
|
|
19
|
+
* 路径hash ,即url /xxx/#/yyy 井号后面的部分 /yyy
|
|
20
|
+
*/
|
|
15
21
|
path: string;
|
|
16
|
-
|
|
22
|
+
/**
|
|
23
|
+
* 是否模糊匹配,相当于 LeftLike, 默认为 false
|
|
24
|
+
* 若定为ture, 那 /yyy 可以匹配到以 /yyy 开头的路由
|
|
25
|
+
* 如 /yyy/1 /yyy/a/b/c
|
|
26
|
+
* 建议与 useEffect([props.patterns]) 配合使用
|
|
27
|
+
*/
|
|
28
|
+
like?: true;
|
|
29
|
+
/**
|
|
30
|
+
* 是否缓存页面,可将页面设置为缓存
|
|
31
|
+
* 离开页面时,不会触发 unMount,
|
|
32
|
+
* 第二次进入时,不会触发各种 effect, state 等状态会保留。
|
|
33
|
+
* 说明,
|
|
34
|
+
* 1. 不支持 like 为 true 的页面缓存
|
|
35
|
+
* 2. 缓存页面暂不支持错误判定,请自行写好代码,避免白屏
|
|
36
|
+
* 3. 仅支持2.0版本,1.5版本无法支持。
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* 页面组件
|
|
40
|
+
* 1. 可以为一个 ReactNode, 如 <div></div>
|
|
41
|
+
* 2. 可以为 {default: ReactComponent} , 如 require('./page/xxx');
|
|
42
|
+
* 3. 可以为 ()=>Promise<{default: ReactComponent}> , 如 ()=>import('./page/xxx');
|
|
43
|
+
*
|
|
44
|
+
* 使用 require/import 写法时,必须导出为 default 如 export default ()=><div></div>
|
|
45
|
+
* 使用 import 写法时,将会异步加载,必须写成方法形式 如 ()=> import('./page/xxx'); 不能写成 import('./page/xx');
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
17
48
|
component: any;
|
|
18
49
|
};
|
|
19
50
|
export declare const registerRoute: (...routes: Route[]) => void;
|