album.html 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  1. {extend name="base" /}
  2. {block name="resources"}
  3. <link rel="stylesheet" type="text/css" href="SHOP_CSS/album_manager.css" />
  4. <style>
  5. body{background-color: #fff;}
  6. #iframeIcon{border: none;width: 100%;height: 449px;}
  7. .album-box .album-list-box{height: 380px;margin-right: 20px;display: flex;flex-direction: column;}
  8. .album-box .album-list-box .album-list {flex: 1;height: 0;overflow-y: scroll}
  9. .album-box .album-list-box .album-list::-webkit-scrollbar{display: none;}
  10. .album-box .album-img{max-height: 336px;}
  11. .album-box .album-img li:nth-child(5n){margin-right: 0;}
  12. .layui-tab-content{padding: 0;height: 449px;}
  13. .layui-tab{margin: 5px 0 0;}
  14. .layui-tab .layui-tab-item{height: 449px;}
  15. .layui-laypage{margin: 10px 0 0;}
  16. .layui-tab-title {margin: 0 20px}
  17. #album {padding: 0 20px;}
  18. .page {text-align: right}
  19. </style>
  20. {/block}
  21. {block name='body'}
  22. <div class="layui-tab layui-tab-brief album-tab">
  23. <ul class="layui-tab-title layui-hide">
  24. <li class="layui-this">选择图片</li>
  25. <li>选择图标</li>
  26. </ul>
  27. <div class="layui-tab-content">
  28. <div id="album" class="layui-tab-item">
  29. <!-- 搜索框 -->
  30. <div class="single-filter-box">
  31. {if $type == 'img'}
  32. <button class="layui-btn" onclick="uploadImg()">上传{$type_list[$type]}</button>
  33. {else if $type == 'video'}
  34. <button class="layui-btn" onclick="uploadVideo()">上传{$type_list[$type]}</button>
  35. {/if}
  36. <div class="layui-btn layui-btn-primary text-color border-color" onclick="addGrouping()">添加分组</div>
  37. <div class="layui-form">
  38. <div class="layui-input-inline">
  39. <input type="text" name="search_keys" placeholder="请输入{$type_list[$type]}名称" autocomplete="off" class="layui-input album-img-sreach">
  40. <button type="button" class="layui-btn layui-btn-primary" lay-filter="search" lay-submit>
  41. <i class="layui-icon">&#xe615;</i>
  42. </button>
  43. </div>
  44. </div>
  45. </div>
  46. <div class="album-box">
  47. <div class="album-list-box">
  48. <ul class="album-list layui-nav layui-nav-tree">
  49. <div class="layui-tree">
  50. {foreach $album_tree_list as $k => $v}
  51. <div class="layui-tree-set layui-tree-checkedFirst layui-tree-setHide ">
  52. <div class="layui-tree-entry">
  53. <div class="layui-tree-main">
  54. {if isset($v['child_list'])}
  55. <span class="layui-tree-iconClick" onclick="childSwitch(this)"><i class="layui-tree-iconArrow"></i></span>
  56. {else /}
  57. <span class="layui-tree-iconClick"><i class="layui-tree-iconArrow layui-hide"></i></span>
  58. {/if}
  59. <div class="layui-tree-txt {$k == 0 ? 'selected text-color' : ''}" onclick="switchGroup(this)" data-id="{$v['album_id']}" data-album="{$v['child'] ? implode(',', $v['child']) : $v['album_id']}" data-name="{$v['album_name']}">
  60. <span>{$v['album_name']}</span>
  61. <span class="num">{$v['num']}</span>
  62. </div>
  63. </div>
  64. </div>
  65. {if isset($v['child_list'])}
  66. <div class="layui-tree-pack layui-tree-child">
  67. {foreach $v['child_list'] as $key => $val}
  68. <div class="layui-tree-set">
  69. <div class="layui-tree-entry">
  70. <div class="layui-tree-main">
  71. <span class="layui-tree-iconClick"><i class="layui-tree-iconArrow layui-hide"></i></span>
  72. <div class="layui-tree-txt" onclick="switchGroup(this)" data-id="{$val['album_id']}" data-album="{$val['album_id']}" data-name="{$val['album_name']}">
  73. <span>{$val['album_name']}</span>
  74. <span class="num">{$val['num']}</span>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. {/foreach}
  80. </div>
  81. {/if}
  82. </div>
  83. {/foreach}
  84. </div>
  85. </ul>
  86. </div>
  87. <div class="album-content">
  88. <ul class="album-img">
  89. </ul>
  90. <div id="paged" class="page"></div>
  91. </div>
  92. </div>
  93. </div>
  94. <div class="layui-tab-item">
  95. <iframe id="iframeIcon" src=""></iframe>
  96. </div>
  97. </div>
  98. </div>
  99. <!-- 多图上传 -->
  100. <script type="text/html" id="multuple_html">
  101. <div class="layui-form multuple-list-box">
  102. <div class="layui-form-item">
  103. <label class="layui-form-label sm">本地图片</label>
  104. <ul class="layui-input-block multuple-list">
  105. <li class="multuple-list-img" id="ImgUpload">
  106. <span class="bg-color">+</span>
  107. <span>点击添加图片</span>
  108. </li>
  109. </ul>
  110. </div>
  111. <div class="form-row sm">
  112. <button class="layui-btn layui-btn-disabled" disabled="disabled" id="chooseListAction">提交</button>
  113. <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
  114. </div>
  115. </div>
  116. </script>
  117. <!-- 视频上传 -->
  118. <script type="text/html" id="video_html">
  119. <div class="layui-form multuple-list-box">
  120. <div class="layui-form-item">
  121. <label class="layui-form-label sm">视频</label>
  122. <ul class="layui-input-block multuple-list">
  123. <li class="multuple-list-img" id="VideoUpload">
  124. <span class="bg-color">+</span>
  125. <span>点击添加</span>
  126. </li>
  127. </ul>
  128. </div>
  129. <div class="form-row sm">
  130. <button class="layui-btn layui-btn-disabled" disabled="disabled" id="chooseVideoAction">提交</button>
  131. <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
  132. </div>
  133. </div>
  134. </script>
  135. <!-- 图片展示 -->
  136. <script type="text/html" id="albumList">
  137. {{# layui.each(d.list,function(index,item){ }}
  138. <li data-pic-id="{{item.pic_id}}" data-json_data='{{JSON.stringify(item)}}' class="media-list-item">
  139. <div class="bg-color-gray">
  140. {if $type == 'img'}
  141. {{# if(item.is_thumb == 1){ }}
  142. <img src="{{ ns.img(item.pic_path,'mid') }}" alt="{{item.pic_name}}">
  143. {{# }else{ }}
  144. <img src="{{ ns.img(item.pic_path) }}" alt="{{item.pic_name}}">
  145. {{# } }}
  146. {else if($type == 'video')}
  147. <video src="{{ ns.img(item.pic_path) }}" load="none" alt="{{item.pic_name}}"></video>
  148. {/if}
  149. {{# if( getActiveArrayIndex(item.pic_id) != "-1"){ }}
  150. <div class="image-box-active border-color"><i class="active-index">{{ getActiveArrayIndex(item.pic_id) }}</i></div>
  151. {{# } }}
  152. </div>
  153. <span>{{item.pic_name}}</span>
  154. </li>
  155. {{# }) }}
  156. {{# if(d.list.length === 0){ }}
  157. <div class="empty-data">暂无数据</div>
  158. {{# } }}
  159. </script>
  160. <!-- 添加分组 -->
  161. <script type="text/html" id="addGroup">
  162. <div class="layui-form">
  163. <div class="layui-form-item">
  164. <label class="layui-form-label mid">上级分组</label>
  165. <div class="layui-input-block len-mid">
  166. <select name="pid">
  167. <option value="0">顶级分组</option>
  168. {foreach $album_list as $k => $v}
  169. {if $v['level'] == 1 && $v['type'] == $type}
  170. <option value="{$v['album_id']}" >{$v['album_name']}</option>
  171. {/if}
  172. {/foreach}
  173. </select>
  174. </div>
  175. </div>
  176. <div class="layui-form-item">
  177. <label class="layui-form-label mid"><span class="required">*</span>分组名称:</label>
  178. <div class="layui-input-block">
  179. <input name="album_name" type="text" placeholder="请输入分组名称" lay-verify="required" class="layui-input len-mid">
  180. </div>
  181. </div>
  182. <div class="form-row mid">
  183. <button class="layui-btn" lay-submit lay-filter="add_group">保存</button>
  184. <button class="layui-btn layui-btn-primary" onclick="closeLayer()">返回</button>
  185. </div>
  186. </div>
  187. </script>
  188. <script>
  189. var form, laytpl, laypage, upload,element,
  190. limit = 10,
  191. active_array = [],
  192. album_id = $('.album-list .layui-this').attr("data-id");
  193. var repeat_flag = false;
  194. var display_type = "{$display_type}";
  195. layui.use(['form', 'laytpl', 'laypage', 'upload', 'element'], function() {
  196. form = layui.form;
  197. laytpl = layui.laytpl;
  198. laypage = layui.laypage;
  199. element = layui.element;
  200. upload = layui.upload;
  201. form.render();
  202. //初始化数据
  203. init();
  204. //监听搜索事件
  205. form.on('submit(search)', function() {
  206. albumImgList(1, limit);
  207. });
  208. /**
  209. * 添加分组
  210. */
  211. form.on('submit(add_group)', function(data) {
  212. if (repeat_flag) return false;
  213. repeat_flag = true;
  214. data.field.type = "{$type}";
  215. data.field.app_module = ns_url.appModule;
  216. data.field.site_id = ns_url.siteId;
  217. $.ajax({
  218. url: ns.url("shop/Album/addAlbum"),
  219. data: data.field,
  220. type: "POST",
  221. dataType: "JSON",
  222. success: function(res) {
  223. layer.msg(res.message);
  224. flag_add_group = false;
  225. if (res.code == 0) {
  226. location.reload();
  227. }
  228. }
  229. });
  230. return false;
  231. });
  232. });
  233. function switchGroup(obj){
  234. $('.album-list .selected').removeClass('selected text-color');
  235. $(obj).addClass('selected text-color');
  236. album_id = $(obj).attr("data-id");
  237. albumImgList(1, limit);
  238. }
  239. function closeLayer() {
  240. layer.closeAll();
  241. }
  242. /**
  243. * 更新分组图片数量
  244. */
  245. function updateAlbumNum(album_id){
  246. $.ajax({
  247. type: "POST",
  248. async: true,
  249. url: ns.url("shop/Album/albumInfo"),
  250. data: {
  251. album_id,
  252. app_module: ns_url.appModule,
  253. site_id: ns_url.siteId
  254. },
  255. dataType: "JSON",
  256. success: function(res) {
  257. if (res.code == 0 && res.data) {
  258. $('[data-id="'+album_id+'"]').find('.num').text(res.data.num);
  259. }
  260. }
  261. });
  262. }
  263. /**
  264. * 图片加载
  265. * @param page
  266. * @param limit
  267. */
  268. function albumImgList(page, limit) {
  269. var album_id = $('.album-list .selected').attr("data-album");
  270. $.ajax({
  271. url: ns.url("shop/Album/Album"),
  272. type: "POST",
  273. dataType: "JSON",
  274. async: false,
  275. data: {
  276. album_id,
  277. limit,
  278. page,
  279. pic_name: $(".album-img-sreach").val(),
  280. app_module:ns_url.appModule,
  281. site_id:ns_url.siteId
  282. },
  283. success: function(res) {
  284. laytpl($("#albumList").html()).render(res.data, function(data) {
  285. $(".album-img").html(data);
  286. $("#album_num_" + album_id).html(res.data.count);
  287. });
  288. laypage.render({
  289. elem: 'paged',
  290. count: res.data.count,
  291. limit,
  292. curr: page,
  293. jump: function(obj, first) {
  294. if (!first) {
  295. albumImgList(obj.curr, obj.limit);
  296. }
  297. }
  298. })
  299. }
  300. })
  301. }
  302. /**
  303. * 选择个体
  304. */
  305. function checkItem() {
  306. $("#album").unbind('click').on("click", ".media-list-item", function() {
  307. var json_data = $(this).data("json_data");
  308. json_data.id = parseInt(json_data.pic_id);
  309. if ($(this).find(".image-box-active").length > 0) {
  310. var active_index = getDelateActiveArrayIndex(json_data.id);
  311. sortActiveArrayIndex(active_index);
  312. $(this).find(".image-box-active").remove();
  313. } else {
  314. json_data.index = active_array.length + 1;
  315. if (json_data.index > imgNum) {
  316. $(".album-box .album-img li").each((index,item) => {
  317. if($(item).attr("data-pic-id") == active_array[0].pic_id)
  318. $(item).find(".image-box-active").remove();
  319. });
  320. var active_index = getDelateActiveArrayIndex(active_array[0].pic_id);
  321. sortActiveArrayIndex(active_index);
  322. --json_data.index;
  323. }
  324. active_array.push(json_data);
  325. var active_html = '<div class="image-box-active border-color"><i class="active-index">' + active_array.length +
  326. '</i></div>';
  327. $(this).find("div").append(active_html);
  328. }
  329. });
  330. }
  331. //获取选择图片信息
  332. function getCheckItem(callback) {
  333. if (typeof callback != "function") return false;
  334. if($(".layui-tab-content .layui-tab-item").eq(0).hasClass("layui-show")){
  335. callback(active_array);
  336. }else{
  337. var currIcon = document.getElementById('iframeIcon').contentWindow.currIcon;
  338. callback(currIcon);
  339. }
  340. }
  341. //获取选中
  342. function getActiveArrayIndex(id) {
  343. var delete_index = -1;
  344. $.each(active_array, function(i, item) {
  345. if (item.pic_id == id) {
  346. delete_index = item.index;
  347. return false;
  348. }
  349. });
  350. return delete_index;
  351. }
  352. //删除选中
  353. function getDelateActiveArrayIndex(id) {
  354. var delete_index;
  355. $.each(active_array, function(i, item) {
  356. if (item.id == id) {
  357. delete_index = item.index;
  358. active_array.splice(i, 1);
  359. return false;
  360. }
  361. });
  362. return delete_index;
  363. }
  364. //重新排序
  365. function sortActiveArrayIndex(index) {
  366. $.each(active_array, function(i, item) {
  367. var item_index = item.index;
  368. if (item_index > index) {
  369. active_array[i]["index"] = item_index - 1;
  370. if ($("#album").find(".media-list-item[data-pic-id = '" + item["id"] + "']").length > 0) {
  371. $("#album").find(".media-list-item[data-pic-id = '" + item["id"] + "']").find(".image-box-active i ").text(item["index"]);
  372. }
  373. }
  374. })
  375. }
  376. /**
  377. * 初始化数据
  378. */
  379. function init() {
  380. albumImgList(1, limit); //分组图像
  381. checkItem(); //选择个体
  382. var arr = display_type.split(",");
  383. if(arr.includes("img")){
  384. $(".layui-tab-content .layui-tab-item").eq(0).addClass('layui-show').siblings().removeClass('layui-show');
  385. }
  386. if(arr.includes("icon")){
  387. $("#iframeIcon").attr("src",ns.url('shop/diy/iconfont', {site_id: ns_url.siteId, app_module: ns_url.appModule}));
  388. if(arr.length == 1){
  389. $(".layui-tab-content .layui-tab-item").eq(1).addClass('layui-show').siblings().removeClass('layui-show');
  390. }else{
  391. $(".layui-tab .layui-tab-title").removeClass("layui-hide");
  392. }
  393. }
  394. }
  395. /**
  396. * 多图上传
  397. */
  398. function uploadImg() {
  399. laytpl($("#multuple_html").html()).render({}, function(html) {
  400. var album_id = $('.album-list .selected').attr("data-id");
  401. layer_one = layer.open({
  402. type: 1,
  403. area: ['580px', '430px'],
  404. title: '本地上传',
  405. content: html,
  406. cancel: function() {
  407. $("#chooseListAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
  408. },
  409. success: function(res) {
  410. //上传图片
  411. upload.render({
  412. elem: '#ImgUpload',
  413. url: ns.url("shop/upload/album"),
  414. data: {
  415. album_id : album_id,
  416. is_thumb:'{$is_thumb}'
  417. },
  418. exts:'jpg|jpeg|png|gjf|webp|bmp|tif',
  419. multiple: true,
  420. auto: false,
  421. bindAction: '#chooseListAction',
  422. choose: function(obj) {
  423. //将每次选择的文件追加到文件队列
  424. var files = this.files = obj.pushFile();
  425. //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
  426. obj.preview(function(index, file, result) {
  427. //追加预览图片
  428. var html = '';
  429. html += '<li class="multuple-list-img upload-wrap" index="' + index + '">';
  430. html += '<img src="' + result + '" alt="' + file.name + '">';
  431. html += '<span class="upload-close-modal" id="upload_img_' + index + '">×</span>';
  432. html += '<div class="upload-image-curtain">50%</div>';
  433. html += '</li>';
  434. $(".multuple-list").prepend(html);
  435. //删除预览图片
  436. $("#upload_img_" + index).bind("click", function() {
  437. delete files[index];
  438. // delete picture_arr[index];//删除所选队列
  439. $(this).parent('.upload-wrap').remove();
  440. // uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
  441. //禁止点击
  442. if ($(".multuple-list li").length <= 1) {
  443. $("#chooseListAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
  444. }
  445. });
  446. //禁止点击
  447. if ($(".multuple-list li").length > 1) {
  448. $("#chooseListAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
  449. }
  450. });
  451. },
  452. before: function(obj){ //obj参数包含的信息,跟 choose回调完全一致,可参见上文。
  453. $("#chooseListAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled","disabled");
  454. },
  455. done: function(res, index) {
  456. // picture_arr.push(res.data);
  457. var image_box = $(".upload-wrap[index='" + index + "']").parent().find(".upload-image-curtain");
  458. image_box.text("50%");
  459. image_box.show();
  460. if (res.code >= 0) {
  461. setTimeout(function() {
  462. image_box.text("100%");
  463. }, 500);
  464. setTimeout(function() {
  465. albumImgList(1, limit);
  466. updateAlbumNum(album_id);
  467. layer.close(layer_one);
  468. }, 1000);
  469. return delete this.files[index]; //删除文件队列已经上传成功的文件
  470. } else {
  471. setTimeout(function() {
  472. image_box.text("上传失败");
  473. }, 500);
  474. layer.msg(res.message); //删除文件队列已经上传成功的文件
  475. }
  476. },
  477. allDone: function(obj){ //当文件全部被提交后,才触发
  478. $("#chooseListAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
  479. }
  480. });
  481. }
  482. })
  483. });
  484. }
  485. /**
  486. * 视频上传
  487. */
  488. function uploadVideo() {
  489. laytpl($("#video_html").html()).render({}, function(html) {
  490. var album_id = $('.album-list .selected').attr("data-id");
  491. layer_one = layer.open({
  492. type: 1,
  493. area: ['580px', '430px'],
  494. title: '本地上传',
  495. content: html,
  496. cancel: function() {
  497. $("#chooseVideoAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
  498. },
  499. success: function(res) {
  500. //上传图片
  501. upload.render({
  502. elem: '#VideoUpload',
  503. url: ns.url("shop/upload/videoToAlbum"),
  504. data: {
  505. album_id: album_id,
  506. },
  507. multiple: true,
  508. accept: 'video',
  509. auto: false,
  510. size: 50 * 1024,
  511. bindAction: '#chooseVideoAction',
  512. choose: function (obj) {
  513. //将每次选择的文件追加到文件队列
  514. var files = this.files = obj.pushFile();
  515. //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
  516. obj.preview(function (index, file, result) {
  517. //追加预览图片
  518. var html = '';
  519. html += '<li class="multuple-list-img upload-wrap" index="' + index + '">';
  520. html += '<video class="multuple-list-image" src="' + result + '" alt="' + file.name + '"></video>';
  521. html += '<span class="upload-close-modal" id="upload_img_' + index + '">×</span>';
  522. html += '<div class="upload-image-curtain">50%</div>';
  523. html += '</li>';
  524. $(".multuple-list").prepend(html);
  525. //删除预览图片
  526. $("#upload_img_" + index).bind("click", function () {
  527. delete files[index];
  528. // delete picture_arr[index];//删除所选队列
  529. $(this).parent('.upload-wrap').remove();
  530. // uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选
  531. //禁止点击
  532. if ($(".multuple-list li").length <= 1) {
  533. $("#chooseVideoAction").removeClass("bg-color").addClass("layui-btn-disabled").attr("disabled", "disabled");
  534. }
  535. });
  536. //禁止点击
  537. if ($(".multuple-list li").length > 1) {
  538. $("#chooseVideoAction").addClass("bg-color").removeClass("layui-btn-disabled").removeAttr("disabled");
  539. }
  540. });
  541. },
  542. done: function (res, index) {
  543. // picture_arr.push(res.data);
  544. var image_box = $(".upload-wrap[index='" + index + "']").parent().find(".upload-image-curtain");
  545. image_box.text("50%");
  546. image_box.show();
  547. if (res.code >= 0) {
  548. setTimeout(function () {
  549. image_box.text("100%");
  550. }, 500);
  551. setTimeout(function () {
  552. albumImgList(1, limit);
  553. updateAlbumNum(album_id);
  554. layer.close(layer_one);
  555. }, 1000);
  556. return delete this.files[index]; //删除文件队列已经上传成功的文件
  557. } else {
  558. setTimeout(function () {
  559. image_box.text("上传失败");
  560. }, 500);
  561. layer.msg(res.message); //删除文件队列已经上传成功的文件
  562. }
  563. }
  564. });
  565. }
  566. })
  567. });
  568. }
  569. var search = window.location.search,
  570. imgNum = parseInt(getSearchString('imgNum', search));
  571. function getSearchString(key, Url) {
  572. var str = Url;
  573. str = str.substring(1, str.length); // 获取URL中?之后的字符(去掉第一位的问号)
  574. // 以&分隔字符串,获得类似name=xiaoli这样的元素数组
  575. var arr = str.split("&");
  576. var obj = new Object();
  577. // 将每一个数组元素以=分隔并赋给obj对象
  578. for (var i = 0; i < arr.length; i++) {
  579. var tmp_arr = arr[i].split("=");
  580. obj[decodeURIComponent(tmp_arr[0])] = decodeURIComponent(tmp_arr[1]);
  581. }
  582. return obj[key];
  583. }
  584. /**
  585. * 添加分组
  586. */
  587. var flag_add_group = false;
  588. function addGrouping() {
  589. if (flag_add_group) return;
  590. flag_add_group = true;
  591. var add_attr = $("#addGroup").html();
  592. laytpl(add_attr).render({}, function(html) {
  593. add_attr_index = layer.open({
  594. title: '添加分组',
  595. skin: 'layer-tips-class',
  596. type: 1,
  597. area: ['500px', '250px'],
  598. content: html,
  599. success: function () {
  600. flag_add_group = false;
  601. form.render();
  602. },
  603. error: function () {
  604. flag_add_group = false;
  605. }
  606. });
  607. });
  608. }
  609. function childSwitch(obj){
  610. $(obj).parents('.layui-tree-checkedFirst').find('.layui-tree-child').toggle(0,'linear',function (res){
  611. if($(obj).parents('.layui-tree-checkedFirst').hasClass('layui-tree-spread')){
  612. $(obj).parents('.layui-tree-checkedFirst').removeClass('layui-tree-spread');
  613. }else{
  614. $(obj).parents('.layui-tree-checkedFirst').addClass('layui-tree-spread');
  615. }
  616. });
  617. }
  618. </script>
  619. {/block}