| @@ -16,15 +16,20 @@ include(DEDEDATA.'/mark/inc_photowatermark_config.php'); | |||||
| <link rel="stylesheet" href="/static/web/css/bootstrap.min.css"> | <link rel="stylesheet" href="/static/web/css/bootstrap.min.css"> | ||||
| <link rel="stylesheet" href="/static/web/css/admin.css"> | <link rel="stylesheet" href="/static/web/css/admin.css"> | ||||
| </head> | </head> | ||||
| <body> | |||||
| <div id="wrap"> | |||||
| <div id="topbar"> | |||||
| <body class="p-3"> | |||||
| <div class="card shadow-sm mb-3"> | |||||
| <div id="imgs-topbar" class="card-body"> | |||||
| <label><input type="checkbox" name="isWater" id="isWater" <?php if ($photo_markup == '1') echo 'checked';?>> 是否水印</label> | <label><input type="checkbox" name="isWater" id="isWater" <?php if ($photo_markup == '1') echo 'checked';?>> 是否水印</label> | ||||
| <button class="btn btn-success btn-sm addfile">添加图片</button> | <button class="btn btn-success btn-sm addfile">添加图片</button> | ||||
| <button class="btn btn-success btn-sm removeall">清空图片</button> | <button class="btn btn-success btn-sm removeall">清空图片</button> | ||||
| <button class="btn btn-success btn-sm upall">全部上传</button> | <button class="btn btn-success btn-sm upall">全部上传</button> | ||||
| </div> | </div> | ||||
| <ul id="file_list"></ul> | |||||
| </div> | |||||
| <div class="card shadow-sm"> | |||||
| <div class="card-header">插入多图</div> | |||||
| <div class="card-body"> | |||||
| <ul id="imgs-list"></ul> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <script> | <script> | ||||
| var axupimgs = {}; | var axupimgs = {}; | ||||
| @@ -57,7 +62,7 @@ include(DEDEDATA.'/mark/inc_photowatermark_config.php'); | |||||
| var upload_base_path = axupimgs.images_upload_base_path; | var upload_base_path = axupimgs.images_upload_base_path; | ||||
| //为列表添加排序 | //为列表添加排序 | ||||
| function reSort() { | function reSort() { | ||||
| document.querySelectorAll('#file_list li').forEach((el, i) => { | |||||
| document.querySelectorAll('#imgs-list li').forEach((el, i) => { | |||||
| el.setAttribute('data-num', i); | el.setAttribute('data-num', i); | ||||
| }); | }); | ||||
| } | } | ||||
| @@ -81,13 +86,13 @@ include(DEDEDATA.'/mark/inc_photowatermark_config.php'); | |||||
| li.innerHTML='<div class="picbox"><img src="'+blobUrl+'"></div><div class="namebox"><span>'+file.name+'</span></div><div class="tools"><a class="remove"></a></div>'; | li.innerHTML='<div class="picbox"><img src="'+blobUrl+'"></div><div class="namebox"><span>'+file.name+'</span></div><div class="tools"><a class="remove"></a></div>'; | ||||
| vDom.appendChild(li); | vDom.appendChild(li); | ||||
| } | } | ||||
| document.querySelector('#file_list').appendChild(vDom); | |||||
| document.querySelector('#imgs-list').appendChild(vDom); | |||||
| //reSort(); | //reSort(); | ||||
| } | } | ||||
| //清空列表 | //清空列表 | ||||
| document.querySelector('#topbar .removeall').addEventListener('click', () => { | |||||
| document.querySelector('#imgs-topbar .removeall').addEventListener('click', () => { | |||||
| axupimgs.res=[] | axupimgs.res=[] | ||||
| document.querySelectorAll('#file_list li').forEach((el, i) => { | |||||
| document.querySelectorAll('#imgs-list li').forEach((el, i) => { | |||||
| el.parentNode.removeChild(el) | el.parentNode.removeChild(el) | ||||
| }); | }); | ||||
| }); | }); | ||||
| @@ -124,7 +129,7 @@ include(DEDEDATA.'/mark/inc_photowatermark_config.php'); | |||||
| } | } | ||||
| }); | }); | ||||
| //添加文件 | //添加文件 | ||||
| document.querySelector('#topbar .addfile').addEventListener('click', () => { | |||||
| document.querySelector('#imgs-topbar .addfile').addEventListener('click', () => { | |||||
| var input = document.createElement('input'); | var input = document.createElement('input'); | ||||
| input.setAttribute('type', 'file'); | input.setAttribute('type', 'file'); | ||||
| input.setAttribute('multiple', 'multiple'); | input.setAttribute('multiple', 'multiple'); | ||||
| @@ -141,7 +146,7 @@ include(DEDEDATA.'/mark/inc_photowatermark_config.php'); | |||||
| file_i = n; | file_i = n; | ||||
| if (len == n) { | if (len == n) { | ||||
| file_i=0; | file_i=0; | ||||
| document.querySelector('#topbar .upall').innerText='全部上传'; | |||||
| document.querySelector('#imgs-topbar .upall').innerText='全部上传'; | |||||
| //返回 | //返回 | ||||
| axupimgs.res.forEach((v, k) => { | axupimgs.res.forEach((v, k) => { | ||||
| let addonHTML = `<img src='${v.url}'>`; | let addonHTML = `<img src='${v.url}'>`; | ||||
| @@ -168,26 +173,26 @@ include(DEDEDATA.'/mark/inc_photowatermark_config.php'); | |||||
| } | } | ||||
| axupimgs.res[file_i].url = url; | axupimgs.res[file_i].url = url; | ||||
| filename = url.split('/').pop(); | filename = url.split('/').pop(); | ||||
| var li = document.querySelectorAll('#file_list li')[file_i]; | |||||
| var li = document.querySelectorAll('#imgs-list li')[file_i]; | |||||
| li.setAttribute('class','up-over'); | li.setAttribute('class','up-over'); | ||||
| li.querySelector('.namebox span').innerText = filename; | li.querySelector('.namebox span').innerText = filename; | ||||
| n++ | n++ | ||||
| upAllFiles(n); | upAllFiles(n); | ||||
| },function(err) { | },function(err) { | ||||
| document.querySelector('#topbar .upall').innerText='全部上传'; | |||||
| document.querySelectorAll('#file_list li.up-now').forEach((el,i) => { | |||||
| document.querySelector('#imgs-topbar .upall').innerText='全部上传'; | |||||
| document.querySelectorAll('#imgs-list li.up-now').forEach((el,i) => { | |||||
| el.setAttribute('class','up-no'); | el.setAttribute('class','up-no'); | ||||
| }); | }); | ||||
| alert(err); | alert(err); | ||||
| }); | }); | ||||
| } | } | ||||
| } | } | ||||
| document.querySelector('#topbar .upall').addEventListener('click', (e) => { | |||||
| document.querySelector('#imgs-topbar .upall').addEventListener('click', (e) => { | |||||
| if (e.target.innerText!='全部上传') { | if (e.target.innerText!='全部上传') { | ||||
| return false; | return false; | ||||
| } | } | ||||
| if (axupimgs.res.length > 0) { | if (axupimgs.res.length > 0) { | ||||
| document.querySelectorAll('#file_list li.up-no').forEach((el, i) => { | |||||
| document.querySelectorAll('#imgs-list li.up-no').forEach((el, i) => { | |||||
| el.classList ? el.classList.add('up-now') : el.className+=' up-now'; | el.classList ? el.classList.add('up-now') : el.className+=' up-now'; | ||||
| }); | }); | ||||
| e.target.innerText='上传中'; | e.target.innerText='上传中'; | ||||
| @@ -200,7 +205,7 @@ include(DEDEDATA.'/mark/inc_photowatermark_config.php'); | |||||
| el.querySelector('.remove').addEventListener('click', (e) => { | el.querySelector('.remove').addEventListener('click', (e) => { | ||||
| var li = e.target.parentNode.parentNode; | var li = e.target.parentNode.parentNode; | ||||
| var n = li.getAttribute('data-num'); | var n = li.getAttribute('data-num'); | ||||
| var el = document.querySelectorAll('#file_list li')[n]; | |||||
| var el = document.querySelectorAll('#imgs-list li')[n]; | |||||
| el.parentNode.removeChild(el); | el.parentNode.removeChild(el); | ||||
| axupimgs.res.splice(n, 1); | axupimgs.res.splice(n, 1); | ||||
| }); | }); | ||||
| @@ -208,7 +213,7 @@ include(DEDEDATA.'/mark/inc_photowatermark_config.php'); | |||||
| } | } | ||||
| reSort(); | reSort(); | ||||
| }); | }); | ||||
| observ_flist.observe(document.querySelector('#file_list'),{childList:true}); | |||||
| observ_flist.observe(document.querySelector('#imgs-list'),{childList:true}); | |||||
| </script> | </script> | ||||
| </body> | </body> | ||||
| </html> | </html> | ||||
| @@ -20,7 +20,7 @@ | |||||
| <li class="breadcrumb-item active">模型版本管理</li> | <li class="breadcrumb-item active">模型版本管理</li> | ||||
| </ol> | </ol> | ||||
| <div class="card shadow-sm"> | <div class="card shadow-sm"> | ||||
| <div class="card-header d-flex justify-content-between align-items-center">模型版本管理</div> | |||||
| <div class="card-header">模型版本管理</div> | |||||
| <div class="card-body"> | <div class="card-body"> | ||||
| <form name="form1" method="post" action="ai_model_edit.php"> | <form name="form1" method="post" action="ai_model_edit.php"> | ||||
| <input type="hidden" name="dopost" value="delall"> | <input type="hidden" name="dopost" value="delall"> | ||||
| @@ -26,7 +26,7 @@ | |||||
| <li class="breadcrumb-item active">发布文档</li> | <li class="breadcrumb-item active">发布文档</li> | ||||
| </ol> | </ol> | ||||
| <div class="card shadow-sm"> | <div class="card shadow-sm"> | ||||
| <div class="card-header d-flex justify-content-between align-items-center">发布文档<?php if($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-header d-flex justify-content-between align-items-center"><span>发布文档</span><?php if ($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-body"> | <div class="card-body"> | ||||
| <form name="form1" action="article_add.php" method="post" enctype="multipart/form-data"> | <form name="form1" action="article_add.php" method="post" enctype="multipart/form-data"> | ||||
| <input type="hidden" name="channelid" value="<?php echo $channelid?>"> | <input type="hidden" name="channelid" value="<?php echo $channelid?>"> | ||||
| @@ -26,7 +26,7 @@ | |||||
| <li class="breadcrumb-item active">修改文档</li> | <li class="breadcrumb-item active">修改文档</li> | ||||
| </ol> | </ol> | ||||
| <div class="card shadow-sm"> | <div class="card shadow-sm"> | ||||
| <div class="card-header d-flex justify-content-between align-items-center">修改<?php echo $arcRow['title'];?>文档<?php if($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-header d-flex justify-content-between align-items-center"><span>修改<?php echo $arcRow['title'];?>文档</span><?php if ($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-body"> | <div class="card-body"> | ||||
| <form name="form1" action="article_edit.php" method="post" enctype="multipart/form-data"> | <form name="form1" action="article_edit.php" method="post" enctype="multipart/form-data"> | ||||
| <input type="hidden" name="dopost" value="save"> | <input type="hidden" name="dopost" value="save"> | ||||
| @@ -19,7 +19,7 @@ | |||||
| <li class="breadcrumb-item active">添加栏目</li> | <li class="breadcrumb-item active">添加栏目</li> | ||||
| </ol> | </ol> | ||||
| <div class="card shadow-sm"> | <div class="card shadow-sm"> | ||||
| <div class="card-header d-flex justify-content-between align-items-center">添加栏目<?php if($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-header d-flex justify-content-between align-items-center"><span>添加栏目</span><?php if ($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-body"> | <div class="card-body"> | ||||
| <form name="form1" action="catalog_add.php" method="post"> | <form name="form1" action="catalog_add.php" method="post"> | ||||
| <input type="hidden" name="dopost" value="save"> | <input type="hidden" name="dopost" value="save"> | ||||
| @@ -19,7 +19,7 @@ | |||||
| <li class="breadcrumb-item active">批量添加栏目</li> | <li class="breadcrumb-item active">批量添加栏目</li> | ||||
| </ol> | </ol> | ||||
| <div class="card shadow-sm"> | <div class="card shadow-sm"> | ||||
| <div class="card-header d-flex justify-content-between align-items-center">批量添加栏目<?php if($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-header d-flex justify-content-between align-items-center"><span>批量添加栏目</span><?php if ($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-body"> | <div class="card-body"> | ||||
| <form name="form1" action="catalog_add.php" method="post"> | <form name="form1" action="catalog_add.php" method="post"> | ||||
| <input type="hidden" name="dopost" value="savequick"> | <input type="hidden" name="dopost" value="savequick"> | ||||
| @@ -19,7 +19,7 @@ | |||||
| <li class="breadcrumb-item active">修改栏目</li> | <li class="breadcrumb-item active">修改栏目</li> | ||||
| </ol> | </ol> | ||||
| <div class="card shadow-sm"> | <div class="card shadow-sm"> | ||||
| <div class="card-header d-flex justify-content-between align-items-center">修改栏目<?php if($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-header d-flex justify-content-between align-items-center"><span>修改栏目</span><?php if ($cfg_ai_enabled == 'Y'){;?><button type="button" id="btnAI" onclick="showAI();" class="btn btn-success btn-sm">小德AI助手</button><?php };?></div> | |||||
| <div class="card-body"> | <div class="card-body"> | ||||
| <form name="form1" action="catalog_edit.php" method="post"> | <form name="form1" action="catalog_edit.php" method="post"> | ||||
| <input type="hidden" name="dopost" value="save"> | <input type="hidden" name="dopost" value="save"> | ||||
| @@ -475,30 +475,22 @@ body.menu-show .admin-content { | |||||
| border-radius:0 var(--b-radius) var(--b-radius) 0; | border-radius:0 var(--b-radius) var(--b-radius) 0; | ||||
| cursor:pointer | cursor:pointer | ||||
| } | } | ||||
| #wrap { | |||||
| padding:1rem | |||||
| } | |||||
| #topbar { | |||||
| margin-bottom:1rem; | |||||
| border-bottom:1px solid var(--light); | |||||
| text-align:right | |||||
| } | |||||
| #file_list { | |||||
| #imgs-list { | |||||
| display:grid; | display:grid; | ||||
| grid-gap:1rem; | grid-gap:1rem; | ||||
| grid-template-columns:repeat(auto-fill,minmax(160px,1fr)) | grid-template-columns:repeat(auto-fill,minmax(160px,1fr)) | ||||
| } | } | ||||
| #file_list:empty:after { | |||||
| #imgs-list:empty:after { | |||||
| content:'支持拖拽图此处片上传' | content:'支持拖拽图此处片上传' | ||||
| } | } | ||||
| #file_list li { | |||||
| #imgs-list li { | |||||
| position:relative | position:relative | ||||
| } | } | ||||
| #file_list li .picbox { | |||||
| #imgs-list li .picbox { | |||||
| padding-bottom:75%; | padding-bottom:75%; | ||||
| position:relative | position:relative | ||||
| } | } | ||||
| #file_list li .picbox img { | |||||
| #imgs-list li .picbox img { | |||||
| position:absolute; | position:absolute; | ||||
| top:0; | top:0; | ||||
| left:0; | left:0; | ||||
| @@ -506,10 +498,10 @@ body.menu-show .admin-content { | |||||
| height:100%; | height:100%; | ||||
| object-fit:cover | object-fit:cover | ||||
| } | } | ||||
| #file_list li .namebox { | |||||
| #imgs-list li .namebox { | |||||
| padding-top:0.5rem | padding-top:0.5rem | ||||
| } | } | ||||
| #file_list li.up-over .picbox:after { | |||||
| #imgs-list li.up-over .picbox:after { | |||||
| position:absolute; | position:absolute; | ||||
| top:0; | top:0; | ||||
| left:0; | left:0; | ||||
| @@ -519,20 +511,20 @@ body.menu-show .admin-content { | |||||
| content:'\f058'; | content:'\f058'; | ||||
| z-index:1991 | z-index:1991 | ||||
| } | } | ||||
| #file_list li .tools { | |||||
| #imgs-list li .tools { | |||||
| display:none; | display:none; | ||||
| position:absolute; | position:absolute; | ||||
| bottom:0; | bottom:0; | ||||
| right:0; | right:0; | ||||
| z-index:1992 | z-index:1992 | ||||
| } | } | ||||
| #file_list li:hover .tools { | |||||
| #imgs-list li:hover .tools { | |||||
| display:block | display:block | ||||
| } | } | ||||
| #file_list li .tools .remove { | |||||
| #imgs-list li .tools .remove { | |||||
| cursor:pointer | cursor:pointer | ||||
| } | } | ||||
| #file_list li .tools .remove:after { | |||||
| #imgs-list li .tools .remove:after { | |||||
| font-family:'FontAwesome'; | font-family:'FontAwesome'; | ||||
| font-size:14px; | font-size:14px; | ||||
| color:var(--danger); | color:var(--danger); | ||||