@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
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { PubinfoIcon } from '@/components';
|
|
3
2
|
import { isUndefined } from 'lodash-es';
|
|
4
3
|
import { OverlayScrollbarsComponent } from 'overlayscrollbars-vue';
|
|
5
4
|
import Sortable from 'sortablejs';
|
|
@@ -7,6 +6,7 @@ import { useI18n } from 'vue-i18n';
|
|
|
7
6
|
import FluentDelete24Filled from '~icons/fluent/delete-24-filled';
|
|
8
7
|
import FluentStarAdd16Regular from '~icons/fluent/star-add-16-regular';
|
|
9
8
|
import FluentStarDismiss16Regular from '~icons/fluent/star-dismiss-16-regular';
|
|
9
|
+
import { PubinfoIcon } from '@/components';
|
|
10
10
|
import { useContext } from '../../../composables/useContext';
|
|
11
11
|
|
|
12
12
|
defineOptions({
|
|
@@ -123,13 +123,13 @@ watch(favoritesContainerRef, (newSortableContainer) => {
|
|
|
123
123
|
</div>
|
|
124
124
|
</template>
|
|
125
125
|
|
|
126
|
-
<style
|
|
126
|
+
<style scoped>
|
|
127
127
|
:deep([data-overlayscrollbars-viewport]) {
|
|
128
|
-
|
|
128
|
+
--at-apply: overscroll-contain;
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
.draggable-ghost {
|
|
132
|
-
|
|
132
|
+
--at-apply: op-0;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
.name {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import type { RouteRecordRaw } from 'vue-router';
|
|
3
|
-
import { PubinfoIcon } from '@/components';
|
|
4
3
|
import { cloneDeep } from 'lodash-es';
|
|
5
4
|
import { compile } from 'path-to-regexp';
|
|
5
|
+
import { PubinfoIcon } from '@/components';
|
|
6
6
|
import { useContext } from '../../../composables/useContext';
|
|
7
7
|
import Breadcrumb from '../../Tools/Breadcrumb/index.vue';
|
|
8
8
|
import BreadcrumbItem from '../../Tools/Breadcrumb/item.vue';
|
|
@@ -238,64 +238,47 @@ function onSelect(node: RouteRecordRaw, index: number) {
|
|
|
238
238
|
</div>
|
|
239
239
|
</template>
|
|
240
240
|
|
|
241
|
-
<style
|
|
241
|
+
<style scoped>
|
|
242
242
|
.toolbar-container {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
&:last-child:not(:first-child) .text {
|
|
282
|
-
--at-apply: bg-stone-2 dark:bg-stone-8;
|
|
283
|
-
|
|
284
|
-
padding-right: 12px;
|
|
285
|
-
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 8px 50%);
|
|
286
|
-
border-radius: 0 6px 6px 0;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
.separator {
|
|
290
|
-
display: none;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
243
|
+
--at-apply: flex items-center justify-between h-[--g-toolbar-height]
|
|
244
|
+
bg-[--g-container-bg] transition-[background-color] duration-[0.3s];
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.left-box {
|
|
248
|
+
--at-apply: flex items-center overflow-hidden pl-2.5 pr-[50px];
|
|
249
|
+
mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 50px), transparent);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.breadcrumb {
|
|
253
|
+
--at-apply: pl-10px whitespace-normal;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.breadcrumb.breadcrumb-modern :deep(.breadcrumb-item) .text {
|
|
257
|
+
--at-apply: bg-black/5 px-4 py-1.5 bg-stone-2/80 dark:bg-stone-8/80;
|
|
258
|
+
clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.breadcrumb.breadcrumb-modern :deep(.breadcrumb-item) .text.is-link:hover {
|
|
262
|
+
--at-apply: bg-stone-2 dark:bg-stone-8;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.breadcrumb.breadcrumb-modern :deep(.breadcrumb-item):first-child .text {
|
|
266
|
+
--at-apply: pl-3;
|
|
267
|
+
clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%);
|
|
268
|
+
border-radius: 6px 0 0 6px;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.breadcrumb.breadcrumb-modern :deep(.breadcrumb-item):last-child:not(:first-child) .text {
|
|
272
|
+
--at-apply: bg-stone-2 dark:bg-stone-8 pl-3;
|
|
273
|
+
clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 8px 50%);
|
|
274
|
+
border-radius: 0 6px 6px 0;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.breadcrumb.breadcrumb-modern :deep(.breadcrumb-item) .separator {
|
|
278
|
+
--at-apply: hidden;
|
|
296
279
|
}
|
|
297
280
|
|
|
298
|
-
|
|
281
|
+
/* 面包屑动画 */
|
|
299
282
|
.breadcrumb-enter-active {
|
|
300
283
|
transition: transform 0.3s, opacity 0.3s;
|
|
301
284
|
}
|
|
@@ -76,31 +76,28 @@ watch(scrollTop, (val, oldVal) => {
|
|
|
76
76
|
</div>
|
|
77
77
|
</template>
|
|
78
78
|
|
|
79
|
-
<style
|
|
79
|
+
<style scoped>
|
|
80
80
|
.topbar-container {
|
|
81
|
-
|
|
82
|
-
top: 0;
|
|
83
|
-
z-index: 100;
|
|
84
|
-
display: flex;
|
|
85
|
-
flex-direction: column;
|
|
81
|
+
--at-apply: absolute top-0 z-100 flex flex-col;
|
|
86
82
|
box-shadow: 0 1px 0 0 var(--g-border-color);
|
|
87
83
|
transition: width 0.3s, top 0.3s, transform 0.3s, box-shadow 0.3s;
|
|
84
|
+
}
|
|
88
85
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
.topbar-container.topbar-fixed,
|
|
87
|
+
.topbar-container.topbar-sticky {
|
|
88
|
+
--at-apply: fixed;
|
|
89
|
+
}
|
|
92
90
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
.topbar-container.topbar-fixed.shadow,
|
|
92
|
+
.topbar-container.topbar-sticky.shadow {
|
|
93
|
+
box-shadow: 0 10px 10px -10px var(--g-box-shadow-color);
|
|
94
|
+
}
|
|
97
95
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
96
|
+
.topbar-container.topbar-sticky.hide {
|
|
97
|
+
top: calc((var(--g-tabbar-height) + var(--g-toolbar-height)) * -1) !important;
|
|
98
|
+
}
|
|
101
99
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
100
|
+
.topbar-container.switch-tabbar-toolbar {
|
|
101
|
+
flex-direction: column-reverse;
|
|
105
102
|
}
|
|
106
103
|
</style>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { InjectionKey } from 'vue';
|
|
1
2
|
import type {
|
|
2
3
|
useFavoritesStore,
|
|
3
4
|
useIframeStore,
|
|
@@ -8,7 +9,6 @@ import type {
|
|
|
8
9
|
useTabbarStore,
|
|
9
10
|
useUserStore,
|
|
10
11
|
} from '@/stores';
|
|
11
|
-
import type { InjectionKey } from 'vue';
|
|
12
12
|
|
|
13
13
|
interface LayoutContext {
|
|
14
14
|
settingsStore: ReturnType<typeof useSettingsStore>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RouteLocationRaw } from 'vue-router';
|
|
2
|
-
import { useSettingsStore, useTabbarStore } from '@/stores';
|
|
3
2
|
import Message from 'vue-m-message';
|
|
3
|
+
import { useSettingsStore, useTabbarStore } from '@/stores';
|
|
4
4
|
|
|
5
5
|
export default function useTabbar() {
|
|
6
6
|
const route = useRoute();
|
package/src/layout/provider.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { h } from 'vue';
|
|
1
2
|
import { PubinfoProvider } from '@/components';
|
|
2
3
|
import {
|
|
3
4
|
useFavoritesStore,
|
|
@@ -9,7 +10,6 @@ import {
|
|
|
9
10
|
useTabbarStore,
|
|
10
11
|
useUserStore,
|
|
11
12
|
} from '@/stores';
|
|
12
|
-
import { h } from 'vue';
|
|
13
13
|
import { createContext } from './composables/useContext';
|
|
14
14
|
import { useTitle } from './composables/useTitle';
|
|
15
15
|
|
|
@@ -10,44 +10,15 @@ const props = defineProps<{
|
|
|
10
10
|
|
|
11
11
|
<template>
|
|
12
12
|
<div w-full>
|
|
13
|
-
<div
|
|
14
|
-
|
|
13
|
+
<div
|
|
14
|
+
class="flex items-center justify-between gap-4 my-4 whitespace-nowrap text-sm font-500
|
|
15
|
+
before:content-empty before:w-full before:h-1px before:bg-stone-2 dark:before:bg-stone-6
|
|
16
|
+
after:content-empty after:w-full after:h-1px after:bg-stone-2 dark:after:bg-stone-6"
|
|
17
|
+
>
|
|
18
|
+
<div class="px-2.5 py-[5px]">
|
|
15
19
|
{{ props.title }}
|
|
16
20
|
</div>
|
|
17
21
|
</div>
|
|
18
22
|
<slot />
|
|
19
23
|
</div>
|
|
20
24
|
</template>
|
|
21
|
-
|
|
22
|
-
<style scoped lang="scss">
|
|
23
|
-
.divider {
|
|
24
|
-
--at-apply:
|
|
25
|
-
flex
|
|
26
|
-
items-center
|
|
27
|
-
justify-between
|
|
28
|
-
gap-4
|
|
29
|
-
my-4
|
|
30
|
-
whitespace-nowrap
|
|
31
|
-
text-sm
|
|
32
|
-
font-500;
|
|
33
|
-
|
|
34
|
-
&::before,
|
|
35
|
-
&::after {
|
|
36
|
-
--at-apply:
|
|
37
|
-
content-empty
|
|
38
|
-
w-full
|
|
39
|
-
h-1px
|
|
40
|
-
bg-stone-2
|
|
41
|
-
dark:bg-stone-6;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.divider-card {
|
|
45
|
-
padding: 5px 10px;
|
|
46
|
-
|
|
47
|
-
// --at-apply:
|
|
48
|
-
// rounded-md
|
|
49
|
-
// bg-#409EFF
|
|
50
|
-
// dark:bg-blue;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
</style>
|
|
@@ -28,97 +28,56 @@ const enabled = computed({
|
|
|
28
28
|
<template>
|
|
29
29
|
<label class="switch">
|
|
30
30
|
<input v-model="enabled" type="checkbox">
|
|
31
|
-
<span />
|
|
31
|
+
<span class="bg-[#d6d3d1] dark:bg-stone-5" />
|
|
32
32
|
</label>
|
|
33
33
|
</template>
|
|
34
34
|
|
|
35
|
-
<style scoped lang="
|
|
36
|
-
$greed: var(--ui-primary);
|
|
37
|
-
|
|
35
|
+
<style scoped lang="css">
|
|
38
36
|
.switch {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
transform-origin: 50% 50%;
|
|
84
|
-
|
|
85
|
-
--at-apply: dark:bg-stone-7;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
&:active {
|
|
89
|
-
transform: scale(0.92);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
&:checked {
|
|
94
|
-
& + span {
|
|
95
|
-
background: rgb($greed);
|
|
96
|
-
box-shadow: 0 8px 16px -1px rgba($greed, 0.2);
|
|
97
|
-
|
|
98
|
-
&::before {
|
|
99
|
-
width: 0;
|
|
100
|
-
margin-left: 27px;
|
|
101
|
-
background: #fff;
|
|
102
|
-
border-width: 3px;
|
|
103
|
-
border-radius: 3px;
|
|
104
|
-
|
|
105
|
-
--at-apply: dark:bg-stone-7;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
&::after {
|
|
109
|
-
animation: blob-checked 0.35s linear forwards 0.2s;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
&:not(:checked) {
|
|
115
|
-
& + span {
|
|
116
|
-
&::before {
|
|
117
|
-
animation: blob 0.85s linear forwards 0.2s;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
37
|
+
--at-apply: cursor-pointer scale-75;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.switch input {
|
|
41
|
+
--at-apply: hidden;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.switch input + span {
|
|
45
|
+
--at-apply: relative block w-12 h-7 rounded-14px transition-all duration-300 ease;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.switch input + span::before,
|
|
49
|
+
.switch input + span::after {
|
|
50
|
+
--at-apply: absolute block content-empty transition-all duration-300 ease;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.switch input + span::before {
|
|
54
|
+
--at-apply: top-5px left-5px size-18px border-5px border-solid border-white dark:border-dark rounded-9px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.switch input + span::after {
|
|
58
|
+
--at-apply: top-5px left-32px w-6px h-18px bg-white rounded-4/10 op-0 dark:bg-stone-7;
|
|
59
|
+
transform-origin: 50% 50%;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.switch input + span:active {
|
|
63
|
+
--at-apply: scale-92;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.switch input:checked + span {
|
|
67
|
+
--at-apply: bg-ui-primary;
|
|
68
|
+
box-shadow: 0 8px 16px -1px rgba(var(--ui-primary), 0.2);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.switch input:checked + span::before {
|
|
72
|
+
--at-apply: w-0 ml-27px bg-white dark:bg-stone-7 border-3px rounded-3px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.switch input:checked + span::after {
|
|
76
|
+
animation: blob-checked 0.35s linear forwards 0.2s;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.switch input:not(:checked) + span::before {
|
|
80
|
+
animation: blob 0.85s linear forwards 0.2s;
|
|
122
81
|
}
|
|
123
82
|
|
|
124
83
|
@keyframes blob {
|
|
@@ -166,12 +125,9 @@ html {
|
|
|
166
125
|
-webkit-font-smoothing: antialiased;
|
|
167
126
|
}
|
|
168
127
|
|
|
169
|
-
|
|
128
|
+
*,
|
|
129
|
+
*::before,
|
|
130
|
+
*::after {
|
|
170
131
|
box-sizing: border-box;
|
|
171
|
-
|
|
172
|
-
&::before,
|
|
173
|
-
&::after {
|
|
174
|
-
box-sizing: border-box;
|
|
175
|
-
}
|
|
176
132
|
}
|
|
177
133
|
</style>
|
package/src/locales/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { App } from 'vue';
|
|
2
|
-
import { useSettingsStore } from '@/stores';
|
|
3
2
|
import { cloneDeep } from 'lodash-es';
|
|
4
3
|
import { createI18n as _createI18n } from 'vue-i18n';
|
|
4
|
+
import { useSettingsStore } from '@/stores';
|
|
5
5
|
import _en from './lang/en.json';
|
|
6
6
|
import _zhCN from './lang/zh-cn.json';
|
|
7
7
|
import _zhTW from './lang/zh-tw.json';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import type { ProColumns } from '@pubinfo/pro-components';
|
|
3
|
-
import { getRbacUserUserEntireInfo } from '@/api/modules/rbac';
|
|
4
3
|
import { SchemaForm } from '@pubinfo/pro-components';
|
|
5
4
|
import { isNil } from 'lodash-es';
|
|
5
|
+
import { getRbacUserUserEntireInfo } from '@/api/modules/rbac';
|
|
6
6
|
|
|
7
7
|
// TODO 解耦组件库
|
|
8
8
|
|
|
@@ -59,16 +59,14 @@ function goBack() {
|
|
|
59
59
|
</div>
|
|
60
60
|
</template>
|
|
61
61
|
|
|
62
|
-
<style
|
|
62
|
+
<style scoped>
|
|
63
63
|
.allIcon {
|
|
64
64
|
background: url("@/assets/icons/404.svg") no-repeat;
|
|
65
65
|
background-size: 100% 100%;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
[data-theme="dark"] {
|
|
69
|
-
.
|
|
70
|
-
|
|
71
|
-
background-size: 100% 100%;
|
|
72
|
-
}
|
|
68
|
+
[data-theme="dark"] .allIcon {
|
|
69
|
+
background: url("@/assets/icons/404_dark.svg") no-repeat;
|
|
70
|
+
background-size: 100% 100%;
|
|
73
71
|
}
|
|
74
72
|
</style>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
import { message } from 'ant-design-vue';
|
|
2
3
|
import { PubinfoIcon } from '@/components';
|
|
3
4
|
import { useUserStore } from '@/stores';
|
|
4
|
-
import { message } from 'ant-design-vue';
|
|
5
5
|
|
|
6
6
|
defineOptions({
|
|
7
7
|
name: 'ChangeOrganization',
|
|
@@ -125,50 +125,36 @@ async function changeOrganization() {
|
|
|
125
125
|
</div>
|
|
126
126
|
</template>
|
|
127
127
|
|
|
128
|
-
<style
|
|
128
|
+
<style scoped>
|
|
129
129
|
.change-org {
|
|
130
|
-
|
|
131
|
-
height: 100%;
|
|
130
|
+
--at-apply: size-full;
|
|
132
131
|
background: url("@/assets/images/login-small.png") no-repeat 50%;
|
|
133
132
|
background-size: cover;
|
|
133
|
+
}
|
|
134
134
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
height: 91px;
|
|
142
|
-
padding: 22px 32px;
|
|
143
|
-
margin-bottom: 15px;
|
|
144
|
-
overflow: hidden;
|
|
145
|
-
color: #86909c;
|
|
146
|
-
cursor: pointer;
|
|
147
|
-
background: #fff;
|
|
148
|
-
border: 1px solid #f2f3f5;
|
|
149
|
-
border-radius: 8px;
|
|
135
|
+
.change-org .org-item {
|
|
136
|
+
--at-apply: box-border flex items-center justify-between w-full h-[91px]
|
|
137
|
+
overflow-hidden text-[#86909c] cursor-pointer border mb-[15px] px-8
|
|
138
|
+
py-[22px] rounded-lg border-solid border-[#f2f3f5];
|
|
139
|
+
background: #fff;
|
|
140
|
+
}
|
|
150
141
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
border-color: #1677ff;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
142
|
+
.change-org .org-item.active {
|
|
143
|
+
--at-apply: bg-[#1677FF] bg-op-10 border-[#1677ff];
|
|
156
144
|
}
|
|
157
145
|
|
|
158
|
-
[data-theme="dark"] {
|
|
159
|
-
.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
}
|
|
146
|
+
[data-theme="dark"] .change-org {
|
|
147
|
+
background: url("@/assets/images/login-small_dark.webp") no-repeat 50%;
|
|
148
|
+
background-size: cover;
|
|
149
|
+
}
|
|
163
150
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
151
|
+
[data-theme="dark"] .org-item {
|
|
152
|
+
background: #2c2c2c;
|
|
153
|
+
border: 1px solid #2c2c2c;
|
|
154
|
+
}
|
|
167
155
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
}
|
|
156
|
+
[data-theme="dark"] .org-item.active {
|
|
157
|
+
background: rgb(20 20 20 / 60%);
|
|
158
|
+
border-color: #1668dc;
|
|
173
159
|
}
|
|
174
160
|
</style>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import type { FormInstance, Rule } from 'ant-design-vue/es/form';
|
|
3
3
|
import type { RouteParamValue } from 'vue-router';
|
|
4
|
-
import { useUserStore } from '@/stores';
|
|
5
4
|
import { message } from 'ant-design-vue';
|
|
6
5
|
import { delay } from 'lodash-es';
|
|
6
|
+
import { useUserStore } from '@/stores';
|
|
7
7
|
|
|
8
8
|
defineOptions({
|
|
9
9
|
name: 'ChangePasswordForm',
|