diff --git a/mayfly_go_web/src/App.vue b/mayfly_go_web/src/App.vue
index debf6a5c..6d2d411d 100644
--- a/mayfly_go_web/src/App.vue
+++ b/mayfly_go_web/src/App.vue
@@ -15,6 +15,7 @@ import LockScreen from '@/views/layout/lockScreen/index.vue';
import Setings from '@/views/layout/navBars/breadcrumb/setings.vue';
import Watermark from '@/common/utils/wartermark';
import mittBus from '@/common/utils/mitt';
+import { getThemeConfig } from './common/utils/storage';
const setingsRef = ref();
const route = useRoute();
@@ -42,10 +43,14 @@ onMounted(() => {
mittBus.on('openSetingsDrawer', () => {
openSetingsDrawer();
});
+
// 获取缓存中的布局配置
- if (getLocal('themeConfig')) {
- themeConfigStores.setThemeConfig({ themeConfig: getLocal('themeConfig') });
+ const tc = getThemeConfig();
+ if (tc) {
+ themeConfigStores.setThemeConfig({ themeConfig: tc });
document.documentElement.style.cssText = getLocal('themeConfigStyle');
+
+ themeConfigStores.switchDark(tc.isDark);
}
});
});
diff --git a/mayfly_go_web/src/assets/image/bg-login.png b/mayfly_go_web/src/assets/image/bg-login.png
deleted file mode 100644
index c7f85bef..00000000
Binary files a/mayfly_go_web/src/assets/image/bg-login.png and /dev/null differ
diff --git a/mayfly_go_web/src/assets/image/login-bg-main.svg b/mayfly_go_web/src/assets/image/login-bg-main.svg
new file mode 100644
index 00000000..0499f300
--- /dev/null
+++ b/mayfly_go_web/src/assets/image/login-bg-main.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/mayfly_go_web/src/assets/image/login-bg-split.svg b/mayfly_go_web/src/assets/image/login-bg-split.svg
new file mode 100644
index 00000000..a345a548
--- /dev/null
+++ b/mayfly_go_web/src/assets/image/login-bg-split.svg
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/mayfly_go_web/src/common/utils/loading.ts b/mayfly_go_web/src/common/utils/loading.ts
index e29a2d30..8df43eaf 100644
--- a/mayfly_go_web/src/common/utils/loading.ts
+++ b/mayfly_go_web/src/common/utils/loading.ts
@@ -1,46 +1,42 @@
import { nextTick } from 'vue';
-import loadingCss from '@/theme/loading.scss?inline';
+import '@/theme/loading.scss';
-// 定义方法
+/**
+ * 页面全局 Loading
+ * @method start 创建 loading
+ * @method done 移除 loading
+ */
export const NextLoading = {
- // 载入 css
- setCss: () => {
- let link = document.createElement('link');
- link.rel = 'stylesheet';
- link.href = loadingCss;
- link.crossOrigin = 'anonymous';
- document.getElementsByTagName('head')[0].appendChild(link);
- },
// 创建 loading
start: () => {
- const bodys: any = document.body;
- const div = document.createElement('div');
+ const bodys: Element = document.body;
+ const div = document.createElement('div');
div.setAttribute('class', 'loading-next');
const htmls = `
`;
div.innerHTML = htmls;
bodys.insertBefore(div, bodys.childNodes[0]);
},
// 移除 loading
- done: () => {
+ done: (time: number = 1000) => {
nextTick(() => {
setTimeout(() => {
- const el = document.querySelector('.loading-next');
- el && el.parentNode?.removeChild(el);
- }, 1000);
+ const el = document.querySelector('.loading-next');
+ el?.parentNode?.removeChild(el);
+ }, time);
});
},
};
diff --git a/mayfly_go_web/src/common/utils/storage.ts b/mayfly_go_web/src/common/utils/storage.ts
index 021a6f7b..2f4e8cce 100644
--- a/mayfly_go_web/src/common/utils/storage.ts
+++ b/mayfly_go_web/src/common/utils/storage.ts
@@ -21,6 +21,14 @@ export function saveUser(userinfo: any) {
setLocal(UserKey, userinfo);
}
+export function saveThemeConfig(themeConfig: any) {
+ setLocal('themeConfig', themeConfig);
+}
+
+export function getThemeConfig() {
+ return getLocal('themeConfig');
+}
+
// 获取是否开启水印
export function getUseWatermark() {
return getLocal('useWatermark');
diff --git a/mayfly_go_web/src/common/utils/wartermark.ts b/mayfly_go_web/src/common/utils/wartermark.ts
index 05db3b09..c5ef43fb 100644
--- a/mayfly_go_web/src/common/utils/wartermark.ts
+++ b/mayfly_go_web/src/common/utils/wartermark.ts
@@ -43,9 +43,12 @@ function del() {
const watermark = {
use: () => {
+ const userinfo = getUser();
+ if (!userinfo) {
+ del();
+ }
setTimeout(() => {
- const userinfo = getUser();
- if (userinfo && getUseWatermark()) {
+ if (getUseWatermark()) {
set(`${userinfo.username} ${dateFormat2('yyyy-MM-dd HH:mm:ss', new Date())}`);
} else {
del();
diff --git a/mayfly_go_web/src/router/index.ts b/mayfly_go_web/src/router/index.ts
index dc3a04d8..d9857168 100644
--- a/mayfly_go_web/src/router/index.ts
+++ b/mayfly_go_web/src/router/index.ts
@@ -29,7 +29,6 @@ const router = createRouter({
// 前端控制路由:初始化方法,防止刷新时丢失
export function initAllFun() {
- NextLoading.start(); // 界面 loading 动画开始执行
const token = getToken(); // 获取浏览器缓存 token 值
if (!token) {
// 无 token 停止执行下一步
@@ -48,7 +47,6 @@ export function initAllFun() {
// 后端控制路由:执行路由数据初始化
export async function initBackEndControlRoutesFun() {
- NextLoading.start(); // 界面 loading 动画开始执行
const token = getToken(); // 获取浏览器缓存 token 值
if (!token) {
// 无 token 停止执行下一步
@@ -232,14 +230,19 @@ export function resetRoute() {
}
export async function initRouter() {
- // 初始化方法执行
- const { isRequestRoutes } = useThemeConfig(pinia).themeConfig;
- if (!isRequestRoutes) {
- // 未开启后端控制路由
- initAllFun();
- } else if (isRequestRoutes) {
- // 后端控制路由,isRequestRoutes 为 true,则开启后端控制路由
- await initBackEndControlRoutesFun();
+ NextLoading.start(); // 界面 loading 动画开始执行
+ try {
+ // 初始化方法执行
+ const { isRequestRoutes } = useThemeConfig(pinia).themeConfig;
+ if (!isRequestRoutes) {
+ // 未开启后端控制路由
+ initAllFun();
+ } else if (isRequestRoutes) {
+ // 后端控制路由,isRequestRoutes 为 true,则开启后端控制路由
+ await initBackEndControlRoutesFun();
+ }
+ } finally {
+ NextLoading.done();
}
}
@@ -297,7 +300,6 @@ router.beforeEach(async (to, from, next) => {
// 路由加载后
router.afterEach(() => {
NProgress.done();
- NextLoading.done();
});
// 导出路由
diff --git a/mayfly_go_web/src/store/themeConfig.ts b/mayfly_go_web/src/store/themeConfig.ts
index 997e0db3..85825635 100644
--- a/mayfly_go_web/src/store/themeConfig.ts
+++ b/mayfly_go_web/src/store/themeConfig.ts
@@ -140,5 +140,17 @@ export const useThemeConfig = defineStore('themeConfig', {
setThemeConfig(data: ThemeConfigState) {
this.themeConfig = data.themeConfig;
},
+ // 切换暗模式
+ switchDark(isDark: boolean) {
+ this.themeConfig.isDark = isDark;
+ const body = document.documentElement as HTMLElement;
+ if (isDark) {
+ body.setAttribute('class', 'dark');
+ this.themeConfig.editorTheme = 'vs-dark';
+ } else {
+ body.setAttribute('class', '');
+ this.themeConfig.editorTheme = 'SolarizedLight';
+ }
+ },
},
});
diff --git a/mayfly_go_web/src/theme/common/transition.scss b/mayfly_go_web/src/theme/common/transition.scss
index 8d498e3b..ebc19d11 100644
--- a/mayfly_go_web/src/theme/common/transition.scss
+++ b/mayfly_go_web/src/theme/common/transition.scss
@@ -83,3 +83,42 @@
opacity: 1;
}
}
+
+/* 登录页动画
+------------------------------- */
+@keyframes loginLeft {
+ 0% {
+ left: -100%;
+ }
+ 50%,
+ 100% {
+ left: 100%;
+ }
+}
+@keyframes loginTop {
+ 0% {
+ top: -100%;
+ }
+ 50%,
+ 100% {
+ top: 100%;
+ }
+}
+@keyframes loginRight {
+ 0% {
+ right: -100%;
+ }
+ 50%,
+ 100% {
+ right: 100%;
+ }
+}
+@keyframes loginBottom {
+ 0% {
+ bottom: -100%;
+ }
+ 50%,
+ 100% {
+ bottom: 100%;
+ }
+}
\ No newline at end of file
diff --git a/mayfly_go_web/src/theme/element.scss b/mayfly_go_web/src/theme/element.scss
index 165df3f2..82f65ea8 100644
--- a/mayfly_go_web/src/theme/element.scss
+++ b/mayfly_go_web/src/theme/element.scss
@@ -335,8 +335,14 @@
/* Set padding to ensure the height is 32px */
// padding: 6px 12px;
background: linear-gradient(90deg, rgb(159, 229, 151), rgb(204, 229, 129));
- }
- .el-popper.is-customized .el-popper__arrow::before {
+}
+.el-popper.is-customized .el-popper__arrow::before {
background: linear-gradient(45deg, #b2e68d, #bce689);
right: 0;
- }
\ No newline at end of file
+}
+
+
+.el-dialog {
+ border-radius: 6px; /* 设置圆角 */
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); /* 添加轻微阴影效果 */
+}
\ No newline at end of file
diff --git a/mayfly_go_web/src/theme/loading.scss b/mayfly_go_web/src/theme/loading.scss
index c28c7b9d..3067324f 100644
--- a/mayfly_go_web/src/theme/loading.scss
+++ b/mayfly_go_web/src/theme/loading.scss
@@ -48,4 +48,4 @@
35% {
transform: scale3D(0, 0, 1);
}
-}
+}
\ No newline at end of file
diff --git a/mayfly_go_web/src/views/layout/lockScreen/index.vue b/mayfly_go_web/src/views/layout/lockScreen/index.vue
index 02d435ca..d6321710 100644
--- a/mayfly_go_web/src/views/layout/lockScreen/index.vue
+++ b/mayfly_go_web/src/views/layout/lockScreen/index.vue
@@ -213,7 +213,7 @@ onUnmounted(() => {
}
.layout-lock-screen-img {
@extend .layout-lock-screen-fixed;
- background: url('@/assets/image/bg-login.png') no-repeat;
+ background: url('@/assets/image/login-bg-main.svg') no-repeat;
background-size: 100% 100%;
z-index: 9999991;
}
diff --git a/mayfly_go_web/src/views/layout/navBars/breadcrumb/setings.vue b/mayfly_go_web/src/views/layout/navBars/breadcrumb/setings.vue
index 2c35d83f..82c7712b 100644
--- a/mayfly_go_web/src/views/layout/navBars/breadcrumb/setings.vue
+++ b/mayfly_go_web/src/views/layout/navBars/breadcrumb/setings.vue
@@ -374,7 +374,7 @@
-
+
diff --git a/mayfly_go_web/src/views/layout/navBars/breadcrumb/user.vue b/mayfly_go_web/src/views/layout/navBars/breadcrumb/user.vue
index 47342c18..61a5e063 100644
--- a/mayfly_go_web/src/views/layout/navBars/breadcrumb/user.vue
+++ b/mayfly_go_web/src/views/layout/navBars/breadcrumb/user.vue
@@ -56,7 +56,7 @@
-
+
{{ userInfo.name || userInfo.username }}
@@ -75,7 +75,7 @@
diff --git a/mayfly_go_web/src/views/login/index.vue b/mayfly_go_web/src/views/login/index.vue
index ccb077be..0bbf9528 100644
--- a/mayfly_go_web/src/views/login/index.vue
+++ b/mayfly_go_web/src/views/login/index.vue
@@ -1,68 +1,81 @@
-
-
-
{{ themeConfig.globalViceTitle }}
+
+
+
+
![]()
+
+ mayfly-go
+
+
+
+
+
![]()
+
+
-
-
-
mayfly-go
-
-
-
-
-
-
-
-
-
-
第三方登录:
-
-
-
-
-
-
-
+
+
+
+
+
+
mayfly-go
+
+
+
+ 第三方登录:
+
+
+
+
+
+
+
+
+
-
-