vap1 0.4.1 → 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.1","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"}
package/utils/PageUtil.js CHANGED
@@ -57,7 +57,7 @@ var _Support_1 = require("./_Support");
57
57
  var _AjaxUtil_1 = require("./_AjaxUtil");
58
58
  var i18n_1 = require("./i18n");
59
59
  var Global_1 = require("./Global");
60
- var len = window.APP_ROOT ? window.APP_ROOT.length : 0;
60
+ var len = _Support_1.APP_ROOT ? _Support_1.APP_ROOT.length : 0;
61
61
  /**
62
62
  * 阻止事件简单封装
63
63
  */
@@ -111,15 +111,15 @@ var DEFAULT_RESOLVER = function (url) { return url; };
111
111
  exports.resolveURL = len == 0 ? DEFAULT_RESOLVER : function (url) {
112
112
  if (!url.startsWith('/'))
113
113
  return url;
114
- if (url.startsWith(window.APP_ROOT))
114
+ if (url.startsWith(_Support_1.APP_ROOT))
115
115
  return url;
116
- return window.APP_ROOT + url;
116
+ return _Support_1.APP_ROOT + url;
117
117
  };
118
118
  /**
119
119
  * 兼容二级目录-恢复URL
120
120
  */
121
121
  exports.clearURL = len == 0 ? DEFAULT_RESOLVER : function (url) {
122
- if (!url.startsWith(window.APP_ROOT))
122
+ if (!url.startsWith(_Support_1.APP_ROOT))
123
123
  return url;
124
124
  return url.substring(len);
125
125
  };
@@ -129,7 +129,7 @@ exports.clearURL = len == 0 ? DEFAULT_RESOLVER : function (url) {
129
129
  var urlPath = function (url) {
130
130
  var result = (0, exports.clearURL)(url);
131
131
  var idx = result.indexOf('?');
132
- if (idx = 0)
132
+ if (idx >= 0)
133
133
  result = result.substring(0, idx);
134
134
  idx = result.indexOf('#');
135
135
  if (idx >= 0)
@@ -142,12 +142,10 @@ var GLOBAL_APPS = new Map();
142
142
  * 获取当前 APP 名称
143
143
  */
144
144
  var currentApp = function (root) {
145
- var pathname = root ? root : location.pathname;
145
+ var pathname = (0, exports.urlPath)(root ? root : location.pathname);
146
146
  if (GLOBAL_APPS.has(pathname))
147
147
  return GLOBAL_APPS.get(pathname);
148
148
  var path = pathname;
149
- if (lodash_1.default.startsWith(path, _Support_1.APP_ROOT))
150
- path = path.substring(_Support_1.APP_ROOT.length);
151
149
  if (lodash_1.default.endsWith(path, '/'))
152
150
  path = path.substring(0, path.length - 1);
153
151
  if (lodash_1.default.startsWith(path, '/'))
@@ -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;
@@ -1,17 +1,20 @@
1
1
  import type { Render, BaseRenderOptions, OptionConvertConfig } from './_define';
2
2
  import type { BaseOption, PlainObject } from '../../basetype';
3
+ declare const DICT_FORMATS: readonly ["tag", "color", "status", "sup", "sub", "icon", "badge", "progress", "tip", "clazz"];
4
+ type DictFormat = typeof DICT_FORMATS[number];
3
5
  type DictRenderOptions = Omit<BaseRenderOptions, 'len' | 'format'> & {
4
6
  dictType: string;
5
7
  };
6
8
  type DictInfo = {
7
9
  code: string;
8
- format?: 'tag' | 'color' | 'status' | 'sup' | 'sub' | 'icon' | 'progress' | 'clazz';
10
+ format?: DictFormat;
9
11
  nodes: BaseOption[];
10
12
  };
11
- declare const _V_DICT: {
12
- DICTS: any[];
13
+ type GlobalDict = {
14
+ DICTS: BaseOption[];
13
15
  DICT_MAP: Map<string, DictInfo>;
14
16
  };
17
+ declare const _V_DICT: GlobalDict;
15
18
  interface DictRender extends Render {
16
19
  /**
17
20
  * 将数据转出为 option 用于 select / checkbox / vap组件中的 options 等。
@@ -33,165 +33,54 @@ Object.defineProperty(exports, "__esModule", { value: true });
33
33
  exports.DICT = exports.initDict = exports.DictRender = void 0;
34
34
  var react_1 = __importDefault(require("react"));
35
35
  var lodash_1 = __importDefault(require("lodash"));
36
- var antd_1 = require("antd");
37
- var Icon_1 = require("../../components/_adapt/Icon");
38
36
  var index_1 = require("../index");
39
37
  var _i18n_1 = require("../../components/_i18n");
40
38
  var _Support_1 = require("../_Support");
41
39
  var Const_1 = require("../Const");
40
+ var _DictBaseRender_1 = require("./_DictBaseRender");
41
+ var DICT_FORMATS = ['tag', 'color', 'status', 'sup', 'sub', 'icon', 'badge', 'progress', 'tip', 'clazz'];
42
+ ;
43
+ var VALIDATE_FORMAT = new Set(DICT_FORMATS);
42
44
  var _V_DICT = (0, _Support_1.globalDefault)('_V_DICT', { DICTS: [], DICT_MAP: new Map() });
43
45
  exports.DICT = _V_DICT;
44
46
  var DICT = _V_DICT.DICT_MAP;
45
- // var DICT = globalDefault('_V_DICT' as any, new Map<string, DictInfo>());
46
- var VALIDATE_FORMAT = new Set(['tag', 'color', 'status', 'sup', 'sub', 'icon', 'progress', 'clazz']);
47
- // const tagRender = (key: string | number, def: string | false = TEXT.RENDER_TEXT, map: Map<string, [string, string]>) => {
48
- // if (!map.has(key)) {
49
- // if (def) {
50
- // return <Tag>{def}</Tag>
51
- // }
52
- // return '';
53
- // }
54
- // let [txt, format] = map.get(key);
55
- // return <Tag className="c-dict-tag" color={format ? format : 'geekblue'}>{txt}</Tag>
56
- // }
57
- var STATUS = new Set(['success', 'processing', 'warning', 'error', 'default']);
58
- var statusRender = function (key, def, map) {
59
- if (!map.has(key)) {
60
- if (def === false)
61
- return key;
62
- return react_1.default.createElement(antd_1.Badge, { className: "c-dict-status", status: "default", text: def });
63
- }
64
- var _a = __read(map.get(key), 2), txt = _a[0], format = _a[1];
65
- if (STATUS.has(format)) {
66
- // return <Badge status={format as any} text={txt} />
67
- }
68
- return react_1.default.createElement(antd_1.Badge, { className: "c-dict-status", status: "default", text: txt });
69
- };
70
- var subRender = function (key, def, map) {
71
- if (!map.has(key)) {
72
- if (def === false)
73
- return key;
74
- return def;
75
- }
76
- var _a = __read(map.get(key), 2), txt = _a[0], format = _a[1];
77
- return react_1.default.createElement("span", { className: "c-dict-sub" },
78
- txt,
79
- format && react_1.default.createElement("sub", null, format));
80
- };
81
- var supRender = function (key, def, map) {
82
- if (!map.has(key)) {
83
- if (def === false)
84
- return key;
85
- return def;
86
- }
87
- var _a = __read(map.get(key), 2), txt = _a[0], format = _a[1];
88
- return react_1.default.createElement("span", { className: "c-dict-sup" },
89
- txt,
90
- format && react_1.default.createElement("sup", null, format));
91
- };
92
- var iconRender = function (key, def, map) {
93
- if (!map.has(key)) {
94
- if (def === false)
95
- return key;
96
- return def;
97
- }
98
- var _a = __read(map.get(key), 2), txt = _a[0], format = _a[1];
99
- if (format == null || format == '') {
100
- return txt;
101
- }
102
- if (lodash_1.default.startsWith(format, '/')) {
103
- return react_1.default.createElement(react_1.default.Fragment, null,
104
- react_1.default.createElement("img", { className: "c-dict-icon-img", src: format }),
105
- txt);
106
- }
107
- return react_1.default.createElement(react_1.default.Fragment, null,
108
- react_1.default.createElement(Icon_1.Icon, { className: "c-dict-icon", type: format }),
109
- txt);
110
- };
111
- // const PROGRESS = new Set<string>(['prepare', 'ready', 'doing', 'finsh', 'error'])
112
- var progressRender = function (key, def, map) {
113
- if (!map.has(key)) {
114
- if (def == false)
115
- return key;
116
- return def;
117
- }
118
- var _a = __read(map.get(key), 2), txt = _a[0], format = _a[1];
119
- switch (format) {
120
- case 'prepare':
121
- return react_1.default.createElement(antd_1.Badge, { className: "c-dict-progress c-dict-progress-" + format, count: react_1.default.createElement(Icon_1.Icon, { type: "plus-circle" }), text: txt });
122
- case 'ready':
123
- return react_1.default.createElement(antd_1.Badge, { className: "c-dict-progress c-dict-progress-" + format, count: react_1.default.createElement(Icon_1.Icon, { type: "clock-circle" }), text: txt });
124
- case 'doing':
125
- return react_1.default.createElement(antd_1.Badge, { className: "c-dict-progress c-dict-progress-" + format, count: react_1.default.createElement(Icon_1.Icon, { type: "play-circle" }), text: txt });
126
- case 'finsh':
127
- return react_1.default.createElement(antd_1.Badge, { className: "c-dict-progress c-dict-progress-" + format, count: react_1.default.createElement(Icon_1.Icon, { type: "check-circle" }), text: txt });
128
- case 'error':
129
- return react_1.default.createElement(antd_1.Badge, { className: "c-dict-progress c-dict-progress-" + format, count: react_1.default.createElement(Icon_1.Icon, { type: "close-circle" }), text: txt });
130
- }
131
- return txt;
132
- };
133
- var borderRender = function (key, def, map) {
134
- if (!map.has(key)) {
135
- if (def === false)
136
- return key;
137
- return def;
138
- }
139
- var _a = __read(map.get(key), 2), txt = _a[0], format = _a[1];
140
- return react_1.default.createElement("span", { className: "c-dict-border", style: { color: format, borderLeftColor: format } }, txt);
141
- };
142
- var extClass = function (key, def, map) {
143
- if (!map.has(key)) {
144
- if (def === false)
145
- return key;
146
- return def;
147
- }
148
- var _a = __read(map.get(key), 2), txt = _a[0], format = _a[1];
149
- if (format) {
150
- return react_1.default.createElement("span", { className: format }, txt);
151
- }
152
- return txt;
153
- };
154
- var renderDictValue = function (info, item) {
155
- switch (info.format) {
156
- case 'tag':
157
- // return tagRender(item.value);
158
- break;
47
+ var _DictRender = function (props) {
48
+ var root = DICT.get(props.dictType);
49
+ if (root == null)
50
+ return props.default || Const_1.NONE; // 没有字典
51
+ var idx = lodash_1.default.findIndex(root.nodes, function (item) { return (props.value + '') == item.value; });
52
+ var hasFormat = root.format != null && VALIDATE_FORMAT.has(root.format);
53
+ var _a = __read([null, null], 2), format = _a[0], label = _a[1];
54
+ if (idx >= 0) {
55
+ var info = root.nodes[idx];
56
+ format = info.format;
57
+ label = info.label;
58
+ }
59
+ if (!hasFormat)
60
+ return label || props.default || Const_1.NONE;
61
+ switch (root.format) {
62
+ case 'clazz':
63
+ return (0, _DictBaseRender_1.renderClazz)(format, label, props.default);
64
+ case 'badge':
65
+ return (0, _DictBaseRender_1.renderBadge)(format, label, props.default);
159
66
  case 'color':
160
- break;
161
- // return;
162
- case 'status':
163
- break;
164
- // return;
165
- case 'sup':
166
- // return;
167
- break;
168
- case 'sub':
169
- // return;
170
- break;
67
+ return (0, _DictBaseRender_1.renderColor)(format, label, props.default);
171
68
  case 'icon':
172
- // return;
173
- break;
69
+ return (0, _DictBaseRender_1.renderIcon)(format, label, props.default);
174
70
  case 'progress':
175
- // return;
176
- case 'clazz':
177
- return react_1.default.createElement("span", { className: item.format }, item.label);
178
- default:
179
- return item.label;
71
+ return (0, _DictBaseRender_1.renderProgress)(format, label, props.default);
72
+ case 'status':
73
+ return (0, _DictBaseRender_1.renderStatus)(format, label, props.default);
74
+ case 'sub':
75
+ return (0, _DictBaseRender_1.renderSub)(format, label, props.default);
76
+ case 'sup':
77
+ return (0, _DictBaseRender_1.renderSup)(format, label, props.default);
78
+ case 'tag':
79
+ return (0, _DictBaseRender_1.renderTag)(format, label, props.default);
80
+ case 'tip':
81
+ return (0, _DictBaseRender_1.renderTip)(format, label, props.default);
180
82
  }
181
- return item.label;
182
- };
183
- var _DictRender = function (props) {
184
- // if (DICT == null) return NONE;
185
- if (props.value === null)
186
- return props.default || Const_1.NONE;
187
- var dictInfo = DICT.get(props.dictType);
188
- if (dictInfo == null)
189
- return props.default || Const_1.NONE;
190
- var dictKey = props.value + '';
191
- var idx = lodash_1.default.findIndex(dictInfo.nodes, function (item) { return dictKey == item.value; });
192
- if (idx < 0)
193
- return props.default || Const_1.NONE;
194
- return renderDictValue(dictInfo, dictInfo.nodes[idx]);
83
+ return label || props.default || Const_1.NONE;
195
84
  };
196
85
  var putOptions = function (arr, config) {
197
86
  if (config === undefined)
@@ -216,14 +105,9 @@ var putOptions = function (arr, config) {
216
105
  }
217
106
  return list;
218
107
  };
219
- var DictCache = new Map();
220
108
  var DictRender = function (options) {
221
- if (lodash_1.default.isString(options) && DictCache.has(options))
222
- return DictCache.get(options);
223
109
  var props = lodash_1.default.isString(options) ? { dictType: options } : options;
224
- var fn = function (txt) {
225
- return react_1.default.createElement(_DictRender, __assign({}, props, { value: txt }));
226
- };
110
+ var fn = function (txt) { return react_1.default.createElement(_DictRender, __assign({}, props, { value: txt })); };
227
111
  fn.options = function (config) {
228
112
  var info = DICT.get(props.dictType);
229
113
  if (info == null)
@@ -242,8 +126,6 @@ var DictRender = function (options) {
242
126
  return lodash_1.default.isString(def) ? def : '';
243
127
  return dictInfo.nodes[idx].label;
244
128
  };
245
- if (lodash_1.default.isString(options))
246
- DictCache.set(options, fn);
247
129
  return fn;
248
130
  };
249
131
  exports.DictRender = DictRender;
@@ -252,7 +134,7 @@ var initNodes = function (parentType, dict, nodes) {
252
134
  childs.map(function (item) {
253
135
  var value = lodash_1.default.trim(item.code);
254
136
  if (value.length > 0)
255
- nodes.push({ label: item.codeValue, value: value });
137
+ nodes.push({ label: item.codeValue, value: value, format: item.format });
256
138
  var subChildren = lodash_1.default.filter(dict, function (sub) { return sub.parentType == item.type; });
257
139
  if (subChildren.length > 0) {
258
140
  initNodes(item.type, dict, nodes);
@@ -266,10 +148,11 @@ var initDict = function (dict) {
266
148
  var roots = lodash_1.default.filter(dict, function (item) { return item['parentType'] == '0' || item['parentType'] == ''; });
267
149
  _V_DICT.DICTS = [];
268
150
  roots.map(function (root) {
269
- var info = { code: root.type, nodes: [] };
151
+ var format = (root.format && VALIDATE_FORMAT.has(root.format)) ? root.format : null;
152
+ var info = { code: root.type, nodes: [], };
153
+ if (format)
154
+ info.format = format;
270
155
  _V_DICT.DICTS.push({ label: root.codeValue, value: root.type });
271
- if (root.format && VALIDATE_FORMAT.has(root.format))
272
- info.format = root.format;
273
156
  initNodes(root.type, dict, info.nodes);
274
157
  DICT.set(root.type, info);
275
158
  });
@@ -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
  });
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from 'react';
2
+ type DictFormartRender = (itemFormat: string, value: string | number, def?: ReactNode) => ReactNode;
3
+ export declare const renderTag: DictFormartRender;
4
+ export declare const renderColor: DictFormartRender;
5
+ export declare const renderStatus: DictFormartRender;
6
+ export declare const renderSub: DictFormartRender;
7
+ export declare const renderSup: DictFormartRender;
8
+ export declare const renderBadge: DictFormartRender;
9
+ export declare const renderIcon: DictFormartRender;
10
+ export declare const renderProgress: DictFormartRender;
11
+ export declare const renderClazz: DictFormartRender;
12
+ export declare const renderTip: DictFormartRender;
13
+ export {};
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.renderTip = exports.renderClazz = exports.renderProgress = exports.renderIcon = exports.renderBadge = exports.renderSup = exports.renderSub = exports.renderStatus = exports.renderColor = exports.renderTag = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var lodash_1 = __importDefault(require("lodash"));
9
+ var index_1 = require("../../index");
10
+ var Const_1 = require("../Const");
11
+ var antd_1 = require("antd");
12
+ var STATUS_CONST = new Set(['success', 'processing', 'error', 'default', 'warning']);
13
+ /**
14
+ * 获取 label 内容
15
+ */
16
+ var getLabel = function (value, def) {
17
+ if (typeof value == 'number')
18
+ return value + '';
19
+ if (value === undefined || value === null)
20
+ return def === undefined ? null : def;
21
+ var label = lodash_1.default.trim(value);
22
+ if (label == '')
23
+ return def === undefined ? null : def;
24
+ return label;
25
+ };
26
+ var renderTag = function (itemFormat, value, def) {
27
+ var label = getLabel(value, def);
28
+ if (label === null)
29
+ return Const_1.NONE;
30
+ return react_1.default.createElement(index_1.Tag, { className: "c-dict-tag", color: itemFormat }, label);
31
+ };
32
+ exports.renderTag = renderTag;
33
+ var renderColor = function (itemFormat, value, def) {
34
+ var label = getLabel(value, def);
35
+ if (label === null)
36
+ return Const_1.NONE;
37
+ return react_1.default.createElement("span", { className: "c-dict-color", style: { color: itemFormat } }, label);
38
+ };
39
+ exports.renderColor = renderColor;
40
+ var renderStatus = function (itemFormat, value, def) {
41
+ var label = getLabel(value, def);
42
+ if (label === null)
43
+ return Const_1.NONE;
44
+ var format = lodash_1.default.toLower(lodash_1.default.trim(itemFormat));
45
+ var status = STATUS_CONST.has(format) ? format : 'default';
46
+ return react_1.default.createElement(index_1.Badge, { className: "c-dict-status", status: status, text: label });
47
+ };
48
+ exports.renderStatus = renderStatus;
49
+ var renderSub = function (itemFormat, value, def) {
50
+ var label = getLabel(value, def);
51
+ if (label === null)
52
+ return Const_1.NONE;
53
+ var format = lodash_1.default.trim(itemFormat);
54
+ return react_1.default.createElement("span", { className: "c-dict-sub" },
55
+ label,
56
+ format && react_1.default.createElement("sub", null, format));
57
+ };
58
+ exports.renderSub = renderSub;
59
+ var renderSup = function (itemFormat, value, def) {
60
+ var label = getLabel(value, def);
61
+ if (label === null)
62
+ return Const_1.NONE;
63
+ var format = lodash_1.default.trim(itemFormat);
64
+ return react_1.default.createElement("span", { className: "c-dict-sup" },
65
+ label,
66
+ format && react_1.default.createElement("sup", null, format));
67
+ };
68
+ exports.renderSup = renderSup;
69
+ var renderBadge = function (itemFormat, value, def) {
70
+ var label = getLabel(value, def);
71
+ if (label === null)
72
+ return Const_1.NONE;
73
+ var format = lodash_1.default.toLower(lodash_1.default.trim(itemFormat));
74
+ if (format.length == 0)
75
+ return label;
76
+ // 讨嫌小红点
77
+ if (format == 'dot')
78
+ return react_1.default.createElement(index_1.Badge, { className: "c-dict-badge c-dict-badge-dot", dot: true },
79
+ react_1.default.createElement("span", null, label));
80
+ try {
81
+ var count = parseInt(format);
82
+ if (lodash_1.default.isNaN(count))
83
+ throw new Error('format is not number');
84
+ return react_1.default.createElement(index_1.Badge, { className: "c-dict-badge", count: count },
85
+ react_1.default.createElement("span", null, label));
86
+ }
87
+ catch (_a) {
88
+ return label;
89
+ }
90
+ };
91
+ exports.renderBadge = renderBadge;
92
+ var renderIcon = function (itemFormat, value, def) {
93
+ var label = getLabel(value, def);
94
+ if (label === null)
95
+ return Const_1.NONE;
96
+ var format = lodash_1.default.toLower(lodash_1.default.trim(itemFormat));
97
+ if (format.length == 0)
98
+ return label;
99
+ if (lodash_1.default.startsWith(format, '/') || lodash_1.default.startsWith(format, 'http://') || lodash_1.default.startsWith(format, 'https://')) {
100
+ return react_1.default.createElement("span", { className: "c-dict-icon" },
101
+ react_1.default.createElement("img", { src: format }),
102
+ react_1.default.createElement("span", null, label));
103
+ }
104
+ return react_1.default.createElement("span", { className: "c-dict-icon " },
105
+ react_1.default.createElement(index_1.Icon, { type: format }),
106
+ react_1.default.createElement("span", null, label));
107
+ };
108
+ exports.renderIcon = renderIcon;
109
+ var renderProgress = function (itemFormat, value, def) {
110
+ var label = getLabel(value, def);
111
+ if (label === null)
112
+ return Const_1.NONE;
113
+ var format = lodash_1.default.toLower(lodash_1.default.trim(itemFormat));
114
+ if (format.length == 0)
115
+ return label;
116
+ switch (format) {
117
+ case 'waiting':
118
+ return react_1.default.createElement("span", { className: "c-dict-progress c-dict-progress-waiting" },
119
+ react_1.default.createElement(index_1.Icon, { type: "audit-task-status-waiting" }),
120
+ react_1.default.createElement("span", null, label));
121
+ case 'prepare':
122
+ return react_1.default.createElement("span", { className: "c-dict-progress c-dict-progress-prepare" },
123
+ react_1.default.createElement(index_1.Icon, { type: "info-circle" }),
124
+ react_1.default.createElement("span", null, label));
125
+ case 'ready':
126
+ return react_1.default.createElement("span", { className: "c-dict-progress c-dict-progress-ready" },
127
+ react_1.default.createElement(index_1.Icon, { type: "trademark" }),
128
+ react_1.default.createElement("span", null, label));
129
+ case 'doing':
130
+ return react_1.default.createElement("span", { className: "c-dict-progress c-dict-progress-doing" },
131
+ react_1.default.createElement(index_1.Icon, { type: "audit-task-status-doing" }),
132
+ react_1.default.createElement("span", null, label));
133
+ case 'finish':
134
+ return react_1.default.createElement("span", { className: "c-dict-progress c-dict-progress-finish" },
135
+ react_1.default.createElement(index_1.Icon, { type: "audit-task-status-finish" }),
136
+ react_1.default.createElement("span", null, label));
137
+ case 'error':
138
+ return react_1.default.createElement("span", { className: "c-dict-progress c-dict-progress-error" },
139
+ react_1.default.createElement(index_1.Icon, { type: "audit-task-status-error" }),
140
+ react_1.default.createElement("span", null, label));
141
+ }
142
+ return label;
143
+ };
144
+ exports.renderProgress = renderProgress;
145
+ var renderClazz = function (itemFormat, value, def) {
146
+ var label = getLabel(value, def);
147
+ if (label === null)
148
+ return Const_1.NONE;
149
+ var format = lodash_1.default.toLower(lodash_1.default.trim(itemFormat));
150
+ if (format.length == 0)
151
+ return label;
152
+ return react_1.default.createElement("span", { className: format }, label);
153
+ };
154
+ exports.renderClazz = renderClazz;
155
+ var renderTip = function (itemFormat, value, def) {
156
+ var label = getLabel(value, def);
157
+ if (label === null)
158
+ return Const_1.NONE;
159
+ var format = lodash_1.default.trim(itemFormat);
160
+ if (format.length == 0)
161
+ return label;
162
+ return react_1.default.createElement("span", { className: "c-dict-tip" },
163
+ react_1.default.createElement(antd_1.Popover, { content: react_1.default.createElement("pre", null, format) },
164
+ react_1.default.createElement("span", null, label),
165
+ react_1.default.createElement(index_1.Icon, { type: "question-circle", evt: true })));
166
+ };
167
+ exports.renderTip = renderTip;
@@ -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;