@pubinfo/core 2.0.0-beta.31 → 2.0.0-beta.32
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-C1dyZ-8E.js → AppSetting-DhcdApoo.js} +17 -17
- package/dist/{HCheckList.vue_vue_type_script_setup_true_lang-B3wESRn7.js → HCheckList.vue_vue_type_script_setup_true_lang-Bi9jyf-Y.js} +2 -2
- package/dist/HDivider.vue_vue_type_script_setup_true_lang-DIHR-9Yv.js +20 -0
- package/dist/HToggle-Di3WNnzE.js +34 -0
- package/dist/{PreferencesContent-DgycKl9e.js → PreferencesContent-BdSTTSM-.js} +6 -6
- package/dist/{SettingBreadcrumb-BlgX0ZNE.js → SettingBreadcrumb-ChQx96br.js} +8 -8
- package/dist/{SettingCopyright-FmqadL1w.js → SettingCopyright-CkMab5VK.js} +8 -8
- package/dist/{SettingEnableTransition-dzMgw8cN.js → SettingEnableTransition-BSXU87vT.js} +15 -15
- package/dist/{SettingHome-BwlXsTTt.js → SettingHome-DwioPezC.js} +13 -13
- package/dist/{SettingMenu-B5tHMS24.js → SettingMenu-yvKu7Yoq.js} +25 -25
- package/dist/{SettingMode-Bh0mvh66.js → SettingMode-C99ADNad.js} +6 -6
- package/dist/{SettingNavSearch-D4g24uwl.js → SettingNavSearch-mURLLetZ.js} +8 -8
- package/dist/{SettingOther-DwTtu6As.js → SettingOther-BGoSdp7a.js} +9 -9
- package/dist/{SettingPage-cDQXtwcG.js → SettingPage-Wwy5PtzC.js} +7 -7
- package/dist/{SettingTabbar-m8X7jEJH.js → SettingTabbar-C2ya4r4U.js} +9 -9
- package/dist/{SettingThemes-CX9ISeD_.js → SettingThemes-7oYUooGR.js} +27 -27
- package/dist/{SettingToolbar-ByLjBezg.js → SettingToolbar-A6OiGfAD.js} +5 -5
- package/dist/{SettingTopbar-o8wBZolp.js → SettingTopbar-GDEPltxm.js} +9 -9
- package/dist/{SettingWidthMode-Ux60mKiv.js → SettingWidthMode-qwkmTFIK.js} +15 -15
- package/dist/{TopThinMode-17GrCZdo.js → TopThinMode-BkmPN66X.js} +1 -1
- package/dist/{_...all_-6l5FWUkL.js → _...all_-CdjdWhUr.js} +5 -5
- package/dist/assets/styles/index.d.ts +3 -3
- package/dist/{colors-DiWJrScm.js → colors-7rGvqeKK.js} +1 -1
- package/dist/{index-CfasTv4x.js → index-BC-gcL8e.js} +4 -4
- package/dist/{index-Md7zV10q.js → index-C-6XxK2D.js} +5 -5
- package/dist/{index-bsi-FZDt.js → index-CgLD0zqO.js} +169 -169
- package/dist/{index-BmMbAV1Y.js → index-CtyzB2cq.js} +13 -13
- package/dist/{index-Ckgil96Y.js → index-Cw1uN5m-.js} +2 -2
- package/dist/{index-Be7jJtXg.js → index-DVUDANdM.js} +5 -5
- package/dist/{index-Dzwhw1L9.js → index-Dpq4uqWd.js} +22 -22
- package/dist/{index-DgpcBgWl.js → index-DuoLZ3r3.js} +4394 -4294
- package/dist/{index-De_ME_Ws.js → index-sYaQXYQC.js} +2 -2
- package/dist/index.js +4 -4
- package/dist/{index.vue_vue_type_style_index_0_scoped_fa1c6ee4_lang-B3Eieo0k.js → index.vue_vue_type_style_index_0_scoped_051f4e99_lang-CuU-JtjC.js} +870 -856
- package/dist/interface.d.ts +12 -0
- package/dist/layout/ui-kit/HDialog.vue.d.ts +1 -1
- package/dist/layout/ui-kit/HSlideover.vue.d.ts +1 -1
- package/dist/layout/ui-kit/HTooltip.vue.d.ts +1 -1
- package/dist/{menu-CC5544p-.js → menu-BL6hH6OM.js} +1862 -1856
- package/dist/{pick-CJo2YiT-.js → pick-CAmKymZJ.js} +1 -1
- package/dist/request.js +34 -32
- package/dist/stores/plugin/persist.d.ts +2 -2
- package/dist/style.css +3 -3
- package/package.json +25 -26
- package/src/assets/styles/globals.css +188 -0
- package/src/assets/styles/index.ts +3 -3
- package/src/assets/styles/nprogress.css +68 -0
- package/src/assets/styles/rbac.css +51 -0
- package/src/assets/styles/resources/utils.css +53 -0
- package/src/assets/styles/resources/variables.css +5 -0
- package/src/components/NotAllowed/index.vue +4 -6
- package/src/components/PassStrengthValidator/index.vue +33 -48
- package/src/components/PassStrengthValidator/rule.vue +13 -25
- package/src/components/PubinfoIcon/index.vue +4 -8
- package/src/composables/watchDiff.ts +1 -1
- package/src/create.ts +10 -3
- package/src/interface.ts +19 -0
- package/src/layout/Layout.vue +113 -161
- package/src/layout/components/Content/IframeView.vue +1 -2
- package/src/layout/components/Content/LinkView.vue +2 -2
- package/src/layout/components/Content/index.vue +1 -2
- package/src/layout/components/Copyright/index.vue +7 -8
- package/src/layout/components/Header/TopMode/More.vue +24 -32
- package/src/layout/components/Header/TopMode/NotCursor.vue +20 -29
- package/src/layout/components/Header/TopMode/index.vue +1 -1
- package/src/layout/components/Header/index.vue +118 -206
- package/src/layout/components/Logo/index.vue +4 -19
- package/src/layout/components/Menu/item.vue +16 -25
- package/src/layout/components/SettingBar/AppSetting.vue +11 -11
- package/src/layout/components/SettingBar/components/DayNightToggle.vue +26 -120
- package/src/layout/components/SettingBar/components/SettingEnableTransition.vue +111 -136
- package/src/layout/components/SettingBar/components/SettingMode.vue +78 -88
- package/src/layout/components/SettingBar/components/SettingThemes.vue +48 -85
- package/src/layout/components/SettingBar/components/SettingWidthMode.vue +63 -71
- package/src/layout/components/SettingBar/index.vue +29 -62
- package/src/layout/components/Sidebar/MainSidebar.vue +81 -126
- package/src/layout/components/Sidebar/SubSidebar.vue +50 -59
- package/src/layout/components/Tools/Breadcrumb/index.vue +6 -12
- package/src/layout/components/Tools/DayNightSwitch.vue +40 -63
- package/src/layout/components/Tools/Preferences/PreferencesContent.vue +210 -277
- package/src/layout/components/Tools/Search.vue +5 -5
- package/src/layout/components/Tools/index.vue +1 -1
- package/src/layout/components/Topbar/Tabbar/MoreAction.vue +98 -145
- package/src/layout/components/Topbar/Tabbar/index.vue +259 -395
- package/src/layout/components/Topbar/Toolbar/Favorites.vue +4 -4
- package/src/layout/components/Topbar/Toolbar/index.vue +39 -56
- package/src/layout/components/Topbar/index.vue +16 -19
- package/src/layout/composables/useContext.ts +1 -1
- package/src/layout/composables/useMenu.ts +1 -1
- package/src/layout/composables/useTabbar.ts +1 -1
- package/src/layout/composables/useTitle.ts +1 -1
- package/src/layout/provider.ts +1 -1
- package/src/layout/ui-kit/HDialog.vue +1 -1
- package/src/layout/ui-kit/HDivider.vue +6 -35
- package/src/layout/ui-kit/HSlideover.vue +1 -1
- package/src/layout/ui-kit/HToggle.vue +49 -93
- package/src/layout/ui-kit/HTooltip.vue +1 -1
- package/src/locales/index.ts +1 -1
- package/src/pages/personal/profile/index.vue +1 -1
- package/src/pages/system/[...all].vue +4 -6
- package/src/pages/system/change-organization/index.vue +23 -37
- package/src/pages/system/change-password/components/ChangePasswordForm/index.vue +1 -1
- package/src/pages/system/change-password/index.vue +16 -29
- package/src/pages/system/not-permission/index.vue +4 -6
- package/src/route/guard/basic.ts +1 -1
- package/src/route/routes.ts +1 -1
- package/src/stores/modules/favorites.ts +1 -1
- package/src/stores/modules/menu.ts +1 -1
- package/src/stores/modules/route.ts +2 -2
- package/src/stores/modules/settings.ts +7 -7
- package/src/stores/modules/user.ts +2 -2
- package/src/stores/plugin/persist.ts +3 -3
- package/src/stores/plugin/sideEffect/tabbarStorage.ts +1 -1
- package/src/utils/crypto.ts +1 -1
- package/types/auto-imports.d.ts +1 -1
- package/types/components.d.ts +1 -0
- package/types/vue-router.d.ts +8 -8
- package/dist/HDivider-DgXBhPr0.js +0 -21
- package/dist/HToggle-Cd71WKvG.js +0 -34
- package/src/assets/styles/globals.scss +0 -189
- package/src/assets/styles/nprogress.scss +0 -63
- package/src/assets/styles/rbac.scss +0 -61
- package/src/assets/styles/resources/utils.scss +0 -53
- package/src/assets/styles/resources/variables.scss +0 -6
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pubinfo/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.0-beta.
|
|
4
|
+
"version": "2.0.0-beta.32",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -23,45 +23,45 @@
|
|
|
23
23
|
"types"
|
|
24
24
|
],
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"alova": "^3.
|
|
27
|
-
"pinia": "^
|
|
28
|
-
"vue": "^3.5.
|
|
26
|
+
"alova": "^3.3.4",
|
|
27
|
+
"pinia": "^3.0.3",
|
|
28
|
+
"vue": "^3.5.17",
|
|
29
29
|
"vue-i18n": "^10.0.7",
|
|
30
30
|
"vue-router": "^4.5.1",
|
|
31
|
-
"@pubinfo/config": "2.0.0-beta.
|
|
31
|
+
"@pubinfo/config": "2.0.0-beta.32"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@alova/adapter-axios": "^2.0.
|
|
34
|
+
"@alova/adapter-axios": "^2.0.16",
|
|
35
35
|
"@ant-design/icons-vue": "^7.0.1",
|
|
36
36
|
"@headlessui/vue": "^1.7.23",
|
|
37
|
-
"@imengyu/vue3-context-menu": "^1.5.
|
|
37
|
+
"@imengyu/vue3-context-menu": "^1.5.1",
|
|
38
38
|
"@pubinfo/pro-components": "^1.7.1",
|
|
39
39
|
"@unocss/reset": "^65.5.0",
|
|
40
|
-
"@vueuse/core": "^13.
|
|
41
|
-
"@vueuse/integrations": "^13.
|
|
40
|
+
"@vueuse/core": "^13.5.0",
|
|
41
|
+
"@vueuse/integrations": "^13.5.0",
|
|
42
42
|
"ant-design-vue": "^4.2.6",
|
|
43
|
-
"axios": "^1.
|
|
43
|
+
"axios": "^1.10.0",
|
|
44
44
|
"consola": "^3.4.2",
|
|
45
45
|
"floating-vue": "5.2.2",
|
|
46
46
|
"hookable": "^5.5.3",
|
|
47
|
-
"hotkeys-js": "^3.13.
|
|
47
|
+
"hotkeys-js": "^3.13.14",
|
|
48
48
|
"jsencrypt": "^3.3.2",
|
|
49
49
|
"lodash-es": "^4.17.21",
|
|
50
50
|
"md5": "^2.3.0",
|
|
51
51
|
"mitt": "^3.0.1",
|
|
52
52
|
"nprogress": "^0.2.0",
|
|
53
|
-
"overlayscrollbars": "^2.11.
|
|
53
|
+
"overlayscrollbars": "^2.11.4",
|
|
54
54
|
"overlayscrollbars-vue": "^0.5.9",
|
|
55
55
|
"path-browserify": "^1.0.1",
|
|
56
|
-
"path-to-regexp": "^
|
|
57
|
-
"pinia-plugin-persistedstate": "^
|
|
56
|
+
"path-to-regexp": "^8.2.0",
|
|
57
|
+
"pinia-plugin-persistedstate": "^4.4.1",
|
|
58
58
|
"sortablejs": "^1.15.6",
|
|
59
59
|
"vue-m-message": "^4.0.2",
|
|
60
60
|
"zxcvbn": "^4.4.2"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@iconify/json": "^2.2.
|
|
64
|
-
"@iconify/vue": "^
|
|
63
|
+
"@iconify/json": "^2.2.354",
|
|
64
|
+
"@iconify/vue": "^5.0.0",
|
|
65
65
|
"@pubinfo/openapi": "^0.8.4",
|
|
66
66
|
"@pubinfo/preset-openapi": "^0.8.4",
|
|
67
67
|
"@types/lodash-es": "^4.17.12",
|
|
@@ -70,22 +70,21 @@
|
|
|
70
70
|
"@types/path-browserify": "^1.0.3",
|
|
71
71
|
"@types/sortablejs": "^1.15.8",
|
|
72
72
|
"@types/zxcvbn": "^4.4.5",
|
|
73
|
-
"@vitejs/plugin-vue": "^
|
|
74
|
-
"@vitejs/plugin-vue-jsx": "^
|
|
75
|
-
"alova": "^3.
|
|
76
|
-
"pinia": "^
|
|
77
|
-
"sass": "1.83.0",
|
|
73
|
+
"@vitejs/plugin-vue": "^6.0.0",
|
|
74
|
+
"@vitejs/plugin-vue-jsx": "^5.0.1",
|
|
75
|
+
"alova": "^3.3.4",
|
|
76
|
+
"pinia": "^3.0.3",
|
|
78
77
|
"type-fest": "^4.41.0",
|
|
79
78
|
"unocss": "^65.5.0",
|
|
80
|
-
"unplugin-auto-import": "^
|
|
81
|
-
"unplugin-icons": "^
|
|
82
|
-
"unplugin-vue-components": "^
|
|
79
|
+
"unplugin-auto-import": "^19.3.0",
|
|
80
|
+
"unplugin-icons": "^22.1.0",
|
|
81
|
+
"unplugin-vue-components": "^28.8.0",
|
|
83
82
|
"vite": "^6.3.5",
|
|
84
83
|
"vite-plugin-dts": "^4.5.4",
|
|
85
|
-
"vue": "^3.5.
|
|
84
|
+
"vue": "^3.5.17",
|
|
86
85
|
"vue-i18n": "^10.0.7",
|
|
87
86
|
"vue-router": "^4.5.1",
|
|
88
|
-
"@pubinfo/config": "2.0.0-beta.
|
|
87
|
+
"@pubinfo/config": "2.0.0-beta.32"
|
|
89
88
|
},
|
|
90
89
|
"scripts": {
|
|
91
90
|
"dev": "vite build -w -m watch",
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/* 页面布局 CSS 变量 */
|
|
2
|
+
:root {
|
|
3
|
+
/* 这是一个复合变量
|
|
4
|
+
当页宽模式为 adaption-min-width 时,它代表 最小宽度
|
|
5
|
+
当页宽模式为 center 时,它代表 固定宽度
|
|
6
|
+
当页宽模式为 center-max-width 时,它代表 最大宽度 */
|
|
7
|
+
--g-app-width: 1400px;
|
|
8
|
+
|
|
9
|
+
/* 头部宽度(默认自适应宽度,可固定宽度,固定宽度后为居中显示) */
|
|
10
|
+
--g-header-width: 100%;
|
|
11
|
+
|
|
12
|
+
/* 头部高度 */
|
|
13
|
+
--g-header-height: 56px;
|
|
14
|
+
|
|
15
|
+
/* 侧边栏宽度 */
|
|
16
|
+
--g-main-sidebar-width: 63px;
|
|
17
|
+
--g-sub-sidebar-width: 220px;
|
|
18
|
+
--g-sub-sidebar-collapse-width: 64px;
|
|
19
|
+
|
|
20
|
+
/* 侧边栏 Logo 区域高度 */
|
|
21
|
+
--g-sidebar-logo-height: 50px;
|
|
22
|
+
|
|
23
|
+
/* 标签栏高度 */
|
|
24
|
+
--g-tabbar-height: 48px;
|
|
25
|
+
|
|
26
|
+
/* 工具栏高度 */
|
|
27
|
+
--g-toolbar-height: 45px;
|
|
28
|
+
|
|
29
|
+
/* 标签页最大最小宽度,两个宽度为同一数值时,则为固定宽度,反之将宽度设置为 unset 则为自适应 */
|
|
30
|
+
--g-tabbar-tab-max-width: 150px;
|
|
31
|
+
--g-tabbar-tab-min-width: 150px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* 明暗模式 CSS 变量 */
|
|
35
|
+
:root {
|
|
36
|
+
color-scheme: light;
|
|
37
|
+
--g-box-shadow-color: rgba(0, 0, 0, 0.12);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
:root::view-transition-old(root),
|
|
41
|
+
:root::view-transition-new(root) {
|
|
42
|
+
mix-blend-mode: normal;
|
|
43
|
+
animation: none;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
:root::view-transition-old(root) {
|
|
47
|
+
z-index: 1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
:root::view-transition-new(root) {
|
|
51
|
+
z-index: 9999;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
:root.dark {
|
|
55
|
+
color-scheme: dark;
|
|
56
|
+
--g-box-shadow-color: rgba(0, 0, 0, 0.72);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:root.dark::view-transition-old(root) {
|
|
60
|
+
z-index: 9999;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:root.dark::view-transition-new(root) {
|
|
64
|
+
z-index: 1;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
::-webkit-scrollbar {
|
|
68
|
+
width: 12px;
|
|
69
|
+
height: 12px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
::-webkit-scrollbar-thumb {
|
|
73
|
+
background-color: rgba(0, 0, 0, 0.4);
|
|
74
|
+
background-clip: padding-box;
|
|
75
|
+
border: 3px solid transparent;
|
|
76
|
+
border-radius: 6px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
::-webkit-scrollbar-thumb:hover {
|
|
80
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
::-webkit-scrollbar-track {
|
|
84
|
+
background-color: transparent;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
html,
|
|
88
|
+
body {
|
|
89
|
+
height: 100%;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
body {
|
|
93
|
+
box-sizing: border-box;
|
|
94
|
+
margin: 0;
|
|
95
|
+
font-family: Lato, "PingFang SC", "Microsoft YaHei", sans-serif;
|
|
96
|
+
background-color: var(--g-container-bg);
|
|
97
|
+
-webkit-tap-highlight-color: transparent;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
body.overflow-hidden {
|
|
101
|
+
overflow: hidden;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
* {
|
|
105
|
+
box-sizing: inherit;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* 右侧内容区针对fixed元素,有横向铺满的需求,可在fixed元素上设置 [data-fixed-calc-width] */
|
|
109
|
+
[data-fixed-calc-width] {
|
|
110
|
+
position: fixed;
|
|
111
|
+
right: 0;
|
|
112
|
+
left: 50%;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
[data-app-width-mode="adaption"] [data-fixed-calc-width],
|
|
116
|
+
[data-app-width-mode="adaption-min-width"] [data-fixed-calc-width] {
|
|
117
|
+
width: calc(100% - var(--g-main-sidebar-actual-width) - var(--g-sub-sidebar-actual-width));
|
|
118
|
+
transform: translateX(-50%) translateX(calc(var(--g-main-sidebar-actual-width) / 2)) translateX(calc(var(--g-sub-sidebar-actual-width) / 2));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
[data-app-width-mode="center"] [data-fixed-calc-width],
|
|
122
|
+
[data-app-width-mode="center-max-width"] [data-fixed-calc-width] {
|
|
123
|
+
width: calc(var(--g-app-width) - var(--g-main-sidebar-actual-width) - var(--g-sub-sidebar-actual-width));
|
|
124
|
+
transform: translateX(-50%) translateX(calc(var(--g-main-sidebar-actual-width) / 2)) translateX(calc(var(--g-sub-sidebar-actual-width) / 2));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
[data-mode="mobile"] [data-fixed-calc-width] {
|
|
128
|
+
width: 100% !important;
|
|
129
|
+
transform: translateX(-50%) !important;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* textarea 字体跟随系统 */
|
|
133
|
+
textarea {
|
|
134
|
+
font-family: inherit;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* Overrides Floating Vue */
|
|
138
|
+
.v-popper--theme-dropdown,
|
|
139
|
+
.v-popper--theme-tooltip {
|
|
140
|
+
display: inline-flex;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.v-popper--theme-dropdown .v-popper__inner,
|
|
144
|
+
.v-popper--theme-tooltip .v-popper__inner {
|
|
145
|
+
background-color: white;
|
|
146
|
+
color: #1a1a1a;
|
|
147
|
+
border-radius: 6px;
|
|
148
|
+
box-shadow: 0 6px 30px rgba(0, 0, 0, 0.1);
|
|
149
|
+
border: 1px solid rgba(120, 113, 108, 0.2);
|
|
150
|
+
font-size: 12px;
|
|
151
|
+
font-weight: normal;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.dark .v-popper--theme-dropdown .v-popper__inner,
|
|
155
|
+
.dark .v-popper--theme-tooltip .v-popper__inner {
|
|
156
|
+
background-color: #1c1c1e;
|
|
157
|
+
color: white;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.v-popper--theme-tooltip .v-popper__arrow-inner,
|
|
161
|
+
.v-popper--theme-dropdown .v-popper__arrow-inner {
|
|
162
|
+
border-color: white;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.dark .v-popper--theme-tooltip .v-popper__arrow-inner,
|
|
166
|
+
.dark .v-popper--theme-dropdown .v-popper__arrow-inner {
|
|
167
|
+
border-color: #2c2c2e;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.v-popper--theme-tooltip .v-popper__arrow-outer,
|
|
171
|
+
.v-popper--theme-dropdown .v-popper__arrow-outer {
|
|
172
|
+
border-color: rgba(120, 113, 108, 0.2);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.v-popper--theme-tooltip.v-popper--shown,
|
|
176
|
+
.v-popper--theme-tooltip.v-popper--shown * {
|
|
177
|
+
transition: none !important;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
[data-overlayscrollbars-contents] {
|
|
181
|
+
overscroll-behavior: contain;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/* medium-zoom */
|
|
185
|
+
.medium-zoom-overlay,
|
|
186
|
+
.medium-zoom-image {
|
|
187
|
+
z-index: 3000;
|
|
188
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '@unocss/reset/normalize.css';
|
|
2
2
|
import 'overlayscrollbars/overlayscrollbars.css';
|
|
3
|
-
import './globals.
|
|
4
|
-
import './nprogress.
|
|
5
|
-
import './rbac.
|
|
3
|
+
import './globals.css';
|
|
4
|
+
import './nprogress.css';
|
|
5
|
+
import './rbac.css';
|
|
6
6
|
import 'virtual:uno.css';
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
#nprogress {
|
|
2
|
+
pointer-events: none;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
#nprogress .bar {
|
|
6
|
+
position: fixed;
|
|
7
|
+
top: 0;
|
|
8
|
+
left: 0;
|
|
9
|
+
z-index: 1031;
|
|
10
|
+
width: 100%;
|
|
11
|
+
height: 2px;
|
|
12
|
+
background: rgb(var(--ui-primary));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
#nprogress .peg {
|
|
16
|
+
position: absolute;
|
|
17
|
+
right: 0;
|
|
18
|
+
display: block;
|
|
19
|
+
width: 100px;
|
|
20
|
+
height: 100%;
|
|
21
|
+
box-shadow: 0 0 10px rgb(var(--ui-primary)), 0 0 5px rgb(var(--ui-primary));
|
|
22
|
+
opacity: 1;
|
|
23
|
+
-webkit-transform: rotate(3deg) translate(0, -4px);
|
|
24
|
+
-moz-transform: rotate(3deg) translate(0, -4px);
|
|
25
|
+
-ms-transform: rotate(3deg) translate(0, -4px);
|
|
26
|
+
transform: rotate(3deg) translate(0, -4px);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
#nprogress .spinner {
|
|
30
|
+
position: fixed;
|
|
31
|
+
top: 11px;
|
|
32
|
+
right: 14px;
|
|
33
|
+
z-index: 1031;
|
|
34
|
+
display: block;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
#nprogress .spinner .spinner-icon {
|
|
38
|
+
box-sizing: border-box;
|
|
39
|
+
width: 18px;
|
|
40
|
+
height: 18px;
|
|
41
|
+
border: solid 2px transparent;
|
|
42
|
+
border-top-color: rgb(var(--ui-primary));
|
|
43
|
+
border-left-color: rgb(var(--ui-primary));
|
|
44
|
+
border-radius: 50%;
|
|
45
|
+
-webkit-animation: nprogress-spinner 400ms linear infinite;
|
|
46
|
+
-moz-animation: nprogress-spinner 400ms linear infinite;
|
|
47
|
+
-ms-animation: nprogress-spinner 400ms linear infinite;
|
|
48
|
+
animation: nprogress-spinner 400ms linear infinite;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.nprogress-custom-parent {
|
|
52
|
+
position: relative;
|
|
53
|
+
overflow: hidden;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.nprogress-custom-parent #nprogress .spinner,
|
|
57
|
+
.nprogress-custom-parent #nprogress .bar {
|
|
58
|
+
position: absolute;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
@keyframes nprogress-spinner {
|
|
62
|
+
0% {
|
|
63
|
+
transform: rotate(0deg);
|
|
64
|
+
}
|
|
65
|
+
100% {
|
|
66
|
+
transform: rotate(360deg);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[data-theme="classic"] #app-main {
|
|
2
|
+
background-image: url("@/assets/images/slider-bg.png");
|
|
3
|
+
background-repeat: no-repeat;
|
|
4
|
+
background-position: left bottom;
|
|
5
|
+
background-size: 450px 89%;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
[data-theme="classic"] #app-main .sub-sidebar-container {
|
|
9
|
+
background-color: transparent;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
[data-theme="classic"] #app-main > header {
|
|
13
|
+
background-image: url("@/assets/images/header-bg.png");
|
|
14
|
+
background-repeat: no-repeat;
|
|
15
|
+
background-position: left bottom;
|
|
16
|
+
background-size: cover;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
[data-theme="classic"] #app-main > header .menu {
|
|
20
|
+
background-color: transparent !important;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
[data-theme="classic"] #app-main > header .header-container .tools > span {
|
|
24
|
+
background-color: #4173f9;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[data-theme="classic"] #app-main .page-container {
|
|
28
|
+
padding-left: 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
[data-theme="classic"] .wrapper .sidebar-container {
|
|
32
|
+
box-shadow: none !important;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
[data-theme="classic"] .wrapper .main-container {
|
|
36
|
+
box-shadow: none !important;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* FIXME: Over rides @pubinfo/pro-components */
|
|
40
|
+
.pro-table .ant-form-item {
|
|
41
|
+
margin-bottom: 16px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.pro-table .ant-card .ant-card-body {
|
|
45
|
+
padding: 16px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.pro-table .ant-card .ant-card-head {
|
|
49
|
+
min-height: 48px;
|
|
50
|
+
padding: 0 16px;
|
|
51
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/* 单行超出隐藏固定宽度 */
|
|
2
|
+
.text-overflow-singleline {
|
|
3
|
+
overflow: hidden;
|
|
4
|
+
text-overflow: ellipsis;
|
|
5
|
+
white-space: nowrap;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/* 多行超出隐藏,例如两行 */
|
|
9
|
+
.text-overflow-multiline {
|
|
10
|
+
display: -webkit-box;
|
|
11
|
+
-webkit-box-orient: vertical;
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
-webkit-line-clamp: 2;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* 定位居中 - 水平居中 */
|
|
17
|
+
.position-center-x {
|
|
18
|
+
position: absolute;
|
|
19
|
+
left: 50%;
|
|
20
|
+
transform: translateX(-50%);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* 定位居中 - 垂直居中 */
|
|
24
|
+
.position-center-y {
|
|
25
|
+
position: absolute;
|
|
26
|
+
top: 50%;
|
|
27
|
+
transform: translateY(-50%);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* 定位居中 - 水平垂直居中 */
|
|
31
|
+
.position-center-xy {
|
|
32
|
+
position: absolute;
|
|
33
|
+
top: 50%;
|
|
34
|
+
left: 50%;
|
|
35
|
+
transform: translateX(-50%) translateY(-50%);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* 文字两端对齐 */
|
|
39
|
+
.justify-align {
|
|
40
|
+
text-align: justify;
|
|
41
|
+
text-align-last: justify;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* 清除浮动 */
|
|
45
|
+
.clearfix {
|
|
46
|
+
zoom: 1;
|
|
47
|
+
}
|
|
48
|
+
.clearfix::before,
|
|
49
|
+
.clearfix::after {
|
|
50
|
+
display: block;
|
|
51
|
+
clear: both;
|
|
52
|
+
content: "";
|
|
53
|
+
}
|
|
@@ -61,16 +61,14 @@ function goBack() {
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
|
|
64
|
-
<style
|
|
64
|
+
<style scoped>
|
|
65
65
|
.noPermissionIcon {
|
|
66
66
|
background: url("@/assets/icons/403.svg") no-repeat;
|
|
67
67
|
background-size: 100% 100%;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
[data-theme="dark"] {
|
|
71
|
-
.
|
|
72
|
-
|
|
73
|
-
background-size: 100% 100%;
|
|
74
|
-
}
|
|
70
|
+
[data-theme="dark"] .noPermissionIcon {
|
|
71
|
+
background: url("@/assets/icons/403_dark.svg") no-repeat;
|
|
72
|
+
background-size: 100% 100%;
|
|
75
73
|
}
|
|
76
74
|
</style>
|
|
@@ -152,61 +152,46 @@ watchEffect(() => {
|
|
|
152
152
|
</div>
|
|
153
153
|
</template>
|
|
154
154
|
|
|
155
|
-
<style
|
|
155
|
+
<style scoped>
|
|
156
156
|
.pass-strength-validator {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
.title-wrap {
|
|
160
|
-
margin-bottom: 40px;
|
|
161
|
-
font-size: 24px;
|
|
162
|
-
font-weight: 600;
|
|
163
|
-
color: #1677ff;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.rules-title {
|
|
167
|
-
margin-bottom: 15px;
|
|
168
|
-
font-size: 16px;
|
|
169
|
-
font-weight: 500;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
&.vertical {
|
|
173
|
-
width: 1130px;
|
|
174
|
-
padding: 18px 32px 24px;
|
|
175
|
-
|
|
176
|
-
.title-wrap {
|
|
177
|
-
margin-bottom: 16px;
|
|
178
|
-
font-size: 16px;
|
|
179
|
-
}
|
|
157
|
+
--at-apply: p-15px;
|
|
158
|
+
}
|
|
180
159
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
160
|
+
.pass-strength-validator .title-wrap {
|
|
161
|
+
--at-apply: text-2xl font-semibold text-[#1677ff] mb-10;
|
|
162
|
+
}
|
|
184
163
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
flex: 1;
|
|
189
|
-
}
|
|
164
|
+
.pass-strength-validator .rules-title {
|
|
165
|
+
--at-apply: text-base font-medium mb-[15px];
|
|
166
|
+
}
|
|
190
167
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
168
|
+
.pass-strength-validator.vertical {
|
|
169
|
+
--at-apply: w-[1130px] pt-[18px] pb-6 px-8;
|
|
170
|
+
}
|
|
171
|
+
.pass-strength-validator.vertical .title-wrap {
|
|
172
|
+
--at-apply: text-base mb-4;
|
|
173
|
+
}
|
|
174
|
+
.pass-strength-validator.vertical .rules-wrap {
|
|
175
|
+
--at-apply: flex;
|
|
176
|
+
}
|
|
177
|
+
.pass-strength-validator.vertical .basic-rules,
|
|
178
|
+
.pass-strength-validator.vertical .advanced-rules {
|
|
179
|
+
--at-apply: relative flex-1;
|
|
180
|
+
}
|
|
181
|
+
.pass-strength-validator.vertical .basic-rules::after {
|
|
182
|
+
--at-apply: absolute w-px h-auto content-[""] right-[35px] inset-y-[11px];
|
|
183
|
+
background: #e5e6eb;
|
|
184
|
+
}
|
|
185
|
+
.pass-strength-validator.vertical .rules-title {
|
|
186
|
+
--at-apply: text-sm font-[bold] mb-3.5;
|
|
187
|
+
}
|
|
201
188
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
font-weight: bold;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
189
|
+
/* 样式穿透,用于覆盖 ant-design-vue 组件样式 */
|
|
190
|
+
.pass-strength-validator :deep(.ant-divider) {
|
|
191
|
+
--at-apply: mx-0 my-4;
|
|
208
192
|
}
|
|
209
193
|
|
|
194
|
+
/* 暗色主题支持 */
|
|
210
195
|
.dark .pass-strength-validator.vertical .basic-rules::after {
|
|
211
196
|
background: #424242;
|
|
212
197
|
}
|
|
@@ -23,29 +23,17 @@ const props = defineProps<{
|
|
|
23
23
|
</div>
|
|
24
24
|
</template>
|
|
25
25
|
|
|
26
|
-
<style scoped
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
&.vertical {
|
|
40
|
-
padding: 0;
|
|
41
|
-
margin-bottom: 6px;
|
|
42
|
-
line-height: 18px;
|
|
43
|
-
color: #86909c;
|
|
44
|
-
|
|
45
|
-
.icon {
|
|
46
|
-
margin-right: 6px;
|
|
47
|
-
line-height: 18px;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
26
|
+
<style scoped>
|
|
27
|
+
.rule-item {
|
|
28
|
+
--at-apply: flex flex-row text-sm leading-[19px] px-0 py-2.5;
|
|
29
|
+
}
|
|
30
|
+
.rule-item .icon {
|
|
31
|
+
--at-apply: leading-[23px] mr-2.5;
|
|
32
|
+
}
|
|
33
|
+
.rule-item.vertical {
|
|
34
|
+
--at-apply: leading-[18px] text-[#86909c] mb-1.5 p-0;
|
|
35
|
+
}
|
|
36
|
+
.rule-item.vertical .icon {
|
|
37
|
+
--at-apply: leading-[18px] mr-1.5;
|
|
38
|
+
}
|
|
51
39
|
</style>
|
|
@@ -69,19 +69,15 @@ const style = computed(() => {
|
|
|
69
69
|
};
|
|
70
70
|
});
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
if (!loadIcon && outputType.value === 'custom') {
|
|
74
|
-
return new Error('Need pro `loadIcon`, according to [PubinfoProvider].');
|
|
75
|
-
}
|
|
76
|
-
|
|
72
|
+
const icon = computed(() => {
|
|
77
73
|
return loadIcon?.(props.name) ?? iconRegistry.get(props.name);
|
|
78
|
-
}
|
|
74
|
+
});
|
|
79
75
|
</script>
|
|
80
76
|
|
|
81
77
|
<template>
|
|
82
|
-
<i class="relative
|
|
78
|
+
<i class="relative size-[1em] flex-inline items-center justify-center fill-current leading-[1em]" :style="style">
|
|
83
79
|
<i v-if="outputType === 'css'" :class="outputName" />
|
|
84
80
|
<Icon v-else-if="outputType === 'svg'" :icon="outputName" />
|
|
85
|
-
<img v-else-if="
|
|
81
|
+
<img v-else-if="icon" class="size-1em" :src="icon">
|
|
86
82
|
</i>
|
|
87
83
|
</template>
|