change style

This commit is contained in:
Jeffrey Hsu 2025-02-12 00:19:31 +08:00
parent 48fc28d29a
commit bb4ed0f561
7 changed files with 286 additions and 219 deletions

View File

@ -34,12 +34,14 @@ function createWindow(): void {
minHeight: 728, minHeight: 728,
show: false, show: false,
autoHideMenuBar: true, autoHideMenuBar: true,
titleBarStyle: 'hidden', frame: false,
icon: icon, icon: icon,
webPreferences: { webPreferences: {
preload: join(__dirname, '../preload/index.js'), preload: join(__dirname, '../preload/index.js'),
sandbox: false sandbox: false
} },
vibrancy: 'fullscreen-ui',
backgroundMaterial: 'acrylic'
}) })
mainWindow.on('ready-to-show', () => { mainWindow.on('ready-to-show', () => {

File diff suppressed because one or more lines are too long

View File

@ -18,3 +18,18 @@
*/ */
@import "tailwindcss"; @import "tailwindcss";
body {
background: transparent;
}
/* Hide scrollbar for Chrome, Safari and Opera */
.no-scrollbar::-webkit-scrollbar {
display: none;
}
/* Hide scrollbar for IE, Edge and Firefox */
.no-scrollbar {
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}

File diff suppressed because one or more lines are too long

View File

@ -23,24 +23,28 @@ import { emitter } from '@renderer/utils/mitt'
import router from '@renderer/router' import router from '@renderer/router'
import { useGlobalStore } from '@renderer/store' import { useGlobalStore } from '@renderer/store'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { House, User, EditPen, MessageBox, Select } from '@element-plus/icons-vue'
const store = useGlobalStore() const store = useGlobalStore()
const { courseInfo } = storeToRefs(store) const { courseInfo } = storeToRefs(store)
const asideMenu = [ const asideMenu = [
{ title: '课程信息', route: 'panelIndex' }, { title: '课程信息', route: 'panelIndex', icon: House },
{ title: '学生管理', route: 'panelStudent' }, { title: '学生管理', route: 'panelStudent', icon: User },
{ title: '成绩录入', route: 'panelScore' }, { title: '成绩录入', route: 'panelScore', icon: EditPen },
{ title: '录入试卷', route: 'panelPaper' }, { title: '录入试卷', route: 'panelPaper', icon: MessageBox },
{ title: '完成导出', route: 'panelFinal' } { title: '完成导出', route: 'panelFinal', icon: Select }
] ]
const currentActiveIndex = ref(0) const currentActiveIndex = ref(0)
const expendMenu = ref(false)
const handleMenuItemClick = (idx: number) => { const handleMenuItemClick = (idx: number) => {
currentActiveIndex.value = idx currentActiveIndex.value = idx
router.push({ name: asideMenu[idx].route }) router.push({ name: asideMenu[idx].route })
} }
const handleMenuExpend = () => (expendMenu.value = !expendMenu.value)
onMounted(() => { onMounted(() => {
emitter.emit('titleBarShow', ['save']) emitter.emit('titleBarShow', ['save'])
if (courseInfo.value === null) { if (courseInfo.value === null) {
@ -50,19 +54,37 @@ onMounted(() => {
</script> </script>
<template> <template>
<div class="flex w-full"> <div class="flex w-full bg-white/75">
<aside class="h-full w-72 shrink-0 border-r border-dashed border-gray-200 bg-gray-100"> <aside
class="h-full w-15 shrink-0 overflow-hidden max-w-60 text-nowrap transition-all ease-in-out"
:class="{ 'w-full': expendMenu }"
>
<div
class="m-2 flex h-11 w-11 flex-col items-center justify-center gap-1 rounded-md transition-all hover:bg-gray-400/20"
@click="handleMenuExpend"
>
<div class="w-4 border-b" />
<div class="w-4 border-b" />
<div class="w-4 border-b" />
</div>
<div <div
v-for="(item, index) in asideMenu" v-for="(item, index) in asideMenu"
:key="index" :key="index"
class="m-2 flex h-12 cursor-pointer items-center justify-center rounded-xl text-lg transition-all hover:bg-blue-200 hover:text-white" class="relative m-2 flex h-11 cursor-pointer items-center overflow-hidden rounded-lg transition-all text hover:bg-gray-400/20"
:class="{ 'bg-blue-300 text-white': currentActiveIndex === index }" :class="{ 'bg-gray-400/20': currentActiveIndex === index }"
@click="handleMenuItemClick(index)" @click="handleMenuItemClick(index)"
> >
<div
v-show="currentActiveIndex === index"
class="absolute left-0 top-3 bottom-3 w-1 rounded-full bg-blue-500"
/>
<el-icon :size="20" class="mx-3"><component :is="item.icon" /></el-icon>
<p>{{ item.title }}</p> <p>{{ item.title }}</p>
</div> </div>
</aside> </aside>
<router-view class="grow overflow-y-scroll" /> <router-view
class="grow overflow-y-scroll rounded-tl-lg border-t border-l border-gray-300 bg-white shadow-lg no-scrollbar"
/>
</div> </div>
</template> </template>

View File

@ -82,7 +82,7 @@ const handleSubmit = () => {
</script> </script>
<template> <template>
<div class="relative flex flex-col items-center justify-center"> <div class="relative flex flex-col items-center justify-center bg-white">
<div <div
class="absolute top-4 left-32 cursor-pointer rounded border border-gray-300 px-4 shadow hover:bg-gray-100" class="absolute top-4 left-32 cursor-pointer rounded border border-gray-300 px-4 shadow hover:bg-gray-100"
@click="handleBack" @click="handleBack"

View File

@ -30,7 +30,7 @@ const handleFunctionClick = (ev: 'create' | 'open') => {
</script> </script>
<template> <template>
<div class="flex flex-col items-center justify-center gap-12"> <div class="flex flex-col items-center justify-center gap-12 bg-white">
<!-- 标题 --> <!-- 标题 -->
<div class="text-center leading-5"> <div class="text-center leading-5">
<p class="text-2xl">欢迎</p> <p class="text-2xl">欢迎</p>