layui.use(function(){ var datas,local_theme,active; var buttons = [ {'name':'主页模板','dir':'home','display':true}, {'name':'过渡模板','dir':'transit','display':true}, {'name':'登录模板','dir':'login','display':true}, {'name':'验证模板','dir':'verify','display':true}, {'name':'收录模板','dir':'apply','display':apply}, {'name':'留言模板','dir':'guestbook','display':guestbook}, {'name':'文章模板','dir':'article','display':article}, {'name':'注册模板','dir':'register','display':is_admin}, {'name':'引导页模板','dir':'guide','display':is_admin} ]; var $tab = $('#tab'); $tab.append(''); $tab.append(''); $tab.append(''); buttons.forEach(item => { if(item.display){ $tab.append(``); } }); var tag_btns = $('#tab .dir'); local_theme = localStorage.getItem(u + "_theme_active") || 'home'; local_theme = tag_btns.filter('[dir="' + local_theme + '"]'); active = local_theme.length > 0 ? local_theme : tag_btns.first(); $(active).addClass('layui-this'); //激活第一个 active = $(active).attr('dir'); //取激活的dir load_data(active); //加载数据 //刷新按钮 $('#refresh').click(function() { load_data(active,true); }); //预览按钮 $("#preview").click(function() { window.open(`./index.php?c=${loginAddress}&u=${u}`); }); //提示信息 $("#tips").click(function() { let tip,url; let title = $("#tab .layui-this:first").text(); if(active == 'home'){ tip = '部分模板来自其它开源项目, 本程序仅做适配
主题版权归原作者所有, 如有问题请联系!
注意: 部分模板可能不支持书签分享'; }else if(active == 'login'){ tip = '只有使用您的专属登录入口时才会生效,即:概要页面中的专属地址>登录'; url = `./index.php?c=${loginAddress}&u=${u}`; }else if(active == 'verify'){ tip = '验证加密链接/加密分类/二级密码的页面样式'; }else if(active == 'apply'){ tip = '收录页面的样式,需在收录管理>设置>申请收录>开启'; url = `./index.php?c=apply&u=${u}`; }else if(active == 'guestbook'){ tip = '留言板的页面样式,需在留言管理>当前设置>允许留言(点击蓝字切换)'; url = `./index.php?c=guestbook&u=${u}`; }else if(active == 'article'){ tip = '浏览文章页面的样式,前端显示样式与后端编辑器不一致属正常现象!'; }else if(active == 'register'){ tip = '注册页面的样式'; }else if(active == 'guide'){ tip = '引导页面的样式,需将系统设置>默认页面>改为引导页面
未登录时直接访问域名显示引导页
登录后将显示用户主页'; } if(url != undefined){ layer.alert(tip, {title:title,shadeClose: true,anim: 2,closeBtn: 0, btn: ['预览', '确定'],btn1: function(){ layer.closeAll(); setTimeout(function() { window.open(url) }, 288); } }); }else{ layer.alert(tip,{title:title,shadeClose: true,anim: 2,closeBtn: 0}); } }); //设置(目前仅用于过渡页) $('#set_up').click(function() { if(active == 'transit'){ layer_open2('过渡页面设置',`/?c=admin&page=set_transit&u=${u}`); }else if(active == 'verify'){ layer_open2('过渡页面设置',`/?c=admin&page=set_verify&u=${u}`); } }); //切换tab按钮 tag_btns.click(function() { const dir = $(this).attr('dir'); if(active == dir) return; active = dir; tag_btns.removeClass('layui-this').filter(this).addClass('layui-this'); load_data(active); localStorage.setItem(u + "_theme_active",active); }); function layer_open2(title,url) { layer.open({type: 2,title: title,shadeClose: true,area : ['100%','100%'],scrollbar: false,resize: false,content: url}); } //加载数据 function load_data(dir,cache = false) { const set_up = (dir == 'transit' || dir == 'verify'); $("#set_up")[ set_up ? "show" : "hide"](); $("#tips")[ !set_up ? "show" : "hide"](); layer.load(1, {shade: [0.5,'#fff']});//加载层 layer.msg('正在获取数据..', {icon: 16,time: 1000*300}); $.post(`./index.php?c=api&method=read_theme&dir=${dir}&u=${u}&cache=${cache ? 'no':'yes'}`, function (r, status) { layer.closeAll(); if (r.code == 1) { if(r.referrer.length > 0){ $('meta[name="referrer"]').replaceWith(``); } datas = r.data; render_data(r); } else { layer.alert("获取数据失败,请重试!",{icon:5,title:'错误',anim: 2,closeBtn: 1,btn: ['刷新页面']},function () {location.reload();}); } }).fail(function () { layer.alert("获取数据异常,请重试!",{icon:5,title:'错误',anim: 2,closeBtn: 1,btn: ['刷新页面']},function () {location.reload();}); }); } //渲染数据 function render_data(d){ $row = $('.layui-row'); $row.html(''); for (const key in d.data) { const t = d.data[key]; let upordw = ''; if(is_admin){ if(t.state == 'dw' || t.state == 'up'){ upordw = ``; } } let html = `
${t.name}
${t.version}
${upordw} ${t.state == 'local' || t.state == 'up' ? '':''} ${(t.state == 'local' || t.state == 'up') && active == 'home' ? '':''} ${t.config == '1' && theme_set == true ? '':''} ${(t.state == 'local' || t.state == 'up' ) && is_admin == true ? '':''}
`; $row.append(html); } //标记当前模板,使用中靠前显示 if(active == 'home'){ var current1 = $(`#t_${d.current.home_pc}`); current1.css('color','#03a9f4'); current1.prepend(' '); $(`#col_${d.current.home_pc}`).prependTo($row); var current2 = $(`#t_${d.current.home_pad}`); current2.css('color','#03a9f4'); current2.prepend(' '); $(`#col_${d.current.home_pad}`).prependTo($row); }else{ if(d.current[active] !== null && d.current[active] !== undefined && d.current[active].length > 0){ var current = $(`#t_${d.current[active]}`); current.css('color','#03a9f4'); current.prepend(' '); $(`#col_${d.current[active]}`).prependTo($row); } } $(`#col_default`).prependTo($row); //点击图片放大 layer.photos({photos: '.img-list',anim: 5}); //懒加载预览图 $('.screenshot').lazyload({placeholder:"./templates/admin/img/loading.gif",threshold : 600}); //监听按钮 $(".layui-btn-group .layui-btn").click(function () { var dir= $(this).parent().attr("id");//取目录名key var fn= $(this).parent().parent().attr("id");//取模板类型 var type = $(this).attr("id");//取事件类型 var data = datas[dir]; //console.log('目录:'+dir+',类型:'+type+',模板类型:'+fn); if(type === 'dw' || type === 'up' ){ //下载或更新 if (data.desc != null && data.desc.length != 0){ //存在描述时弹窗显示描述 layer.open({title:data.name,content: data.desc,btn: ['下载', '取消'] ,yes: function(index, layero){ theme_download(dir,data.name,data.desc,fn); },btn2: function(index, layero){ return true; },cancel: function(){ return true; } }); }else{ theme_download(dir,data.name,data.desc,fn); } }else if(type === 'del' ){ //删除 layer.confirm('确认删除?',{icon: 3, title:'温馨提示'}, function(index){ theme_del(dir,fn); }); }else if(type === 'config' ){ //配置 theme_config(dir,data.name,fn); }else if(type === 'preview' ){ //预览 if(fn == 'home'){ window.open('./index.php?theme='+dir+'&u='+u); }else{ layer.msg('不支持预览此模板', {icon: 3});return; } }else if(type === 'set' ){ //使用 if(fn == 'home'){ set_theme(dir,data.name,fn); }else{ set_theme2(dir,'',fn); } }else if(type === 'detail' ){ //详情 theme_detail(data); } }); } //下载主题 function theme_download(dir,name,desc,fn){ layer.msg('下载安装中,请稍后..', {shade:[0.5,'black'],anim: 1,icon: 16,time: 1000*300}); $.post(get_api('write_theme','download'),{dir:dir,name:name,fn:fn},function(data,status){ layer.closeAll(); if( data.code == 1 ) { layer.msg(data.msg, {icon: 1}); setTimeout(() => {load_data(active);}, 800); }else{ layer.alert(data.msg,{icon:5,title:"错误",anim: "slideDown",shadeClose: true,closeBtn: 0,btn: ['知道了']}); } }); } //删除主题 function theme_del(dir,fn){ layer.load(1, {shade:[0.5,'black']});//加载层 layer.msg('正在删除,请稍后..', {offset: 'b',anim: 1,time: 60*1000}); $.post(get_api('write_theme','del'),{dir:dir,fn:fn},function(data,status){ layer.closeAll(); if( data.code == 1 ) { layer.msg(data.msg, {icon: 1}); setTimeout(() => {load_data(active);}, 800); }else{ layer.msg(data.msg, {icon: 5}); } }); } //载入主题配置 function theme_config(key,name,fn){ layer.open({ type: 2, title: name + ' - 主题配置', shadeClose: true, area : [( $(window).width() < 768 ? '100%' : '666px' ),'100%'], scrollbar: false, resize: false, offset: 'rt', content: './index.php?c=admin&page=config_home&u='+u+'&theme='+key+'&fn='+fn+'&source=admin', }); } //使用主题提示框 function set_theme(key,name,fn) { layer.open({ title:name ,content: '请选择要应用的设备类型 ?' ,btn: ['全部', 'PC', 'Pad'] ,yes: function(index, layero){ set_theme2(key,'PC/Pad',fn); },btn2: function(index, layero){ set_theme2(key,'PC',fn); },btn3: function(index, layero){ set_theme2(key,'Pad',fn); },cancel: function(){ return true; } }); } //使用主题 function set_theme2(name,type,fn) { $.post(get_api('write_theme','set'),{type:type,name:name,fn:fn},function(data,status){ if( data.code == 1 ) { layer.msg(data.msg, {icon: 1}); setTimeout(() => {load_data(active);}, (data.msg == '设置成功' ? 800 : 2000)); }else{ layer.msg(data.msg, {icon: 5}); } }); } //主题详情 function theme_detail(data){ layer.open({type: 1,scrollbar: false,maxmin: false,shadeClose: true,resize: false,title: data.name + ' - 主题详情',area: ['60%', '59%'],content: '

'+data.name+'

描述:'+data.description+'

版本:'+data.version+'

更新时间:'+data.update+'

作者:'+data.author+'

主页:访问主页

'}); } });