base.html 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  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. </div>
  38. <span>玥盛商城</span>
  39. <span>
  40. </span>
  41. </div>
  42. <div class="layui-layout layui-layout-admin">
  43. {block name='head'}
  44. <div class="layui-header">
  45. <!-- 一级菜单 -->
  46. <ul class="layui-nav layui-layout-left">
  47. {php}$serond_menu = [];{/php}
  48. {foreach $menu as $menu_k => $menu_v}
  49. <li class="layui-nav-item {if $menu_v.selected} layui-this{/if}">
  50. <a href="{$menu_v.url}">{$menu_v.title}</a>
  51. </li>
  52. {if $menu_v.selected}
  53. {php}
  54. $serond_menu = $menu_v['child_list'];
  55. {/php}
  56. {/if}
  57. {/foreach}
  58. </ul>
  59. <ul class="layui-nav layui-layout-right">
  60. <li class="layui-nav-item">
  61. <a href="javascript:;">
  62. <div class="ns-img-box">
  63. <img src="ADMIN_IMG/default_headimg.png" alt="">
  64. </div>
  65. {$user_info['username']}
  66. </a>
  67. <dl class="layui-nav-child">
  68. <dd class="ns-reset-pass" onclick="resetPassword();">
  69. <a href="javascript:;">修改密码</a>
  70. </dd>
  71. <dd>
  72. <a onclick="clearCache()" href="javascript:;">清除缓存</a>
  73. </dd>
  74. <dd>
  75. <a href="{:addon_url('admin/login/logout')}" class="login-out">退出登录</a>
  76. </dd>
  77. </dl>
  78. </li>
  79. </ul>
  80. </div>
  81. {/block}
  82. {notempty name="$serond_menu"}
  83. <div class="layui-side">
  84. <div class="layui-side-scroll">
  85. <span class="ns-side-title">{$crumbs[0]['title']}</span>
  86. <!-- 二三级菜单-->
  87. <ul class="layui-nav layui-nav-tree" lay-filter="test">
  88. {foreach $serond_menu as $menu_second_k => $menu_second_v}
  89. <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}">
  90. <a class="layui-menu-tips" href="{if !$menu_second_v.child_list} {$menu_second_v.url} {else/}javascript:;{/if}">{$menu_second_v.title}</a>
  91. {notempty name="$menu_second_v.child_list"}
  92. <dl class="layui-nav-child">
  93. {foreach $menu_second_v["child_list"] as $menu_third_k => $menu_third_v}
  94. <dd class="{if $menu_third_v.selected} layui-this{/if}">
  95. <a href="{$menu_third_v.url}">{$menu_third_v.title}</a>
  96. </dd>
  97. {/foreach}
  98. </dl>
  99. {/notempty}
  100. </li>
  101. {/foreach}
  102. </ul>
  103. </div>
  104. </div>
  105. {/notempty}
  106. <div class="layui-body{empty name='$serond_menu'} child_no_exit{/empty}">
  107. <!-- 面包屑 -->
  108. {block name='crumbs'}
  109. {if count($serond_menu) > 0}
  110. <div class="ns-crumbs{empty name='$serond_menu'} child_no_exit{/empty}">
  111. <span class="layui-breadcrumb" lay-separator="-">
  112. {foreach $crumbs as $crumbs_k => $crumbs_v}
  113. {if count($crumbs) == ($crumbs_k + 1)}
  114. <a href="{$crumbs_v.url}"><cite>{$crumbs_v.title}</cite></a>
  115. {else/}
  116. <a href="{$crumbs_v.url}">{$crumbs_v.title}</a>
  117. {/if}
  118. {/foreach}
  119. </span>
  120. </div>
  121. {/if}
  122. {/block}
  123. <div class="ns-body-content {if count($serond_menu) < 1} crumbs_no_exit{/if}">
  124. <div class="ns-body">
  125. <!-- 四级导航 -->
  126. {if condition="isset($forth_menu) && !empty($forth_menu)"}
  127. <div class="fourstage-nav layui-tab layui-tab-brief" lay-filter="edit_user_tab">
  128. <ul class="layui-tab-title">
  129. {volist name="$forth_menu" id="menu"}
  130. <li class="{$menu.selected == 1 ? 'layui-this' : ''}" lay-id="basic_info"><a href="{$menu.parse_url}">{$menu.title}</a></li>
  131. {/volist}
  132. </ul>
  133. </div>
  134. {/if}
  135. {block name="main"} {/block}
  136. </div>
  137. <!-- 版权信息 -->
  138. <div class="ns-footer">
  139. <div class="ns-footer-img">
  140. <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>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. <!-- 重置密码弹框html -->
  147. <div class="layui-form" id="reset_pass" style="display: none;">
  148. <div class="layui-form-item">
  149. <label class="layui-form-label"><span class="required">*</span>原密码</label>
  150. <div class="layui-input-block">
  151. <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);">
  152. <span class="required"></span>
  153. </div>
  154. </div>
  155. <div class="layui-form-item">
  156. <label class="layui-form-label"><span class="required">*</span>新密码</label>
  157. <div class="layui-input-block">
  158. <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);">
  159. <span class="required"></span>
  160. </div>
  161. </div>
  162. <div class="layui-form-item">
  163. <label class="layui-form-label"><span class="required">*</span>确认新密码</label>
  164. <div class="layui-input-block">
  165. <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);">
  166. <span class="required"></span>
  167. </div>
  168. </div>
  169. <div class="ns-form-row">
  170. <button class="layui-btn ns-bg-color" onclick="repass()">确定</button>
  171. <button class="layui-btn layui-btn-primary" onclick="closePass()">返回</button>
  172. </div>
  173. </div>
  174. <script type="text/javascript">
  175. layui.use('element',function () {
  176. var element = layui.element;
  177. element.render('breadcrumb');
  178. });
  179. function clearCache () {
  180. $.ajax({
  181. type: 'post',
  182. url: ns.url("admin/Login/clearCache"),
  183. dataType: 'JSON',
  184. success: function(res) {
  185. layer.msg(res.message);
  186. location.reload();
  187. }
  188. })
  189. }
  190. /**
  191. * 重置密码
  192. */
  193. var index;
  194. function resetPassword() {
  195. index = layer.open({
  196. type:1,
  197. content:$('#reset_pass'),
  198. offset: 'auto',
  199. area: ['650px']
  200. });
  201. setTimeout(function() {
  202. $(".ns-reset-pass").removeClass('layui-this');
  203. }, 1000);
  204. }
  205. // $(".ns-reset-pass").on('click', function() {
  206. // $(this).removeClass('layui-this');
  207. // })
  208. var repeat_flag = false;
  209. function repass(){
  210. var old_pass = $("#old_pass").val();
  211. var new_pass = $("#new_pass").val();
  212. var repeat_pass = $("#repeat_pass").val();
  213. if (old_pass == '') {
  214. $("#old_pass").focus();
  215. layer.msg("原密码不能为空");
  216. return;
  217. }
  218. if (new_pass == '') {
  219. $("#new_pass").focus();
  220. layer.msg("密码不能为空");
  221. return;
  222. } else if ($("#new_pass").val().length < 6) {
  223. $("#new_pass").focus();
  224. layer.msg("密码不能少于6位数");
  225. return;
  226. }
  227. if (repeat_pass == '') {
  228. $("#repeat_pass").focus();
  229. layer.msg("密码不能为空");
  230. return;
  231. } else if ($("#repeat_pass").val().length < 6) {
  232. $("#repeat_pass").focus();
  233. layer.msg("密码不能少于6位数");
  234. return;
  235. }
  236. if (new_pass != repeat_pass) {
  237. $("#repeat_pass").focus();
  238. layer.msg("两次密码输入不一样,请重新输入");
  239. return;
  240. }
  241. if(repeat_flag)return;
  242. repeat_flag = true;
  243. $.ajax({
  244. type: "POST",
  245. dataType: 'JSON',
  246. url: ns.url("admin/login/modifypassword"),
  247. data: {"old_pass": old_pass,"new_pass": new_pass},
  248. success: function(res) {
  249. layer.msg(res.message);
  250. repeat_flag = false;
  251. if (res.code == 0) {
  252. layer.close(index);
  253. location.reload();
  254. }
  255. }
  256. });
  257. }
  258. function closePass() {
  259. layer.close(index);
  260. }
  261. layui.use('element', function() {
  262. var element = layui.element;
  263. element.init();
  264. });
  265. </script>
  266. {/block}
  267. {block name="script"}
  268. {/block}
  269. </body>
  270. </html>