camera_add.blade.php 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596
  1. <style>
  2. .layui-upload-list {
  3. width: auto;
  4. height: auto;
  5. margin-bottom: 0;
  6. }
  7. .layui-elem-quote {
  8. padding-bottom: 5px;
  9. }
  10. .layui-upload-img {
  11. /*width: 92px;*/
  12. height: 92px;
  13. }
  14. hr {
  15. margin: 15px 0;
  16. }
  17. .uk-alert-danger {
  18. background: #fff1f0;
  19. color: #d85030;
  20. margin-bottom: 15px;
  21. padding: 10px;
  22. border: 1px solid rgba(216, 80, 48, .3);
  23. border-radius: 4px;
  24. text-shadow: 0 1px 0 #fff;
  25. }
  26. .imgItem {
  27. display: inline-block;
  28. position: relative;
  29. margin: 0 10px 10px 0;
  30. }
  31. .imgItem .layui-close {
  32. position: absolute;
  33. top: 0;
  34. right: 0;
  35. height: 16px;
  36. line-height: 16px;
  37. text-align: center;
  38. color: #000;
  39. width: 16px;
  40. border: 1px solid #000;
  41. background-color: #fff;
  42. }
  43. iframe.fr-iframe {
  44. padding: 0 20px;
  45. }
  46. .fr-wrapper.show-placeholder .fr-placeholder {
  47. padding-left: 30px !important;
  48. }
  49. .layui-form-label {
  50. width: {{ $colWidth }}px;
  51. }
  52. .layui-input-block {
  53. margin-left: {{ $colWidth + 30 }}px;
  54. }
  55. .weadmin-body {
  56. overflow: initial;
  57. }
  58. </style>
  59. <script src="/js/admin/xm-select.js"></script>
  60. <script src="/laydate/laydate.js"></script>
  61. <form class="layui-form" id="form-unify" method="post" action="{{ $path ?? '' }}" style="padding:20px;">
  62. @csrf
  63. <h2 class="uk-modal-title">{{ $fromTitle }}</h2>
  64. @if(isset($item[$primaryKey]))
  65. <input type="hidden" name="{{ $primaryKey }}" value="{{ $item[$primaryKey] }}">
  66. @endif
  67. <br>
  68. @foreach($columns as $key => $column)
  69. @switch($column['type'])
  70. @case('tree_select')
  71. <div class="layui-form-item">
  72. <label class="layui-form-label">{{ $column['label'] }}</label>
  73. <div class="layui-input-block">
  74. {{-- {!! json_encode($column) !!} --}}
  75. <select name="{{ $key }}">
  76. @if($column['isShowNull'] == true)
  77. <option value="0" @if(!isset($item)) selected @endif>无</option>
  78. @endif
  79. @if(count($column['options']) > 0)
  80. @include('admin::component.multi_select_option', ['selects' => $column['options'], 'selectPid' => $item[$key] ?? ($column['default'] ?? '')])
  81. @endif
  82. </select>
  83. </div>
  84. </div>
  85. @break
  86. @endswitch
  87. @endforeach
  88. <?php
  89. // dd($columns['parent_id']['default']);
  90. ?>
  91. @if(isset($item['id']))
  92. <div class="layui-form-item">
  93. <label class="layui-form-label">摄像头ID</label>
  94. <div class="layui-input-block">
  95. <input class="layui-input" type="text" value="{{ $item['id'] ?? (old('id'))}}(parent_id:{{ $columns['parent_id']['default'] }})" readonly/>
  96. </div>
  97. </div>
  98. @endif
  99. <div class="layui-form-item">
  100. <label class="layui-form-label">摄像头名称</label>
  101. <div class="layui-input-block">
  102. <input class="layui-input" type="text" placeholder="请输入摄像头名称" name="camera_name" value="{{ $item['camera_name'] ?? (old('camera_name')) }}"/>
  103. </div>
  104. </div>
  105. <div class="layui-form-item">
  106. <label class="layui-form-label">摄像头类型</label>
  107. <div class="layui-input-block">
  108. <select name="camera_type">
  109. <option value="0" @if(!isset($item)) selected @endif>无</option>
  110. @if(count($columns['camera_type']['options']) > 0)
  111. @foreach($columns['camera_type']['options'] as $k => $col)
  112. <option value="{{ $k }}"
  113. @if($columns['camera_type']['default'] == $k || (isset($item['camera_type']) && $item['camera_type'] == $k)) selected @endif>
  114. {{ $col }}
  115. </option>
  116. @endforeach
  117. @endif
  118. </select>
  119. </div>
  120. </div>
  121. <div class="layui-form-item">
  122. <label class="layui-form-label">摄像头来源</label>
  123. <div class="layui-input-block">
  124. <select name="camera_source" id="camera_source" lay-filter="camera_source">
  125. <option value="0" @if(!isset($item)) selected @endif>无</option>
  126. @if(count($columns['camera_source']['options']) > 0)
  127. @foreach($columns['camera_source']['options'] as $k => $col)
  128. <option value="{{ $k }}"
  129. @if($columns['camera_source']['default'] == $k || (isset($item['camera_source']) && $item['camera_source'] == $k)) selected @endif>
  130. {{ $col }}
  131. </option>
  132. @endforeach
  133. @endif
  134. </select>
  135. </div>
  136. </div>
  137. <input class="layui-input" type="hidden" id="source_default" value="{{ $item['camera_source'] ?? (old('camera_source')) }}"/>
  138. <div class="layui-form-item" id="video_recorder">
  139. <div class="layui-form-label">录像机品牌</div>
  140. <div class="layui-input-block">
  141. @foreach($columns['video_recorder']['options'] as $k => $col)
  142. <label><input type="radio" name="video_recorder" lay-filter="radio" value="{{ $k }}"
  143. @if((isset($item['video_recorder']) && $item['video_recorder'] == $k) ||
  144. old('video_recorder') === $k ||
  145. (isset($columns['video_recorder']['default']) && $columns['video_recorder']['default'] === $k)) checked
  146. @endif title="{{ $col }}"/>
  147. </label>
  148. @endforeach
  149. </div>
  150. </div>
  151. <div class="layui-form-item" id="rtsp">
  152. <label class="layui-form-label">rtsp规则</label>
  153. <div class="layui-input-block">
  154. <input class="layui-input" type="text" readonly id="rtsp_input" value="rtsp://用户名:密码@IP地址:端口/h264/ch通道号/码流类型/av_stream(sub:子码流,main:主码流)"/>
  155. </div>
  156. </div>
  157. <div class="layui-form-item" id="camera_url">
  158. <label class="layui-form-label">摄像头链接</label>
  159. <div class="layui-input-block">
  160. <input class="layui-input" type="text" placeholder="请输入摄像头链接" name="camera_url" value="{{ $item['camera_url'] ?? (old('camera_url')) }}"/>
  161. </div>
  162. </div>
  163. <div class="layui-form-item" id="user_name">
  164. <label class="layui-form-label">用户名</label>
  165. <div class="layui-input-block">
  166. <input class="layui-input" type="text" placeholder="请输入用户名" name="user_name" value="{{ $item['user_name'] ?? (old('user_name')) }}"/>
  167. </div>
  168. </div>
  169. <div class="layui-form-item" id="password">
  170. <label class="layui-form-label">密码</label>
  171. <div class="layui-input-block">
  172. <input class="layui-input" type="text" placeholder="请输入密码" name="pass" value="{{ $item['password'] ?? (old('password')) }}"/>
  173. </div>
  174. </div>
  175. <div class="layui-form-item" id="ip">
  176. <label class="layui-form-label">ip地址</label>
  177. <div class="layui-input-block">
  178. <input class="layui-input" type="text" placeholder="请输入ip地址" name="ip" value="{{ $item['ip'] ?? (old('ip')) }}"/>
  179. </div>
  180. </div>
  181. <div class="layui-form-item" id="port">
  182. <label class="layui-form-label">端口</label>
  183. <div class="layui-input-block">
  184. <input class="layui-input" type="text" placeholder="请输入端口" name="port" value="{{ $item['port'] ?? (old('port')) }}"/>
  185. </div>
  186. </div>
  187. <div class="layui-form-item" id="com_number">
  188. <label class="layui-form-label">通道号</label>
  189. <div class="layui-input-block">
  190. <input class="layui-input" type="text" placeholder="请输入通道号" name="com_number" value="{{ $item['com_number'] ?? (old('com_number')) }}"/>
  191. </div>
  192. </div>
  193. <div class="layui-form-item" id="code_stream">
  194. <label class="layui-form-label">视频码流</label>
  195. <div class="layui-input-block">
  196. <?php //dd($columns['code_stream']['value'] == 1);exit;?>
  197. <select name="code_stream">
  198. <option value="0">无</option>
  199. {{-- @foreach($columns['code_stream']['options'] as $k=>$v)--}}
  200. {{-- @if($k == 1 && count($columns['code_stream']['options']) > 0)--}}
  201. {{-- <option value="{{ $k }}" selected>{{ $v }}</option>--}}
  202. {{-- @else--}}
  203. {{-- <option value="{{ $k }}">{{ $v }}</option>--}}
  204. {{-- @endif--}}
  205. {{-- @endforeach--}}
  206. @if($columns['code_stream']['value'] == 2)
  207. <option value="1">子码流</option>
  208. <option value="2" selected>主码流</option>
  209. @else
  210. <option value="1" selected>子码流</option>
  211. <option value="2">主码流</option>
  212. @endif
  213. </select>
  214. </div>
  215. </div>
  216. <div class="layui-form-item">
  217. <label class="layui-form-label">排序</label>
  218. <div class="layui-input-block">
  219. <input class="layui-input" type="text" placeholder="请输入排序" name="sort" value="{{ $item['sort'] ?? (old('sort')) }}"/>
  220. </div>
  221. </div>
  222. @if(isset($columns['surface_id']))
  223. <div class="layui-form-item">
  224. <label class="layui-form-label">所属矿区区域</label>
  225. <div class="layui-input-block">
  226. <?php /*dd($columns);exit;*/?>
  227. <select name="surface_id">
  228. <option value="0">无</option>
  229. @foreach($columns['surface_id']['options'] as $k=>$v)
  230. @if($k == 1 && count($columns['surface_id']['options']) > 0)
  231. <option value="{{ $k }}" selected>{{ $v }}</option>
  232. @else
  233. <option value="{{ $k }}">{{ $v }}</option>
  234. @endif
  235. @endforeach
  236. </select>
  237. </div>
  238. </div>
  239. @endif
  240. @foreach($columns as $key => $column)
  241. @switch($column['type'])
  242. @case('uploadImg')
  243. <label class="layui-form-label">{{ $column['label'] }}</label>
  244. <div class="layui-upload">
  245. <img id="pre" class="layui-upload-img none">
  246. @if (strlen($column['default']) > 0)
  247. <script>
  248. $('#pre').attr('src', '{{ $column['default'] }}');
  249. </script>
  250. @endif
  251. <span style="display: inline-table;">
  252. <button type="button" class="layui-btn" id="selectImgBtn">上传图片</button>
  253. <p id="uploadTips">
  254. <input type="hidden" name="{{ $key }}" value="{{ $column['default'] ?? '' }}"/>
  255. </p>
  256. </span>
  257. </div>
  258. <style>
  259. .layui-upload-img {
  260. /*width: 92px;*/
  261. height: 92px;
  262. margin: 10px 10px 10px 10px;
  263. }
  264. #uploadTips {
  265. line-height: 30px;
  266. }
  267. </style>
  268. <script>
  269. layui.use('upload', function () {
  270. var $ = layui.jquery
  271. , upload = layui.upload;
  272. var uploadInst = upload.render({
  273. elem: '#selectImgBtn'
  274. , url: "{{ $column['uploadURLPath'] }}"
  275. , acceptMime: 'image/jpg, image/png, image/jpeg'
  276. , number: 1
  277. , before: function (obj) {
  278. //预读本地文件示例,不支持ie8
  279. obj.preview(function (index, file, result) {
  280. $('#pre').attr('src', result); //图片链接(base64)
  281. });
  282. //开始加载效果
  283. var loading = layer.load(0, {
  284. shade: 0.2,
  285. time: 2*1000
  286. });
  287. }
  288. , done: function (res) {
  289. //如果上传失败
  290. if (res.code > 0) {
  291. return layer.msg('上传失败');
  292. }
  293. //上传成功
  294. $("input[name='{{ $key }}']").val(res.data.image_path);
  295. //结束加载效果
  296. }
  297. , error: function () {
  298. //演示失败状态,并实现重传
  299. var uploadTips = $('#uploadTips');
  300. uploadTips.html('<span style="color: #FF5722; text-align:center">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
  301. uploadTips.find('.demo-reload').on('click', function () {
  302. uploadInst.upload();
  303. });
  304. }
  305. });
  306. });
  307. </script>
  308. @break
  309. @default
  310. @endswitch
  311. @if($hasHr)
  312. <hr>
  313. @endif
  314. @endforeach
  315. @if(!is_null($footBtns))
  316. <hr>
  317. <div style="text-align: right">
  318. @if(in_array('goback',$footBtns))
  319. @if($isAjax)
  320. <button class="layui-btn layui-btn-primary layui-layer-close" style="position:relative;"
  321. type="button">
  322. 取消
  323. </button>
  324. @else
  325. <button class="layui-btn layui-btn-primary layui-layer-close" style="position:relative;"
  326. type="button"
  327. onclick="javascript:history.go(-1);">返回
  328. </button>
  329. @endif
  330. @endif
  331. @if(in_array('save',$footBtns))
  332. <button class="layui-btn" type="submit" lay-submit lay-filter="formBox">保存</button>
  333. @endif
  334. </div>
  335. @endif
  336. </form>
  337. <script>
  338. layui.use(['form', 'laydate', 'table'], function () {
  339. var form = layui.form, table = layui.table;
  340. form.render();
  341. form.on('checkbox', function (data) {
  342. $(data.othis).toggleClass('layui-form-checked');
  343. });
  344. form.on('select(camera_source)', function(data){
  345. var val=data.value;
  346. if(val == 1){
  347. document.getElementById("camera_url").style.display = 'none';
  348. document.getElementById("user_name").style.display = 'block';
  349. document.getElementById("password").style.display = 'block';
  350. document.getElementById("ip").style.display = 'block';
  351. document.getElementById("port").style.display = 'block';
  352. document.getElementById("com_number").style.display = 'block';
  353. document.getElementById("code_stream").style.display = 'block';
  354. document.getElementById("video_recorder").style.display = 'block';
  355. document.getElementById("rtsp").style.display = 'block';
  356. }else if(val == 2){
  357. document.getElementById("camera_url").style.display = 'none';
  358. document.getElementById("user_name").style.display = 'none';
  359. document.getElementById("password").style.display = 'none';
  360. document.getElementById("ip").style.display = 'none';
  361. document.getElementById("port").style.display = 'none';
  362. document.getElementById("com_number").style.display = 'none';
  363. document.getElementById("code_stream").style.display = 'block';
  364. document.getElementById("video_recorder").style.display = 'none';
  365. document.getElementById("rtsp").style.display = 'none';
  366. }else if(val == 3){
  367. document.getElementById("camera_url").style.display = 'block';
  368. document.getElementById("user_name").style.display = 'none';
  369. document.getElementById("password").style.display = 'none';
  370. document.getElementById("ip").style.display = 'none';
  371. document.getElementById("port").style.display = 'none';
  372. document.getElementById("com_number").style.display = 'none';
  373. document.getElementById("code_stream").style.display = 'none';
  374. document.getElementById("video_recorder").style.display = 'none';
  375. document.getElementById("rtsp").style.display = 'none';
  376. }
  377. });
  378. form.on('radio(radio)', function(data){
  379. var val=data.value;
  380. if(val == 1){
  381. document.getElementById('rtsp_input').value = 'rtsp://用户名:密码@IP地址:端口/h264/ch通道号/码流类型/av_stream(sub:子码流,main:主码流)';
  382. }
  383. if(val == 2){
  384. document.getElementById('rtsp_input').value = 'rtsp://用户名:密码@IP地址:端口/cam/realmonitor?channel=通道号&subtype=码流类型(0:主码流,1:子码流)';
  385. }
  386. if(val == 3){
  387. document.getElementById('rtsp_input').value = 'rtsp://用户名:密码@IP地址:端口/unicast/c通道号/s码流类型/live(0:主码流,1:子码流)';
  388. }
  389. });
  390. @if($isAjax)
  391. form.on('submit(formBox)', function (data) {
  392. var urlPost = $('#form-unify').attr('action');
  393. var submitBtn = $(data.elem);
  394. submitBtn.addClass('layui-btn-disabled').prop('disabled', true).text('提交中……');
  395. $.ajax({
  396. url: urlPost,
  397. type: 'POST',
  398. dataType: 'json',
  399. data: data.field
  400. })
  401. .done(function (res) {
  402. if (res.code === 0) {
  403. submitBtn.text('完成');
  404. layer.msg('完成!', {anim: 0}, function () {
  405. if (res.data.table === '') {
  406. // location.reload();
  407. var mine_id = document.getElementById('mine_id').value;
  408. var camera_name = document.getElementById('camera_name').value;
  409. var camera_source = document.getElementById('camera_source').value;
  410. var camera_type = document.getElementById('camera_type').value;
  411. document.getElementById('camera_list').innerHTML = '';
  412. $.get('/admin/camera/update',{'mine_id':mine_id,'camera_source':camera_source,'camera_type':camera_type,'camera_name':camera_name},function(str){
  413. if(str.data.length > 0){
  414. for(var i=0;i<str.data.length;i++){
  415. if(str.data[i].is_show == 1){
  416. if(str.data[i].playback == 0){
  417. $('#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>');
  418. }else{
  419. $('#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>');
  420. }
  421. }else{
  422. if(str.data[i].playback == 0){
  423. $('#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>');
  424. }else{
  425. $('#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>');
  426. }
  427. }
  428. }
  429. layui.form.render();
  430. }else{
  431. $('#camera_list').append('<tr><td colspan="8">暂无数据</td></tr>');
  432. }
  433. //分页
  434. $("#page").paging({
  435. nowPage: 1, // 当前页码
  436. pageNum: str.last_page, // 总页码
  437. buttonNum: 7, //要展示的页码数量
  438. callback: function (num) { //回调函数
  439. $.get('/admin/camera/camerapage',{'page':num,'mine_id':mine_id,'camera_name':camera_name,'camera_source':camera_source,'camera_type':camera_type},function(str){
  440. document.getElementById('camera_list').innerHTML = '';
  441. if(str.data.length > 0){
  442. for(var i=0;i<str.data.length;i++){
  443. if(str.data[i].is_show == 1){
  444. if(str.data[i].playback == 0){
  445. $('#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>');
  446. }else{
  447. $('#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>');
  448. }
  449. }else{
  450. if(str.data[i].playback == 0){
  451. $('#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>');
  452. }else{
  453. $('#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>');
  454. }
  455. }
  456. }
  457. layui.form.render();
  458. }else{
  459. $('#camera_list').append('<tr><td colspan="8">暂无数据</td></tr>');
  460. }
  461. });
  462. }
  463. });
  464. });
  465. layer.closeAll();
  466. } else {
  467. layer.closeAll();
  468. if (res.data.table !== undefined) {
  469. // table.reload(res.data.table);
  470. }
  471. if (res.url !== undefined) {
  472. location.href = res.url;
  473. }
  474. }
  475. });
  476. } else {
  477. layer.msg(res.message, {anim: 0}, function () {
  478. submitBtn.removeClass('layui-btn-disabled').prop('disabled', false).text('重新保存');
  479. });
  480. }
  481. })
  482. .fail(function (res) {
  483. layer.msg(res.message, {anim: 0}, function () {
  484. submitBtn.removeClass('layui-btn-disabled').prop('disabled', false).text('重新保存');
  485. });
  486. });
  487. return false;
  488. });
  489. @endif
  490. });
  491. $('.layui-form').on('click', '.layui-close', function () {
  492. var self = $(this);
  493. self.closest('.imgItem').remove();
  494. });
  495. $('.layui-form').on('click', '.file-delete', function () {
  496. var self = $(this);
  497. self.closest('tr').remove();
  498. });
  499. // alert(document.getElementById("source_default").value == '');
  500. // alert(document.getElementById("camera_source").value);
  501. //根据摄像头来源显示内容
  502. if(document.getElementById("source_default").value == ''){//硬盘录像机
  503. document.getElementById("camera_url").style.display = 'none';
  504. document.getElementById("user_name").style.display = 'block';
  505. document.getElementById("password").style.display = 'block';
  506. document.getElementById("ip").style.display = 'block';
  507. document.getElementById("port").style.display = 'block';
  508. document.getElementById("com_number").style.display = 'block';
  509. document.getElementById("code_stream").style.display = 'block';
  510. document.getElementById("rtsp").style.display = 'block';
  511. document.getElementById("video_recorder").style.display = 'block';
  512. }
  513. if(document.getElementById("source_default").value == 1){//硬盘录像机
  514. document.getElementById("camera_url").style.display = 'none';
  515. document.getElementById("user_name").style.display = 'block';
  516. document.getElementById("password").style.display = 'block';
  517. document.getElementById("ip").style.display = 'block';
  518. document.getElementById("port").style.display = 'block';
  519. document.getElementById("com_number").style.display = 'block';
  520. document.getElementById("code_stream").style.display = 'block';
  521. document.getElementById("rtsp").style.display = 'block';
  522. document.getElementById("video_recorder").style.display = 'block';
  523. }
  524. if(document.getElementById("source_default").value == 2){//视频服务器
  525. document.getElementById("camera_url").style.display = 'none';
  526. document.getElementById("user_name").style.display = 'none';
  527. document.getElementById("password").style.display = 'none';
  528. document.getElementById("ip").style.display = 'none';
  529. document.getElementById("port").style.display = 'none';
  530. document.getElementById("com_number").style.display = 'none';
  531. document.getElementById("code_stream").style.display = 'block';
  532. document.getElementById("rtsp").style.display = 'none';
  533. document.getElementById("video_recorder").style.display = 'none';
  534. }
  535. if(document.getElementById("source_default").value == 3){//内网摄像头
  536. document.getElementById("camera_url").style.display = 'block';
  537. document.getElementById("user_name").style.display = 'none';
  538. document.getElementById("password").style.display = 'none';
  539. document.getElementById("ip").style.display = 'none';
  540. document.getElementById("port").style.display = 'none';
  541. document.getElementById("com_number").style.display = 'none';
  542. document.getElementById("code_stream").style.display = 'none';
  543. document.getElementById("rtsp").style.display = 'none';
  544. document.getElementById("video_recorder").style.display = 'none';
  545. }
  546. </script>