index.html 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102
  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="/static/swiper4.5/css/swiper.min.css">
  22. <script src="/static/hplus/js/jquery.min.js?v=2.1.4"></script>
  23. <style>
  24. .nav.navbar-right > li > a {
  25. display: inline-block;
  26. }
  27. #orderNums{
  28. /*vertical-align: middle;*/
  29. color: red;
  30. position: relative;
  31. top: -3px;
  32. }
  33. .nn:focus, .nn:hover{
  34. background-color:#fff !important;
  35. }
  36. .navbar-title{
  37. display: inline-block;
  38. font-size: 20px;
  39. font-family: Source Han Sans CN;
  40. font-weight: 500;
  41. color: #284A94;
  42. padding-left: 20px;
  43. line-height: 60px;
  44. float: left;
  45. }
  46. .navbar-header{
  47. width: 550px!important;
  48. height: 70px;
  49. line-height: 70px;
  50. font-size: 20px;
  51. font-family: Source Han Sans CN;
  52. font-weight: 500;
  53. color: #284A94;
  54. }
  55. .sidebox{
  56. width: 100%;
  57. height: 100%;
  58. position: relative;
  59. }
  60. .side-box-switch{
  61. width: 28px;
  62. height: 168px;
  63. position: absolute;
  64. z-index: 10;
  65. top: 50%;
  66. right: -28px;
  67. /*background-color: red !important;*/
  68. margin-top: -84px;
  69. cursor: pointer;
  70. }
  71. .side-box-switch .switch-img{
  72. width: 100%;
  73. height: 100%;
  74. }
  75. .main-box-padding-left{
  76. padding-left: 120px !important;
  77. }
  78. .main-box-padding-left1{
  79. padding-left: 280px !important;
  80. }
  81. .main-box-padding-left3{
  82. padding-left: 0px !important;
  83. }
  84. .menusub-box{
  85. width: 100%;
  86. height: 100%;
  87. overflow: hidden;
  88. }
  89. html{
  90. height: auto !important;
  91. }
  92. body{
  93. background-image: url("/admin/img/index-bg.png");
  94. background-repeat: no-repeat;
  95. background-size: 100% 100%;
  96. /*background-size: cover;*/
  97. }
  98. .navbar{
  99. width: 100%;
  100. height: 70px !important;
  101. background-image: url("/admin/img/index-header-bg.png");
  102. background-repeat: no-repeat;
  103. background-size: 100% 100%;
  104. margin-bottom: 0 !important;
  105. border-bottom: none !important;
  106. }
  107. .navbar-logo{
  108. width: 157px;
  109. height: 40px;
  110. display: inline-block;
  111. float: left;
  112. margin-left: 50px;
  113. margin-top: 15px;
  114. }
  115. .navbar-logo img{
  116. width: 100%;
  117. height: 100%;
  118. }
  119. </style>
  120. </head>
  121. <!--<body class="fixed-sidebar full-height-layout gray-bg fixed-nav pace-done">-->
  122. <body>
  123. <nav class="navbar navbar-fixed-top" role="navigation">
  124. <!-- <div class="navbar-title">{:get_config('web_site_title')}</div>-->
  125. <div class="navbar-logo">
  126. <img src="/admin/img/index-logo.png" alt="">
  127. </div>
  128. <div class="navbar-header">
  129. {if $userInfo.type==1}
  130. <!--{:get_config('web_site_title')}&nbsp;|&nbsp;-->
  131. <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">
  132. {:session('orgName')} <span class="glyphicon glyphicon-menu-down" style="font-size: 16px;" aria-hidden="true"></span>
  133. </div>
  134. {else}
  135. <!--{:get_config('web_site_title')}&nbsp;|&nbsp;-->
  136. <div data-width="60%" style="display: inline-block;">
  137. {:session('orgName')}
  138. </div>
  139. {/if}
  140. </div>
  141. <!-- <ul class="nav navbar-top-links navbar-right">-->
  142. <!--<li class="dropdown">
  143. <a class="dropdown-toggle count-info" data-toggle="dropdown" href="#"> <i class="fa fa-bell"></i> <span class="label label-primary">8</span> </a>
  144. <ul class="dropdown-menu dropdown-alerts">
  145. <li>
  146. <a href="mailbox.html">
  147. <div>
  148. <i class="fa fa-envelope fa-fw"></i> 您有16条未读消息
  149. <span class="pull-right text-muted small">4分钟前</span>
  150. </div>
  151. </a>
  152. </li>
  153. <li class="divider"></li>
  154. <li>
  155. <a href="profile.html">
  156. <div>
  157. <i class="fa fa-qq fa-fw"></i> 3条新回复
  158. <span class="pull-right text-muted small">12分钟前</span>
  159. </div>
  160. </a>
  161. </li>
  162. <li class="divider"></li>
  163. <li>
  164. <div class="text-center link-block">
  165. <a class="J_menuItem" href="notifications.html" data-index="89">
  166. <strong>查看所有 </strong>
  167. <i class="fa fa-angle-right"></i>
  168. </a>
  169. </div>
  170. </li>
  171. </ul>
  172. </li>-->
  173. <!-- <li class="dropdown">
  174. {if ($isDispatch == 1)}
  175. <a href="javascript:;" id="goOrder" url="{:url('Index/ordersList')}?mode=0&order_mode=1" onclick="layer_open_dispatch(this,2)" class="glyphicon glyphicon-bell">
  176. <text id="orderNums">{if condition="$orderNums > 0"}({$orderNums}){/if}</text>
  177. </a>
  178. <a href="javascript:;" class="nn" onclick="offNotice()" id="offNotice" >
  179. <text id="offNoticeBtn">关闭通知</text>
  180. </a>
  181. <input type="hidden" id="offNoticeVal" value="0">
  182. {/if}
  183. <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:;">欢迎,{:session('user_auth.real_name')} </a>
  184. <ul class="dropdown-menu animated fadeInRight m-t-xs">
  185. <li><a class="JmenuItem" href="{:url('User/modifyPass')}">修改密码</a></li>
  186. <li><a href="{:url('Common/logout')}">安全退出</a></li>
  187. </ul>
  188. </li>-->
  189. <!-- </ul>-->
  190. </nav>
  191. <div id="vueapphhq">
  192. <div class="container gymain-box">
  193. <div class="row">
  194. <div class="col-xs-2">
  195. <div class="gymain1">
  196. <div class="menu-search-box">
  197. <div class="menu-search-input">
  198. <input type="text" name="menu_name" id="menu_name" placeholder="您想去的菜单页">
  199. </div>
  200. <div class="menu-search-img-btn">
  201. <img src="/admin/img/search.png" alt=""onclick="searchMenu()">
  202. </div>
  203. </div>
  204. <div class="menu-list-box" id="menu-list-box">
  205. {foreach $userEndMenu as $k=>$v}
  206. <a href="{$v['url']}">
  207. <div class="zi">{$v['title']}</div>
  208. </a>
  209. {/foreach}
  210. </div>
  211. <div class="ggw-box">
  212. <img src="/admin/img/guanggaowei.png" alt="">
  213. </div>
  214. <div class="download-info-box">
  215. <div class="download-info-title">资料下载</div>
  216. <div class="download-info-content-box">
  217. <a href="">
  218. <div><span>PC端操作说明书</span><img src="/admin/img/download.png" alt=""></div>
  219. </a>
  220. <a href="">
  221. <div><span>移动端操作说明书</span><img src="/admin/img/download.png" alt=""></div>
  222. </a>
  223. </div>
  224. </div>
  225. <div class="qrcode-box">
  226. <div class="swiper-qrcode" id="swiper-qrcode">
  227. <div class="swiper-wrapper">
  228. {if $download}
  229. <div class="swiper-slide">
  230. <div class="qrcode-title">APP下二维码</div>
  231. <img src="{$download}">
  232. </div>
  233. {/if}
  234. {if $wxcode}
  235. <div class="swiper-slide">
  236. <div class="qrcode-title">小程序二维码</div>
  237. <img src="{$wxcode}">
  238. </div>
  239. {/if}
  240. {if $phcode}
  241. <div class="swiper-slide">
  242. <div class="qrcode-title">陪护二维码</div>
  243. <img src="{$phcode}">
  244. </div>
  245. {/if}
  246. </div>
  247. <div class="box-swiper-pagination" id="box-swiper-pagination1"></div>
  248. </div>
  249. </div>
  250. </div>
  251. </div>
  252. <div class="col-xs-7">
  253. <div class="gymain2">
  254. <div class="gymian2-one-box">
  255. <div class="row">
  256. <div class="col-xs-5" style="padding: 0 5px!important;">
  257. <div class="loginuserbox">
  258. <img src="" alt="">
  259. <div class="loginusername">
  260. <a class="dropdown-toggle" data-toggle="dropdown" href="javascript:;">欢迎,{:session('user_auth.real_name')} </a>
  261. <ul class="dropdown-menu animated fadeInRight m-t-xs">
  262. <li><a class="JmenuItem" href="{:url('User/modifyPass')}">修改密码</a></li>
  263. <li><a href="{:url('Common/logout')}">安全退出</a></li>
  264. </ul>
  265. </div>
  266. </div>
  267. </div>
  268. <div class="col-xs-7" style="padding: 0 5px!important;">
  269. <div class="onemenu">
  270. <div class="col-xs-6">
  271. <a href="{if $fixedModuleAuth ==1} {:url('index/indexsub')} {else /}javascript:void(0){/if}">
  272. <div class="menu-info-box">
  273. <div class="menu-icon">
  274. <img src="{$fixedModule.url}" alt="">
  275. </div>
  276. <div class="menu-name">
  277. <div class="title">{$fixedModule.title}</div>
  278. <div class="des">{$fixedModule.des}</div>
  279. </div>
  280. {if $fixedModuleAuth ==1} <img src="/admin/img/xiangyou1.png" alt="" class="jiantou">{/if}
  281. </div>
  282. </a>
  283. </div>
  284. <div class="col-xs-6">
  285. <a href="javascript:void(0)">
  286. <div class="menu-info-box">
  287. <div class="menu-icon">
  288. <img src="{$fixedModule1.url}" alt="">
  289. </div>
  290. <div class="menu-name">
  291. <div class="title">{$fixedModule1.title}</div>
  292. <div class="des">{$fixedModule1.des}</div>
  293. </div>
  294. {if $fixedModuleAuth ==1}
  295. <img src="/admin/img/xiangyou1.png" alt="" class="jiantou">
  296. {/if}
  297. </div>
  298. </a>
  299. </div>
  300. <div class="col-xs-4">
  301. <a href="">
  302. <div class="menu-info-box">
  303. <div class="menu-icon">
  304. <img src="{$fixedModule2.url}" alt="">
  305. </div>
  306. <div class="menu-name">
  307. <div class="title">{$fixedModule2.title}</div>
  308. <div class="des">{$fixedModule2.des}</div>
  309. </div>
  310. </div>
  311. </a>
  312. </div>
  313. <div class="col-xs-4">
  314. <a href="">
  315. <div class="menu-info-box">
  316. <div class="menu-icon">
  317. <img src="{$fixedModule3.url}" alt="">
  318. </div>
  319. <div class="menu-name">
  320. <div class="title">{$fixedModule3.title}</div>
  321. <div class="des">{$fixedModule3.des}</div>
  322. </div>
  323. </div>
  324. </a>
  325. </div>
  326. <div class="col-xs-4">
  327. <a href="">
  328. <div class="menu-info-box">
  329. <div class="menu-icon">
  330. <img src="{$fixedModule4.url}" alt="">
  331. </div>
  332. <div class="menu-name">
  333. <div class="title">{$fixedModule4.title}</div>
  334. <div class="des">{$fixedModule4.des}</div>
  335. </div>
  336. </div>
  337. </a>
  338. </div>
  339. </div>
  340. </div>
  341. </div>
  342. </div>
  343. <div class="gymian2-two-box" >
  344. <div class="gymian2-two-header">常用模块
  345. <!-- <img src="/admin/img/xiangyou1.png" alt="">-->
  346. </div>
  347. <div class="row">
  348. {foreach $module as $k=>$v}
  349. <div class="col-xs-4">
  350. <a href="{$v.url}" data-menu="{$v.menu_id}">
  351. <div class="menu-info-box">
  352. <div class="menu-icon">
  353. <img src="{$v.img}" alt="">
  354. </div>
  355. <div class="menu-name">
  356. <div class="title">{$v['title']}</div>
  357. <div class="des">{$v['des']}</div>
  358. </div>
  359. </div>
  360. </a>
  361. </div>
  362. {/foreach}
  363. </div>
  364. </div>
  365. <div class="gymian2-three-box">
  366. <div class="gymian2-three-header">今日看板</div>
  367. <div class="orders-box">
  368. <div class="col-xs-2">
  369. <div class="orders-status-box orders-status-bg">
  370. <div class="title">待处理</div>
  371. <div class="line"></div>
  372. <div class="nums">{$dayOrderCount.count1}</div>
  373. </div>
  374. </div>
  375. <div class="col-xs-2">
  376. <div class="orders-status-box orders-status-bg1">
  377. <div class="title">已派发</div>
  378. <div class="line"></div>
  379. <div class="nums">{$dayOrderCount.count2}</div>
  380. </div>
  381. </div>
  382. <div class="col-xs-2">
  383. <div class="orders-status-box orders-status-bg2">
  384. <div class="title">已完成</div>
  385. <div class="line"></div>
  386. <div class="nums">{$dayOrderCount.count3}</div>
  387. </div>
  388. </div>
  389. <div class="col-xs-2">
  390. <div class="orders-status-box orders-status-bg3">
  391. <div class="title">已评价</div>
  392. <div class="line"></div>
  393. <div class="nums">{$dayOrderCount.count4}</div>
  394. </div>
  395. </div>
  396. <div class="col-xs-2">
  397. <div class="orders-status-box orders-status-bg4">
  398. <div class="title">用户撤销</div>
  399. <div class="line"></div>
  400. <div class="nums">{$dayOrderCount.count5}</div>
  401. </div>
  402. </div>
  403. <div class="col-xs-2">
  404. <div class="orders-status-box orders-status-bg5">
  405. <div class="title">调度取消</div>
  406. <div class="line"></div>
  407. <div class="nums">{$dayOrderCount.count6}</div>
  408. </div>
  409. </div>
  410. </div>
  411. </div>
  412. </div>
  413. </div>
  414. <div class="col-xs-3" style="padding: 0 5px">
  415. <div class="gymain3">
  416. <div class="notice-box">
  417. <div class="notice-header-box">
  418. 通知公告
  419. <img src="/admin/img/xiangyou1.png" alt="" class="pull-right" style="cursor: pointer;" url="{:url('NoticeCommon/index')}" data-title="通知列表" data-width="800px" onclick="layer_open(this,1)">
  420. </div>
  421. {notempty name="notice"}
  422. {volist name="notice" id="v"}
  423. <div class="notice-info-box">
  424. <div class="notice-info-header-box">
  425. <div class="yuandian"></div>
  426. <div class="name">{$v.title}</div>
  427. <text class="pull-right">{$v.create_time}</text>
  428. </div>
  429. <div class="notice-content">
  430. {$v.content}
  431. </div>
  432. <div class="go-notice-detail" style="cursor: pointer;" url="{:url('NoticeCommon/noticeDetail',['id'=>$v['id']])}" data-title="通知详情" data-width="800px" onclick="layer_open(this,1)">详情</div>
  433. </div>
  434. {/volist}
  435. {else /}
  436. <div style="width: 100%;text-align: center;margin-top: 50px;font-size: 16px">暂无通知</div>
  437. {/notempty}
  438. </div>
  439. <div class="tj-box">
  440. <div class="tj-header-box">
  441. 统计报表
  442. <img src="/admin/img/xiangyou1.png" alt="" class="pull-right">
  443. </div>
  444. <div class="tj-body-box">
  445. <div class="col-xs-6">
  446. <a href="">
  447. <div class="tj-info">
  448. 报修报表
  449. </div>
  450. </a>
  451. </div>
  452. <div class="col-xs-6">
  453. <a href="">
  454. <div class="tj-info1">
  455. 运送报表
  456. </div>
  457. </a>
  458. </div>
  459. <div class="col-xs-6">
  460. <a href="">
  461. <div class="tj-info1">
  462. 巡更报表
  463. </div>
  464. </a>
  465. </div>
  466. <div class="col-xs-12" style="padding: 0 5px!important;">
  467. <a href="">
  468. <div class="tj-info2">
  469. 视频监控
  470. </div>
  471. </a>
  472. </div>
  473. </div>
  474. </div>
  475. </div>
  476. </div>
  477. </div>
  478. </div>
  479. </div>
  480. <!--<div class="main-box main-box-h2" id="main-iframe">-->
  481. <div>
  482. <!-- <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="{:url('Index/def')}" frameborder="0" data-id="index_v1.html" seamless></iframe>-->
  483. <!--</div>-->
  484. <script src="/static/hplus/js/bootstrap.min.js?v=3.3.7"></script>
  485. <script src="/static/layer3.2.0/layer.js"></script>
  486. <script src="/static/hplus/js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
  487. <script src="/static/hplus/js/plugins/metisMenu/jquery.metisMenu.js"></script>
  488. <script src="/static/hplus/js/plugins/contextMenu/jquery.contextMenu.min.js"></script>
  489. <script src="/static/hplus/js/hplus.js?v=4.1.0"></script>
  490. <script type="text/javascript" src="/static/hplus/js/contabs.js"></script>
  491. <!-- 第三方插件 -->
  492. <script src="/static/hplus/js/plugins/pace/pace.min.js"></script>
  493. <script src="/static/elementui2.15.5/vue-2.6.14.js"></script>
  494. <script src="/static/elementui2.15.5/index.js"></script>
  495. <script src="/admin/js/common.js"></script>
  496. <script src="/static/swiper4.5/js/swiper.min.js"></script>
  497. {if condition="is_login() and !is_admin(is_login()) and btnAuth(is_login(),'PhoneMonitor/show')"}
  498. <textarea style="display: none;" id="StatusArea" rows="13" name="S1" class="form-control" readonly></textarea>
  499. <script language="javascript" type="text/javascript" src="/static/phonejs/qnviccub.js"></script>
  500. <script language="javascript" type="text/javascript" src="/static/phonejs/qnvfunc.js"></script>
  501. <script language="javascript" type="text/javascript" src="/static/phonejs/json2.js"></script>
  502. <script language="javascript" type="text/javascript" src="/static/phonejs/deviceapi.js"></script>
  503. <script>
  504. var fp;
  505. $(document).ready(function(){
  506. TV_Initialize();
  507. getEvent(T_GetEvent);
  508. });
  509. $(window).unload(function(){
  510. TV_Disable();
  511. });
  512. setInterval(function () {
  513. OpenDevice(ODT_LBRIDGE,function(nResult){AppendStatus('打开设备.');});
  514. },30000);
  515. //离开页面
  516. $(window).bind('beforeunload',function(){
  517. TV_Disable();
  518. });
  519. function openPhone() {
  520. // let gphone = "13838379499";
  521. // let fp = "d:\\wyluyin\\" + getCurrentDate(3) + "_" + gphone + ".wav";
  522. // check_phone(gphone,fp);
  523. }
  524. function playBtn() {
  525. // let path = "d:\\wyluyin\\20220608191204_13027625915.wav";
  526. // console.log('path:',path);
  527. PlayFile(1,QNV_PLAY_FILE_START,0,PLAYFILE_MASK_REPEAT,path,function(id){
  528. console.log('play:',id);
  529. });
  530. }
  531. function check_phone(gphone,fp) {
  532. fp = base64encode(fp);
  533. var url = '{:url("orders/phone")}?phone=' + gphone + '&fp='+fp;
  534. var title = '添加订单';
  535. layer.open({
  536. type: 2,
  537. shade: 0.8,
  538. title: title,
  539. area: ['800px', '400px'],
  540. fix: false, //不固定
  541. maxmin: true,
  542. content: url,
  543. skin: 'layer-ext-moon',
  544. success: function(layero, index) {
  545. layer.iframeAuto(index);
  546. },
  547. // btn: ['取消']
  548. });
  549. return false;
  550. }
  551. function AppendStatus(szStatus)
  552. {
  553. // console.log(szStatus);
  554. // $("#StatusArea").append(szStatus+"\r\n" );
  555. // var scrollTop = $("#StatusArea")[0].scrollHeight;
  556. // $("#StatusArea").scrollTop(scrollTop);
  557. }
  558. function AppendStatusEx(uID,szStatus)
  559. {
  560. uID=uID+1;
  561. AppendStatus("通道"+uID+":"+szStatus);
  562. }
  563. function T_GetEvent(uID,uEventType,uHandle,uResult,szdata)
  564. {
  565. // console.log(uID,uEventType,uHandle,uResult,szdata);
  566. //var vValueArray=qnviccub.QNV_Event(0,2,0,"","",1024);
  567. if(uEventType == -1)
  568. return;
  569. var vValue=" type="+uEventType+" Handle="+uHandle+" Result="+uResult+" szdata="+szdata;
  570. switch(uEventType)
  571. {
  572. case BriEvent_PhoneHook:// 本地电话机摘机事件
  573. AppendStatusEx(uID,"本地电话机摘机"+vValue);
  574. TV_StartRecordFile(uID,fp);
  575. break;
  576. case BriEvent_PhoneDial:// 只有在本地话机摘机,没有调用软摘机时,检测到DTMF拨号
  577. AppendStatusEx(uID,"本地话机拨号"+vValue);
  578. break;
  579. case BriEvent_PhoneHang:// 本地电话机挂机事件
  580. TV_HangUpCtrl(uID);
  581. AppendStatusEx(uID,"本地电话机挂机"+vValue);
  582. TV_StopRecordFile(uID);
  583. break;
  584. case BriEvent_CallIn:// 外线通道来电响铃事件
  585. AppendStatusEx(uID,"外线通道来电响铃事件"+vValue);
  586. break;
  587. case BriEvent_GetCallID://得到来电号码
  588. AppendStatusEx(uID,"得到来电号码"+vValue);
  589. fp = "d:\\wyluyin\\" + getCurrentDate(3) + "_" + szdata + ".wav";
  590. check_phone(szdata,fp);
  591. break;
  592. case BriEvent_StopCallIn:// 对方停止呼叫(产生一个未接电话)
  593. AppendStatusEx(uID,"对方停止呼叫(产生一个未接电话)"+vValue);
  594. break;
  595. case BriEvent_DialEnd:// 调用开始拨号后,全部号码拨号结束
  596. AppendStatusEx(uID,"调用开始拨号后,全部号码拨号结束"+vValue);
  597. break;
  598. case BriEvent_PlayFileEnd:// 播放文件结束事件
  599. AppendStatusEx(uID,"播放文件结束事件"+vValue);
  600. break;
  601. case BriEvent_PlayMultiFileEnd:// 多文件连播结束事件
  602. AppendStatusEx(uID,"多文件连播结束事件"+vValue);
  603. break;
  604. case BriEvent_PlayStringEnd://播放字符结束
  605. AppendStatusEx(uID,"播放字符结束"+vValue);
  606. break;
  607. case BriEvent_RepeatPlayFile:// 播放文件结束准备重复播放
  608. AppendStatusEx(uID,"播放文件结束准备重复播放"+vValue);
  609. break;
  610. case BriEvent_SendCallIDEnd:// 给本地设备发送震铃信号时发送号码结束
  611. AppendStatusEx(uID,"给本地设备发送震铃信号时发送号码结束"+vValue);
  612. break;
  613. case BriEvent_RingTimeOut://给本地设备发送震铃信号时超时
  614. AppendStatusEx(uID,"给本地设备发送震铃信号时超时"+vValue);
  615. break;
  616. case BriEvent_Ringing://正在内线震铃
  617. AppendStatusEx(uID,"正在内线震铃"+vValue);
  618. break;
  619. case BriEvent_Silence:// 通话时检测到一定时间的静音.默认为5秒
  620. AppendStatusEx(uID,"通话时检测到一定时间的静音"+vValue);
  621. break;
  622. case BriEvent_GetDTMFChar:// 线路接通时收到DTMF码事件
  623. AppendStatusEx(uID,"线路接通时收到DTMF码事件"+vValue);
  624. break;
  625. case BriEvent_RemoteHook:// 拨号后,被叫方摘机事件
  626. AppendStatusEx(uID,"拨号后,被叫方摘机事件"+vValue);
  627. break;
  628. case BriEvent_RemoteHang://对方挂机事件
  629. TV_HangUpCtrl(uID);
  630. AppendStatusEx(uID,"对方挂机事件"+vValue);
  631. TV_StopRecordFile(uID);
  632. break;
  633. case BriEvent_Busy:// 检测到忙音事件,表示PSTN线路已经被断开
  634. AppendStatusEx(uID,"检测到忙音事件,表示PSTN线路已经被断开"+vValue);
  635. break;
  636. case BriEvent_DialTone:// 本地摘机后检测到拨号音
  637. AppendStatusEx(uID,"本地摘机后检测到拨号音"+vValue);
  638. break;
  639. case BriEvent_RingBack:// 电话机拨号结束呼出事件。
  640. AppendStatusEx(uID,"电话机拨号结束呼出事件"+vValue);
  641. break;
  642. case BriEvent_MicIn:// MIC插入状态
  643. AppendStatusEx(uID,"MIC插入状态"+vValue);
  644. break;
  645. case BriEvent_MicOut:// MIC拔出状态
  646. AppendStatusEx(uID,"MIC拔出状态"+vValue);
  647. break;
  648. case BriEvent_FlashEnd:// 拍插簧(Flash)完成事件,拍插簧完成后可以检测拨号音后进行二次拨号
  649. AppendStatusEx(uID,"拍插簧(Flash)完成事件,拍插簧完成后可以检测拨号音后进行二次拨号"+vValue);
  650. break;
  651. case BriEvent_RefuseEnd:// 拒接完成
  652. AppendStatusEx(uID,"拒接完成"+vValue);
  653. break;
  654. case BriEvent_SpeechResult:// 语音识别完成
  655. AppendStatusEx(uID,"语音识别完成"+vValue);
  656. break;
  657. case BriEvent_FaxRecvFinished:// 接收传真完成
  658. AppendStatusEx(uID,"接收传真完成"+vValue);
  659. break;
  660. case BriEvent_FaxRecvFailed:// 接收传真失败
  661. AppendStatusEx(uID,"接收传真失败"+vValue);
  662. break;
  663. case BriEvent_FaxSendFinished:// 发送传真完成
  664. AppendStatusEx(uID,"发送传真完成"+vValue);
  665. break;
  666. case BriEvent_FaxSendFailed:// 发送传真失败
  667. AppendStatusEx(uID,"发送传真失败"+vValue);
  668. break;
  669. case BriEvent_OpenSoundFailed:// 启动声卡失败
  670. AppendStatusEx(uID,"启动声卡失败"+vValue);
  671. break;
  672. case BriEvent_UploadSuccess://远程上传成功
  673. AppendStatusEx(uID,"远程上传成功"+vValue);
  674. break;
  675. case BriEvent_UploadFailed://远程上传失败
  676. AppendStatusEx(uID,"远程上传失败"+vValue);
  677. break;
  678. case BriEvent_EnableHook:// 应用层调用软摘机/软挂机成功事件
  679. AppendStatusEx(uID,"应用层调用软摘机/软挂机成功事件"+vValue);
  680. break;
  681. case BriEvent_EnablePlay:// 喇叭被打开或者/关闭
  682. AppendStatusEx(uID,"喇叭被打开或者/关闭"+vValue);
  683. break;
  684. case BriEvent_EnableMic:// MIC被打开或者关闭
  685. AppendStatusEx(uID,"MIC被打开或者关闭"+vValue);
  686. break;
  687. case BriEvent_EnableSpk:// 耳机被打开或者关闭
  688. AppendStatusEx(uID,"耳机被打开或者关闭"+vValue);
  689. break;
  690. case BriEvent_EnableRing:// 电话机跟电话线(PSTN)断开/接通
  691. AppendStatusEx(uID,"电话机跟电话线(PSTN)断开/接通"+vValue);
  692. break;
  693. case BriEvent_DoRecSource:// 修改录音源
  694. AppendStatusEx(uID,"修改录音源"+vValue);
  695. break;
  696. case BriEvent_DoStartDial:// 开始软件拨号
  697. AppendStatusEx(uID,"开始软件拨号"+vValue);
  698. break;
  699. case BriEvent_RecvedFSK:// 接收到FSK信号,包括通话中FSK/来电号码的FSK
  700. AppendStatusEx(uID,"接收到FSK信号,包括通话中FSK/来电号码的FSK"+vValue);
  701. break;
  702. case BriEvent_PlugOut:
  703. AppendStatusEx(uID,"设备移除");
  704. // alert('设备移除');
  705. break;
  706. case BriEvent_DevErr://设备错误
  707. AppendStatusEx(uID,"设备错误"+ decodeURIComponent(vValue) );
  708. // alert('设备错误');
  709. break;
  710. default:
  711. if(uEventType < BriEvent_EndID)
  712. AppendStatusEx(uID,"忽略其它事件发生:ID=" + uEventType+ vValue);
  713. break;
  714. }
  715. }
  716. </script>
  717. {/if}
  718. {if condition="$isDispatch eq 1"}
  719. <audio id="dingdantixing" src="/static/tixing.mp3" controls="controls" style="display: none;"></audio>
  720. <script>
  721. var time1;
  722. var audio = document.getElementById('dingdantixing');
  723. $(function () {
  724. var interval = function () {
  725. var url = "{:url('Index/order')}";
  726. $.get(url,function (data) {
  727. if(data.code == 1){
  728. var audio = document.getElementById('dingdantixing');
  729. audio.play();
  730. if(data.data > 0){
  731. document.getElementById('orderNums').innerHTML ='('+data.data +')';
  732. }
  733. // layer.msg('您有新的订单请及时处理',{time:3000});
  734. }
  735. });
  736. }
  737. time1 = setInterval(interval,30000);
  738. $("#offNoticeBtn").click(function () {
  739. var off = parseInt($("#offNoticeVal").val());
  740. if(off==0){
  741. clearInterval(time1);
  742. $("#offNoticeVal").val(1)
  743. $("#offNoticeBtn").html('开启通知');
  744. audio.pause();
  745. }else {
  746. $("#offNoticeVal").val(0)
  747. time1 = setInterval(interval,30000);
  748. $("#offNoticeBtn").html('关闭通知');
  749. }
  750. })
  751. })
  752. </script>
  753. {/if}
  754. <script>
  755. var menus = {:json_encode($menus)};
  756. $(function () {
  757. // $('#side-menu').slimScroll({
  758. // height: ($('.sidebar-box').height() + 40) + 'px'
  759. // });
  760. // $('#side-menu2').slimScroll({
  761. // height: $('.sidebar-box').height() + 'px'
  762. // });
  763. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  764. $('#main-iframe').addClass('main-box-h2');
  765. $('#menu-1').addClass('active');
  766. // $('.sidenav .side-list a').hover(
  767. // function () {
  768. // $(this).addClass("hover");
  769. // let id = $(this).attr('data-id');
  770. // initSubMenu(id);
  771. // },
  772. // function () {
  773. // $(this).removeClass("hover");
  774. // }
  775. // );
  776. $(document).on('click','#side-menu .Jiframe',function () {
  777. let id = $(this).attr('data-id');
  778. let url = $(this).attr('data-url');
  779. $('#main-iframe').removeClass('main-box-padding-left');
  780. $('#main-iframe').removeClass('main-box-padding-left1');
  781. $('#main-iframe').removeClass('main-box-padding-left3');
  782. // var width2 = localStorage.getItem("width1");
  783. // console.log(width2,'xxxxxxxxxxxxxxxx')
  784. // if(width2 == 120){
  785. // $('#main-iframe').css('padding-left','120px');
  786. // }
  787. // if(width2 == 280){
  788. // $('#main-iframe').css('padding-left','280px');
  789. // }
  790. if(url){
  791. if(id==485 || id==467 || id==488 || id==489){
  792. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  793. $('#main-iframe').addClass('main-box-h2');
  794. window.open(url);
  795. }else {
  796. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  797. $('#main-iframe').addClass('main-box-h2');
  798. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  799. $('#main-iframe').html(str);
  800. }
  801. }else{
  802. $('#sidebar-box-h2').addClass('sidebar-box-h2');
  803. $('#main-iframe').removeClass('main-box-h2');
  804. }
  805. $(this).addClass("hover");
  806. initSubMenu(id);
  807. $('#side-menu .Jiframe').removeClass('active');
  808. $(this).addClass('active');
  809. });
  810. $(document).on('click','#side-menu2 .Jiframe',function () {
  811. $('#main-iframe').removeClass('main-box-padding-left');
  812. $('#main-iframe').removeClass('main-box-padding-left1');
  813. $('#main-iframe').removeClass('main-box-padding-left3');
  814. let pid = $(this).attr('data-pid');
  815. let url = $(this).attr('data-url');
  816. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  817. $('#main-iframe').html(str);
  818. $('#side-menu2 .Jiframe').removeClass('active');
  819. $(this).addClass('active');
  820. // 寻找父级元素
  821. $('#side-menu .Jiframe').removeClass('active');
  822. $('#menu'+pid).addClass('active');
  823. });
  824. $(document).on('click','.JmenuItem',function () {
  825. $('#main-iframe').removeClass('main-box-padding-left');
  826. $('#main-iframe').removeClass('main-box-padding-left1');
  827. $('#main-iframe').removeClass('main-box-padding-left3');
  828. let url = $(this).attr('href');
  829. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  830. $('#main-iframe').html(str);
  831. return false;
  832. });
  833. });
  834. function initSubMenu(id) {
  835. $('#main-iframe').removeClass('main-box-padding-left');
  836. $('#main-iframe').removeClass('main-box-padding-left1');
  837. $('#main-iframe').removeClass('main-box-padding-left3');
  838. let submenus = [];
  839. for (let o in menus){
  840. if(id == menus[o].id){
  841. submenus = menus[o].child;
  842. break;
  843. }
  844. }
  845. if(submenus.length > 0){
  846. $('#sidebar-box-h2').addClass('sidebar-box-h2');
  847. $('#main-iframe').removeClass('main-box-h2');
  848. }else{
  849. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  850. $('#main-iframe').addClass('main-box-h2');
  851. }
  852. let str = '';
  853. for (let o in submenus){
  854. if(submenus[o].child.length > 0){
  855. // <div class="side-group">
  856. // <div class="side-group-label">系统设置</div>
  857. // <div class="side-list">
  858. // <a class="J_iframe" href="layouts.html"><span>项目管理</span></a>
  859. // </div>
  860. // </div>
  861. str += '<div class="side-group">';
  862. str += '<div class="side-group-label">'+submenus[o].title+'</div>';
  863. let children = submenus[o].child;
  864. for(let n in children){
  865. str += '<div class="side-list">';
  866. 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>';
  867. str += '</div>';
  868. }
  869. str += '</div>';
  870. }else{
  871. // <div class="side-list">
  872. // <a class="J_iframe active" href="layouts.html"><span>权限管理</span></a>
  873. // </div>
  874. str += '<div class="side-list">';
  875. 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>';
  876. str += '</div>';
  877. }
  878. }
  879. $('#side-menu2').html(str);
  880. }
  881. function add_highlight(url){
  882. console.log('url',url);
  883. $('.side-list a').removeClass('active');
  884. for (let o in menus){
  885. if(menus[o].url && menus[o].url == url){
  886. $('#menu'+menus[o].id).addClass('active');
  887. break;
  888. }
  889. let child1 = menus[o].child;
  890. let flag = false;
  891. let id = 0;
  892. if(child1.length > 0){
  893. for (let m in child1){
  894. if(child1[m].url && child1[m].url == url){
  895. flag = true;
  896. id = child1[m].id;
  897. break;
  898. }
  899. let child2 = child1[m].child;
  900. for (let n in child2){
  901. if(child2[n].url && child2[n].url == url){
  902. flag = true;
  903. id = child2[n].id;
  904. break;
  905. }
  906. }
  907. if(flag){
  908. break;
  909. }
  910. }
  911. }
  912. console.log('flag11',flag,id);
  913. if(flag){
  914. initSubMenu(menus[o].id);
  915. $('#menu'+menus[o].id).addClass('active');
  916. $('#menu'+id).addClass('active');
  917. break;
  918. }
  919. }
  920. }
  921. // $(document).on('click','#goOrder',function () {
  922. // let url = $(this).attr('href');
  923. // let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  924. // $('#main-iframe').html(str);
  925. // return false;
  926. // });
  927. function layer_open_dispatch(_self,flag){
  928. var url = $(_self).attr('url');
  929. var title = $(_self).attr('data-title');
  930. var width = $(_self).attr('data-width')?$(_self).attr('data-width'):'90%';
  931. var height = $(_self).attr('data-height')?$(_self).attr('data-height'):'90%';
  932. layer.open({
  933. type: 2,
  934. title: title,
  935. shadeClose: true,
  936. shade: 0.3,
  937. maxmin: true,
  938. area: [width, height],
  939. content: url,
  940. end: function () {
  941. update_order_count();
  942. }
  943. });
  944. }
  945. function update_order_count() {
  946. let url = "{:url('Index/ocount')}";
  947. $.post(url,function (res) {
  948. if(res.code == 1){
  949. let count = res.data.count;
  950. if(count > 0){
  951. $('#orderNums').html('('+count+')');
  952. }else{
  953. $('#orderNums').html('');
  954. }
  955. }
  956. });
  957. }
  958. function toggleSide(_self) {
  959. var width = $('.menuall').width();
  960. if(Number(width) > 1){
  961. var width1 = Number(width);
  962. localStorage.setItem("width1",width1);
  963. }
  964. if ( $(_self).hasClass('switch-open') ) {
  965. $(_self).removeClass('switch-open');
  966. $(_self).find('.switch-img-open').show();
  967. $(_self).find('.switch-img-close').hide();
  968. $('.menuall').css('width','0');
  969. $('.menusub-box').css('display','none');
  970. $('#main-iframe').addClass('main-box-padding-left3');
  971. }else{
  972. $(_self).addClass('switch-open');
  973. $(_self).find('.switch-img-open').hide();
  974. $(_self).find('.switch-img-close').show();
  975. $('.menuall').css('width','');
  976. $('.menusub-box').css('display','block');
  977. $('#main-iframe').removeClass('main-box-padding-left3');
  978. var width2 = localStorage.getItem("width1");
  979. if(width2 == 120){
  980. // $('#main-iframe').css('padding-left','120px');
  981. $('#main-iframe').addClass('main-box-padding-left');
  982. }
  983. if(width2 == 280){
  984. // $('#main-iframe').css('padding-left','280px');
  985. $('#main-iframe').addClass('main-box-padding-left1');
  986. }
  987. localStorage.removeItem("width1");
  988. }
  989. }
  990. new Swiper ('#swiper-qrcode', {
  991. loop: false, // 循环模式选项
  992. observer:true,//修改swiper自己或子元素时,自动初始化swiper
  993. observeParents:true,//修改swiper的父元素时,自动初始化swiper
  994. autoplay: {
  995. delay: 6000,
  996. stopOnLastSlide: false,
  997. disableOnInteraction: false,
  998. },
  999. // 如果需要分页器
  1000. pagination: {
  1001. el: '#box-swiper-pagination1',
  1002. clickable: true,
  1003. },
  1004. });
  1005. function searchMenu(){
  1006. var menu_name = $('#menu_name').val();
  1007. var url = '{:url("index/searchMenu")}';
  1008. $.post(url,{menu_name:menu_name},function (e){
  1009. if(e.code == 1){
  1010. var str = '';
  1011. $('#menu-list-box').html();
  1012. var list = e.data;
  1013. if(list.length > 0){
  1014. for (var i in list){
  1015. str +='<a href="'+list[i].url+'">';
  1016. str +='<div class="zi">'+list[i].title+'</div>';
  1017. str += '</a>';
  1018. }
  1019. }
  1020. $('#menu-list-box').html(str);
  1021. }
  1022. })
  1023. }
  1024. </script>
  1025. </body>
  1026. </html>