indexsub1.html 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984
  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=0, maximum-scale=0, user-scalable=yes,shrink-to-fit=no">
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>{:get_config('web_site_title')}</title>
  9. <link rel="icon" href="./favicon.png">
  10. <meta name="keywords" content="" />
  11. <meta name="description" content="" />
  12. <link rel="shortcut icon" href="/favicon.ico">
  13. <link rel="stylesheet" href="/static/hplus/css/bootstrap.min.css">
  14. <link rel="stylesheet" href="/static/hplus/css/font-awesome.min.css?v=4.4.0" />
  15. <link rel="stylesheet" href="/static/hplus/css/animate.css"/>
  16. <link rel="stylesheet" href="/static/hplus/css/style.css?v=4.1.0">
  17. <link rel="stylesheet" href="/static/hplus/css/jquery.contextMenu.min.css"/>
  18. <link rel="stylesheet" href="/static/elementui2.15.5/index.css"/>
  19. <link rel="stylesheet" href="/admin/css/common.css">
  20. <link rel="stylesheet" href="/admin/css/index.css">
  21. <link rel="stylesheet" href="/admin/css/indexsub.css">
  22. <link rel="stylesheet" href="/static/swiper4.5/css/swiper.min.css">
  23. <script src="/static/hplus/js/jquery.min.js?v=2.1.4"></script>
  24. <style>
  25. .nav.navbar-right > li > a {
  26. display: inline-block;
  27. }
  28. #orderNums{
  29. /*vertical-align: middle;*/
  30. color: red;
  31. position: relative;
  32. top: -3px;
  33. }
  34. .nn:focus, .nn:hover{
  35. background-color:#fff !important;
  36. }
  37. .navbar-title{
  38. display: inline-block;
  39. font-size: 20px;
  40. font-family: Source Han Sans CN;
  41. font-weight: 500;
  42. color: #284A94;
  43. padding-left: 20px;
  44. line-height: 60px;
  45. float: left;
  46. }
  47. .navbar-header{
  48. width: auto;
  49. max-width: 310px;
  50. height: 70px;
  51. line-height: 70px;
  52. font-size: 20px;
  53. font-family: Source Han Sans CN;
  54. font-weight: 500;
  55. color: #284A94;
  56. overflow: hidden;
  57. text-overflow:ellipsis;
  58. white-space: nowrap;
  59. }
  60. .sidebox{
  61. width: 100%;
  62. height: 100%;
  63. position: relative;
  64. }
  65. .side-box-switch{
  66. width: 28px;
  67. height: 168px;
  68. position: absolute;
  69. z-index: 10;
  70. top: 50%;
  71. right: -28px;
  72. /*background-color: red !important;*/
  73. margin-top: -84px;
  74. cursor: pointer;
  75. }
  76. .side-box-switch .switch-img{
  77. width: 100%;
  78. height: 100%;
  79. }
  80. .main-box-padding-left{
  81. padding-left: 120px !important;
  82. }
  83. .main-box-padding-left1{
  84. padding-left: 280px !important;
  85. }
  86. .main-box-padding-left3{
  87. padding-left: 0px !important;
  88. }
  89. .menusub-box{
  90. width: 100%;
  91. height: 100%;
  92. overflow: hidden;
  93. }
  94. html,body{
  95. width: 100%;
  96. height: 100% !important;
  97. overflow: hidden;
  98. padding-bottom: 5px;
  99. }
  100. body{
  101. background-image: url("/admin/img/indexsub-bg.png");
  102. background-repeat: no-repeat;
  103. background-size: 100% 100%;
  104. /*background-size: cover;*/
  105. }
  106. .navbar{
  107. width: 100%;
  108. height: 70px !important;
  109. background-color:transparent!important;
  110. border-bottom: 0 !important;
  111. margin-bottom: 0px;
  112. /*background-image: url("/admin/img/index-header-bg.png");*/
  113. /*background-repeat: no-repeat;*/
  114. /*background-size: 100% 100%;*/
  115. /*margin-bottom: 0 !important;*/
  116. /*border-bottom: none !important;*/
  117. }
  118. .navbar-logo{
  119. width: 157px;
  120. height: 40px;
  121. display: inline-block;
  122. float: left;
  123. margin-left: 50px;
  124. margin-top: 15px;
  125. }
  126. .navbar-logo img{
  127. width: 100%;
  128. height: 100%;
  129. }
  130. .nav>li>a:focus, .nav>li>a:hover{
  131. background: none !important;
  132. }
  133. .nav .open > a, .nav .open > a:hover, .nav .open > a:focus{
  134. background: none !important;
  135. }
  136. .userhead{
  137. width: 41px;
  138. height: 40px;
  139. border-radius: 50%;
  140. }
  141. </style>
  142. </head>
  143. <!--<body class="fixed-sidebar full-height-layout gray-bg fixed-nav pace-done">-->
  144. <body>
  145. <nav class="navbar navbar-fixed-top" role="navigation">
  146. <!-- <div class="navbar-title">{:get_config('web_site_title')}</div>-->
  147. <!-- <div class="navbar-logo" style="margin-left: 20px!important;">-->
  148. <!-- <img src="/admin/img/index-logo.png" alt="">-->
  149. <!-- </div>-->
  150. <div style="width: 100%;height: 70px">
  151. <div class="navbar-header">
  152. {if $userInfo.type==1}
  153. <!--{:get_config('web_site_title')}&nbsp;|&nbsp;-->
  154. <div data-width="60%" data-title="切换组织" url="{:url('Index/changeOrg')}" onclick="layer_open(this,2)" style="cursor: pointer;display: inline-block;height: 70px;line-height: 70px;width: 100%;text-overflow:ellipsis;
  155. white-space: nowrap;overflow: hidden;">
  156. {:session('orgName')} <span class="glyphicon glyphicon-menu-down" style="font-size: 16px;" aria-hidden="true"></span>
  157. </div>
  158. {else}
  159. <!--{:get_config('web_site_title')}&nbsp;|&nbsp;-->
  160. <div data-width="60%" style="display: inline-block;width: 100%;text-overflow:ellipsis;
  161. white-space: nowrap;">
  162. {:session('orgName')}
  163. </div>
  164. {/if}
  165. </div>
  166. <div class="level-menu-box">
  167. {volist name="menus" id="v"}
  168. <div class="menu-name-box {if $curmenu == $v.id}cur-menu-style{/if}" data-id="{$v['id']}" onclick="changeMenu(this)">
  169. <text>{$v.title}</text>
  170. </div>
  171. {/volist}
  172. </div>
  173. <ul class="nav navbar-top-links navbar-right" style="height: 70px">
  174. <img src="{$userInfo.head_image}" alt="" class="userhead">
  175. <li class="dropdown" style="height: 100%">
  176. <!-- {if ($isDispatch == 1)}
  177. <a href="javascript:;" id="goOrder" url="{:url('Index/ordersList')}?mode=0&order_mode=1" onclick="layer_open_dispatch(this,2)" class="glyphicon glyphicon-bell">
  178. <text id="orderNums">{if condition="$orderNums > 0"}({$orderNums}){/if}</text>
  179. </a>
  180. <a href="javascript:;" class="nn" onclick="offNotice()" id="offNotice" >
  181. <text id="offNoticeBtn">关闭通知</text>
  182. </a>
  183. <input type="hidden" id="offNoticeVal" value="0">
  184. {/if}-->
  185. <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:;" style="color: #284A94;height: 100%;margin-top: 5px">欢迎,{:session('user_auth.real_name')} </a>
  186. <ul class="dropdown-menu animated fadeInRight m-t-xs">
  187. <li><a class="JmenuItem" href="{:url('User/modifyPass')}">修改密码</a></li>
  188. <li><a href="{:url('Common/logout')}">安全退出</a></li>
  189. </ul>
  190. </li>
  191. </ul>
  192. </div>
  193. </nav>
  194. <div class="gyindexsub-menu-list-box" style="display: none">
  195. <div class="indexsub-bread-crumbs-box" style="margin: 70px 19px 0px;width: calc(100% - 38px)">
  196. <a href="{:url('index/index')}" class="active">首页</a>
  197. <a href="javascript:;">首页</a>
  198. <a href="javascript:;">首页</a>
  199. </div>
  200. <div class="qsidenav" style="height: calc(100% - 58px)!important;">
  201. <div class="qsidenav-list qsidenablistthreemenulist" >
  202. <!-- <div class="qsidenav-twomenu-name">设备维保</div>
  203. <div class="sub">
  204. <a href="">
  205. <div class="sub-list cur">设备管理</div>
  206. </a>
  207. <a href="">
  208. <div class="sub-list">设备管理</div>
  209. </a>
  210. </div>-->
  211. </div>
  212. </div>
  213. <div class="gymenu-body-box" id="gy-main-iframe-menu">
  214. <!-- <iframe class="J_iframe" name="iframe0" width="100%" height="100%" id="gyindexsub-iframes" frameborder="0" data-id="index_v1.html" seamless></iframe>-->
  215. </div>
  216. </div>
  217. <div class="main-box main-box-h2 gongzuotaimenu" id="main-iframe">
  218. <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="{:url('Index/def')}" frameborder="0" data-id="index_v1.html" seamless></iframe>
  219. </div>
  220. <script src="/static/hplus/js/bootstrap.min.js?v=3.3.7"></script>
  221. <script src="/static/layer3.2.0/layer.js"></script>
  222. <script src="/static/hplus/js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
  223. <script src="/static/hplus/js/plugins/metisMenu/jquery.metisMenu.js"></script>
  224. <script src="/static/hplus/js/plugins/contextMenu/jquery.contextMenu.min.js"></script>
  225. <script src="/static/hplus/js/hplus.js?v=4.1.0"></script>
  226. <script type="text/javascript" src="/static/hplus/js/contabs.js"></script>
  227. <!-- 第三方插件 -->
  228. <script src="/static/hplus/js/plugins/pace/pace.min.js"></script>
  229. <script src="/static/elementui2.15.5/vue-2.6.14.js"></script>
  230. <script src="/static/elementui2.15.5/index.js"></script>
  231. <script src="/admin/js/common.js"></script>
  232. {if condition="is_login() and !is_admin(is_login()) and btnAuth(is_login(),'PhoneMonitor/show')"}
  233. <textarea style="display: none;" id="StatusArea" rows="13" name="S1" class="form-control" readonly></textarea>
  234. <script language="javascript" type="text/javascript" src="/static/phonejs/qnviccub.js"></script>
  235. <script language="javascript" type="text/javascript" src="/static/phonejs/qnvfunc.js"></script>
  236. <script language="javascript" type="text/javascript" src="/static/phonejs/json2.js"></script>
  237. <script language="javascript" type="text/javascript" src="/static/phonejs/deviceapi.js"></script>
  238. <script>
  239. var fp;
  240. $(document).ready(function(){
  241. TV_Initialize();
  242. getEvent(T_GetEvent);
  243. });
  244. $(window).unload(function(){
  245. TV_Disable();
  246. });
  247. setInterval(function () {
  248. OpenDevice(ODT_LBRIDGE,function(nResult){AppendStatus('打开设备.');});
  249. },30000);
  250. //离开页面
  251. $(window).bind('beforeunload',function(){
  252. TV_Disable();
  253. });
  254. function openPhone() {
  255. // let gphone = "13838379499";
  256. // let fp = "d:\\wyluyin\\" + getCurrentDate(3) + "_" + gphone + ".wav";
  257. // check_phone(gphone,fp);
  258. }
  259. function playBtn() {
  260. // let path = "d:\\wyluyin\\20220608191204_13027625915.wav";
  261. // console.log('path:',path);
  262. PlayFile(1,QNV_PLAY_FILE_START,0,PLAYFILE_MASK_REPEAT,path,function(id){
  263. console.log('play:',id);
  264. });
  265. }
  266. function check_phone(gphone,fp) {
  267. fp = base64encode(fp);
  268. var url = '{:url("orders/phone")}?phone=' + gphone + '&fp='+fp;
  269. var title = '添加订单';
  270. layer.open({
  271. type: 2,
  272. shade: 0.8,
  273. title: title,
  274. area: ['800px', '400px'],
  275. fix: false, //不固定
  276. maxmin: true,
  277. content: url,
  278. skin: 'layer-ext-moon',
  279. success: function(layero, index) {
  280. layer.iframeAuto(index);
  281. },
  282. // btn: ['取消']
  283. });
  284. return false;
  285. }
  286. function AppendStatus(szStatus)
  287. {
  288. // console.log(szStatus);
  289. // $("#StatusArea").append(szStatus+"\r\n" );
  290. // var scrollTop = $("#StatusArea")[0].scrollHeight;
  291. // $("#StatusArea").scrollTop(scrollTop);
  292. }
  293. function AppendStatusEx(uID,szStatus)
  294. {
  295. uID=uID+1;
  296. AppendStatus("通道"+uID+":"+szStatus);
  297. }
  298. function T_GetEvent(uID,uEventType,uHandle,uResult,szdata)
  299. {
  300. // console.log(uID,uEventType,uHandle,uResult,szdata);
  301. //var vValueArray=qnviccub.QNV_Event(0,2,0,"","",1024);
  302. if(uEventType == -1)
  303. return;
  304. var vValue=" type="+uEventType+" Handle="+uHandle+" Result="+uResult+" szdata="+szdata;
  305. switch(uEventType)
  306. {
  307. case BriEvent_PhoneHook:// 本地电话机摘机事件
  308. AppendStatusEx(uID,"本地电话机摘机"+vValue);
  309. TV_StartRecordFile(uID,fp);
  310. break;
  311. case BriEvent_PhoneDial:// 只有在本地话机摘机,没有调用软摘机时,检测到DTMF拨号
  312. AppendStatusEx(uID,"本地话机拨号"+vValue);
  313. break;
  314. case BriEvent_PhoneHang:// 本地电话机挂机事件
  315. TV_HangUpCtrl(uID);
  316. AppendStatusEx(uID,"本地电话机挂机"+vValue);
  317. TV_StopRecordFile(uID);
  318. break;
  319. case BriEvent_CallIn:// 外线通道来电响铃事件
  320. AppendStatusEx(uID,"外线通道来电响铃事件"+vValue);
  321. break;
  322. case BriEvent_GetCallID://得到来电号码
  323. AppendStatusEx(uID,"得到来电号码"+vValue);
  324. fp = "d:\\wyluyin\\" + getCurrentDate(3) + "_" + szdata + ".wav";
  325. check_phone(szdata,fp);
  326. break;
  327. case BriEvent_StopCallIn:// 对方停止呼叫(产生一个未接电话)
  328. AppendStatusEx(uID,"对方停止呼叫(产生一个未接电话)"+vValue);
  329. break;
  330. case BriEvent_DialEnd:// 调用开始拨号后,全部号码拨号结束
  331. AppendStatusEx(uID,"调用开始拨号后,全部号码拨号结束"+vValue);
  332. break;
  333. case BriEvent_PlayFileEnd:// 播放文件结束事件
  334. AppendStatusEx(uID,"播放文件结束事件"+vValue);
  335. break;
  336. case BriEvent_PlayMultiFileEnd:// 多文件连播结束事件
  337. AppendStatusEx(uID,"多文件连播结束事件"+vValue);
  338. break;
  339. case BriEvent_PlayStringEnd://播放字符结束
  340. AppendStatusEx(uID,"播放字符结束"+vValue);
  341. break;
  342. case BriEvent_RepeatPlayFile:// 播放文件结束准备重复播放
  343. AppendStatusEx(uID,"播放文件结束准备重复播放"+vValue);
  344. break;
  345. case BriEvent_SendCallIDEnd:// 给本地设备发送震铃信号时发送号码结束
  346. AppendStatusEx(uID,"给本地设备发送震铃信号时发送号码结束"+vValue);
  347. break;
  348. case BriEvent_RingTimeOut://给本地设备发送震铃信号时超时
  349. AppendStatusEx(uID,"给本地设备发送震铃信号时超时"+vValue);
  350. break;
  351. case BriEvent_Ringing://正在内线震铃
  352. AppendStatusEx(uID,"正在内线震铃"+vValue);
  353. break;
  354. case BriEvent_Silence:// 通话时检测到一定时间的静音.默认为5秒
  355. AppendStatusEx(uID,"通话时检测到一定时间的静音"+vValue);
  356. break;
  357. case BriEvent_GetDTMFChar:// 线路接通时收到DTMF码事件
  358. AppendStatusEx(uID,"线路接通时收到DTMF码事件"+vValue);
  359. break;
  360. case BriEvent_RemoteHook:// 拨号后,被叫方摘机事件
  361. AppendStatusEx(uID,"拨号后,被叫方摘机事件"+vValue);
  362. break;
  363. case BriEvent_RemoteHang://对方挂机事件
  364. TV_HangUpCtrl(uID);
  365. AppendStatusEx(uID,"对方挂机事件"+vValue);
  366. TV_StopRecordFile(uID);
  367. break;
  368. case BriEvent_Busy:// 检测到忙音事件,表示PSTN线路已经被断开
  369. AppendStatusEx(uID,"检测到忙音事件,表示PSTN线路已经被断开"+vValue);
  370. break;
  371. case BriEvent_DialTone:// 本地摘机后检测到拨号音
  372. AppendStatusEx(uID,"本地摘机后检测到拨号音"+vValue);
  373. break;
  374. case BriEvent_RingBack:// 电话机拨号结束呼出事件。
  375. AppendStatusEx(uID,"电话机拨号结束呼出事件"+vValue);
  376. break;
  377. case BriEvent_MicIn:// MIC插入状态
  378. AppendStatusEx(uID,"MIC插入状态"+vValue);
  379. break;
  380. case BriEvent_MicOut:// MIC拔出状态
  381. AppendStatusEx(uID,"MIC拔出状态"+vValue);
  382. break;
  383. case BriEvent_FlashEnd:// 拍插簧(Flash)完成事件,拍插簧完成后可以检测拨号音后进行二次拨号
  384. AppendStatusEx(uID,"拍插簧(Flash)完成事件,拍插簧完成后可以检测拨号音后进行二次拨号"+vValue);
  385. break;
  386. case BriEvent_RefuseEnd:// 拒接完成
  387. AppendStatusEx(uID,"拒接完成"+vValue);
  388. break;
  389. case BriEvent_SpeechResult:// 语音识别完成
  390. AppendStatusEx(uID,"语音识别完成"+vValue);
  391. break;
  392. case BriEvent_FaxRecvFinished:// 接收传真完成
  393. AppendStatusEx(uID,"接收传真完成"+vValue);
  394. break;
  395. case BriEvent_FaxRecvFailed:// 接收传真失败
  396. AppendStatusEx(uID,"接收传真失败"+vValue);
  397. break;
  398. case BriEvent_FaxSendFinished:// 发送传真完成
  399. AppendStatusEx(uID,"发送传真完成"+vValue);
  400. break;
  401. case BriEvent_FaxSendFailed:// 发送传真失败
  402. AppendStatusEx(uID,"发送传真失败"+vValue);
  403. break;
  404. case BriEvent_OpenSoundFailed:// 启动声卡失败
  405. AppendStatusEx(uID,"启动声卡失败"+vValue);
  406. break;
  407. case BriEvent_UploadSuccess://远程上传成功
  408. AppendStatusEx(uID,"远程上传成功"+vValue);
  409. break;
  410. case BriEvent_UploadFailed://远程上传失败
  411. AppendStatusEx(uID,"远程上传失败"+vValue);
  412. break;
  413. case BriEvent_EnableHook:// 应用层调用软摘机/软挂机成功事件
  414. AppendStatusEx(uID,"应用层调用软摘机/软挂机成功事件"+vValue);
  415. break;
  416. case BriEvent_EnablePlay:// 喇叭被打开或者/关闭
  417. AppendStatusEx(uID,"喇叭被打开或者/关闭"+vValue);
  418. break;
  419. case BriEvent_EnableMic:// MIC被打开或者关闭
  420. AppendStatusEx(uID,"MIC被打开或者关闭"+vValue);
  421. break;
  422. case BriEvent_EnableSpk:// 耳机被打开或者关闭
  423. AppendStatusEx(uID,"耳机被打开或者关闭"+vValue);
  424. break;
  425. case BriEvent_EnableRing:// 电话机跟电话线(PSTN)断开/接通
  426. AppendStatusEx(uID,"电话机跟电话线(PSTN)断开/接通"+vValue);
  427. break;
  428. case BriEvent_DoRecSource:// 修改录音源
  429. AppendStatusEx(uID,"修改录音源"+vValue);
  430. break;
  431. case BriEvent_DoStartDial:// 开始软件拨号
  432. AppendStatusEx(uID,"开始软件拨号"+vValue);
  433. break;
  434. case BriEvent_RecvedFSK:// 接收到FSK信号,包括通话中FSK/来电号码的FSK
  435. AppendStatusEx(uID,"接收到FSK信号,包括通话中FSK/来电号码的FSK"+vValue);
  436. break;
  437. case BriEvent_PlugOut:
  438. AppendStatusEx(uID,"设备移除");
  439. // alert('设备移除');
  440. break;
  441. case BriEvent_DevErr://设备错误
  442. AppendStatusEx(uID,"设备错误"+ decodeURIComponent(vValue) );
  443. // alert('设备错误');
  444. break;
  445. default:
  446. if(uEventType < BriEvent_EndID)
  447. AppendStatusEx(uID,"忽略其它事件发生:ID=" + uEventType+ vValue);
  448. break;
  449. }
  450. }
  451. </script>
  452. {/if}
  453. {if condition="$isDispatch eq 1"}
  454. <audio id="dingdantixing" src="/static/tixing.mp3" controls="controls" style="display: none;"></audio>
  455. <script>
  456. var time1;
  457. var audio = document.getElementById('dingdantixing');
  458. $(function () {
  459. var interval = function () {
  460. var url = "{:url('Index/order')}";
  461. $.get(url,function (data) {
  462. if(data.code == 1){
  463. var audio = document.getElementById('dingdantixing');
  464. audio.play();
  465. if(data.data > 0){
  466. document.getElementById('orderNums').innerHTML ='('+data.data +')';
  467. }
  468. // layer.msg('您有新的订单请及时处理',{time:3000});
  469. }
  470. });
  471. }
  472. time1 = setInterval(interval,30000);
  473. $("#offNoticeBtn").click(function () {
  474. var off = parseInt($("#offNoticeVal").val());
  475. if(off==0){
  476. clearInterval(time1);
  477. $("#offNoticeVal").val(1)
  478. $("#offNoticeBtn").html('开启通知');
  479. audio.pause();
  480. }else {
  481. $("#offNoticeVal").val(0)
  482. time1 = setInterval(interval,30000);
  483. $("#offNoticeBtn").html('关闭通知');
  484. }
  485. })
  486. })
  487. </script>
  488. {/if}
  489. <script>
  490. var menus = {:json_encode($menus)};
  491. $(function () {
  492. // $('#side-menu').slimScroll({
  493. // height: ($('.sidebar-box').height() + 40) + 'px'
  494. // });
  495. // $('#side-menu2').slimScroll({
  496. // height: $('.sidebar-box').height() + 'px'
  497. // });
  498. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  499. $('#main-iframe').addClass('main-box-h2');
  500. $('#menu-1').addClass('active');
  501. // $('.sidenav .side-list a').hover(
  502. // function () {
  503. // $(this).addClass("hover");
  504. // let id = $(this).attr('data-id');
  505. // initSubMenu(id);
  506. // },
  507. // function () {
  508. // $(this).removeClass("hover");
  509. // }
  510. // );
  511. $(document).on('click','#side-menu .Jiframe',function () {
  512. let id = $(this).attr('data-id');
  513. let url = $(this).attr('data-url');
  514. $('#main-iframe').removeClass('main-box-padding-left');
  515. $('#main-iframe').removeClass('main-box-padding-left1');
  516. $('#main-iframe').removeClass('main-box-padding-left3');
  517. // var width2 = localStorage.getItem("width1");
  518. // console.log(width2,'xxxxxxxxxxxxxxxx')
  519. // if(width2 == 120){
  520. // $('#main-iframe').css('padding-left','120px');
  521. // }
  522. // if(width2 == 280){
  523. // $('#main-iframe').css('padding-left','280px');
  524. // }
  525. if(url){
  526. if(id==485 || id==467 || id==488 || id==489){
  527. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  528. $('#main-iframe').addClass('main-box-h2');
  529. window.open(url);
  530. }else {
  531. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  532. $('#main-iframe').addClass('main-box-h2');
  533. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  534. $('#main-iframe').html(str);
  535. }
  536. }else{
  537. $('#sidebar-box-h2').addClass('sidebar-box-h2');
  538. $('#main-iframe').removeClass('main-box-h2');
  539. }
  540. $(this).addClass("hover");
  541. initSubMenu(id);
  542. $('#side-menu .Jiframe').removeClass('active');
  543. $(this).addClass('active');
  544. });
  545. $(document).on('click','#side-menu2 .Jiframe',function () {
  546. $('#main-iframe').removeClass('main-box-padding-left');
  547. $('#main-iframe').removeClass('main-box-padding-left1');
  548. $('#main-iframe').removeClass('main-box-padding-left3');
  549. let pid = $(this).attr('data-pid');
  550. let url = $(this).attr('data-url');
  551. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  552. $('#main-iframe').html(str);
  553. $('#side-menu2 .Jiframe').removeClass('active');
  554. $(this).addClass('active');
  555. // 寻找父级元素
  556. $('#side-menu .Jiframe').removeClass('active');
  557. $('#menu'+pid).addClass('active');
  558. });
  559. $(document).on('click','.JmenuItem',function () {
  560. $('#main-iframe').removeClass('main-box-padding-left');
  561. $('#main-iframe').removeClass('main-box-padding-left1');
  562. $('#main-iframe').removeClass('main-box-padding-left3');
  563. let url = $(this).attr('href');
  564. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  565. $('#main-iframe').html(str);
  566. return false;
  567. });
  568. });
  569. function initSubMenu(id) {
  570. $('#main-iframe').removeClass('main-box-padding-left');
  571. $('#main-iframe').removeClass('main-box-padding-left1');
  572. $('#main-iframe').removeClass('main-box-padding-left3');
  573. let submenus = [];
  574. for (let o in menus){
  575. if(id == menus[o].id){
  576. submenus = menus[o].child;
  577. break;
  578. }
  579. }
  580. if(submenus.length > 0){
  581. $('#sidebar-box-h2').addClass('sidebar-box-h2');
  582. $('#main-iframe').removeClass('main-box-h2');
  583. }else{
  584. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  585. $('#main-iframe').addClass('main-box-h2');
  586. }
  587. let str = '';
  588. for (let o in submenus){
  589. if(submenus[o].child.length > 0){
  590. // <div class="side-group">
  591. // <div class="side-group-label">系统设置</div>
  592. // <div class="side-list">
  593. // <a class="J_iframe" href="layouts.html"><span>项目管理</span></a>
  594. // </div>
  595. // </div>
  596. str += '<div class="side-group">';
  597. str += '<div class="side-group-label">'+submenus[o].title+'</div>';
  598. let children = submenus[o].child;
  599. for(let n in children){
  600. str += '<div class="side-list">';
  601. str += '<a class="Jiframe" id="menu'+children[n].id+'" data-id="'+children[n].id+'" data-pid="'+submenus[o].pid+'" data-url="'+children[n].url+'" href="javascript:;"><span>'+children[n].title+'</span></a>';
  602. str += '</div>';
  603. }
  604. str += '</div>';
  605. }else{
  606. // <div class="side-list">
  607. // <a class="J_iframe active" href="layouts.html"><span>权限管理</span></a>
  608. // </div>
  609. str += '<div class="side-list">';
  610. str += '<a class="Jiframe" id="menu'+submenus[o].id+'" data-id="'+submenus[o].id+'" data-pid="'+submenus[o].pid+'" data-url="'+submenus[o].url+'" href="javascript:;"><span>'+submenus[o].title+'</span></a>';
  611. str += '</div>';
  612. }
  613. }
  614. $('#side-menu2').html(str);
  615. }
  616. function add_highlight(url){
  617. console.log('url',url);
  618. $('.side-list a').removeClass('active');
  619. for (let o in menus){
  620. if(menus[o].url && menus[o].url == url){
  621. $('#menu'+menus[o].id).addClass('active');
  622. break;
  623. }
  624. let child1 = menus[o].child;
  625. let flag = false;
  626. let id = 0;
  627. if(child1.length > 0){
  628. for (let m in child1){
  629. if(child1[m].url && child1[m].url == url){
  630. flag = true;
  631. id = child1[m].id;
  632. break;
  633. }
  634. let child2 = child1[m].child;
  635. for (let n in child2){
  636. if(child2[n].url && child2[n].url == url){
  637. flag = true;
  638. id = child2[n].id;
  639. break;
  640. }
  641. }
  642. if(flag){
  643. break;
  644. }
  645. }
  646. }
  647. console.log('flag11',flag,id);
  648. if(flag){
  649. initSubMenu(menus[o].id);
  650. $('#menu'+menus[o].id).addClass('active');
  651. $('#menu'+id).addClass('active');
  652. break;
  653. }
  654. }
  655. }
  656. function layer_open_dispatch(_self,flag){
  657. var url = $(_self).attr('url');
  658. var title = $(_self).attr('data-title');
  659. var width = $(_self).attr('data-width')?$(_self).attr('data-width'):'90%';
  660. var height = $(_self).attr('data-height')?$(_self).attr('data-height'):'90%';
  661. layer.open({
  662. type: 2,
  663. title: title,
  664. shadeClose: true,
  665. shade: 0.3,
  666. maxmin: true,
  667. area: [width, height],
  668. content: url,
  669. end: function () {
  670. update_order_count();
  671. }
  672. });
  673. }
  674. function update_order_count() {
  675. let url = "{:url('Index/ocount')}";
  676. $.post(url,function (res) {
  677. if(res.code == 1){
  678. let count = res.data.count;
  679. if(count > 0){
  680. $('#orderNums').html('('+count+')');
  681. }else{
  682. $('#orderNums').html('');
  683. }
  684. }
  685. });
  686. }
  687. </script>
  688. <script>
  689. function goindex(){
  690. window.location.href = '{:url("index/index")}';
  691. }
  692. var menus = {:json_encode($menus)};
  693. function changeMenu(_self) {
  694. var menuId = $(_self).attr('data-id');
  695. // $('.menu-name-box').removeClass('cur-menu-style');
  696. // $(_self).addClass('cur-menu-style');
  697. window.location.href="{:url('indexsub','','')}/curmenu/"+menuId;
  698. // if(menuId == 500){
  699. // location.reload();
  700. // $('.gyindexsub-menu-list-box').css('display','none');
  701. // $('.gongzuotaimenu').css('display','block');
  702. // }else{
  703. //
  704. // $('.gyindexsub-menu-list-box').css('display','block');
  705. // $('.gongzuotaimenu').css('display','none');
  706. // var newMenus = [];
  707. // var menuurl = '';
  708. // menus.forEach((item) => {
  709. // if(Number(menuId) == Number(item.id)){
  710. // newMenus = item.child;
  711. // var childList = item.child;
  712. // if(childList.length >0){
  713. // for (let i in childList){
  714. // if(childList[0].url){
  715. // menuurl = childList[0].url
  716. // }else{
  717. // var subChildList = childList[0].child;
  718. // if(childList[0].child){
  719. // for(let o in subChildList){
  720. // if(subChildList[0].url){
  721. // menuurl = subChildList[0].url;
  722. // }
  723. // }
  724. // }
  725. //
  726. // }
  727. // }
  728. //
  729. // }
  730. // }
  731. // });
  732. //
  733. // var str = '';
  734. // for (let i in newMenus){
  735. // var childList = newMenus[i].child;
  736. // if(childList.length >0){
  737. // str += '<div class="qsidenav-list">';
  738. // str += '<div class="qsidenav-twomenu-name">'+newMenus[i].title+'</div>';
  739. // str += '<div class="sub">';
  740. // if(childList.length >0){
  741. // for (let o in childList){
  742. // str += '<a href="javascript:;">';
  743. // str += '<div class="sub-list endmenuactive" data-url="'+childList[o].url+'" data-id="'+newMenus[i].id+'" onclick="changeEndSubMenu(this)">'+childList[o].title+'</div>';
  744. // str += '</a>';
  745. // }
  746. // }
  747. // str += '</div>';
  748. // str += '</div>';
  749. // }else{
  750. // str += '<div class="qsidenav-list">';
  751. // // str += '<div class="qsidenav-twomenu-name">'+newMenus[i].title+'</div>';
  752. // str += '<div class="sub">';
  753. // str += '<a href="javascript:;">';
  754. // str += '<div class="sub-list endmenuactive" data-url="'+newMenus[i].url+'" data-id="'+newMenus[i].id+'" onclick="changeEndSubMenu(this)">'+newMenus[i].title+'</div>';
  755. // str += '</a>';
  756. // str += '</div>';
  757. // str += '</div>';
  758. // }
  759. //
  760. // }
  761. // $('.qsidenablistthreemenulist').html(str);
  762. //
  763. //
  764. // let menustr = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+menuurl+'" frameborder="0" data-id="'+menuurl+'" seamless></iframe>';
  765. // $('#gy-main-iframe-menu').html(menustr);
  766. // }
  767. }
  768. function changeEndSubMenu(_self){
  769. var menuId = $(_self).attr('data-id');
  770. var menuurl = $(_self).attr('data-url');
  771. $('.endmenuactive').removeClass('cur');
  772. $(_self).addClass('cur');
  773. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+menuurl+'" frameborder="0" data-id="'+menuurl+'" seamless></iframe>';
  774. $('#gy-main-iframe-menu').html(str);
  775. return false;
  776. }
  777. var curmenu = {:json_encode($curmenu)};
  778. var menuId = {:json_encode($menuId)};
  779. var ct = {:json_encode($ct)};
  780. var submenus = {:json_encode($submenus)};
  781. $(function (){
  782. if(ct == 0){
  783. if(curmenu == 500){
  784. $('.gyindexsub-menu-list-box').css('display','none');
  785. $('.gongzuotaimenu').css('display','block');
  786. }else{
  787. $('.gyindexsub-menu-list-box').css('display','block');
  788. $('.gongzuotaimenu').css('display','none');
  789. var menusublist = [];
  790. var menuurl2 = '';
  791. for (let i in menus){
  792. if(curmenu == menus[i].id){
  793. menusublist = menus[i].child;
  794. let submenulistaa = menus[i].child;
  795. if(submenulistaa.length >0){
  796. for (let a in submenulistaa){
  797. menuurl2 = submenulistaa[0].url;
  798. let aaaa = submenulistaa[0].child;
  799. if(aaaa.length > 0){
  800. for (let z in aaaa){
  801. menuurl2 = aaaa[0].url;
  802. }
  803. }
  804. }
  805. }
  806. }
  807. }
  808. var str = '';
  809. for (let i in menusublist){
  810. var childList = menusublist[i].child;
  811. if(childList.length >0){
  812. str += '<div class="qsidenav-list">';
  813. str += '<div class="qsidenav-twomenu-name">'+menusublist[i].title+'</div>';
  814. str += '<div class="sub">';
  815. if(childList.length >0){
  816. for (let o in childList){
  817. str += '<a href="javascript:;">';
  818. str += '<div class="sub-list endmenuactive" data-url="'+childList[o].url+'" data-id="'+menusublist[i].id+'" onclick="changeEndSubMenu(this)">'+childList[o].title+'</div>';
  819. str += '</a>';
  820. }
  821. }
  822. str += '</div>';
  823. str += '</div>';
  824. }else{
  825. str += '<div class="qsidenav-list">';
  826. str += '<div class="sub">';
  827. str += '<a href="javascript:;">';
  828. str += '<div class="sub-list endmenuactive" data-url="'+menusublist[i].url+'" data-id="'+menusublist[i].id+'" onclick="changeEndSubMenu(this)">'+menusublist[i].title+'</div>';
  829. str += '</a>';
  830. str += '</div>';
  831. str += '</div>';
  832. }
  833. }
  834. $('.qsidenablistthreemenulist').html(str);
  835. let menustr = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+menuurl2+'" frameborder="0" data-id="'+menuurl2+'" seamless></iframe>';
  836. $('#gy-main-iframe-menu').html(menustr);
  837. }
  838. }else{
  839. $('.gyindexsub-menu-list-box').css('display','block');
  840. $('.gongzuotaimenu').css('display','none');
  841. var menusublist = [];
  842. var menuurl2 = '';
  843. for (let i in submenus){
  844. if(menuId == submenus[i].id){
  845. menusublist.push(submenus[i]);
  846. // menusublist = submenus[i].child;
  847. let submenulistaa = submenus[i].child;
  848. if(submenulistaa.length >0){
  849. for (let a in submenulistaa){
  850. menuurl2 = submenulistaa[0].url;
  851. let aaaa = submenulistaa[0].child;
  852. if(aaaa.length > 0){
  853. for (let z in aaaa){
  854. menuurl2 = aaaa[0].url;
  855. }
  856. }
  857. }
  858. }
  859. }
  860. }
  861. console.log(menusublist,'xxxx');
  862. var str = '';
  863. for (let i in menusublist){
  864. var childList = menusublist[i].child;
  865. if(childList.length >0){
  866. str += '<div class="qsidenav-list">';
  867. str += '<div class="qsidenav-twomenu-name">'+menusublist[i].title+'</div>';
  868. str += '<div class="sub">';
  869. if(childList.length >0){
  870. for (let o in childList){
  871. str += '<a href="javascript:;">';
  872. str += '<div class="sub-list endmenuactive" data-url="'+childList[o].url+'" data-id="'+menusublist[i].id+'" onclick="changeEndSubMenu(this)">'+childList[o].title+'</div>';
  873. str += '</a>';
  874. }
  875. }
  876. str += '</div>';
  877. str += '</div>';
  878. }else{
  879. str += '<div class="qsidenav-list">';
  880. str += '<div class="sub">';
  881. str += '<a href="javascript:;">';
  882. str += '<div class="sub-list endmenuactive" data-url="'+menusublist[i].url+'" data-id="'+menusublist[i].id+'" onclick="changeEndSubMenu(this)">'+menusublist[i].title+'</div>';
  883. str += '</a>';
  884. str += '</div>';
  885. str += '</div>';
  886. }
  887. }
  888. $('.qsidenablistthreemenulist').html(str);
  889. let menustr = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+menuurl2+'" frameborder="0" data-id="'+menuurl2+'" seamless></iframe>';
  890. $('#gy-main-iframe-menu').html(menustr);
  891. }
  892. })
  893. </script>
  894. </body>
  895. </html>