v2.0.12-20230417

This commit is contained in:
MI15\Win
2023-04-17 16:26:10 +08:00
parent 0ef96aba23
commit fa292ba2ab
22 changed files with 506 additions and 126 deletions

View File

@@ -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;
});
});

View File

@@ -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>

View File

@@ -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>

View 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
}
?>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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]);

View File

@@ -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){ //管理员&本地主题>显示删除

View File

@@ -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>