@done-coding/admin-core 0.3.1-alpha.0 → 0.4.0
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/es/bridge/index.mjs +83 -27
- package/es/components/app-layout/AppBody.vue.mjs +7 -0
- package/es/components/app-layout/AppBody.vue2.mjs +89 -0
- package/es/components/app-layout/AppBreadcrumb.vue.mjs +7 -0
- package/es/components/app-layout/AppBreadcrumb.vue2.mjs +58 -0
- package/es/components/app-layout/AppFooter.vue.mjs +7 -0
- package/es/components/app-layout/AppFooter.vue2.mjs +17 -0
- package/es/components/app-layout/AppHeader.vue.mjs +7 -0
- package/es/components/app-layout/AppHeader.vue2.mjs +99 -0
- package/es/components/app-layout/AppLayout.vue.mjs +7 -0
- package/es/components/app-layout/AppLayout.vue2.mjs +130 -0
- package/es/components/app-layout/AppPage.vue.mjs +7 -0
- package/es/components/app-layout/AppPage.vue2.mjs +39 -0
- package/es/components/app-layout/AppSidebar.vue.mjs +7 -0
- package/es/components/app-layout/AppSidebar.vue2.mjs +97 -0
- package/es/components/app-layout/index.mjs +32 -0
- package/es/components/display/ActionBtnGroup.vue.mjs +61 -0
- package/es/components/display/ActionBtnGroup.vue2.mjs +4 -0
- package/es/components/display/index.mjs +13 -11
- package/es/components/misc/ActionBtn.vue.mjs +84 -65
- package/es/components/misc/ActionConfirm.vue.mjs +1 -1
- package/es/components/misc/ActionConfirm.vue2.mjs +77 -71
- package/es/components/misc/SelectModule.vue.mjs +55 -0
- package/es/components/misc/SelectModule.vue2.mjs +4 -0
- package/es/components/modal/ConfirmModal.vue.mjs +1 -1
- package/es/components/modal/ConfirmModal.vue2.mjs +13 -12
- package/es/components/modal/modal-shelf-hierarchy.mjs +4 -6
- package/es/components/table/ToolbarButtons.vue.mjs +10 -40
- package/es/index.mjs +165 -132
- package/es/inject/key.mjs +15 -6
- package/es/router/guard/index.mjs +31 -0
- package/es/router/guard/login.mjs +4 -0
- package/es/router/guard/permission.mjs +4 -0
- package/es/store/app.mjs +103 -0
- package/es/store/router-permission.mjs +65 -0
- package/es/store/user.mjs +52 -52
- package/es/style.css +1 -1
- package/package.json +2 -2
- package/types/bridge/index.d.ts +180 -76
- package/types/components/app-layout/AppBody.vue.d.ts +45 -0
- package/types/components/app-layout/AppBreadcrumb.vue.d.ts +25 -0
- package/types/components/app-layout/AppFooter.vue.d.ts +2 -0
- package/types/components/app-layout/AppHeader.vue.d.ts +55 -0
- package/types/components/app-layout/AppLayout.vue.d.ts +76 -0
- package/types/components/app-layout/AppPage.vue.d.ts +54 -0
- package/types/components/app-layout/AppSidebar.vue.d.ts +51 -0
- package/types/components/app-layout/index.d.ts +27 -0
- package/types/components/app-layout/types.d.ts +43 -0
- package/types/components/display/ActionBtnGroup.vue.d.ts +16 -0
- package/types/components/display/TabsHeader.vue.d.ts +8 -8
- package/types/components/display/index.d.ts +10 -1
- package/types/components/display/types.d.ts +42 -1
- package/types/components/misc/ActionBtn.vue.d.ts +17 -23
- package/types/components/misc/ActionConfirm.vue.d.ts +56 -27
- package/types/components/misc/SelectModule.vue.d.ts +2 -0
- package/types/components/misc/index.d.ts +2 -1
- package/types/components/misc/types.d.ts +35 -26
- package/types/components/modal/ConfirmModal.vue.d.ts +19 -2
- package/types/components/modal/modal-shelf-hierarchy.d.ts +1 -1
- package/types/components/table/TableToolbar.vue.d.ts +8 -8
- package/types/components/table/types.d.ts +10 -12
- package/types/helpers/index.d.ts +10 -3
- package/types/index.d.ts +4 -1
- package/types/inject/key.d.ts +25 -0
- package/types/router/guard/index.d.ts +21 -0
- package/types/router/guard/login.d.ts +5 -0
- package/types/router/guard/permission.d.ts +5 -0
- package/types/router/guard/types.d.ts +15 -0
- package/types/router/index.d.ts +1 -0
- package/types/store/app.d.ts +149 -0
- package/types/store/index.d.ts +2 -0
- package/types/store/router-permission.d.ts +80 -0
- package/types/store/user.d.ts +11 -9
- /package/es/{helpers → bridge}/route.mjs +0 -0
- /package/es/{helpers → bridge}/state.mjs +0 -0
- /package/es/{helpers → bridge}/storage.mjs +0 -0
- /package/types/{helpers → bridge}/route.d.ts +0 -0
- /package/types/{helpers → bridge}/state.d.ts +0 -0
- /package/types/{helpers → bridge}/storage.d.ts +0 -0
package/types/bridge/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { RouteRecordRaw } from 'vue-router';
|
|
2
|
+
import { createUseState } from './state';
|
|
3
|
+
import { createGenerateRouteMetaRawTree } from './route';
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* 认证桥接无状态纯工厂。
|
|
5
7
|
*
|
|
6
8
|
* core 模块级零状态——每次调用 `createAdminBridge({...})` 在函数作用域内新建一组
|
|
7
9
|
* 闭包变量,传入 init 参数立即初始化,返回可直接使用的实例。core [MUST NOT] 持
|
|
8
|
-
* 已实例化单例(避免 dist/src 双 module instance 分裂,规避机制见 design §2.3
|
|
10
|
+
* 已实例化单例(避免 dist/src 双 module instance 分裂,规避机制见 design §2.3,
|
|
9
11
|
* 结构上不持单例,[MUST NOT] 用 Symbol.for / globalThis 兜底)。
|
|
10
12
|
*/
|
|
11
13
|
/**
|
|
@@ -24,24 +26,14 @@ export interface AdminBridgeRegisterOptions<UserInfo = unknown, LoginParams = un
|
|
|
24
26
|
refreshToken?: () => Promise<unknown>;
|
|
25
27
|
/** 刷新鉴权(重新拉取用户信息) */
|
|
26
28
|
refreshAuth?: () => Promise<unknown>;
|
|
27
|
-
/** 登录 api(对应 app accountLogin),增量可选 */
|
|
28
|
-
loginApi?: (params: LoginParams) => Promise<
|
|
29
|
-
data: UserInfo;
|
|
30
|
-
}>;
|
|
29
|
+
/** 登录 api(对应 app accountLogin;#2.7 期 axios `{data}` wrapper 业务层 wrap 剥离,core 直读 UserInfo),增量可选 */
|
|
30
|
+
loginApi?: (params: LoginParams) => Promise<Partial<UserInfo>>;
|
|
31
31
|
/** 退出登录 api(对应 app accountLogout),增量可选 */
|
|
32
32
|
logoutApi?: () => Promise<unknown>;
|
|
33
|
-
/** 取用户信息 api(对应 app getLoginAccountInfo
|
|
34
|
-
getUserInfoApi?: () => Promise<
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
/** 刷新 token api(对应 app refreshAccountToken),增量可选 */
|
|
38
|
-
refreshTokenApi?: (headers: {
|
|
39
|
-
Authorization: string;
|
|
40
|
-
}) => Promise<{
|
|
41
|
-
data: {
|
|
42
|
-
token: string;
|
|
43
|
-
};
|
|
44
|
-
}>;
|
|
33
|
+
/** 取用户信息 api(对应 app getLoginAccountInfo;#2.7 期 axios `{data}` wrapper 业务层 wrap 剥离;{user_info} 连壳历史语义在业务层 wrap 决定是否保留 D2),增量可选 */
|
|
34
|
+
getUserInfoApi?: () => Promise<Partial<UserInfo>>;
|
|
35
|
+
/** 刷新 token api(#C 期签名最简化:core 不感知业务 shape,直传 refreshToken string;业务方 wrap 内自打包业务约定的入参 shape,如 `{Authorization: rt}`),增量可选 */
|
|
36
|
+
refreshTokenApi?: (refreshToken: string) => Promise<string>;
|
|
45
37
|
}
|
|
46
38
|
/**
|
|
47
39
|
* pinia persist storage 适配器最小接口。
|
|
@@ -146,54 +138,144 @@ export interface AppConfig {
|
|
|
146
138
|
};
|
|
147
139
|
}
|
|
148
140
|
/**
|
|
149
|
-
*
|
|
141
|
+
* 应用环境信息(#2.5 期新增,per ADR-6)。
|
|
150
142
|
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
143
|
+
* 镜像 app 端 `@/config` `APP_ENV_INFO` 字面量推导结构。`mode` 取自
|
|
144
|
+
* `import.meta.env.MODE`,`isProd` / `isDev` 派生自 mode 比较;本类型对外
|
|
145
|
+
* 显式声明便于下游业务项目直接 import 使用。
|
|
146
|
+
*/
|
|
147
|
+
export interface AppEnvInfo {
|
|
148
|
+
/** 环境模式(如 "production" / "development") */
|
|
149
|
+
mode: string;
|
|
150
|
+
/** 是生产环境 */
|
|
151
|
+
isProd: boolean;
|
|
152
|
+
/** 是开发环境 */
|
|
153
|
+
isDev: boolean;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* 应用布局-面包屑配置(#2.5 期新增,per ADR-6)。
|
|
157
|
+
*/
|
|
158
|
+
export interface AppLayoutBreadcrumbConfig {
|
|
159
|
+
/** 面包屑高度(px) */
|
|
160
|
+
height: number;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* 应用布局聚合配置(#2.5 期新增,per ADR-3 候选 b bridge 内部派生)。
|
|
164
|
+
*
|
|
165
|
+
* 由 `createAdminBridge` 内部从 5 子布局配置(HEADER/FOOTER/SIDEBAR/BREADCRUMB/BODY)
|
|
166
|
+
* Object.freeze 聚合派生,挂载到 `bridge.APP_LAYOUT_CONFIG` readonly 属性。
|
|
167
|
+
*/
|
|
168
|
+
export interface AppLayoutConfig {
|
|
169
|
+
/** header 配置 */
|
|
170
|
+
header: AppConfig["APP_LAYOUT_HEADER_CONFIG"];
|
|
171
|
+
/** footer 配置 */
|
|
172
|
+
footer: AppConfig["APP_LAYOUT_FOOTER_CONFIG"];
|
|
173
|
+
/** sidebar 配置 */
|
|
174
|
+
sidebar: AppConfig["APP_LAYOUT_SIDEBAR_CONFIG"];
|
|
175
|
+
/** 面包屑配置 */
|
|
176
|
+
breadcrumb: AppLayoutBreadcrumbConfig;
|
|
177
|
+
/** 页面主体配置 */
|
|
178
|
+
body: AppConfig["APP_LAYOUT_BODY_CONFIG"];
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* 应用路由配置(#2.5 期新增,per ADR-6)。
|
|
157
182
|
*
|
|
158
|
-
*
|
|
159
|
-
* `"permission"` 读(design D-a 记账,本期维持现状)。
|
|
183
|
+
* 镜像 app 端 `@/config/router.ts` `APP_ROUTER_CONFIG` 字面量结构。
|
|
160
184
|
*/
|
|
161
|
-
export
|
|
162
|
-
/**
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
|
|
166
|
-
|
|
185
|
+
export interface AppRouterConfig {
|
|
186
|
+
/** 是否使用 hash 路由 */
|
|
187
|
+
isHash: boolean;
|
|
188
|
+
/** 路由根路径(同一域名不同 pathname 对应不同应用) */
|
|
189
|
+
basePath: string;
|
|
190
|
+
/** 相同层级路由缓存最大数量 */
|
|
191
|
+
keepAliveMaxCount: number;
|
|
192
|
+
/** 路由 meta 默认值(复用 AppConfig 字段类型) */
|
|
193
|
+
metaDefault: AppConfig["APP_ROUTER_META_DEFAULT_CONFIG"];
|
|
194
|
+
}
|
|
167
195
|
/**
|
|
168
|
-
*
|
|
196
|
+
* 应用路由路径配置——8 path 聚合(#7.3 期新增)。
|
|
169
197
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
198
|
+
* 镜像 app 端 `@/config/router.ts` `APP_ROUTER_PATHS_CONFIG` 聚合结构;供
|
|
199
|
+
* layout 族下沉 core 时通过 `appAdminBridge.APP_ROUTER_PATHS_CONFIG.homePath`
|
|
200
|
+
* 等读取路径常量,避免直 import 业务侧 `@/config` 路径符号。
|
|
201
|
+
*
|
|
202
|
+
* `loginNoCheckPath` / `authNoCheckPath` 标 `readonly string[]` 表只读语义;
|
|
203
|
+
* 业务侧 `string[]` 协变兼容 `readonly string[]`(赋值方向单向)。
|
|
173
204
|
*/
|
|
174
|
-
export interface
|
|
175
|
-
/**
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
|
|
205
|
+
export interface AppRouterPathsConfig {
|
|
206
|
+
/** 根路径[!!!必设重定向] */
|
|
207
|
+
rootPath: string;
|
|
208
|
+
/** 首页路径 */
|
|
209
|
+
homePath: string;
|
|
210
|
+
/** 登录路径 */
|
|
211
|
+
loginPath: string;
|
|
212
|
+
/** 注册路径 */
|
|
213
|
+
registerPath: string;
|
|
214
|
+
/** 404 路径 */
|
|
215
|
+
noFoundPath: string;
|
|
216
|
+
/** 无权限路径 */
|
|
217
|
+
noPermissionPath: string;
|
|
218
|
+
/** 登录免检路径 */
|
|
219
|
+
loginNoCheckPath: readonly string[];
|
|
220
|
+
/** 权限免检路径 */
|
|
221
|
+
authNoCheckPath: readonly string[];
|
|
179
222
|
}
|
|
223
|
+
/** 应用基础信息 type 别名(#2.5 期 type 别名复用,per ADR-6) */
|
|
224
|
+
export type AppBaseInfo = AppConfig["APP_BASE_INFO"];
|
|
225
|
+
/** 应用布局-header 配置 type 别名 */
|
|
226
|
+
export type AppLayoutHeaderConfig = AppConfig["APP_LAYOUT_HEADER_CONFIG"];
|
|
227
|
+
/** 应用布局-footer 配置 type 别名 */
|
|
228
|
+
export type AppLayoutFooterConfig = AppConfig["APP_LAYOUT_FOOTER_CONFIG"];
|
|
229
|
+
/** 应用布局-sidebar 配置 type 别名 */
|
|
230
|
+
export type AppLayoutSidebarConfig = AppConfig["APP_LAYOUT_SIDEBAR_CONFIG"];
|
|
231
|
+
/** 应用布局-页面主体配置 type 别名 */
|
|
232
|
+
export type AppLayoutBodyConfig = AppConfig["APP_LAYOUT_BODY_CONFIG"];
|
|
233
|
+
/** 应用主题配置 type 别名 */
|
|
234
|
+
export type AppThemeConfig = AppConfig["APP_THEME_CONFIG"];
|
|
235
|
+
/** 应用路由元信息默认配置 type 别名 */
|
|
236
|
+
export type AppRouterMetaDefaultConfig = AppConfig["APP_ROUTER_META_DEFAULT_CONFIG"];
|
|
237
|
+
/** 应用缓存配置 type 别名 */
|
|
238
|
+
export type AppCacheConfig = AppConfig["APP_CACHE_CONFIG"];
|
|
180
239
|
/**
|
|
181
|
-
* `createAdminBridge`
|
|
240
|
+
* `createAdminBridge` 入参类型(#2.5 期 schema 扩张到 14 顶层字段,per ADR-3 / ADR-6)。
|
|
241
|
+
*
|
|
242
|
+
* #2.5 期完全显式入参化:原 `appConfig: AppConfig` 嵌套字段拆解为 11 个顶层字段平铺
|
|
243
|
+
* + 新增 `APP_ENV_INFO` / `APP_LAYOUT_BREADCRUMB_CONFIG` / `APP_ROUTER_CONFIG` 3 字段
|
|
244
|
+
* + 注:`APP_LAYOUT_CONFIG` 由 bridge 内部从 5 子布局配置聚合派生(候选 b,不在 initOptions 中)。
|
|
182
245
|
*
|
|
183
|
-
* `appConfig` 与 `storage` 均为 env-driven、不依赖 core、app pre-Vue 即可备好;
|
|
184
246
|
* `routes`(#4e additive)为 app 嵌套路由树(带 children),createUserStore 经此算权限树;
|
|
185
|
-
* `
|
|
186
|
-
*
|
|
247
|
+
* `getUserInfoInitFn` 为 createUserStore 用户信息空保底注入面(core 对 UserInfo 不透明,
|
|
248
|
+
* 业务 shape 不下沉,规则 8)。#C 期:删 `userInfoAccess` access pattern——token/refreshToken
|
|
249
|
+
* 与 permission 对称为固定字面字段名(`"token"` / `"refresh_token"` / `"permission"`),
|
|
250
|
+
* 嵌套场景由业务方 wrap getUserInfoApi 时摊平(wrap 是业务方天然控制点)。
|
|
187
251
|
*/
|
|
188
252
|
export interface AdminBridgeInitOptions<UserInfo = unknown> {
|
|
189
|
-
/** store/app
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
|
|
253
|
+
/** 应用基础信息(store/app 仅取 name) */
|
|
254
|
+
APP_BASE_INFO: AppBaseInfo;
|
|
255
|
+
/** 应用环境信息(mode / isProd / isDev,env 派生) */
|
|
256
|
+
APP_ENV_INFO: AppEnvInfo;
|
|
257
|
+
/** 应用缓存配置(bridge 内部 storage / useState 派生 namespace) */
|
|
258
|
+
APP_CACHE_CONFIG: AppCacheConfig;
|
|
259
|
+
/** 应用布局-header 配置 */
|
|
260
|
+
APP_LAYOUT_HEADER_CONFIG: AppLayoutHeaderConfig;
|
|
261
|
+
/** 应用布局-footer 配置 */
|
|
262
|
+
APP_LAYOUT_FOOTER_CONFIG: AppLayoutFooterConfig;
|
|
263
|
+
/** 应用布局-sidebar 配置 */
|
|
264
|
+
APP_LAYOUT_SIDEBAR_CONFIG: AppLayoutSidebarConfig;
|
|
265
|
+
/** 应用布局-面包屑配置(#2.5 期新增字段) */
|
|
266
|
+
APP_LAYOUT_BREADCRUMB_CONFIG: AppLayoutBreadcrumbConfig;
|
|
267
|
+
/** 应用布局-页面主体配置 */
|
|
268
|
+
APP_LAYOUT_BODY_CONFIG: AppLayoutBodyConfig;
|
|
269
|
+
/** 应用路由元信息默认配置(bridge 内部 generateRouteMetaRawTree 派生) */
|
|
270
|
+
APP_ROUTER_META_DEFAULT_CONFIG: AppRouterMetaDefaultConfig;
|
|
271
|
+
/** 应用路由配置(#2.5 期新增字段) */
|
|
272
|
+
APP_ROUTER_CONFIG: AppRouterConfig;
|
|
273
|
+
/** 应用路由路径配置(#7.3 期新增字段;8 path 聚合供 layout 族通过 bridge 取业务路径) */
|
|
274
|
+
APP_ROUTER_PATHS_CONFIG: AppRouterPathsConfig;
|
|
275
|
+
/** 应用主题配置(light / dark 双主题) */
|
|
276
|
+
APP_THEME_CONFIG: AppThemeConfig;
|
|
193
277
|
/** app 嵌套路由树(必传,#4e additive;createUserStore 权限树依赖 children 嵌套,[MUST NOT] 传扁平化数据) */
|
|
194
278
|
routes: RouteRecordRaw[];
|
|
195
|
-
/** UserInfo token/refreshToken 取写访问器(v3 终锁 Δ0b;createUserStore 经此取写,core 不透明 UserInfo,permission 不入) */
|
|
196
|
-
userInfoAccess: UserInfoAccess<UserInfo>;
|
|
197
279
|
/** 用户信息空保底工厂(v3 终锁 Δ0b;恒返非空业务字段默认值对象,createUserStore useState 经此取初值,core 不锁业务 shape) */
|
|
198
280
|
getUserInfoInitFn: () => UserInfo;
|
|
199
281
|
}
|
|
@@ -215,34 +297,55 @@ export interface AdminBridge<UserInfo = unknown, LoginParams = unknown> {
|
|
|
215
297
|
refreshToken: () => Promise<void>;
|
|
216
298
|
/** 刷新鉴权 */
|
|
217
299
|
refreshAuth: () => Promise<void>;
|
|
218
|
-
/**
|
|
219
|
-
|
|
220
|
-
|
|
300
|
+
/**
|
|
301
|
+
* @deprecated 改用 `appAdminBridge.APP_XXX` 直接属性读(per #2.5 期 ADR-4;下个 MAJOR 删除)。
|
|
302
|
+
* 返回 8 字段聚合对象(每次调用产新对象,多次调用 !== 引用不等)。
|
|
303
|
+
*/
|
|
304
|
+
getAppConfig: () => Readonly<AppConfig>;
|
|
305
|
+
/** 返回 bridge 内部派生的 storage 实例(per REQ-1 入参内化;保持 StorageLike 可变方法可调用) */
|
|
221
306
|
getStorage: () => StorageLike;
|
|
222
|
-
/** 返回 `init` 注册的 routes
|
|
307
|
+
/** 返回 `init` 注册的 routes 引用(routes 例外保持可变,破循环依赖时序,per REQ-4 + audit §3.4) */
|
|
223
308
|
getRoutes: () => RouteRecordRaw[];
|
|
224
|
-
/** 返回 `init` 注册的 userInfoAccess 引用(v3 终锁 Δ0d,镜像 getRoutes 范式) */
|
|
225
|
-
getUserInfoAccess: () => UserInfoAccess<UserInfo>;
|
|
226
309
|
/** 返回 `init` 注册的 getUserInfoInitFn 引用(v3 终锁 Δ0d,镜像 getRoutes 范式) */
|
|
227
310
|
getUserInfoInitFn: () => () => UserInfo;
|
|
228
|
-
/**
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
311
|
+
/** bridge 内部派生 useState 实例方法(per REQ-2;ns 已绑定,调用方零 ns 参;cacheKey 形如 `${ns}/useState/${moduleKey}`) */
|
|
312
|
+
useState: ReturnType<typeof createUseState>;
|
|
313
|
+
/** bridge 内部派生 generateRouteMetaRawTree 实例方法(per REQ-3;metaDefault 已绑定 APP_ROUTER_META_DEFAULT_CONFIG,调用方零 metaDefault 参) */
|
|
314
|
+
generateRouteMetaRawTree: ReturnType<typeof createGenerateRouteMetaRawTree>;
|
|
315
|
+
/** 登录 api(createUserStore login 内调;#2.7 期 axios `{data}` wrapper 业务层 wrap 剥离;未注册被调 reject 原生 Error) */
|
|
316
|
+
loginApi: (params: LoginParams) => Promise<Partial<UserInfo>>;
|
|
232
317
|
/** 退出登录 api(createUserStore logout 内调;未注册被调 reject 原生 Error) */
|
|
233
318
|
logoutApi: () => Promise<unknown>;
|
|
234
|
-
/** 取用户信息 api(createUserStore getInfo
|
|
235
|
-
getUserInfoApi: () => Promise<
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
319
|
+
/** 取用户信息 api(createUserStore getInfo 内调;#2.7 期 axios `{data}` wrapper 业务层 wrap 剥离;连壳 {user_info} 见 design D2 由业务层决定;未注册被调 reject 原生 Error) */
|
|
320
|
+
getUserInfoApi: () => Promise<Partial<UserInfo>>;
|
|
321
|
+
/** 刷新 token api(createUserStore refreshTokenFn 内调;#C 期签名最简化:core 直传 refreshToken string,业务 wrap 内自打包业务 shape;未注册被调 reject 原生 Error) */
|
|
322
|
+
refreshTokenApi: (refreshToken: string) => Promise<string>;
|
|
323
|
+
/** 应用基础信息(per #2.5 期 REQ-1 直接挂载形态) */
|
|
324
|
+
readonly APP_BASE_INFO: AppBaseInfo;
|
|
325
|
+
/** 应用环境信息(per #2.5 期 REQ-1) */
|
|
326
|
+
readonly APP_ENV_INFO: AppEnvInfo;
|
|
327
|
+
/** 应用缓存配置(per #2.5 期 REQ-1) */
|
|
328
|
+
readonly APP_CACHE_CONFIG: AppCacheConfig;
|
|
329
|
+
/** 应用布局-header 配置(per #2.5 期 REQ-1) */
|
|
330
|
+
readonly APP_LAYOUT_HEADER_CONFIG: AppLayoutHeaderConfig;
|
|
331
|
+
/** 应用布局-footer 配置(per #2.5 期 REQ-1) */
|
|
332
|
+
readonly APP_LAYOUT_FOOTER_CONFIG: AppLayoutFooterConfig;
|
|
333
|
+
/** 应用布局-sidebar 配置(per #2.5 期 REQ-1) */
|
|
334
|
+
readonly APP_LAYOUT_SIDEBAR_CONFIG: AppLayoutSidebarConfig;
|
|
335
|
+
/** 应用布局-面包屑配置(per #2.5 期 REQ-1) */
|
|
336
|
+
readonly APP_LAYOUT_BREADCRUMB_CONFIG: AppLayoutBreadcrumbConfig;
|
|
337
|
+
/** 应用布局-页面主体配置(per #2.5 期 REQ-1) */
|
|
338
|
+
readonly APP_LAYOUT_BODY_CONFIG: AppLayoutBodyConfig;
|
|
339
|
+
/** 应用布局聚合配置(per #2.5 期 ADR-3 bridge 内部聚合派生) */
|
|
340
|
+
readonly APP_LAYOUT_CONFIG: AppLayoutConfig;
|
|
341
|
+
/** 应用路由元信息默认配置(per #2.5 期 REQ-1) */
|
|
342
|
+
readonly APP_ROUTER_META_DEFAULT_CONFIG: AppRouterMetaDefaultConfig;
|
|
343
|
+
/** 应用路由配置(per #2.5 期 REQ-1) */
|
|
344
|
+
readonly APP_ROUTER_CONFIG: AppRouterConfig;
|
|
345
|
+
/** 应用路由路径配置(per #7.3 期;8 path 聚合 readonly 挂载) */
|
|
346
|
+
readonly APP_ROUTER_PATHS_CONFIG: AppRouterPathsConfig;
|
|
347
|
+
/** 应用主题配置(per #2.5 期 REQ-1) */
|
|
348
|
+
readonly APP_THEME_CONFIG: AppThemeConfig;
|
|
246
349
|
}
|
|
247
350
|
/**
|
|
248
351
|
* 认证桥接无状态纯工厂:接收 init 参数,内部立即初始化,返回可直接使用的
|
|
@@ -251,10 +354,11 @@ export interface AdminBridge<UserInfo = unknown, LoginParams = unknown> {
|
|
|
251
354
|
*
|
|
252
355
|
* @example
|
|
253
356
|
* const appAdminBridge = createAdminBridge<LoginAccountInfo, AccountLoginParams>({
|
|
254
|
-
*
|
|
255
|
-
*
|
|
357
|
+
* APP_BASE_INFO, APP_ENV_INFO, APP_CACHE_CONFIG,
|
|
358
|
+
* APP_LAYOUT_HEADER_CONFIG, APP_LAYOUT_FOOTER_CONFIG, APP_LAYOUT_SIDEBAR_CONFIG,
|
|
359
|
+
* APP_LAYOUT_BREADCRUMB_CONFIG, APP_LAYOUT_BODY_CONFIG,
|
|
360
|
+
* APP_ROUTER_META_DEFAULT_CONFIG, APP_ROUTER_CONFIG, APP_THEME_CONFIG,
|
|
256
361
|
* routes,
|
|
257
|
-
* userInfoAccess: { token: "token", refreshToken: "refresh_token" },
|
|
258
362
|
* getUserInfoInitFn: getUserInfoInit,
|
|
259
363
|
* });
|
|
260
364
|
*/
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { RouteMetaResolveRaw } from '../../types';
|
|
2
|
+
|
|
3
|
+
declare function __VLS_template(): {
|
|
4
|
+
footer?(_: {}): any;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_component: import('vue').DefineComponent<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
7
|
+
menus: RouteMetaResolveRaw[];
|
|
8
|
+
menuFlatList: RouteMetaResolveRaw[];
|
|
9
|
+
}>, {
|
|
10
|
+
menus: () => never[];
|
|
11
|
+
menuFlatList: () => never[];
|
|
12
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
13
|
+
menus: RouteMetaResolveRaw[];
|
|
14
|
+
menuFlatList: RouteMetaResolveRaw[];
|
|
15
|
+
}>, {
|
|
16
|
+
menus: () => never[];
|
|
17
|
+
menuFlatList: () => never[];
|
|
18
|
+
}>>> & Readonly<{}>, {
|
|
19
|
+
menus: RouteMetaResolveRaw[];
|
|
20
|
+
menuFlatList: RouteMetaResolveRaw[];
|
|
21
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
22
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
23
|
+
export default _default;
|
|
24
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
25
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
26
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
27
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
28
|
+
} : {
|
|
29
|
+
type: import('vue').PropType<T[K]>;
|
|
30
|
+
required: true;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
type __VLS_WithDefaults<P, D> = {
|
|
34
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
35
|
+
default: D[K];
|
|
36
|
+
}> : P[K];
|
|
37
|
+
};
|
|
38
|
+
type __VLS_Prettify<T> = {
|
|
39
|
+
[K in keyof T]: T[K];
|
|
40
|
+
} & {};
|
|
41
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
42
|
+
new (): {
|
|
43
|
+
$slots: S;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RouteMetaResolveRaw } from '../../types';
|
|
2
|
+
|
|
3
|
+
declare const _default: import('vue').DefineComponent<globalThis.ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
4
|
+
menus: RouteMetaResolveRaw[];
|
|
5
|
+
height: number;
|
|
6
|
+
menuFlatList: RouteMetaResolveRaw[];
|
|
7
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
8
|
+
show: (status: boolean) => void;
|
|
9
|
+
}, string, import('vue').PublicProps, Readonly<globalThis.ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
10
|
+
menus: RouteMetaResolveRaw[];
|
|
11
|
+
height: number;
|
|
12
|
+
menuFlatList: RouteMetaResolveRaw[];
|
|
13
|
+
}>>> & Readonly<{
|
|
14
|
+
onShow?: ((status: boolean) => any) | undefined;
|
|
15
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
16
|
+
export default _default;
|
|
17
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
18
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
19
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
20
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
21
|
+
} : {
|
|
22
|
+
type: import('vue').PropType<T[K]>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { RouteMetaResolveRaw } from '../../types';
|
|
2
|
+
|
|
3
|
+
declare function __VLS_template(): {
|
|
4
|
+
left?(_: {}): any;
|
|
5
|
+
right?(_: {}): any;
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_component: import('vue').DefineComponent<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
8
|
+
/** 整体不用管 AppLayout控制 用在定位出去的子元素的显隐 */
|
|
9
|
+
show: boolean;
|
|
10
|
+
menus: RouteMetaResolveRaw[];
|
|
11
|
+
/** 聚焦的路由菜单 */
|
|
12
|
+
activeMenu?: RouteMetaResolveRaw;
|
|
13
|
+
/** 聚焦的模块菜单 */
|
|
14
|
+
activeModuleMenu?: RouteMetaResolveRaw;
|
|
15
|
+
menuFlatList: RouteMetaResolveRaw[];
|
|
16
|
+
}>, {
|
|
17
|
+
menus: () => never[];
|
|
18
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
19
|
+
/** 整体不用管 AppLayout控制 用在定位出去的子元素的显隐 */
|
|
20
|
+
show: boolean;
|
|
21
|
+
menus: RouteMetaResolveRaw[];
|
|
22
|
+
/** 聚焦的路由菜单 */
|
|
23
|
+
activeMenu?: RouteMetaResolveRaw;
|
|
24
|
+
/** 聚焦的模块菜单 */
|
|
25
|
+
activeModuleMenu?: RouteMetaResolveRaw;
|
|
26
|
+
menuFlatList: RouteMetaResolveRaw[];
|
|
27
|
+
}>, {
|
|
28
|
+
menus: () => never[];
|
|
29
|
+
}>>> & Readonly<{}>, {
|
|
30
|
+
menus: RouteMetaResolveRaw[];
|
|
31
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
32
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
33
|
+
export default _default;
|
|
34
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
35
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
36
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
37
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
38
|
+
} : {
|
|
39
|
+
type: import('vue').PropType<T[K]>;
|
|
40
|
+
required: true;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
type __VLS_WithDefaults<P, D> = {
|
|
44
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
45
|
+
default: D[K];
|
|
46
|
+
}> : P[K];
|
|
47
|
+
};
|
|
48
|
+
type __VLS_Prettify<T> = {
|
|
49
|
+
[K in keyof T]: T[K];
|
|
50
|
+
} & {};
|
|
51
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
52
|
+
new (): {
|
|
53
|
+
$slots: S;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { AppLayoutAppStoreSlice, AppLayoutUserStoreSlice, AppLayoutBridgeSlice } from './types';
|
|
2
|
+
import { WatermarkProps } from 'element-plus';
|
|
3
|
+
|
|
4
|
+
declare function __VLS_template(): {
|
|
5
|
+
"sidebar-top"?(_: {}): any;
|
|
6
|
+
"sidebar-bottom"?(_: {}): any;
|
|
7
|
+
"header-left"?(_: {}): any;
|
|
8
|
+
"header-right"?(_: {}): any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_component: import('vue').DefineComponent<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
11
|
+
/**
|
|
12
|
+
* admin bridge 实例(#7.6 期新增必填)。
|
|
13
|
+
* AppLayout 经 `props.adminBridge` 注入后 provide 给子 layout 组件
|
|
14
|
+
* (AppBody / AppSidebar 自取 12 readonly 配置 + getRoutes / generateRouteMetaRawTree)。
|
|
15
|
+
* 业务侧 App.vue 模板:`<AppLayout :admin-bridge="appAdminBridge" ...>`。
|
|
16
|
+
*/
|
|
17
|
+
adminBridge: AppLayoutBridgeSlice;
|
|
18
|
+
appStore: AppLayoutAppStoreSlice;
|
|
19
|
+
userStore: AppLayoutUserStoreSlice;
|
|
20
|
+
/** 水印内容(空数组/空串/undefined 不展示);layout 不耦合 UserInfo shape,由业务侧派生 */
|
|
21
|
+
watermarkContent?: WatermarkProps["content"];
|
|
22
|
+
/**
|
|
23
|
+
* sidebar 层级是否高于 header(#7.5 期新增,默认 false)。
|
|
24
|
+
* true 时 AppSidebar z-index 调高于 AppHeader——适合 sidebar 顶部悬挂内容
|
|
25
|
+
* 需要覆盖 header 区域的场景(如悬浮 logo/搜索框)。
|
|
26
|
+
*/
|
|
27
|
+
sidebarAboveHeader?: boolean;
|
|
28
|
+
}>, {
|
|
29
|
+
sidebarAboveHeader: boolean;
|
|
30
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
31
|
+
/**
|
|
32
|
+
* admin bridge 实例(#7.6 期新增必填)。
|
|
33
|
+
* AppLayout 经 `props.adminBridge` 注入后 provide 给子 layout 组件
|
|
34
|
+
* (AppBody / AppSidebar 自取 12 readonly 配置 + getRoutes / generateRouteMetaRawTree)。
|
|
35
|
+
* 业务侧 App.vue 模板:`<AppLayout :admin-bridge="appAdminBridge" ...>`。
|
|
36
|
+
*/
|
|
37
|
+
adminBridge: AppLayoutBridgeSlice;
|
|
38
|
+
appStore: AppLayoutAppStoreSlice;
|
|
39
|
+
userStore: AppLayoutUserStoreSlice;
|
|
40
|
+
/** 水印内容(空数组/空串/undefined 不展示);layout 不耦合 UserInfo shape,由业务侧派生 */
|
|
41
|
+
watermarkContent?: WatermarkProps["content"];
|
|
42
|
+
/**
|
|
43
|
+
* sidebar 层级是否高于 header(#7.5 期新增,默认 false)。
|
|
44
|
+
* true 时 AppSidebar z-index 调高于 AppHeader——适合 sidebar 顶部悬挂内容
|
|
45
|
+
* 需要覆盖 header 区域的场景(如悬浮 logo/搜索框)。
|
|
46
|
+
*/
|
|
47
|
+
sidebarAboveHeader?: boolean;
|
|
48
|
+
}>, {
|
|
49
|
+
sidebarAboveHeader: boolean;
|
|
50
|
+
}>>> & Readonly<{}>, {
|
|
51
|
+
sidebarAboveHeader: boolean;
|
|
52
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
53
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
54
|
+
export default _default;
|
|
55
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
56
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
57
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
58
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
59
|
+
} : {
|
|
60
|
+
type: import('vue').PropType<T[K]>;
|
|
61
|
+
required: true;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
type __VLS_WithDefaults<P, D> = {
|
|
65
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
66
|
+
default: D[K];
|
|
67
|
+
}> : P[K];
|
|
68
|
+
};
|
|
69
|
+
type __VLS_Prettify<T> = {
|
|
70
|
+
[K in keyof T]: T[K];
|
|
71
|
+
} & {};
|
|
72
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
73
|
+
new (): {
|
|
74
|
+
$slots: S;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
declare function __VLS_template(): {
|
|
2
|
+
default?(_: {}): any;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_component: import('vue').DefineComponent<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
5
|
+
/** 充满视口 */
|
|
6
|
+
fullViewport?: boolean;
|
|
7
|
+
fullMode?: "min-height" | "height";
|
|
8
|
+
/** 下个viewport高度 */
|
|
9
|
+
nextViewportMaxHeight?: string;
|
|
10
|
+
background?: string;
|
|
11
|
+
}>, {
|
|
12
|
+
fullViewport: boolean;
|
|
13
|
+
fullMode: string;
|
|
14
|
+
nextViewportMaxHeight: string;
|
|
15
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
16
|
+
/** 充满视口 */
|
|
17
|
+
fullViewport?: boolean;
|
|
18
|
+
fullMode?: "min-height" | "height";
|
|
19
|
+
/** 下个viewport高度 */
|
|
20
|
+
nextViewportMaxHeight?: string;
|
|
21
|
+
background?: string;
|
|
22
|
+
}>, {
|
|
23
|
+
fullViewport: boolean;
|
|
24
|
+
fullMode: string;
|
|
25
|
+
nextViewportMaxHeight: string;
|
|
26
|
+
}>>> & Readonly<{}>, {
|
|
27
|
+
fullViewport: boolean;
|
|
28
|
+
fullMode: "min-height" | "height";
|
|
29
|
+
nextViewportMaxHeight: string;
|
|
30
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
31
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
32
|
+
export default _default;
|
|
33
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
34
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
35
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
36
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
37
|
+
} : {
|
|
38
|
+
type: import('vue').PropType<T[K]>;
|
|
39
|
+
required: true;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
type __VLS_WithDefaults<P, D> = {
|
|
43
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
44
|
+
default: D[K];
|
|
45
|
+
}> : P[K];
|
|
46
|
+
};
|
|
47
|
+
type __VLS_Prettify<T> = {
|
|
48
|
+
[K in keyof T]: T[K];
|
|
49
|
+
} & {};
|
|
50
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
51
|
+
new (): {
|
|
52
|
+
$slots: S;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { RouteMetaResolveRaw } from '../../types';
|
|
2
|
+
|
|
3
|
+
declare function __VLS_template(): {
|
|
4
|
+
top?(_: {}): any;
|
|
5
|
+
bottom?(_: {}): any;
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_component: import('vue').DefineComponent<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
8
|
+
/** 整体不用管 AppLayout 控制 用在定位出去的子元素的显隐 */
|
|
9
|
+
show: boolean;
|
|
10
|
+
/** 层级是否高于 header(#7.5 期;true 时 z-index 提升盖住 header) */
|
|
11
|
+
aboveHeader?: boolean;
|
|
12
|
+
menus: RouteMetaResolveRaw[];
|
|
13
|
+
menuFlatList: RouteMetaResolveRaw[];
|
|
14
|
+
}>, {
|
|
15
|
+
aboveHeader: boolean;
|
|
16
|
+
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<globalThis.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
|
|
17
|
+
/** 整体不用管 AppLayout 控制 用在定位出去的子元素的显隐 */
|
|
18
|
+
show: boolean;
|
|
19
|
+
/** 层级是否高于 header(#7.5 期;true 时 z-index 提升盖住 header) */
|
|
20
|
+
aboveHeader?: boolean;
|
|
21
|
+
menus: RouteMetaResolveRaw[];
|
|
22
|
+
menuFlatList: RouteMetaResolveRaw[];
|
|
23
|
+
}>, {
|
|
24
|
+
aboveHeader: boolean;
|
|
25
|
+
}>>> & Readonly<{}>, {
|
|
26
|
+
aboveHeader: boolean;
|
|
27
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
28
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
29
|
+
export default _default;
|
|
30
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
31
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
32
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
33
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
34
|
+
} : {
|
|
35
|
+
type: import('vue').PropType<T[K]>;
|
|
36
|
+
required: true;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
type __VLS_WithDefaults<P, D> = {
|
|
40
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
|
|
41
|
+
default: D[K];
|
|
42
|
+
}> : P[K];
|
|
43
|
+
};
|
|
44
|
+
type __VLS_Prettify<T> = {
|
|
45
|
+
[K in keyof T]: T[K];
|
|
46
|
+
} & {};
|
|
47
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
48
|
+
new (): {
|
|
49
|
+
$slots: S;
|
|
50
|
+
};
|
|
51
|
+
};
|