310 lines
9.1 KiB
JavaScript
310 lines
9.1 KiB
JavaScript
$(function () {
|
||
// 获取url地址栏参数函数
|
||
function getUrlParams() {
|
||
const url = window.location.href;
|
||
// 判断是否有参数
|
||
if (url.indexOf("?") === -1) {
|
||
return {};
|
||
}
|
||
const params = url.split("?")[1];
|
||
const paramsArr = params.split("&");
|
||
const paramsObj = {};
|
||
paramsArr.forEach((item) => {
|
||
const key = item.split("=")[0];
|
||
const value = item.split("=")[1];
|
||
// 解析中文
|
||
paramsObj[key] = decodeURI(value);
|
||
});
|
||
return paramsObj;
|
||
}
|
||
//设置cookie
|
||
function setCookie(c_name, value, expiredays = 1) {
|
||
const exdate = new Date();
|
||
exdate.setDate(exdate.getDate() + expiredays);
|
||
document.cookie =
|
||
c_name + "=" + value + (";expires=" + exdate.toGMTString());
|
||
}
|
||
// 判断首页是否为推荐页面
|
||
function isRecommend() {
|
||
const urlParams = getUrlParams();
|
||
if (urlParams.recommend_c) {
|
||
setCookie("recommend_c", urlParams.recommend_c);
|
||
}
|
||
}
|
||
isRecommend();
|
||
let bannerData = [];
|
||
let bannerTextTimer = null;
|
||
|
||
const updateBannerText = (index) => {
|
||
if (!Array.isArray(bannerData) || bannerData.length === 0) {
|
||
return;
|
||
}
|
||
const idx = index >= 0 && index < bannerData.length ? index : 0;
|
||
const item = bannerData[idx] || {};
|
||
// 标签渲染:标题上方的小块标签
|
||
const $tagsWrap = $("#bannerTags");
|
||
if ($tagsWrap.length) {
|
||
$tagsWrap.empty();
|
||
const rawTags = item.tags || "";
|
||
const tags = rawTags
|
||
.split(/[,,]/)
|
||
.map((t) => t.trim())
|
||
.filter((t) => t);
|
||
tags.forEach((tag) => {
|
||
$tagsWrap.append(
|
||
`<span class="banner-tag-pill">${tag}</span>`
|
||
);
|
||
});
|
||
if (tags.length === 0) {
|
||
$tagsWrap.hide();
|
||
} else {
|
||
$tagsWrap.show();
|
||
}
|
||
}
|
||
$("#bannerTitle").text(item.title || "");
|
||
$("#bannerDesc").text(item.description || "");
|
||
const $btn = $("#bannerButton");
|
||
if (item.button_text) {
|
||
const link = item.button_link || item.url || "javascript:;";
|
||
const target = item.button_blank ? "_blank" : "_self";
|
||
$btn
|
||
.text(item.button_text)
|
||
.attr("href", link)
|
||
.attr("target", target)
|
||
.show();
|
||
} else {
|
||
$btn.hide();
|
||
}
|
||
};
|
||
|
||
// 简单的文案轮播(不再使用 Swiper 图片,仅轮播标题/描述/按钮)
|
||
const startBannerTextLoop = () => {
|
||
if (!Array.isArray(bannerData) || bannerData.length === 0) {
|
||
return;
|
||
}
|
||
let current = 0;
|
||
// 初始化先展示第一条
|
||
updateBannerText(current);
|
||
// 清理旧定时器
|
||
if (bannerTextTimer) {
|
||
clearInterval(bannerTextTimer);
|
||
bannerTextTimer = null;
|
||
}
|
||
// 只有一条时不需要轮播
|
||
if (bannerData.length === 1) {
|
||
return;
|
||
}
|
||
bannerTextTimer = setInterval(() => {
|
||
current = (current + 1) % bannerData.length;
|
||
// 淡入动画:先让文案透明,再渐显
|
||
const $copy = $(".banner-copy");
|
||
$copy
|
||
.stop(true, true)
|
||
.css({ opacity: 0 })
|
||
.animate({ opacity: 1 }, 400);
|
||
updateBannerText(current);
|
||
}, 5000);
|
||
};
|
||
|
||
// 设置首页函数
|
||
function setIndexData() {
|
||
const commentObj = JSON.parse(sessionStorage.commentData);
|
||
bannerData = commentObj.banner || [];
|
||
// 仅轮播文案
|
||
startBannerTextLoop();
|
||
if (commentObj.honor.length > 0) {
|
||
commentObj.honor.forEach((item) => {
|
||
$("#certBox").append(`<div class="cert-item">
|
||
<img src=${item.img} alt="">
|
||
<p class="mt-20">${item.name}</p>
|
||
</div>`);
|
||
});
|
||
}
|
||
if (commentObj.partner.length > 0 && commentObj.partner.length <= 3) {
|
||
commentObj.partner.forEach((item) => {
|
||
$("#practiceBox").append(`<div class="practice-box">
|
||
<img src="${item.img}" alt="">
|
||
<div class="mt-10">${item.description}</div>
|
||
<p class="tr font-grey mt-20 font12">${item.name}</p>
|
||
</div>`);
|
||
});
|
||
} else if (commentObj.partner.length > 3) {
|
||
const arr1 = commentObj.partner.slice(0, 3);
|
||
const arr2 = commentObj.partner.slice(3);
|
||
arr1.forEach((item) => {
|
||
$("#practiceBox").append(`<div class="practice-box">
|
||
<img src="${item.img}" alt="">
|
||
<div class="mt-10">${item.description}</div>
|
||
<p class="tr font-grey mt-20 font12">${item.name}</p>
|
||
</div>`);
|
||
});
|
||
$("#morPracticeBox").attr("style", "display: flex;");
|
||
arr2.forEach((item) => {
|
||
$("#morPracticeBox").append(` <div class="brand-box">
|
||
<img src="${item.img}" alt="">
|
||
</div>`);
|
||
});
|
||
}
|
||
}
|
||
// 获取通用配置信息(首页:先用 /console/v1/common,再用插件配置覆盖后渲染荣誉/合作伙伴)
|
||
function getCommentInfo() {
|
||
$.ajax({
|
||
url: "/console/v1/common",
|
||
method: "get",
|
||
headers: {
|
||
Authorization: "Bearer" + " " + localStorage.jwt,
|
||
},
|
||
success: function (res) {
|
||
if (!res || res.status !== 200 || !res.data) {
|
||
return;
|
||
}
|
||
var baseData = res.data || {};
|
||
|
||
$.ajax({
|
||
url: "/console/v1/theme/config",
|
||
method: "get",
|
||
headers: {
|
||
Authorization: "Bearer" + " " + localStorage.jwt,
|
||
},
|
||
success: function (pluginRes) {
|
||
if (pluginRes && pluginRes.status === 200 && pluginRes.data) {
|
||
var cfg = pluginRes.data || {};
|
||
// 仅覆盖首页会用到的字段:honor/partner/banner/friendly_link 等
|
||
if (cfg.honor) {
|
||
baseData.honor = cfg.honor;
|
||
}
|
||
if (cfg.partner) {
|
||
baseData.partner = cfg.partner;
|
||
}
|
||
if (cfg.banner) {
|
||
baseData.banner = cfg.banner;
|
||
}
|
||
if (cfg.friendly_link) {
|
||
baseData.friendly_link = cfg.friendly_link;
|
||
}
|
||
}
|
||
sessionStorage.commentData = JSON.stringify(baseData);
|
||
setIndexData();
|
||
},
|
||
error: function () {
|
||
sessionStorage.commentData = JSON.stringify(baseData);
|
||
setIndexData();
|
||
},
|
||
});
|
||
},
|
||
});
|
||
}
|
||
// 获取首页数据
|
||
getCommentInfo();
|
||
var viewer = new Viewer(document.getElementById("viewer"), {
|
||
button: true,
|
||
inline: false,
|
||
zoomable: true,
|
||
title: true,
|
||
tooltip: true,
|
||
minZoomRatio: 0.5,
|
||
maxZoomRatio: 100,
|
||
movable: true,
|
||
interval: 2000,
|
||
navbar: true,
|
||
loading: true,
|
||
});
|
||
|
||
// 点击显示图片
|
||
$(".cert-item,.practice-box,.brand-box").click(function () {
|
||
// 设置图片
|
||
$("#viewer").attr("src", $(this).find("img").attr("src"));
|
||
viewer.show();
|
||
});
|
||
function formateTimeFun(time) {
|
||
const date = new Date(time * 1000);
|
||
Y = date.getFullYear() + "-";
|
||
M =
|
||
(date.getMonth() + 1 < 10
|
||
? "0" + (date.getMonth() + 1)
|
||
: date.getMonth() + 1) + "-";
|
||
D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
||
return Y + M + D;
|
||
}
|
||
// 公告列表
|
||
function getAnnounceList() {
|
||
$.ajax({
|
||
url: "/console/v1/announcement",
|
||
method: "get",
|
||
data: {
|
||
page: 1,
|
||
limit: 5,
|
||
},
|
||
success: function (res) {
|
||
const announceList = res.data.list;
|
||
announceList.forEach((item, index) => {
|
||
$("#announceList").append(`
|
||
<div class="news-item">
|
||
<div class="fboxRow Ycenter">
|
||
<div class="number">${index + 1}</div>
|
||
<a href="./announce-details.html?id=${item.id}">
|
||
<div class="title font-ell1">${item.title}</div>
|
||
</a>
|
||
</div>
|
||
<div class="time">${formateTimeFun(item.create_time)}</div>
|
||
</div>
|
||
`);
|
||
});
|
||
},
|
||
});
|
||
}
|
||
getAnnounceList();
|
||
// 新闻列表
|
||
function getNewsList() {
|
||
$.ajax({
|
||
url: "/console/v1/news",
|
||
method: "get",
|
||
data: {
|
||
page: 1,
|
||
limit: 5,
|
||
},
|
||
success: function (res) {
|
||
const announceList = res.data.list;
|
||
announceList.forEach((item, index) => {
|
||
$("#newsList").append(`
|
||
<div class="news-item">
|
||
<div class="fboxRow Ycenter">
|
||
<div class="number">${index + 1}</div>
|
||
<a href="./news-details.html?id=${item.id}">
|
||
<div class="title font-ell1">${item.title}</div>
|
||
</a>
|
||
</div>
|
||
<div class="time">${formateTimeFun(item.create_time)}</div>
|
||
</div>
|
||
`);
|
||
});
|
||
},
|
||
});
|
||
}
|
||
getNewsList();
|
||
|
||
$("#myTabs a").click(function (e) {
|
||
e.preventDefault();
|
||
$(this).tab("show");
|
||
});
|
||
// 跳转函数
|
||
function goOtherPage(url) {
|
||
location.href = url;
|
||
}
|
||
$("#cloud-box").click(function () {
|
||
location.href = "cloud.html";
|
||
});
|
||
$("#domain-box").click(function () {
|
||
location.href = "domain.html";
|
||
});
|
||
$("#recomment-box").click(function () {
|
||
location.href = "/home.htm";
|
||
});
|
||
$("#logon-box").click(function () {
|
||
location.href = "/regist.htm";
|
||
});
|
||
$("#cps-box").click(function () {
|
||
location.href = "partner/cps.html";
|
||
});
|
||
});
|