index.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <?php
  2. use app\assets\CoreAsset;
  3. use app\assets\PluginsAsset;
  4. $asset = CoreAsset::register($this);
  5. $assetsUrl = $asset->baseUrl;
  6. $pluginsAsset = PluginsAsset::register($this);
  7. $pluginsUrl = $pluginsAsset->baseUrl;
  8. ?>
  9. <?php $this->beginPage() ?>
  10. <!DOCTYPE html>
  11. <html >
  12. <head>
  13. <meta charset="<?php echo CHARSET;?>" />
  14. <title><?php echo Yii::t('admin','system name');?> - <?php echo Yii::t("admin","system full name");?></title>
  15. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  16. <!-- App favicon -->
  17. <link rel="shortcut icon" href="<?php echo $assetsUrl;?>/images/favicon.ico">
  18. <!-- Bootstrap Css -->
  19. <link href="<?php echo $assetsUrl;?>/css/bootstrap.min.css" id="bootstrap-style" rel="stylesheet" type="text/css" />
  20. <!-- Icons Css -->
  21. <link href="<?php echo $assetsUrl;?>/css/icons.min.css" rel="stylesheet" type="text/css" />
  22. <!-- App Css-->
  23. <link href="<?php echo $assetsUrl;?>/css/app.min.css" id="app-style" rel="stylesheet" type="text/css" />
  24. <link href="<?php echo $assetsUrl;?>/css/admin.css?v=12" rel="stylesheet" type="text/css" />
  25. <script src="<?php echo $assetsUrl;?>/libs/jquery/jquery-3.7.0.min.js"></script>
  26. <link href="<?php echo $pluginsUrl;?>/ztree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" >
  27. <script src="<?php echo $pluginsUrl;?>/ztree/js/jquery.ztree.core.js"></script>
  28. <?php $this->head() ?>
  29. </head>
  30. <style>
  31. body[data-sidebar=dark] .vertical-menu {
  32. background: #fff !important;
  33. }
  34. body[data-sidebar=dark] .navbar-brand-box {
  35. background: #EE1118;
  36. }
  37. .navbar-header{height:50px !important;overflow:hidden;}
  38. #page-topbar{background:#EE1118;}
  39. .ztree li a {
  40. padding: 2px 3px 0 0 !important;
  41. margin: 0 !important;
  42. cursor: pointer !important;
  43. line-height: 30px;
  44. min-height: 30px !important;
  45. color: #333 !important;
  46. background-color: transparent !important;
  47. text-decoration: none !important;
  48. vertical-align: center !important;
  49. display: inline-block !important;
  50. }
  51. .ztree li a.curSelectedNode{background: #fff2f2 !important;}
  52. .ztree li span{padding-left:5px !important;}
  53. .ztree li span{font-size: 14px !important;}
  54. .ztree li a.curSelectedNode {
  55. padding: 2px 3px 0 0 !important;
  56. color: #ff0c11 !important;
  57. border:none;
  58. line-height: 30px;
  59. min-height: 30px !important;
  60. }
  61. .ztree li span.button{margin-top:7px;}
  62. .ztree li.level2 span.button.ico_docu{display:none;}
  63. .ztree li.level1 span.button.ico_docu{display:none;}
  64. .middletop{height:30px;line-height:30px;width: 100%;background:#fff;position:absolute;z-index:2;top:50px;border-bottom:1px solid #eee;display:flex;}
  65. .middletop-left{width:250px;height:30px;line-height:30px;text-align:left;border-right:1px solid #eee;text-indent:20px;font-weight:600;font-size:13px;background:#F7FBFE;}
  66. .vertical-menu {top:80px !important;}
  67. #sidebar-menu {padding: 0px 0 30px 0;!important;}
  68. .middletop-right ul{display:block;float:left;height:30px;}
  69. .middletop-right ul li{float:left;display: inline-block;min-width:120px;text-align: center;border-right:1px solid #ddd;padding:0 20px;}
  70. .middletop-right ul li span{float:right;width:10px;height:10px;margin-top:10px;display: inline-block;line-height:10px;cursor:pointer;}
  71. .middletop-right ul li span:hover{background:#ff0c11;color:#fff;}
  72. .middletop-right ul li a:hover{ color: #ff0c11 !important;}
  73. .middletop-right ul li.active{background:#eee;}
  74. .middletop-right div.scroll{width:30px;display: inline-block;float:left;text-align:center;}
  75. .middletop-right div.scroll a{color:#ccc}
  76. .middletop-right div.scroll a:hover{ color: #ff0c11 !important;}
  77. .scrollmiddle{
  78. height: 30px;
  79. display: block;
  80. overflow-y: hidden;
  81. overflow-x: hidden;
  82. float:left;
  83. }
  84. .header-item{height:50px;color:#fff !important;}
  85. .header-item a{color:#fff;}
  86. .nav li{display: block;float:left;min-width:80px;text-align:center;}
  87. .nav li a{color:#fff;font-size: 14px;display:block;width:100%;height:50px;line-height:50px;}
  88. .nav li a:hover,.nav li a.active{color:#fff;font-weight: bold;background:#B10000;display:block;width:100%;height:50px;line-height:50px;}
  89. #scrollmiddle_ul li{position: relative;cursor:pointer}
  90. #scrollmiddle_ul li a{display:block}
  91. #scrollmiddle_ul li span.tabmenuclose{position: absolute;top:0;right:5px;z-index: 999}
  92. </style>
  93. <body data-sidebar="dark" class="layoutbody" >
  94. <?php $this->beginBody() ?>
  95. <div id="layout-wrapper">
  96. <header id="page-topbar">
  97. <div class="navbar-header" >
  98. <div class="d-flex" >
  99. <!-- LOGO -->
  100. <div class="navbar-brand-box">
  101. <a href="<?php echo Yii::$app->controller->adminHomeUrl;?>" class="logo logo-dark">
  102. <span class="logo-sm">
  103. <img src="<?php echo $assetsUrl;?>/images/logo-light-s.png" height="22">
  104. </span>
  105. <span class="logo-lg">
  106. <img src="<?php echo $assetsUrl;?>/images/logo-light.png" height="50">
  107. </span>
  108. </a>
  109. <a href="<?php echo Yii::$app->controller->adminHomeUrl;?>" class="logo logo-light">
  110. <span class="logo-sm">
  111. <img src="<?php echo $assetsUrl;?>/images/logo-light-s.png" height="22">
  112. </span>
  113. <span class="logo-lg">
  114. <img src="<?php echo $assetsUrl;?>/images/logo-light.png" height="50">
  115. </span>
  116. </a>
  117. </div>
  118. </div>
  119. <div class="d-flex" style="position:absolute;left:250px;top:0;" >
  120. <ul class="nav" style="float: left;">
  121. <li><a href="javascript:;">管理工作台</a></li>
  122. <li><a href="javascript:;">策略执行</a></li>
  123. <li><a href="javascript:;">战略财务</a></li>
  124. <li><a href="javascript:;">市场专业</a></li>
  125. <li><a href="javascript:;">网络专业</a></li>
  126. <li><a class="active" href="javascript:;">行政专业</a></li>
  127. <li><a href="javascript:;">数据仓库</a></li>
  128. <li><a href="javascript:;">数据监控</a></li>
  129. <li><a href="javascript:;">其他</a></li>
  130. <li><a href="javascript:;">大屏</a></li>
  131. </ul>
  132. </div>
  133. <div class="d-flex" style="float: right" >
  134. <div class="dropdown d-none d-lg-inline-block ms-1">
  135. <button type="button" class="btn header-item waves-effect" >
  136. <img class="rounded-circle header-profile-user" src="<?php echo getFileUrl($userInfo['avatar']);?>">
  137. <span class="d-none d-xl-inline-block ms-1" >欢迎您,<?php echo $userInfo['real_name']?$userInfo['real_name']:$userInfo['user_name'];?></span>
  138. </button>
  139. </div>
  140. <div class="dropdown d-none d-lg-inline-block ms-1">
  141. <button type="button" class="btn header-item waves-effect" >
  142. <a href="<?php echo Yii::$app->controller->createRealUrl(['admin/default/logout']);?>"><i class="bx bx-power-off font-size-16 align-middle me-1"></i>
  143. <span>退出登录</span>
  144. </a>
  145. </button>
  146. </div>
  147. </div>
  148. </div>
  149. </header>
  150. <div class="middletop" >
  151. <div class="middletop-left">行政专业<span style="float:right;font-size:12px;color:#999;margin-right:10px;font-weight:normal">>></span></div>
  152. <div class="middletop-right">
  153. <div class="scroll pre" id="doprev"><a href="javascript:;" ><</a></div>
  154. <div class="scrollmiddle" id="scrollmiddle">
  155. <ul id="scrollmiddle_ul">
  156. <li class="active" id="<?php echo $defaultHash;?>"><a href="<?php echo $defaultUrl;?>" target="mainiframe"><?php echo $defaultMenuName;?></a></li>
  157. </ul>
  158. </div>
  159. <div class="scroll next" style="float:right;" id="donext"><a href="javascript:;" >></a></div>
  160. </div>
  161. </div>
  162. <!-- ========== Left Sidebar Start ========== -->
  163. <div class="vertical-menu">
  164. <div data-simplebar class="h-100">
  165. <!--- Sidemenu -->
  166. <div id="sidebar-menu">
  167. <ul id="tree" class="ztree" style="overflow:hidden;"></ul>
  168. <!-- Left Menu Start -->
  169. <ul class="metismenu list-unstyled" id="side-menu" style="display:none;">
  170. <?php if(is_array(Yii::$app->controller->resourceBlock))foreach(Yii::$app->controller->resourceBlock as $key=>$title){?>
  171. <?php if(in_array($key,$haveBlock)){?>
  172. <li class="menu-title"><?php echo $title;?></li>
  173. <?php }?>
  174. <?php if(is_array($resourceList))foreach($resourceList as $resource){
  175. if($resource['block']!=$key||!empty($resource['parent_hash']))continue;
  176. ?>
  177. <?php if(empty($resource['menuSonList'])){ ?>
  178. <li>
  179. <a href="<?php echo Yii::$app->controller->createRealUrl([$resource['module'].'/'.$resource['controller'].'/'.$resource['action']]);?>" class="waves-effect" target="mainiframe">
  180. <i class="<?php echo $resource['icon_class'];?>"></i>
  181. <span><?php echo Yii::t('resource',$resource['name']);?></span>
  182. </a>
  183. </li>
  184. <?php }else{ ?>
  185. <li>
  186. <a href="javascript: void(0);" class="has-arrow waves-effect">
  187. <i class="<?php echo $resource['icon_class'];?>"></i>
  188. <span><?php echo Yii::t('resource',$resource['name']);?></span>
  189. </a>
  190. <?php if(!empty($resource['menuSonList'])){?>
  191. <ul class="sub-menu" aria-expanded="true">
  192. <?php
  193. foreach($resource['menuSonList'] as $sonResource){
  194. if(empty($sonResource['menuSonList'])){
  195. ?>
  196. <li><a href="<?php echo Yii::$app->controller->createRealUrl([$sonResource['module'].'/'.$sonResource['controller'].'/'.$sonResource['action']]);?>" target="mainiframe"><?php echo Yii::t('resource',$sonResource['name']);?></a></li>
  197. <?php }else{?>
  198. <li>
  199. <a href="javascript: void(0);" class="has-arrow" ><?php echo Yii::t('resource',$sonResource['name']);?></a>
  200. <ul class="sub-menu" aria-expanded="true">
  201. <?php foreach($sonResource['menuSonList'] as $lastSonResource){?>
  202. <li><a href="<?php echo Yii::$app->controller->createRealUrl([$lastSonResource['module'].'/'.$lastSonResource['controller'].'/'.$lastSonResource['action']]);?>" target="mainiframe"><?php echo Yii::t('resource',$lastSonResource['name']);?></a></li>
  203. <?php }?>
  204. </ul>
  205. </li>
  206. <?php }} ?>
  207. </ul>
  208. <?php }?>
  209. </li>
  210. <?php }}?>
  211. <?php }?>
  212. </ul>
  213. </div>
  214. <!-- Sidebar -->
  215. </div>
  216. </div>
  217. <!-- Left Sidebar End -->
  218. <div class="main-content" style="padding:0;" >
  219. <div class="page-content" style="padding:0;">
  220. <iframe src="<?php echo $defaultUrl;?>" id="mainiframe" name="mainiframe" frameborder="0" scrolling="auto" style="width: 100%;padding:0;margin:0;" ></iframe>
  221. </div>
  222. </div>
  223. </div>
  224. <!-- JAVASCRIPT -->
  225. <script src="<?php echo $assetsUrl;?>/libs/bootstrap/js/bootstrap.bundle.min.js"></script>
  226. <script src="<?php echo $assetsUrl;?>/libs/metismenu/metisMenu.min.js"></script>
  227. <script src="<?php echo $assetsUrl;?>/libs/simplebar/simplebar.min.js"></script>
  228. <script src="<?php echo $assetsUrl;?>/libs/node-waves/waves.min.js"></script>
  229. <!-- dashboard init -->
  230. <!-- App js -->
  231. <script src="<?php echo $assetsUrl;?>/js/app.js"></script>
  232. <script src="<?php echo $assetsUrl;?>/js/admin.js"></script>
  233. <script>
  234. var zTree;
  235. var demoIframe;
  236. var setting = {
  237. view: {
  238. dblClickExpand: false,
  239. showLine: false,
  240. selectedMulti: false
  241. },
  242. data: {
  243. simpleData: {
  244. enable: true,
  245. idKey: "id",
  246. pIdKey: "pId",
  247. rootPId: ""
  248. }
  249. },
  250. callback: {
  251. beforeClick: function (treeId, treeNode) {
  252. var zTree = $.fn.zTree.getZTreeObj("tree");
  253. if (treeNode.isParent) {
  254. zTree.expandNode(treeNode);
  255. return false;
  256. } else {
  257. if($('#'+treeNode.id).length>0)//已存在菜单
  258. {
  259. $("#scrollmiddle_ul li").removeClass('active');
  260. $('#'+treeNode.id).addClass('active');
  261. var url = $('#'+treeNode.id).find('a').attr('href');
  262. demoIframe.attr("src", treeNode.file);
  263. }
  264. else//未存在菜单
  265. {
  266. $('#scrollmiddle_ul li').removeClass('active');
  267. $('#scrollmiddle_ul').append('<li class="active" id="'+treeNode.id+'"><a href="'+treeNode.file+'" target="mainiframe">'+treeNode.name+'</a><span class="tabmenuclose">×</span></li>');
  268. demoIframe.attr("src", treeNode.file);
  269. }
  270. return true;
  271. }
  272. }
  273. }
  274. };
  275. <?php
  276. $nodes = [];
  277. if(is_array($resourceList))foreach($resourceList as $resource){
  278. if($resource['menu_type']!=1)continue;
  279. if(empty($resource['menuSonList'])){
  280. $nodes[] = array('id'=>$resource['hash'],'pId'=>$resource['parent_hash'],'name'=>Yii::t('resource',$resource['name']),'file'=>Yii::$app->controller->createRealUrl([$resource['module'].'/'.$resource['controller'].'/'.$resource['action']]),'open'=>true);
  281. }
  282. else
  283. {
  284. $nodes[] = array('id'=>$resource['hash'],'pId'=>$resource['parent_hash'],'name'=>Yii::t('resource',$resource['name']),'file'=>Yii::$app->controller->createRealUrl([$resource['module'].'/'.$resource['controller'].'/'.$resource['action']]),'open'=>true);
  285. }
  286. }
  287. ?>
  288. var zNodes = <?php echo json_encode($nodes);?>;
  289. $(document).ready(function () {
  290. var t = $("#tree");
  291. t = $.fn.zTree.init(t, setting, zNodes);
  292. demoIframe = $("#mainiframe");
  293. demoIframe.bind("load", changeFrameHeight);
  294. var zTree = $.fn.zTree.getZTreeObj("tree");
  295. zTree.selectNode(zTree.getNodeByParam("id", 101));
  296. });
  297. function changeFrameHeight(){
  298. var ifm= document.getElementById("mainiframe");
  299. ifm.height=document.documentElement.clientHeight-$("#page-topbar").height()-30;
  300. $(".page-content").css("padding-top",$("#page-topbar").height()+30);
  301. //定义增加的顶部容器宽度
  302. var width = $(".middletop").width()-250;
  303. $(".middletop-right").css({width:width});
  304. //定义顶部可滚动区域宽度
  305. $(".scrollmiddle").css({width:width-60});
  306. var ulwidth = $(".scrollmiddle ul li").length*180;
  307. $(".scrollmiddle ul").css({width:ulwidth});
  308. //满足条件左右滚动
  309. if(ulwidth>$(".scrollmiddle").width())
  310. {
  311. //获取向左按钮
  312. var obtnup = document.getElementById('doprev');
  313. //获取向右按钮
  314. var obtndown = document.getElementById('donext');
  315. //获取右滚动条的元素
  316. var odiv = document.getElementById('scrollmiddle');
  317. //需要滚动条移动的距离
  318. var step = odiv.offsetWidth/20;
  319. //给按钮添加单机滚动条移动事件
  320. obtnup.onclick=function(){
  321. odiv.scrollLeft=odiv.scrollLeft-step;
  322. }
  323. obtndown.onclick=function(){
  324. odiv.scrollLeft=odiv.scrollLeft+step;
  325. }
  326. }
  327. }
  328. window.onresize=function(){ changeFrameHeight();}
  329. $(function(){
  330. changeFrameHeight();
  331. //横向菜单点击
  332. $(document).on("click", "#scrollmiddle_ul li", function(){
  333. var url = $(this).find('a').attr('href');
  334. $("#scrollmiddle_ul li").removeClass('active');
  335. $(this).addClass('active');
  336. })
  337. $(document).on("click", ".tabmenuclose", function(){
  338. var selLi = $(this).parent();
  339. var preLi = $(selLi).prev();
  340. $('#mainiframe').attr("src", $(preLi[0]).find('a').attr('href'));
  341. $("#scrollmiddle_ul li").removeClass('active');
  342. $(preLi[0]).addClass('active');
  343. $(selLi).remove();
  344. return false;
  345. })
  346. });
  347. </script>
  348. <?php $this->endBody() ?>
  349. </body>
  350. </html>
  351. <?php $this->endPage() ?>