优化 自定义灰色模式,时段内支持输入一段描述

This commit is contained in:
j m 2025-03-13 06:34:54 +08:00
parent d9e0508ad2
commit 1d24fe9c91
6 changed files with 25 additions and 13 deletions

View File

@ -1369,9 +1369,15 @@ spec:
children: children:
- $formkit: text - $formkit: text
name: time_span name: time_span
label: 灰色模式时间段 label: 时间段
value: "" value: ""
placeholder: '请输入时间段,必须包含“|”分割开始和结束时间' placeholder: '请输入时间段,必须包含“|”分割开始和结束时间'
- $formkit: textarea
name: time_span_desc
label: 描述
value: ""
help: '请输入描述,这会显示一条消息,留空时不显示'
placeholder: '请输入描述'
- $formkit: group - $formkit: group
name: busuanzi_group name: busuanzi_group
label: busuanzi 访客统计 label: busuanzi 访客统计

View File

@ -594,25 +594,30 @@ const commonContext = {
const now = new Date() const now = new Date()
const month = now.getMonth() + 1 const month = now.getMonth() + 1
const day = now.getDate() const day = now.getDate()
const isDateInRange = (currentMonth, currentDay, startDate, endDate) => { const isDateInRange = (currentMonth, currentDay, timeRange) => {
let find = false
const [startDate, endDate] = timeRange.time.split('|').map(part => part.trim())
if (!startDate || !endDate) {
return find
}
const [startMonth, startDay] = startDate.split('/').map(part => part.trim()).map(Number) const [startMonth, startDay] = startDate.split('/').map(part => part.trim()).map(Number)
const [endMonth, endDay] = endDate.split('/').map(part => part.trim()).map(Number) const [endMonth, endDay] = endDate.split('/').map(part => part.trim()).map(Number)
if (!startMonth || !startDay || !endMonth || !endDay) { if (!startMonth || !startDay || !endMonth || !endDay) {
return false return find
} }
const start = new Date(now.getFullYear(), startMonth - 1, startDay) const start = new Date(now.getFullYear(), startMonth - 1, startDay)
const end = new Date(now.getFullYear(), endMonth - 1, endDay) const end = new Date(now.getFullYear(), endMonth - 1, endDay)
const current = new Date(now.getFullYear(), currentMonth - 1, currentDay) const current = new Date(now.getFullYear(), currentMonth - 1, currentDay)
return current >= start && current <= end find = current >= start && current <= end
if (find && timeRange.desc) {
Qmsg.info(timeRange.desc)
}
return find
} }
for (const timeRange of DreamConfig.gray_mode_time_list) { for (const timeRange of DreamConfig.gray_mode_time_list) {
try { try {
const [startDate, endDate] = timeRange.split('|').map(part => part.trim()) if (isDateInRange(month, day, timeRange)) {
if (!startDate || !endDate) {
continue
}
if (isDateInRange(month, day, startDate, endDate)) {
$('html').addClass('gray-mode') $('html').addClass('gray-mode')
break break
} }

View File

@ -11,4 +11,4 @@
</div> </div>
<div class="progress-percentage">${e.percent}</div> <div class="progress-percentage">${e.percent}</div>
</div> </div>
</div>`}),$(".aside-timelife").html(a)}},initSecurityLink(){DreamConfig.enable_security_link&&DreamConfig.security_link_url&&0!==DreamConfig.security_link_url.length&&$(document).on("click","a[target=_blank]",e=>{e.preventDefault();var t,e=$(e.currentTarget).attr("href"),a=window.location.hostname;window.open("_blank").location=(a=a,t=(t=e).toLowerCase().trim(),a=a.toLowerCase().trim(),t.startsWith("//")?t=window.location.protocol+t:t.startsWith("/")&&(t=window.location.origin+t),(t=t.startsWith("http://")||t.startsWith("https://")?t.replace(/\/$/,""):t).includes(a)?e:DreamConfig.security_link_url+"?target="+encodeURIComponent(e))})},initGrayMode(){if(!0===DreamConfig.gray_mode)$("html").addClass("gray-mode");else if("custom"===DreamConfig.gray_mode&&DreamConfig.gray_mode_time_list){const s=new Date,a=s.getMonth()+1,n=s.getDate();for(const i of DreamConfig.gray_mode_time_list)try{var[e,t]=i.split("|").map(e=>e.trim());if(!e||!t)continue;if(((e,t,a,n)=>{var[a,i]=a.split("/").map(e=>e.trim()).map(Number),[n,o]=n.split("/").map(e=>e.trim()).map(Number);return!!(a&&i&&n&&o)&&(a=new Date(s.getFullYear(),a-1,i),i=new Date(s.getFullYear(),n-1,o),a<=(n=new Date(s.getFullYear(),e-1,t)))&&n<=i})(a,n,e,t)){$("html").addClass("gray-mode");break}}catch(e){console.log(e)}}},initEffects(){Utils.isMobile()||(DreamConfig.cursor_move&&Utils.cachedScript(`${DreamConfig.theme_base}/js/cursor/move/${DreamConfig.cursor_move}.min.js?mew=`+DreamConfig.theme_version),DreamConfig.cursor_click&&Utils.cachedScript(`${DreamConfig.theme_base}/js/cursor/click/${DreamConfig.cursor_click}.min.js?mew=`+DreamConfig.theme_version),DreamConfig.enable_live2d&&Utils.cachedScript(DreamConfig.theme_base+"/js/autoload.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_lantern_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/lantern.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_sakura_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/sakura.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_snowflake_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/snowflake.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_universe_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/universe.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_circle_magic_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/circleMagic.min.js?mew="+DreamConfig.theme_version))},showThemeVersion(){DreamConfig.enable_console_version_info&&window.logger(`%c页面加载耗时${Math.round(performance.now())}ms | Theme By Dream2 Plus `+DreamConfig.theme_version,"color:#fff; background: linear-gradient(270deg, #986fee, #8695e6, #68b7dd, #18d7d3); padding: 8px 15px; border-radius: 0 15px 0 15px")}};window.commonContext=t;let o=-1;{const a=["initCarousel","sparkInput","websiteTime"],n=["initEffects","showThemeVersion","iniTaskItemDisabled"];Object.keys(t).forEach(e=>!a.includes(e)&&!n.includes(e)&&t[e]()),document.addEventListener("DOMContentLoaded",function(){$("html").addClass("loaded"),a.forEach(e=>t[e]&&t[e]())}),window.addEventListener("load",function(){n.forEach(e=>t[e]&&t[e]()),$("html").addClass("ready")})}})(); </div>`}),$(".aside-timelife").html(a)}},initSecurityLink(){DreamConfig.enable_security_link&&DreamConfig.security_link_url&&0!==DreamConfig.security_link_url.length&&$(document).on("click","a[target=_blank]",e=>{e.preventDefault();var t,e=$(e.currentTarget).attr("href"),a=window.location.hostname;window.open("_blank").location=(a=a,t=(t=e).toLowerCase().trim(),a=a.toLowerCase().trim(),t.startsWith("//")?t=window.location.protocol+t:t.startsWith("/")&&(t=window.location.origin+t),(t=t.startsWith("http://")||t.startsWith("https://")?t.replace(/\/$/,""):t).includes(a)?e:DreamConfig.security_link_url+"?target="+encodeURIComponent(e))})},initGrayMode(){if(!0===DreamConfig.gray_mode)$("html").addClass("gray-mode");else if("custom"===DreamConfig.gray_mode&&DreamConfig.gray_mode_time_list){const r=new Date,e=r.getMonth()+1,t=r.getDate();for(const a of DreamConfig.gray_mode_time_list)try{if(((e,t,a)=>{var n,i,[o,s]=a.time.split("|").map(e=>e.trim());return!!(o&&s&&([o,n]=o.split("/").map(e=>e.trim()).map(Number),[s,i]=s.split("/").map(e=>e.trim()).map(Number),o)&&n&&s&&i)&&(o=new Date(r.getFullYear(),o-1,n),n=new Date(r.getFullYear(),s-1,i),(i=o<=(s=new Date(r.getFullYear(),e-1,t))&&s<=n)&&a.desc&&Qmsg.info(a.desc),i)})(e,t,a)){$("html").addClass("gray-mode");break}}catch(e){console.log(e)}}},initEffects(){Utils.isMobile()||(DreamConfig.cursor_move&&Utils.cachedScript(`${DreamConfig.theme_base}/js/cursor/move/${DreamConfig.cursor_move}.min.js?mew=`+DreamConfig.theme_version),DreamConfig.cursor_click&&Utils.cachedScript(`${DreamConfig.theme_base}/js/cursor/click/${DreamConfig.cursor_click}.min.js?mew=`+DreamConfig.theme_version),DreamConfig.enable_live2d&&Utils.cachedScript(DreamConfig.theme_base+"/js/autoload.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_lantern_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/lantern.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_sakura_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/sakura.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_snowflake_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/snowflake.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_universe_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/universe.min.js?mew="+DreamConfig.theme_version),DreamConfig.effects_circle_magic_mode&&Utils.cachedScript(DreamConfig.theme_base+"/js/effects/circleMagic.min.js?mew="+DreamConfig.theme_version))},showThemeVersion(){DreamConfig.enable_console_version_info&&window.logger(`%c页面加载耗时${Math.round(performance.now())}ms | Theme By Dream2 Plus `+DreamConfig.theme_version,"color:#fff; background: linear-gradient(270deg, #986fee, #8695e6, #68b7dd, #18d7d3); padding: 8px 15px; border-radius: 0 15px 0 15px")}};window.commonContext=t;let o=-1;{const a=["initCarousel","sparkInput","websiteTime"],n=["initEffects","showThemeVersion","iniTaskItemDisabled"];Object.keys(t).forEach(e=>!a.includes(e)&&!n.includes(e)&&t[e]()),document.addEventListener("DOMContentLoaded",function(){$("html").addClass("loaded"),a.forEach(e=>t[e]&&t[e]())}),window.addEventListener("load",function(){n.forEach(e=>t[e]&&t[e]()),$("html").addClass("ready")})}})();

View File

@ -79,8 +79,9 @@
if(custom_gray_mode_time_list) { if(custom_gray_mode_time_list) {
for (let time of custom_gray_mode_time_list) { for (let time of custom_gray_mode_time_list) {
let type = time.realNode.time_span; let type = time.realNode.time_span;
let desc = time.realNode.time_span_desc;
if (gray_mode_time_list.indexOf(type) === -1) { if (gray_mode_time_list.indexOf(type) === -1) {
gray_mode_time_list.push(type); gray_mode_time_list.push({time: type, desc: desc});
} }
} }
} }

View File

@ -3,6 +3,7 @@
<script th:src="@{/assets/js/btoc.min.js(mew=${theme.spec.version})}"></script> <script th:src="@{/assets/js/btoc.min.js(mew=${theme.spec.version})}"></script>
<script th:if="${isFirstIndex == true && !#lists.isEmpty(theme.config.basic_style.carousel_options)}" data-pjax <script th:if="${isFirstIndex == true && !#lists.isEmpty(theme.config.basic_style.carousel_options)}" data-pjax
th:src="@{/assets/lib/swiper@8.4.6/swiper-bundle.min.js}"></script> th:src="@{/assets/lib/swiper@8.4.6/swiper-bundle.min.js}"></script>
<script th:src="@{/assets/lib/qmsg/qmsg.min.js}"></script>
<script th:src="@{/assets/js/common.min.js(mew=${theme.spec.version})}"></script> <script th:src="@{/assets/js/common.min.js(mew=${theme.spec.version})}"></script>
<th:block th:if="${isPost}"> <th:block th:if="${isPost}">
@ -21,7 +22,6 @@
<script th:src="@{/assets/lib/jquery-pjax@2.0.1/jquery.pjax.min.js}"></script> <script th:src="@{/assets/lib/jquery-pjax@2.0.1/jquery.pjax.min.js}"></script>
<script th:src="@{/assets/js/pjax.min.js(mew=${theme.spec.version})}"></script> <script th:src="@{/assets/js/pjax.min.js(mew=${theme.spec.version})}"></script>
</th:block> </th:block>
<script async th:src="@{/assets/lib/qmsg/qmsg.min.js}"></script>
<script th:if="${isPost == true || isPhotos == true}" data-pjax async th:src="@{/assets/lib/fancybox@5.3.7/jquery.fancybox.min.js}"></script> <script th:if="${isPost == true || isPhotos == true}" data-pjax async th:src="@{/assets/lib/fancybox@5.3.7/jquery.fancybox.min.js}"></script>

View File

@ -30,7 +30,7 @@ spec:
settingName: theme-dream2-plus-setting settingName: theme-dream2-plus-setting
configMapName: theme-dream2-plus-configMap configMapName: theme-dream2-plus-configMap
# 版本号 # 版本号
version: 1.4.1.beta1 version: 1.4.1.beta2
# 最低支持的 Halo 版本 # 最低支持的 Halo 版本
require: ">=2.20.0" require: ">=2.20.0"
# 许可 # 许可