mirror of
https://github.com/tznb1/TwoNav.git
synced 2025-08-10 08:51:49 +00:00
v2.0.12-20230417
This commit is contained in:
@@ -165,7 +165,7 @@ layui.use(['form','table','dropdown','miniTab'], function () {
|
||||
}
|
||||
|
||||
var checkStatus = table.checkStatus(obj.config.id);
|
||||
if( checkStatus.data.length == 0 && ['LAYTABLE_COLS','LAYTABLE_EXPORT','LAYTABLE_PRINT','batch'].indexOf(event) == -1 ) {
|
||||
if( checkStatus.data.length == 0 && ['LAYTABLE_COLS','LAYTABLE_EXPORT','LAYTABLE_PRINT','batch','link_extend'].indexOf(event) == -1 ) {
|
||||
layer.msg('未选中任何数据!');
|
||||
return;
|
||||
}
|
||||
@@ -248,9 +248,63 @@ layui.use(['form','table','dropdown','miniTab'], function () {
|
||||
return true;
|
||||
}
|
||||
})
|
||||
}else if(event === 'icon_pull'){
|
||||
let i = 0;
|
||||
let total = checkStatus.data.length;
|
||||
layer.load(1, {shade:[0.3,'#fff']});//加载层
|
||||
let msg_id = layer.msg('正在拉取中', {icon: 16,time: 1000*300});
|
||||
icon_pull(i);
|
||||
function icon_pull(id){
|
||||
if(i >= total){
|
||||
layer.closeAll();
|
||||
layer.alert('拉取完毕',{icon:1,title:'信息',anim: 2,shadeClose: false,closeBtn: 0});
|
||||
return true;
|
||||
}
|
||||
$("#layui-layer"+ msg_id+" .layui-layer-padding").html('<i class="layui-layer-ico layui-layer-ico16"></i>[ ' + i + ' / ' + total + ' ] 正在拉取图标');
|
||||
$.post(get_api('write_link','icon_pull'),{id:checkStatus.data[i].lid},function(data,status){
|
||||
if(data.code == 1){
|
||||
i ++;
|
||||
icon_pull(i);
|
||||
} else{
|
||||
layer.closeAll();
|
||||
layer.alert(data.msg,{icon:5,title:'信息',anim: 2,shadeClose: false,closeBtn: 0});
|
||||
}
|
||||
});
|
||||
}
|
||||
}else if(event === 'link_extend'){
|
||||
extend_data = '';
|
||||
index = layer.open({type: 1,scrollbar: false,shadeClose: true,title: '编辑扩展字段',area : ['100%', '100%'],content: $('.link_extend')});
|
||||
$.post(get_api('read_link_list','extend_list'),function(data,status){
|
||||
if(data.code == 1){
|
||||
extend_data = data.data;
|
||||
table.reload('link_extend_list', {data: extend_data});
|
||||
} else{
|
||||
layer.msg(data.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
table.render({
|
||||
elem: '#link_extend_list'
|
||||
,height: 'full-150'
|
||||
,data: {}
|
||||
,response: {statusCode: 1 }
|
||||
,method: 'post'
|
||||
,page: false
|
||||
,limit: 1000
|
||||
,even:true
|
||||
,id:'link_extend_list'
|
||||
,loading:true
|
||||
,cols: [[
|
||||
{field:'weight',title:'序号',edit:'text',width:80}
|
||||
,{field:'title',title:'标题',edit:'text',width:256}
|
||||
,{field:'name',title:'字段名',edit:'text',width:256}
|
||||
,{field:'type',title:'类型',edit:'text',width:256}
|
||||
,{field:'default',title:'默认值',edit:'text',width:256}
|
||||
,{ title:'操作',toolbar:'#link_extend_toolbar',align:'center',width:118}
|
||||
]]
|
||||
});
|
||||
//监听工具条
|
||||
table.on('tool(table)', function (obj) {
|
||||
var data = obj.data;
|
||||
@@ -375,4 +429,58 @@ layui.use(['form','table','dropdown','miniTab'], function () {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//自定义字段行事件
|
||||
table.on('tool(link_extend_list)', function (obj) {
|
||||
var data = obj.data;
|
||||
var row = $(obj.tr).attr("data-index"); //获取行索引
|
||||
if (obj.event === 'del') {
|
||||
layer.confirm('确认移除?',{icon: 3, title:'温馨提示'}, function(index){
|
||||
obj.del();
|
||||
layer.close(index);
|
||||
layer.msg("移除成功,点击保存后生效!",{icon:1});
|
||||
});
|
||||
}
|
||||
});
|
||||
//添加字段
|
||||
$('#add_field').click(function () {
|
||||
let data = table.cache.link_extend_list;
|
||||
let max_weight = 0;
|
||||
//找出最大的一个排序值
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
if( parseInt(data[i].weight) > max_weight ){
|
||||
max_weight = parseInt(data[i].weight);
|
||||
}
|
||||
}
|
||||
data.push({
|
||||
"title": "请输入标题",
|
||||
"name":"请输入字段名(大小写字母或数字)",
|
||||
"weight":(max_weight + 1),
|
||||
"type":"请输入 text 或 textarea",
|
||||
"default":""
|
||||
});
|
||||
table.reload('link_extend_list', {data: data});
|
||||
return false;
|
||||
});
|
||||
//保存字段
|
||||
$('#save_field').click(function () {
|
||||
var data = [];
|
||||
var tableBak = table.cache.link_extend_list;
|
||||
for (var i = 0; i < tableBak.length; i++) {
|
||||
//过滤掉被删除的空数据
|
||||
if(typeof tableBak[i].LAY_TABLE_INDEX == 'number'){
|
||||
data.push(tableBak[i]);
|
||||
}
|
||||
}
|
||||
$.post(get_api('write_link','extend_list') ,{list:JSON.stringify(data)},function(data,status){
|
||||
if(data.code == 1){
|
||||
table.reload("link_extend_list",{data:data.datas});
|
||||
layer.msg('保存成功', {icon: 1});
|
||||
} else{
|
||||
layer.msg(data.msg,{icon:5});
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -62,6 +62,8 @@
|
||||
<option value="4" >api.15777.cn</option>
|
||||
<option value="5" >favicon.cccyun.cc</option>
|
||||
<option value="6" >api.iowen.cn</option>
|
||||
<!--<option value="7" >toolb.cn</option>-->
|
||||
<!--<option value="8" >apis.jxcxin.cn</option>-->
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">所有API接口均由其他大佬提供!若有异常请尝试更换接口!</div>
|
||||
|
||||
@@ -99,7 +99,11 @@ $title='编辑链接';$awesome=true; require 'header.php';
|
||||
<textarea name="description" id="description" placeholder="请输入内容" class="layui-textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
//判断全局是否开启扩展
|
||||
if($global_config['link_extend'] && check_purview('link_extend',1)){
|
||||
require 'link_extend.php';
|
||||
}?>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block layui-btn-group">
|
||||
<button class="layui-btn layui-btn-warm" type="button" id="close" >关闭</button>
|
||||
|
||||
47
templates/admin/page/link_extend.php
Normal file
47
templates/admin/page/link_extend.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
|
||||
<legend>扩展字段</legend>
|
||||
</fieldset>
|
||||
<?php
|
||||
//读取扩展字段列表
|
||||
$list = get_db("user_config","v",["k"=>"s_extend_list","uid"=>UID]);
|
||||
//不为空则渲染
|
||||
if(!empty($list)){
|
||||
$list = unserialize($list);
|
||||
$extend_data = get_db('user_links','extend',['uid'=>UID,'lid'=>$link['lid']]);
|
||||
$extend_data = empty($extend_data) ? [] : unserialize($extend_data);
|
||||
|
||||
foreach ($list as $data) {
|
||||
$field = "_".$data['name'];
|
||||
$data['value'] = isset($extend_data[$field]) ? $extend_data[$field] : $data['default'];
|
||||
if($data['type'] == 'text'){
|
||||
echo_text($data);
|
||||
}elseif($data['type'] == 'textarea'){
|
||||
echo_textarea($data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function echo_text($data){ ?>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><?php echo $data['title']?></label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="_<?php echo $data['name']?>" autocomplete="off" value="<?php echo $data['value']?>" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
function echo_textarea($data){ ?>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><?php echo $data['title']?></label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="_<?php echo $data['name']?>" class="layui-textarea"><?php echo $data['value']?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
@@ -65,7 +65,12 @@
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal layui-hide-xs" lay-event="batch_public" id="batch_public">设为公开</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal layui-hide-xs" lay-event="batch_start" id="batch_start">设为启用</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal layui-hide-xs" lay-event="batch_disable" id="batch_disable">设为禁用</button>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal layui-btn-danger layui-hide-xs" lay-event="testing" id="testing" <?php echo $global_config['offline']?'style="display:none;"':''?> >检测</button>
|
||||
<?php if($global_config['link_extend'] == 1 && check_purview('link_extend',1)){ ?>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal layui-btn-danger layui-hide-xs" lay-event="link_extend" id="link_extend">扩展字段</button>
|
||||
<?php }?>
|
||||
<?php if($global_config['offline'] != 1 ){ ?>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal layui-btn-danger layui-hide-xs" lay-event="testing" id="testing">检测</button>
|
||||
<?php }?>
|
||||
<button class="layui-btn layui-btn-sm layui-btn-normal layui-btn-danger" layuimini-content-href="link_sort" data-title="链接排序">排序模式</button>
|
||||
</div>
|
||||
</script>
|
||||
@@ -73,25 +78,35 @@
|
||||
<script src = "./templates/admin/js/public.js?v=<?php echo $Ver;?>"></script>
|
||||
<?php load_static('js');?>
|
||||
<script src = "./templates/admin/js/link_list.js?v=<?php echo $Ver;?>"></script>
|
||||
<ul class="batch_category" style = "margin-top:18px;display:none;padding-right: 10px;" >
|
||||
<ul class="batch_category" style="margin-top:18px;display:none;padding-right: 10px;">
|
||||
<form class="layui-form" lay-filter="batch_category">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">父级分类</label>
|
||||
<div class="layui-input-block">
|
||||
<select id="batch_category_fid">
|
||||
<select id="batch_category_fid">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn layui-btn-normal" lay-submit lay-filter="batch_category" id="batch_category" >确定修改</button>
|
||||
<button class="layui-btn layui-btn-warm" type="button" id="close" >关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</form>
|
||||
</ul>
|
||||
<ul class="link_extend" style="margin-top: 18px;display:none;padding-right: 10px;padding-left: 10px;">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn" lay-submit id="add_field">新增字段</button>
|
||||
<button class="layui-btn" lay-submit id="save_field">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" style="color: red;">数据变更需要点击保存!确定好需要的字段后请勿随意修改,以免造成数据错乱!</button>
|
||||
</div>
|
||||
<table id="link_extend_list" lay-filter="link_extend_list"></table>
|
||||
<script type="text/html" id="link_extend_toolbar">
|
||||
<div class="layui-btn-container">
|
||||
<button class="layui-btn layui-btn-sm layui-btn-danger del" lay-event="del">移除</button>
|
||||
</div>
|
||||
</script>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
@@ -179,7 +179,16 @@ $title='系统设置';require(dirname(__DIR__).'/header.php');
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">此处关闭时即使用户组允许也无法使用!</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label required">链接扩展</label>
|
||||
<div class="layui-input-inline">
|
||||
<select name="link_extend">
|
||||
<option value="0" selected="">关闭</option>
|
||||
<option value="1" >开启</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">自定义链接的扩展信息(需自行添加字段,目前仅用于自定义过渡页)</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block"><button class="layui-btn layui-btn-normal" lay-submit lay-filter="save">确认保存</button></div>
|
||||
</div>
|
||||
|
||||
@@ -339,16 +339,17 @@ layui.use(['form','table','laydate','tableSelect'], function () {
|
||||
}else if(obj.event === 'edit'){
|
||||
form.val('data', data);
|
||||
form.val('data', {'pv':data.pv == 1});
|
||||
console.log(data.data);
|
||||
data.data = ts_selected_format(data.data,/"/g);
|
||||
let ts = ts_selected_format(data.data);
|
||||
if(data.type == '1'){
|
||||
$('#category_data').val(data.data);
|
||||
$('#category_data').attr("ts-selected",data.data.replace('[', '').replace(']', ''));
|
||||
$('#category_data').attr("ts-selected",ts);
|
||||
type = 'category';
|
||||
$('#cf').show();
|
||||
$('#lf').hide();
|
||||
}else if(data.type == '2'){
|
||||
$('#link_data').val(data.data);
|
||||
$('#link_data').attr("ts-selected",data.data.replace('[', '').replace(']', ''));
|
||||
$('#link_data').attr("ts-selected",ts);
|
||||
type = 'link';
|
||||
$('#cf').hide();
|
||||
$('#lf').show();
|
||||
@@ -358,7 +359,9 @@ layui.use(['form','table','laydate','tableSelect'], function () {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function ts_selected_format(v,z = /"|\[|\]/g){
|
||||
return v.replace(z,'')
|
||||
}
|
||||
|
||||
//书签选择
|
||||
function load_tableSelect(searchPlaceholder,name,url,elem,limit,limits){ tableSelect.render({
|
||||
@@ -386,7 +389,7 @@ layui.use(['form','table','laydate','tableSelect'], function () {
|
||||
id.push(item.id);
|
||||
})
|
||||
elem.val(id.join(","));
|
||||
$(elem).val(JSON.stringify(id));
|
||||
$(elem).val(ts_selected_format(JSON.stringify(id),/"/g) );
|
||||
}
|
||||
})}
|
||||
load_tableSelect('分类名称搜索','分类名',get_api('read_share','categorys'),'#category_data',9999,[9999]);
|
||||
|
||||
@@ -52,6 +52,7 @@ $color = ($s_templates['home_pc'] == $key || $s_templates['home_pad'] == $key ?"
|
||||
<div class="layui-card-header" style="height: auto;" id="home">
|
||||
<div class="layui-btn-group" id="<?php echo $key;?>">
|
||||
<?php
|
||||
$theme_set = check_purview('theme_set',1);
|
||||
if($online){ //如果是在线主题则显示下载
|
||||
echo $Space.'<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="dw">下载</button>'."\n";
|
||||
}elseif($theme['info']['up'] == 1){ //如果有更新则同时显示下载和使用
|
||||
@@ -64,7 +65,7 @@ $color = ($s_templates['home_pc'] == $key || $s_templates['home_pad'] == $key ?"
|
||||
if(!$online){ //本地主题显示预览
|
||||
echo $Space.'<button type="button" class="layui-btn layui-btn-sm layui-btn-normal" id="preview">预览</button>'."\n";
|
||||
}
|
||||
if($theme['info']['config'] == '1'){ //支持配置的主题显示配置
|
||||
if($theme['info']['config'] == '1' && $theme_set){ //支持配置的主题显示配置
|
||||
echo $Space.'<button type="button" class="layui-btn layui-btn-sm layui-btn-normal" id="config">配置</button>'."\n";
|
||||
}
|
||||
if($USER_DB['UserGroup'] === 'root' && !$online){ //管理员&本地主题>显示删除
|
||||
|
||||
@@ -2,6 +2,20 @@
|
||||
<body>
|
||||
<div class="layuimini-container">
|
||||
<div class="layuimini-main" style=" margin-left: 20px;">
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
<h4 class="layui-timeline-title">v2.0.12-20230417</h4>
|
||||
<ul>
|
||||
<li>优化书签分享的兼容性</li>
|
||||
<li>新增链接自定义扩展信息(用于自定义过渡页模板)</li>
|
||||
<li>[数据库更新] 调整MySQL字符集编码(utf8改为utf8mb4,使其兼容Emoji字符)</li>
|
||||
<li>[数据库更新] 用户组权限列表新增3个选项</li>
|
||||
<li>调整用户无权限配置站点信息时隐藏入口</li>
|
||||
<li>修复已知问题</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li class="layui-timeline-item">
|
||||
<i class="layui-icon layui-timeline-axis"></i>
|
||||
<div class="layui-timeline-content layui-text">
|
||||
@@ -9,7 +23,7 @@
|
||||
<ul>
|
||||
<li>修复热门网址/最新网址的一些问题</li>
|
||||
<li>新增Atool工具 (应急工具),用于强行修改密码/配置等 <a href="https://gitee.com/tznb/TwoNav/wikis/pages?sort_id=7993451&doc_id=3767990" target="_blank">使用说明</a></li>
|
||||
<li>调整安装脚本session_name避免与其他面板冲突(如小皮面板,造成安装提示无法满足)</li>
|
||||
<li>调整安装脚本session_name避免特定环境冲突</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
Reference in New Issue
Block a user