财务经营风险管控:网页端不再重复显示目录页签
- 目录内页签(店铺违规信息预警/预览统计/流程统计)只在钉钉单页入口(?focus=1 或钉钉 UA)显示 - 网页端已有左侧菜单和已打开页面标签栏,页面内只保留内容本身 - 单页模式判断抽到 FocusMode,与布局共用
This commit is contained in:
parent
9e199243b6
commit
eb0f246765
18
app/Utilities/FocusMode.php
Normal file
18
app/Utilities/FocusMode.php
Normal 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'));
|
||||
}
|
||||
}
|
||||
@ -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')
|
||||
{{-- 供应商对账:财务端数据 / 厂家端数据 两个页签。 --}}
|
||||
|
||||
@ -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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user