index.html 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110
  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',['curmenu'=>$fixedModule['id']])} {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="{if $fixedModuleAuth1 ==1} {:url('index/indexsub',['curmenu'=>$fixedModule1['id']])} {else /}javascript:void(0){/if}">
  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="{if $fixedModuleAuth2 ==1} {:url('index/indexsub',['curmenu'=>$fixedModule2['id']])} {else /}javascript:void(0){/if}">
  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="{if $fixedModuleAuth3 ==1} {:url('index/indexsub',['curmenu'=>$fixedModule3['id']])} {else /}javascript:void(0){/if}">
  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="{if $fixedModuleAuth4 ==1} {:url('index/indexsub',['curmenu'=>$fixedModule4['id']])} {else /}javascript:void(0){/if}">
  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="{:url('indexsub1',['curmenu'=>500,'menuId'=>$v['menu_id'],'ct'=>1])}">
  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. <a href="{:url('index/indexsub1',['curmenu'=>500,'menuId'=>14,'ct'=>1])}">
  420. <img src="/admin/img/xiangyou1.png" alt="" class="pull-right" style="cursor: pointer">
  421. </a>
  422. </div>
  423. {notempty name="notice"}
  424. {volist name="notice" id="v"}
  425. <div class="notice-info-box">
  426. <div class="notice-info-header-box">
  427. <div class="yuandian"></div>
  428. <div class="name">{$v.title}</div>
  429. <text class="pull-right">{$v.create_time}</text>
  430. </div>
  431. <div class="notice-content">
  432. {$v.content}
  433. </div>
  434. <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>
  435. </div>
  436. {/volist}
  437. {else /}
  438. <div style="width: 100%;text-align: center;margin-top: 50px;font-size: 16px">暂无通知</div>
  439. {/notempty}
  440. </div>
  441. <div class="tj-box">
  442. <div class="tj-header-box">
  443. 统计报表
  444. {if $fixedModuleAuth3 ==1}
  445. <a href="{:url('index/indexsub',['curmenu'=>$fixedModule3['id']])}">
  446. <img src="/admin/img/xiangyou1.png" alt="" class="pull-right">
  447. </a>
  448. {/if}
  449. </div>
  450. <div class="tj-body-box">
  451. <div class="col-xs-6">
  452. <a href="{:url('index/indexsub',['curmenu'=>163,'menuId'=>163,'ct'=>1])}">
  453. <div class="tj-info">
  454. 报修报表
  455. </div>
  456. </a>
  457. </div>
  458. <div class="col-xs-6">
  459. <a href="{:url('index/indexsub',['curmenu'=>163,'menuId'=>163,'ct'=>1])}">
  460. <div class="tj-info1">
  461. 运送报表
  462. </div>
  463. </a>
  464. </div>
  465. <div class="col-xs-6">
  466. <a href="{:url('index/indexsub',['curmenu'=>163,'menuId'=>163,'ct'=>1])}">
  467. <div class="tj-info1">
  468. 巡更报表
  469. </div>
  470. </a>
  471. </div>
  472. <div class="col-xs-12" style="padding: 0 5px!important;">
  473. <a href="">
  474. <div class="tj-info2">
  475. 视频监控
  476. </div>
  477. </a>
  478. </div>
  479. </div>
  480. </div>
  481. </div>
  482. </div>
  483. </div>
  484. </div>
  485. </div>
  486. <!--<div class="main-box main-box-h2" id="main-iframe">-->
  487. <div>
  488. <!-- <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="{:url('Index/def')}" frameborder="0" data-id="index_v1.html" seamless></iframe>-->
  489. <!--</div>-->
  490. <script src="/static/hplus/js/bootstrap.min.js?v=3.3.7"></script>
  491. <script src="/static/layer3.2.0/layer.js"></script>
  492. <script src="/static/hplus/js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
  493. <script src="/static/hplus/js/plugins/metisMenu/jquery.metisMenu.js"></script>
  494. <script src="/static/hplus/js/plugins/contextMenu/jquery.contextMenu.min.js"></script>
  495. <script src="/static/hplus/js/hplus.js?v=4.1.0"></script>
  496. <script type="text/javascript" src="/static/hplus/js/contabs.js"></script>
  497. <!-- 第三方插件 -->
  498. <script src="/static/hplus/js/plugins/pace/pace.min.js"></script>
  499. <script src="/static/elementui2.15.5/vue-2.6.14.js"></script>
  500. <script src="/static/elementui2.15.5/index.js"></script>
  501. <script src="/admin/js/common.js"></script>
  502. <script src="/static/swiper4.5/js/swiper.min.js"></script>
  503. {if condition="is_login() and !is_admin(is_login()) and btnAuth(is_login(),'PhoneMonitor/show')"}
  504. <textarea style="display: none;" id="StatusArea" rows="13" name="S1" class="form-control" readonly></textarea>
  505. <script language="javascript" type="text/javascript" src="/static/phonejs/qnviccub.js"></script>
  506. <script language="javascript" type="text/javascript" src="/static/phonejs/qnvfunc.js"></script>
  507. <script language="javascript" type="text/javascript" src="/static/phonejs/json2.js"></script>
  508. <script language="javascript" type="text/javascript" src="/static/phonejs/deviceapi.js"></script>
  509. <script>
  510. var fp;
  511. $(document).ready(function(){
  512. TV_Initialize();
  513. getEvent(T_GetEvent);
  514. });
  515. $(window).unload(function(){
  516. TV_Disable();
  517. });
  518. setInterval(function () {
  519. OpenDevice(ODT_LBRIDGE,function(nResult){AppendStatus('打开设备.');});
  520. },30000);
  521. //离开页面
  522. $(window).bind('beforeunload',function(){
  523. TV_Disable();
  524. });
  525. function openPhone() {
  526. // let gphone = "13838379499";
  527. // let fp = "d:\\wyluyin\\" + getCurrentDate(3) + "_" + gphone + ".wav";
  528. // check_phone(gphone,fp);
  529. }
  530. function playBtn() {
  531. // let path = "d:\\wyluyin\\20220608191204_13027625915.wav";
  532. // console.log('path:',path);
  533. PlayFile(1,QNV_PLAY_FILE_START,0,PLAYFILE_MASK_REPEAT,path,function(id){
  534. console.log('play:',id);
  535. });
  536. }
  537. function check_phone(gphone,fp) {
  538. fp = base64encode(fp);
  539. var url = '{:url("orders/phone")}?phone=' + gphone + '&fp='+fp;
  540. var title = '添加订单';
  541. layer.open({
  542. type: 2,
  543. shade: 0.8,
  544. title: title,
  545. area: ['800px', '400px'],
  546. fix: false, //不固定
  547. maxmin: true,
  548. content: url,
  549. skin: 'layer-ext-moon',
  550. success: function(layero, index) {
  551. layer.iframeAuto(index);
  552. },
  553. // btn: ['取消']
  554. });
  555. return false;
  556. }
  557. function AppendStatus(szStatus)
  558. {
  559. // console.log(szStatus);
  560. // $("#StatusArea").append(szStatus+"\r\n" );
  561. // var scrollTop = $("#StatusArea")[0].scrollHeight;
  562. // $("#StatusArea").scrollTop(scrollTop);
  563. }
  564. function AppendStatusEx(uID,szStatus)
  565. {
  566. uID=uID+1;
  567. AppendStatus("通道"+uID+":"+szStatus);
  568. }
  569. function T_GetEvent(uID,uEventType,uHandle,uResult,szdata)
  570. {
  571. // console.log(uID,uEventType,uHandle,uResult,szdata);
  572. //var vValueArray=qnviccub.QNV_Event(0,2,0,"","",1024);
  573. if(uEventType == -1)
  574. return;
  575. var vValue=" type="+uEventType+" Handle="+uHandle+" Result="+uResult+" szdata="+szdata;
  576. switch(uEventType)
  577. {
  578. case BriEvent_PhoneHook:// 本地电话机摘机事件
  579. AppendStatusEx(uID,"本地电话机摘机"+vValue);
  580. TV_StartRecordFile(uID,fp);
  581. break;
  582. case BriEvent_PhoneDial:// 只有在本地话机摘机,没有调用软摘机时,检测到DTMF拨号
  583. AppendStatusEx(uID,"本地话机拨号"+vValue);
  584. break;
  585. case BriEvent_PhoneHang:// 本地电话机挂机事件
  586. TV_HangUpCtrl(uID);
  587. AppendStatusEx(uID,"本地电话机挂机"+vValue);
  588. TV_StopRecordFile(uID);
  589. break;
  590. case BriEvent_CallIn:// 外线通道来电响铃事件
  591. AppendStatusEx(uID,"外线通道来电响铃事件"+vValue);
  592. break;
  593. case BriEvent_GetCallID://得到来电号码
  594. AppendStatusEx(uID,"得到来电号码"+vValue);
  595. fp = "d:\\wyluyin\\" + getCurrentDate(3) + "_" + szdata + ".wav";
  596. check_phone(szdata,fp);
  597. break;
  598. case BriEvent_StopCallIn:// 对方停止呼叫(产生一个未接电话)
  599. AppendStatusEx(uID,"对方停止呼叫(产生一个未接电话)"+vValue);
  600. break;
  601. case BriEvent_DialEnd:// 调用开始拨号后,全部号码拨号结束
  602. AppendStatusEx(uID,"调用开始拨号后,全部号码拨号结束"+vValue);
  603. break;
  604. case BriEvent_PlayFileEnd:// 播放文件结束事件
  605. AppendStatusEx(uID,"播放文件结束事件"+vValue);
  606. break;
  607. case BriEvent_PlayMultiFileEnd:// 多文件连播结束事件
  608. AppendStatusEx(uID,"多文件连播结束事件"+vValue);
  609. break;
  610. case BriEvent_PlayStringEnd://播放字符结束
  611. AppendStatusEx(uID,"播放字符结束"+vValue);
  612. break;
  613. case BriEvent_RepeatPlayFile:// 播放文件结束准备重复播放
  614. AppendStatusEx(uID,"播放文件结束准备重复播放"+vValue);
  615. break;
  616. case BriEvent_SendCallIDEnd:// 给本地设备发送震铃信号时发送号码结束
  617. AppendStatusEx(uID,"给本地设备发送震铃信号时发送号码结束"+vValue);
  618. break;
  619. case BriEvent_RingTimeOut://给本地设备发送震铃信号时超时
  620. AppendStatusEx(uID,"给本地设备发送震铃信号时超时"+vValue);
  621. break;
  622. case BriEvent_Ringing://正在内线震铃
  623. AppendStatusEx(uID,"正在内线震铃"+vValue);
  624. break;
  625. case BriEvent_Silence:// 通话时检测到一定时间的静音.默认为5秒
  626. AppendStatusEx(uID,"通话时检测到一定时间的静音"+vValue);
  627. break;
  628. case BriEvent_GetDTMFChar:// 线路接通时收到DTMF码事件
  629. AppendStatusEx(uID,"线路接通时收到DTMF码事件"+vValue);
  630. break;
  631. case BriEvent_RemoteHook:// 拨号后,被叫方摘机事件
  632. AppendStatusEx(uID,"拨号后,被叫方摘机事件"+vValue);
  633. break;
  634. case BriEvent_RemoteHang://对方挂机事件
  635. TV_HangUpCtrl(uID);
  636. AppendStatusEx(uID,"对方挂机事件"+vValue);
  637. TV_StopRecordFile(uID);
  638. break;
  639. case BriEvent_Busy:// 检测到忙音事件,表示PSTN线路已经被断开
  640. AppendStatusEx(uID,"检测到忙音事件,表示PSTN线路已经被断开"+vValue);
  641. break;
  642. case BriEvent_DialTone:// 本地摘机后检测到拨号音
  643. AppendStatusEx(uID,"本地摘机后检测到拨号音"+vValue);
  644. break;
  645. case BriEvent_RingBack:// 电话机拨号结束呼出事件。
  646. AppendStatusEx(uID,"电话机拨号结束呼出事件"+vValue);
  647. break;
  648. case BriEvent_MicIn:// MIC插入状态
  649. AppendStatusEx(uID,"MIC插入状态"+vValue);
  650. break;
  651. case BriEvent_MicOut:// MIC拔出状态
  652. AppendStatusEx(uID,"MIC拔出状态"+vValue);
  653. break;
  654. case BriEvent_FlashEnd:// 拍插簧(Flash)完成事件,拍插簧完成后可以检测拨号音后进行二次拨号
  655. AppendStatusEx(uID,"拍插簧(Flash)完成事件,拍插簧完成后可以检测拨号音后进行二次拨号"+vValue);
  656. break;
  657. case BriEvent_RefuseEnd:// 拒接完成
  658. AppendStatusEx(uID,"拒接完成"+vValue);
  659. break;
  660. case BriEvent_SpeechResult:// 语音识别完成
  661. AppendStatusEx(uID,"语音识别完成"+vValue);
  662. break;
  663. case BriEvent_FaxRecvFinished:// 接收传真完成
  664. AppendStatusEx(uID,"接收传真完成"+vValue);
  665. break;
  666. case BriEvent_FaxRecvFailed:// 接收传真失败
  667. AppendStatusEx(uID,"接收传真失败"+vValue);
  668. break;
  669. case BriEvent_FaxSendFinished:// 发送传真完成
  670. AppendStatusEx(uID,"发送传真完成"+vValue);
  671. break;
  672. case BriEvent_FaxSendFailed:// 发送传真失败
  673. AppendStatusEx(uID,"发送传真失败"+vValue);
  674. break;
  675. case BriEvent_OpenSoundFailed:// 启动声卡失败
  676. AppendStatusEx(uID,"启动声卡失败"+vValue);
  677. break;
  678. case BriEvent_UploadSuccess://远程上传成功
  679. AppendStatusEx(uID,"远程上传成功"+vValue);
  680. break;
  681. case BriEvent_UploadFailed://远程上传失败
  682. AppendStatusEx(uID,"远程上传失败"+vValue);
  683. break;
  684. case BriEvent_EnableHook:// 应用层调用软摘机/软挂机成功事件
  685. AppendStatusEx(uID,"应用层调用软摘机/软挂机成功事件"+vValue);
  686. break;
  687. case BriEvent_EnablePlay:// 喇叭被打开或者/关闭
  688. AppendStatusEx(uID,"喇叭被打开或者/关闭"+vValue);
  689. break;
  690. case BriEvent_EnableMic:// MIC被打开或者关闭
  691. AppendStatusEx(uID,"MIC被打开或者关闭"+vValue);
  692. break;
  693. case BriEvent_EnableSpk:// 耳机被打开或者关闭
  694. AppendStatusEx(uID,"耳机被打开或者关闭"+vValue);
  695. break;
  696. case BriEvent_EnableRing:// 电话机跟电话线(PSTN)断开/接通
  697. AppendStatusEx(uID,"电话机跟电话线(PSTN)断开/接通"+vValue);
  698. break;
  699. case BriEvent_DoRecSource:// 修改录音源
  700. AppendStatusEx(uID,"修改录音源"+vValue);
  701. break;
  702. case BriEvent_DoStartDial:// 开始软件拨号
  703. AppendStatusEx(uID,"开始软件拨号"+vValue);
  704. break;
  705. case BriEvent_RecvedFSK:// 接收到FSK信号,包括通话中FSK/来电号码的FSK
  706. AppendStatusEx(uID,"接收到FSK信号,包括通话中FSK/来电号码的FSK"+vValue);
  707. break;
  708. case BriEvent_PlugOut:
  709. AppendStatusEx(uID,"设备移除");
  710. // alert('设备移除');
  711. break;
  712. case BriEvent_DevErr://设备错误
  713. AppendStatusEx(uID,"设备错误"+ decodeURIComponent(vValue) );
  714. // alert('设备错误');
  715. break;
  716. default:
  717. if(uEventType < BriEvent_EndID)
  718. AppendStatusEx(uID,"忽略其它事件发生:ID=" + uEventType+ vValue);
  719. break;
  720. }
  721. }
  722. </script>
  723. {/if}
  724. {if condition="$isDispatch eq 1"}
  725. <audio id="dingdantixing" src="/static/tixing.mp3" controls="controls" style="display: none;"></audio>
  726. <script>
  727. var time1;
  728. var audio = document.getElementById('dingdantixing');
  729. $(function () {
  730. var interval = function () {
  731. var url = "{:url('Index/order')}";
  732. $.get(url,function (data) {
  733. if(data.code == 1){
  734. var audio = document.getElementById('dingdantixing');
  735. audio.play();
  736. if(data.data > 0){
  737. document.getElementById('orderNums').innerHTML ='('+data.data +')';
  738. }
  739. // layer.msg('您有新的订单请及时处理',{time:3000});
  740. }
  741. });
  742. }
  743. time1 = setInterval(interval,30000);
  744. $("#offNoticeBtn").click(function () {
  745. var off = parseInt($("#offNoticeVal").val());
  746. if(off==0){
  747. clearInterval(time1);
  748. $("#offNoticeVal").val(1)
  749. $("#offNoticeBtn").html('开启通知');
  750. audio.pause();
  751. }else {
  752. $("#offNoticeVal").val(0)
  753. time1 = setInterval(interval,30000);
  754. $("#offNoticeBtn").html('关闭通知');
  755. }
  756. })
  757. })
  758. </script>
  759. {/if}
  760. <script>
  761. var menus = {:json_encode($menus)};
  762. $(function () {
  763. // $('#side-menu').slimScroll({
  764. // height: ($('.sidebar-box').height() + 40) + 'px'
  765. // });
  766. // $('#side-menu2').slimScroll({
  767. // height: $('.sidebar-box').height() + 'px'
  768. // });
  769. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  770. $('#main-iframe').addClass('main-box-h2');
  771. $('#menu-1').addClass('active');
  772. // $('.sidenav .side-list a').hover(
  773. // function () {
  774. // $(this).addClass("hover");
  775. // let id = $(this).attr('data-id');
  776. // initSubMenu(id);
  777. // },
  778. // function () {
  779. // $(this).removeClass("hover");
  780. // }
  781. // );
  782. $(document).on('click','#side-menu .Jiframe',function () {
  783. let id = $(this).attr('data-id');
  784. let url = $(this).attr('data-url');
  785. $('#main-iframe').removeClass('main-box-padding-left');
  786. $('#main-iframe').removeClass('main-box-padding-left1');
  787. $('#main-iframe').removeClass('main-box-padding-left3');
  788. // var width2 = localStorage.getItem("width1");
  789. // console.log(width2,'xxxxxxxxxxxxxxxx')
  790. // if(width2 == 120){
  791. // $('#main-iframe').css('padding-left','120px');
  792. // }
  793. // if(width2 == 280){
  794. // $('#main-iframe').css('padding-left','280px');
  795. // }
  796. if(url){
  797. if(id==485 || id==467 || id==488 || id==489){
  798. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  799. $('#main-iframe').addClass('main-box-h2');
  800. window.open(url);
  801. }else {
  802. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  803. $('#main-iframe').addClass('main-box-h2');
  804. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  805. $('#main-iframe').html(str);
  806. }
  807. }else{
  808. $('#sidebar-box-h2').addClass('sidebar-box-h2');
  809. $('#main-iframe').removeClass('main-box-h2');
  810. }
  811. $(this).addClass("hover");
  812. initSubMenu(id);
  813. $('#side-menu .Jiframe').removeClass('active');
  814. $(this).addClass('active');
  815. });
  816. $(document).on('click','#side-menu2 .Jiframe',function () {
  817. $('#main-iframe').removeClass('main-box-padding-left');
  818. $('#main-iframe').removeClass('main-box-padding-left1');
  819. $('#main-iframe').removeClass('main-box-padding-left3');
  820. let pid = $(this).attr('data-pid');
  821. let url = $(this).attr('data-url');
  822. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  823. $('#main-iframe').html(str);
  824. $('#side-menu2 .Jiframe').removeClass('active');
  825. $(this).addClass('active');
  826. // 寻找父级元素
  827. $('#side-menu .Jiframe').removeClass('active');
  828. $('#menu'+pid).addClass('active');
  829. });
  830. $(document).on('click','.JmenuItem',function () {
  831. $('#main-iframe').removeClass('main-box-padding-left');
  832. $('#main-iframe').removeClass('main-box-padding-left1');
  833. $('#main-iframe').removeClass('main-box-padding-left3');
  834. let url = $(this).attr('href');
  835. let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  836. $('#main-iframe').html(str);
  837. return false;
  838. });
  839. });
  840. function initSubMenu(id) {
  841. $('#main-iframe').removeClass('main-box-padding-left');
  842. $('#main-iframe').removeClass('main-box-padding-left1');
  843. $('#main-iframe').removeClass('main-box-padding-left3');
  844. let submenus = [];
  845. for (let o in menus){
  846. if(id == menus[o].id){
  847. submenus = menus[o].child;
  848. break;
  849. }
  850. }
  851. if(submenus.length > 0){
  852. $('#sidebar-box-h2').addClass('sidebar-box-h2');
  853. $('#main-iframe').removeClass('main-box-h2');
  854. }else{
  855. $('#sidebar-box-h2').removeClass('sidebar-box-h2');
  856. $('#main-iframe').addClass('main-box-h2');
  857. }
  858. let str = '';
  859. for (let o in submenus){
  860. if(submenus[o].child.length > 0){
  861. // <div class="side-group">
  862. // <div class="side-group-label">系统设置</div>
  863. // <div class="side-list">
  864. // <a class="J_iframe" href="layouts.html"><span>项目管理</span></a>
  865. // </div>
  866. // </div>
  867. str += '<div class="side-group">';
  868. str += '<div class="side-group-label">'+submenus[o].title+'</div>';
  869. let children = submenus[o].child;
  870. for(let n in children){
  871. str += '<div class="side-list">';
  872. 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>';
  873. str += '</div>';
  874. }
  875. str += '</div>';
  876. }else{
  877. // <div class="side-list">
  878. // <a class="J_iframe active" href="layouts.html"><span>权限管理</span></a>
  879. // </div>
  880. str += '<div class="side-list">';
  881. 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>';
  882. str += '</div>';
  883. }
  884. }
  885. $('#side-menu2').html(str);
  886. }
  887. function add_highlight(url){
  888. console.log('url',url);
  889. $('.side-list a').removeClass('active');
  890. for (let o in menus){
  891. if(menus[o].url && menus[o].url == url){
  892. $('#menu'+menus[o].id).addClass('active');
  893. break;
  894. }
  895. let child1 = menus[o].child;
  896. let flag = false;
  897. let id = 0;
  898. if(child1.length > 0){
  899. for (let m in child1){
  900. if(child1[m].url && child1[m].url == url){
  901. flag = true;
  902. id = child1[m].id;
  903. break;
  904. }
  905. let child2 = child1[m].child;
  906. for (let n in child2){
  907. if(child2[n].url && child2[n].url == url){
  908. flag = true;
  909. id = child2[n].id;
  910. break;
  911. }
  912. }
  913. if(flag){
  914. break;
  915. }
  916. }
  917. }
  918. console.log('flag11',flag,id);
  919. if(flag){
  920. initSubMenu(menus[o].id);
  921. $('#menu'+menus[o].id).addClass('active');
  922. $('#menu'+id).addClass('active');
  923. break;
  924. }
  925. }
  926. }
  927. // $(document).on('click','#goOrder',function () {
  928. // let url = $(this).attr('href');
  929. // let str = '<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="'+url+'" frameborder="0" data-id="'+url+'" seamless></iframe>';
  930. // $('#main-iframe').html(str);
  931. // return false;
  932. // });
  933. function layer_open_dispatch(_self,flag){
  934. var url = $(_self).attr('url');
  935. var title = $(_self).attr('data-title');
  936. var width = $(_self).attr('data-width')?$(_self).attr('data-width'):'90%';
  937. var height = $(_self).attr('data-height')?$(_self).attr('data-height'):'90%';
  938. layer.open({
  939. type: 2,
  940. title: title,
  941. shadeClose: true,
  942. shade: 0.3,
  943. maxmin: true,
  944. area: [width, height],
  945. content: url,
  946. end: function () {
  947. update_order_count();
  948. }
  949. });
  950. }
  951. function update_order_count() {
  952. let url = "{:url('Index/ocount')}";
  953. $.post(url,function (res) {
  954. if(res.code == 1){
  955. let count = res.data.count;
  956. if(count > 0){
  957. $('#orderNums').html('('+count+')');
  958. }else{
  959. $('#orderNums').html('');
  960. }
  961. }
  962. });
  963. }
  964. function toggleSide(_self) {
  965. var width = $('.menuall').width();
  966. if(Number(width) > 1){
  967. var width1 = Number(width);
  968. localStorage.setItem("width1",width1);
  969. }
  970. if ( $(_self).hasClass('switch-open') ) {
  971. $(_self).removeClass('switch-open');
  972. $(_self).find('.switch-img-open').show();
  973. $(_self).find('.switch-img-close').hide();
  974. $('.menuall').css('width','0');
  975. $('.menusub-box').css('display','none');
  976. $('#main-iframe').addClass('main-box-padding-left3');
  977. }else{
  978. $(_self).addClass('switch-open');
  979. $(_self).find('.switch-img-open').hide();
  980. $(_self).find('.switch-img-close').show();
  981. $('.menuall').css('width','');
  982. $('.menusub-box').css('display','block');
  983. $('#main-iframe').removeClass('main-box-padding-left3');
  984. var width2 = localStorage.getItem("width1");
  985. if(width2 == 120){
  986. // $('#main-iframe').css('padding-left','120px');
  987. $('#main-iframe').addClass('main-box-padding-left');
  988. }
  989. if(width2 == 280){
  990. // $('#main-iframe').css('padding-left','280px');
  991. $('#main-iframe').addClass('main-box-padding-left1');
  992. }
  993. localStorage.removeItem("width1");
  994. }
  995. }
  996. new Swiper ('#swiper-qrcode', {
  997. loop: false, // 循环模式选项
  998. observer:true,//修改swiper自己或子元素时,自动初始化swiper
  999. observeParents:true,//修改swiper的父元素时,自动初始化swiper
  1000. autoplay: {
  1001. delay: 6000,
  1002. stopOnLastSlide: false,
  1003. disableOnInteraction: false,
  1004. },
  1005. // 如果需要分页器
  1006. pagination: {
  1007. el: '#box-swiper-pagination1',
  1008. clickable: true,
  1009. },
  1010. });
  1011. function searchMenu(){
  1012. var menu_name = $('#menu_name').val();
  1013. var url = '{:url("index/searchMenu")}';
  1014. $.post(url,{menu_name:menu_name},function (e){
  1015. if(e.code == 1){
  1016. var str = '';
  1017. $('#menu-list-box').html();
  1018. var list = e.data;
  1019. if(list.length > 0){
  1020. for (var i in list){
  1021. str +='<a href="'+list[i].url+'">';
  1022. str +='<div class="zi">'+list[i].title+'</div>';
  1023. str += '</a>';
  1024. }
  1025. }
  1026. $('#menu-list-box').html(str);
  1027. }
  1028. })
  1029. }
  1030. </script>
  1031. </body>
  1032. </html>