renshen 7a5f04287c 钉钉工作台入口:店铺违规信息预警整页展示(隐藏全局菜单)
钉钉工作台里点进来的这个入口,现在只显示这一张页面:不再渲染全局侧边栏,
内容区占满宽度,其余页面和网页端登录完全不受影响。

判断依据:当前页面是 financial-risk-control/store-violation-alert,且请求来自
钉钉容器(UA 含 DingTalk)或显式带 ?focus=1;路由参数取不到时按路径段兜底。
2026-10-13 13:28:59 +08:00

114 lines
4.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html dir="{{ language()->direction() }}" lang="{{ app()->getLocale() }}">
@php
// 钉钉工作台「财务系统」入口:只在店铺违规信息预警这一页隐藏全局菜单,
// 让这个入口点进去就只是一张页面;网页端登录(非钉钉容器)不受影响。
// 也支持显式 ?focus=1,便于以后给别的入口做同样的单页模式。
// 路由参数在部分上下文取不到时退回按路径段判断(与目录表同一套兼容写法)。
$focusSection = (string) (request()->route('section') ?: request()->segment(3));
$focusPage = (string) (request()->route('page') ?: request()->segment(4));
$focusEntry = $focusSection === 'financial-risk-control'
&& $focusPage === 'store-violation-alert'
&& (request()->boolean('focus') || str_contains((string) request()->userAgent(), 'DingTalk'));
@endphp
<x-layouts.admin.head>
@if (! empty($metaTitle))
<x-slot name="metaTitle">
{!! !empty($metaTitle->attributes->has('title')) ? $metaTitle->attributes->get('title') : $metaTitle !!}
</x-slot>
@endif
<x-slot name="title">
{!! !empty($title->attributes->has('title')) ? $title->attributes->get('title') : $title !!}
</x-slot>
</x-layouts.admin.head>
@mobile
<body class="bg-body">
@elsemobile
<body class="bg-body overflow-y-overlay">
@endmobile
@stack('body_start')
@unless ($focusEntry)
<x-layouts.admin.menu />
@endunless
<!-- loading component will add this line -->
<div class="main-content {{ $focusEntry ? '' : 'xl:ltr:ml-64 xl:rtl:mr-64' }} transition-all ease-in-out" id="panel">
<div id="main-body">
<div class="container">
<x-layouts.admin.header>
<x-slot name="title">
{!! ! empty($title->attributes->has('title')) ? $title->attributes->get('title') : $title !!}
</x-slot>
@if (! empty($status))
<x-slot name="status">
{!! $status !!}
</x-slot>
@endif
@if (! empty($info))
<x-slot name="info">
{!! $info !!}
</x-slot>
@endif
@if (! empty($favorite) || (! empty($favorite) && $favorite->attributes->has('title')))
@if (! $favorite->attributes->has('title'))
<x-slot name="favorite">
{!! $favorite !!}
</x-slot>
@else
@php
$favorite = [
'title' => $favorite->attributes->get('title'),
'icon' => $favorite->attributes->get('icon'),
'route' => !empty($favorite->attributes->has('route')) ? $favorite->attributes->get('route') : '',
'url' => !empty($favorite->attributes->has('url')) ? $favorite->attributes->get('url') : '',
];
@endphp
<x-slot name="favorite">
<x-menu.favorite
:title="$favorite['title']"
:icon="$favorite['icon']"
:route="$favorite['route']"
:url="$favorite['url']"
/>
</x-slot>
@endif
@endif
<x-slot name="buttons">
{!! $buttons ?? '' !!}
</x-slot>
<x-slot name="moreButtons">
{!! $moreButtons ?? '' !!}
</x-slot>
</x-layouts.admin.header>
<x-layouts.admin.content>
<livewire:notification.browser />
<x-layouts.admin.notifications />
{!! $content !!}
</x-layouts.admin.content>
<x-layouts.admin.footer />
</div>
</div>
</div>
@stack('body_end')
<x-layouts.admin.scripts />
</body>
</html>