layout.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. <!DOCTYPE html>
  2. <!--[if IE 9]> <html class="ie9 no-focus" lang="zh"> <![endif]-->
  3. <!--[if gt IE 9]><!--> <html class="no-focus" lang="zh"> <!--<![endif]-->
  4. <head>
  5. <meta charset="utf-8">
  6. {block name="page-title"}<title>{$page_title|default='后台'} | {:config('web_site_title')} - DolphinPHP</title>{/block}
  7. <meta name="description" content="{:config('web_site_description')}">
  8. <meta name="author" content="caiweiming">
  9. <meta name="robots" content="noindex, nofollow">
  10. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  11. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1.0,user-scalable=0">
  12. <!-- Icons -->
  13. <!-- The following icons can be replaced with your own, they are used by desktop and mobile browsers -->
  14. <link rel="shortcut icon" href="__ADMIN_IMG__/favicons/favicon.ico">
  15. <link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-16x16.png" sizes="16x16">
  16. <link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-32x32.png" sizes="32x32">
  17. <link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-96x96.png" sizes="96x96">
  18. <link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-160x160.png" sizes="160x160">
  19. <link rel="icon" type="image/png" href="__ADMIN_IMG__/favicons/favicon-192x192.png" sizes="192x192">
  20. <link rel="apple-touch-icon" sizes="57x57" href="__ADMIN_IMG__/favicons/apple-touch-icon-57x57.png">
  21. <link rel="apple-touch-icon" sizes="60x60" href="__ADMIN_IMG__/favicons/apple-touch-icon-60x60.png">
  22. <link rel="apple-touch-icon" sizes="72x72" href="__ADMIN_IMG__/favicons/apple-touch-icon-72x72.png">
  23. <link rel="apple-touch-icon" sizes="76x76" href="__ADMIN_IMG__/favicons/apple-touch-icon-76x76.png">
  24. <link rel="apple-touch-icon" sizes="114x114" href="__ADMIN_IMG__/favicons/apple-touch-icon-114x114.png">
  25. <link rel="apple-touch-icon" sizes="120x120" href="__ADMIN_IMG__/favicons/apple-touch-icon-120x120.png">
  26. <link rel="apple-touch-icon" sizes="144x144" href="__ADMIN_IMG__/favicons/apple-touch-icon-144x144.png">
  27. <link rel="apple-touch-icon" sizes="152x152" href="__ADMIN_IMG__/favicons/apple-touch-icon-152x152.png">
  28. <link rel="apple-touch-icon" sizes="180x180" href="__ADMIN_IMG__/favicons/apple-touch-icon-180x180.png">
  29. <!-- END Icons -->
  30. <!-- Stylesheets -->
  31. <!-- Page JS Plugins CSS -->
  32. {notempty name="_css_files"}
  33. {eq name="Think.config.minify_status" value="1"}
  34. <link rel="stylesheet" href="{:minify('group', $_css_files)}">
  35. {else/}
  36. {volist name="_css_files" id="css"}
  37. {:load_assets($css)}
  38. {/volist}
  39. {/eq}
  40. {/notempty}
  41. {block name="plugins-css"}{/block}
  42. <!-- Bootstrap and OneUI CSS framework -->
  43. {eq name="Think.config.minify_status" value="1"}
  44. <link rel="stylesheet" id="css-main" href="{:minify('group', 'libs_css,core_css')}">
  45. {else/}
  46. <link rel="stylesheet" href="__LIBS__/sweetalert/sweetalert.min.css">
  47. <link rel="stylesheet" href="__LIBS__/magnific-popup/magnific-popup.min.css">
  48. <link rel="stylesheet" href="__ADMIN_CSS__/bootstrap.min.css">
  49. <link rel="stylesheet" href="__ADMIN_CSS__/oneui.css">
  50. <link rel="stylesheet" href="__ADMIN_CSS__/dolphin.css" id="css-main">
  51. {/eq}
  52. <link rel="stylesheet" id="css-theme" href="__ADMIN_CSS__/themes/{:config('system_color')}.min.css">
  53. <!--页面css-->
  54. {block name="style"}{/block}
  55. {notempty name="_pop"}
  56. <style>
  57. #page-container.sidebar-l.sidebar-o {
  58. padding-left: 0;
  59. }
  60. .header-navbar-fixed #main-container {
  61. padding-top: 0;
  62. }
  63. </style>
  64. {/notempty}
  65. <!-- END Stylesheets -->
  66. <!--插件css钩子-->
  67. {:hook('page_plugin_css')}
  68. <!--自定义css-->
  69. <link rel="stylesheet" href="__ADMIN_CSS__/custom.css">
  70. <script>
  71. // url
  72. var dolphin = {
  73. 'top_menu_url': '{:url("admin/ajax/getSidebarMenu")}',
  74. 'theme_url': '{:url("admin/ajax/setTheme")}',
  75. 'jcrop_upload_url': '{$jcrop_upload_url ? $jcrop_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "jcrop", "module" => request()->module()])}',
  76. 'editormd_upload_url': '{$editormd_upload_url ? $editormd_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "editormd", "module" => request()->module()])}',
  77. 'editormd_mudule_path': '__LIBS__/editormd/lib/',
  78. 'ueditor_upload_url': '{$ueditor_upload_url ? $ueditor_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "ueditor", "module" => request()->module()])}',
  79. 'wangeditor_upload_url': '{$wangeditor_upload_url ? $wangeditor_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "wangeditor", "module" => request()->module()])}',
  80. 'wangeditor_emotions': "__LIBS__/wang-editor/emotions.data",
  81. 'ckeditor_img_upload_url': '{$ckeditor_img_upload_url ? $ckeditor_img_upload_url : url("admin/attachment/upload", ["dir" => "images", "from" => "ckeditor", "module" => request()->module()])}',
  82. 'WebUploader_swf': '__LIBS__/webuploader/Uploader.swf',
  83. 'file_upload_url': '{$file_upload_url ? $file_upload_url : url("admin/attachment/upload", ["dir" => "files", "module" => request()->module()])}',
  84. 'image_upload_url': '{$image_upload_url ? $image_upload_url : url("admin/attachment/upload", ["dir" => "images", "module" => request()->module()])}',
  85. 'upload_check_url': '{$upload_check_url ? $upload_check_url : url("admin/ajax/check")}',
  86. 'get_level_data': '{:url("admin/ajax/getLevelData")}',
  87. 'quick_edit_url': '{$quick_edit_url ? $quick_edit_url : url("quickEdit")}',
  88. 'aside_edit_url': '{$aside_edit_url ? $aside_edit_url : url("admin/system/quickEdit")}',
  89. 'triggers': {$field_triggers|default=[]|json_encode}, // 触发器集合
  90. 'field_hide': '{$field_hide|default=""}', // 需要隐藏的字段
  91. 'field_values': '{$field_values|default=""}',
  92. 'validate': '{$validate|default=""}', // 验证器
  93. 'validate_fields': '{$validate_fields|default=""}', // 验证字段
  94. 'search_field': '{:input("param.search_field", "")}', // 搜索字段
  95. // 字段过滤
  96. '_filter': '{$Request.param._filter ? $Request.param._filter : (isset($_filter) ? $_filter : "")}',
  97. '_filter_content': '{$Request.param._filter_content == '' ? (isset($_filter_content) ? $_filter_content : "") : $Request.param._filter_content}',
  98. '_field_display': '{$Request.param._field_display ? $Request.param._field_display : (isset($_field_display) ? $_field_display : "")}',
  99. '_field_clear': {$field_clear|default=[]|json_encode},
  100. 'get_filter_list': '{:url("admin/ajax/getFilterList")}',
  101. 'curr_url': '{:url("", $Request.route)}',
  102. 'curr_params': {$Request.param|json_encode},
  103. 'layer': {:json_encode(config("zbuilder.pop"))}
  104. };
  105. </script>
  106. </head>
  107. <body>
  108. <!-- Page Container -->
  109. <div id="page-container" class="sidebar-l sidebar-o side-scroll header-navbar-fixed {empty name="_pop"}{$_COOKIE['sidebarMini'] ?= 'sidebar-mini'}{/empty}">
  110. <!-- Side Overlay-->
  111. {empty name="_pop"}
  112. {block name="aside"}
  113. <aside id="side-overlay">
  114. <!-- Side Overlay Scroll Container -->
  115. <div id="side-overlay-scroll">
  116. <!-- Side Header -->
  117. <div class="side-header side-content">
  118. <!-- Layout API, functionality initialized in App() -> uiLayoutApi() -->
  119. <button class="btn btn-default pull-right" type="button" data-toggle="layout" data-action="side_overlay_close">
  120. <i class="fa fa-times"></i>
  121. </button>
  122. <span>
  123. <img class="img-avatar img-avatar32" src="{$Think.session.user_auth.uid|get_avatar}" alt="">
  124. <span class="font-w600 push-10-l">{:session('user_auth.username')}</span>
  125. </span>
  126. </div>
  127. <!-- END Side Header -->
  128. <!--侧栏-->
  129. {include file="../application/common/builder/aside/layout.html" /}
  130. </div>
  131. <!-- END Side Overlay Scroll Container -->
  132. </aside>
  133. {/block}
  134. {/empty}
  135. <!-- END Side Overlay -->
  136. <!-- Sidebar -->
  137. {empty name="_pop"}
  138. {block name="sidebar"}
  139. <nav id="sidebar">
  140. <!-- Sidebar Scroll Container -->
  141. <div id="sidebar-scroll">
  142. <!-- Sidebar Content -->
  143. <!-- Adding .sidebar-mini-hide to an element will hide it when the sidebar is in mini mode -->
  144. <div class="sidebar-content">
  145. <!-- Side Header -->
  146. <div class="side-header side-content bg-white-op dolphin-header">
  147. <!-- Layout API, functionality initialized in App() -> uiLayoutApi() -->
  148. <button class="btn btn-link text-gray pull-right hidden-md hidden-lg" type="button" data-toggle="layout" data-action="sidebar_close">
  149. <i class="fa fa-times"></i>
  150. </button>
  151. <!-- Themes functionality initialized in App() -> uiHandleTheme() -->
  152. <div class="btn-group pull-right">
  153. <button class="btn btn-link text-gray dropdown-toggle" data-toggle="dropdown" type="button">
  154. <i class="si si-drop"></i>
  155. </button>
  156. <ul class="dropdown-menu dropdown-menu-right font-s13 sidebar-mini-hide">
  157. <li {$system_color == 'modern' ?= 'class="active"'}>
  158. <a data-toggle="theme" data-theme="modern" data-css="__ADMIN_CSS__/themes/modern.min.css" tabindex="-1" href="javascript:void(0)">
  159. <i class="fa fa-circle text-modern pull-right"></i> <span class="font-w600">Modern</span>
  160. </a>
  161. </li>
  162. <li {$system_color == 'amethyst' ?= 'class="active"'}>
  163. <a data-toggle="theme" data-theme="amethyst" data-css="__ADMIN_CSS__/themes/amethyst.min.css" tabindex="-1" href="javascript:void(0)">
  164. <i class="fa fa-circle text-amethyst pull-right"></i> <span class="font-w600">Amethyst</span>
  165. </a>
  166. </li>
  167. <li {$system_color == 'city' ?= 'class="active"'}>
  168. <a data-toggle="theme" data-theme="city" data-css="__ADMIN_CSS__/themes/city.min.css" tabindex="-1" href="javascript:void(0)">
  169. <i class="fa fa-circle text-city pull-right"></i> <span class="font-w600">City</span>
  170. </a>
  171. </li>
  172. <li {$system_color == 'flat' ?= 'class="active"'}>
  173. <a data-toggle="theme" data-theme="flat" data-css="__ADMIN_CSS__/themes/flat.min.css" tabindex="-1" href="javascript:void(0)">
  174. <i class="fa fa-circle text-flat pull-right"></i> <span class="font-w600">Flat</span>
  175. </a>
  176. </li>
  177. <li {$system_color == 'smooth' ?= 'class="active"'}>
  178. <a data-toggle="theme" data-theme="smooth" data-css="__ADMIN_CSS__/themes/smooth.min.css" tabindex="-1" href="javascript:void(0)">
  179. <i class="fa fa-circle text-smooth pull-right"></i> <span class="font-w600">Smooth</span>
  180. </a>
  181. </li>
  182. <li {$system_color == 'default' ?= 'class="active"'}>
  183. <a data-toggle="theme" data-theme="default" tabindex="-1" href="javascript:void(0)">
  184. <i class="fa fa-circle text-default pull-right"></i> <span class="font-w600">Default</span>
  185. </a>
  186. </li>
  187. </ul>
  188. </div>
  189. <a class="h5 text-white" href="{:url('admin/index/index')}">
  190. {notempty name="Think.config.web_site_logo"}
  191. <img src="{$Think.config.web_site_logo|get_file_path}" class="logo" alt="{$Think.config.web_site_title|default='Dolphin PHP'}">
  192. {else/}
  193. <img src="{$Think.config.public_static_path}admin/img/logo.png" class="logo" alt="Dolphin PHP">
  194. {/notempty}
  195. {notempty name="Think.config.web_site_logo_text"}
  196. <img src="{$Think.config.web_site_logo_text|get_file_path}" class="logo-text sidebar-mini-hide" alt="{$Think.config.web_site_title|default='Dolphin PHP'}">
  197. {else/}
  198. <img src="{$Think.config.public_static_path}admin/img/logo-text.png" class="logo-text sidebar-mini-hide" alt="Dolphin PHP">
  199. {/notempty}
  200. </a>
  201. </div>
  202. <!-- END Side Header -->
  203. <!-- Side Content -->
  204. <div class="side-content" id="sidebar-menu">
  205. {notempty name="_sidebar_menus"}
  206. <ul class="nav-main" id="nav-{$_location[0]['id']}">
  207. {volist name="_sidebar_menus" id="menu"}
  208. <li {$menu['id'] == $_location[1]["id"]?='class="open"'}>
  209. {notempty name="menu.url_value"}
  210. <a {if($menu['id'] == $_location[1]["id"])}class="active"{/if} href="{$menu.url_value}" target="{$menu.url_target}"><i class="{$menu.icon}"></i><span class="sidebar-mini-hide">{$menu.title}</span></a>
  211. {else/}
  212. <a class="nav-submenu" data-toggle="nav-submenu" href="javascript:void(0);"><i class="{$menu.icon}"></i><span class="sidebar-mini-hide">{$menu.title}</span></a>
  213. {/notempty}
  214. {notempty name="menu['child']"}
  215. <ul>
  216. {volist name="menu['child']" id="submenu"}
  217. <li>
  218. <a {if(isset($_location[2]) && $submenu['id'] == $_location[2]["id"])}class="active"{/if} href="{$submenu.url_value}" target="{$submenu.url_target}"><i class="{$submenu.icon}"></i>{$submenu.title}</a>
  219. </li>
  220. {/volist}
  221. </ul>
  222. {/notempty}
  223. </li>
  224. {/volist}
  225. </ul>
  226. {/notempty}
  227. </div>
  228. <!-- END Side Content -->
  229. </div>
  230. <!-- Sidebar Content -->
  231. </div>
  232. <!-- END Sidebar Scroll Container -->
  233. </nav>
  234. {/block}
  235. {/empty}
  236. <!-- END Sidebar -->
  237. <!-- Header -->
  238. {empty name="_pop"}
  239. {block name="header"}
  240. <header id="header-navbar" class="content-mini content-mini-full">
  241. <!-- Header Navigation Right -->
  242. <ul class="nav-header pull-right">
  243. <li>
  244. <div class="btn-group">
  245. <button class="btn btn-default btn-image dropdown-toggle" data-toggle="dropdown" type="button">
  246. <img src="{$Think.session.user_auth.uid|get_avatar}" alt="{:session('user_auth.username')}">
  247. <span class="caret"></span>
  248. </button>
  249. <ul class="dropdown-menu dropdown-menu-right">
  250. <li class="dropdown-header">{:session('user_auth.username')} ({:session('user_auth.role_name')})</li>
  251. <li>
  252. <a tabindex="-1" href="{:url('admin/index/profile')}">
  253. <i class="si si-settings pull-right"></i>个人设置
  254. </a>
  255. </li>
  256. <li class="divider"></li>
  257. <li>
  258. <a tabindex="-1" href="{:url('user/publics/signout')}">
  259. <i class="si si-logout pull-right"></i>退出帐号
  260. </a>
  261. </li>
  262. </ul>
  263. </div>
  264. </li>
  265. <li>
  266. <a class="btn btn-default ajax-get" href="{:url('admin/index/wipeCache')}" data-toggle="tooltip" data-placement="bottom" data-original-title="清空缓存">
  267. <i class="fa fa-trash"></i>
  268. </a>
  269. </li>
  270. <li>
  271. <a class="btn btn-default" href="{:config('mall.www_url')}" target="_blank" data-toggle="tooltip" data-placement="bottom" data-original-title="打开前台">
  272. <i class="fa fa-external-link-square"></i>
  273. </a>
  274. </li>
  275. <li></li>
  276. <!-- <li>
  277. Layout API, functionality initialized in App() -> uiLayoutApi()
  278. <button class="btn btn-default" data-toggle="layout" data-action="side_overlay_toggle" title="侧边栏" type="button">
  279. <i class="fa fa-tasks"></i>
  280. </button>
  281. </li> -->
  282. </ul>
  283. <!-- END Header Navigation Right -->
  284. <!-- Header Navigation Left -->
  285. <ul class="nav nav-pills pull-left">
  286. <li class="hidden-md hidden-lg">
  287. <!-- Layout API, functionality initialized in App() -> uiLayoutApi() -->
  288. <a href="javascript:void(0)" data-toggle="layout" data-action="sidebar_toggle"><i class="fa fa-navicon"></i></a>
  289. </li>
  290. <li class="hidden-xs hidden-sm">
  291. <!-- Layout API, functionality initialized in App() -> uiLayoutApi() -->
  292. <a href="javascript:void(0)" title="打开/关闭左侧导航" data-toggle="layout" data-action="sidebar_mini_toggle"><i class="fa fa-bars"></i></a>
  293. </li>
  294. {notempty name="_top_menus"}
  295. {volist name="_top_menus" id="menu"}
  296. <li class="hidden-xs hidden-sm {$menu['id'] == $_location[0]['id'] ?= 'active'}">
  297. {in name="menu.url_type" value="module_admin,module_home"}
  298. <a href="javascript:void(0);" data-module-id="{$menu['id']}" data-module="{$menu['module']}" data-controller="{$menu['controller']}" target="{$menu['url_target']}" class="top-menu"><i class="{$menu.icon}"></i> {$menu.title}</a>
  299. {else/}
  300. <a href="{$menu['url_value']}" target="{$menu['url_target']}"><i class="{$menu.icon}"></i> {$menu.title}</a>
  301. {/in}
  302. </li>
  303. {/volist}
  304. {/notempty}
  305. <li>
  306. <!-- Opens the Apps modal found at the bottom of the page, before including JS code -->
  307. <a href="#" data-toggle="modal" data-target="#apps-modal"><i class="si si-grid"></i></a>
  308. </li>
  309. </ul>
  310. <!-- END Header Navigation Left -->
  311. </header>
  312. {/block}
  313. {/empty}
  314. <!-- END Header -->
  315. <!-- Main Container -->
  316. <main id="main-container">
  317. <!-- Page Header -->
  318. {block name="page-header"}
  319. {empty name="_pop"}
  320. <div class="bg-gray-lighter">
  321. <ol class="breadcrumb">
  322. <li><i class="fa fa-map-marker"></i></li>
  323. {notempty name="_location"}
  324. {volist name="_location" id="v"}
  325. <li><a class="link-effect" href="{notempty name='$v["url_value"]'}{$v.url_value|url}{else/}javascript:void(0);{/notempty}">{$v.title}</a></li>
  326. {/volist}
  327. {/notempty}
  328. </ol>
  329. </div>
  330. {/empty}
  331. {/block}
  332. <!-- END Page Header -->
  333. <!-- Page Content -->
  334. <div class="content">
  335. {// 页面提示钩子}
  336. {:hook('page_tips')}
  337. {// 主体内容}
  338. {block name="content"}{/block}
  339. </div>
  340. <!-- END Page Content -->
  341. </main>
  342. <!-- END Main Container -->
  343. <!-- Footer -->
  344. {empty name="_pop"}
  345. <!-- <footer id="page-footer" class="content-mini content-mini-full font-s12 bg-gray-lighter clearfix">
  346. </footer> -->
  347. {/empty}
  348. <!-- END Footer -->
  349. </div>
  350. <!-- END Page Container -->
  351. <!-- Apps Modal -->
  352. <!-- Opens from the button in the header -->
  353. <div class="modal fade" id="apps-modal" tabindex="-1" role="dialog" aria-hidden="true">
  354. <div class="modal-dialog modal-dialog-top">
  355. <div class="modal-content">
  356. <!-- Apps Block -->
  357. <div class="block block-themed block-transparent">
  358. <div class="block-header bg-primary-dark">
  359. <ul class="block-options">
  360. <li>
  361. <button data-dismiss="modal" type="button"><i class="si si-close"></i></button>
  362. </li>
  363. </ul>
  364. <h3 class="block-title">所有模块</h3>
  365. </div>
  366. <div class="block-content">
  367. <div class="row text-center">
  368. {notempty name="_top_menus_all"}
  369. {volist name="_top_menus_all" id="menu"}
  370. <div class="col-xs-6 col-sm-3">
  371. {in name="menu.url_type" value="module_admin,module_home"}
  372. <a class="block block-rounded top-menu" href="javascript:void(0);" data-module-id="{$menu['id']}" data-module="{$menu['module']}" data-controller="{$menu['controller']}" target="{$menu['url_target']}">
  373. <div class="block-content text-white {$menu['id'] == $_location[0]['id'] ? 'bg-primary' : 'bg-primary-dark'}">
  374. <i class="{$menu.icon} fa-2x"></i>
  375. <div class="font-w600 push-15-t push-15">{$menu.title}</div>
  376. </div>
  377. </a>
  378. {else/}
  379. <a class="block block-rounded" href="{$menu['url_value']}" target="{$menu['url_target']}">
  380. <div class="block-content text-white {$menu['id'] == $_location[0]['id'] ? 'bg-primary' : 'bg-primary-dark'}">
  381. <i class="{$menu.icon} fa-2x"></i>
  382. <div class="font-w600 push-15-t push-15">{$menu.title}</div>
  383. </div>
  384. </a>
  385. {/in}
  386. </div>
  387. {/volist}
  388. {/notempty}
  389. </div>
  390. </div>
  391. </div>
  392. <!-- END Apps Block -->
  393. </div>
  394. </div>
  395. </div>
  396. <!-- END Apps Modal -->
  397. <!-- OneUI Core JS: jQuery, Bootstrap, slimScroll, scrollLock, Appear, CountTo, Placeholder, Cookie and App.js -->
  398. {eq name="Think.config.minify_status" value="1"}
  399. <script src="{:minify('group', 'core_js,libs_js')}"></script>
  400. {else/}
  401. <script src="__ADMIN_JS__/core/jquery.min.js"></script>
  402. <script src="__ADMIN_JS__/core/bootstrap.min.js"></script>
  403. <script src="__ADMIN_JS__/core/jquery.slimscroll.min.js"></script>
  404. <script src="__ADMIN_JS__/core/jquery.scrollLock.min.js"></script>
  405. <script src="__ADMIN_JS__/core/jquery.appear.min.js"></script>
  406. <script src="__ADMIN_JS__/core/jquery.countTo.min.js"></script>
  407. <script src="__ADMIN_JS__/core/jquery.placeholder.min.js"></script>
  408. <script src="__ADMIN_JS__/core/js.cookie.min.js"></script>
  409. <script src="__LIBS__/magnific-popup/magnific-popup.min.js"></script>
  410. <script src="__ADMIN_JS__/app.js"></script>
  411. <script src="__ADMIN_JS__/dolphin.js"></script>
  412. <script src="__ADMIN_JS__/builder/form.js"></script>
  413. <script src="__ADMIN_JS__/builder/aside.js"></script>
  414. <script src="__ADMIN_JS__/builder/table.js"></script>
  415. <script src="__LIBS__/bootstrap-notify/bootstrap-notify.min.js"></script>
  416. <script src="__LIBS__/sweetalert/sweetalert.min.js"></script>
  417. <script src="__LIBS__/js-xss/xss.min.js"></script>
  418. {/eq}
  419. <!-- Page JS Plugins -->
  420. <script src="__LIBS__/layer/layer.js"></script>
  421. {notempty name="_js_files"}
  422. {eq name="Think.config.minify_status" value="1"}
  423. <script src="{:minify('group', $_js_files)}"></script>
  424. {else/}
  425. {volist name="_js_files" id="js"}
  426. {:load_assets($js, 'js')}
  427. {/volist}
  428. {/eq}
  429. {/notempty}
  430. <script>
  431. jQuery(function () {
  432. App.initHelpers(['appear', 'slimscroll', 'magnific-popup', 'table-tools']);
  433. {notempty name="_js_init"}
  434. App.initHelpers({$_js_init});
  435. {/notempty}
  436. });
  437. </script>
  438. <!--页面js-->
  439. {block name="script"}{/block}
  440. <!--插件js钩子-->
  441. {:hook('page_plugin_js')}
  442. {// 额外HTML代码 }
  443. {$extra_html|default=''}
  444. </body>
  445. </html>