fuelux.tree.min.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. (function(a, c) {
  2. var b = function(e, d) {
  3. this.$element = a(e);
  4. this.options = a.extend({},
  5. a.fn.tree.defaults, d);
  6. this.$element.on("click", ".tree-item", a.proxy(function(f) {
  7. this.selectItem(f.currentTarget)
  8. },
  9. this));
  10. this.$element.on("click", ".tree-folder-header", a.proxy(function(f) {
  11. this.selectFolder(f.currentTarget)
  12. },
  13. this));
  14. this.render()
  15. };
  16. b.prototype = {
  17. constructor: b,
  18. render: function() {
  19. this.populate(this.$element)
  20. },
  21. populate: function(f) {
  22. var e = this;
  23. var d = f.parent().find(".tree-loader:eq(0)");
  24. d.show();
  25. this.options.dataSource.data(f.data(),
  26. function(g) {
  27. d.hide();
  28. a.each(g.data,
  29. function(h, j) {
  30. var i;
  31. if (j.type === "folder") {
  32. i = e.$element.find(".tree-folder:eq(0)").clone().show();
  33. i.find(".tree-folder-name").html(j.name);
  34. i.find(".tree-loader").html(e.options.loadingHTML);
  35. var k = i.find(".tree-folder-header");
  36. k.data(j);
  37. if ("icon-class" in j) {
  38. k.find('[class*="icon-"]').addClass(j["icon-class"])
  39. }
  40. } else {
  41. if (j.type === "item") {
  42. i = e.$element.find(".tree-item:eq(0)").clone().show();
  43. i.find(".tree-item-name").html(j.name);
  44. i.data(j);
  45. // console.log();
  46. if ("additionalParameters" in j && "item-selected" in j.additionalParameters && j.additionalParameters["item-selected"] == true) {
  47. i.addClass("tree-selected");
  48. i.find("i").removeClass(e.options["unselected-icon"]).addClass(e.options["selected-icon"])
  49. }
  50. }
  51. }
  52. if (f.hasClass("tree-folder-header")) {
  53. f.parent().find(".tree-folder-content:eq(0)").append(i)
  54. } else {
  55. f.append(i)
  56. }
  57. });
  58. e.$element.trigger("loaded")
  59. })
  60. },
  61. selectItem: function(e) {
  62. if (this.options.selectable == false) {
  63. return
  64. }
  65. var d = a(e);
  66. var g = this.$element.find(".tree-selected");
  67. var f = [];
  68. if (this.options.multiSelect) {
  69. a.each(g,
  70. function(i, j) {
  71. var h = a(j);
  72. if (h[0] !== d[0]) {
  73. f.push(a(j).data())
  74. }
  75. })
  76. } else {
  77. if (g[0] !== d[0]) {
  78. g.removeClass("tree-selected").find("i").removeClass(this.options["selected-icon"]).addClass(this.options["unselected-icon"]);
  79. f.push(d.data())
  80. }
  81. }
  82. g.removeClass("tree-selected");
  83. if (d.hasClass("tree-selected")) {
  84. d.removeClass("tree-selected");
  85. d.find("i").removeClass(this.options["selected-icon"]).addClass(this.options["unselected-icon"])
  86. } else {
  87. document.getElementById("camera_source").value = 0;
  88. document.getElementById("camera_type").value = 0;
  89. document.getElementById("camera_name").value = '';
  90. document.getElementById("mine_id").value = d.data().id;
  91. var camera_source = document.getElementById("camera_source").value;
  92. var camera_type = document.getElementById("camera_type").value;
  93. var camera_name = document.getElementById("camera_name").value;
  94. // var search_form = document.getElementById('search_form');
  95. // search_form.submit();
  96. document.getElementById('camera_list').innerHTML = '';
  97. $.get('/admin/camera/update',{'mine_id':d.data().id,'camera_source':camera_source,'camera_type':camera_type,'camera_name':camera_name},function(str){
  98. if(str.data.length > 0){
  99. for(var i=0;i<str.data.length;i++){
  100. if(str.data[i].is_show == 1){
  101. if(str.data[i].playback == 0){
  102. $('#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>');
  103. }else{
  104. $('#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>');
  105. }
  106. }else{
  107. if(str.data[i].playback == 0){
  108. $('#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>');
  109. }else{
  110. $('#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>');
  111. }
  112. }
  113. }
  114. layui.form.render();
  115. }else{
  116. $('#camera_list').append('<tr><td colspan="8">暂无数据</td></tr>');
  117. }
  118. //分页
  119. $("#page").paging({
  120. nowPage: 1, // 当前页码
  121. pageNum: str.last_page, // 总页码
  122. buttonNum: 7, //要展示的页码数量
  123. callback: function (num) { //回调函数
  124. var mine_id = document.getElementById("mine_id").value;
  125. var camera_name = document.getElementById("camera_name").value;
  126. var camera_source = document.getElementById("camera_source").value;
  127. var camera_type = document.getElementById("camera_type").value;
  128. $.get('/admin/camera/camerapage',{'page':num,'mine_id':mine_id,'camera_name':camera_name,'camera_source':camera_source,'camera_type':camera_type},function(str){
  129. document.getElementById('camera_list').innerHTML = '';
  130. if(str.data.length > 0){
  131. for(var i=0;i<str.data.length;i++){
  132. if(str.data[i].is_show == 1){
  133. if(str.data[i].playback == 0){
  134. $('#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>');
  135. }else{
  136. $('#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>');
  137. }
  138. }else{
  139. if(str.data[i].playback == 0){
  140. $('#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>');
  141. }else{
  142. $('#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>');
  143. }
  144. }
  145. }
  146. layui.form.render();
  147. }else{
  148. $('#camera_list').append('<tr><td colspan="8">暂无数据</td></tr>');
  149. }
  150. });
  151. }
  152. });
  153. });
  154. d.siblings().removeClass("tree-selected");
  155. d.addClass("tree-selected");
  156. d.find("i").removeClass(this.options["unselected-icon"]).addClass(this.options["selected-icon"]);
  157. if (this.options.multiSelect) {
  158. f.push(d.data())
  159. }
  160. }
  161. if (f.length) {
  162. this.$element.trigger("selected", {
  163. info: f
  164. })
  165. }
  166. },
  167. selectFolder: function(e) {
  168. var d = a(e);
  169. var f = d.parent();
  170. if (d.find("." + this.options["close-icon"]).length) {
  171. if (f.find(".tree-folder-content").children().length) {
  172. f.find(".tree-folder-content:eq(0)").show()
  173. } else {
  174. this.populate(d)
  175. }
  176. f.find("." + this.options["close-icon"] + ":eq(0)").removeClass(this.options["close-icon"]).addClass(this.options["open-icon"]);
  177. this.$element.trigger("opened", d.data())
  178. } else {
  179. if (this.options.cacheItems) {
  180. f.find(".tree-folder-content:eq(0)").hide()
  181. } else {
  182. f.find(".tree-folder-content:eq(0)").empty()
  183. }
  184. f.find("." + this.options["open-icon"] + ":eq(0)").removeClass(this.options["open-icon"]).addClass(this.options["close-icon"]);
  185. this.$element.trigger("closed", d.data())
  186. }
  187. },
  188. selectedItems: function() {
  189. var e = this.$element.find(".tree-selected");
  190. var d = [];
  191. a.each(e,
  192. function(f, g) {
  193. d.push(a(g).data())
  194. });
  195. return d
  196. }
  197. };
  198. a.fn.tree = function(e, g) {
  199. var f;
  200. var d = this.each(function() {
  201. var j = a(this);
  202. var i = j.data("tree");
  203. var h = typeof e === "object" && e;
  204. if (!i) {
  205. j.data("tree", (i = new b(this, h)))
  206. }
  207. if (typeof e === "string") {
  208. f = i[e](g)
  209. }
  210. });
  211. return (f === c) ? d: f
  212. };
  213. a.fn.tree.defaults = {
  214. multiSelect: false,
  215. loadingHTML: "<div>Loading...</div>",
  216. cacheItems: true
  217. };
  218. a.fn.tree.Constructor = b
  219. })(window.jQuery);