@jzg223/design-runtime 0.0.1 → 0.1.0-rc.2
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/CHANGELOG.md +18 -0
- package/README.md +52 -0
- package/dist/board/api.js +57 -0
- package/dist/board/board-chart.vue.js +7 -0
- package/dist/board/board-chart2.vue.js +93 -0
- package/dist/board/context.js +15 -0
- package/dist/board/datav-map.js +66 -0
- package/dist/board/design-board.vue.js +172 -0
- package/dist/board/design-board2.vue.js +331 -0
- package/dist/board/echarts.js +40 -0
- package/dist/board/part-node.vue.js +63 -0
- package/dist/board/part-node2.vue.js +125 -0
- package/dist/board/part-renderer.vue.js +561 -0
- package/dist/board/part-renderer2.vue.js +884 -0
- package/dist/board/theme-host.js +129 -0
- package/dist/board-engine/asset.js +32 -0
- package/dist/board-engine/chart-option.js +377 -0
- package/dist/board-engine/data-hub.js +67 -0
- package/dist/board-engine/datav-meta.js +51 -0
- package/dist/board-engine/i18n.js +130 -0
- package/dist/board-engine/param-catalog.js +137 -0
- package/dist/board-engine/params.js +61 -0
- package/dist/board-engine/render-model.js +65 -0
- package/dist/board-engine/schema.js +856 -0
- package/dist/board-engine/theme-manifest.js +19 -0
- package/dist/board-engine/version.js +4 -0
- package/dist/host.js +6 -1
- package/dist/index.js +172 -24
- package/dist/style.css +1067 -0
- package/dist/types/board/api.d.ts +45 -0
- package/dist/types/board/board-chart.vue.d.ts +15 -0
- package/dist/types/board/context.d.ts +29 -0
- package/dist/types/board/datav-map.d.ts +24 -0
- package/dist/types/board/design-board.vue.d.ts +1409 -0
- package/dist/types/board/echarts.d.ts +25 -0
- package/dist/types/board/part-node.vue.d.ts +1237 -0
- package/dist/types/board/part-renderer.vue.d.ts +1205 -0
- package/dist/types/board/theme-host.d.ts +41 -0
- package/dist/types/board-engine/asset.d.ts +37 -0
- package/dist/types/board-engine/chart-option.d.ts +737 -0
- package/dist/types/board-engine/data-hub.d.ts +48 -0
- package/dist/types/board-engine/datav-meta.d.ts +37 -0
- package/dist/types/board-engine/i18n.d.ts +43 -0
- package/dist/types/board-engine/index.d.ts +25 -0
- package/dist/types/board-engine/param-catalog.d.ts +82 -0
- package/dist/types/board-engine/params.d.ts +37 -0
- package/dist/types/board-engine/render-model.d.ts +87 -0
- package/dist/types/board-engine/schema.d.ts +513 -0
- package/dist/types/board-engine/theme-manifest.d.ts +23 -0
- package/dist/types/board-engine/types.d.ts +147 -0
- package/dist/types/board-engine/version.d.ts +10 -0
- package/dist/types/host.d.ts +21 -0
- package/dist/types/index.d.ts +21 -2
- package/package.json +21 -4
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 看板取数层(运行端只用这 4 个接口)
|
|
3
|
+
*
|
|
4
|
+
* 契约(见方案文档 §7):
|
|
5
|
+
* | # | 方法/路径 | 用途 |
|
|
6
|
+
* | 1 | `GET /design/board/info/queryByCode?code=` | 拿整页配置(configJson + 页宽高) |
|
|
7
|
+
* | 2 | `POST /design/board/data/query` | 部件取数(BoardDataQuery → columns/rows) |
|
|
8
|
+
* | 3 | `GET /design/board/dataset/paramsBySets?ids=` | 参数目录(数据集声明的参数) |
|
|
9
|
+
* | 4 | `GET /design/board/asset/file?path=` | 素材直链(**不经 http**,拼 URL 给 `<img src>`) |
|
|
10
|
+
*
|
|
11
|
+
* 三条口径(与库内其它取数一致,别改):
|
|
12
|
+
* 1. **只走注入的 http**:默认用主 `http`,宿主需要指到别的服务时注入 `board.http`;
|
|
13
|
+
* 2. **一律 `silent: true`**:一个大屏会并发十几个部件请求,宿主逐条弹 toast 不可接受;
|
|
14
|
+
* 3. **响应按宿主契约已剥壳**(拦截器 resolve 业务数据)。为兼容"未剥壳"的实现(design-ui 那套 axios),
|
|
15
|
+
* 这里做**一处**显式的 `{code,data}` 解包,而不是到处判 `code === 200`。
|
|
16
|
+
*/
|
|
17
|
+
import type { BoardDataQuery, BoardDataResult, BoardParamDecl } from '../board-engine';
|
|
18
|
+
import type { DesignHttp } from '../http';
|
|
19
|
+
/** 看板信息(`design_board_info` 的运行端视图) */
|
|
20
|
+
export interface BoardInfo {
|
|
21
|
+
boardCode: string;
|
|
22
|
+
boardName?: string;
|
|
23
|
+
/** 整页配置 JSON(字符串;用 `parseConfig` 解析) */
|
|
24
|
+
configJson: string;
|
|
25
|
+
/** 设计时页宽(配置里没有 width 时兜底用) */
|
|
26
|
+
pageWidth?: number;
|
|
27
|
+
/** 设计时页高 */
|
|
28
|
+
pageHeight?: number;
|
|
29
|
+
[key: string]: any;
|
|
30
|
+
}
|
|
31
|
+
/** 看板接口用哪个 http 实例(宿主可单独指) */
|
|
32
|
+
export declare function boardHttp(): DesignHttp;
|
|
33
|
+
/** 素材直链前缀(宿主注入;缺省同源) */
|
|
34
|
+
export declare function boardAssetBaseUrl(): string;
|
|
35
|
+
/** ① 按编码取整页配置 */
|
|
36
|
+
export declare function fetchBoardInfo(code: string): Promise<BoardInfo | null>;
|
|
37
|
+
/** ② 部件取数(失败返回 null —— 单个部件挂了不该让整页白掉) */
|
|
38
|
+
export declare function fetchBoardData(body: BoardDataQuery): Promise<BoardDataResult | null>;
|
|
39
|
+
/** ③ 参数声明(参数目录用;失败返回空数组,页面继续按部件自身配置工作) */
|
|
40
|
+
export declare function fetchBoardParams(ids: string): Promise<BoardParamDecl[]>;
|
|
41
|
+
/**
|
|
42
|
+
* ④ 素材地址:`asset:` 引用 → 可用的 `src`。
|
|
43
|
+
* 不是 `asset:` 引用(外部 URL / data: / 站内绝对路径)原样返回,交给 `assetUrl` 的规则。
|
|
44
|
+
*/
|
|
45
|
+
export declare function boardAssetUrl(value: unknown): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
/** ECharts option(引擎算好的);null/空对象表示"没有数据" */
|
|
3
|
+
option?: Record<string, any> | null;
|
|
4
|
+
};
|
|
5
|
+
declare function resize(): void;
|
|
6
|
+
declare const _default: import("vue").DefineComponent<__VLS_Props, {
|
|
7
|
+
resize: typeof resize;
|
|
8
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
9
|
+
"chart-click": (payload: any) => any;
|
|
10
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
"onChart-click"?: ((payload: any) => any) | undefined;
|
|
12
|
+
}>, {
|
|
13
|
+
option: Record<string, any> | null;
|
|
14
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 看板实例上下文(provide / inject)
|
|
3
|
+
*
|
|
4
|
+
* 为什么要这一层:看板的状态(参数 / 参数目录 / 取数缓存)**每个看板实例一份**。
|
|
5
|
+
* design-ui 那边是模块级单例(`Vue.observable`),因为一页只有一个看板;
|
|
6
|
+
* 但运行端可能一页放两个(大屏里嵌套、页签并列),单例会让两个看板串参数。
|
|
7
|
+
* 所以这里是 `DesignBoard` 创建 → provide → `PartNode` / `PartRenderer` inject。
|
|
8
|
+
*
|
|
9
|
+
* 顺带解决了另一个问题:`part-renderer` 是递归渲染的深层组件,靠 props 逐层透传
|
|
10
|
+
* 参数/取数会变成一条很长的 prop 链;用 inject 只传"一个对象"。
|
|
11
|
+
*/
|
|
12
|
+
import { type InjectionKey } from 'vue';
|
|
13
|
+
import type { BoardDataHub, BoardParamCatalog, BoardParams } from '../board-engine';
|
|
14
|
+
/** 看板运行时上下文 */
|
|
15
|
+
export interface BoardContext {
|
|
16
|
+
/** 看板参数(筛选方案写、各部件读) */
|
|
17
|
+
params: BoardParams;
|
|
18
|
+
/** 数据集声明的参数目录(筛选控件的类型/可选值以它为准) */
|
|
19
|
+
catalog: BoardParamCatalog;
|
|
20
|
+
/** 部件取数(同查询合并 + 短 TTL 缓存) */
|
|
21
|
+
dataHub: BoardDataHub;
|
|
22
|
+
/** 素材直链前缀(`asset:` 引用解析用) */
|
|
23
|
+
assetBaseUrl: string;
|
|
24
|
+
/** 当前语言(`localizePart` 用) */
|
|
25
|
+
locale: string;
|
|
26
|
+
}
|
|
27
|
+
export declare const DESIGN_BOARD_CTX: InjectionKey<BoardContext>;
|
|
28
|
+
/** 取上下文:没 provide 就抛错(静默降级只会让"数据不出来"更难查) */
|
|
29
|
+
export declare function useBoardContext(): BoardContext;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataV 边框 / 装饰的**组件映射**(运行端侧)
|
|
3
|
+
*
|
|
4
|
+
* 原来的实现用 `@jiaminghi/data-view`(Vue2 的 `.vue` 源码直引),Vue3 用不了。
|
|
5
|
+
* 现在换成社区 Vue3 移植版 `@kjgl77/datav-vue3`(peer,宿主装),
|
|
6
|
+
* **元数据**(编号 → 中文名 / 推荐尺寸)仍在引擎里(`board-engine/datav-meta.ts`),
|
|
7
|
+
* 这里只做"编号 → 组件"。
|
|
8
|
+
*
|
|
9
|
+
* 三条硬约束(体积与懒加载):
|
|
10
|
+
* 1. 包是**单入口整包**(解包 720 KB,ESM 一个文件),没有按组件的子路径导出
|
|
11
|
+
* ⇒ 用 `defineAsyncComponent` + 动态 `import()`,做到"配置里真用了边框/装饰才下载";
|
|
12
|
+
* 2. 依赖它的 `style.css` 也**跟着组件一起懒加载**(不放进库的 `dist/style.css`,
|
|
13
|
+
* 否则每个用本库的宿主都白背 12 KB + 一个可能压根没装的 peer);
|
|
14
|
+
* 3. 每个编号的组件对象**缓存一份**(同一页有 10 个边框也只创建一个异步组件)。
|
|
15
|
+
*/
|
|
16
|
+
import { type Component } from 'vue';
|
|
17
|
+
/** 编号 → 边框组件(13 种;非法编号/未注册回落到默认 8) */
|
|
18
|
+
export declare function datavBorderComponent(n: unknown, fallback?: number): Component;
|
|
19
|
+
/** 编号 → 装饰组件(12 种;非法编号回落到默认 5) */
|
|
20
|
+
export declare function datavDecorationComponent(n: unknown, fallback?: number): Component;
|
|
21
|
+
/** 预加载 datav 整包(宿主想提前拉一遍时用;库内部按需加载,不需要调它) */
|
|
22
|
+
export declare function preloadDatav(): Promise<Record<string, any>>;
|
|
23
|
+
/** 仅测试用:清缓存 */
|
|
24
|
+
export declare function resetDatavCache(): void;
|