feat: 驾驶舱改名经营看板+改善行动闭环按钮+统一菜单名
This commit is contained in:
@@ -44,7 +44,7 @@
|
||||
<div class="step-content">
|
||||
<h4>③ 编制全面预算</h4>
|
||||
<p>按对齐后的目标分配资源,编制收入/成本/费用/投资预算。从此预算不再是财务部闭门造,而是从战略自上而下对齐出来的。</p>
|
||||
<div class="step-preview">💰 预算管理 → 驾驶舱监控执行 → 差异分析 → 改善行动</div>
|
||||
<div class="step-preview">💰 预算管理 → 经营看板监控执行 → 差异分析 → 改善行动</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -49,7 +49,7 @@ export const MENU_ITEMS: MenuItem[] = [
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
// GROUP 3: 监控与评价(Check)
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
{ path: '/dashboard', label: '驾驶舱', icon: 'DataBoard', roles: ['ceo', 'finance', 'business', 'it'], group: '监控与评价' },
|
||||
{ path: '/dashboard', label: '经营看板', icon: 'DataBoard', roles: ['ceo', 'finance', 'business', 'it'], group: '监控与评价' },
|
||||
{ path: '/reports', label: '管理报表', icon: 'DataAnalysis', roles: ['ceo', 'finance', 'business'], group: '监控与评价' },
|
||||
{ path: '/dupont-analysis', label: '杜邦分析', icon: 'TrendCharts', roles: ['ceo', 'finance', 'it'], group: '监控与评价' },
|
||||
{ path: '/customer', label: '客户维度', icon: 'User', roles: ['ceo', 'finance', 'business', 'it'], group: '监控与评价' },
|
||||
|
||||
@@ -5,7 +5,7 @@ const routes = [
|
||||
{ path: '/login', name: 'Login', component: () => import('@/views/Login.vue'), meta: { noAuth: true } },
|
||||
{ path: '/', component: () => import('@/layouts/MainLayout.vue'), redirect: '/dashboard',
|
||||
children: [
|
||||
{ path: 'dashboard', name: 'Dashboard', component: () => import('@/views/Dashboard.vue'), meta: { title: '驾驶舱', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'dashboard', name: 'Dashboard', component: () => import('@/views/Dashboard.vue'), meta: { title: '经营看板', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'kpis', name: 'KPIs', component: () => import('@/views/KPIList.vue'), meta: { title: 'KPI字典', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'kpis/:id', name: 'KPIDetail', component: () => import('@/views/KPIDetail.vue'), meta: { title: 'KPI详情', roles: ['ceo', 'finance', 'business', 'it'] } },
|
||||
{ path: 'maps', name: 'Maps', component: () => import('@/views/MapList.vue'), meta: { title: '战略地图', roles: ['ceo', 'finance'] } },
|
||||
@@ -70,7 +70,7 @@ router.beforeEach((to, _from, next) => {
|
||||
const routeRoles = to.meta.roles as string[] | undefined
|
||||
|
||||
if (routeRoles && !routeRoles.includes(role)) {
|
||||
// 权限不足,跳转到驾驶舱或401页
|
||||
// 权限不足,跳转到经营看板或401页
|
||||
next('/dashboard')
|
||||
return
|
||||
}
|
||||
|
||||
@@ -127,6 +127,12 @@
|
||||
<el-pagination v-model:current-page="page" :page-size="pageSize" :total="total" layout="prev, pager, next, total" @current-change="loadData" background small />
|
||||
</div>
|
||||
|
||||
<!-- PDCA闭环按钮 -->
|
||||
<div style="text-align:center;padding:20px 0;border-top:1px solid #f0f0f0;margin-top:20px;">
|
||||
<el-button type="primary" @click="goToMap">↩ 回到战略地图</el-button>
|
||||
<div style="font-size:12px;color:#999;margin-top:4px;">回到P阶段更新目标,完成PDCA闭环</div>
|
||||
</div>
|
||||
|
||||
<!-- 新建/编辑弹窗 -->
|
||||
<MyDialog v-model="showForm" :title="formTitle" :width="550">
|
||||
<div style="margin-bottom:12px;display:flex;gap:8px;flex-wrap:wrap;">
|
||||
@@ -323,14 +329,18 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, computed, onMounted } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { actionPlanApi, kpiApi, userApi } from '../api/index'
|
||||
import MyDialog from '../components/MyDialog.vue'
|
||||
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const activeTab = ref((route.query?.tab as string) || 'plans')
|
||||
|
||||
// ── 导航 ──
|
||||
function goToMap() { router.push('/maps') }
|
||||
|
||||
// ── 数据 ──
|
||||
const list = ref<any[]>([])
|
||||
const loading = ref(false)
|
||||
|
||||
@@ -179,7 +179,7 @@ const categories = ref([
|
||||
title: "KPI(关键绩效指标)",
|
||||
summary: "衡量战略目标达成情况的量化指标",
|
||||
content: `<h4>KPI(Key Performance Indicator)</h4>
|
||||
<p>关键绩效指标,是衡量企业战略目标达成情况的量化指标。在管理会计OS中,KPI贯穿战略地图、驾驶舱、预警中心等所有模块。</p>
|
||||
<p>关键绩效指标,是衡量企业战略目标达成情况的量化指标。在管理会计OS中,KPI贯穿战略地图、经营看板、预警中心等所有模块。</p>
|
||||
<h5>特征</h5>
|
||||
<ul>
|
||||
<li><b>可量化</b>:每个KPI有明确的计算公式和数值</li>
|
||||
|
||||
@@ -56,7 +56,7 @@ const categories = ref([
|
||||
title: "KPI(关键绩效指标)",
|
||||
summary: "衡量战略目标达成情况的量化指标",
|
||||
content: `<h4>KPI(Key Performance Indicator)</h4>
|
||||
<p>关键绩效指标,是衡量企业战略目标达成情况的量化指标。在管理会计OS中,KPI贯穿战略地图、驾驶舱、预警中心等所有模块。</p>
|
||||
<p>关键绩效指标,是衡量企业战略目标达成情况的量化指标。在管理会计OS中,KPI贯穿战略地图、经营看板、预警中心等所有模块。</p>
|
||||
<h5>特征</h5>
|
||||
<ul>
|
||||
<li><b>可量化</b>:每个KPI有明确的计算公式和数值</li>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<!-- 顶部导航条 -->
|
||||
<div class="dash-header">
|
||||
<div class="header-left">
|
||||
<h3 class="page-title">{{ roleLabel }}驾驶舱</h3>
|
||||
<h3 class="page-title">{{ roleLabel }}经营看板</h3>
|
||||
<el-radio-group v-model="periodType" size="small" @change="onPeriodChange">
|
||||
<el-radio-button value="month">本月</el-radio-button>
|
||||
<el-radio-button value="quarter">本季</el-radio-button>
|
||||
|
||||
@@ -85,7 +85,7 @@ const router = useRouter()
|
||||
|
||||
// ── 流程步骤 ──
|
||||
const steps = [
|
||||
{ icon: "📊", title: "查看驾驶舱", desc: "总览企业KPI整体状况" },
|
||||
{ icon: "📊", title: "查看经营看板", desc: "总览企业KPI整体状况" },
|
||||
{ icon: "🎯", title: "配置KPI", desc: "在KPI字典中设置关键指标" },
|
||||
{ icon: "🗺️", title: "绘制战略地图", desc: "把你的战略目标画出来" },
|
||||
{ icon: "⚡", title: "设定预警", desc: "配置红黄绿灯阈值" },
|
||||
@@ -107,14 +107,14 @@ const walkthroughSteps = [
|
||||
{
|
||||
icon: "👋",
|
||||
title: "欢迎使用管理会计OS",
|
||||
desc: "这是你的企业管理驾驶舱。我们将带你快速完成首次配置,让你在5分钟内上手。",
|
||||
desc: "这是你的企业管理经营看板。我们将带你快速完成首次配置,让你在5分钟内上手。",
|
||||
},
|
||||
{
|
||||
icon: "📊",
|
||||
title: "Step 1: 先看驾驶舱",
|
||||
desc: "驾驶舱是你了解企业整体状况的第一站。这里展示了所有KPI的红黄绿灯状态,以及你的个人KPI。",
|
||||
title: "Step 1: 先看经营看板",
|
||||
desc: "经营看板是你了解企业整体状况的第一站。这里展示了所有KPI的红黄绿灯状态,以及你的个人KPI。",
|
||||
action: "/dashboard",
|
||||
actionLabel: "驾驶舱",
|
||||
actionLabel: "经营看板",
|
||||
},
|
||||
{
|
||||
icon: "🎯",
|
||||
|
||||
Reference in New Issue
Block a user