layui.use(['form','table','treetable','xIcon'], function () { var $ = layui.jquery; var table = layui.table; var treetable = layui.treetable; var form = layui.form; var xIcon = layui.xIcon; var data_tr; var type = '&type=all'; var index,limit,disabled_id; var pwds = []; //表头 cols =[[ {type:'radio'} ,{field:'cid',title:'ID',width:62,align:'center'} ,{field:'name',title:'分类名称',width:220} ,{title:'操作',toolbar:'#tablebar',width:120} ,{field:'pwd_id',title:'密码',width:70,templet: function(d){ return d.pwd_id>0?'查看':''; }} ,{field:'add_time', title: '添加时间', width:166,templet:function(d){return timestampToTime(d.add_time);}} //,{field:'up_time',title:'修改时间',width:166,templet:function(d){return timestampToTime(d.up_time)}} ,{field: 'count', title: '链接数', width: 80,align:'center'} ,{field: 'property', title: '私有', width: 100,templet: function(d){ return ""; }} ,{field: 'status', title: '状态', width: 100,templet: function(d){ return ""; }} ,{field:'description', title: '描述'} ]]; //渲染表格函数 var renderTable = function () { layer.load(2); treetable.render({ treeColIndex: 2, treeSpid: 0, height: 'full-32', treeIdName: 'cid', treePidName: 'fid', elem: '#table', treeDefaultClose: false, //是否默认折叠 url: get_api('read_category_list') + type, page: false, even: true, cols: cols, skin:'line', toolbar: '#toolbar', defaultToolbar:false, done: function (res, curr, count) { //渲染完毕事件 $("[data-field='0']").css('display','none');//隐藏列 //手机端不显示的列 $("[data-field='cid']").addClass('layui-hide-xs'); $("[data-field='description']").addClass('layui-hide-xs'); $("[data-field='add_time']").addClass('layui-hide-xs'); $("[data-field='up_time']").addClass('layui-hide-xs'); $("[data-field='count']").addClass('layui-hide-xs'); //显示底部条 $('.treeTable .layui-table-page').css('display', 'block'); //删除底部的分页元素 $(".treeTable .layui-laypage-skip").remove(); $(".treeTable .layui-laypage-limits").remove(); $(".treeTable .layui-laypage-curr").remove(); $(".treeTable .layui-table-page a").remove(); //条数左边留空(手机端遮挡) $(".treeTable .layui-laypage-count").css("padding-left","35px"); //添加当前选择提示 $('.treeTable .layui-box').append(''); //分类切换按钮 $("#btn-type").text(type == '&type=all' ?'收起':'展开'); //将一级分类加入下拉框 let old_val = $("#fid").val(); $("#fid").empty(); $("#fid").append(""); for (i = 0; i < count; i++) { if(res.data[i].fid == 0){ $("#fid").append(""); } } $("#fid").val(old_val); form.render('select'); limit = false; //取消修改限制 layer.closeAll('loading'); //关闭加载层 //加载加密分组数据 $.post(get_api('read_pwd_group_list'),{'page':'1','limit':'9999'},function(data,status){ if(data.code == 1){ pwds = []; for(var i =0;i密码: ' + pwds['pid_' + data.pwd_id].pwd,{icon:4,title: data.name+ ' - 访问密码',anim: 2,closeBtn: 0}); } }); //工具栏监听 table.on('toolbar(table)', function(obj){ $("*").blur(); if(obj.event == 'refresh'){ renderTable(); }else if(obj.event == 'add'){ if(limit){layer.tips("^_^ 请先保存排序.","#btn-save",{tips: [3, "#3595CC"],time: 3000});return;} xIcon.setValue('#font_icon','fa fa-star-o');//默认星星图标 form.val('add', {"name": "","description": "","type": "add","icon":"","fid":'0',"pwd_id":"0"}); //$("#name").val(randomString(8)); //调试用,随机字符串,省的输入名称 $("#save").text('新增'); $("#continuity_f").css('display','block'); index = layer.open({type: 1,scrollbar: false,shadeClose: true,title: '新增分类',area : ['100%', '100%'],content: $('.add')}); }else if(obj.event == 'uptr'){ uptr(); }else if(obj.event == 'downtr'){ downtr(); }else if(obj.event == 'save'){ updateSortData(); }else if(obj.event == 'type'){ //收起/展开 if(limit){layer.tips("^_^ 请先保存排序.","#btn-save",{tips: [3, "#3595CC"],time: 3000});return;} if(type == '&type=all'){ type = '&type=onlyf'; renderTable(); }else{ type = '&type=all'; renderTable(); } } }); //关闭按钮 $(document).on('click', '#close', function() { $("#fid option[value='" + disabled_id + "']").removeAttr("disabled");//取消禁止 layer.close(index);//关闭当前页 }); //单选框选择事件 table.on('radio(table)', function(obj){ data_tr = $(this); }); //图标选择器初始化 xIcon.render({ elem: '#font_icon', type: 'awesome', //'layui,awesome' search: true, // 是否开启搜索 page: false, // 是否开启分页 limit: 100, // 每页显示数量 click: function (data) {// 点击回调 console.log(data.icon); $("#font_icon").val(data.icon); } }); //添加/更新 form.on('submit(save)', function (data) { $("*").blur(); $.post(get_api('write_category',data.field.type),data.field,function(data,status){ if(data.code == 1) { renderTable(); //刷新表 //添加成功,如果勾选连续添加且元素未隐藏 if($("#continuity").is(":checked") && $('#continuity_f').css('display') !='none'){ $("#name").val('');$("#description").val(''); layer.msg('添加成功', {icon: 1}); $("#name").focus() return false; } layer.msg(data.msg, {icon: 1}); layer.close(index); $("#fid option[value='" + disabled_id + "']").removeAttr("disabled");//取消禁止 }else{ layer.msg(data.msg, {icon: 5}); } }); return false; }); //保存排序 function updateSortData() { var new_datas = []; var datas = layui.table.cache["table"]; if(datas.length > 1){ if(type == '&type=all'){ for (var i = 0; i < datas.length; i++) { if(datas[i].fid != 0){fi++;new_datas.push([datas[i].cid,fi])}else{fi = 0;} } }else{ for (var i = 0; i < datas.length; i++) {new_datas.push([datas[i].cid,i+1])} } } $.post(get_api('write_category','order'),{data:new_datas},function(data,status){ if(data.code == 1) { renderTable(); //刷新表 layer.msg("保存排序成功",{icon:1}); }else{ layer.msg("保存排序失败",{icon:5}); } }); } // 上移 function uptr() { var datas = layui.table.cache["table"]; var checkStatus = table.checkStatus('table'), data = checkStatus.data; if (typeof (data[0]) == "undefined") { layer.msg("请选择一条要移动的数据"); } else { var tr = $(data_tr).parent().parent().parent(); var tem = datas[tr.index()]; var tem2 = datas[tr.prev().index()]; if(type == '&type=all' && tem.fid == 0 ){ layer.tips("^_^ 点我.","#btn-type",{tips: [3, "#3595CC"],time: 3000}); layer.msg("请收起二级分类在排序",{icon:5}); return; } if ($(tr).prev().html() == null) { layer.msg("已经是最顶部了"); return; } if(tem.fid != 0 && tem2.cid == tem.fid){ layer.msg("不能超出父分类"); return; } limit = true; $(tr).insertBefore($(tr).prev()); datas[tr.index()] = tem; datas[tr.next().index()] = tem2; } } // 下移 function downtr() { var datas = layui.table.cache["table"]; var checkStatus = table.checkStatus('table'), data = checkStatus.data; if (typeof (data[0]) == "undefined") { layer.msg("请选择一条要移动的数据"); } else { var tr = $(data_tr).parent().parent().parent(); var tem = datas[tr.index()]; var tem2 = datas[tr.next().index()]; if(type == '&type=all' && tem.fid == 0 ){ layer.tips("^_^ 点我.","#btn-type",{tips: [3, "#3595CC"],time: 3000}); layer.msg("请收起二级分类在排序",{icon:5}); return; } if ($(tr).next().html() == null) { layer.msg("已经是最底部了"); return; } if(tem.fid != 0 && tem.fid != tem2.fid){ layer.msg("不能超出父分类"); return; } limit = true; $(tr).insertAfter($(tr).next()); datas[tr.index()] = tem; datas[tr.prev().index()] = tem2; } } });