vap1 0.3.2 → 0.3.4

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.
Files changed (52) hide show
  1. package/components/SearchBar/_register.d.ts +1 -1
  2. package/components/SearchBar/_register.js +1 -1
  3. package/components/TreeSelect/BaseTreeSelect.js +0 -1
  4. package/components/TreeSelect/DTreeSelect.js +1 -5
  5. package/components/TreeSelect/FTreeSelect.js +1 -3
  6. package/components/TreeSelect/STreeSelect.js +1 -1
  7. package/components/Trees/COTree/COButton.js +1 -1
  8. package/components/Trees/COTree/COSelect.js +1 -1
  9. package/components/UForm/UForm.js +12 -13
  10. package/components/UForm/_input.d.ts +1 -1
  11. package/components/UForm/index.d.ts +2 -2
  12. package/components/_common/Upagination.js +0 -1
  13. package/hooks/useApiBase.d.ts +36 -1
  14. package/hooks/useApiBase.js +21 -10
  15. package/package.json +1 -1
  16. package/uform/FormEditor.d.ts +20 -3
  17. package/uform/FormEditor.js +5 -5
  18. package/uform/FormViewer.d.ts +10 -1
  19. package/uform/FormViewer.js +10 -1
  20. package/uform/hooks/useEditor.d.ts +5 -2
  21. package/uform/hooks/useEditor.js +33 -1
  22. package/uform/index.js +31 -21
  23. package/uform/panel/Editor/GroupEditor.d.ts +3 -1
  24. package/uform/panel/Editor/GroupEditor.js +8 -2
  25. package/uform/panel/Editor/ListEditor.d.ts +3 -1
  26. package/uform/panel/Editor/ListEditor.js +7 -1
  27. package/uform/panel/Editor/index.js +55 -14
  28. package/uform/panel/Items/Fields.d.ts +3 -0
  29. package/uform/panel/Items/Fields.js +42 -0
  30. package/uform/panel/Items/InputSelector.d.ts +6 -0
  31. package/uform/panel/Items/InputSelector.js +122 -0
  32. package/uform/panel/Items/Inputs.d.ts +4 -0
  33. package/uform/panel/Items/Inputs.js +38 -0
  34. package/uform/panel/Items/index.d.ts +2 -1
  35. package/uform/panel/Items/index.js +8 -28
  36. package/uform/panel/Propreties/_ItemBase.js +4 -1
  37. package/uform/plugins/index.js +1 -1
  38. package/uform/schema.d.ts +5 -1
  39. package/uform/utils/arr.d.ts +2 -2
  40. package/uform/utils/arr.js +6 -1
  41. package/utils/Const.d.ts +10 -11
  42. package/utils/Const.js +43 -29
  43. package/utils/CustomApp.d.ts +96 -83
  44. package/utils/Renders/ApiGetRender.js +4 -4
  45. package/utils/Renders/ApiPostRender.js +2 -2
  46. package/utils/Renders/StringRender.d.ts +1 -1
  47. package/utils/Renders/_define.d.ts +5 -1
  48. package/utils/Renders/_define.js +12 -2
  49. package/utils/VAP.d.ts +1 -0
  50. package/utils/VAP.js +7 -1
  51. package/utils/index.d.ts +2 -0
  52. package/utils/index.js +7 -1
@@ -8,7 +8,7 @@ import type { App } from '../hooks/useApp';
8
8
  */
9
9
  export type Route = {
10
10
  /**
11
- * 路径
11
+ * 路由
12
12
  */
13
13
  path: string;
14
14
  /**
@@ -18,7 +18,7 @@ export type Route = {
18
18
  like?: boolean;
19
19
  /**
20
20
  * React 组件:
21
- * 说明:对于依赖多的大组件,可使用 () => import('xxx') 进行代码分割
21
+ * 一般情况下,自定义页面不推荐使用chunk模式,建议统一引入。
22
22
  */
23
23
  component: any;
24
24
  };
@@ -74,86 +74,97 @@ export type Menu = {
74
74
  */
75
75
  children?: Menu[];
76
76
  };
77
+ type CustomAppMenu = {
78
+ mode?: 'none' | 'list' | 'parent';
79
+ parent?: string;
80
+ list?: Menu[];
81
+ };
82
+ export type CustomAppTheme = {
83
+ /**
84
+ * 使用系统默认配置
85
+ */
86
+ useSystem?: boolean;
87
+ /**
88
+ * 标题
89
+ */
90
+ title?: string;
91
+ /**
92
+ * logo图片路径
93
+ */
94
+ logo?: string;
95
+ /**
96
+ * 指定一个皮肤代码
97
+ *
98
+ * 1:不指定时
99
+ * 1) user.useSystem = true / theme.useSystem = true : 使用与portal一致的逻辑
100
+ * 2) user.useSystem = true / theme.useSystem = false : 使用与portal一致的逻辑
101
+ * 3) user.useSystem = false / theme.useSystem = true : 使用 系统默认 :theme_default
102
+ * 4) user.useSystem = false / theme.useSystem = false : 使用 = 'net'
103
+ * 2: 指定时 ,使用指定编码
104
+ * 3: 指定为 `null` 时
105
+ * 以 `net` 为标准计算,不加载任何css文件
106
+ * 需要自行在入口文件里面引入对应CSS
107
+ */
108
+ code?: string | null;
109
+ /**
110
+ * 自定义页面只支持 tb / lr
111
+ * 默认为 tb
112
+ */
113
+ mode?: 'tb' | 'lr';
114
+ /**
115
+ * lr 模式时,不显示 crumb
116
+ */
117
+ showTop?: boolean;
118
+ /**
119
+ * true: 使用系统/用户自定义语言
120
+ * string: 指定应用语言, 支持 zhCN,zhHK,enUS
121
+ * 默认 : zhCN
122
+ */
123
+ lang?: true | string;
124
+ /**
125
+ * 限制宽度, tb模式时
126
+ */
127
+ limitWidth?: boolean;
128
+ /**
129
+ * 宽度, 默认220
130
+ */
131
+ bannerWidth?: number;
132
+ /**
133
+ * 高度,默认 64
134
+ */
135
+ bannerHeight?: number;
136
+ /**
137
+ * 是否开启Tab,默认 false
138
+ */
139
+ enableTab?: boolean;
140
+ /**
141
+ * 是否开启FullScreen,默认 false
142
+ */
143
+ enableFullScreen?: boolean;
144
+ /**
145
+ * 是否开启消息,默认 false
146
+ */
147
+ enableMessage?: boolean;
148
+ };
149
+ /**
150
+ * 说明:
151
+ * 1. 各配置项里面的 useSystem 全部默认为开启
152
+ * 即使用系统默认配置(获取系统配置需要登录)
153
+ * 如果自定义页面是不登录就可以看到的,必须全部设为false,否则会跳转到登录页
154
+ *
155
+ */
77
156
  export type CustomAppOptions = {
78
- menu?: {
79
- /**
80
- * 菜单模式
81
- * none : 无菜单,无菜单时, theme.mode 不会起效,只需要注册一个 / 路由
82
- * parent : 向上找一个菜单, 必须指定,parent
83
- * list : 自定义菜单,必须 指定 list
84
- */
85
- mode?: 'none' | 'parent' | 'list';
86
- /**
87
- * 可以为 id 或 url ,
88
- */
89
- parent?: string;
90
- /**
91
- * list 自定义菜单
92
- */
93
- list?: Menu[];
94
- };
95
- theme?: {
96
- /**
97
- * 使用系统默认配置
98
- */
99
- useSystem?: boolean;
100
- /**
101
- * 标题
102
- */
103
- title?: string;
104
- /**
105
- * logo图片路径
106
- */
107
- logo?: string;
108
- /**
109
- * 指定一个皮肤代码,
110
- * 当指定时,先找皮肤代码,没有找到时,使用系统配置
111
- * 当设定为 null 时,不加载样式
112
- */
113
- code?: string;
114
- /**
115
- * 自定义页面只支持 tb / lr
116
- * 默认为 tb
117
- */
118
- mode?: 'tb' | 'lr';
119
- /**
120
- * lr 模式时,不显示 crumb
121
- */
122
- showTop?: boolean;
123
- /**
124
- * true: 使用系统/用户自定义语言
125
- * string: 指定应用语言, 支持 zhCN,zhHK,enUS
126
- * 默认 : zhCN
127
- */
128
- lang?: true | string;
129
- /**
130
- * 限制宽度, tb模式时
131
- */
132
- limitWidth?: boolean;
133
- /**
134
- * 宽度, 默认220
135
- */
136
- bannerWidth?: number;
137
- /**
138
- * 高度,默认 64
139
- */
140
- bannerHeight?: number;
141
- /**
142
- * 是否开启Tab,默认 false
143
- */
144
- enableTab?: boolean;
145
- /**
146
- * 是否开启FullScreen,默认 false
147
- */
148
- enableFullScreen?: boolean;
149
- /**
150
- * 是否开启消息,默认 false
151
- */
152
- enableMessage?: boolean;
153
- };
157
+ menu?: CustomAppMenu;
158
+ /**
159
+ * 皮肤设定:请参考
160
+ * [系统属性/OEM](http://192.168.119.213:9999/vap2/oem-system/)
161
+ * 另外,自定义页面仅支持 上下/左右 两种结构 ,不支持扁平/模块化结构
162
+ * 设计结构后,部分参数将会失效
163
+ */
164
+ theme?: CustomAppTheme;
154
165
  system?: {
155
166
  /**
156
- * 是否开启权限检测, 默认true
167
+ * 是否开启权限检测, 默认 true
157
168
  * 开启后可正常使用 roleCode 等属性, (PageUtil.hasRole , Role组件等)
158
169
  */
159
170
  enableRule?: boolean;
@@ -182,16 +193,18 @@ export type CustomAppOptions = {
182
193
  };
183
194
  user?: {
184
195
  /**
185
- * 使用系统默认配置
186
- * 默认 true
196
+ * 加载 config 默认为 false
197
+ * 使用后,使用使用 /user/preference/{*} 获取用户自定义信息
187
198
  */
188
199
  useSystem?: boolean;
189
200
  /**
190
- * 不使用系统配置时,需要自己写入一个 info 信息
201
+ * 如果不传 info 将会使用 /user/info 获取用户信息
202
+ * 传入 info 后,则直接使用 传入的信息做为 用户信息
191
203
  */
192
204
  info?: PlainObject;
193
205
  /**
194
- * 加载 config 默认为 false
206
+ * @deprecated
207
+ * 此值将不再生效,统一使用 useSystem 后续将会删除
195
208
  */
196
209
  enableConfig?: boolean;
197
210
  };
@@ -122,7 +122,7 @@ var loadApi = function (option) { return __awaiter(void 0, void 0, void 0, funct
122
122
  result = _a.sent();
123
123
  if (!cache.loaded) {
124
124
  arr = (0, _define_1.getList)(result);
125
- arr.map(function (item) { return cache.map.set(item[option.valueFiled] + '', item[option.nameField]); });
125
+ arr.map(function (item) { return cache.map.set(item[option.valueField] + '', item[option.nameField]); });
126
126
  cache.loaded = true;
127
127
  }
128
128
  return [2 /*return*/, true];
@@ -234,7 +234,7 @@ var ApiGetRender = function (options) {
234
234
  }
235
235
  arr = (0, _define_1.getList)(result);
236
236
  arr.map(function (item) {
237
- apiOptions.push({ label: item[options.nameField], value: format(item[options.valueFiled]) });
237
+ apiOptions.push({ label: item[options.nameField], value: format(item[options.valueField]) });
238
238
  });
239
239
  setState(apiOptions);
240
240
  return [2 /*return*/];
@@ -255,7 +255,7 @@ var ApiGetRender = function (options) {
255
255
  var resp = (0, XHR_1.GETSYNC)(options.api);
256
256
  var map = new Map();
257
257
  var arr = (0, _define_1.getList)(resp);
258
- arr.map(function (item) { return map.set(item[options.valueFiled] + '', item[options.nameField]); });
258
+ arr.map(function (item) { return map.set(item[options.valueField] + '', item[options.nameField]); });
259
259
  API_CACHES.set(options.api, {
260
260
  fetcher: index_1.Ajax.GET(options.api),
261
261
  loaded: true,
@@ -276,4 +276,4 @@ var ApiGetRender = function (options) {
276
276
  return fn;
277
277
  };
278
278
  exports.ApiGetRender = ApiGetRender;
279
- // export const roleRender = ApiGetRender({ api: GLOBAL.CONFIG.ADMIN.ROLE, nameField: 'name', valueFiled: 'id', });
279
+ // export const roleRender = ApiGetRender({ api: GLOBAL.CONFIG.ADMIN.ROLE, nameField: 'name', valueField: 'id', });
@@ -141,7 +141,7 @@ var _ApiPostRender = function (props) {
141
141
  cache[cacheKey] = true;
142
142
  index_1.CacheUtil.set(KEY, cache);
143
143
  update();
144
- return [4 /*yield*/, index_1.Ajax.POST(props.api, __assign(__assign({}, props.param), (_a = {}, _a[props.valueFiled] = props.value, _a)), { process: false })];
144
+ return [4 /*yield*/, index_1.Ajax.POST(props.api, __assign(__assign({}, props.param), (_a = {}, _a[props.valueField] = props.value, _a)), { process: false })];
145
145
  case 5:
146
146
  resp = _b.sent();
147
147
  result = getLabel(props, resp, cacheKey);
@@ -203,7 +203,7 @@ var ApiPostRender = function (options) {
203
203
  var _a;
204
204
  var result = getInCache(KEY, key);
205
205
  if (result === null) {
206
- var resp = (0, XHR_1.POSTSYNC)(options.api, __assign(__assign({}, options.param), (_a = {}, _a[options.valueFiled] = key, _a)));
206
+ var resp = (0, XHR_1.POSTSYNC)(options.api, __assign(__assign({}, options.param), (_a = {}, _a[options.valueField] = key, _a)));
207
207
  result = getLabel(options, resp, key);
208
208
  }
209
209
  if (result == false)
@@ -1,4 +1,4 @@
1
- import { BaseRenderOptions, Render } from './_define';
1
+ import type { BaseRenderOptions, Render } from './_define';
2
2
  export declare const StrRender: (options?: number | BaseRenderOptions) => Render;
3
3
  /**
4
4
  * 返回一个 htmlRender,用于显示自定义的html,会用div包住
@@ -4,13 +4,17 @@ export type BaseRenderOptions = {
4
4
  className?: string;
5
5
  default?: React.ReactNode;
6
6
  onlyText?: boolean;
7
+ bold?: boolean;
8
+ underline?: boolean;
9
+ italic?: boolean;
10
+ color?: string;
7
11
  format?: (param: string) => string;
8
12
  len?: number;
9
13
  };
10
14
  export type ApiRenderOptions = BaseRenderOptions & {
11
15
  api: string;
12
16
  nameField: string;
13
- valueFiled: string;
17
+ valueField: string;
14
18
  render?: (info: BaseOption) => React.ReactNode;
15
19
  };
16
20
  export declare const getValue: (txt: string, options: BaseRenderOptions) => string | React.ReactNode;
@@ -24,9 +24,19 @@ var getValue = function (txt, options) {
24
24
  if (options.len && str.length > options.len) {
25
25
  str = str.substring(0, options.len) + '...';
26
26
  }
27
- if (options.onlyText || options.className == null)
27
+ var clazz = [];
28
+ if (options.className)
29
+ clazz.push(options.className);
30
+ if (options.bold)
31
+ clazz.push('font-bold');
32
+ if (options.italic)
33
+ clazz.push('font-italic');
34
+ if (options.underline)
35
+ clazz.push('font-underline');
36
+ var style = options.color ? { color: options.color } : undefined;
37
+ if (options.onlyText || (clazz.length == 0 && style == undefined))
28
38
  return str;
29
- return react_1.default.createElement("span", { className: options.className, title: txt }, str);
39
+ return react_1.default.createElement("span", { className: clazz.join(' '), style: style, title: txt }, str);
30
40
  };
31
41
  exports.getValue = getValue;
32
42
  var convertValue = function (value, config) {
package/utils/VAP.d.ts CHANGED
@@ -9,6 +9,7 @@ export type VAP = {
9
9
  getFloat: (key: string, def?: number) => number;
10
10
  };
11
11
  declare const _VAP: VAP;
12
+ export declare const _SET: (key: string, text: string) => void;
12
13
  /**
13
14
  * 初始化,仅在入口脚本里面使用
14
15
  */
package/utils/VAP.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports._INIT = void 0;
6
+ exports._INIT = exports._SET = void 0;
7
7
  var lodash_1 = __importDefault(require("lodash"));
8
8
  var _Support_1 = require("./_Support");
9
9
  var StringUtil_1 = require("./StringUtil");
@@ -63,6 +63,12 @@ var defaultVAP = function () {
63
63
  };
64
64
  // const _V_SYSTEM = globalDefault<Map<string, string>>('_V_SYSTEM', new Map<string, string>());
65
65
  var _VAP = (0, _Support_1.globalDefault)('_VAP', defaultVAP());
66
+ var _SET = function (key, text) {
67
+ var value = lodash_1.default.trim(text);
68
+ if (value)
69
+ _VAP.KEYMAP.set(key, value);
70
+ };
71
+ exports._SET = _SET;
66
72
  /**
67
73
  * 初始化,仅在入口脚本里面使用
68
74
  */
package/utils/index.d.ts CHANGED
@@ -56,3 +56,5 @@ export declare function registerRoute(preload: () => Promise<Route[]>): void;
56
56
  * 注册方式二:直接注册路由。
57
57
  */
58
58
  export declare function registerRoute(...routes: Route[]): void;
59
+ import type { ReactElement } from 'react';
60
+ export declare const renderRoot: (node: ReactElement, domId?: string) => void | Element | import("react").Component<any, any, any>;
package/utils/index.js CHANGED
@@ -51,7 +51,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
51
51
  return (mod && mod.__esModule) ? mod : { "default": mod };
52
52
  };
53
53
  Object.defineProperty(exports, "__esModule", { value: true });
54
- exports.registerRoute = exports.VAP = exports.Const = exports.Renders = exports.GLOBAL = exports.i18n = exports.Ajax = exports.Format = exports.CacheUtil = exports.EventUtil = exports.ArrayUtil = exports.PageUtil = exports.TreeUtil = exports.StringUtil = void 0;
54
+ exports.renderRoot = exports.registerRoute = exports.VAP = exports.Const = exports.Renders = exports.GLOBAL = exports.i18n = exports.Ajax = exports.Format = exports.CacheUtil = exports.EventUtil = exports.ArrayUtil = exports.PageUtil = exports.TreeUtil = exports.StringUtil = void 0;
55
55
  var lodash_1 = __importDefault(require("lodash"));
56
56
  // 全局 UTILS 定义
57
57
  exports.StringUtil = __importStar(require("./StringUtil"));
@@ -81,3 +81,9 @@ function registerRoute() {
81
81
  setTimeout(function () { return registerRoute.apply(void 0, __spreadArray([], __read(args), false)); }, 100);
82
82
  }
83
83
  exports.registerRoute = registerRoute;
84
+ var react_dom_1 = require("react-dom");
85
+ var renderRoot = function (node, domId) {
86
+ if (domId === void 0) { domId = 'root'; }
87
+ return (0, react_dom_1.render)(node, document.getElementById(domId));
88
+ };
89
+ exports.renderRoot = renderRoot;