vap1 0.3.6 → 0.3.7

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.
@@ -52,6 +52,10 @@ type _BoxSelectBarProps = BaseItem & {
52
52
  * 操作区域
53
53
  */
54
54
  actions?: SelectBarAction[];
55
+ /**
56
+ * 初始为收起状态,默认不收起
57
+ */
58
+ defaultCollapse?: boolean;
55
59
  /**
56
60
  * 边栏状态变更触发
57
61
  */
@@ -64,7 +64,7 @@ var _i18n_1 = require("../_i18n");
64
64
  var Icon_1 = require("../_adapt/Icon");
65
65
  exports.SelectBar = (0, react_1.forwardRef)(function (props, ref) {
66
66
  var _a = __read((0, react_1.useState)(null), 2), keyword = _a[0], setKeyword = _a[1];
67
- var _b = __read((0, hooks_1.useToggle)(false), 2), collapsed = _b[0], setCollapsed = _b[1];
67
+ var _b = __read((0, hooks_1.useToggle)(props.defaultCollapse || false), 2), collapsed = _b[0], setCollapsed = _b[1];
68
68
  // const setKeyword = _.debounce(_setKeyword, 100);
69
69
  var component = (0, _register_1.getSelectBar)(props.type);
70
70
  (0, react_1.useLayoutEffect)(function () {
@@ -142,9 +142,9 @@ var builderApiTableSerletor = function (options, nameIdx) { return function (pro
142
142
  };
143
143
  return react_1.default.createElement(react_1.default.Fragment, null,
144
144
  values[0] != undefined ? react_1.default.createElement(Button_1.Button, __assign({}, params, { onClick: function () { return setOpen(true); } }), getTip(values)) : react_1.default.createElement(Button_1.Button, __assign({}, params, { icon: 'select', onClick: function () { return setOpen(true); } }), (0, exports.getPlaceholder)(field, true)),
145
- react_1.default.createElement(Tables_1.ApiTableModal, { title: options.title, api: options.api, width: options.width || 720, columns: __spreadArray(__spreadArray([], __read(options.columns), false), [
145
+ react_1.default.createElement(Tables_1.ApiTableModal, __assign({ title: options.title, searchBar: options.searchBar, width: options.width || 720 }, field.config, { api: options.api, columns: __spreadArray(__spreadArray([], __read(options.columns), false), [
146
146
  Tables_1.ApiTable.COL_OPERACTION({ render: function (data) { return react_1.default.createElement(Tables_1.ApiTable.ACTION, { title: "\u9009\u62E9", icon: "select", onClick: function () { return onSelect(data); } }); } })
147
- ], false), searchBar: options.searchBar, open: open, onCancel: function () { return setOpen(false); } }));
147
+ ], false), open: open, onCancel: function () { return setOpen(false); } })));
148
148
  }; };
149
149
  /**
150
150
  * 快速注册 一个 弹出ApiTable 的选择组件
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { NumberFormat, FractionDigits } from '../../utils/Format';
3
+ type FormatFunction = (number: any) => string;
3
4
  export type CountUpProps = {
4
5
  /**
5
6
  * 自定义样式
@@ -20,7 +21,7 @@ export type CountUpProps = {
20
21
  /**
21
22
  * 样式
22
23
  */
23
- format?: NumberFormat;
24
+ format?: NumberFormat | FormatFunction;
24
25
  /**
25
26
  * pos 仅在 int-fixed 与 digtal 模式下有效
26
27
  * int-fixed
@@ -36,3 +37,4 @@ export type CountUpProps = {
36
37
  * 数据变化组件
37
38
  */
38
39
  export declare const CountUp: React.FC<CountUpProps>;
40
+ export {};
@@ -62,7 +62,11 @@ var loop = function (from, to, el, format, startTime, ms) {
62
62
  var CountUp = function (props) {
63
63
  var el = (0, react_1.useRef)(null);
64
64
  var ms = lodash_1.default.isNumber(props.ms) ? props.ms : 800;
65
- var format = (0, Format_1.getFormater)(props.format, props.pos);
65
+ var format = (0, react_1.useMemo)(function () {
66
+ if (lodash_1.default.isFunction(props.format))
67
+ return props.format;
68
+ return (0, Format_1.getFormater)(props.format, props.pos);
69
+ }, [props.format]);
66
70
  var _a = __read((0, react_1.useState)({ lastTime: Date.now(), lastValue: props.initValue || 0 }), 2), state = _a[0], setState = _a[1];
67
71
  var start = function (from, to) {
68
72
  setState({ lastTime: Date.now(), lastValue: to });
File without changes
@@ -0,0 +1 @@
1
+ //
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+ import type { PlainObject, UFormField } from "../../index";
3
+ type LookUp = {
4
+ title: string;
5
+ id: number;
6
+ type: string;
7
+ code: string;
8
+ value: string;
9
+ description: string;
10
+ };
11
+ export declare const useLookup: () => {
12
+ lookupLoading: boolean;
13
+ update: (data: PlainObject) => Promise<void>;
14
+ getLookups: (codes: string[]) => LookUp[];
15
+ getLookupsByType: (type: string) => LookUp[];
16
+ getLookupData: (fields: UFormField[]) => PlainObject;
17
+ changeSaveData: (data: any) => {};
18
+ };
19
+ type LookUpModalProps = {
20
+ title?: string;
21
+ open: boolean;
22
+ fields: UFormField[];
23
+ onCancel: () => void;
24
+ };
25
+ export declare const LookUpInfo: React.FC<LookUpModalProps>;
26
+ export declare const LookUpModal: React.FC<LookUpModalProps>;
27
+ export {};
@@ -0,0 +1,324 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
61
+ var __read = (this && this.__read) || function (o, n) {
62
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
63
+ if (!m) return o;
64
+ var i = m.call(o), r, ar = [], e;
65
+ try {
66
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
67
+ }
68
+ catch (error) { e = { error: error }; }
69
+ finally {
70
+ try {
71
+ if (r && !r.done && (m = i["return"])) m.call(i);
72
+ }
73
+ finally { if (e) throw e.error; }
74
+ }
75
+ return ar;
76
+ };
77
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
78
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
79
+ if (ar || !(i in from)) {
80
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
81
+ ar[i] = from[i];
82
+ }
83
+ }
84
+ return to.concat(ar || Array.prototype.slice.call(from));
85
+ };
86
+ var __values = (this && this.__values) || function(o) {
87
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
88
+ if (m) return m.call(o);
89
+ if (o && typeof o.length === "number") return {
90
+ next: function () {
91
+ if (o && i >= o.length) o = void 0;
92
+ return { value: o && o[i++], done: !o };
93
+ }
94
+ };
95
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
96
+ };
97
+ var __importDefault = (this && this.__importDefault) || function (mod) {
98
+ return (mod && mod.__esModule) ? mod : { "default": mod };
99
+ };
100
+ Object.defineProperty(exports, "__esModule", { value: true });
101
+ exports.LookUpModal = exports.LookUpInfo = exports.useLookup = void 0;
102
+ var react_1 = __importStar(require("react"));
103
+ var index_1 = require("../../index");
104
+ var lodash_1 = __importDefault(require("lodash"));
105
+ var hooks_1 = require("../../hooks");
106
+ var utils_1 = require("../../utils");
107
+ var useLookup = function () {
108
+ var _a = __read((0, hooks_1.useGlobal)('lookup', {
109
+ loading: true,
110
+ TypeInfoMap: new Map(),
111
+ CodeInfoMap: new Map()
112
+ }, {
113
+ share: true
114
+ }), 3), state = _a[0], setState = _a[1], loaded = _a[2];
115
+ var reflush = function () { return __awaiter(void 0, void 0, void 0, function () {
116
+ var resp, groups, TypeInfoMap, CodeInfoMap;
117
+ return __generator(this, function (_a) {
118
+ switch (_a.label) {
119
+ case 0: return [4 /*yield*/, utils_1.Ajax.POST('/api-audit/lookup', { "count_": 999, "status": 1 })];
120
+ case 1:
121
+ resp = _a.sent();
122
+ groups = lodash_1.default.groupBy(resp.list, 'type');
123
+ TypeInfoMap = new Map();
124
+ CodeInfoMap = new Map();
125
+ lodash_1.default.keys(groups).map(function (type) {
126
+ var arr = groups[type] || [];
127
+ var infoMap = new Map();
128
+ arr.map(function (item) {
129
+ infoMap.set(item.code, item);
130
+ CodeInfoMap.set(item.code, item);
131
+ });
132
+ TypeInfoMap.set(type, infoMap);
133
+ setState({ TypeInfoMap: TypeInfoMap, CodeInfoMap: CodeInfoMap, loading: false });
134
+ });
135
+ return [2 /*return*/];
136
+ }
137
+ });
138
+ }); };
139
+ var getLookupsByType = (0, react_1.useCallback)(function (type) {
140
+ var map = state.TypeInfoMap.get(type);
141
+ if (map == null)
142
+ return [];
143
+ return __spreadArray([], __read(map.values()), false);
144
+ }, [state]);
145
+ var getLookups = (0, react_1.useCallback)(function (codes) {
146
+ var looks = [];
147
+ codes.map(function (item) {
148
+ var ptn = (item || '').split('.').map(lodash_1.default.trim);
149
+ if (ptn.length == 1) {
150
+ var look = state.CodeInfoMap.get(ptn[0]);
151
+ if (look == null) {
152
+ console.warn("\u6CA1\u6709\u627E\u5230\u914D\u7F6E : ".concat(item));
153
+ return;
154
+ }
155
+ looks.push(look);
156
+ }
157
+ else if (ptn.length >= 2) {
158
+ var type = state.TypeInfoMap.get(ptn[0]);
159
+ if (type == null) {
160
+ console.warn("\u6CA1\u6709\u627E\u5230\u914D\u7F6E : ".concat(item));
161
+ return;
162
+ }
163
+ var look = type.get(ptn[1]);
164
+ if (look == null) {
165
+ console.warn("\u6CA1\u6709\u627E\u5230\u914D\u7F6E : ".concat(item));
166
+ return;
167
+ }
168
+ looks.push(look);
169
+ }
170
+ });
171
+ return looks;
172
+ }, [state]);
173
+ var getLookupData = (0, react_1.useCallback)(function (fields) {
174
+ var e_1, _a, _b, _c;
175
+ var data = {};
176
+ try {
177
+ for (var fields_1 = __values(fields), fields_1_1 = fields_1.next(); !fields_1_1.done; fields_1_1 = fields_1.next()) {
178
+ var field = fields_1_1.value;
179
+ var lookups = getLookups([field.field]);
180
+ if (lookups.length == 0)
181
+ continue;
182
+ var lookup = lookups[0];
183
+ // if(field.field.indexOf('.'))
184
+ var ptns = field.field.split('.');
185
+ var assignField = ptns[ptns.length - 1];
186
+ switch (field.type) {
187
+ case 'number':
188
+ case 'slider':
189
+ if (ptns.length > 1) {
190
+ if (data[ptns[0]]) {
191
+ data[ptns[0]][ptns[1]] = parseInt(lookup.value);
192
+ }
193
+ else {
194
+ data[ptns[0]] = (_b = {}, _b[ptns[1]] = parseInt(lookup.value), _b);
195
+ }
196
+ }
197
+ else {
198
+ data[assignField] = parseInt(lookup.value);
199
+ }
200
+ break;
201
+ default:
202
+ if (ptns.length > 1) {
203
+ if (data[ptns[0]]) {
204
+ data[ptns[0]][ptns[1]] = lookup.value;
205
+ }
206
+ else {
207
+ data[ptns[0]] = (_c = {}, _c[ptns[1]] = lookup.value, _c);
208
+ }
209
+ }
210
+ else {
211
+ data[assignField] = lookup.value;
212
+ }
213
+ break;
214
+ }
215
+ }
216
+ }
217
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
218
+ finally {
219
+ try {
220
+ if (fields_1_1 && !fields_1_1.done && (_a = fields_1.return)) _a.call(fields_1);
221
+ }
222
+ finally { if (e_1) throw e_1.error; }
223
+ }
224
+ return data;
225
+ }, [state]);
226
+ var changeSaveData = function (data) {
227
+ var changedData = {};
228
+ var _loop_1 = function (key) {
229
+ if (lodash_1.default.isObjectLike(data[key])) {
230
+ changedData[key] = data[key];
231
+ lodash_1.default.keys(data[key]).forEach(function (itemKey) {
232
+ changedData[itemKey] = data[key][itemKey];
233
+ });
234
+ }
235
+ else {
236
+ if (!changedData[key]) {
237
+ changedData[key] = data[key];
238
+ }
239
+ }
240
+ };
241
+ for (var key in data) {
242
+ _loop_1(key);
243
+ }
244
+ return changedData;
245
+ };
246
+ (0, react_1.useEffect)(function () {
247
+ if (loaded)
248
+ return;
249
+ reflush();
250
+ }, []);
251
+ var update = function (data) { return __awaiter(void 0, void 0, void 0, function () {
252
+ var params, paramsCodeArr, lookups;
253
+ return __generator(this, function (_a) {
254
+ switch (_a.label) {
255
+ case 0:
256
+ params = [];
257
+ paramsCodeArr = [];
258
+ lookups = getLookups(lodash_1.default.keys(data));
259
+ // 更新旧值
260
+ lodash_1.default.keys(data).map(function (key) {
261
+ var find = lodash_1.default.find(lookups, function (item) { return (item.code == key) || ("".concat(item.type, ".").concat(item.code) == key); });
262
+ if (find) {
263
+ paramsCodeArr.push({ code: key });
264
+ if (data[key] != find.value) {
265
+ params.push({ id: find.id, value: data[key] });
266
+ }
267
+ return;
268
+ }
269
+ });
270
+ // 设置新值--对象类型
271
+ lodash_1.default.keys(data).map(function (key) {
272
+ var objValue = data[key];
273
+ if (lodash_1.default.isObjectLike(objValue)) {
274
+ for (var itemKey in objValue) {
275
+ if (!lodash_1.default.find(paramsCodeArr, { code: itemKey })) {
276
+ params.push({ type: key, code: itemKey, value: objValue[itemKey] });
277
+ }
278
+ }
279
+ }
280
+ });
281
+ // 设置新智--简单类型
282
+ lodash_1.default.keys(data).map(function (key) {
283
+ var objValue = data[key];
284
+ if (!lodash_1.default.isObjectLike(objValue)) {
285
+ if (!lodash_1.default.find(paramsCodeArr, { code: key }) && !lodash_1.default.find(params, { code: key })) {
286
+ params.push({ code: key, value: data[key] });
287
+ }
288
+ }
289
+ });
290
+ if (params.length == 0) {
291
+ index_1.message.success('配置修改成功');
292
+ return [2 /*return*/];
293
+ }
294
+ return [4 /*yield*/, utils_1.Ajax.WHEN.apply(utils_1.Ajax, __spreadArray([], __read(params.map(function (param) { return utils_1.Ajax.PATCH('/api-audit/lookup', param); })), false))];
295
+ case 1:
296
+ _a.sent();
297
+ index_1.message.success('配置修改成功');
298
+ reflush();
299
+ return [2 /*return*/];
300
+ }
301
+ });
302
+ }); };
303
+ return { lookupLoading: state.loading, update: update, getLookups: getLookups, getLookupsByType: getLookupsByType, getLookupData: getLookupData, changeSaveData: changeSaveData };
304
+ };
305
+ exports.useLookup = useLookup;
306
+ var LookUpInfo = function (props) {
307
+ var getLookupData = (0, exports.useLookup)().getLookupData;
308
+ var data = getLookupData(props.fields);
309
+ return react_1.default.createElement(index_1.UInfoModal, { open: props.open, fields: props.fields, data: data, onCancel: props.onCancel, title: props.title || '配置详情', onOk: props.onCancel });
310
+ };
311
+ exports.LookUpInfo = LookUpInfo;
312
+ var LookUpModal = function (props) {
313
+ var _a = (0, exports.useLookup)(), getLookupData = _a.getLookupData, update = _a.update, changeSaveData = _a.changeSaveData;
314
+ var data = getLookupData(props.fields);
315
+ var save = function (saveData) { return __awaiter(void 0, void 0, void 0, function () {
316
+ return __generator(this, function (_a) {
317
+ update(changeSaveData(saveData));
318
+ props.onCancel();
319
+ return [2 /*return*/];
320
+ });
321
+ }); };
322
+ return react_1.default.createElement(index_1.UFormModal, { isEdit: true, data: data, open: props.open, onCancel: props.onCancel, title: props.title || '配置', onOk: save, fields: props.fields });
323
+ };
324
+ exports.LookUpModal = LookUpModal;
@@ -0,0 +1 @@
1
+ export { useLookup, LookUpInfo, LookUpModal } from './LookUp';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LookUpModal = exports.LookUpInfo = exports.useLookup = void 0;
4
+ var LookUp_1 = require("./LookUp");
5
+ Object.defineProperty(exports, "useLookup", { enumerable: true, get: function () { return LookUp_1.useLookup; } });
6
+ Object.defineProperty(exports, "LookUpInfo", { enumerable: true, get: function () { return LookUp_1.LookUpInfo; } });
7
+ Object.defineProperty(exports, "LookUpModal", { enumerable: true, get: function () { return LookUp_1.LookUpModal; } });
package/hooks/_list.d.ts CHANGED
@@ -77,8 +77,9 @@ export type ApiListState = ApiModel & {
77
77
  mode: 'api' | 'api-global';
78
78
  /**
79
79
  * ALL 方法需要有满足规范的 GET API 才可以调用
80
+ * all 方法的默认API 与 CRUD API相同,不同时,可传指定API
80
81
  */
81
- all?: (status?: boolean) => Promise<PlainObject[]>;
82
+ all?: (api?: string) => Promise<void>;
82
83
  };
83
84
  export type SouteListState = ListModel & {
84
85
  mode: 'source';
@@ -2,9 +2,6 @@
2
2
  * 查询方法,返回 Promise对象 即可
3
3
  */
4
4
  type QueryFunction = (...args: any[]) => Promise<any>;
5
- /**
6
- *
7
- */
8
5
  type UseAjaxQueryOptions<T> = {
9
6
  /**
10
7
  * 查询方法
@@ -32,6 +29,13 @@ type UseAjaxQuery = <T>(options: QueryFunction | UseAjaxQueryOptions<T>) => UseA
32
29
  /**
33
30
  * 封装一个Ajax接口查询操作
34
31
  * 通过用于 Ajax 操作,实际上可以用于任何 Promise 方法
32
+ * 返回结果,依次为
33
+ * [
34
+ * 0: loading / Boolean 正在查询查询中
35
+ * 1: data / T = any 查询结果
36
+ * 2: query / Function 查询方法
37
+ * 3: param / any[] 当前查询参数
38
+ * ]
35
39
  */
36
40
  export declare const useAjaxQuery: UseAjaxQuery;
37
41
  export {};
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -72,11 +83,21 @@ var useFirstMountState_1 = require("./useFirstMountState");
72
83
  /**
73
84
  * 封装一个Ajax接口查询操作
74
85
  * 通过用于 Ajax 操作,实际上可以用于任何 Promise 方法
86
+ * 返回结果,依次为
87
+ * [
88
+ * 0: loading / Boolean 正在查询查询中
89
+ * 1: data / T = any 查询结果
90
+ * 2: query / Function 查询方法
91
+ * 3: param / any[] 当前查询参数
92
+ * ]
75
93
  */
76
94
  var useAjaxQuery = function (options) {
77
95
  var config = lodash_1.default.isFunction(options) ? { fn: options } : options;
78
- var _a = __read((0, react_1.useState)([config.defaultValue, lodash_1.default.isArray(config.autoLoad) ? config.autoLoad : []]), 2), _b = __read(_a[0], 2), data = _b[0], param = _b[1], setData = _a[1];
79
- var _c = __read((0, react_1.useState)(config.autoLoad != undefined ? true : false), 2), loading = _c[0], setLoading = _c[1];
96
+ var _a = __read((0, react_1.useState)({
97
+ loading: config.autoLoad != undefined ? true : false,
98
+ data: config.defaultValue,
99
+ param: lodash_1.default.isArray(config.autoLoad) ? config.autoLoad : []
100
+ }), 2), _b = _a[0], loading = _b.loading, data = _b.data, param = _b.param, setData = _a[1];
80
101
  var isFirstMount = (0, useFirstMountState_1.useFirstMountState)();
81
102
  var _fetch = function () {
82
103
  var args = [];
@@ -84,47 +105,47 @@ var useAjaxQuery = function (options) {
84
105
  args[_i] = arguments[_i];
85
106
  }
86
107
  return __awaiter(void 0, void 0, void 0, function () {
87
- var resp, err_1;
108
+ var response, err_1;
88
109
  return __generator(this, function (_a) {
89
110
  switch (_a.label) {
90
111
  case 0:
91
112
  _a.trys.push([0, 2, , 3]);
92
- setLoading(true);
113
+ setData(function (prev) { return (__assign(__assign({}, prev), { loading: true })); });
93
114
  return [4 /*yield*/, config.fn.apply(config, __spreadArray([], __read(args), false))];
94
115
  case 1:
95
- resp = _a.sent();
96
- if (lodash_1.default.has(resp, 'code') && resp.code != '0' && resp.message) {
97
- antd_1.message.error(resp.message);
98
- setData([config.defaultValue, args]);
99
- setLoading(false);
100
- return [2 /*return*/];
101
- }
116
+ response = _a.sent();
102
117
  if (config.valueHander) {
103
118
  if (lodash_1.default.isString(config.valueHander)) {
104
- setData([lodash_1.default.get(resp, config.valueHander), args]);
119
+ setData({ loading: false, param: args, data: lodash_1.default.get(response, config.valueHander) });
105
120
  }
106
121
  else {
107
- setData([config.valueHander.apply(config, __spreadArray([resp], __read(args), false)), args]);
122
+ setData({ loading: false, param: args, data: config.valueHander.apply(config, __spreadArray([response], __read(args), false)) });
108
123
  }
124
+ return [2 /*return*/];
109
125
  }
110
- else {
111
- if (lodash_1.default.has(resp, 'data')) {
112
- setData([resp.data, args]);
113
- }
114
- else if (lodash_1.default.has(resp, 'list')) {
115
- setData([resp.list, args]);
116
- }
117
- else {
118
- setData([resp, args]);
126
+ if (lodash_1.default.has(response, 'code') && response.code != '0') {
127
+ if (response.message
128
+ // // && !NOT_TIP.has(resp.message)
129
+ ) {
130
+ antd_1.message.error(response.message);
119
131
  }
132
+ setData(function (prev) { return (__assign(__assign({}, prev), { loading: false })); });
133
+ return [2 /*return*/];
134
+ }
135
+ if (lodash_1.default.has(response, 'data')) {
136
+ setData({ loading: false, param: args, data: response.data });
137
+ }
138
+ else if (lodash_1.default.has(response, 'list')) {
139
+ setData({ loading: false, param: args, data: response.list });
140
+ }
141
+ else {
142
+ setData({ loading: false, param: args, data: response });
120
143
  }
121
- setLoading(false);
122
144
  return [3 /*break*/, 3];
123
145
  case 2:
124
146
  err_1 = _a.sent();
125
147
  console.error(err_1);
126
- setData([config.defaultValue, args]);
127
- setLoading(false);
148
+ setData(function (prev) { return (__assign(__assign({}, prev), { loading: false })); });
128
149
  return [3 /*break*/, 3];
129
150
  case 3: return [2 /*return*/];
130
151
  }
@@ -162,33 +162,32 @@ var useApiBase = function (config, state, doLoad, mode) {
162
162
  lastQuery.current = {};
163
163
  queryHook(param);
164
164
  };
165
- var all = function (loader) {
166
- if (loader === void 0) { loader = true; }
167
- return __awaiter(void 0, void 0, void 0, function () {
168
- var resp, list;
169
- return __generator(this, function (_a) {
170
- switch (_a.label) {
171
- case 0: return [4 /*yield*/, utils_1.Ajax.GET(config.api)];
172
- case 1:
173
- resp = _a.sent();
174
- if (resp.code == '0') {
175
- list = lodash_1.default.isArray(resp.data) ? resp.data : (lodash_1.default.isArray(resp.list) ? resp.list : []);
176
- }
177
- if (loader) {
178
- doLoad({
179
- total: list.length,
180
- totalAcc: list.length,
181
- list: list,
182
- pageSize: list.length,
183
- pageNo: 1,
184
- param: {},
185
- });
186
- }
187
- return [2 /*return*/, list];
188
- }
189
- });
165
+ var all = function (api) { return __awaiter(void 0, void 0, void 0, function () {
166
+ var ALL_API, resp, list;
167
+ return __generator(this, function (_a) {
168
+ switch (_a.label) {
169
+ case 0:
170
+ ALL_API = api || config.api;
171
+ doLoad({ isQuerying: true });
172
+ return [4 /*yield*/, utils_1.Ajax.GET(ALL_API)];
173
+ case 1:
174
+ resp = _a.sent();
175
+ if (resp.code == '0') {
176
+ list = lodash_1.default.isArray(resp.data) ? resp.data : (lodash_1.default.isArray(resp.list) ? resp.list : []);
177
+ }
178
+ doLoad({
179
+ total: list.length,
180
+ totalAcc: list.length,
181
+ list: list,
182
+ isQuerying: false,
183
+ pageSize: list.length,
184
+ pageNo: 1,
185
+ param: {},
186
+ });
187
+ return [2 /*return*/];
188
+ }
190
189
  });
191
- };
190
+ }); };
192
191
  var pageTo = function (pageNo, pageSize) { return queryHook(null, { pageNo: pageNo, pageSize: pageSize }); };
193
192
  var orderBy = function (order, by) { return queryHook(null, null, { order: order, by: by }); };
194
193
  var doAdd = function (data) { return doLoad(function (prev) { return ({
package/index.d.ts CHANGED
@@ -136,6 +136,7 @@ export { STree, DTree, FTree } from './components/Trees';
136
136
  export { UploadFile, UploadImage, UploadModal } from './components/Upload';
137
137
  export { SList, type SListProps } from './components/Lists/SList';
138
138
  export type { UFromProps, UModalProps, UFormField, UFormFieldGroup, LinkResult, UDescriptionsProps, UFormRef, Link, LinkValue } from './components/UForm';
139
+ export type { UInfoProps } from './components/UForm/UInfo';
139
140
  export type { TableColumn } from './components/Tables/index';
140
141
  export type { VTableProps, VTableRef } from './components/Tables/VTable';
141
142
  export type { ApiTableProps } from './components/Tables/ApiTable';
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"vap1","version":"0.3.6","description":"vap1, Both support MicroService and SAP FrameWork, Support IE>9","main":"index.js","author":"Xiang da","license":"ISC"}
1
+ {"name":"vap1","version":"0.3.7","description":"vap1, Both support MicroService and SAP FrameWork, Support IE>9","main":"index.js","author":"Xiang da","license":"ISC"}
@@ -2,12 +2,12 @@ import type { FormSchema } from './schema';
2
2
  import type { RefAttributes, ForwardRefExoticComponent, FC } from 'react';
3
3
  import type { UModalProps, UFormRef, PlainObject } from '../index';
4
4
  /**
5
- * ˵���� �༭���� UFormϵ����� ����Ӧ��ϵ����
6
- * InfoViewer �൱�� UInfo
7
- * FormViewer �൱�� UForm
8
- * FormModal �൱�� UFormModal
9
- * InfoModal �൱�� UInfoModal
10
- * FormInfoModal �൱�� UModal
5
+ * 说明: 编辑器与 UForm系列组件 :对应关系如下
6
+ * InfoViewer 相当于 UInfo
7
+ * FormViewer 相当于 UForm
8
+ * FormModal 相当于 UFormModal
9
+ * InfoModal 相当于 UInfoModal
10
+ * FormInfoModal 相当于 UModal
11
11
  */
12
12
  type ModalProps = Pick<UModalProps, 'open' | 'onOk' | 'onCancel' | 'title' | 'data' | 'isEdit' | 'autoTitle'>;
13
13
  type FormViewProps = {
package/utils/Format.d.ts CHANGED
@@ -9,7 +9,14 @@ export type NumberFormat = 'int' | 'int-fixed' | 'number' | 'size' | 'usd' | 'ch
9
9
  * 1234567 -> '1,234,567'
10
10
  */
11
11
  export declare const formatUSD: (num: number, digital?: FractionDigits) => string;
12
- export declare const formatPercent: (num: number, basic?: number) => string;
12
+ /**
13
+ * num: 分子,需要格式化的数字
14
+ * base: 分母,默认为 1
15
+ * formatPercent(0.2, 1) = 20%
16
+ * formatPercent(20, 100) = 20%
17
+ * fractionDigits: 小数点位数,默认为2
18
+ */
19
+ export declare const formatPercent: (num: number, basic?: number, fractionDigits?: FractionDigits) => string;
13
20
  export declare const formatSize: (byteSize: number) => string;
14
21
  /**
15
22
  * pos : 小数点后面位数,最多20
package/utils/Format.js CHANGED
@@ -53,9 +53,17 @@ var formatUSD = function (num, digital) {
53
53
  return num.toLocaleString('en-US', { minimumFractionDigits: fixed, maximumFractionDigits: fixed });
54
54
  };
55
55
  exports.formatUSD = formatUSD;
56
- var formatPercent = function (num, basic) {
56
+ /**
57
+ * num: 分子,需要格式化的数字
58
+ * base: 分母,默认为 1
59
+ * formatPercent(0.2, 1) = 20%
60
+ * formatPercent(20, 100) = 20%
61
+ * fractionDigits: 小数点位数,默认为2
62
+ */
63
+ var formatPercent = function (num, basic, fractionDigits) {
57
64
  if (basic === void 0) { basic = 1; }
58
- return (0, exports.formatNumber)(num / basic) + '%';
65
+ if (fractionDigits === void 0) { fractionDigits = 2; }
66
+ return (0, exports.formatNumber)(num * 100 / basic, fractionDigits) + '%';
59
67
  };
60
68
  exports.formatPercent = formatPercent;
61
69
  var formatSize = function (byteSize) {
@@ -18,6 +18,10 @@ export declare enum TIP_ACTION {
18
18
  export declare enum TIP_ACTION_BATCH {
19
19
  SORT = 0
20
20
  }
21
+ /**
22
+ * 内置错误,不提示
23
+ */
24
+ export declare const NOT_TIP: Set<string>;
21
25
  /**
22
26
  * 批量提示
23
27
  */
package/utils/TipUtil.js CHANGED
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.tipResponse = exports.tipError = exports.tipResponseBatch = exports.TIP_ACTION_BATCH = exports.TIP_ACTION = void 0;
17
+ exports.tipResponse = exports.tipError = exports.tipResponseBatch = exports.NOT_TIP = exports.TIP_ACTION_BATCH = exports.TIP_ACTION = void 0;
18
18
  var lodash_1 = __importDefault(require("lodash"));
19
19
  var antd_1 = require("antd");
20
20
  var i18n_1 = require("./i18n");
@@ -36,11 +36,13 @@ var TIP_ACTION_BATCH;
36
36
  })(TIP_ACTION_BATCH || (exports.TIP_ACTION_BATCH = TIP_ACTION_BATCH = {}));
37
37
  ;
38
38
  /**
39
- * 内置错误
39
+ * 内置错误,不提示
40
40
  */
41
- var NOT_TIP = new Set([
41
+ exports.NOT_TIP = new Set([
42
+ '请求超时,无法负载到后端服务!!',
42
43
  '后端内部服务异常,无法负载到后端服务!!',
43
44
  '系统繁忙,请稍后再试',
45
+ '500 INTERNAL_SERVER_ERROR',
44
46
  '500_ERROR'
45
47
  ]);
46
48
  // const MessageFormat = () => {
@@ -102,7 +104,7 @@ var tipResponse = function (response, action, data, options) {
102
104
  var isSuccess = response.code == Global_1.CONFIG.RESULT.success;
103
105
  if (!isSuccess) {
104
106
  if (Global_1.CONFIG.APP.TIP_ERROR) {
105
- if (response.message && !NOT_TIP.has(response.message)) {
107
+ if (response.message && !exports.NOT_TIP.has(response.message)) {
106
108
  antd_1.message.error(response.message);
107
109
  return false;
108
110
  }