Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4fd6ef4be5 | ||
|
|
b3c191ee99 | ||
|
|
bbef46b645 |
No files matched your search
@@ -0,0 +1,50 @@
|
||||
-- Issue #100:移除多余一级菜单「实验室样本处理数据」及其子菜单/按钮
|
||||
-- 软删除 sys_menu 与对应 sys_role_menu;不影响质检管理下 lab-sample-process 台账
|
||||
-- MySQL 5.7,可重复执行
|
||||
|
||||
-- 1) 角色菜单授权
|
||||
UPDATE sys_role_menu rm
|
||||
JOIN sys_menu m ON m.id = rm.menu_id
|
||||
SET rm.del_flag = 1,
|
||||
rm.update_by = 'migration',
|
||||
rm.update_time = NOW()
|
||||
WHERE rm.del_flag = 0
|
||||
AND (
|
||||
m.perms IN (
|
||||
'menu:lab-sample-processing',
|
||||
'lab:sample-processing:list',
|
||||
'lab:sample-processing:market:edit',
|
||||
'lab:sample-processing:production:edit',
|
||||
'lab:sample-processing:qc:edit',
|
||||
'lab:sample-processing:manager'
|
||||
)
|
||||
OR m.path IN (
|
||||
'/lab-sample-processing',
|
||||
'lab-sample-processing/hsc',
|
||||
'lab-sample-processing/ubmc',
|
||||
'lab-sample-processing/msc'
|
||||
)
|
||||
);
|
||||
|
||||
-- 2) 按钮 / 子菜单 / 一级菜单(先叶子后父级,同批软删即可)
|
||||
UPDATE sys_menu
|
||||
SET del_flag = 1,
|
||||
update_by = 'migration',
|
||||
update_time = NOW()
|
||||
WHERE del_flag = 0
|
||||
AND (
|
||||
perms IN (
|
||||
'menu:lab-sample-processing',
|
||||
'lab:sample-processing:list',
|
||||
'lab:sample-processing:market:edit',
|
||||
'lab:sample-processing:production:edit',
|
||||
'lab:sample-processing:qc:edit',
|
||||
'lab:sample-processing:manager'
|
||||
)
|
||||
OR path IN (
|
||||
'/lab-sample-processing',
|
||||
'lab-sample-processing/hsc',
|
||||
'lab-sample-processing/ubmc',
|
||||
'lab-sample-processing/msc'
|
||||
)
|
||||
);
|
||||
@@ -1313,59 +1313,6 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
|
||||
]
|
||||
},
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// 3b. 实验室样本处理数据 (menu:lab-sample-processing)
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
{
|
||||
id: 'TOP0000000000000000000000000000L1',
|
||||
name: 'LabSampleProcessing',
|
||||
path: '/lab-sample-processing',
|
||||
component: '/index/index',
|
||||
meta: {
|
||||
title: '实验室样本处理数据',
|
||||
icon: 'ri:test-tube-line',
|
||||
keepAlive: false,
|
||||
isTopMenu: true,
|
||||
menuCode: 'menu:lab-sample-processing',
|
||||
roles: ['admin']
|
||||
},
|
||||
children: [
|
||||
{
|
||||
id: 'LAB00000000000000000000000000001',
|
||||
name: 'LabSampleProcessingHsc',
|
||||
path: 'hsc',
|
||||
component: '/lab-sample-processing/hsc/index',
|
||||
meta: {
|
||||
title: '造血干细胞数据',
|
||||
keepAlive: true,
|
||||
menuCode: 'lab:sample-processing:list'
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'LAB00000000000000000000000000002',
|
||||
name: 'LabSampleProcessingUbmc',
|
||||
path: 'ubmc',
|
||||
component: '/lab-sample-processing/ubmc/index',
|
||||
meta: {
|
||||
title: '单个核数据',
|
||||
keepAlive: true,
|
||||
menuCode: 'lab:sample-processing:list'
|
||||
}
|
||||
},
|
||||
{
|
||||
id: 'LAB00000000000000000000000000003',
|
||||
name: 'LabSampleProcessingMsc',
|
||||
path: 'msc',
|
||||
component: '/lab-sample-processing/msc/index',
|
||||
meta: {
|
||||
title: '脐带间充质干细胞数据',
|
||||
keepAlive: true,
|
||||
menuCode: 'lab:sample-processing:list'
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
// ═══════════════════════════════════════════════════════════════════════════
|
||||
// 4. 运营支撑 (menu:operations)
|
||||
// 二级菜单:系统基础信息、运营支撑
|
||||
|
||||
@@ -3,19 +3,23 @@
|
||||
<template>
|
||||
<div class="page-container">
|
||||
<section class="panel">
|
||||
<div class="panel-top">
|
||||
<h2 class="title-bar-heading">实验室样本处理数据</h2>
|
||||
<div class="panel-pill-tabs panel-pill-tabs--lg">
|
||||
<div class="panel-pill-tabs__track" role="tablist">
|
||||
<button
|
||||
v-for="tab in LAB_PROCESS_TABS"
|
||||
:key="tab.key"
|
||||
type="button"
|
||||
role="tab"
|
||||
class="panel-pill-tabs__btn"
|
||||
:class="{ 'is-active': activeTab === tab.key }"
|
||||
:aria-selected="activeTab === tab.key"
|
||||
@click="handleTabChange(tab.key)"
|
||||
>
|
||||
{{ tab.label }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-tabs v-model="activeTab" class="lab-process-tabs" @tab-change="handleTabChange">
|
||||
<el-tab-pane
|
||||
v-for="tab in LAB_PROCESS_TABS"
|
||||
:key="tab.key"
|
||||
:label="tab.label"
|
||||
:name="tab.key"
|
||||
/>
|
||||
</el-tabs>
|
||||
|
||||
<div class="filter-block">
|
||||
<el-form :model="searchForm" class="filter-form" @submit.prevent>
|
||||
<div class="filter-grid">
|
||||
@@ -252,7 +256,9 @@
|
||||
handleSearch()
|
||||
}
|
||||
|
||||
function handleTabChange() {
|
||||
function handleTabChange(name: LabSampleProcessTabKey) {
|
||||
if (activeTab.value === name) return
|
||||
activeTab.value = name
|
||||
pagination.page = 1
|
||||
loadData()
|
||||
}
|
||||
@@ -335,10 +341,6 @@
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.lab-process-tabs {
|
||||
margin: 0 0 12px;
|
||||
}
|
||||
|
||||
.form-tip {
|
||||
margin: 0 0 12px;
|
||||
color: var(--mint-text-muted, #6b7280);
|
||||
|
||||
Reference in new issue
Block a user