layouts.blade.php 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. @extends('_layout')
  2. @section('title', sysConfig('website_name'))
  3. @section('layout_css')
  4. <link href="/assets/global/fonts/font-awesome/css/all.min.css" rel="stylesheet">
  5. @yield('css')
  6. @endsection
  7. @section('body_class', 'dashboard')
  8. @section('layout_content')
  9. <nav class="site-navbar navbar navbar-default navbar-fixed-top navbar-mega {{config('theme.navbar.inverse')}} {{config('theme.navbar.skin')}}" role="navigation">
  10. <div class="navbar-header">
  11. <button type="button" class="navbar-toggler hamburger hamburger-close navbar-toggler-left hided" data-toggle="menubar">
  12. <span class="sr-only">{{trans('common.toggle_action', ['action' => trans('common.function.navigation')])}}</span>
  13. <span class="hamburger-bar"></span>
  14. </button>
  15. <button type="button" class="navbar-toggler collapsed" data-target="#site-navbar-collapse" data-toggle="collapse">
  16. <i class="icon wb-more-horizontal" aria-hidden="true"></i>
  17. </button>
  18. <div class="navbar-brand navbar-brand-center">
  19. <img src="{{sysConfig('website_logo')? asset(sysConfig('website_logo')) :'/assets/images/logo64.png'}}" class="navbar-brand-logo" alt="logo"/>
  20. <span class="navbar-brand-text hidden-xs-down"> {{sysConfig('website_name')}}</span>
  21. </div>
  22. </div>
  23. <div class="navbar-container container-fluid">
  24. <div class="collapse navbar-collapse navbar-collapse-toolbar" id="site-navbar-collapse">
  25. <ul class="nav navbar-toolbar">
  26. <li class="nav-item hidden-float" id="toggleMenubar">
  27. <a class="nav-link" data-toggle="menubar" href="#" role="button">
  28. <i class="icon hamburger hamburger-arrow-left">
  29. <span class="sr-only">{{trans('common.toggle_action', ['action' => trans('common.function.menubar')])}}</span>
  30. <span class="hamburger-bar"></span>
  31. </i>
  32. </a>
  33. </li>
  34. <li class="nav-item hidden-sm-down">
  35. <a class="nav-link icon icon-fullscreen" data-toggle="fullscreen" href="#" role="button">
  36. <span class="sr-only">{{trans('common.toggle_action', ['action' => trans('common.function.fullscreen')])}}</span>
  37. </a>
  38. </li>
  39. <li class="nav-item dropdown">
  40. <a href="javascript:void(0)" class="nav-link" data-toggle="dropdown" role="button">
  41. <span class="icon wb-globe"></span>
  42. <span class="icon wb-chevron-down-mini"></span>
  43. </a>
  44. <div class="dropdown-menu" role="menu">
  45. @foreach (config('common.language') as $key => $value)
  46. <a class="dropdown-item" href="{{route('lang', ['locale' => $key])}}" role="menuitem">
  47. <i class="fi fi-{{$value[1]}}" aria-hidden="true"></i>
  48. <span style="padding: inherit;">{{$value[0]}}</span>
  49. </a>
  50. @endforeach
  51. </div>
  52. </li>
  53. </ul>
  54. <ul class="nav navbar-toolbar navbar-right navbar-toolbar-right">
  55. <li class="nav-item dropdown">
  56. <a class="nav-link navbar-avatar" data-toggle="dropdown" href="#" aria-expanded="false" data-animation="scale-up" role="button">
  57. <span class="avatar avatar-online">
  58. <img src="{{Auth::getUser()->avatar}}" alt="{{trans('common.avatar')}}"/>
  59. <i></i>
  60. </span>
  61. </a>
  62. <div class="dropdown-menu" role="menu">
  63. <a class="dropdown-item" href="/" role="menuitem">
  64. <i class="icon wb-settings" aria-hidden="true"></i>
  65. {{ trans('admin.user_dashboard') }}
  66. </a>
  67. <div class="dropdown-divider" role="presentation"></div>
  68. <a class="dropdown-item" href="{{route('logout')}}" role="menuitem">
  69. <i class="icon wb-power" aria-hidden="true"></i>
  70. {{trans('auth.logout')}}
  71. </a>
  72. </div>
  73. </li>
  74. </ul>
  75. </div>
  76. </div>
  77. </nav>
  78. <div class="site-menubar {{config('theme.sidebar')}}">
  79. <div class="site-menubar-body">
  80. <ul class="site-menu" data-plugin="menu">
  81. @can('admin.index')
  82. <li class="site-menu-item {{request()->routeIs('admin.index') ? 'active open' : ''}}">
  83. <a href="{{route('admin.index')}}">
  84. <i class="site-menu-icon wb-dashboard" aria-hidden="true"></i>
  85. <span class="site-menu-title">{{ trans('admin.menu.dashboard') }}</span>
  86. </a>
  87. </li>
  88. @endcan
  89. @canany(['admin.user.index', 'admin.user.group.index', 'admin.log.credit', 'admin.subscribe.index'])
  90. <li class="site-menu-item has-sub {{request()->routeIs('admin.user.*', 'admin.log.credit', 'admin.subscribe.*') ? 'active open' : ''}}">
  91. <a href="javascript:void(0)">
  92. <i class="site-menu-icon wb-user" aria-hidden="true"></i>
  93. <span class="site-menu-title">{{ trans('admin.menu.user.attribute') }}</span>
  94. </a>
  95. <ul class="site-menu-sub">
  96. @can('admin.user.index')
  97. <li class="site-menu-item {{request()->routeIs('admin.user.index', 'admin.user.edit', 'admin.user.monitor', 'admin.user.online', 'admin.user.online', 'admin.user.export') ? 'active open' : ''}}">
  98. <a href="{{route('admin.user.index')}}">
  99. <span class="site-menu-title">{{ trans('admin.menu.user.list') }}</span>
  100. </a>
  101. </li>
  102. @endcan
  103. @can('admin.user.oauth')
  104. <li class="site-menu-item {{request()->routeIs('admin.user.oauth') ? 'active open' : ''}}">
  105. <a href="{{route('admin.user.oauth')}}">
  106. <span class="site-menu-title">{{ trans('admin.menu.user.oauth') }}</span>
  107. </a>
  108. </li>
  109. @endcan
  110. @can('admin.user.group.index')
  111. <li class="site-menu-item {{request()->routeIs('admin.user.group.*') ? 'active open' : ''}}">
  112. <a href="{{route('admin.user.group.index')}}">
  113. <span class="site-menu-title">{{ trans('admin.menu.user.group') }}</span>
  114. </a>
  115. </li>
  116. @endcan
  117. @can('admin.log.credit')
  118. <li class="site-menu-item {{request()->routeIs('admin.log.credit') ? 'active open' : ''}}">
  119. <a href="{{route('admin.log.credit')}}">
  120. <span class="site-menu-title">{{ trans('admin.menu.user.credit_log') }}</span>
  121. </a>
  122. </li>
  123. @endcan
  124. @can('admin.subscribe.index')
  125. <li class="site-menu-item {{request()->routeIs('admin.subscribe.*')? 'active open' : ''}}">
  126. <a href="{{route('admin.subscribe.index')}}">
  127. <span class="site-menu-title">{{ trans('admin.menu.user.subscribe') }}</span>
  128. </a>
  129. </li>
  130. @endcan
  131. </ul>
  132. </li>
  133. @endcanany
  134. @canany(['admin.permission.index', 'admin.role.index'])
  135. <li class="site-menu-item has-sub {{request()->routeIs('admin.permission.*', 'admin.role.*') ? 'active open' : ''}}">
  136. <a href="javascript:void(0)">
  137. <i class="site-menu-icon wb-users" aria-hidden="true"></i>
  138. <span class="site-menu-title">{{ trans('admin.menu.rbac.attribute') }}</span>
  139. </a>
  140. <ul class="site-menu-sub">
  141. @can('admin.permission.index')
  142. <li class="site-menu-item {{request()->routeIs('admin.permission.*') ? 'active open' : ''}}">
  143. <a href="{{route('admin.permission.index')}}">
  144. <span class="site-menu-title">{{ trans('admin.menu.rbac.permission') }}</span>
  145. </a>
  146. </li>
  147. @endcan
  148. @can('admin.role.index')
  149. <li class="site-menu-item {{request()->routeIs('admin.role.*') ? 'active open' : ''}}">
  150. <a href="{{route('admin.role.index')}}">
  151. <span class="site-menu-title">{{ trans('admin.menu.rbac.role') }}</span>
  152. </a>
  153. </li>
  154. @endcan
  155. </ul>
  156. </li>
  157. @endcanany
  158. @canany(['admin.ticket.index', 'admin.article.index', 'admin.marketing.push', 'admin.marketing.email'])
  159. <li class="site-menu-item has-sub {{request()->routeIs('admin.ticket.*', 'admin.article.*', 'admin.marketing.*')? 'active open' : ''}}">
  160. <a href="javascript:void(0)">
  161. <i class="site-menu-icon wb-chat-working" aria-hidden="true"></i>
  162. <span class="site-menu-title">{{ trans('admin.menu.customer_service.attribute') }}</span>
  163. @can('admin.ticket.index')
  164. @php
  165. $openTicket = App\Models\Ticket::whereStatus(0)->count()
  166. @endphp
  167. @if($openTicket > 0)
  168. <div class="site-menu-badge">
  169. <span class="badge badge-pill badge-success">{{$openTicket}}</span>
  170. </div>
  171. @endif
  172. @endcan
  173. </a>
  174. <ul class="site-menu-sub">
  175. @can('admin.ticket.index')
  176. <li class="site-menu-item {{request()->routeIs('admin.ticket.*') ? 'active open' : ''}}">
  177. <a href="{{route('admin.ticket.index')}}">
  178. <span class="site-menu-title">{{ trans('admin.menu.customer_service.ticket') }}</span>
  179. @if($openTicket > 0)
  180. <div class="site-menu-label">
  181. <span class="badge badge-danger badge-round mr-25">{{$openTicket}}</span>
  182. </div>
  183. @endif
  184. </a>
  185. </li>
  186. @endcan
  187. @can('admin.article.index')
  188. <li class="site-menu-item {{request()->routeIs('admin.article.*')? 'active open' : ''}}">
  189. <a href="{{route('admin.article.index')}}">
  190. <span class="site-menu-title">{{ trans('admin.menu.customer_service.article') }}</span>
  191. </a>
  192. </li>
  193. @endcan
  194. @can('admin.marketing.push')
  195. <li class="site-menu-item {{request()->routeIs('admin.marketing.push') ? 'active open' : ''}}">
  196. <a href="{{route('admin.marketing.push')}}">
  197. <span class="site-menu-title">{{ trans('admin.menu.customer_service.push') }}</span>
  198. </a>
  199. </li>
  200. @endcan
  201. @can('admin.marketing.email')
  202. <li class="site-menu-item {{request()->routeIs('admin.marketing.email') ? 'active open' : ''}}">
  203. <a href="{{route('admin.marketing.email')}}">
  204. <span class="site-menu-title">{{ trans('admin.menu.customer_service.mail') }}</span>
  205. </a>
  206. </li>
  207. @endcan
  208. </ul>
  209. </li>
  210. @endcanany
  211. @canany(['admin.node.index', 'admin.node.auth.index', 'admin.node.cert.index'])
  212. <li class="site-menu-item has-sub {{request()->routeIs('admin.node.*') ? 'active open' : ''}}">
  213. <a href="javascript:void(0)">
  214. <i class="site-menu-icon wb-cloud" aria-hidden="true"></i>
  215. <span class="site-menu-title">{{ trans('admin.menu.node.attribute') }}</span>
  216. </a>
  217. <ul class="site-menu-sub">
  218. @can('admin.node.index')
  219. <li class="site-menu-item {{request()->routeIs('admin.node.index', 'admin.node.create', 'admin.node.edit')? 'active open' : ''}}">
  220. <a href="{{route('admin.node.index')}}">
  221. <span class="site-menu-title">{{ trans('admin.menu.node.list') }}</span>
  222. </a>
  223. </li>
  224. @endcan
  225. @can('admin.node.auth.index')
  226. <li class="site-menu-item {{request()->routeIs('admin.node.auth.*') ? 'active open' : ''}}">
  227. <a href="{{route('admin.node.auth.index')}}">
  228. <span class="site-menu-title">{{ trans('admin.menu.node.auth') }}</span>
  229. </a>
  230. </li>
  231. @endcan
  232. @can('admin.node.cert.index')
  233. <li class="site-menu-item {{request()->routeIs('admin.node.cert.*') ? 'active open' : ''}}">
  234. <a href="{{route('admin.node.cert.index')}}">
  235. <span class="site-menu-title">{{ trans('admin.menu.node.cert') }}</span>
  236. </a>
  237. </li>
  238. @endcan
  239. </ul>
  240. </li>
  241. @endcanany
  242. @canany(['admin.rule.index', 'admin.rule.group.index', 'admin.rule.log'])
  243. <li class="site-menu-item has-sub {{request()->routeIs('admin.rule.*') ? 'active open' : ''}}">
  244. <a href="javascript:void(0)">
  245. <i class="site-menu-icon wb-eye" aria-hidden="true"></i>
  246. <span class="site-menu-title">{{ trans('admin.menu.rule.attribute') }}</span>
  247. </a>
  248. <ul class="site-menu-sub">
  249. @can('admin.rule.index')
  250. <li class="site-menu-item {{request()->routeIs('admin.rule.index') ? 'active open' : ''}}">
  251. <a href="{{route('admin.rule.index')}}">
  252. <span class="site-menu-title">{{ trans('admin.menu.rule.list') }}</span>
  253. </a>
  254. </li>
  255. @endcan
  256. @can('admin.rule.group.index')
  257. <li class="site-menu-item {{request()->routeIs('admin.rule.group.*') ? 'active open' : ''}}">
  258. <a href="{{route('admin.rule.group.index')}}">
  259. <span class="site-menu-title">{{ trans('admin.menu.rule.group') }}</span>
  260. </a>
  261. </li>
  262. @endcan
  263. @can('admin.rule.log')
  264. <li class="site-menu-item {{request()->routeIs('admin.rule.log') ? 'active open' : ''}}">
  265. <a href="{{route('admin.rule.log')}}">
  266. <span class="site-menu-title">{{ trans('admin.menu.rule.trigger') }}</span>
  267. </a>
  268. </li>
  269. @endcan
  270. </ul>
  271. </li>
  272. @endcanany
  273. @canany(['admin.goods.index', 'admin.coupon.index', 'admin.order'])
  274. <li class="site-menu-item has-sub {{request()->routeIs('admin.goods.*', 'admin.coupon.*', 'admin.order') ? 'active open' : ''}}">
  275. <a href="javascript:void(0)">
  276. <i class="site-menu-icon wb-shopping-cart" aria-hidden="true"></i>
  277. <span class="site-menu-title">{{ trans('admin.menu.shop.attribute') }}</span>
  278. </a>
  279. <ul class="site-menu-sub">
  280. @can('admin.goods.index')
  281. <li class="site-menu-item {{request()->routeIs('admin.goods.*') ? 'active open' : ''}}">
  282. <a href="{{route('admin.goods.index')}}">
  283. <span class="site-menu-title">{{ trans('admin.menu.shop.goods') }}</span>
  284. </a>
  285. </li>
  286. @endcan
  287. @can('admin.coupon.index')
  288. <li class="site-menu-item {{request()->routeIs('admin.coupon.*') ? 'active open' : ''}}">
  289. <a href="{{route('admin.coupon.index')}}">
  290. <span class="site-menu-title">{{ trans('admin.menu.shop.coupon') }}</span>
  291. </a>
  292. </li>
  293. @endcan
  294. @can('admin.order')
  295. <li class="site-menu-item {{request()->routeIs('admin.order') ? 'active open' : ''}}">
  296. <a href="{{route('admin.order')}}">
  297. <span class="site-menu-title">{{ trans('admin.menu.shop.order') }}</span>
  298. </a>
  299. </li>
  300. @endcan
  301. </ul>
  302. </li>
  303. @endcanany
  304. @canany(['admin.invite.index', 'admin.aff.index', 'admin.aff.rebate'])
  305. <li class="site-menu-item has-sub {{request()->routeIs('admin.invite.*', 'admin.aff.*') ? 'active open' : ''}}">
  306. <a href="javascript:void(0)">
  307. <i class="site-menu-icon wb-thumb-up" aria-hidden="true"></i>
  308. <span class="site-menu-title">{{ trans('admin.menu.promotion.attribute') }}</span>
  309. @can('admin.aff.index')
  310. @php
  311. $openApply = App\Models\ReferralApply::whereStatus(0)->count()
  312. @endphp
  313. @if($openApply > 0)
  314. <div class="site-menu-badge">
  315. <span class="badge badge-pill badge-success">{{$openApply}}</span>
  316. </div>
  317. @endif
  318. @endcan
  319. </a>
  320. <ul class="site-menu-sub">
  321. @can('admin.invite.index')
  322. <li class="site-menu-item {{request()->routeIs('admin.invite.index') ? 'active open' : ''}}">
  323. <a href="{{route('admin.invite.index')}}">
  324. <span class="site-menu-title">{{ trans('admin.menu.promotion.invite') }}</span>
  325. </a>
  326. </li>
  327. @endcan
  328. @can('admin.aff.index')
  329. <li class="site-menu-item {{request()->routeIs('admin.aff.index', 'admin.aff.detail') ? 'active open' : ''}}">
  330. <a href="{{route('admin.aff.index')}}">
  331. <span class="site-menu-title">{{ trans('admin.menu.promotion.withdraw') }}</span>
  332. @if($openApply > 0)
  333. <div class="site-menu-label">
  334. <span class="badge badge-danger badge-round mr-25">{{$openApply}}</span>
  335. </div>
  336. @endif
  337. </a>
  338. </li>
  339. @endcan
  340. @can('admin.aff.rebate')
  341. <li class="site-menu-item {{request()->routeIs('admin.aff.rebate') ? 'active open' : ''}}">
  342. <a href="{{route('admin.aff.rebate')}}">
  343. <span class="site-menu-title">{{ trans('admin.menu.promotion.rebate_flow') }}</span>
  344. </a>
  345. </li>
  346. @endcan
  347. </ul>
  348. </li>
  349. @endcanany
  350. @canany(['admin.report.accounting', 'admin.report.userAnalysis'])
  351. <li class="site-menu-item has-sub {{request()->routeIs('admin.report.*') ? 'active open' : ''}}">
  352. <a href="javascript:void(0)">
  353. <i class="site-menu-icon wb-stats-bars" aria-hidden="true"></i>
  354. <span class="site-menu-title">{{ trans('admin.menu.analysis.attribute') }}</span>
  355. </a>
  356. <ul class="site-menu-sub">
  357. @can('admin.report.accounting')
  358. <li class="site-menu-item {{request()->routeIs('admin.report.accounting') ? 'active open' : ''}}">
  359. <a href="{{route('admin.report.accounting')}}">
  360. <span class="site-menu-title">{{ trans('admin.menu.analysis.accounting') }}</span>
  361. </a>
  362. </li>
  363. @endcan
  364. @can('admin.report.userAnalysis')
  365. <li class="site-menu-item {{request()->routeIs('admin.report.userAnalysis') ? 'active open' : ''}}">
  366. <a href="{{route('admin.report.userAnalysis')}}">
  367. <span class="site-menu-title">{{ trans('admin.menu.analysis.user_flow') }}</span>
  368. </a>
  369. </li>
  370. @endcan
  371. </ul>
  372. </li>
  373. @endcanany
  374. @canany(['admin.log.traffic', 'admin.log.flow', 'admin.log.ban', 'admin.log.ip', 'admin.log.online', 'admin.log.notify', 'admin.payment.callback'])
  375. <li class="site-menu-item has-sub {{request()->routeIs('admin.log.traffic', 'admin.log.flow', 'admin.log.ban', 'admin.log.ip', 'admin.log.online', 'admin.log.notify', 'admin.payment.callback') ? 'active open' : ''}}">
  376. <a href="javascript:void(0)">
  377. <i class="site-menu-icon wb-calendar" aria-hidden="true"></i>
  378. <span class="site-menu-title">{{ trans('admin.menu.log.attribute') }}</span>
  379. </a>
  380. <ul class="site-menu-sub">
  381. @can('admin.log.traffic')
  382. <li class="site-menu-item {{request()->routeIs('admin.log.traffic') ? 'active open' : ''}}">
  383. <a href="{{route('admin.log.traffic')}}">
  384. <span class="site-menu-title">{{ trans('admin.menu.log.traffic') }}</span>
  385. </a>
  386. </li>
  387. @endcan
  388. @can('admin.log.flow')
  389. <li class="site-menu-item {{request()->routeIs('admin.log.flow') ? 'active open' : ''}}">
  390. <a href="{{route('admin.log.flow')}}">
  391. <span class="site-menu-title">{{ trans('admin.menu.log.traffic_flow') }}</span>
  392. </a>
  393. </li>
  394. @endcan
  395. @can('admin.log.ban')
  396. <li class="site-menu-item {{request()->routeIs('admin.log.ban') ? 'active open' : ''}}">
  397. <a href="{{route('admin.log.ban')}}">
  398. <span class="site-menu-title">{{ trans('admin.menu.log.service_ban') }}</span>
  399. </a>
  400. </li>
  401. @endcan
  402. @can('admin.log.ip')
  403. <li class="site-menu-item {{request()->routeIs('admin.log.ip') ? 'active open' : ''}}">
  404. <a href="{{route('admin.log.ip')}}">
  405. <span class="site-menu-title">{{ trans('admin.menu.log.online_logs') }}</span>
  406. </a>
  407. </li>
  408. @endcan
  409. @can('admin.log.online')
  410. <li class="site-menu-item {{request()->routeIs('admin.log.online') ? 'active open' : ''}}">
  411. <a href="{{route('admin.log.online')}}">
  412. <span class="site-menu-title">{{ trans('admin.menu.log.online_monitor') }}</span>
  413. </a>
  414. </li>
  415. @endcan
  416. @can('admin.log.notify')
  417. <li class="site-menu-item {{request()->routeIs('admin.log.notify') ? 'active open' : ''}}">
  418. <a href="{{route('admin.log.notify')}}">
  419. <span class="site-menu-title">{{ trans('admin.menu.log.notify') }}</span>
  420. </a>
  421. </li>
  422. @endcan
  423. @can('admin.payment.callback')
  424. <li class="site-menu-item {{request()->routeIs('admin.payment.callback') ? 'active open' : ''}}">
  425. <a href="{{route('admin.payment.callback')}}">
  426. <span class="site-menu-title">{{ trans('admin.menu.log.payment_callback') }}</span>
  427. </a>
  428. </li>
  429. @endcan
  430. @can('log-viewer')
  431. <li class="site-menu-item">
  432. <a href="{{route('log-viewer::dashboard')}}" target="_blank">
  433. <span class="site-menu-title">{{ trans('admin.menu.log.system') }}</span>
  434. </a>
  435. </li>
  436. @endcan
  437. @can('viewHorizon')
  438. <li class="site-menu-item">
  439. <a href="{{route('horizon.index')}}" target="_blank">
  440. <span class="site-menu-title"> Horizon </span>
  441. </a>
  442. </li>
  443. @endcan
  444. @if(config('app.debug') && config('app.env') === 'local')
  445. @can('viewTelescope')
  446. <li class="site-menu-item">
  447. <a href="{{route('telescope')}}" target="_blank">
  448. <span class="site-menu-title"> Telescope </span>
  449. </a>
  450. </li>
  451. @endcan
  452. @endif
  453. </ul>
  454. </li>
  455. @endcanany
  456. @canany(['admin.tools.decompile', 'admin.tools.convert', 'admin.tools.import', 'admin.tools.analysis'])
  457. <li class="site-menu-item has-sub {{request()->routeIs('admin.tools.*') ? 'active open' : ''}}">
  458. <a href="javascript:void(0)">
  459. <i class="site-menu-icon wb-briefcase" aria-hidden="true"></i>
  460. <span class="site-menu-title">{{ trans('admin.menu.tools.attribute') }}</span>
  461. </a>
  462. <ul class="site-menu-sub">
  463. @can('admin.tools.decompile')
  464. <li class="site-menu-item {{request()->routeIs('admin.tools.decompile') ? 'active open' : ''}}">
  465. <a href="{{route('admin.tools.decompile')}}">
  466. <span class="site-menu-title">{{ trans('admin.menu.tools.decompile') }}</span>
  467. </a>
  468. </li>
  469. @endcan
  470. @can('admin.tools.convert')
  471. <li class="site-menu-item {{request()->routeIs('admin.tools.convert') ? 'active open' : ''}}">
  472. <a href="{{route('admin.tools.convert')}}">
  473. <span class="site-menu-title">{{ trans('admin.menu.tools.convert') }}</span>
  474. </a>
  475. </li>
  476. @endcan
  477. @can('admin.tools.import')
  478. <li class="site-menu-item {{request()->routeIs('admin.tools.import') ? 'active open' : ''}}">
  479. <a href="{{route('admin.tools.import')}}">
  480. <span class="site-menu-title">{{ trans('admin.menu.tools.import') }}</span>
  481. </a>
  482. </li>
  483. @endcan
  484. @can('admin.tools.analysis')
  485. <li class="site-menu-item {{request()->routeIs('admin.tools.analysis') ? 'active open' : ''}}">
  486. <a href="{{route('admin.tools.analysis')}}">
  487. <span class="site-menu-title">{{ trans('admin.menu.tools.analysis') }}</span>
  488. </a>
  489. </li>
  490. @endcan
  491. </ul>
  492. </li>
  493. @endcanany
  494. @canany(['admin.config.filter.index', 'admin.config.index', 'admin.system.index'])
  495. <li class="site-menu-item has-sub {{request()->routeIs('admin.config.*', 'admin.system.index') ? 'active open' : ''}}">
  496. <a href="javascript:void(0)">
  497. <i class="site-menu-icon wb-settings" aria-hidden="true"></i>
  498. <span class="site-menu-title">{{ trans('admin.menu.setting.attribute') }}</span>
  499. </a>
  500. <ul class="site-menu-sub">
  501. @can('admin.config.filter.index')
  502. <li class="site-menu-item {{request()->routeIs('admin.config.filter.index') ? 'active open' : ''}}">
  503. <a href="{{route('admin.config.filter.index')}}">
  504. <span class="site-menu-title">{{ trans('admin.menu.setting.email_suffix') }}</span>
  505. </a>
  506. </li>
  507. @endcan
  508. @can('admin.config.index')
  509. <li class="site-menu-item {{request()->routeIs('admin.config.common.*') ? 'active open' : ''}}">
  510. <a href="{{route('admin.config.index')}}">
  511. <span class="site-menu-title">{{ trans('admin.menu.setting.universal') }}</span>
  512. </a>
  513. </li>
  514. @endcan
  515. @can('admin.system.index')
  516. <li class="site-menu-item {{request()->routeIs('admin.system.index') ? 'active open' : ''}}">
  517. <a href="{{route('admin.system.index')}}">
  518. <span class="site-menu-title">{{ trans('admin.menu.setting.system') }}</span>
  519. </a>
  520. </li>
  521. @endcan
  522. </ul>
  523. </li>
  524. @endcanany
  525. </ul>
  526. </div>
  527. </div>
  528. <div class="page">
  529. <!--[if lt IE 8]><p class="browserupgrade">{{trans('common.update_browser.0')}}<strong>{{trans('common.update_browser.1')}}</strong>
  530. {{trans('common.update_browser.2')}}<a href="https://browsehappy.com/" target="_blank">{{trans('common.update_browser.3')}}</a>{{trans('common.update_browser.4')}}</p><![endif]-->
  531. @yield('content')
  532. </div>
  533. @endsection
  534. @section('layout_javascript')
  535. <!--[if lt IE 11]>
  536. <script src="/assets/custom/sweetalert2/polyfill.min.js"></script>
  537. <![endif]-->
  538. <script src="/assets/custom/sweetalert2/sweetalert2.all.min.js"></script>
  539. @yield('javascript')
  540. @endsection