vap1 0.4.2 → 0.4.3

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.
@@ -150,7 +150,7 @@ exports.Box = (0, react_1.forwardRef)(function (props, ref) {
150
150
  setState({ height: Math.floor(total) });
151
151
  document.body.classList.remove('v-resizing');
152
152
  };
153
- (0, react_1.useEffect)(function () { setTimeout(resize, 2); }, [app === null || app === void 0 ? void 0 : app.theme.contentHeight]);
153
+ (0, react_1.useEffect)(function () { setTimeout(resize, 120); }, [app === null || app === void 0 ? void 0 : app.theme.contentHeight]); // 1.5 版本:延时 120ms
154
154
  (0, react_1.useImperativeHandle)(ref, function () { return ({ resize: resize }); }, []);
155
155
  (0, react_1.useLayoutEffect)(function () {
156
156
  setTimeout(resize, 5);
@@ -62,12 +62,12 @@ var loop = function (root, FIELDS, treeData, checkedKeys, FULL_CHECKED, HALF_CHE
62
62
  // node.className = 'co-tree-select-all';
63
63
  // node.icon = <Icon type="check-circle" />;
64
64
  // node.title = <span>{item[FIELDS.titleField]}{TIP && <small>(含下级)</small>}</span>
65
+ node.isLeaf = true;
65
66
  node.title = react_1.default.createElement("span", { className: 'co-tree-select-all' },
66
67
  react_1.default.createElement(Icon_1.Icon, { type: "check-circle" }),
67
68
  " ",
68
69
  react_1.default.createElement("span", null, item[FIELDS.titleField]),
69
70
  TIP && react_1.default.createElement("small", null, "(\u542B\u4E0B\u7EA7)"));
70
- node.isLeaf = true;
71
71
  checkedKeys.checked.push(item[FIELDS.keyField]);
72
72
  }
73
73
  else if (HALF_CHECKED.has(item[FIELDS.keyField])) {
package/hooks/useApp.d.ts CHANGED
@@ -99,7 +99,7 @@ export interface GlobalMenu {
99
99
  * 方法 - 菜单跳转
100
100
  * @param menu 参数支持
101
101
  * 1. 一个路径:如 /admin/#/user
102
- * 2. 一个菜单: 如 { root:'/admin', route:'/user' }
102
+ * 2. 一个菜单: 如 { root:'/admin/', route:'/user' }
103
103
  * 3. 一个地址: 如 https://www.qq.com ,(弹出新的TAB面面)
104
104
  * 4. 菜单ID : 如 "1" , 将会通过 id 获取具体菜单(打开特殊 sign 菜单用此项)
105
105
  *
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"vap1","version":"0.4.2","description":"vap1, Both support MicroService and SAP FrameWork, Support IE>9","main":"index.js","author":"Xiang da","license":"ISC"}
1
+ {"name":"vap1","version":"0.4.3","description":"vap1, Both support MicroService and SAP FrameWork, Support IE>9","main":"index.js","author":"Xiang da","license":"ISC"}
@@ -100,21 +100,21 @@ var _define_1 = require("./_define");
100
100
  var Const_1 = require("../Const");
101
101
  var API_CACHES = new Map();
102
102
  var loadApi = function (option) { return __awaiter(void 0, void 0, void 0, function () {
103
- var KEY, cache, result, arr;
103
+ var CACHE_KEY, cache, result, arr;
104
104
  return __generator(this, function (_a) {
105
105
  switch (_a.label) {
106
106
  case 0:
107
+ CACHE_KEY = option.cacheKey || option.api;
107
108
  if (option.cache !== false)
108
- index_1.Ajax.SESSION(option.api);
109
- KEY = option.api;
110
- if (!API_CACHES.has(KEY)) {
111
- API_CACHES.set(KEY, {
109
+ index_1.Ajax.SESSION(CACHE_KEY);
110
+ if (!API_CACHES.has(CACHE_KEY)) {
111
+ API_CACHES.set(CACHE_KEY, {
112
112
  fetcher: index_1.Ajax.GET(option.api),
113
113
  loaded: false,
114
114
  map: new Map()
115
115
  });
116
116
  }
117
- cache = API_CACHES.get(KEY);
117
+ cache = API_CACHES.get(CACHE_KEY);
118
118
  if (cache.loaded)
119
119
  return [2 /*return*/, false];
120
120
  return [4 /*yield*/, cache.fetcher];
@@ -131,6 +131,7 @@ var loadApi = function (option) { return __awaiter(void 0, void 0, void 0, funct
131
131
  }); };
132
132
  exports.loadApi = loadApi;
133
133
  var _ApiGetRender = function (props) {
134
+ var CACHE_KEY = props.cacheKey || props.api;
134
135
  var update = (0, hooks_1.useUpdate)();
135
136
  (0, react_1.useEffect)(function () {
136
137
  (function () { return __awaiter(void 0, void 0, void 0, function () {
@@ -146,7 +147,7 @@ var _ApiGetRender = function (props) {
146
147
  }
147
148
  });
148
149
  }); })();
149
- var KEY = "_API_GET_EVENT_" + props.api.split('/').join('_');
150
+ var KEY = "_API_GET_EVENT_" + CACHE_KEY.split('/').join('_');
150
151
  index_1.EventUtil.on(KEY, function () { return __awaiter(void 0, void 0, void 0, function () {
151
152
  return __generator(this, function (_a) {
152
153
  switch (_a.label) {
@@ -160,7 +161,7 @@ var _ApiGetRender = function (props) {
160
161
  }); });
161
162
  return function () { return index_1.EventUtil.off(KEY); };
162
163
  }, []);
163
- var cache = API_CACHES.get(props.api);
164
+ var cache = API_CACHES.get(CACHE_KEY);
164
165
  if (props.value === null || props.value === '' || cache == null || cache.map == null || cache.map.size == 0) {
165
166
  return props.default || Const_1.NONE;
166
167
  }
@@ -187,7 +188,8 @@ var _ApiGetRender = function (props) {
187
188
  * 从一个 GET API 中取出对应的值,并渲染到页面上
188
189
  */
189
190
  var ApiGetRender = function (options) {
190
- var fn = function (txt) { return react_1.default.createElement(_ApiGetRender, __assign({ key: options.api + txt }, options, { value: txt })); };
191
+ var CACHE_KEY = options.cacheKey || options.api;
192
+ var fn = function (txt) { return react_1.default.createElement(_ApiGetRender, __assign({ key: CACHE_KEY + txt }, options, { value: txt })); };
191
193
  fn.useOption = function (config) {
192
194
  var _a = __read((0, react_1.useState)([]), 2), state = _a[0], setState = _a[1];
193
195
  (0, react_1.useEffect)(function () {
@@ -198,7 +200,7 @@ var ApiGetRender = function (options) {
198
200
  case 0: return [4 /*yield*/, (0, exports.loadApi)(options)];
199
201
  case 1:
200
202
  _a.sent();
201
- cache = API_CACHES.get(options.api);
203
+ cache = API_CACHES.get(CACHE_KEY);
202
204
  return [4 /*yield*/, cache.fetcher];
203
205
  case 2:
204
206
  result = _a.sent();
@@ -241,7 +243,7 @@ var ApiGetRender = function (options) {
241
243
  }
242
244
  });
243
245
  }); };
244
- var KEY = "_API_GET_EVENT_" + options.api.split('/').join('_');
246
+ var KEY = "_API_GET_EVENT_" + CACHE_KEY.split('/').join('_');
245
247
  index_1.EventUtil.on(KEY, fetchOptions);
246
248
  fetchOptions();
247
249
  return function () { return index_1.EventUtil.off(KEY); };
@@ -249,28 +251,31 @@ var ApiGetRender = function (options) {
249
251
  return state;
250
252
  };
251
253
  fn.getText = function (val, def) {
252
- if (API_CACHES.has(options.api) && API_CACHES.get(options.api).loaded) {
253
- return API_CACHES.get(options.api).map.get(val) || (def || val);
254
+ if (API_CACHES.has(CACHE_KEY)) {
255
+ var CACHE_MAPPER = API_CACHES.get(CACHE_KEY);
256
+ if (CACHE_MAPPER.loaded) {
257
+ return CACHE_MAPPER.map.get(val) || (def === undefined ? val : def);
258
+ }
254
259
  }
255
260
  var resp = (0, XHR_1.GETSYNC)(options.api);
256
261
  var map = new Map();
257
262
  var arr = (0, _define_1.getList)(resp);
258
263
  arr.map(function (item) { return map.set(item[options.valueField] + '', item[options.nameField]); });
259
- API_CACHES.set(options.api, {
264
+ API_CACHES.set(CACHE_KEY, {
260
265
  fetcher: index_1.Ajax.GET(options.api),
261
266
  loaded: true,
262
267
  map: map,
263
268
  });
264
- return map.get(val) || (def || val);
269
+ return map.get(val) || (def === undefined ? val : def);
265
270
  };
266
271
  fn.reflush = function () {
267
- index_1.Ajax.CLEAR(options.api);
268
- API_CACHES.set(options.api, {
272
+ index_1.Ajax.CLEAR(CACHE_KEY);
273
+ API_CACHES.set(CACHE_KEY, {
269
274
  fetcher: index_1.Ajax.GET(options.api),
270
275
  loaded: false,
271
276
  map: new Map()
272
277
  });
273
- var KEY = "_API_GET_EVENT_" + options.api.split('/').join('_');
278
+ var KEY = "_API_GET_EVENT_" + CACHE_KEY.split('/').join('_');
274
279
  index_1.EventUtil.call(KEY);
275
280
  };
276
281
  return fn;
@@ -207,7 +207,7 @@ var ApiPostRender = function (options) {
207
207
  result = getLabel(options, resp, key);
208
208
  }
209
209
  if (result == false)
210
- return def || '';
210
+ return def === undefined ? '' : def;
211
211
  return result;
212
212
  };
213
213
  return fn;
@@ -37,7 +37,7 @@ var ListRender = function (options) {
37
37
  MAP.set(lodash_1.default.trim(item[valueField]), (0, i18n_1.txt)(item['ik']));
38
38
  }
39
39
  else {
40
- MAP.set(lodash_1.default.trim(item[valueField]), item[labelField] + '');
40
+ MAP.set(lodash_1.default.trim(item[valueField]), item[labelField]);
41
41
  }
42
42
  }
43
43
  });
@@ -13,8 +13,18 @@ export type BaseRenderOptions = {
13
13
  };
14
14
  export type ApiRenderOptions = BaseRenderOptions & {
15
15
  api: string;
16
+ /**
17
+ * 用于展示 Label 的字段
18
+ */
16
19
  nameField: string;
20
+ /**
21
+ * 用于映射值的字段
22
+ */
17
23
  valueField: string;
24
+ /**
25
+ * 默认缓存为 api 地址,若不想以 api 做为KEY,可以指定(用于两个相同的APIRender时)
26
+ */
27
+ cacheKey?: string;
18
28
  render?: (info: BaseOption) => React.ReactNode;
19
29
  };
20
30
  export declare const getValue: (txt: string, options: BaseRenderOptions) => string | React.ReactNode;