前端配置调整
This commit is contained in:
parent
de264d3298
commit
a8931c8708
3
.gitignore
vendored
3
.gitignore
vendored
@ -42,6 +42,7 @@ build/
|
||||
# === 前端自动生成 ===
|
||||
**/components.d.ts
|
||||
**/typed-router.d.ts
|
||||
**/pnpm-lock.yaml
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
@ -57,8 +58,6 @@ target/
|
||||
|
||||
# === 测试结果 ===
|
||||
screenshots/
|
||||
*.png
|
||||
*.webm
|
||||
test-results/
|
||||
playwright-report/
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<!-- <link rel="icon" type="image/svg+xml" href="/vite.svg" /> -->
|
||||
<link rel="icon" href="/logo/logo.png" />
|
||||
<link rel="icon" href="/logo/logo/logo.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>少儿智慧阅读</title>
|
||||
<!-- 阿里云IMM -->
|
||||
|
||||
BIN
lesingle-edu-reading-platform-frontend/public/logo/logo.png
Normal file
BIN
lesingle-edu-reading-platform-frontend/public/logo/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
lesingle-edu-reading-platform-frontend/public/logo/logo2.png
Normal file
BIN
lesingle-edu-reading-platform-frontend/public/logo/logo2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 75 KiB |
BIN
lesingle-edu-reading-platform-frontend/public/logo/logo3.png
Normal file
BIN
lesingle-edu-reading-platform-frontend/public/logo/logo3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 127 KiB |
BIN
lesingle-edu-reading-platform-frontend/public/logo/logo4.png
Normal file
BIN
lesingle-edu-reading-platform-frontend/public/logo/logo4.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
@ -1,13 +1,8 @@
|
||||
<template>
|
||||
<a-layout :class="['admin-layout', { 'is-collapsed': collapsed }]">
|
||||
<a-layout-sider
|
||||
v-model:collapsed="collapsed"
|
||||
:trigger="null"
|
||||
collapsible
|
||||
class="admin-sider"
|
||||
>
|
||||
<a-layout-sider v-model:collapsed="collapsed" :trigger="null" collapsible class="admin-sider">
|
||||
<div class="logo">
|
||||
<img src="/logo.png" alt="Logo" class="logo-img" />
|
||||
<img src="/logo/logo.png" alt="Logo" class="logo-img" />
|
||||
<div v-if="!collapsed" class="logo-text">
|
||||
<span class="logo-title">少儿智慧阅读</span>
|
||||
<span class="logo-subtitle">服务管理后台</span>
|
||||
@ -15,14 +10,8 @@
|
||||
</div>
|
||||
|
||||
<div class="sider-menu-wrapper">
|
||||
<a-menu
|
||||
v-model:selectedKeys="selectedKeys"
|
||||
mode="inline"
|
||||
theme="light"
|
||||
:inline-collapsed="collapsed"
|
||||
@select="handleMenuSelect"
|
||||
class="side-menu"
|
||||
>
|
||||
<a-menu v-model:selectedKeys="selectedKeys" mode="inline" theme="light" :inline-collapsed="collapsed"
|
||||
@select="handleMenuSelect" class="side-menu">
|
||||
<a-menu-item key="dashboard">
|
||||
<template #icon>
|
||||
<LayoutDashboard :size="18" :stroke-width="1.5" />
|
||||
@ -78,16 +67,8 @@
|
||||
<a-layout>
|
||||
<a-layout-header class="admin-header">
|
||||
<div class="header-left">
|
||||
<MenuUnfoldOutlined
|
||||
v-if="collapsed"
|
||||
class="trigger"
|
||||
@click="collapsed = !collapsed"
|
||||
/>
|
||||
<MenuFoldOutlined
|
||||
v-else
|
||||
class="trigger"
|
||||
@click="collapsed = !collapsed"
|
||||
/>
|
||||
<MenuUnfoldOutlined v-if="collapsed" class="trigger" @click="collapsed = !collapsed" />
|
||||
<MenuFoldOutlined v-else class="trigger" @click="collapsed = !collapsed" />
|
||||
</div>
|
||||
|
||||
<div class="header-right">
|
||||
@ -95,7 +76,9 @@
|
||||
<a-dropdown>
|
||||
<a-space class="user-info" style="cursor: pointer;">
|
||||
<a-avatar :size="32" class="user-avatar">
|
||||
<template #icon><UserOutlined /></template>
|
||||
<template #icon>
|
||||
<UserOutlined />
|
||||
</template>
|
||||
</a-avatar>
|
||||
<span class="user-name">{{ userStore.user?.name }}</span>
|
||||
<DownOutlined />
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
<div class="login-card">
|
||||
<!-- Logo区域 -->
|
||||
<div class="logo-section">
|
||||
<img src="/logo.png" alt="Logo" class="logo-img" />
|
||||
<img src="/logo/logo.png" alt="Logo" class="logo-img" />
|
||||
<div class="brand-info">
|
||||
<h1>少儿智慧阅读</h1>
|
||||
<p>读启智慧,阅见未来</p>
|
||||
@ -20,54 +20,33 @@
|
||||
|
||||
<!-- 角色选择 -->
|
||||
<div class="role-section">
|
||||
<div
|
||||
v-for="role in roles"
|
||||
:key="role.value"
|
||||
:class="['role-btn', { active: formState.role === role.value }]"
|
||||
@click="selectRole(role.value)"
|
||||
>
|
||||
<div v-for="role in roles" :key="role.value" :class="['role-btn', { active: formState.role === role.value }]"
|
||||
@click="selectRole(role.value)">
|
||||
<component :is="role.icon" />
|
||||
<span>{{ role.label }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 登录表单 -->
|
||||
<a-form
|
||||
:model="formState"
|
||||
@finish="handleLogin"
|
||||
layout="vertical"
|
||||
class="login-form"
|
||||
>
|
||||
<a-form :model="formState" @finish="handleLogin" layout="vertical" class="login-form">
|
||||
<a-form-item name="account" :rules="[{ required: true, message: '请输入账号' }]">
|
||||
<a-input
|
||||
v-model:value="formState.account"
|
||||
placeholder="请输入账号"
|
||||
size="large"
|
||||
allow-clear
|
||||
>
|
||||
<template #prefix><UserOutlined /></template>
|
||||
<a-input v-model:value="formState.account" placeholder="请输入账号" size="large" allow-clear>
|
||||
<template #prefix>
|
||||
<UserOutlined />
|
||||
</template>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item name="password" :rules="[{ required: true, message: '请输入密码' }]">
|
||||
<a-input-password
|
||||
v-model:value="formState.password"
|
||||
placeholder="请输入密码"
|
||||
size="large"
|
||||
>
|
||||
<template #prefix><LockOutlined /></template>
|
||||
<a-input-password v-model:value="formState.password" placeholder="请输入密码" size="large">
|
||||
<template #prefix>
|
||||
<LockOutlined />
|
||||
</template>
|
||||
</a-input-password>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item>
|
||||
<a-button
|
||||
type="primary"
|
||||
html-type="submit"
|
||||
size="large"
|
||||
block
|
||||
:loading="loading"
|
||||
class="login-btn"
|
||||
>
|
||||
<a-button type="primary" html-type="submit" size="large" block :loading="loading" class="login-btn">
|
||||
登录
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
@ -77,12 +56,7 @@
|
||||
<div class="test-section">
|
||||
<div class="test-title">快速体验</div>
|
||||
<div class="test-list">
|
||||
<span
|
||||
v-for="acc in testAccounts"
|
||||
:key="acc.role"
|
||||
class="test-item"
|
||||
@click="fillAccount(acc)"
|
||||
>
|
||||
<span v-for="acc in testAccounts" :key="acc.role" class="test-item" @click="fillAccount(acc)">
|
||||
{{ acc.label }}: {{ acc.account }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<a-layout-sider v-if="!isMobile" v-model:collapsed="collapsed" :trigger="null" collapsible class="parent-sider"
|
||||
:width="220">
|
||||
<div class="logo">
|
||||
<img src="/logo.png" alt="Logo" class="logo-img" />
|
||||
<img src="/logo/logo.png" alt="Logo" class="logo-img" />
|
||||
<div v-if="!collapsed" class="logo-text">
|
||||
<span class="logo-title">少儿智慧阅读</span>
|
||||
<span class="logo-subtitle">家长端</span>
|
||||
@ -53,7 +53,7 @@
|
||||
class="mobile-drawer">
|
||||
<template #title>
|
||||
<div class="drawer-header">
|
||||
<img src="/logo.png" alt="Logo" class="drawer-logo" />
|
||||
<img src="/logo/logo.png" alt="Logo" class="drawer-logo" />
|
||||
<div class="drawer-title">
|
||||
<span class="title-main">少儿智慧阅读</span>
|
||||
<span class="title-sub">家长端</span>
|
||||
|
||||
@ -1,13 +1,8 @@
|
||||
<template>
|
||||
<a-layout :class="['school-layout', { 'is-collapsed': collapsed }]">
|
||||
<a-layout-sider
|
||||
v-model:collapsed="collapsed"
|
||||
:trigger="null"
|
||||
collapsible
|
||||
class="school-sider"
|
||||
>
|
||||
<a-layout-sider v-model:collapsed="collapsed" :trigger="null" collapsible class="school-sider">
|
||||
<div class="logo">
|
||||
<img src="/logo.png" alt="Logo" class="logo-img" />
|
||||
<img src="/logo/logo.png" alt="Logo" class="logo-img" />
|
||||
<div v-if="!collapsed" class="logo-text">
|
||||
<span class="logo-tenant">{{ tenantName }}</span>
|
||||
<span class="logo-title">少儿智慧阅读</span>
|
||||
@ -16,101 +11,134 @@
|
||||
</div>
|
||||
|
||||
<div class="sider-menu-wrapper">
|
||||
<a-menu
|
||||
v-model:selectedKeys="selectedKeys"
|
||||
v-model:openKeys="openKeys"
|
||||
mode="inline"
|
||||
theme="light"
|
||||
:inline-collapsed="collapsed"
|
||||
@click="handleMenuClick"
|
||||
class="side-menu"
|
||||
>
|
||||
<a-menu v-model:selectedKeys="selectedKeys" v-model:openKeys="openKeys" mode="inline" theme="light"
|
||||
:inline-collapsed="collapsed" @click="handleMenuClick" class="side-menu">
|
||||
<!-- 数据概览 - 独立一级菜单 -->
|
||||
<a-menu-item key="dashboard">
|
||||
<template #icon><DashboardOutlined /></template>
|
||||
<template #icon>
|
||||
<DashboardOutlined />
|
||||
</template>
|
||||
<span>数据概览</span>
|
||||
</a-menu-item>
|
||||
|
||||
<!-- 人员管理 -->
|
||||
<a-sub-menu key="staff">
|
||||
<template #icon><TeamOutlined /></template>
|
||||
<template #icon>
|
||||
<TeamOutlined />
|
||||
</template>
|
||||
<template #title>人员管理</template>
|
||||
<a-menu-item key="teachers">
|
||||
<template #icon><SolutionOutlined /></template>
|
||||
<template #icon>
|
||||
<SolutionOutlined />
|
||||
</template>
|
||||
<span>教师管理</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="students">
|
||||
<template #icon><UserOutlined /></template>
|
||||
<template #icon>
|
||||
<UserOutlined />
|
||||
</template>
|
||||
<span>学生管理</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="parents">
|
||||
<template #icon><IdcardOutlined /></template>
|
||||
<template #icon>
|
||||
<IdcardOutlined />
|
||||
</template>
|
||||
<span>家长管理</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="classes">
|
||||
<template #icon><HomeOutlined /></template>
|
||||
<template #icon>
|
||||
<HomeOutlined />
|
||||
</template>
|
||||
<span>班级管理</span>
|
||||
</a-menu-item>
|
||||
</a-sub-menu>
|
||||
|
||||
<!-- 教学管理 -->
|
||||
<a-sub-menu key="teaching">
|
||||
<template #icon><BookOutlined /></template>
|
||||
<template #icon>
|
||||
<BookOutlined />
|
||||
</template>
|
||||
<template #title>教学管理</template>
|
||||
<a-menu-item key="courses">
|
||||
<template #icon><ReadOutlined /></template>
|
||||
<template #icon>
|
||||
<ReadOutlined />
|
||||
</template>
|
||||
<span>课程中心</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="school-courses">
|
||||
<template #icon><FolderAddOutlined /></template>
|
||||
<template #icon>
|
||||
<FolderAddOutlined />
|
||||
</template>
|
||||
<span>校本课程包</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="schedule">
|
||||
<template #icon><CalendarOutlined /></template>
|
||||
<template #icon>
|
||||
<CalendarOutlined />
|
||||
</template>
|
||||
<span>课程排期</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="tasks">
|
||||
<template #icon><CheckSquareOutlined /></template>
|
||||
<template #icon>
|
||||
<CheckSquareOutlined />
|
||||
</template>
|
||||
<span>阅读任务</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="task-templates">
|
||||
<template #icon><CopyOutlined /></template>
|
||||
<template #icon>
|
||||
<CopyOutlined />
|
||||
</template>
|
||||
<span>任务模板</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="feedback">
|
||||
<template #icon><MessageOutlined /></template>
|
||||
<template #icon>
|
||||
<MessageOutlined />
|
||||
</template>
|
||||
<span>课程反馈</span>
|
||||
</a-menu-item>
|
||||
</a-sub-menu>
|
||||
|
||||
<!-- 数据中心 -->
|
||||
<a-sub-menu key="data">
|
||||
<template #icon><BarChartOutlined /></template>
|
||||
<template #icon>
|
||||
<BarChartOutlined />
|
||||
</template>
|
||||
<template #title>数据中心</template>
|
||||
<a-menu-item key="reports">
|
||||
<template #icon><FileTextOutlined /></template>
|
||||
<template #icon>
|
||||
<FileTextOutlined />
|
||||
</template>
|
||||
<span>数据报告</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="growth">
|
||||
<template #icon><FileImageOutlined /></template>
|
||||
<template #icon>
|
||||
<FileImageOutlined />
|
||||
</template>
|
||||
<span>成长档案</span>
|
||||
</a-menu-item>
|
||||
</a-sub-menu>
|
||||
|
||||
<!-- 系统管理 -->
|
||||
<a-sub-menu key="system">
|
||||
<template #icon><SettingOutlined /></template>
|
||||
<template #icon>
|
||||
<SettingOutlined />
|
||||
</template>
|
||||
<template #title>系统管理</template>
|
||||
<a-menu-item key="packages">
|
||||
<template #icon><GiftOutlined /></template>
|
||||
<template #icon>
|
||||
<GiftOutlined />
|
||||
</template>
|
||||
<span>套餐管理</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="operation-logs">
|
||||
<template #icon><HistoryOutlined /></template>
|
||||
<template #icon>
|
||||
<HistoryOutlined />
|
||||
</template>
|
||||
<span>操作日志</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="settings">
|
||||
<template #icon><ToolOutlined /></template>
|
||||
<template #icon>
|
||||
<ToolOutlined />
|
||||
</template>
|
||||
<span>系统设置</span>
|
||||
</a-menu-item>
|
||||
</a-sub-menu>
|
||||
@ -121,16 +149,8 @@
|
||||
<a-layout>
|
||||
<a-layout-header class="school-header">
|
||||
<div class="header-left">
|
||||
<MenuUnfoldOutlined
|
||||
v-if="collapsed"
|
||||
class="trigger"
|
||||
@click="collapsed = !collapsed"
|
||||
/>
|
||||
<MenuFoldOutlined
|
||||
v-else
|
||||
class="trigger"
|
||||
@click="collapsed = !collapsed"
|
||||
/>
|
||||
<MenuUnfoldOutlined v-if="collapsed" class="trigger" @click="collapsed = !collapsed" />
|
||||
<MenuFoldOutlined v-else class="trigger" @click="collapsed = !collapsed" />
|
||||
</div>
|
||||
|
||||
<div class="header-right">
|
||||
@ -138,7 +158,9 @@
|
||||
<a-dropdown>
|
||||
<a-space class="user-info" style="cursor: pointer;">
|
||||
<a-avatar :size="32" class="user-avatar">
|
||||
<template #icon><UserOutlined /></template>
|
||||
<template #icon>
|
||||
<UserOutlined />
|
||||
</template>
|
||||
</a-avatar>
|
||||
<span class="user-name">{{ userName }}</span>
|
||||
<DownOutlined />
|
||||
|
||||
@ -1,13 +1,8 @@
|
||||
<template>
|
||||
<a-layout :class="['teacher-layout', { 'is-collapsed': collapsed }]">
|
||||
<a-layout-sider
|
||||
v-model:collapsed="collapsed"
|
||||
:trigger="null"
|
||||
collapsible
|
||||
class="teacher-sider"
|
||||
>
|
||||
<a-layout-sider v-model:collapsed="collapsed" :trigger="null" collapsible class="teacher-sider">
|
||||
<div class="logo">
|
||||
<img src="/logo.png" alt="Logo" class="logo-img" />
|
||||
<img src="/logo/logo.png" alt="Logo" class="logo-img" />
|
||||
<div v-if="!collapsed" class="logo-text">
|
||||
<span class="logo-tenant">{{ tenantName }}</span>
|
||||
<span class="logo-title">少儿智慧阅读</span>
|
||||
@ -16,48 +11,60 @@
|
||||
</div>
|
||||
|
||||
<div class="sider-menu-wrapper">
|
||||
<a-menu
|
||||
v-model:selectedKeys="selectedKeys"
|
||||
mode="inline"
|
||||
theme="light"
|
||||
:inline-collapsed="collapsed"
|
||||
@click="handleMenuClick"
|
||||
class="side-menu"
|
||||
>
|
||||
<a-menu v-model:selectedKeys="selectedKeys" mode="inline" theme="light" :inline-collapsed="collapsed"
|
||||
@click="handleMenuClick" class="side-menu">
|
||||
<a-menu-item key="dashboard">
|
||||
<template #icon><HomeOutlined /></template>
|
||||
<template #icon>
|
||||
<HomeOutlined />
|
||||
</template>
|
||||
<span>首页</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="classes">
|
||||
<template #icon><TeamOutlined /></template>
|
||||
<template #icon>
|
||||
<TeamOutlined />
|
||||
</template>
|
||||
<span>我的班级</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="courses">
|
||||
<template #icon><BookOutlined /></template>
|
||||
<template #icon>
|
||||
<BookOutlined />
|
||||
</template>
|
||||
<span>课程中心</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="school-courses">
|
||||
<template #icon><FolderAddOutlined /></template>
|
||||
<template #icon>
|
||||
<FolderAddOutlined />
|
||||
</template>
|
||||
<span>校本课程包</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="lessons">
|
||||
<template #icon><CalendarOutlined /></template>
|
||||
<template #icon>
|
||||
<CalendarOutlined />
|
||||
</template>
|
||||
<span>上课记录</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="schedule">
|
||||
<template #icon><ScheduleOutlined /></template>
|
||||
<template #icon>
|
||||
<ScheduleOutlined />
|
||||
</template>
|
||||
<span>我的课表</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="tasks">
|
||||
<template #icon><CheckSquareOutlined /></template>
|
||||
<template #icon>
|
||||
<CheckSquareOutlined />
|
||||
</template>
|
||||
<span>阅读任务</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="feedback">
|
||||
<template #icon><FileTextOutlined /></template>
|
||||
<template #icon>
|
||||
<FileTextOutlined />
|
||||
</template>
|
||||
<span>课程反馈</span>
|
||||
</a-menu-item>
|
||||
<a-menu-item key="growth">
|
||||
<template #icon><CameraOutlined /></template>
|
||||
<template #icon>
|
||||
<CameraOutlined />
|
||||
</template>
|
||||
<span>成长档案</span>
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
@ -67,16 +74,8 @@
|
||||
<a-layout>
|
||||
<a-layout-header class="teacher-header">
|
||||
<div class="header-left">
|
||||
<MenuUnfoldOutlined
|
||||
v-if="collapsed"
|
||||
class="trigger"
|
||||
@click="collapsed = !collapsed"
|
||||
/>
|
||||
<MenuFoldOutlined
|
||||
v-else
|
||||
class="trigger"
|
||||
@click="collapsed = !collapsed"
|
||||
/>
|
||||
<MenuUnfoldOutlined v-if="collapsed" class="trigger" @click="collapsed = !collapsed" />
|
||||
<MenuFoldOutlined v-else class="trigger" @click="collapsed = !collapsed" />
|
||||
</div>
|
||||
|
||||
<div class="header-right">
|
||||
@ -84,7 +83,9 @@
|
||||
<a-dropdown>
|
||||
<a-space class="user-info" style="cursor: pointer;">
|
||||
<a-avatar :size="32" class="user-avatar">
|
||||
<template #icon><UserOutlined /></template>
|
||||
<template #icon>
|
||||
<UserOutlined />
|
||||
</template>
|
||||
</a-avatar>
|
||||
<span class="user-name">{{ userName }}</span>
|
||||
<DownOutlined />
|
||||
|
||||
Loading…
Reference in New Issue
Block a user