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.
- package/components/SearchBar/_register.d.ts +1 -1
- package/components/SearchBar/_register.js +1 -1
- package/components/TreeSelect/BaseTreeSelect.js +0 -1
- package/components/TreeSelect/DTreeSelect.js +1 -5
- package/components/TreeSelect/FTreeSelect.js +1 -3
- package/components/TreeSelect/STreeSelect.js +1 -1
- package/components/Trees/COTree/COButton.js +1 -1
- package/components/Trees/COTree/COSelect.js +1 -1
- package/components/UForm/UForm.js +12 -13
- package/components/UForm/_input.d.ts +1 -1
- package/components/UForm/index.d.ts +2 -2
- package/components/_common/Upagination.js +0 -1
- package/hooks/useApiBase.d.ts +36 -1
- package/hooks/useApiBase.js +21 -10
- package/package.json +1 -1
- package/uform/FormEditor.d.ts +20 -3
- package/uform/FormEditor.js +5 -5
- package/uform/FormViewer.d.ts +10 -1
- package/uform/FormViewer.js +10 -1
- package/uform/hooks/useEditor.d.ts +5 -2
- package/uform/hooks/useEditor.js +33 -1
- package/uform/index.js +31 -21
- package/uform/panel/Editor/GroupEditor.d.ts +3 -1
- package/uform/panel/Editor/GroupEditor.js +8 -2
- package/uform/panel/Editor/ListEditor.d.ts +3 -1
- package/uform/panel/Editor/ListEditor.js +7 -1
- package/uform/panel/Editor/index.js +55 -14
- package/uform/panel/Items/Fields.d.ts +3 -0
- package/uform/panel/Items/Fields.js +42 -0
- package/uform/panel/Items/InputSelector.d.ts +6 -0
- package/uform/panel/Items/InputSelector.js +122 -0
- package/uform/panel/Items/Inputs.d.ts +4 -0
- package/uform/panel/Items/Inputs.js +38 -0
- package/uform/panel/Items/index.d.ts +2 -1
- package/uform/panel/Items/index.js +8 -28
- package/uform/panel/Propreties/_ItemBase.js +4 -1
- package/uform/plugins/index.js +1 -1
- package/uform/schema.d.ts +5 -1
- package/uform/utils/arr.d.ts +2 -2
- package/uform/utils/arr.js +6 -1
- package/utils/Const.d.ts +10 -11
- package/utils/Const.js +43 -29
- package/utils/CustomApp.d.ts +96 -83
- package/utils/Renders/ApiGetRender.js +4 -4
- package/utils/Renders/ApiPostRender.js +2 -2
- package/utils/Renders/StringRender.d.ts +1 -1
- package/utils/Renders/_define.d.ts +5 -1
- package/utils/Renders/_define.js +12 -2
- package/utils/VAP.d.ts +1 -0
- package/utils/VAP.js +7 -1
- package/utils/index.d.ts +2 -0
- package/utils/index.js +7 -1
package/utils/CustomApp.d.ts
CHANGED
|
@@ -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
|
-
*
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
*
|
|
196
|
+
* 加载 config 默认为 false
|
|
197
|
+
* 使用后,使用使用 /user/preference/{*} 获取用户自定义信息
|
|
187
198
|
*/
|
|
188
199
|
useSystem?: boolean;
|
|
189
200
|
/**
|
|
190
|
-
*
|
|
201
|
+
* 如果不传 info, 将会使用 /user/info 获取用户信息
|
|
202
|
+
* 传入 info 后,则直接使用 传入的信息做为 用户信息
|
|
191
203
|
*/
|
|
192
204
|
info?: PlainObject;
|
|
193
205
|
/**
|
|
194
|
-
*
|
|
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.
|
|
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.
|
|
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.
|
|
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',
|
|
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.
|
|
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.
|
|
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)
|
|
@@ -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
|
-
|
|
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;
|
package/utils/Renders/_define.js
CHANGED
|
@@ -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
|
-
|
|
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:
|
|
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
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;
|