index.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. {extend name="../../base/view/common/base" /}
  2. {block name="style"}
  3. <link rel="stylesheet" href="{__GOUGU__}/gougu/css/layout.css" media="all">
  4. {/block}
  5. <!-- 主体 -->
  6. {block name="body"}
  7. <div class="layui-layout-body">
  8. <div id="GouguApp">
  9. <div class="layui-layout gg-layout layout-menu-{$system.menu_mode|default='classical'}">
  10. <div class="layui-header">
  11. <!-- 头部区域 -->
  12. <div class="layui-layout-left">
  13. <span class="gg-head-item">
  14. <a href="javascript:;" gg-event="shrink" title="侧边伸缩"><i class="layui-icon layui-icon-shrink-right"></i></a>
  15. </span>
  16. <span class="gg-head-item gg-head-cache">
  17. <a href="javascript:;" gg-event="cache" data-href="/api/index/cache_clear" title="清空缓存"><i class="layui-icon layui-icon-fonts-clear"></i></a>
  18. </span>
  19. <span class="gg-head-item gg-head-home">
  20. <a href="https://www.gougucms.com/home/pages/detail/s/gouguoa.html" target="_blank" title="前台首页"><i class="layui-icon layui-icon-website"></i></a>
  21. </span>
  22. <span class="gg-head-item gg-head-home">
  23. <a class="tab-a" data-href="/crud/crud/index" data-title="简单CRUD" title="简单CRUD"><i class="layui-icon layui-icon-template"></i></a>
  24. </span>
  25. </div>
  26. <div class="layui-layout-right">
  27. <span class="gg-head-item gg-head-refresh">
  28. <a href="javascript:;" class="refreshThis" gg-event="refresh" title="刷新页面">
  29. <i class="layui-icon layui-icon-refresh"></i>
  30. </a>
  31. </span>
  32. <span class="gg-head-item gg-head-screen" title="切换全屏">
  33. <a href="javascript:;" gg-event="screen" data-screen="full">
  34. <i class="fullScreen layui-icon layui-icon-screen-full"></i>
  35. </a>
  36. </span>
  37. <span class="gg-head-item gg-head-set">
  38. <a href="javascript:;" id="theme" title="切换主题">
  39. <i class="layui-icon layui-icon-set"></i>
  40. </a>
  41. </span>
  42. <span class="gg-head-item gg-head-set">
  43. <a href="/home/login/lock.html" title="锁屏">
  44. <i class="iconfont icon-suozhu" style="font-size:21px; font-weight:800"></i>
  45. </a>
  46. </span>
  47. <span class="gg-head-item gg-head-message">
  48. <a href="javascript:;" data-href="/home/message/inbox" data-id="1000" data-title="消息中心" class="tab-a" title="消息中心">
  49. <i class="layui-icon layui-icon-notice"></i>
  50. <!-- 如果有新消息,则显示 -->
  51. <div class="gg-message-num" id="msgNum" style="display: none;"><span>0</span></div>
  52. </a>
  53. </span>
  54. <span class="gg-head-item gg-head-avatar">
  55. <ul class="layui-nav">
  56. <li class="layui-nav-item">
  57. <a href="javascript:;">
  58. <img src="{$login_admin.thumb}" onerror="javascript:this.src='{__IMG__}/nonepic360x360.jpg';this.onerror=null;">
  59. <cite>{$login_admin.nickname}</cite>
  60. </a>
  61. <dl class="layui-nav-child" style="text-align: center; cursor: pointer;">
  62. <dd><a data-href="/home/index/edit_personal" data-id="1001" data-title="基本资料" class="tab-a">基本资料</a></dd>
  63. <dd><a data-href="/home/index/edit_password" data-id="1002" data-title="修改密码" class="tab-a">修改密码</a></dd>
  64. <hr>
  65. <dd gg-event="logout"><a>退出</a></dd>
  66. </dl>
  67. </li>
  68. </ul>
  69. </span>
  70. </div>
  71. </div>
  72. <!-- 侧边菜单 -->
  73. {empty name="$system.menu_mode"}
  74. {include file="/index/menu_classical" /}
  75. {else/}
  76. {if ($system.menu_mode == 'expand') }
  77. {include file="/index/menu_expand" /}
  78. {else/}
  79. {include file="/index/menu_classical" /}
  80. {/if}
  81. {/empty}
  82. <!-- 页面标签 -->
  83. <div id="pageTabs" class="page-tabs">
  84. <div class="layui-icon gg-tabs-control layui-icon-prev" gg-event="tabRollLeft"></div>
  85. <div class="layui-icon gg-tabs-control layui-icon-next" gg-event="tabRollRight"></div>
  86. <div class="layui-icon gg-tabs-control layui-icon-down">
  87. <ul class="layui-nav gg-tabs-select">
  88. <li class="layui-nav-item">
  89. <a href="javascript:;"></a>
  90. <dl class="layui-nav-child layui-anim-fadein">
  91. <dd gg-event="closeThisTabs"><a href="javascript:;">关闭当前</a></dd>
  92. <dd gg-event="closeOtherTabs"><a href="javascript:;">关闭其它</a></dd>
  93. <dd gg-event="closeAllTabs"><a href="javascript:;">关闭全部</a></dd>
  94. </dl>
  95. </li>
  96. </ul>
  97. </div>
  98. <div class="layui-tab gg-admin-tab" lay-unauto lay-allowClose="true" lay-filter="gg-admin-tab">
  99. <ul class="layui-tab-title" id="pageTabUl">
  100. <li lay-id="0" lay-attr="view/home/index.html" class="layui-this"><i class="iconfont icon-xueshuguanli"></i></li>
  101. </ul>
  102. </div>
  103. </div>
  104. <!-- 主体内容 -->
  105. <div class="layui-body" id="GouguAppBody">
  106. <div class="gg-tab-page layui-show" id="tabItem0" data-id="0">
  107. <iframe id="0" data-frameid="0" title="勾股OA" name="myiframe" src="{:url('/home/index/main')}" frameborder="0" data-timestamp="0" align="left" width="100%" height="100%" scrolling="yes"></iframe>
  108. </div>
  109. </div>
  110. <!-- 辅助元素,用于移动设备下遮罩 -->
  111. <div class="gg-body-shade" gg-event="shade"></div>
  112. <!-- 新消息通知 -->
  113. <div class="notification" style="display:none;">
  114. <audio id="msgSound"><source src="{__STATIC__}/home/file/msg.mp3" type="audio/mpeg"></audio>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. <!-- /主体 -->
  120. {/block}
  121. <!-- 脚本 -->
  122. {block name="script"}
  123. <script>
  124. const msg_sound = {$system.msg_sound|default=1};
  125. const watermark = {$system.watermark|default=1};
  126. const watermarkTxt = '{$admin.name|default="勾股OA"} {:substr($admin.mobile, -4)}';
  127. const moduleInit = ['tool','admin'];
  128. function gouguInit() {
  129. let admin = layui.admin;
  130. let tabs = admin.getCookie('gougutab');
  131. if(tabs && tabs!=''){
  132. let tab_parse = JSON.parse(tabs);
  133. let tab_id = tab_parse.tab_id,tab_array = tab_parse.tab_array;
  134. if(tab_array.length>0){
  135. for(let a=0; a<tab_array.length;a++){
  136. admin.tabTem(tab_array[a].id, tab_array[a].url,tab_array[a].title);
  137. }
  138. if(tab_id>0){
  139. admin.tabChange(tab_id);
  140. }
  141. }
  142. }
  143. admin.loading();
  144. menuInit();
  145. if(watermark==1){
  146. createWatermark();
  147. }
  148. $('#GouguApp').on("click",'[gg-event="logout"]',function () {
  149. layer.confirm('确认注销登录吗?', { icon: 7, title: '警告' }, function (index) {
  150. //注销
  151. $.ajax({
  152. url: "/home/login/login_out",
  153. success: function (e) {
  154. layer.msg(e.msg);
  155. if (e.code == 0) {
  156. setTimeout(function () {
  157. location.href = "{:url('home/login/index')}"
  158. }, 1000)
  159. }
  160. }
  161. })
  162. layer.close(index);
  163. });
  164. });
  165. layui.dropdown.render({
  166. elem: '#theme',
  167. trigger: 'mousedown',
  168. align: 'center',
  169. data: [{
  170. title: '经典黑',
  171. theme: 'black'
  172. },{
  173. title: '简约白',
  174. theme: 'white'
  175. },{
  176. title: '海军蓝',
  177. theme: 'blue'
  178. }],
  179. click: function(data, othis){
  180. $.ajax({
  181. url: "/home/index/set_theme",
  182. data:{'theme':data.theme},
  183. success: function (e) {
  184. layer.msg(e.msg);
  185. if (e.code == 0) {
  186. setTimeout(function () {
  187. parent.location.reload();
  188. }, 1000)
  189. }
  190. }
  191. })
  192. }
  193. });
  194. //轮循获取消息
  195. let msg_num = 0,msg_bool=false;
  196. const msgSound = document.getElementById("msgSound");
  197. $(document).ready(function(){
  198. $(document).one('click',function(){
  199. msg_bool = true;
  200. //console.log("页面被点击了");
  201. });
  202. });
  203. $("#GouguAppBody").find('.gg-tab-page.layui-show iframe').on("load", function() {
  204. var iframeDocument = $(this).contents();
  205. iframeDocument.one('click',function(){
  206. msg_bool = true;
  207. //console.log("子页面被点击了");
  208. });
  209. });
  210. var getStatus = setInterval(function () {
  211. $.ajax({
  212. url: "/api/index/get_msg",
  213. type:'post',
  214. success:function(e){
  215. if(e.code==0 && e.data!==''){
  216. if(e.data>0){
  217. $('#msgNum').show().find('span').html(e.data);
  218. if(e.data!=msg_num && msg_bool == true && msg_sound==1){
  219. msgSound.play();
  220. msg_num = e.data;
  221. }
  222. }
  223. else{
  224. $('#msgNum').hide().find('span').html(0);
  225. }
  226. }else{
  227. layer.closeAll();
  228. }
  229. }
  230. })
  231. }, 10000);
  232. }
  233. function createWatermark(){
  234. var canvas = document.createElement('canvas');
  235. canvas.width = 300;
  236. canvas.height = 200;
  237. var ctx = canvas.getContext('2d');
  238. ctx.font = '14px Arial';
  239. ctx.fillStyle = '#dddddd';
  240. ctx.textAlign = 'left';
  241. ctx.textBaseline = 'top';
  242. ctx.rotate(15 * Math.PI / 180);
  243. ctx.fillText(watermarkTxt, 20, 50);
  244. ctx.fillText(watermarkTxt, 180, 120);
  245. var dataURL = canvas.toDataURL('image/png');
  246. let node = document.createElement("div");
  247. node.style.pointerEvents = "none";
  248. node.style.position = "fixed";
  249. node.style.width = "100%";
  250. node.style.height = "100%";
  251. node.style.top = "0";
  252. node.style.left = "0";
  253. node.style.opacity = "0.36";
  254. node.style.zIndex = "998";
  255. node.style.background = 'url("' + dataURL + '") 0 0 repeat';
  256. // 将创建的元素插入body中,作为body的子元素
  257. document.body.appendChild(node);
  258. }
  259. </script>
  260. {/block}
  261. <!-- /脚本 -->