diff --git a/src/App.vue b/src/App.vue index 324d747..a603e15 100644 --- a/src/App.vue +++ b/src/App.vue @@ -78,6 +78,9 @@ .app-header { --el-header-height: var(--header-height); --el-loading-spinner-size: 30px; + position: sticky; + z-index: 1000; + top: 0; background-color: white; border-bottom: 1px solid var(--el-border-color); // 侧边栏需要居中 @@ -92,7 +95,7 @@ .app-router-view-enter-active, .app-router-view-leave-active { - transition: opacity 0.4s ease; + transition: opacity 0.25s ease; } .app-router-view-enter-from, diff --git a/src/assets/global.scss b/src/assets/global.scss index 2a9cb21..d84a028 100644 --- a/src/assets/global.scss +++ b/src/assets/global.scss @@ -31,6 +31,9 @@ body { .justify-center { justify-content: center; } +.justify-between { + justify-content: space-between; +} .justify-end { justify-content: flex-end; } diff --git a/src/components/app/HeaderMenu.vue b/src/components/app/HeaderMenu.vue index babfeac..893653f 100644 --- a/src/components/app/HeaderMenu.vue +++ b/src/components/app/HeaderMenu.vue @@ -23,6 +23,7 @@ .app-header-menu--horizontal { flex: 1; margin-right: 10px; + border-bottom: none; } .app-header-menu :is(.el-menu-item, .el-sub-menu__title) { user-select: none; diff --git a/src/components/gobang/GobangHeader.vue b/src/components/gobang/GobangHeader.vue new file mode 100644 index 0000000..229bc43 --- /dev/null +++ b/src/components/gobang/GobangHeader.vue @@ -0,0 +1,22 @@ + + + + + 五子棋 + + + + + + diff --git a/src/router/index.ts b/src/router/index.ts index 419db70..b6e7dd8 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -66,33 +66,29 @@ router.beforeEach(async (to) => { const pageStore = usePageStore(); const { permissionId } = to.meta; pageStore.setNewRouteId(to); - try { - if (!userStore.userInfo) { - const succeed = await userStore.updateSelfUserInfo(true); - if (!succeed) { - if (permissionId === undefined) { - return true; - } - return pageStore.createTempErrorRoute( - { - type: PageErrorType.NETWORK_ERROR, - }, - to, - ); - } - } - if (to.meta.shouldLogin && !userStore.logined) { - return pageStore.createTempErrorRoute({ type: PageErrorType.NOT_LOGIN }, to); - } - if (permissionId) { - if (userStore.hasPermission(permissionId)) { + if (!userStore.userInfo) { + const succeed = await userStore.updateSelfUserInfo(true); + if (!succeed) { + if (permissionId === undefined) { return true; - } else { - return pageStore.createTempErrorRoute({ type: PageErrorType.NO_PERMISSION }, to); } + return pageStore.createTempErrorRoute( + { + type: PageErrorType.NETWORK_ERROR, + }, + to, + ); + } + } + if (to.meta.shouldLogin && !userStore.logined) { + return pageStore.createTempErrorRoute({ type: PageErrorType.NOT_LOGIN }, to); + } + if (permissionId) { + if (userStore.hasPermission(permissionId)) { + return true; + } else { + return pageStore.createTempErrorRoute({ type: PageErrorType.NO_PERMISSION }, to); } - } finally { - pageStore.removeRouteId(to); } return true; }); diff --git a/src/utils/2d-array.ts b/src/utils/2d-array.ts index 7810309..478c2ae 100644 --- a/src/utils/2d-array.ts +++ b/src/utils/2d-array.ts @@ -1,6 +1,10 @@ -export function create2DArray(height: number, width: number, cell: T | (() => T)): T[][] { - return Array.from({ length: height }, () => - Array.from({ length: width }, () => (cell instanceof Function ? cell() : cell)), +export function create2DArray( + height: number, + width: number, + cell: T | ((x: number, y: number) => T), +): T[][] { + return Array.from({ length: height }, (_, y) => + Array.from({ length: width }, (_, x) => (cell instanceof Function ? cell(x, y) : cell)), ); } diff --git a/src/views/GobangListPage.vue b/src/views/GobangListPage.vue index b3f62da..2e28819 100644 --- a/src/views/GobangListPage.vue +++ b/src/views/GobangListPage.vue @@ -1,15 +1,13 @@ - - - - 五子棋 + + 刷新 创建房间 - 单人游戏 + 单人游戏 - + diff --git a/src/views/GobangPlayPage.vue b/src/views/GobangPlayPage.vue index d03eaf2..9638880 100644 --- a/src/views/GobangPlayPage.vue +++ b/src/views/GobangPlayPage.vue @@ -1,15 +1,188 @@ - - + + + + + + 蓝色基因对战平台 + #{{ roomId.slice(0, 8) }} + + + + + + + + + + + + + + + + + + diff --git a/vite.config.ts b/vite.config.ts index d41b7fc..b08576e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -30,7 +30,12 @@ export default defineConfig({ customCollections: ['cs'], }), ], - globs: ['!src/components/**/*.vue', '!src/views/**/*.vue'], + globs: [ + '!src/components/*.vue', + '!src/components/**/*.vue', + '!src/views/*.vue', + '!src/views/**/*.vue', + ], }), Icons({ autoInstall: true,