Files
BlackFruit-UI/common/common.js
yiqiu 51fd1035aa
All checks were successful
continuous-integration/drone/push Build is passing
东方大厦
2025-11-22 01:14:47 +08:00

310 lines
10 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 消息弹窗
function showMessage(type, message, duration) {
if ($("#alert-container").length <= 0) {
$("body").append(`
<div id="alert-container"></div>
`);
}
const alertClass = "alert-" + type;
const html =
'<div class="alert ' +
alertClass +
' show alert-dismissible" role="alert">' +
message +
'<button type="button" class="close" data-dismiss="alert" aria-label="Close">' +
'<span aria-hidden="true">&times;</span>' +
"</button>" +
"</div>";
const $alert = $(html).appendTo("#alert-container");
setTimeout(function () {
$alert.alert("close");
}, duration);
// 清空表单
}
$(function () {
const headBgcList = [
"#3699FF",
"#57C3EA",
"#5CC2D7",
"#EF8BA2",
"#C1DB81",
"#F1978C",
"#F08968",
];
// 获取账户信息和实名认证信息
const initData = () => {
if (localStorage.jwt) {
$.ajax({
url: " /console/v1/account",
method: "get",
headers: {
Authorization: "Bearer" + " " + localStorage.jwt,
},
success: function (res) {
if (res.status === 200) {
const obj = res.data.account;
$(".no-login").attr("style", "display:none");
$(".login-in").attr("style", "display:flex");
$("#username").text(res.data.account.username);
const reg = /^[a-zA-Z]+$/;
if (reg.test(res.data.account.username.substring(0, 1))) {
obj.firstName = res.data.account.username
.substring(0, 1)
.toUpperCase();
$("#headImg").text(
res.data.account.username.substring(0, 1).toUpperCase()
);
} else {
obj.firstName = res.data.account.username.substring(0, 1);
$("#headImg").text(res.data.account.username.substring(0, 1));
}
if (sessionStorage.headBgc) {
$("#headImg").attr(
"style",
`background:${sessionStorage.headBgc}`
);
} else {
const index = Math.round(
Math.random() * (headBgcList.length - 1)
);
$("#headImg").attr("style", `background:${headBgcList[index]}`);
sessionStorage.headBgc = headBgcList[index];
}
sessionStorage.accountInfo = JSON.stringify(obj);
} else {
$(".login-in").attr("style", "display:none");
$(".no-login").attr("style", "display:block");
}
},
});
$.ajax({
url: " /console/v1/certification/info",
method: "get",
headers: {
Authorization: "Bearer" + " " + localStorage.jwt,
},
success: function (res) {
if (res.status === 200) {
if (res.data.is_certification) {
$("#isCertification").attr("style", "display:inline-block");
$("#noCertification").attr("style", "display:none");
sessionStorage.is_certification = true;
} else {
$("#isCertification").attr("style", "display:none");
$("#noCertification").attr("style", "display:inline-block");
sessionStorage.is_certification = false;
}
} else {
$(".login-in").attr("style", "display:none");
$(".no-login").attr("style", "display:block");
}
},
});
} else {
$(".login-in").attr("style", "display:none");
$(".no-login").attr("style", "display:block");
}
};
// 设置通用信息相关的点击跳转(云服务器/物理机 CTA 等),来源于 SSR 注入的 window.__themeCommon
const setCommData = () => {
const commentObj = window.__themeCommon || {};
$(".buy-cloud").click(function () {
if (commentObj.cloud_product_link) {
location.href = commentObj.cloud_product_link;
}
});
$(".buy-dcim-btn").click(function () {
if (commentObj.dcim_product_link) {
location.href = commentObj.dcim_product_link;
}
});
};
// 跳转函数
const goOtherPage = (url) => {
sessionStorage.redirectUrl = location.href;
location.href = url;
};
function initHeader() {
let showIndex = 0;
$(".nav-menu .nav-item").hover(
function () {
const index = $(".nav-menu .nav-item").index($(this));
$(".nav-cont .nav-cont-menu")
.eq(index)
.attr("style", "display: block;");
// $('.nav-cont').attr('style','display: block;')
if (
!$(".nav-cont .nav-cont-menu").eq(index).hasClass("nav-cont-empty")
) {
const height = $(".nav-cont .nav-cont-menu").eq(index).height();
$(".nav-cont").attr("style", `height: ${height}px;`);
}
showIndex = index;
},
function () {
const index = $(".nav-menu .nav-item").index($(this));
$(".nav-cont ").eq(index).attr("style", "display: none;");
$(".nav-cont .nav-cont-menu").eq(index).attr("style", "display: none;");
$(".nav-cont").attr("style", "height:0");
}
);
$(".nav-cont").hover(
function () {
//$('.nav-cont ').attr('style','display: block;')
$(".nav-cont .nav-cont-menu")
.eq(showIndex)
.attr("style", "display: block;");
//if (showIndex != 0) {
if (!$(this).hasClass("nav-cont-empty")) {
const height = $(".nav-cont .nav-cont-menu").eq(showIndex).height();
$(".nav-cont").attr("style", `height: ${height}px;`);
}
},
function () {
//$('.nav-cont ').attr('style','display: none;')
$(".nav-cont .nav-cont-menu")
.eq(showIndex)
.attr("style", "display: none;");
$(".nav-cont").attr("style", "height:0");
}
);
if (localStorage.jwt) {
if (sessionStorage.accountInfo) {
const obj = JSON.parse(sessionStorage.accountInfo);
$(".no-login").attr("style", "display:none");
$(".login-in").attr("style", "display:flex");
$("#username").text(obj.username);
$("#headImg").text(obj.firstName);
$("#headImg").attr("style", `background:${sessionStorage.headBgc}`);
if (sessionStorage.is_certification == true) {
$("#isCertification").attr("style", "display:inline-block");
$("#noCertification").attr("style", "display:none");
} else {
$("#isCertification").attr("style", "display:none");
$("#noCertification").attr("style", "display:inline-block");
}
}
initData();
} else {
$(".login-in").attr("style", "display:none");
$(".no-login").attr("style", "display:block");
}
// 退出登录
$("#logout").click(function () {
localStorage.removeItem("jwt");
initData();
});
// 点击登录
$("#loginBtn").click(function () {
goOtherPage("/login.htm");
});
// 点击注册
$("#registBtn").click(function () {
goOtherPage("/regist.htm");
});
// 点击账户信息
$("#accountBtn").click(function () {
location.href = "/account.htm";
});
// 未付款订单
$("#financeBtn").click(function () {
location.href = "/finance.htm";
});
// 我的工单
$("#ticketBtn").click(function () {
location.href = "/plugin/27/ticket.htm";
});
// 购物车
$("#shopping-cart").click(function () {
location.href = "/cart/shoppingCar.htm";
});
}
function initFooter() {
// 主题配置已在服务端渲染阶段注入到 window.__themeCommon这里只做少量点击事件绑定
setCommData();
}
// 首页渲染
// $("#header").load("/web/BlackFruit-web/public/header.html", function () {
// initHeader();
// });
initHeader();
// 底部渲染
// $("#footer").load("/web/BlackFruit-web/public/footer.html", function () {
// initFooter();
// });
initFooter();
const resize = function () {
const width = $(window).width();
const num = width / 1400;
if (1000 < width && width < 1440) {
$("section").attr(
"style",
"width:1400px;transform: scaleX(" + num + ");transform-origin: 0 0;"
);
} else {
$("section").attr("style", "");
}
};
resize();
window.addEventListener("resize", resize);
$(".input-search-s ").click(function () {
$(".input-search-select .select-box").toggle();
});
$(".input-search-r").click(function () {
$(".input-search-select .select-box").toggle();
});
$(".input-search-select").on("click", ".select-box-item", function () {
$(".input-search-text").text($(this).text());
$(".input-search-select .select-box").toggle();
});
/* 招聘tab切换 */
$(".recuit-btn-group a").each(function (ind, el) {
$(el).click(function () {
$(this).addClass("active").siblings().removeClass("active");
$(".recuit-content .recuit-box").eq(ind).show().siblings().hide();
});
});
/* 常见问题toggle */
$(".agent-question .item").eq(0).addClass("active");
$(".agent-question .item").eq(0).find(".des").slideDown(300);
$(".agent-question .item").each(function (ind, el) {
$(el)
.find(".open")
.click(function () {
$(this).parent(".title").parent(".item").find(".des").slideDown(300);
$(this)
.parent(".title")
.parent(".item")
.addClass("active")
.siblings()
.removeClass("active")
.find(".des")
.slideUp(300);
});
$(el)
.find(".down")
.click(function () {
$(this)
.parent(".des")
.slideUp(300)
.parent(".item")
.removeClass("active");
});
});
$("#documentBtn").click(function () {
location.href = "./document.html";
});
$(".go-ticket-btn").click(function () {
location.href = "home.htm";
});
});