feat(ui): 顶部工具栏隐藏并重设计欢迎页仪表盘

- website.js中新增配置项关闭顶部语言切换、主题切换、日志和设置按钮
- top组件根据配置动态隐藏语言切换和设置按钮,仅保留用户头像下拉
- 默认主题改为浅色theme-d2,需手动切换或清空旧主题存储
- 完全重写欢迎页,移除默认营销内容,设计为TMS-ERP业务仪表盘,使用纯SVG/CSS绘图
- 欢迎页包括用户问候、四个核心指标卡、运单趋势、货物类型分布、运输方式占比、预警提醒和快捷入口
- 快捷入口路径模拟真实路由,需与后端菜单一致
- 对车辆里程录入界面搜索栏做细节调整,添加更合理的搜索字段宽度
- user模块中默认用户头像改为jpg格式图片
- vite配置文件新增多项插件和生产环境下的压缩优化配置
This commit is contained in:
2026-07-31 19:04:57 +08:00
parent a9fd78b5b9
commit c270258b7b
9 changed files with 836 additions and 1511 deletions

View File

@@ -24,14 +24,16 @@ export default {
setting: {
sidebar: 'vertical',
tag: true,
debug: true,
debug: false,
collapse: true,
search: true,
color: true,
lock: true,
search: false,
color: false,
lock: false,
screenshot: true,
fullscreen: true,
fullscreen: false,
theme: true,
lang: false,
settingBtn: false,
menu: true,
},
//首页配置

View File

@@ -47,6 +47,7 @@ export const option = {
dicData: vehicleTypeDic,
value: '车辆',
search: true,
searchSpan: 6,
minWidth: 110,
rules: [{ required: true, message: '请选择车船类型', trigger: 'change' }],
},
@@ -56,6 +57,7 @@ export const option = {
slot: true,
formslot: true,
search: true,
searchSpan: 6,
minWidth: 130,
rules: [
{ required: true, message: '请输入车牌号/船号', trigger: 'blur' },
@@ -175,6 +177,7 @@ export const option = {
valueFormat: 'YYYY-MM-DD',
searchRange: true,
search: true,
searchSpan: 6,
hide: true,
addDisplay: false,
editDisplay: false,
@@ -191,6 +194,7 @@ export const option = {
},
checkStrictly: true,
search: true,
searchSpan: 6,
hide: true,
addDisplay: false,
editDisplay: false,

View File

@@ -23,7 +23,7 @@
<div v-if="setting.lock" class="top-bar__item">
<top-lock></top-lock>
</div>
<div class="top-bar__item">
<div v-if="setting.lang" class="top-bar__item">
<top-lang></top-lang>
</div>
<div class="top-bar__item" v-if="setting.fullscreen">
@@ -43,12 +43,12 @@
</span>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item @click="toDashboard">
<i class="icon-zuzhixiaxia" /> {{ $t('navbar.dashboard') }}
</el-dropdown-item>
<el-dropdown-item @click="toAllMenu">
<i class="icon-liebiao" /> {{ $t('navbar.allMenu') }}
</el-dropdown-item>
<!-- <el-dropdown-item @click="toDashboard">-->
<!-- <i class="icon-zuzhixiaxia" /> {{ $t('navbar.dashboard') }}-->
<!-- </el-dropdown-item>-->
<!-- <el-dropdown-item @click="toAllMenu">-->
<!-- <i class="icon-liebiao" /> {{ $t('navbar.allMenu') }}-->
<!-- </el-dropdown-item>-->
<el-dropdown-item @click="toInfo">
<i class="icon-yonghu" />{{ $t('navbar.userinfo') }}
</el-dropdown-item>
@@ -108,7 +108,7 @@
</el-dropdown-menu>
</template>
</el-dropdown>
<top-setting></top-setting>
<top-setting v-if="setting.settingBtn"></top-setting>
<el-dialog title="请选择身份信息后切换" append-to-body v-model="userBox" width="400px">
<avue-form :option="userOption" v-model="userForm" @submit="toAll" />
</el-dialog>

View File

@@ -18,7 +18,7 @@ const common = {
!storedColorName || LEGACY_PRIMARY_COLORS.includes(String(storedColorName).toUpperCase())
? DEFAULT_PRIMARY_COLOR
: storedColorName,
themeName: getStore({ name: 'themeName' }) || 'theme-go',
themeName: getStore({ name: 'themeName' }) || 'theme-d2',
lockPasswd: getStore({ name: 'lockPasswd' }) || '',
website: website,
setting: website.setting,

View File

@@ -308,7 +308,7 @@ const user = {
state.userInfo = { user_name: 'unauth', role_name: 'unauth', authority: 'unauth' };
} else {
if (validatenull(userInfo.avatar)) {
userInfo.avatar = '/img/bg/img-logo.png';
userInfo.avatar = '/img/bg/img-logo.jpg';
}
if (!validatenull(userInfo.role_name)) {
userInfo.roleName = userInfo.role_name;

File diff suppressed because it is too large Load Diff