Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qr-consistency-vue3
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘怀志
qr-consistency-vue3
Commits
f4b10450
Commit
f4b10450
authored
Apr 14, 2025
by
qiyaxin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
顶部导航中英文双排显示
parent
9362f0b6
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
107 additions
and
49 deletions
+107
-49
sidebar.scss
src/assets/styles/sidebar.scss
+7
-5
variables.module.scss
src/assets/styles/variables.module.scss
+4
-4
cn.json
src/languageSwitch/cn.json
+0
-3
en.json
src/languageSwitch/en.json
+0
-5
Navbar.vue
src/layout/components/Navbar.vue
+57
-25
Logo.vue
src/layout/components/Sidebar/Logo.vue
+4
-4
cn.json
src/locales/menu/cn.json
+14
-0
en.json
src/locales/menu/en.json
+14
-0
index.js
src/router/index.js
+5
-1
index.vue
src/views/index.vue
+2
-2
No files found.
src/assets/styles/sidebar.scss
View file @
f4b10450
...
@@ -84,28 +84,30 @@
...
@@ -84,28 +84,30 @@
// menu hover
// menu hover
.sub-menu-title-noDropdown
,
.sub-menu-title-noDropdown
,
.el-sub-menu__title
{
.el-sub-menu__title
{
color
:
#FFFFFF
;
&
:hover
{
&
:hover
{
background-color
:
rgba
(
0
,
0
,
0
,
0
.1
)
!
important
;
background-color
:
#1E3277
!
important
;
}
}
}
}
&
.theme-dark
.is-active
>
.el-sub-menu__title
{
&
.theme-dark
.is-active
>
.el-sub-menu__title
{
color
:
$base-menu-color-active
!
important
;
//color: $base-menu-color-active !important;
background-color
:
#0D2B63
;
}
}
&
.nest-menu
.el-sub-menu
>
.el-sub-menu__title
,
&
.nest-menu
.el-sub-menu
>
.el-sub-menu__title
,
&
.el-sub-menu
.el-menu-item
{
&
.el-sub-menu
.el-menu-item
{
min-width
:
$base-sidebar-width
!
important
;
min-width
:
$base-sidebar-width
!
important
;
color
:
#0C214D
;
&
:hover
{
&
:hover
{
background-color
:
rgba
(
0
,
0
,
0
,
0
.1
)
!
important
;
background-color
:
#1E3277
!
important
;
color
:
#0154FB
;
}
}
}
}
&
.theme-dark
.nest-menu
.el-sub-menu
>
.el-sub-menu__title
,
&
.theme-dark
.nest-menu
.el-sub-menu
>
.el-sub-menu__title
,
&
.theme-dark
.el-sub-menu
.el-menu-item
{
&
.theme-dark
.el-sub-menu
.el-menu-item
{
background-color
:
$base-sub-menu-background
;
background-color
:
$base-sub-menu-background
;
&
:hover
{
&
:hover
{
background-color
:
$base-sub-menu-hover
!
important
;
background-color
:
$base-sub-menu-hover
!
important
;
}
}
...
...
src/assets/styles/variables.module.scss
View file @
f4b10450
...
@@ -10,7 +10,7 @@ $panGreen: #30b08f;
...
@@ -10,7 +10,7 @@ $panGreen: #30b08f;
// 默认主题变量
// 默认主题变量
//$menuText: #FFFFFF; //侧边栏各菜单文字颜色引用颜色
//$menuText: #FFFFFF; //侧边栏各菜单文字颜色引用颜色
$menuText
:
rgb
(
155
,
155
,
155
);
//
侧边栏各菜单文字颜色引用颜色(子和父颜色相同)
$menuText
:
rgb
(
155
,
155
,
155
);
//
$menuActiveText
:
#409eff
;
$menuActiveText
:
#409eff
;
$menuBg
:
#123881
;
$menuBg
:
#123881
;
$menuHover
:
#1B51B4
;
$menuHover
:
#1B51B4
;
...
@@ -27,10 +27,10 @@ $sideBarWidth: 200px;
...
@@ -27,10 +27,10 @@ $sideBarWidth: 200px;
// 菜单暗色变量
// 菜单暗色变量
$base-menu-color
:
#bfcbd9
;
$base-menu-color
:
#bfcbd9
;
$base-menu-color-active
:
#FFFFFF
;
//选中菜单标题
背景
色
$base-menu-color-active
:
#FFFFFF
;
//选中菜单标题
文字颜
色
$base-menu-background
:
#143468
;
$base-menu-background
:
#143468
;
$base-sub-menu-background
:
#ffffff
;
//选中展开的子菜单背景色
$base-sub-menu-background
:
#ffffff
;
//选中展开的子菜单背景色
$base-sub-menu-hover
:
#f4f4f
5
;
//鼠标悬停处子菜单背景色
$base-sub-menu-hover
:
#f4f4f
9
;
//鼠标悬停处子菜单背景色
// 组件变量
// 组件变量
$--color-primary
:
#409eff
;
$--color-primary
:
#409eff
;
...
@@ -92,7 +92,7 @@ html.dark {
...
@@ -92,7 +92,7 @@ html.dark {
/* 侧边栏 */
/* 侧边栏 */
--sidebar-bg
:
#141414
;
--sidebar-bg
:
#141414
;
--sidebar-text
:
#ffffff
;
//////////////
--sidebar-text
:
#ffffff
;
--menu-hover
:
#2d2d2d
;
--menu-hover
:
#2d2d2d
;
--menu-active-text
:
#{
$menuActiveText
}
;
--menu-active-text
:
#{
$menuActiveText
}
;
...
...
src/languageSwitch/cn.json
deleted
100644 → 0
View file @
9362f0b6
{
"title"
:
"奇瑞后台管理框架"
}
src/languageSwitch/en.json
deleted
100644 → 0
View file @
9362f0b6
{
"title"
:
"Chery back office management framework"
,
"logo"
:
"Chery consistency"
}
src/layout/components/Navbar.vue
View file @
f4b10450
...
@@ -6,40 +6,46 @@
...
@@ -6,40 +6,46 @@
class=
"hamburger-container"
class=
"hamburger-container"
@
toggle-click=
"toggleSideBar"
@
toggle-click=
"toggleSideBar"
/>
/>
<el-scrollbar
class=
"navbar-scrollbar"
>
<div
class=
"navbar-item-menu"
>
<div
class=
"navbar-item-menu"
>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div>
控制计划管理
</div>
<div>
{{
cn
.
controlPlanManagement
}}
<br>
{{
en
.
controlPlanManagement
}}
</div>
</div>
</div>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div>
整车确认检验
</div>
<div>
{{
cn
.
completeVehicleValidationInspection
}}
<br>
{{
en
.
completeVehicleValidationInspection
}}
</div>
</div>
</div>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div>
生产装配一致性
</div>
<div>
{{
cn
.
productionAssemblyConsistency
}}
<br>
{{
en
.
productionAssemblyConsistency
}}
</div>
</div>
</div>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div>
零部件一致性
</div>
<div>
{{
cn
.
componentConsistency
}}
<br>
{{
en
.
componentConsistency
}}
</div>
</div>
</div>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div>
业务数据查询
</div>
<div>
{{
cn
.
vehicleProductConsistency
}}
<br>
{{
en
.
vehicleProductConsistency
}}
</div>
</div>
</div>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div>
其他事项管理
</div>
<div>
{{
cn
.
serviceDataQuery
}}
<br>
{{
en
.
serviceDataQuery
}}
</div>
</div>
</div>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div>
外审管理
</div>
<div>
{{
cn
.
managementOfOtherMatters
}}
<br>
{{
en
.
managementOfOtherMatters
}}
</div>
</div>
</div>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div>
系统管理
</div>
<div>
{{
cn
.
externalAuditManagement
}}
<br>
{{
en
.
externalAuditManagement
}}
</div>
</div>
<div
@
click=
"switchMenu"
class=
"navbar-item-menu-div"
>
<div
class=
"navbar-item-menu-div-img"
><img
src=
"@/assets/icons/svg/whitesquare.png"
></div>
<div>
{{
cn
.
systemManagement
}}
<br>
{{
en
.
systemManagement
}}
</div>
</div>
</div>
</div>
</div>
</el-scrollbar>
<!--
<breadcrumb-->
<!--
<breadcrumb-->
<!-- v-if="!settingsStore.topNav"-->
<!-- v-if="!settingsStore.topNav"-->
<!-- id="breadcrumb-container"-->
<!-- id="breadcrumb-container"-->
...
@@ -125,6 +131,9 @@ import RuoYiDoc from '@/components/RuoYi/Doc'
...
@@ -125,6 +131,9 @@ import RuoYiDoc from '@/components/RuoYi/Doc'
import
useAppStore
from
'@/store/modules/app'
import
useAppStore
from
'@/store/modules/app'
import
useUserStore
from
'@/store/modules/user'
import
useUserStore
from
'@/store/modules/user'
import
useSettingsStore
from
'@/store/modules/settings'
import
useSettingsStore
from
'@/store/modules/settings'
// 中英文页面文字引入
import
cn
from
'@/locales/menu/cn.json'
;
import
en
from
'@/locales/menu/en.json'
;
const
appStore
=
useAppStore
()
const
appStore
=
useAppStore
()
const
userStore
=
useUserStore
()
const
userStore
=
useUserStore
()
...
@@ -179,25 +188,48 @@ function toggleTheme() {
...
@@ -179,25 +188,48 @@ function toggleTheme() {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.navbar
{
.navbar
{
height
:
60px
;
height
:
60px
;
overflow
:
hidden
;
background
:
#123881
;
position
:
relative
;
color
:
#FFFFFF
;
//background: var(--navbar-bg);
display
:
flex
;
background
:
#123881
;
//
color
:
#FFFFFF
;
//
display
:
flex
;
//
box-shadow
:
0
1px
4px
rgba
(
0
,
21
,
41
,
0
.08
);
box-shadow
:
0
1px
4px
rgba
(
0
,
21
,
41
,
0
.08
);
.navbar-item-menu
{
//
.navbar-scrollbar
{
cursor
:
pointer
;
width
:
calc
(
100%
-
40px
);
margin-right
:
40px
;
overflow-x
:
auto
;
overflow-y
:
hidden
;
white-space
:
nowrap
;
display
:
flex
;
display
:
flex
;
margin
:
18px
0
15px
23px
;
align-items
:
center
;
.navbar-item-menu-div
{
justify-content
:
flex-start
;
display
:
flex
;
padding-right
:
32px
;
.navbar-item-menu
{
font-size
:
14px
;
cursor
:
pointer
;
.navbar-item-menu-div-img
{
display
:
inline-flex
;
margin-right
:
8px
;
align-items
:
center
;
margin-top
:
1px
;
.navbar-item-menu-div
{
width
:
250px
;
margin-right
:
32px
;
display
:
inline-flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
14px
;
.navbar-item-menu-div-img
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
8px
;
}
div
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
text-align
:
center
;
white-space
:
pre-line
;
}
}
}
}
}
}
}
...
@@ -235,7 +267,7 @@ function toggleTheme() {
...
@@ -235,7 +267,7 @@ function toggleTheme() {
height
:
100%
;
height
:
100%
;
line-height
:
50px
;
line-height
:
50px
;
display
:
flex
;
display
:
flex
;
margin-left
:
400px
;
//
//
margin-left: 400px; //
&
:focus
{
&
:focus
{
outline
:
none
;
outline
:
none
;
}
}
...
...
src/layout/components/Sidebar/Logo.vue
View file @
f4b10450
...
@@ -8,11 +8,11 @@
...
@@ -8,11 +8,11 @@
to=
"/"
to=
"/"
>
>
<img
v-if=
"logo"
:src=
"logo"
class=
"sidebar-logo"
/>
<img
v-if=
"logo"
:src=
"logo"
class=
"sidebar-logo"
/>
<h1
v-else
class=
"sidebar-title"
>
{{
title
}}
</h1>
<h1
v-else
class=
"sidebar-title"
>
{{
cn
.
logo
}}
</h1>
</router-link>
</router-link>
<router-link
v-else
key=
"expand"
class=
"sidebar-logo-link"
to=
"/"
>
<router-link
v-else
key=
"expand"
class=
"sidebar-logo-link"
to=
"/"
>
<!--
<img
v-if=
"logo"
:src=
"logo"
class=
"sidebar-logo"
/>
-->
<!--
<img
v-if=
"logo"
:src=
"logo"
class=
"sidebar-logo"
/>
-->
<h1
class=
"sidebar-title"
>
{{
title
}}
</h1>
<h1
class=
"sidebar-title"
>
{{
cn
.
logo
}}
</h1>
<h1
class=
"sidebar-title"
>
{{
en
.
logo
}}
</h1>
<h1
class=
"sidebar-title"
>
{{
en
.
logo
}}
</h1>
</router-link>
</router-link>
</transition>
</transition>
...
@@ -24,8 +24,8 @@ import logo from '@/assets/logo/logo.png'
...
@@ -24,8 +24,8 @@ import logo from '@/assets/logo/logo.png'
import
useSettingsStore
from
'@/store/modules/settings'
import
useSettingsStore
from
'@/store/modules/settings'
import
variables
from
'@/assets/styles/variables.module.scss'
import
variables
from
'@/assets/styles/variables.module.scss'
// 中英文页面文字引入
// 中英文页面文字引入
import
cn
from
'@/l
anguageSwitch
/cn.json'
;
import
cn
from
'@/l
ocales/menu
/cn.json'
;
import
en
from
'@/l
anguageSwitch
/en.json'
;
import
en
from
'@/l
ocales/menu
/en.json'
;
defineProps
({
defineProps
({
collapse
:
{
collapse
:
{
type
:
Boolean
,
type
:
Boolean
,
...
...
src/locales/menu/cn.json
0 → 100644
View file @
f4b10450
{
"title"
:
"奇瑞后台管理框架"
,
"logo"
:
"奇瑞一致性"
,
"index"
:
"首页"
,
"controlPlanManagement"
:
"控制计划管理"
,
"completeVehicleValidationInspection"
:
"整车确认检验"
,
"productionAssemblyConsistency"
:
"生产装配一致性"
,
"componentConsistency"
:
"零部件一致性"
,
"vehicleProductConsistency"
:
"整车产品一致性"
,
"serviceDataQuery"
:
"业务数据查询"
,
"managementOfOtherMatters"
:
"其他事项管理"
,
"externalAuditManagement"
:
"外审管理"
,
"systemManagement"
:
"系统管理"
}
src/locales/menu/en.json
0 → 100644
View file @
f4b10450
{
"title"
:
"Chery back office management framework"
,
"logo"
:
"Chery consistency"
,
"index"
:
"Home Page"
,
"controlPlanManagement"
:
"Control Plan Management"
,
"completeVehicleValidationInspection"
:
"Complete vehicle validation inspection"
,
"productionAssemblyConsistency"
:
"Production assembly consistency"
,
"componentConsistency"
:
"Component consistency"
,
"vehicleProductConsistency"
:
"Vehicle product consistency"
,
"serviceDataQuery"
:
"Service data query"
,
"managementOfOtherMatters"
:
"Management of other matters"
,
"externalAuditManagement"
:
"External audit management"
,
"systemManagement"
:
"System Management"
}
src/router/index.js
View file @
f4b10450
...
@@ -23,6 +23,10 @@ import Layout from '@/layout'
...
@@ -23,6 +23,10 @@ import Layout from '@/layout'
activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
}
}
*/
*/
// 引入 en.json cn.json 文件
import
menuCnJson
from
'@/locales/menu/cn.json'
;
import
menuEnJson
from
'@/locales/menu/en.json'
;
// 公共路由
// 公共路由
export
const
constantRoutes
=
[
export
const
constantRoutes
=
[
...
@@ -66,7 +70,7 @@ export const constantRoutes = [
...
@@ -66,7 +70,7 @@ export const constantRoutes = [
path
:
'/index'
,
path
:
'/index'
,
component
:
()
=>
import
(
'@/views/index'
),
component
:
()
=>
import
(
'@/views/index'
),
name
:
'Index'
,
name
:
'Index'
,
meta
:
{
title
:
'首页'
,
icon
:
'dashboard'
,
affix
:
true
},
meta
:
{
title
:
"首页"
,
icon
:
'dashboard'
,
affix
:
true
},
},
},
],
],
},
},
...
...
src/views/index.vue
View file @
f4b10450
...
@@ -72,8 +72,8 @@
...
@@ -72,8 +72,8 @@
<
script
setup
name=
"Index"
>
<
script
setup
name=
"Index"
>
// 中英文页面文字引入
// 中英文页面文字引入
import
cn
from
'@/l
anguageSwitch
/cn.json'
;
import
cn
from
'@/l
ocales/menu
/cn.json'
;
import
en
from
'@/l
anguageSwitch
/en.json'
;
import
en
from
'@/l
ocales/menu
/en.json'
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment