feat: 新增二级菜单子导航系统(SubNav + redirectMenu)

- 新增 SubNav 组件:Navbar 下方水平子导航条,展示当前二级菜单下的三级页面,支持滚动和下拉分组
- 新增 redirectMenu 页面:点击二级菜单时卡片式展示子页面列表
- SidebarItem 深度 >=1 时改为叶子节点渲染(小圆点标记),激活高亮回退到二级菜单
- Navbar 布局重构为 Flexbox,面包屑/SubNav 根据场景切换
- 新增 productionLine Vuex 模块,轧辊研磨页改为 store 方式读取产线数据
- Sidebar activeMenu 逻辑增强:自动定位当前页所属二级菜单
This commit is contained in:
2026-06-11 11:28:42 +08:00
parent 87913ba0a0
commit 3ad7bf40b5
11 changed files with 705 additions and 15 deletions

View File

@@ -494,9 +494,9 @@
<script>
import { listRollInfo, getRollInfo, addRollInfo, updateRollInfo, delRollInfo } from '@/api/mes/roll/rollInfo'
import { listRollGrind, addRollGrind, updateRollGrind, delRollGrind, getMonthlyStats } from '@/api/mes/roll/rollGrind'
import { listProductionLine } from '@/api/wms/productionLine'
import { listData, addData, updateData, delData } from '@/api/system/dict/data'
import rollLineMixin from '../rollLineMixin'
import { mapGetters } from 'vuex'
export default {
name: 'GrindRoom',
@@ -504,7 +504,6 @@ export default {
dicts: ['mes_roll_operator'],
data() {
return {
productionLines: [],
filterLineId: null,
lineTabOrder: [],
@@ -549,6 +548,8 @@ export default {
},
computed: {
...mapGetters(['productionLines']),
currentUserName() {
return this.$store.state.user.name || this.$store.getters.name || ''
},
@@ -606,9 +607,7 @@ export default {
this.filterLineId = this.lineId
const uid = this.$store.state.user?.userId || 0
try { this.lineTabOrder = JSON.parse(localStorage.getItem(`grind_line_order_${uid}`) || '[]') } catch { /* ignore */ }
listProductionLine({ pageNum: 1, pageSize: 100 }).then(res => {
this.productionLines = res.rows || []
})
this.$store.dispatch('productionLine/getProductionLines')
this.loadRolls()
},