camera_list.blade.php 44 KB

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