camera_list.blade.php 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795
  1. <link rel="stylesheet" href="/static/css/font-awesome.min.css">
  2. <link rel="stylesheet" href="/static/css/css.css">
  3. <link rel="stylesheet" href="/static/css/ace.min.css">
  4. <link href="/datetimepicker/css/bootstrap.min.css" rel="stylesheet">
  5. <link href="/datetimepicker/css/materialdesignicons.min.css" rel="stylesheet">
  6. <!--时间选择插件-->
  7. <link rel="stylesheet" href="/datetimepicker/js/bootstrap-datetimepicker/bootstrap-datetimepicker.min.css">
  8. <!--日期选择插件-->
  9. <link rel="stylesheet" href="/datetimepicker/js/bootstrap-datepicker/bootstrap-datepicker3.min.css">
  10. <script type="text/javascript" src="/datetimepicker/js/jquery.min.js"></script>
  11. <script type="text/javascript" src="/datetimepicker/js/perfect-scrollbar.min.js"></script>
  12. <script src="/datetimepicker/js/bootstrap-datetimepicker/moment.min.js"></script>
  13. <script src="/datetimepicker/js/bootstrap-datetimepicker/bootstrap-datetimepicker.min.js"></script>
  14. <script src="/datetimepicker/js/bootstrap-datetimepicker/locale/zh-cn.js"></script>
  15. <script type="text/javascript" src="/datetimepicker/js/main.min.js"></script>
  16. <style>
  17. body,html{
  18. background:white;
  19. overflow-y:hidden;
  20. }
  21. .pagination{
  22. margin-left:190px;
  23. padding-top:10px;
  24. }
  25. #mine_list{
  26. overflow: auto;
  27. overflow-y:scroll;
  28. overflow-x:scroll;
  29. text-overflow:ellipsis;
  30. white-space:nowrap;
  31. overflow-x: auto;
  32. display: -webkit-box;
  33. -webkit-overflow-scrolling: touch;
  34. }
  35. /*#mine_list::-webkit-scrollbar{*/
  36. /* display:none;*/
  37. /*}*/
  38. #camera_table{
  39. /*overflow:hidden;*/
  40. /*overflow-y:scroll;*/
  41. }
  42. #camera_table::-webkit-scrollbar{
  43. display:none;
  44. }
  45. #page {
  46. margin: 20px auto;
  47. color: #666;
  48. display: block;
  49. margin-left:184px;
  50. }
  51. #page li {
  52. display: inline-block;
  53. min-width: 30px;
  54. height: 28px;
  55. cursor: pointer;
  56. color: #666;
  57. font-size: 13px;
  58. line-height: 28px;
  59. background-color: #f9f9f9;
  60. border: 1px solid #dce0e0;
  61. text-align: center;
  62. margin: 0 4px;
  63. -webkit-appearance: none;
  64. -moz-appearance: none;
  65. appearance: none;
  66. }
  67. .xl-nextPage,
  68. .xl-prevPage {
  69. width: 60px;
  70. color: #009688;
  71. height: 28px;
  72. }
  73. #page li.xl-disabled {
  74. opacity: .5;
  75. cursor: no-drop;
  76. }
  77. #page li.xl-active {
  78. background-color: #009688;
  79. border-color: #009688;
  80. color: #FFF
  81. }
  82. .layui-layer-page .layui-layer-content {
  83. overflow: auto !important;
  84. }
  85. .table>caption+thead>tr:first-child>td, .table>caption+thead>tr:first-child>th, .table>colgroup+thead>tr:first-child>td, .table>colgroup+thead>tr:first-child>th, .table>thead:first-child>tr:first-child>td, .table>thead:first-child>tr:first-child>th {
  86. border-top: 0;
  87. border-bottom: #DDDDDD solid 1px;
  88. }
  89. .ui-jqgrid .ui-jqgrid-btable tbody tr.jqgrow td {
  90. overflow: hidden;
  91. white-space: pre;
  92. padding-right: 2px;
  93. height: 40px;
  94. line-height: 40px;
  95. }
  96. #camera_list td{
  97. max-width:70px;overflow:hidden;text-overflow:ellipsis; white-space:nowrap;
  98. }
  99. #camera_list td:nth-child(4){
  100. max-width:250px;overflow:hidden;text-overflow:ellipsis; white-space:nowrap;
  101. }
  102. #camera_list td:nth-child(7){
  103. max-width:250px;overflow:hidden;text-overflow:ellipsis; white-space:nowrap;
  104. }
  105. #camera_list input{
  106. border:none;
  107. color:#666666;
  108. background-color:transparent!important;
  109. width:100%;
  110. padding:0;
  111. overflow:hidden;text-overflow:ellipsis; white-space:nowrap;
  112. }
  113. </style>
  114. <div @if(request()->ajax()) style="max-height: 600px;overflow-y: auto;" @endif>
  115. @if(count($searchs) > 0)
  116. <div style="width:200px;height:615px;position:absolute;" id="mine_list">
  117. <div class="row">
  118. <div class="col-sm-12">
  119. <div class="widget-box" style="margin-top:0;">
  120. <div class="widget-header header-color-blue2" style="background:#009688;width:120%;cursor:pointer;" onclick="form_resert()">
  121. <h4 class="lighter smaller">区域列表</h4>
  122. </div>
  123. <div class="widget-body" style="border:0px solid #009688;">
  124. <div class="widget-main padding-8">
  125. <div id="tree1" class="tree tree-selectable">
  126. <div class="tree-folder" style="display:none;">
  127. <div class="tree-folder-header">
  128. <i class="icon-plus"></i>
  129. <div class="tree-folder-name"></div>
  130. </div>
  131. <div class="tree-folder-content"></div>
  132. <div class="tree-loader" style="display: none;"></div>
  133. </div>
  134. <div class="tree-item" style="display:none;">
  135. <i class="icon-remove"></i>
  136. <div class="tree-item-name"></div>
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. <div class="layui-row" style="margin-left:210px;">
  146. <form class="layui-form" method="get" action="/admin/{{ $path }}" style="margin-bottom: 10px;" id="search_form">
  147. @csrf
  148. @if(request()->has('id'))
  149. <input type="hidden" name="id" value="{{ request()->input('id') }}">
  150. @endif
  151. <input type="hidden" name="mine_id" id="mine_id" value="">
  152. <input type="hidden" name="pagesize" id="pagesize" value="{{$pagesize}}">
  153. @foreach($searchs as $var => $search)
  154. @if($search['type'] == 'input')
  155. <div class="layui-input-inline">
  156. <input class="layui-input" type="text"
  157. placeholder="{{ $search['label'] }}"
  158. name="{{ $var }}" id="{{ $var }}"
  159. value="{{ ${$var} ?? '' }}">
  160. </div>
  161. @endif
  162. @if($search['type'] == 'select')
  163. <div class="layui-input-inline">
  164. <select name="{{ $var }}" id="{{ $var }}">
  165. <option value="0"
  166. @if(!isset($search['assist'])) selected @endif>{{ $search['label'] }}
  167. </option>
  168. @if(count($search['assist']) > 0)
  169. @foreach($search['assist'] as $k => $col)
  170. <option value="{{ $k }}"
  171. @if(isset(${$var}) && ${$var} == $k) selected @endif>{{ $col }}
  172. </option>
  173. @endforeach
  174. @endif
  175. </select>
  176. </div>
  177. @endif
  178. @if($search['type'] == 'tree_select')
  179. <div class="layui-input-inline">
  180. <select name="{{ $var }}">
  181. <option value="0"
  182. @if(!isset($search['assist'])) selected @endif>{{ $search['label'] }}
  183. </option>
  184. @if(count($search['assist']) > 0)
  185. @include('admin::component.multi_select_option', ['selects' => $search['assist'], 'selectPid' => request($var) ?? ''])
  186. @endif
  187. </select>
  188. </div>
  189. @endif
  190. @if($search['type'] == 'date')
  191. <div class="layui-input-inline">
  192. <input class="layui-input date-{{ $var }}" type="text"
  193. placeholder="{{ $search['label'] ?? '日期' }}"
  194. name="{{ $var }}" autocomplete="off" readonly
  195. disableautocomplete value="{{ $search['assist'][0] ?? '' }}"
  196. >
  197. </div>
  198. <script>
  199. $('.date-{{ $var }}').datepicker({
  200. language: 'zh-CN',
  201. format: 'yyyy-mm-dd',
  202. date: '{{ $search['assist'][0] ?? null }}',
  203. });
  204. </script>
  205. @endif
  206. @if($search['type'] == 'date_time')
  207. <div class="layui-input-inline">
  208. <input class="layui-input star-{{ $var }}" type="text"
  209. placeholder="{{ $search['label'][0] ?? '起始日期' }}"
  210. name="star_{{ $var }}" autocomplete="off" readonly
  211. disableautocomplete value="{{ $search['assist'][0] ?? '' }}">
  212. </div> -
  213. <div class="layui-input-inline">
  214. <input class="layui-input end-{{ $var }}" type="text"
  215. placeholder="{{ $search['label'][1] ?? '结束日期' }}"
  216. name="end_{{ $var }}" autocomplete="off" readonly
  217. disableautocomplete value="{{ $search['assist'][1] ?? '' }}">
  218. </div>
  219. <script>
  220. $('.star-{{ $var }}').datepicker({
  221. language: 'zh-CN',
  222. format: 'yyyy-mm-dd',
  223. date: '{{ $search['assist'][0] ?? null }}',
  224. pick: function (rtime) {
  225. $('.end-{{ $var }}').datepicker('setStartDate', rtime.date);
  226. }
  227. });
  228. $('.end-{{ $var }}').datepicker({
  229. language: 'zh-CN',
  230. format: 'yyyy-mm-dd',
  231. date: '{{ $search['assist'][0] ?? null }}'
  232. });
  233. </script>
  234. @endif
  235. @endforeach
  236. <button class="layui-btn" type="button" onclick="form_submit();"><i class="layui-icon">&#xe615;</i></button>
  237. </form>
  238. </div>
  239. @endif
  240. @if(count($topActions) > 0 || (isset($topActionOthers) && count($topActionOthers)) > 0)
  241. <div class="weadmin-block layui-clear" style="margin-left:210px;">
  242. @if(in_array('goback', $topActions))
  243. @if(isset($topActions['href']))
  244. <a class="layui-btn layui-btn-primary layui-layer-close" style="position:relative;"
  245. href="{{ $topActions['href'] }}">返回
  246. </a>
  247. @else
  248. <button class="layui-btn layui-btn-primary layui-layer-close" style="position:relative;" type="button"
  249. onclick="javascript:history.go(-1);">返回
  250. </button>
  251. @endif
  252. @endif
  253. @if(checkBtn('/admin/'.$path.'/add', $permissionsList))
  254. @if(in_array('add', $topActions))
  255. <button class="layui-btn" onclick="addItem()"><i class="layui-icon"></i>添加</button>
  256. @endif
  257. @endif
  258. @if(checkBtn('/admin/'.$path.'/export', $permissionsList))
  259. @if(in_array('export', $topActions))
  260. <a href="/admin/{{ $path }}/export?{{ http_build_query(request()->except('_token')) }}"
  261. class="layui-btn">Excel导出当前页</a>
  262. <a href="/admin/{{ $path }}/export?type=all&{{ http_build_query(request()->except('_token')) }}"
  263. class="layui-btn">Excel导出全部</a>
  264. @endif
  265. @endif
  266. @if(checkBtn('/admin/'.$path.'/importTemplate', $permissionsList))
  267. @if(in_array('importTemplate', $topActions))
  268. <a href="/admin/{{ $path }}/importTemplate" class="layui-btn">下载导入模板</a>
  269. @endif
  270. @endif
  271. @if(checkBtn('/admin/'.$path.'/import', $permissionsList))
  272. @if(in_array('import', $topActions))
  273. <button type="button" class="layui-btn" id="import">
  274. <i class="layui-icon">&#xe67c;</i>Excel导入
  275. </button>
  276. @endif
  277. @endif
  278. <div class="lyear-layout-sidebar-scroll" style="display:none;"></div>
  279. <div style="float: right;">
  280. @if(isset($topActionOthers) && count($topActionOthers) > 0)
  281. @foreach($topActionOthers as $topActionOther)
  282. @if(checkBtn('/admin/'.$topActionOther['path'], $permissionsList))
  283. @if(isset($topActionOther['isShow']))
  284. @if(isset($topActionOther['isJump']))
  285. <button class="layui-btn {{ $topActionOther['class'] }}"
  286. onclick="jumpBtn(this)"
  287. data-jumptype="{{ $topActionOther['isJump'] }}"
  288. data-href="{{ $topActionOther['path'] }}">{{ $topActionOther['name'] }}
  289. </button>
  290. @else
  291. <a href="/admin/{{ $topActionOther['path'] }}"
  292. class="layui-btn {{ $topActionOther['class'] }}">{{ $topActionOther['name'] }}</a>
  293. @endif
  294. @endif
  295. @endif
  296. @endforeach
  297. @endif
  298. </div>
  299. </div>
  300. @endif
  301. <div style="margin-left:210px;max-height:454px;" id="camera_table">
  302. <table class="layui-table" style="">
  303. <thead>
  304. <tr>
  305. @foreach($columns as $column)
  306. <th style="font-weight:bold;">{{ $column['name'] }}</th>
  307. @endforeach
  308. @if((isset($displayActionOthers) && count($displayActionOthers) > 0) || count($actionBtns) > 0)
  309. <th style="width:15%;font-weight:bold;">操作</th>
  310. @endif
  311. </tr>
  312. </thead>
  313. <tbody id="camera_list">
  314. @if(count($items) > 0)
  315. @foreach($items as $item)
  316. <tr>
  317. @foreach($columns as $varName => $column)
  318. @if($varName == 'parent_title' || $varName == 'title' || $varName == 'camera_name' || $varName == 'camera_url')
  319. <td><input type="text" readonly value="{!! isset($column['value']) ? $column['value']($item->$varName, $item) : $item->$varName !!}" title="{!! isset($column['value']) ? $column['value']($item->$varName, $item) : $item->$varName !!}"></td>
  320. @else
  321. <td>{!! isset($column['value']) ? $column['value']($item->$varName, $item) : $item->$varName !!}</td>
  322. @endif
  323. @endforeach
  324. @if((isset($displayActionOthers) && count($displayActionOthers) > 0) || count($actionBtns) > 0)
  325. <td>
  326. @if(isset($displayActionOthers) && count($displayActionOthers) > 0)
  327. @foreach($displayActionOthers as $displayActionOther)
  328. @if(checkBtn('/admin/'.$displayActionOther['path'], $permissionsList))
  329. @if(isset($displayActionOther['isShow']) ? $displayActionOther['isShow']($item) : 1)
  330. @if(isset($displayActionOther['isJump']))
  331. <button
  332. class="layui-btn layui-btn-xs {{ $displayActionOther['class'] }} @if($displayActionOther['isJump'] == 'uploadimg') uploadimg @endif"
  333. onclick="jumpBtn(this)"
  334. data-title="{{ $displayActionOther['title'] ?? '' }}"
  335. data-jumptype="{{ $displayActionOther['isJump'] }}"
  336. data-href="{{ substr($displayActionOther['path'],-1) == '&' ? $displayActionOther['path']:$displayActionOther['path'].'?' }}{{ $primaryKey }}={{ $item->$primaryKey }}">{{ $displayActionOther['name'] }}
  337. </button>
  338. @else
  339. <a href="/admin/{{ substr($displayActionOther['path'],-1) == '&' ? $displayActionOther['path']:$displayActionOther['path'].'?' }}{{ $primaryKey }}={{ $item->$primaryKey }}"
  340. class="layui-btn layui-btn-xs {{ $displayActionOther['class'] }}"
  341. @if(isset($displayActionOther['fullWin'])) target="_blank" @endif>{{ $displayActionOther['name'] }}</a>
  342. @endif
  343. @endif
  344. @endif
  345. @endforeach
  346. @endif
  347. @if(!is_array($item) || !in_array($item[$displayActions['name']], $displayActions['value']))
  348. @if(checkBtn('/admin/'.$path.'/view', $permissionsList))
  349. @if(in_array('view', $actionBtns))
  350. {{-- <a href="/admin/{{ $path }}/view?{{ $primaryKey }}={{ $item->$primaryKey }}"--}}
  351. {{-- class="layui-btn layui-btn-normal layui-btn-xs" {{ $actionBtnsAttribute['view'] ?? '' }} >查看</a>--}}
  352. <button class="layui-btn layui-btn-xs layui-btn-normal viewItem"
  353. data-itemid="{{ $item->$primaryKey }}" {{ $actionBtnsAttribute['view'] ?? '' }}>
  354. 查看
  355. </button>
  356. @endif
  357. @endif
  358. @if(checkBtn('/admin/'.$path.'/edit', $permissionsList))
  359. @if(in_array('edit', $actionBtns))
  360. {{-- <a href="/admin/{{ $path }}/edit?{{ $primaryKey }}={{ $item->$primaryKey }}"--}}
  361. {{-- class="layui-btn layui-btn-xs" {{ $actionBtnsAttribute['edit'] ?? '' }}>编辑</a>--}}
  362. <button class="layui-btn layui-btn-xs editItem"
  363. data-itemid="{{ $item->$primaryKey }}" {{ $actionBtnsAttribute['view'] ?? '' }}>
  364. 编辑
  365. </button>
  366. @endif
  367. @endif
  368. @if(checkBtn('/admin/'.$path.'/del', $permissionsList))
  369. @if(in_array('del', $actionBtns))
  370. <button class="layui-btn layui-btn-xs layui-btn-danger delItem"
  371. data-itemid="{{ $item->$primaryKey }}" {{ $actionBtnsAttribute['del'] ?? '' }}>
  372. 删除
  373. </button>
  374. @endif
  375. @endif
  376. @if(checkBtn('/admin/'.$path.'/playback', $permissionsList))
  377. @if(in_array('playback', $actionBtns) && $item->playback == 0)
  378. <button class="layui-btn layui-btn-xs layui-btn-warm backItem"
  379. data-itemid="{{ $item->$primaryKey }}" {{ $actionBtnsAttribute['playback'] ?? '' }}>
  380. 回放
  381. </button>
  382. {{-- <a href="/admin/{{ $path }}/playback?{{ $primaryKey }}={{ $item->$primaryKey }}" class="layui-btn layui-btn-xs layui-btn-warm" {{ $actionBtnsAttribute['playback'] ?? '' }}>回放</a>--}}
  383. @endif
  384. @endif
  385. @endif
  386. </td>
  387. @endif
  388. </tr>
  389. @endforeach
  390. @else
  391. <tr>
  392. <td colspan="{{ count($columns) + 1 }}">暂无数据</td>
  393. </tr>
  394. @endif
  395. </tbody>
  396. </table>
  397. </div>
  398. </div>
  399. {{--@if(method_exists($items, 'links'))--}}
  400. {{-- {{ $items->appends(request()->except('_token'))->links() }}--}}
  401. {{--@endif--}}
  402. <div id="page"></div>
  403. <script>
  404. $(function () {
  405. $('.delItem').on('click', function () {
  406. var self = $(this);
  407. layer.confirm('你确定删除?', function () {
  408. layer.closeAll();
  409. $.post('/admin/{{ $path }}/del', {"{{ $primaryKey }}": self.data('itemid')}, function (res) {
  410. if (res.code === 0) {
  411. layer.msg('成功!', {anim: 0}, function () {
  412. form_submit();
  413. // location.reload();
  414. });
  415. } else {
  416. layer.msg(res.message);
  417. }
  418. });
  419. });
  420. })
  421. });
  422. function jumpBtn(el) {
  423. var self = $(el);
  424. var path = self.data('href');
  425. var type = self.data('jumptype');
  426. var jvalue = self.data('value') || '';
  427. var title = self.data('title') || '';
  428. var text = self.text();
  429. if (type === 'confirm') {
  430. layer.confirm('确定' + text + '?', function (index) {
  431. layer.close(index);
  432. $.get('/admin/' + path, function (res) {
  433. if (res.code === 0) {
  434. layer.msg('成功!', {anim: 0}, function () {
  435. location.reload();
  436. });
  437. } else {
  438. layer.msg('失败:' + res.message);
  439. }
  440. });
  441. });
  442. } else if (type === 'uploadimg') {
  443. } else if (type === 'prompt') {
  444. layer.prompt({
  445. value: jvalue,
  446. title: title,
  447. }, function (value, index, elem) {
  448. layer.close(index);
  449. $.get('/admin/' + path, {newValue: value}, function (res) {
  450. if (res.code === 0) {
  451. layer.msg('成功!', {anim: 0, time: 1000}, function () {
  452. self.text(value).data('value', value);
  453. location.reload();
  454. });
  455. } else {
  456. layer.msg('失败:' + res.message);
  457. }
  458. });
  459. });
  460. } else {
  461. $.get('/admin/' + path, function (res) {
  462. layer.open({
  463. type: 1,
  464. area: '700px',
  465. offset: '150px',
  466. title: false,
  467. content: res
  468. });
  469. });
  470. }
  471. }
  472. layui.use(['upload', 'form'], function () {
  473. var upload = layui.upload, form = layui.form;
  474. form.on('switch', function (data) {
  475. var self = $(data.elem);
  476. var path = self.data('href');
  477. $.get('/admin/' + path, function (res) {
  478. console.log(res);
  479. if (res.code === 0) {
  480. } else {
  481. layer.msg('失败:' + res.message);
  482. }
  483. });
  484. });
  485. //执行实例
  486. var uploadInst = upload.render({
  487. elem: '#import' //绑定元素
  488. , field: 'excel'
  489. , exts: 'xls|xlsx|csv'
  490. , url: '/admin/{{ $path }}/import' //上传接口
  491. , done: function (res) {
  492. if (res.code === 0) {
  493. layer.msg('导入成功,加载请稍等待!', {anim: 0}, function () {
  494. location.reload();
  495. });
  496. } else {
  497. layer.msg('导入失败,即将跳转到错误信息页。', {anim: 0}, function () {
  498. location.href = '/admin/errorPage';
  499. });
  500. }
  501. }
  502. , error: function (res) {
  503. layer.msg(res.message);
  504. }
  505. });
  506. //执行实例
  507. $('.uploadimg').each(function (index, elem) {
  508. upload.render({
  509. elem: elem //绑定元素
  510. , field: 'img'
  511. , url: '/admin/' + $(elem).data('href') //上传接口
  512. , done: function (res) {
  513. if (res.code === 0) {
  514. layer.msg('上传成功', {anim: 0}, function () {
  515. location.reload();
  516. });
  517. } else {
  518. layer.msg(res.message);
  519. }
  520. }
  521. , error: function (res) {
  522. layer.msg(res.message);
  523. }
  524. });
  525. });
  526. });
  527. </script>
  528. <script src="/static/js/jquery.min.js"></script>
  529. <script src="/static/js/bootstrap.min.js"></script>
  530. <script src="/static/js/fuelux.tree-sampledata.js"></script>
  531. <script src="/static/js/fuelux.tree.min.js"></script>
  532. <script src="/static/js/ace-elements.min.js"></script>
  533. <script src="/static/js/ace.min.js"></script>
  534. {{--<script src="https://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>--}}
  535. <script type="text/javascript" src="/static/js/xlPaging.js"></script>
  536. <script type="text/javascript">
  537. if(window.screen.height > 1000){
  538. document.getElementById('mine_list').style.maxHeight = '815px';
  539. document.getElementById('camera_table').style.maxHeight = '654px';
  540. }
  541. function input_title(i){
  542. i.title = i.value;
  543. }
  544. //区域列表
  545. var tree_data = <?php echo json_encode($tree_data);?>;
  546. var treeDataSource = new DataSourceTree({data: tree_data});
  547. jQuery(function($){
  548. $('#tree1').ace_tree({
  549. dataSource: treeDataSource ,
  550. multiSelect:true,
  551. loadingHTML:'<div class="tree-loading"><i class="icon-refresh icon-spin blue"></i></div>',
  552. 'open-icon' : 'icon-minus',
  553. 'close-icon' : 'icon-plus',
  554. 'selectable' : true,
  555. // 'selected-icon' : 'icon-ok',
  556. // 'unselected-icon' : 'icon-remove'
  557. });
  558. });
  559. var pagesize = parseInt(document.getElementById('pagesize').value);
  560. //分页
  561. $("#page").paging({
  562. nowPage: 1, // 当前页码
  563. pageNum: pagesize, // 总页码
  564. buttonNum: 7, //要展示的页码数量
  565. callback: function (num) { //回调函数
  566. var mine_id = '';
  567. var camera_name = '';
  568. var camera_source = 0;
  569. var camera_type = 0;
  570. $.get('/admin/camera/camerapage',{'page':num,'mine_id':mine_id,'camera_name':camera_name,'camera_source':camera_source,'camera_type':camera_type},function(str){
  571. document.getElementById('camera_list').innerHTML = '';
  572. if(str.data.length > 0){
  573. for(var i=0;i<str.data.length;i++){
  574. if(str.data[i].is_show == 1){
  575. if(str.data[i].playback == 0){
  576. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否" checked></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button><button class="layui-btn layui-btn-xs layui-btn-warm backItem" onclick="play_back('+str.data[i].id+');">回放</button></td></tr>');
  577. }else{
  578. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否" checked></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button></td></tr>');
  579. }
  580. }else{
  581. if(str.data[i].playback == 0){
  582. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否"></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button><button class="layui-btn layui-btn-xs layui-btn-warm backItem" onclick="play_back('+str.data[i].id+');">回放</button></td></tr>');
  583. }else{
  584. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否"></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button></td></tr>');
  585. }
  586. }
  587. }
  588. layui.form.render();
  589. }else{
  590. $('#camera_list').append('<tr><td colspan="8">暂无数据</td></tr>');
  591. }
  592. });
  593. }
  594. });
  595. //表单提交ajax
  596. function form_submit(){
  597. var mine_id = document.getElementById('mine_id').value;
  598. var camera_name = document.getElementById('camera_name').value;
  599. var camera_source = document.getElementById('camera_source').value;
  600. var camera_type = document.getElementById('camera_type').value;
  601. document.getElementById('camera_list').innerHTML = '';
  602. $.get('/admin/camera/update',{'mine_id':mine_id,'camera_source':camera_source,'camera_type':camera_type,'camera_name':camera_name},function(str){
  603. if(str.data.length > 0){
  604. for(var i=0;i<str.data.length;i++){
  605. if(str.data[i].is_show == 1){
  606. if(str.data[i].playback == 0){
  607. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否" checked></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button><button class="layui-btn layui-btn-xs layui-btn-warm backItem" onclick="play_back('+str.data[i].id+');">回放</button></td></tr>');
  608. }else{
  609. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否" checked></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button></td></tr>');
  610. }
  611. }else{
  612. if(str.data[i].playback == 0){
  613. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否"></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button><button class="layui-btn layui-btn-xs layui-btn-warm backItem" onclick="play_back('+str.data[i].id+');">回放</button></td></tr>');
  614. }else{
  615. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否"></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button></td></tr>');
  616. }
  617. }
  618. }
  619. layui.form.render();
  620. }else{
  621. $('#camera_list').append('<tr><td colspan="8">暂无数据</td></tr>');
  622. }
  623. //分页
  624. $("#page").paging({
  625. nowPage: 1, // 当前页码
  626. pageNum: str.last_page, // 总页码
  627. buttonNum: 7, //要展示的页码数量
  628. callback: function (num) { //回调函数
  629. $.get('/admin/camera/camerapage',{'page':num,'mine_id':mine_id,'camera_name':camera_name,'camera_source':camera_source,'camera_type':camera_type},function(str){
  630. document.getElementById('camera_list').innerHTML = '';
  631. if(str.data.length > 0){
  632. for(var i=0;i<str.data.length;i++){
  633. if(str.data[i].is_show == 1){
  634. if(str.data[i].playback == 0){
  635. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否" checked></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button><button class="layui-btn layui-btn-xs layui-btn-warm backItem" onclick="play_back('+str.data[i].id+');">回放</button></td></tr>');
  636. }else{
  637. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否" checked></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button></td></tr>');
  638. }
  639. }else{
  640. if(str.data[i].playback == 0){
  641. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否"></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button><button class="layui-btn layui-btn-xs layui-btn-warm backItem" onclick="play_back('+str.data[i].id+');">回放</button></td></tr>');
  642. }else{
  643. $('#camera_list').append('<tr><td><input type="text" readonly value="'+str.data[i].parent_title+'" title="'+str.data[i].parent_title+'"></td><td><input type="text" readonly value="'+str.data[i].title+'" title="'+str.data[i].title+'"></td><td><input type="text" readonly value="'+str.data[i].camera_name+'" title="'+str.data[i].camera_name+'"></td><td><input type="text" readonly value="'+str.data[i].camera_url+'" title="'+str.data[i].camera_url+'"></td><td><span class="layui-form"><input type="checkbox" name="is_show" data-href="camera/list/edit?type=show&id='+str.data[i].id+'" lay-skin="switch" lay-text="是|否"></span></td><td>'+str.data[i].sort+'</td><td><button class="layui-btn layui-btn-xs layui-btn-normal viewItem" onclick="check_camera('+str.data[i].id+');">查看</button><button class="layui-btn layui-btn-xs editItem" onclick="edit_camera('+str.data[i].id+');">编辑</button><button class="layui-btn layui-btn-xs layui-btn-danger delItem" onclick="del_camera('+str.data[i].id+');">删除</button></td></tr>');
  644. }
  645. }
  646. }
  647. layui.form.render();
  648. }else{
  649. $('#camera_list').append('<tr><td colspan="8">暂无数据</td></tr>');
  650. }
  651. });
  652. }
  653. });
  654. });
  655. }
  656. //重置表单
  657. function form_resert(){
  658. document.getElementById('mine_id').value = null;
  659. document.getElementById('camera_name').value = null;
  660. document.getElementById('camera_source').value = 0;
  661. document.getElementById('camera_type').value = 0;
  662. search_form.submit();
  663. }
  664. //删除摄像头
  665. function del_camera(id){
  666. layer.confirm('你确定删除?', function () {
  667. layer.closeAll();
  668. $.post('/admin/camera/list/del', {"id": id}, function (res) {
  669. if (res.code === 0) {
  670. layer.msg('成功!', {anim: 0}, function () {
  671. form_submit();
  672. // location.reload();
  673. });
  674. } else {
  675. layer.msg(res.message);
  676. }
  677. });
  678. });
  679. }
  680. //编辑摄像头
  681. function edit_camera(id){
  682. $.get('/admin/{{ $path }}/edit', {id: id}, function (res) {
  683. layer.open({
  684. type: 1,
  685. area: ['1000px','600px'],
  686. title: false,
  687. content: res
  688. });
  689. });
  690. }
  691. //查看摄像头
  692. function check_camera(id){
  693. $.get('/admin/{{ $path }}/view', {id: id}, function (res) {
  694. layer.open({
  695. type: 1,
  696. area: ['1000px','600px'],
  697. title: false,
  698. content: res
  699. });
  700. });
  701. }
  702. //回放
  703. function play_back(id){
  704. $.get('/admin/{{ $path }}/playback', {id: id}, function (res) {
  705. layer.open({
  706. type: 1,
  707. area: ['1000px','600px'],
  708. title: false,
  709. content: res
  710. });
  711. });
  712. }
  713. //添加弹窗
  714. function addItem() {
  715. var mine_id = document.getElementById('mine_id').value;
  716. $.get('/admin/{{ $path }}/add?mine_id='+mine_id, function (res) {
  717. layer.open({
  718. type: 1,
  719. area: ['1000px','600px'],
  720. title: false,
  721. content: res
  722. })
  723. });
  724. }
  725. //查看弹窗
  726. $(function () {
  727. $('.viewItem').on('click', function () {
  728. var self = $(this);
  729. $.get('/admin/{{ $path }}/view', {id: self.data('itemid')}, function (res) {
  730. layer.open({
  731. type: 1,
  732. area: ['1000px','600px'],
  733. title: false,
  734. content: res
  735. });
  736. });
  737. })
  738. });
  739. //编辑弹窗
  740. $(function () {
  741. $('.editItem').on('click', function () {
  742. var self = $(this);
  743. $.get('/admin/{{ $path }}/edit', {id: self.data('itemid')}, function (res) {
  744. layer.open({
  745. type: 1,
  746. area: ['1000px','600px'],
  747. title: false,
  748. content: res
  749. });
  750. });
  751. })
  752. });
  753. //回放弹窗
  754. $(function () {
  755. $('.backItem').on('click', function () {
  756. var self = $(this);
  757. $.get('/admin/{{ $path }}/playback', {id: self.data('itemid')}, function (res) {
  758. layer.open({
  759. type: 1,
  760. area: ['1000px','600px'],
  761. title: false,
  762. content: res
  763. });
  764. });
  765. })
  766. });
  767. </script>