@pubinfo/core 2.1.10-beta.2 → 2.1.11
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/dist/{AppSetting-Dl8pVkN4.js → AppSetting-7jlhUzze.js} +42 -42
- package/dist/{HButton-CzYSwI6a.js → HButton-Dt6qGhhR.js} +7 -7
- package/dist/{HCheckList-CHR-lWIq.js → HCheckList-cPBgATmv.js} +15 -15
- package/dist/{HDivider-CXS9rl4C.js → HDivider-BwvBr5OE.js} +3 -3
- package/dist/{HInput-CSVwTg1Q.js → HInput-KJ5nFBpF.js} +10 -10
- package/dist/HSlideover-DVQDc9q6.js +3151 -0
- package/dist/{HToggle-C_iVIpxv.js → HToggle-Ce_2-yhZ.js} +8 -8
- package/dist/{HTooltip-BHBHfrCD.js → HTooltip-DjAU-Evn.js} +6 -6
- package/dist/PreferencesContent-BAIH81yS.js +701 -0
- package/dist/SettingBreadcrumb-O9-PhAFT.js +45 -0
- package/dist/SettingCopyright-DIKsWTuf.js +45 -0
- package/dist/{SettingEnableTransition-BBH52KKl.js → SettingEnableTransition-61O7W00b.js} +19 -19
- package/dist/SettingHome-Sv65TPH8.js +31 -0
- package/dist/SettingMenu-BvwJOUZV.js +111 -0
- package/dist/{SettingMode-BwhhUYlz.js → SettingMode-B8H_eQc8.js} +14 -14
- package/dist/SettingNavSearch-BHsmYBA7.js +31 -0
- package/dist/SettingOther-CyyNnaDX.js +48 -0
- package/dist/SettingPage-B82lW41P.js +22 -0
- package/dist/{SettingTabbar-DuqQVRnz.js → SettingTabbar-Bky2xvH-.js} +58 -58
- package/dist/{SettingThemes-Doo6Ax3u.js → SettingThemes-CkdzS1xt.js} +44 -44
- package/dist/SettingToolbar-CD4qns1J.js +50 -0
- package/dist/SettingTopbar-1shjoe3s.js +49 -0
- package/dist/{SettingWidthMode-VaN0CrBa.js → SettingWidthMode-DlG6lXjA.js} +14 -14
- package/dist/auth-BLGKOyc5.js +4432 -0
- package/dist/built-in/layout-component/composables/useContext.d.ts +1 -0
- package/dist/{change-organization-OjxZhWST.js → change-organization-hsqeSzDu.js} +38 -38
- package/dist/{change-password-B6kO54-d.js → change-password-EtccCDRX.js} +73 -73
- package/dist/{chunk-EsrJ1IKw.js → chunk-CD4vhpVs.js} +3 -3
- package/dist/{components-DVIyiEVI.js → components-DFNyaAb9.js} +1584 -1584
- package/dist/core/request.d.ts +1 -1
- package/dist/core-DJIGzMMM.js +4885 -0
- package/dist/dist-7OjQvlya.js +468 -0
- package/dist/engine-oniguruma-CaNXwGSv.js +243 -0
- package/dist/features/settings/index.d.ts +90 -1
- package/dist/{form-EQ9eL9hv.js → form-C3VHofnN.js} +923 -443
- package/dist/index.js +4418 -3895
- package/dist/{modal-CSWipFvB.js → modal-Bl5xHbxa.js} +15510 -15790
- package/dist/{not-found-DBe-djEg.js → not-found-BCjngLzt.js} +19 -19
- package/dist/{not-permission-DQzWCpOK.js → not-permission-C26vTMvf.js} +19 -19
- package/dist/{profile-DJ3gpjsS.js → profile-BVXIFuBG.js} +3340 -3277
- package/dist/{question-line-BKVlJGUb.js → question-line-BG__Ycfv.js} +2 -2
- package/dist/{reload-DAR8dVYw.js → reload-DHx5Vwus.js} +4 -4
- package/dist/{right-VKgVtqD5.js → right-BxBlFUwj.js} +6 -6
- package/dist/style.css +1 -1
- package/dist/{tree-select-CTjWj5WT.js → tree-select-B8cTcGLa.js} +2575 -2256
- package/dist/watchDiff-CPZFtaOC.js +655 -0
- package/package.json +41 -41
- package/src/built-in/layout-component/components/Header/HeaderMenu.vue +2 -3
- package/src/built-in/layout-component/components/Menu/item.vue +2 -2
- package/src/built-in/layout-component/components/Menu/sub.vue +20 -1
- package/src/built-in/layout-component/composables/useContext.ts +1 -0
- package/src/built-in/layout-component/composables/useLayoutVisible.ts +1 -1
- package/src/built-in/layout-component/provider.ts +5 -0
- package/src/built-in/system-info/components/SystemInfo.vue +68 -66
- package/src/built-in/system-info/index.ts +4 -4
- package/src/core/ctx.ts +2 -2
- package/src/core/request.ts +1 -1
- package/src/features/components/PubinfoApp/index.vue +1 -0
- package/types/auto-imports.d.ts +63 -63
- package/types/components.d.ts +45 -1
- package/dist/HSlideover-Bc6OHPHe.js +0 -1695
- package/dist/HeaderFullMenu-BRhGliRJ.js +0 -6
- package/dist/HeaderFullMenu-DCF-gTCZ.js +0 -249
- package/dist/HeaderThinMenu-B_7vLcQX.js +0 -6
- package/dist/HeaderThinMenu-PA12XAvb.js +0 -437
- package/dist/PreferencesContent-cll4nwwl.js +0 -695
- package/dist/SettingBreadcrumb-BvSc7VUo.js +0 -45
- package/dist/SettingCopyright-DcWLKM5d.js +0 -45
- package/dist/SettingHome-Cd43oJmB.js +0 -31
- package/dist/SettingMenu-CJsN4F1l.js +0 -111
- package/dist/SettingNavSearch-BhHUWem3.js +0 -31
- package/dist/SettingOther-CDY0jSVT.js +0 -48
- package/dist/SettingPage-B0WNvUlj.js +0 -22
- package/dist/SettingToolbar-CHV_dVJ9.js +0 -50
- package/dist/SettingTopbar-CF1K_XIt.js +0 -49
- package/dist/auth-CPSkJwBz.js +0 -3968
- package/dist/core-Bg2PEcZK.js +0 -4884
- package/dist/dist-DAb-7mqe.js +0 -468
- package/dist/engine-oniguruma-CUfGsBrF.js +0 -243
- package/dist/overlayscrollbars-vue-BOGU2FK-.js +0 -1436
- package/dist/pick-C42gkI1h.js +0 -10
- package/dist/watchDiff-C4eGkl9e.js +0 -397
- /package/dist/{_plugin-vue_export-helper-DaPiLSxE.js → _plugin-vue_export-helper-sUTDUeGO.js} +0 -0
- /package/dist/{json-S7wVLDnW.js → json-Bu_Zprin.js} +0 -0
- /package/dist/{useContext-D6pJCZez.js → useContext-DLtu9F7E.js} +0 -0
- /package/dist/{vitesse-dark-BsnBIHGG.js → vitesse-dark-CTe40QT_.js} +0 -0
- /package/dist/{vitesse-light-Cs_6DF7j.js → vitesse-light-BWXC_WeB.js} +0 -0
- /package/dist/{wasm-EvDQvzqp.js → wasm-2zDVqo-C.js} +0 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pubinfo/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.1.
|
|
4
|
+
"version": "2.1.11",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -27,74 +27,74 @@
|
|
|
27
27
|
"node": "^20.19.0 || >=22.12.0"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|
|
30
|
-
"alova": "^3.
|
|
30
|
+
"alova": "^3.5.0",
|
|
31
31
|
"pinia": "^3.0.4",
|
|
32
|
-
"vue": "^3.5.
|
|
33
|
-
"vue-router": "^
|
|
34
|
-
"@pubinfo/config": "2.1.
|
|
35
|
-
"@pubinfo/devtools": "2.1.
|
|
36
|
-
"@pubinfo/vite": "2.1.
|
|
32
|
+
"vue": "^3.5.28",
|
|
33
|
+
"vue-router": "^5.0.2",
|
|
34
|
+
"@pubinfo/config": "2.1.11",
|
|
35
|
+
"@pubinfo/devtools": "2.1.11",
|
|
36
|
+
"@pubinfo/vite": "2.1.11"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@alova/adapter-axios": "^2.0.
|
|
40
|
-
"@alova/shared": "^1.3.
|
|
39
|
+
"@alova/adapter-axios": "^2.0.17",
|
|
40
|
+
"@alova/shared": "^1.3.2",
|
|
41
41
|
"@ant-design/icons-vue": "^7.0.1",
|
|
42
42
|
"@headlessui/vue": "^1.7.23",
|
|
43
|
-
"@imengyu/vue3-context-menu": "^1.5.
|
|
44
|
-
"@pubinfo/pro-components": "^1.8.
|
|
45
|
-
"@unocss/reset": "^66.
|
|
46
|
-
"@vueuse/core": "^14.1
|
|
47
|
-
"@vueuse/integrations": "^14.1
|
|
43
|
+
"@imengyu/vue3-context-menu": "^1.5.4",
|
|
44
|
+
"@pubinfo/pro-components": "^1.8.2",
|
|
45
|
+
"@unocss/reset": "^66.6.0",
|
|
46
|
+
"@vueuse/core": "^14.2.1",
|
|
47
|
+
"@vueuse/integrations": "^14.2.1",
|
|
48
48
|
"ant-design-vue": "^4.2.6",
|
|
49
|
-
"axios": "^1.
|
|
49
|
+
"axios": "^1.13.5",
|
|
50
50
|
"floating-vue": "5.2.2",
|
|
51
|
-
"hookable": "^
|
|
52
|
-
"hotkeys-js": "^
|
|
53
|
-
"jsencrypt": "^3.
|
|
54
|
-
"lodash-es": "^4.17.
|
|
51
|
+
"hookable": "^6.0.1",
|
|
52
|
+
"hotkeys-js": "^4.0.0",
|
|
53
|
+
"jsencrypt": "^3.5.4",
|
|
54
|
+
"lodash-es": "^4.17.23",
|
|
55
55
|
"md5": "^2.3.0",
|
|
56
56
|
"mitt": "^3.0.1",
|
|
57
57
|
"nprogress": "^0.2.0",
|
|
58
|
-
"overlayscrollbars": "^2.
|
|
58
|
+
"overlayscrollbars": "^2.14.0",
|
|
59
59
|
"overlayscrollbars-vue": "^0.5.9",
|
|
60
60
|
"path-browserify": "^1.0.1",
|
|
61
|
-
"path-to-regexp": "^8.
|
|
61
|
+
"path-to-regexp": "^8.3.0",
|
|
62
62
|
"sortablejs": "^1.15.6",
|
|
63
|
-
"unctx": "^2.
|
|
63
|
+
"unctx": "^2.5.0",
|
|
64
64
|
"vue-m-message": "^4.0.2",
|
|
65
65
|
"zxcvbn": "^4.4.2",
|
|
66
|
-
"@pubinfo/shared": "2.1.
|
|
66
|
+
"@pubinfo/shared": "2.1.11"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@alova/mock": "^2.0.
|
|
70
|
-
"@iconify/json": "^2.2.
|
|
69
|
+
"@alova/mock": "^2.0.18",
|
|
70
|
+
"@iconify/json": "^2.2.437",
|
|
71
71
|
"@iconify/vue": "^5.0.0",
|
|
72
72
|
"@pubinfo/openapi": "^0.9.1",
|
|
73
73
|
"@pubinfo/preset-openapi": "^0.9.1",
|
|
74
74
|
"@types/lodash-es": "^4.17.12",
|
|
75
|
-
"@types/md5": "^2.3.
|
|
75
|
+
"@types/md5": "^2.3.6",
|
|
76
76
|
"@types/nprogress": "^0.2.3",
|
|
77
77
|
"@types/path-browserify": "^1.0.3",
|
|
78
|
-
"@types/sortablejs": "^1.15.
|
|
78
|
+
"@types/sortablejs": "^1.15.9",
|
|
79
79
|
"@types/zxcvbn": "^4.4.5",
|
|
80
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
81
|
-
"@vitejs/plugin-vue-jsx": "^5.1.
|
|
82
|
-
"alova": "^3.
|
|
80
|
+
"@vitejs/plugin-vue": "^6.0.4",
|
|
81
|
+
"@vitejs/plugin-vue-jsx": "^5.1.4",
|
|
82
|
+
"alova": "^3.5.0",
|
|
83
83
|
"deep-pick-omit": "^1.2.1",
|
|
84
84
|
"destr": "^2.0.5",
|
|
85
85
|
"pinia": "^3.0.4",
|
|
86
|
-
"shiki": "^3.
|
|
87
|
-
"type-fest": "^4.
|
|
88
|
-
"unocss": "^66.
|
|
89
|
-
"unplugin-auto-import": "^
|
|
90
|
-
"unplugin-icons": "^
|
|
91
|
-
"unplugin-vue-components": "^
|
|
92
|
-
"vite": "^8.0.0-beta.
|
|
86
|
+
"shiki": "^3.22.0",
|
|
87
|
+
"type-fest": "^5.4.4",
|
|
88
|
+
"unocss": "^66.6.0",
|
|
89
|
+
"unplugin-auto-import": "^21.0.0",
|
|
90
|
+
"unplugin-icons": "^23.0.1",
|
|
91
|
+
"unplugin-vue-components": "^31.0.0",
|
|
92
|
+
"vite": "^8.0.0-beta.13",
|
|
93
93
|
"vite-plugin-dts": "^4.5.4",
|
|
94
|
-
"vue": "^3.5.
|
|
95
|
-
"vue-router": "^
|
|
96
|
-
"@pubinfo/
|
|
97
|
-
"@pubinfo/
|
|
94
|
+
"vue": "^3.5.28",
|
|
95
|
+
"vue-router": "^5.0.2",
|
|
96
|
+
"@pubinfo/config": "2.1.11",
|
|
97
|
+
"@pubinfo/vite": "2.1.11"
|
|
98
98
|
},
|
|
99
99
|
"scripts": {
|
|
100
100
|
"dev": "vite build -w -m watch",
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { useContext } from '../../composables/useContext';
|
|
3
|
+
import HeaderFullMenu from './HeaderFullMenu/index.vue';
|
|
4
|
+
import HeaderThinMenu from './HeaderThinMenu.vue';
|
|
3
5
|
|
|
4
6
|
defineOptions({
|
|
5
7
|
name: 'LayoutHeaderMenu',
|
|
6
8
|
});
|
|
7
9
|
|
|
8
|
-
const HeaderFullMenu = defineAsyncComponent(() => import('./HeaderFullMenu/index.vue'));
|
|
9
|
-
const HeaderThinMenu = defineAsyncComponent(() => import('./HeaderThinMenu.vue'));
|
|
10
|
-
|
|
11
10
|
const { settingsStore } = useContext();
|
|
12
11
|
</script>
|
|
13
12
|
|
|
@@ -18,7 +18,7 @@ const props = withDefaults(
|
|
|
18
18
|
);
|
|
19
19
|
|
|
20
20
|
const rootMenu = inject(rootMenuInjectionKey)!;
|
|
21
|
-
const { generateTitle } = useContext();
|
|
21
|
+
const { generateTitle, indentSize } = useContext();
|
|
22
22
|
|
|
23
23
|
const itemRef = ref<HTMLElement>();
|
|
24
24
|
|
|
@@ -70,7 +70,7 @@ const safeIconColor = computed<string | undefined>(() => iconOptions.value?.icon
|
|
|
70
70
|
// 缩进样式
|
|
71
71
|
const indentStyle = computed(() => {
|
|
72
72
|
return !rootMenu.isMenuPopup
|
|
73
|
-
? `padding-left: ${
|
|
73
|
+
? `padding-left: ${indentSize * (props.level ?? 0)}px`
|
|
74
74
|
: '';
|
|
75
75
|
});
|
|
76
76
|
|
|
@@ -193,8 +193,9 @@ function handleMouseleave() {
|
|
|
193
193
|
/>
|
|
194
194
|
<Teleport v-if="hasChildren" to="body" :disabled="!rootMenu.isMenuPopup">
|
|
195
195
|
<Transition v-bind="transitionClass" v-on="transitionEvent">
|
|
196
|
+
<!-- Popup submenu: use OverlayScrollbars so it can scroll independently -->
|
|
196
197
|
<OverlayScrollbarsComponent
|
|
197
|
-
v-if="opened"
|
|
198
|
+
v-if="opened && rootMenu.isMenuPopup"
|
|
198
199
|
ref="subMenuRef"
|
|
199
200
|
:options="{ scrollbars: { visibility: 'hidden' } }"
|
|
200
201
|
defer
|
|
@@ -215,6 +216,24 @@ function handleMouseleave() {
|
|
|
215
216
|
/>
|
|
216
217
|
</template>
|
|
217
218
|
</OverlayScrollbarsComponent>
|
|
219
|
+
|
|
220
|
+
<!-- Inline submenu (non-popup): render as plain container to allow parent scroll -->
|
|
221
|
+
<div
|
|
222
|
+
v-else-if="opened"
|
|
223
|
+
class="sub-menu"
|
|
224
|
+
:class="{
|
|
225
|
+
'rounded-2 py-1': rootMenu.props.rounded && !rootMenu.isMenuPopup,
|
|
226
|
+
}"
|
|
227
|
+
>
|
|
228
|
+
<template v-for="item in menu.children" :key="item.path ?? JSON.stringify(item)">
|
|
229
|
+
<SubMenu
|
|
230
|
+
v-if="item.meta?.sidebar !== false"
|
|
231
|
+
:unique-key="[...uniqueKey, item.path ?? JSON.stringify(item)]"
|
|
232
|
+
:menu="item"
|
|
233
|
+
:level="level + 1"
|
|
234
|
+
/>
|
|
235
|
+
</template>
|
|
236
|
+
</div>
|
|
218
237
|
</Transition>
|
|
219
238
|
</Teleport>
|
|
220
239
|
</template>
|
|
@@ -20,7 +20,7 @@ export function useLayoutVisible(_props?: LayoutProps) {
|
|
|
20
20
|
|
|
21
21
|
const show = computed(() => {
|
|
22
22
|
// 应用级 meta.layout 配置
|
|
23
|
-
const appMetaData: RequiredDeep<RouterMetaRawBaseOptions['layout']
|
|
23
|
+
const appMetaData: RequiredDeep<NonNullable<RouterMetaRawBaseOptions['layout']>> = {
|
|
24
24
|
header: true,
|
|
25
25
|
sidebar: true,
|
|
26
26
|
tabs: true,
|
|
@@ -24,6 +24,10 @@ export const Provider = defineComponent({
|
|
|
24
24
|
type: Boolean,
|
|
25
25
|
default: false,
|
|
26
26
|
},
|
|
27
|
+
indentSize: {
|
|
28
|
+
type: Number,
|
|
29
|
+
default: 32,
|
|
30
|
+
},
|
|
27
31
|
},
|
|
28
32
|
setup(props, { slots }) {
|
|
29
33
|
const settingsStore = useSettingsStore();
|
|
@@ -49,6 +53,7 @@ export const Provider = defineComponent({
|
|
|
49
53
|
|
|
50
54
|
appTitle: props.appTitle,
|
|
51
55
|
isDev: props.isDev,
|
|
56
|
+
indentSize: props.indentSize,
|
|
52
57
|
generateTitle,
|
|
53
58
|
});
|
|
54
59
|
|
|
@@ -10,74 +10,76 @@ hotkeys('alt+i', () => toggle());
|
|
|
10
10
|
</script>
|
|
11
11
|
|
|
12
12
|
<template>
|
|
13
|
-
<
|
|
14
|
-
<
|
|
15
|
-
<div class="
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
<Teleport to="body">
|
|
14
|
+
<HSlideover v-model="visible" title="系统信息">
|
|
15
|
+
<div class="text-dark dark:text-light">
|
|
16
|
+
<div class="px-4">
|
|
17
|
+
<h2 class="m-0 text-lg font-bold">
|
|
18
|
+
最后编译时间
|
|
19
|
+
</h2>
|
|
20
|
+
<div class="my-4 text-center text-lg font-sans">
|
|
21
|
+
{{ buildTime }}
|
|
22
|
+
</div>
|
|
21
23
|
</div>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
</
|
|
35
|
-
</
|
|
36
|
-
</
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
</div>
|
|
47
|
-
<div class="font-sans">
|
|
48
|
-
{{ val }}
|
|
49
|
-
</div>
|
|
50
|
-
</li>
|
|
51
|
-
</ul>
|
|
52
|
-
</div>
|
|
53
|
-
<div v-if="git" class="px-4">
|
|
54
|
-
<h2 class="m-0 text-lg font-bold">
|
|
55
|
-
Git 信息
|
|
56
|
-
</h2>
|
|
57
|
-
<ul class="list-none pl-0 text-sm">
|
|
58
|
-
<li class="flex items-center justify-between rounded px-2 py-1.5 hover:bg-stone-1 dark:hover:bg-stone-9">
|
|
59
|
-
<div class="font-bold">
|
|
60
|
-
编译分支
|
|
61
|
-
</div>
|
|
62
|
-
<div class="font-sans">
|
|
63
|
-
{{ git.branch }}
|
|
64
|
-
</div>
|
|
65
|
-
</li>
|
|
66
|
-
<li class="flex items-center justify-between rounded px-2 py-1.5 hover:bg-stone-1 dark:hover:bg-stone-9">
|
|
67
|
-
<div class="font-bold">
|
|
68
|
-
最新提交提交哈希
|
|
69
|
-
</div>
|
|
70
|
-
<a-tooltip>
|
|
71
|
-
<template #title>
|
|
72
|
-
{{ git.commit }}
|
|
73
|
-
</template>
|
|
24
|
+
<div class="px-4">
|
|
25
|
+
<h2 class="m-0 text-lg font-bold">
|
|
26
|
+
生产环境依赖
|
|
27
|
+
</h2>
|
|
28
|
+
<ul class="list-none pl-0 text-sm">
|
|
29
|
+
<li v-for="(val, key) in (pkg.dependencies as object)" :key="key" class="flex items-center justify-between rounded px-2 py-1.5 hover:bg-stone-1 dark:hover:bg-stone-9">
|
|
30
|
+
<div class="font-bold">
|
|
31
|
+
{{ key }}
|
|
32
|
+
</div>
|
|
33
|
+
<div class="font-sans">
|
|
34
|
+
{{ val }}
|
|
35
|
+
</div>
|
|
36
|
+
</li>
|
|
37
|
+
</ul>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="px-4">
|
|
40
|
+
<h2 class="m-0 text-lg font-bold">
|
|
41
|
+
开发环境依赖
|
|
42
|
+
</h2>
|
|
43
|
+
<ul class="list-none pl-0 text-sm">
|
|
44
|
+
<li v-for="(val, key) in (pkg.devDependencies as object)" :key="key" class="flex items-center justify-between rounded px-2 py-1.5 hover:bg-stone-1 dark:hover:bg-stone-9">
|
|
45
|
+
<div class="font-bold">
|
|
46
|
+
{{ key }}
|
|
47
|
+
</div>
|
|
74
48
|
<div class="font-sans">
|
|
75
|
-
{{
|
|
49
|
+
{{ val }}
|
|
50
|
+
</div>
|
|
51
|
+
</li>
|
|
52
|
+
</ul>
|
|
53
|
+
</div>
|
|
54
|
+
<div v-if="git" class="px-4">
|
|
55
|
+
<h2 class="m-0 text-lg font-bold">
|
|
56
|
+
Git 信息
|
|
57
|
+
</h2>
|
|
58
|
+
<ul class="list-none pl-0 text-sm">
|
|
59
|
+
<li class="flex items-center justify-between rounded px-2 py-1.5 hover:bg-stone-1 dark:hover:bg-stone-9">
|
|
60
|
+
<div class="font-bold">
|
|
61
|
+
编译分支
|
|
76
62
|
</div>
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
63
|
+
<div class="font-sans">
|
|
64
|
+
{{ git.branch }}
|
|
65
|
+
</div>
|
|
66
|
+
</li>
|
|
67
|
+
<li class="flex items-center justify-between rounded px-2 py-1.5 hover:bg-stone-1 dark:hover:bg-stone-9">
|
|
68
|
+
<div class="font-bold">
|
|
69
|
+
最新提交提交哈希
|
|
70
|
+
</div>
|
|
71
|
+
<a-tooltip>
|
|
72
|
+
<template #title>
|
|
73
|
+
{{ git.commit }}
|
|
74
|
+
</template>
|
|
75
|
+
<div class="font-sans">
|
|
76
|
+
{{ git.commitShort }}
|
|
77
|
+
</div>
|
|
78
|
+
</a-tooltip>
|
|
79
|
+
</li>
|
|
80
|
+
</ul>
|
|
81
|
+
</div>
|
|
80
82
|
</div>
|
|
81
|
-
</
|
|
82
|
-
</
|
|
83
|
+
</HSlideover>
|
|
84
|
+
</Teleport>
|
|
83
85
|
</template>
|
|
@@ -7,10 +7,10 @@ import SystemInfoComponent from './components/SystemInfo.vue';
|
|
|
7
7
|
export function SystemInfo(): ModuleOptions {
|
|
8
8
|
return {
|
|
9
9
|
name: 'built-in:system-info',
|
|
10
|
-
setup() {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
setup(ctx) {
|
|
11
|
+
// 使用 Teleport 将组件渲染到 body,而不是创建新的 Vue 应用
|
|
12
|
+
// 这样可以确保 DevTools 中只显示一个应用
|
|
13
|
+
ctx.app.component('SystemInfoPanel', SystemInfoComponent);
|
|
14
14
|
},
|
|
15
15
|
};
|
|
16
16
|
}
|
package/src/core/ctx.ts
CHANGED
|
@@ -18,7 +18,7 @@ export async function callHookAsync<T>(hookname: string, data: T) {
|
|
|
18
18
|
return res as T;
|
|
19
19
|
},
|
|
20
20
|
hookname,
|
|
21
|
-
data,
|
|
21
|
+
[data],
|
|
22
22
|
);
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -41,6 +41,6 @@ export function callHookSync<T>(hookname: string, data: T) {
|
|
|
41
41
|
return res;
|
|
42
42
|
},
|
|
43
43
|
hookname,
|
|
44
|
-
data,
|
|
44
|
+
[data],
|
|
45
45
|
);
|
|
46
46
|
}
|
package/src/core/request.ts
CHANGED
|
@@ -49,7 +49,7 @@ export function createRequest(options: RequestOptions = {}) {
|
|
|
49
49
|
return _response;
|
|
50
50
|
},
|
|
51
51
|
'http:response:onSuccess',
|
|
52
|
-
response,
|
|
52
|
+
[response],
|
|
53
53
|
) as AxiosResponse<any, any>;
|
|
54
54
|
|
|
55
55
|
return stopped ? res : (responded?.onSuccess?.(res, method, () => stopped = true) ?? res);
|
package/types/auto-imports.d.ts
CHANGED
|
@@ -6,69 +6,69 @@
|
|
|
6
6
|
// biome-ignore lint: disable
|
|
7
7
|
export {}
|
|
8
8
|
declare global {
|
|
9
|
-
const EffectScope: typeof import('vue')
|
|
10
|
-
const computed: typeof import('vue')
|
|
11
|
-
const createApp: typeof import('vue')
|
|
12
|
-
const customRef: typeof import('vue')
|
|
13
|
-
const defineAsyncComponent: typeof import('vue')
|
|
14
|
-
const defineComponent: typeof import('vue')
|
|
15
|
-
const effectScope: typeof import('vue')
|
|
16
|
-
const getCurrentInstance: typeof import('vue')
|
|
17
|
-
const getCurrentScope: typeof import('vue')
|
|
18
|
-
const getCurrentWatcher: typeof import('vue')
|
|
19
|
-
const h: typeof import('vue')
|
|
20
|
-
const inject: typeof import('vue')
|
|
21
|
-
const isProxy: typeof import('vue')
|
|
22
|
-
const isReactive: typeof import('vue')
|
|
23
|
-
const isReadonly: typeof import('vue')
|
|
24
|
-
const isRef: typeof import('vue')
|
|
25
|
-
const isShallow: typeof import('vue')
|
|
26
|
-
const markRaw: typeof import('vue')
|
|
27
|
-
const nextTick: typeof import('vue')
|
|
28
|
-
const onActivated: typeof import('vue')
|
|
29
|
-
const onBeforeMount: typeof import('vue')
|
|
30
|
-
const onBeforeRouteLeave: typeof import('vue-router')
|
|
31
|
-
const onBeforeRouteUpdate: typeof import('vue-router')
|
|
32
|
-
const onBeforeUnmount: typeof import('vue')
|
|
33
|
-
const onBeforeUpdate: typeof import('vue')
|
|
34
|
-
const onDeactivated: typeof import('vue')
|
|
35
|
-
const onErrorCaptured: typeof import('vue')
|
|
36
|
-
const onMounted: typeof import('vue')
|
|
37
|
-
const onRenderTracked: typeof import('vue')
|
|
38
|
-
const onRenderTriggered: typeof import('vue')
|
|
39
|
-
const onScopeDispose: typeof import('vue')
|
|
40
|
-
const onServerPrefetch: typeof import('vue')
|
|
41
|
-
const onUnmounted: typeof import('vue')
|
|
42
|
-
const onUpdated: typeof import('vue')
|
|
43
|
-
const onWatcherCleanup: typeof import('vue')
|
|
44
|
-
const provide: typeof import('vue')
|
|
45
|
-
const reactive: typeof import('vue')
|
|
46
|
-
const readonly: typeof import('vue')
|
|
47
|
-
const ref: typeof import('vue')
|
|
48
|
-
const resolveComponent: typeof import('vue')
|
|
49
|
-
const shallowReactive: typeof import('vue')
|
|
50
|
-
const shallowReadonly: typeof import('vue')
|
|
51
|
-
const shallowRef: typeof import('vue')
|
|
52
|
-
const toRaw: typeof import('vue')
|
|
53
|
-
const toRef: typeof import('vue')
|
|
54
|
-
const toRefs: typeof import('vue')
|
|
55
|
-
const toValue: typeof import('vue')
|
|
56
|
-
const triggerRef: typeof import('vue')
|
|
57
|
-
const unref: typeof import('vue')
|
|
58
|
-
const useAttrs: typeof import('vue')
|
|
59
|
-
const useCssModule: typeof import('vue')
|
|
60
|
-
const useCssVars: typeof import('vue')
|
|
61
|
-
const useId: typeof import('vue')
|
|
62
|
-
const useLink: typeof import('vue-router')
|
|
63
|
-
const useModel: typeof import('vue')
|
|
64
|
-
const useRoute: typeof import('vue-router')
|
|
65
|
-
const useRouter: typeof import('vue-router')
|
|
66
|
-
const useSlots: typeof import('vue')
|
|
67
|
-
const useTemplateRef: typeof import('vue')
|
|
68
|
-
const watch: typeof import('vue')
|
|
69
|
-
const watchEffect: typeof import('vue')
|
|
70
|
-
const watchPostEffect: typeof import('vue')
|
|
71
|
-
const watchSyncEffect: typeof import('vue')
|
|
9
|
+
const EffectScope: typeof import('vue').EffectScope
|
|
10
|
+
const computed: typeof import('vue').computed
|
|
11
|
+
const createApp: typeof import('vue').createApp
|
|
12
|
+
const customRef: typeof import('vue').customRef
|
|
13
|
+
const defineAsyncComponent: typeof import('vue').defineAsyncComponent
|
|
14
|
+
const defineComponent: typeof import('vue').defineComponent
|
|
15
|
+
const effectScope: typeof import('vue').effectScope
|
|
16
|
+
const getCurrentInstance: typeof import('vue').getCurrentInstance
|
|
17
|
+
const getCurrentScope: typeof import('vue').getCurrentScope
|
|
18
|
+
const getCurrentWatcher: typeof import('vue').getCurrentWatcher
|
|
19
|
+
const h: typeof import('vue').h
|
|
20
|
+
const inject: typeof import('vue').inject
|
|
21
|
+
const isProxy: typeof import('vue').isProxy
|
|
22
|
+
const isReactive: typeof import('vue').isReactive
|
|
23
|
+
const isReadonly: typeof import('vue').isReadonly
|
|
24
|
+
const isRef: typeof import('vue').isRef
|
|
25
|
+
const isShallow: typeof import('vue').isShallow
|
|
26
|
+
const markRaw: typeof import('vue').markRaw
|
|
27
|
+
const nextTick: typeof import('vue').nextTick
|
|
28
|
+
const onActivated: typeof import('vue').onActivated
|
|
29
|
+
const onBeforeMount: typeof import('vue').onBeforeMount
|
|
30
|
+
const onBeforeRouteLeave: typeof import('vue-router').onBeforeRouteLeave
|
|
31
|
+
const onBeforeRouteUpdate: typeof import('vue-router').onBeforeRouteUpdate
|
|
32
|
+
const onBeforeUnmount: typeof import('vue').onBeforeUnmount
|
|
33
|
+
const onBeforeUpdate: typeof import('vue').onBeforeUpdate
|
|
34
|
+
const onDeactivated: typeof import('vue').onDeactivated
|
|
35
|
+
const onErrorCaptured: typeof import('vue').onErrorCaptured
|
|
36
|
+
const onMounted: typeof import('vue').onMounted
|
|
37
|
+
const onRenderTracked: typeof import('vue').onRenderTracked
|
|
38
|
+
const onRenderTriggered: typeof import('vue').onRenderTriggered
|
|
39
|
+
const onScopeDispose: typeof import('vue').onScopeDispose
|
|
40
|
+
const onServerPrefetch: typeof import('vue').onServerPrefetch
|
|
41
|
+
const onUnmounted: typeof import('vue').onUnmounted
|
|
42
|
+
const onUpdated: typeof import('vue').onUpdated
|
|
43
|
+
const onWatcherCleanup: typeof import('vue').onWatcherCleanup
|
|
44
|
+
const provide: typeof import('vue').provide
|
|
45
|
+
const reactive: typeof import('vue').reactive
|
|
46
|
+
const readonly: typeof import('vue').readonly
|
|
47
|
+
const ref: typeof import('vue').ref
|
|
48
|
+
const resolveComponent: typeof import('vue').resolveComponent
|
|
49
|
+
const shallowReactive: typeof import('vue').shallowReactive
|
|
50
|
+
const shallowReadonly: typeof import('vue').shallowReadonly
|
|
51
|
+
const shallowRef: typeof import('vue').shallowRef
|
|
52
|
+
const toRaw: typeof import('vue').toRaw
|
|
53
|
+
const toRef: typeof import('vue').toRef
|
|
54
|
+
const toRefs: typeof import('vue').toRefs
|
|
55
|
+
const toValue: typeof import('vue').toValue
|
|
56
|
+
const triggerRef: typeof import('vue').triggerRef
|
|
57
|
+
const unref: typeof import('vue').unref
|
|
58
|
+
const useAttrs: typeof import('vue').useAttrs
|
|
59
|
+
const useCssModule: typeof import('vue').useCssModule
|
|
60
|
+
const useCssVars: typeof import('vue').useCssVars
|
|
61
|
+
const useId: typeof import('vue').useId
|
|
62
|
+
const useLink: typeof import('vue-router').useLink
|
|
63
|
+
const useModel: typeof import('vue').useModel
|
|
64
|
+
const useRoute: typeof import('vue-router').useRoute
|
|
65
|
+
const useRouter: typeof import('vue-router').useRouter
|
|
66
|
+
const useSlots: typeof import('vue').useSlots
|
|
67
|
+
const useTemplateRef: typeof import('vue').useTemplateRef
|
|
68
|
+
const watch: typeof import('vue').watch
|
|
69
|
+
const watchEffect: typeof import('vue').watchEffect
|
|
70
|
+
const watchPostEffect: typeof import('vue').watchPostEffect
|
|
71
|
+
const watchSyncEffect: typeof import('vue').watchSyncEffect
|
|
72
72
|
}
|
|
73
73
|
// for type re-export
|
|
74
74
|
declare global {
|
package/types/components.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
// @ts-nocheck
|
|
3
|
+
// biome-ignore lint: disable
|
|
4
|
+
// oxlint-disable
|
|
5
|
+
// ------
|
|
3
6
|
// Generated by unplugin-vue-components
|
|
4
7
|
// Read more: https://github.com/vuejs/core/pull/3399
|
|
5
|
-
|
|
8
|
+
import { GlobalComponents } from 'vue'
|
|
9
|
+
|
|
6
10
|
export {}
|
|
7
11
|
|
|
8
12
|
/* prettier-ignore */
|
|
@@ -46,3 +50,43 @@ declare module 'vue' {
|
|
|
46
50
|
RouterView: typeof import('vue-router')['RouterView']
|
|
47
51
|
}
|
|
48
52
|
}
|
|
53
|
+
|
|
54
|
+
// For TSX support
|
|
55
|
+
declare global {
|
|
56
|
+
const AAlert: typeof import('ant-design-vue/es')['Alert']
|
|
57
|
+
const AButton: typeof import('ant-design-vue/es')['Button']
|
|
58
|
+
const ACard: typeof import('ant-design-vue/es')['Card']
|
|
59
|
+
const ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
|
|
60
|
+
const ADivider: typeof import('ant-design-vue/es')['Divider']
|
|
61
|
+
const AForm: typeof import('ant-design-vue/es')['Form']
|
|
62
|
+
const AFormItem: typeof import('ant-design-vue/es')['FormItem']
|
|
63
|
+
const AInput: typeof import('ant-design-vue/es')['Input']
|
|
64
|
+
const AInputNumber: typeof import('ant-design-vue/es')['InputNumber']
|
|
65
|
+
const AInputPassword: typeof import('ant-design-vue/es')['InputPassword']
|
|
66
|
+
const AModal: typeof import('ant-design-vue/es')['Modal']
|
|
67
|
+
const ARadioButton: typeof import('ant-design-vue/es')['RadioButton']
|
|
68
|
+
const ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
|
|
69
|
+
const ASelect: typeof import('ant-design-vue/es')['Select']
|
|
70
|
+
const ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
|
|
71
|
+
const ATag: typeof import('ant-design-vue/es')['Tag']
|
|
72
|
+
const ATooltip: typeof import('ant-design-vue/es')['Tooltip']
|
|
73
|
+
const ATreeSelect: typeof import('ant-design-vue/es')['TreeSelect']
|
|
74
|
+
const DeleteOutlined: typeof import('@ant-design/icons-vue')['DeleteOutlined']
|
|
75
|
+
const HBadge: typeof import('./../src/built-in/layout-component/components/ui/HBadge.vue')['default']
|
|
76
|
+
const HButton: typeof import('./../src/built-in/layout-component/components/ui/HButton.vue')['default']
|
|
77
|
+
const HCheckList: typeof import('./../src/built-in/layout-component/components/ui/HCheckList.vue')['default']
|
|
78
|
+
const HDialog: typeof import('./../src/built-in/layout-component/components/ui/HDialog.vue')['default']
|
|
79
|
+
const HDivider: typeof import('./../src/built-in/layout-component/components/ui/HDivider.vue')['default']
|
|
80
|
+
const HDropdown: typeof import('./../src/built-in/layout-component/components/ui/HDropdown.vue')['default']
|
|
81
|
+
const HDropdownMenu: typeof import('./../src/built-in/layout-component/components/ui/HDropdownMenu.vue')['default']
|
|
82
|
+
const HDropdownTree: typeof import('./../src/built-in/layout-component/components/ui/HDropdownTree.vue')['default']
|
|
83
|
+
const HInput: typeof import('./../src/built-in/layout-component/components/ui/HInput.vue')['default']
|
|
84
|
+
const HKbd: typeof import('./../src/built-in/layout-component/components/ui/HKbd.vue')['default']
|
|
85
|
+
const HSelect: typeof import('./../src/built-in/layout-component/components/ui/HSelect.vue')['default']
|
|
86
|
+
const HSlideover: typeof import('./../src/built-in/layout-component/components/ui/HSlideover.vue')['default']
|
|
87
|
+
const HTabList: typeof import('./../src/built-in/layout-component/components/ui/HTabList.vue')['default']
|
|
88
|
+
const HToggle: typeof import('./../src/built-in/layout-component/components/ui/HToggle.vue')['default']
|
|
89
|
+
const HTooltip: typeof import('./../src/built-in/layout-component/components/ui/HTooltip.vue')['default']
|
|
90
|
+
const RouterLink: typeof import('vue-router')['RouterLink']
|
|
91
|
+
const RouterView: typeof import('vue-router')['RouterView']
|
|
92
|
+
}
|