提交
This commit is contained in:
1 parent
9345cf4ad8
commit
c3bd2c00ae
51 files changed
+14486
-15765
No files matched your search
@@ -8,6 +8,8 @@ export type BxMenuEntry = {
|
||||
group: string
|
||||
icon: string
|
||||
color: string
|
||||
/** true 时不在首页等入口展示(保留定义与路由,便于恢复) */
|
||||
hidden?: boolean
|
||||
}
|
||||
|
||||
/** 仅叶子业务入口;用户/角色/菜单管理不收录 */
|
||||
@@ -29,6 +31,7 @@ export const BX_MENU_CATALOG: BxMenuEntry[] = [
|
||||
group: '备用金',
|
||||
icon: 'passed',
|
||||
color: '#059669',
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
menuCode: 'bx:advanceIssue:list',
|
||||
@@ -38,6 +41,7 @@ export const BX_MENU_CATALOG: BxMenuEntry[] = [
|
||||
group: '备用金',
|
||||
icon: 'balance-o',
|
||||
color: '#0d9488',
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
menuCode: 'bx:reimburseApply:list',
|
||||
@@ -56,6 +60,7 @@ export const BX_MENU_CATALOG: BxMenuEntry[] = [
|
||||
group: '报销',
|
||||
icon: 'checked',
|
||||
color: '#1d4ed8',
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
menuCode: 'bx:payment:list',
|
||||
@@ -65,6 +70,7 @@ export const BX_MENU_CATALOG: BxMenuEntry[] = [
|
||||
group: '报销',
|
||||
icon: 'paid',
|
||||
color: '#7c3aed',
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
menuCode: 'bx:viewMine:list',
|
||||
@@ -83,6 +89,7 @@ export const BX_MENU_CATALOG: BxMenuEntry[] = [
|
||||
group: '视图',
|
||||
icon: 'todo-list-o',
|
||||
color: '#d97706',
|
||||
hidden: true,
|
||||
},
|
||||
{
|
||||
menuCode: 'bx:viewAll:list',
|
||||
|
||||
@@ -12,7 +12,9 @@ export function filterVisibleEntries(
|
||||
opts: { isSuperAdmin: boolean; all: boolean; menuCodes: string[] },
|
||||
phase: number = BX_MENU_CURRENT_PHASE,
|
||||
): BxMenuEntry[] {
|
||||
return BX_MENU_CATALOG.filter((e) => e.phase <= phase && canAccess(e.menuCode, opts))
|
||||
return BX_MENU_CATALOG.filter(
|
||||
(e) => !e.hidden && e.phase <= phase && canAccess(e.menuCode, opts),
|
||||
)
|
||||
}
|
||||
|
||||
export function entryByPath(path: string): BxMenuEntry | undefined {
|
||||
|
||||
@@ -17,8 +17,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Todo card(置于功能菜单上方) -->
|
||||
<div class="home-panels" style="margin-top: 12px; display: flex; flex-direction: column; gap: 10px">
|
||||
<!-- Todo card(置于功能菜单上方;SHOW_HOME_TODO_PANEL 恢复展示) -->
|
||||
<div
|
||||
v-if="SHOW_HOME_TODO_PANEL"
|
||||
class="home-panels"
|
||||
style="margin-top: 12px; display: flex; flex-direction: column; gap: 10px"
|
||||
>
|
||||
<div class="todo-card">
|
||||
<div v-if="todoItems.length" class="todo-head todo-head--badge-only">
|
||||
<span class="badge">{{ todoItems.length }}</span>
|
||||
@@ -98,6 +102,9 @@ import { advanceApi, paymentApi, reimburseApi } from '@/api'
|
||||
const router = useRouter()
|
||||
const auth = useAuthStore()
|
||||
|
||||
/** 首页待办事项区域:false 隐藏(保留逻辑,改 true 即可恢复) */
|
||||
const SHOW_HOME_TODO_PANEL = false
|
||||
|
||||
const stats = ref({
|
||||
submittedThisMonth: 0,
|
||||
pendingCount: 0,
|
||||
|
||||
@@ -28,32 +28,32 @@
|
||||
<van-cell title="修改密码" icon="lock" is-link @click="showPasswordDialog = true" />
|
||||
</van-cell-group>
|
||||
|
||||
<!-- 按门户 menuCode 显隐快捷入口 -->
|
||||
<!-- 按门户 menuCode + 目录 hidden 显隐快捷入口 -->
|
||||
<template v-if="showQuickNav">
|
||||
<van-cell-group inset class="group-block" title="快捷入口">
|
||||
<van-cell
|
||||
v-if="auth.can('bx:advanceApprove:list')"
|
||||
v-if="isEntryVisible('bx:advanceApprove:list')"
|
||||
title="备用金审批"
|
||||
icon="cash-back-record"
|
||||
is-link
|
||||
to="/advance/approve"
|
||||
/>
|
||||
<van-cell
|
||||
v-if="auth.can('bx:reimburseApprove:list')"
|
||||
v-if="isEntryVisible('bx:reimburseApprove:list')"
|
||||
title="报销审批"
|
||||
icon="description"
|
||||
is-link
|
||||
to="/reimburse/approve"
|
||||
/>
|
||||
<van-cell
|
||||
v-if="auth.can('bx:advanceIssue:list')"
|
||||
v-if="isEntryVisible('bx:advanceIssue:list')"
|
||||
title="发放管理"
|
||||
icon="balance-list-o"
|
||||
is-link
|
||||
to="/advance/issue"
|
||||
/>
|
||||
<van-cell
|
||||
v-if="auth.can('bx:viewAll:list')"
|
||||
v-if="isEntryVisible('bx:viewAll:list')"
|
||||
title="全部记录"
|
||||
icon="records"
|
||||
is-link
|
||||
@@ -145,12 +145,16 @@ const passwordForm = reactive({
|
||||
confirmPassword: '',
|
||||
})
|
||||
|
||||
function isEntryVisible(menuCode: string) {
|
||||
return auth.visibleEntries.some((e) => e.menuCode === menuCode)
|
||||
}
|
||||
|
||||
const showQuickNav = computed(
|
||||
() =>
|
||||
auth.can('bx:advanceApprove:list') ||
|
||||
auth.can('bx:reimburseApprove:list') ||
|
||||
auth.can('bx:advanceIssue:list') ||
|
||||
auth.can('bx:viewAll:list'),
|
||||
isEntryVisible('bx:advanceApprove:list') ||
|
||||
isEntryVisible('bx:reimburseApprove:list') ||
|
||||
isEntryVisible('bx:advanceIssue:list') ||
|
||||
isEntryVisible('bx:viewAll:list'),
|
||||
)
|
||||
|
||||
const avatarChar = computed(() => {
|
||||
|
||||
Reference in new issue
Block a user