-

+
黄诗扶
@@ -310,18 +310,18 @@
-

+
双笙
- 什么?你问我为什么喜欢包包?可能因为是“青春”吧?
+ 什么?你问我为什么喜欢包包?可能因为是青春吧?
-

+
浅影阿
@@ -332,12 +332,12 @@
-

+
-
平生不晚
+
玄觞
- 首先是戏腔好听,然后是妆造好看,最后就来到了这里
+ 你们古风圈,怎么都喊女生王子,喊男生二婶呢?
diff --git a/embed-code/page/navigator.html b/embed-code/page/navigator.html
index 09e7c58..a120053 100644
--- a/embed-code/page/navigator.html
+++ b/embed-code/page/navigator.html
@@ -199,8 +199,9 @@
if (isUnread) {
typeof initNoticeTip === 'function' && initNoticeTip();
- noticeCard.querySelector('.notice-title').textContent = `通知书`;
- noticeCard.querySelector('.notice-desc').textContent = `有新通知待查看`;
+ $('.footer_menu a[href="/navigator"]').css('color', '#ecc94b').find('i').css('color', '#ecc94b');
+ noticeCard.querySelector('.notice-title').textContent = '通知书';
+ noticeCard.querySelector('.notice-desc').textContent = '有新通知待查看';
noticeCard.classList.add('notice-unread');
if(decorCircle) decorCircle.style.background = '#fef3c7';
diff --git a/embed-code/page/store.html b/embed-code/page/store.html
index 19f58a0..2bc9403 100644
--- a/embed-code/page/store.html
+++ b/embed-code/page/store.html
@@ -3,7 +3,6 @@
margin: 0;
padding: 0;
box-sizing: border-box;
- font-family: "Inter", "Microsoft YaHei", Arial;
}
.store {
@@ -13,7 +12,7 @@
--danger: #E74C3C;
--bg: #F9FFFB;
--shadow: 0 12px 30px rgba(80, 200, 120, .12);
- --radius: 18px;
+ --radius: 8px;
padding: 26px 14px;
background: var(--bg);
}
@@ -59,7 +58,7 @@
#tag-search {
width: 100%;
padding: 7px 12px 7px 34px;
- border-radius: 10px;
+ border-radius: 8px;
border: 1px solid #c9efd6;
outline: none;
background: #fafffb;
@@ -79,7 +78,7 @@
flex-wrap: wrap;
gap: 8px;
padding: 8px;
- border-radius: 12px;
+ border-radius: 8px;
border: 1px solid #c9efd6;
background: rgba(144, 238, 144, .08);
max-height: 100px;
@@ -89,7 +88,7 @@
.store .tag-item {
padding: 5px 7px;
- border-radius: 9px;
+ border-radius: 8px;
border: 1px solid #90ee90;
font-size: 12px;
cursor: pointer;
@@ -107,31 +106,66 @@
.store .no-result {
width: 100%;
text-align: center;
+ align-items: center;
+ justify-content: center;
color: #7f8c8d;
font-size: 13px;
- padding: 8px 0;
+ min-height: 100%;
+ padding: 0;
display: none;
}
/* 输入框 */
.store .input-group {
display: flex;
- gap: 10px;
+ gap: 8px;
margin: 16px 0;
+ align-items: center;
+ }
+
+ .store .section-divider {
+ position: relative;
+ height: 18px;
+ margin: 6px 0 14px;
+ }
+
+ .store .section-divider::before {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 0;
+ width: 100%;
+ height: 1px;
+ transform: translateY(-50%);
+ background: linear-gradient(90deg, rgba(80, 200, 120, 0), rgba(80, 200, 120, .55), rgba(80, 200, 120, 0));
+ box-shadow: 0 1px 0 rgba(80, 200, 120, .12);
+ }
+
+ .store .section-divider::after {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 10px;
+ height: 10px;
+ transform: translate(-50%, -50%) rotate(45deg);
+ border-radius: 2px;
+ background: linear-gradient(135deg, #90ee90, #50c878);
+ box-shadow: -14px 0 0 -3px rgba(80, 200, 120, .5), 14px 0 0 -3px rgba(80, 200, 120, .5), 0 0 0 2px #ffffff;
}
#file-path {
flex: 1;
padding: 8px 14px;
- border-radius: 12px;
+ border-radius: 8px;
border: 2px solid #e8f7ec;
font-size: 14px;
outline: none;
}
#submit-btn {
- padding: 10px;
- border-radius: 12px;
+ padding: 10px 20px;
+ border-radius: 8px;
border: none;
background: linear-gradient(135deg, #50c878, #3a9156);
color: #fff;
@@ -139,17 +173,6 @@
cursor: pointer;
}
- /* 底部提示(改成浅黄色系) */
- .store .tips {
- font-size: 12px;
- text-align: center;
- color: #a97400;
- padding: 8px;
- border-radius: 8px;
- background: rgba(255, 215, 0, .12);
- border: 1px solid rgba(243, 156, 18, .25);
- }
-
/* 手机端 */
@media(max-width:520px) {
.store {
@@ -166,7 +189,8 @@
}
.store .input-group {
- flex-direction: column
+ flex-direction: column;
+ align-items: stretch;
}
#submit-btn {
@@ -176,34 +200,11 @@
.store .tag-list {
max-height: 120px
}
- }
- /* Toast */
- .custom-toast {
- position: fixed;
- top: 26px;
- left: 50%;
- transform: translateX(-50%) translateY(-80px);
- background: #2ECC71;
- color: #fff;
- padding: 12px 20px;
- border-radius: 10px;
- transition: .4s;
- opacity: 0;
- z-index: 9999;
- }
-
- .toast-show {
- transform: translateX(-50%) translateY(0);
- opacity: 1
- }
-
- .toast-error {
- background: #E74C3C
- }
-
- .toast-warning {
- background: #F39C12
+ #file-path {
+ width: 100%;
+ box-sizing: border-box;
+ }
}
@@ -211,58 +212,55 @@
-
Anian的储物柜
+
储物柜
+
+
+
+
+
+
+
- 🔍
-
+
+
-
测试压缩包
-
示例报告
-
横幅图片
-
安装程序
-
+
加载动画
+
网站Logo
+
加载动画
+
网站Logo
加载动画
+
网站Logo
加载动画
+
网站Logo
加载动画
+
网站Logo
加载动画
+
网站Logo
+
没有匹配的结果
-
-
-
-
-
-
⚠️ 错误过多将可能被封禁
-
-
\ No newline at end of file
diff --git a/templates/assets/css/style.css b/templates/assets/css/style.css
index b45de0b..220aa94 100644
--- a/templates/assets/css/style.css
+++ b/templates/assets/css/style.css
@@ -504,11 +504,12 @@ a:visited {
color: #252525;
}
+/* 侧边栏颜色异常
a:hover,
a:focus,
a:active {
color: #191970;
-}
+} */
a:focus {
outline: thin dotted;
diff --git a/templates/assets/js/anian.js b/templates/assets/js/anian.js
index 4934250..bff9534 100644
--- a/templates/assets/js/anian.js
+++ b/templates/assets/js/anian.js
@@ -30,6 +30,7 @@ let csrfToken = '';
let publicKey = '';
let loginTimer = null;
let countdownSeconds = 3;
+let closeLoading = null;
const login_modal = document.getElementById('customLoginModal');
const login_closeBtn = document.getElementById('closeLoginModal');
const login_loginBtn = document.getElementById('customLoginBtn');
@@ -39,6 +40,7 @@ async function fetchCSRFToken() {
login_modal.classList.add('show');
login_loginBtn.disabled = true;
login_loginBtn.textContent = '加载中...';
+ closeLoading = cocoMessage.loading('正在加载署名信息...');
try {
const response = await fetch('/login', { credentials: 'include' });
@@ -62,19 +64,23 @@ async function fetchCSRFToken() {
publicKey = publicKeyMatch[1].replace(/\\\//g, '/');
return 'ok';
} catch (err) {
+ closeLoading?.()
+ cocoMessage.error('署名信息加载失败,请刷新');
+ if (loginTimer) { clearInterval(loginTimer) }
+ login_loginBtn.textContent = '错误!请刷新';
+ login_loginBtn.disabled = true;
return 'error';
}
}
// 打开弹窗逻辑
async function open_login_box() {
- if (loginTimer) {
- clearInterval(loginTimer);
- }
+ if (loginTimer) { clearInterval(loginTimer) }
countdownSeconds = 3;
const success = await fetchCSRFToken();
if (success === 'logged') {
- cocoMessage.success('您已经署名过了,请刷新');
+ closeLoading?.()
+ cocoMessage.success('您已署名成功,请刷新');
login_modal.classList.remove('show');
} else if (success === 'ok') {
loginTimer = setInterval(() => {
@@ -82,12 +88,15 @@ async function open_login_box() {
login_loginBtn.textContent = '请稍等...' + countdownSeconds;
} else {
clearInterval(loginTimer);
+ closeLoading?.()
+ cocoMessage.success('署名信息加载完成');
login_loginBtn.textContent = '署 名';
login_loginBtn.disabled = false;
}
countdownSeconds--;
}, 1000);
} else {
+ closeLoading?.()
cocoMessage.error('服务器错误,请刷新');
login_modal.classList.remove('show');
}
@@ -95,6 +104,7 @@ async function open_login_box() {
// 关闭弹窗
login_closeBtn.addEventListener('click', () => {
+ closeLoading?.()
login_modal.classList.remove('show');
});
@@ -111,6 +121,7 @@ function encryptPassword(password) {
// 提交登录
login_loginBtn.addEventListener('click', async () => {
+ let islogin = false;
const username = document.getElementById('customUsername').value.trim();
const password = document.getElementById('customPassword').value.trim();
if (!username || !password) {
@@ -119,7 +130,9 @@ login_loginBtn.addEventListener('click', async () => {
}
const encryptedPwd = encryptPassword(password);
login_loginBtn.disabled = true;
+ login_closeBtn.disabled = true;
login_loginBtn.textContent = '验证中...';
+ closeLoading = cocoMessage.loading('正在验证信息...');
try {
countdownSeconds = 3
const response = await fetch('/login', {
@@ -141,6 +154,8 @@ login_loginBtn.addEventListener('click', async () => {
clearInterval(loginTimer);
}
if (finalUrl.includes('/uc')) {
+ islogin = true;
+ closeLoading?.()
cocoMessage.success('署名成功,正在跳转...');
login_loginBtn.textContent = '跳转中...';
const currentScrollTop = window.scrollY || document.documentElement.scrollTop;
@@ -148,24 +163,32 @@ login_loginBtn.addEventListener('click', async () => {
$.cookie('load_type', 'login', { path: '/', domain: 'anian.cc' });
window.location.reload();
} else if (finalUrl.includes('error=invalid-credential')) {
+ closeLoading?.()
cocoMessage.warning('署名人与心上锁不匹配');
- fetchCSRFToken();
} else {
+ closeLoading?.()
cocoMessage.error('速度过快,请稍后重试');
}
} catch (err) {
+ closeLoading?.()
cocoMessage.error('服务器连接失败');
} finally {
- loginTimer = setInterval(() => {
- if (countdownSeconds > 0) {
- login_loginBtn.textContent = '请稍等...' + countdownSeconds;
- } else {
- clearInterval(loginTimer);
- login_loginBtn.textContent = '署 名';
- login_loginBtn.disabled = false;
- }
- countdownSeconds--;
- }, 1000);
+ if (!islogin) {
+ fetchCSRFToken();
+ login_closeBtn.disabled = false;
+ loginTimer = setInterval(() => {
+ if (countdownSeconds > 0) {
+ login_loginBtn.textContent = '请稍等...' + countdownSeconds;
+ } else {
+ clearInterval(loginTimer);
+ closeLoading?.()
+ cocoMessage.success('请重新尝试署名');
+ login_loginBtn.textContent = '署 名';
+ login_loginBtn.disabled = false;
+ }
+ countdownSeconds--;
+ }, 1000);
+ }
}
});
@@ -242,13 +265,13 @@ function confirmPixarAction() {
// 打开确认模态框
function openModal(title, msg, type) {
- var modal = $('#momentsDeleteModal');
- var card = modal.find('.moments-card-widget');
- modal.find('.moments-title-text').text(title);
- modal.find('.moments-message-text').text(msg);
- card.removeClass('theme-red theme-yellow theme-green').addClass('theme-' + type);
- $('.moments-btn-cancel, .moments-btn-confirm').prop('disabled', false);
- modal.fadeIn(200);
+ var modal = $('#momentsDeleteModal');
+ var card = modal.find('.moments-card-widget');
+ modal.find('.moments-title-text').text(title);
+ modal.find('.moments-message-text').text(msg);
+ card.removeClass('theme-red theme-yellow theme-green').addClass('theme-' + type);
+ $('.moments-btn-cancel, .moments-btn-confirm').prop('disabled', false);
+ modal.fadeIn(200);
}
diff --git a/templates/assets/js/app.js b/templates/assets/js/app.js
index 245fbd7..f2580f9 100644
--- a/templates/assets/js/app.js
+++ b/templates/assets/js/app.js
@@ -2561,6 +2561,7 @@ async function initNoticeTip() {
if (hasUnread) {
noticeBubble.classList.add('show');
noticeBtn.classList.add('has-notice');
+ $('.footer_menu a[href="/navigator"]').css('color', '#ecc94b').find('i').css('color', '#ecc94b');
} else {
noticeBubble.classList.remove('show');
noticeBtn.classList.remove('has-notice');
@@ -2802,7 +2803,7 @@ function initjump() {
$.removeCookie('load_type', { path: '/', domain: 'anian.cc' });
window.scroll_param = scrollParam;
if (scrollParam && !isNaN(scrollParam)) {
- closeLoading = cocoMessage.loading('自动恢复原线路内容中...');
+ closeLoading = cocoMessage.loading('自动恢复原内容中...');
}
initTagSwitch().then(() => {
const loadPageTask = () => {
@@ -2831,7 +2832,7 @@ function initjump() {
cocoMessage.success('登出成功!');
} else {
const msg = location.hostname === "anian.cc" ? '主线路' : (location.hostname === "www.anian.cc" ? '副线路' : '测试线路');
- cocoMessage.success('已成功切换至${msg}');
+ cocoMessage.success('已成功切换至' + msg);
}
}).catch(() => closeLoading?.());
}
diff --git a/templates/friends.html b/templates/friends.html
index a07baaf..1906101 100644
--- a/templates/friends.html
+++ b/templates/friends.html
@@ -1,6 +1,6 @@
+ th:replace="~{modules/layouts/layout :: layout(_head = null,_content = ~{::content},_title = ${title + ' - ' + site.title})}">
@@ -19,7 +19,7 @@
+ th:classappend="${#lists.isEmpty(param.author) ? 'active' : ''}" class="cat-link">
全部
@@ -27,8 +27,8 @@
+ th:classappend="${#strings.equals(param.author, author) ? 'active' : ''}"
+ th:text="${author}" class="cat-link">
@@ -38,10 +38,9 @@
-
+
@@ -58,7 +57,7 @@
@@ -72,9 +71,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-