base.html 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta name="renderer" content="webkit" />
  5. <meta http-equiv="X-UA-COMPATIBLE" content="IE=edge,chrome=1" />
  6. <title>{$menu_info['title']|default=""} - {$website['title']|default="Niushop开源商城"}</title>
  7. <meta name="keywords" content="{$website['keywords']|default='Niushop开源商城'}">
  8. <meta name="description" content="{$website['desc']|default='描述'}}">
  9. <link rel="icon" type="image/x-icon" href="__STATIC__/img/bitbug_favicon.ico" />
  10. <link rel="stylesheet" type="text/css" href="STATIC_CSS/iconfont.css" />
  11. <link rel="stylesheet" type="text/css" href="__STATIC__/ext/layui/css/layui.css" />
  12. <link rel="stylesheet" type="text/css" href="__STATIC__/loading/msgbox.css"/>
  13. <link rel="stylesheet" type="text/css" href="ADMIN_CSS/common.css" />
  14. <script src="__STATIC__/js/jquery-3.1.1.js"></script>
  15. <script src="__STATIC__/ext/layui/layui.js"></script>
  16. <script>
  17. layui.use(['layer', 'upload', 'element'], function() {});
  18. window.ns_url = {
  19. baseUrl: "ROOT_URL/",
  20. route: ['{:request()->module()}', '{:request()->controller()}', '{:request()->action()}'],
  21. };
  22. </script>
  23. <script src="__STATIC__/js/common.js"></script>
  24. <style>
  25. .ns-calendar{background: url("__STATIC__/img/ns_calendar.png") no-repeat center / 16px 16px;}
  26. </style>
  27. {block name="resources"}{/block}
  28. <script type="text/javascript">
  29. </script>
  30. </head>
  31. <body>
  32. {block name='body'}
  33. <!-- logo -->
  34. <div class="ns-logo">
  35. <div class="logo-box">
  36. <!-- <img src="ADMIN_IMG/logo.png">-->
  37. <h1><font color="white">钥盛商城</font></h1>
  38. </div>
  39. </div>
  40. <div class="layui-layout layui-layout-admin">
  41. {block name='head'}
  42. <div class="layui-header">
  43. <!-- 一级菜单 -->
  44. <ul class="layui-nav layui-layout-left">
  45. {php}$serond_menu = [];{/php}
  46. {foreach $menu as $menu_k => $menu_v}
  47. <li class="layui-nav-item {if $menu_v.selected} layui-this{/if}">
  48. <a href="{$menu_v.url}">{$menu_v.title}</a>
  49. </li>
  50. {if $menu_v.selected}
  51. {php}
  52. $serond_menu = $menu_v['child_list'];
  53. {/php}
  54. {/if}
  55. {/foreach}
  56. </ul>
  57. <ul class="layui-nav layui-layout-right">
  58. <li class="layui-nav-item">
  59. <a href="javascript:;">
  60. <div class="ns-img-box">
  61. <img src="ADMIN_IMG/default_headimg.png" alt="">
  62. </div>
  63. {$user_info['username']}
  64. </a>
  65. <dl class="layui-nav-child">
  66. <dd class="ns-reset-pass" onclick="resetPassword();">
  67. <a href="javascript:;">修改密码</a>
  68. </dd>
  69. <dd>
  70. <a onclick="clearCache()" href="javascript:;">清除缓存</a>
  71. </dd>
  72. <dd>
  73. <a href="{:addon_url('admin/login/logout')}" class="login-out">退出登录</a>
  74. </dd>
  75. </dl>
  76. </li>
  77. </ul>
  78. </div>
  79. {/block}
  80. {notempty name="$serond_menu"}
  81. <div class="layui-side">
  82. <div class="layui-side-scroll">
  83. <span class="ns-side-title">{$crumbs[0]['title']}</span>
  84. <!-- 二三级菜单-->
  85. <ul class="layui-nav layui-nav-tree" lay-filter="test">
  86. {foreach $serond_menu as $menu_second_k => $menu_second_v}
  87. <li class="layui-nav-item {if $menu_second_v.selected} layui-nav-itemed {/if}{if !$menu_second_v.child_list && $menu_second_v.selected} layui-this{/if}">
  88. <a class="layui-menu-tips" href="{if !$menu_second_v.child_list} {$menu_second_v.url} {else/}javascript:;{/if}">{$menu_second_v.title}</a>
  89. {notempty name="$menu_second_v.child_list"}
  90. <dl class="layui-nav-child">
  91. {foreach $menu_second_v["child_list"] as $menu_third_k => $menu_third_v}
  92. <dd class="{if $menu_third_v.selected} layui-this{/if}">
  93. <a href="{$menu_third_v.url}">{$menu_third_v.title}</a>
  94. </dd>
  95. {/foreach}
  96. </dl>
  97. {/notempty}
  98. </li>
  99. {/foreach}
  100. </ul>
  101. </div>
  102. </div>
  103. {/notempty}
  104. <div class="layui-body{empty name='$serond_menu'} child_no_exit{/empty}">
  105. <!-- 面包屑 -->
  106. {block name='crumbs'}
  107. {if count($serond_menu) > 0}
  108. <div class="ns-crumbs{empty name='$serond_menu'} child_no_exit{/empty}">
  109. <span class="layui-breadcrumb" lay-separator="-">
  110. {foreach $crumbs as $crumbs_k => $crumbs_v}
  111. {if count($crumbs) == ($crumbs_k + 1)}
  112. <a href="{$crumbs_v.url}"><cite>{$crumbs_v.title}</cite></a>
  113. {else/}
  114. <a href="{$crumbs_v.url}">{$crumbs_v.title}</a>
  115. {/if}
  116. {/foreach}
  117. </span>
  118. </div>
  119. {/if}
  120. {/block}
  121. <div class="ns-body-content {if count($serond_menu) < 1} crumbs_no_exit{/if}">
  122. <div class="ns-body">
  123. <!-- 四级导航 -->
  124. {if condition="isset($forth_menu) && !empty($forth_menu)"}
  125. <div class="fourstage-nav layui-tab layui-tab-brief" lay-filter="edit_user_tab">
  126. <ul class="layui-tab-title">
  127. {volist name="$forth_menu" id="menu"}
  128. <li class="{$menu.selected == 1 ? 'layui-this' : ''}" lay-id="basic_info"><a href="{$menu.parse_url}">{$menu.title}</a></li>
  129. {/volist}
  130. </ul>
  131. </div>
  132. {/if}
  133. {block name="main"} {/block}
  134. </div>
  135. <!-- 版权信息 -->
  136. <div class="ns-footer">
  137. <div class="ns-footer-img">
  138. <a href="#"><img style="-webkit-filter: grayscale(100%);-moz-filter: grayscale(100%);-ms-filter: grayscale(100%);-o-filter: grayscale(100%);filter: grayscale(100%);filter: gray;" src="{if !empty($copyright.logo)} {:img($copyright.logo)} {else /}__STATIC__/img/copyright_logo.png{/if}" /></a>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. <!-- 重置密码弹框html -->
  145. <div class="layui-form" id="reset_pass" style="display: none;">
  146. <div class="layui-form-item">
  147. <label class="layui-form-label"><span class="required">*</span>原密码</label>
  148. <div class="layui-input-block">
  149. <input type="password" id="old_pass" name="old_pass" required class="layui-input ns-len-mid" maxlength="18" autocomplete="off" readonly onfocus="this.removeAttribute('readonly');" onblur="this.setAttribute('readonly',true);">
  150. <span class="required"></span>
  151. </div>
  152. </div>
  153. <div class="layui-form-item">
  154. <label class="layui-form-label"><span class="required">*</span>新密码</label>
  155. <div class="layui-input-block">
  156. <input type="password" id="new_pass" name="new_pass" required class="layui-input ns-len-mid" maxlength="18" autocomplete="off" readonly onfocus="this.removeAttribute('readonly');" onblur="this.setAttribute('readonly',true);">
  157. <span class="required"></span>
  158. </div>
  159. </div>
  160. <div class="layui-form-item">
  161. <label class="layui-form-label"><span class="required">*</span>确认新密码</label>
  162. <div class="layui-input-block">
  163. <input type="password" id="repeat_pass" name="repeat_pass" required class="layui-input ns-len-mid" maxlength="18" autocomplete="off" readonly onfocus="this.removeAttribute('readonly');" onblur="this.setAttribute('readonly',true);">
  164. <span class="required"></span>
  165. </div>
  166. </div>
  167. <div class="ns-form-row">
  168. <button class="layui-btn ns-bg-color" onclick="repass()">确定</button>
  169. <button class="layui-btn layui-btn-primary" onclick="closePass()">返回</button>
  170. </div>
  171. </div>
  172. <script type="text/javascript">
  173. layui.use('element',function () {
  174. var element = layui.element;
  175. element.render('breadcrumb');
  176. });
  177. function clearCache () {
  178. $.ajax({
  179. type: 'post',
  180. url: ns.url("admin/Login/clearCache"),
  181. dataType: 'JSON',
  182. success: function(res) {
  183. layer.msg(res.message);
  184. location.reload();
  185. }
  186. })
  187. }
  188. /**
  189. * 重置密码
  190. */
  191. var index;
  192. function resetPassword() {
  193. index = layer.open({
  194. type:1,
  195. content:$('#reset_pass'),
  196. offset: 'auto',
  197. area: ['650px']
  198. });
  199. setTimeout(function() {
  200. $(".ns-reset-pass").removeClass('layui-this');
  201. }, 1000);
  202. }
  203. // $(".ns-reset-pass").on('click', function() {
  204. // $(this).removeClass('layui-this');
  205. // })
  206. var repeat_flag = false;
  207. function repass(){
  208. var old_pass = $("#old_pass").val();
  209. var new_pass = $("#new_pass").val();
  210. var repeat_pass = $("#repeat_pass").val();
  211. if (old_pass == '') {
  212. $("#old_pass").focus();
  213. layer.msg("原密码不能为空");
  214. return;
  215. }
  216. if (new_pass == '') {
  217. $("#new_pass").focus();
  218. layer.msg("密码不能为空");
  219. return;
  220. } else if ($("#new_pass").val().length < 6) {
  221. $("#new_pass").focus();
  222. layer.msg("密码不能少于6位数");
  223. return;
  224. }
  225. if (repeat_pass == '') {
  226. $("#repeat_pass").focus();
  227. layer.msg("密码不能为空");
  228. return;
  229. } else if ($("#repeat_pass").val().length < 6) {
  230. $("#repeat_pass").focus();
  231. layer.msg("密码不能少于6位数");
  232. return;
  233. }
  234. if (new_pass != repeat_pass) {
  235. $("#repeat_pass").focus();
  236. layer.msg("两次密码输入不一样,请重新输入");
  237. return;
  238. }
  239. if(repeat_flag)return;
  240. repeat_flag = true;
  241. $.ajax({
  242. type: "POST",
  243. dataType: 'JSON',
  244. url: ns.url("admin/login/modifypassword"),
  245. data: {"old_pass": old_pass,"new_pass": new_pass},
  246. success: function(res) {
  247. layer.msg(res.message);
  248. repeat_flag = false;
  249. if (res.code == 0) {
  250. layer.close(index);
  251. location.reload();
  252. }
  253. }
  254. });
  255. }
  256. function closePass() {
  257. layer.close(index);
  258. }
  259. layui.use('element', function() {
  260. var element = layui.element;
  261. element.init();
  262. });
  263. </script>
  264. {/block}
  265. {block name="script"}
  266. {/block}
  267. </body>
  268. </html>