财务经营风险管控:网页端不再重复显示目录页签

- 目录内页签(店铺违规信息预警/预览统计/流程统计)只在钉钉单页入口(?focus=1 或钉钉 UA)显示
- 网页端已有左侧菜单和已打开页面标签栏,页面内只保留内容本身
- 单页模式判断抽到 FocusMode,与布局共用
This commit is contained in:
renshen 2026-10-19 14:56:08 +08:00
parent 9e199243b6
commit eb0f246765
3 changed files with 21 additions and 5 deletions

View File

@ -0,0 +1,18 @@
<?php
namespace App\Utilities;
class FocusMode
{
/**
* 单页模式(钉钉工作台入口,或显式 ?focus=1):只保留该目录自己的页签,隐藏全局菜单。
* 网页端正常登录时不启用,避免页面上的目录页签和左侧菜单、已打开页面标签栏重复。
*/
public static function activeFor(?string $sectionSlug = null): bool
{
$section = $sectionSlug ?: (string) (request()->route('section') ?: request()->segment(3));
return in_array($section, ['financial-risk-control'], true)
&& (request()->boolean('focus') || str_contains((string) request()->userAgent(), 'DingTalk'));
}
}

View File

@ -587,8 +587,8 @@
@include('business.pages.supplier-payables.navigation', ['section' => $supplierWorkspaceSection])
@elseif ($isCourierFinalDirectory)
@include('business.pages.partials.section-page-tabs', ['section' => $section])
@elseif (($section['slug'] ?? '') === 'financial-risk-control')
{{-- 财务经营风险管控下已有多个页面,用目录内页签切换。 --}}
@elseif (($section['slug'] ?? '') === 'financial-risk-control' && \App\Utilities\FocusMode::activeFor($section['slug'] ?? null))
{{-- 钉钉单页入口(菜单隐藏时)才需要目录内页签;网页端有左侧菜单和已打开页面标签栏,不再重复。 --}}
@include('business.pages.partials.section-page-tabs', ['section' => $section])
@elseif (($section['slug'] ?? '') === 'supplier-reconciliation')
{{-- 供应商对账:财务端数据 / 厂家端数据 两个页签。 --}}

View File

@ -6,9 +6,7 @@
// 让钉钉里点进来就只是这一块内容;网页端登录(非钉钉容器)不受影响。
// 也支持显式 ?focus=1,便于以后给别的入口做同样的单页模式。
// 路由参数在部分上下文取不到时退回按路径段判断(与目录表同一套兼容写法)。
$focusSection = (string) (request()->route('section') ?: request()->segment(3));
$focusEntry = in_array($focusSection, ['financial-risk-control'], true)
&& (request()->boolean('focus') || str_contains((string) request()->userAgent(), 'DingTalk'));
$focusEntry = \App\Utilities\FocusMode::activeFor();
@endphp
<x-layouts.admin.head>