// 处于页面配置时,绑定方法 start
if ($isDecorateMode) {
document.addEventListener("diy_header/1", (event) => {
const { field, value } = event.detail;
console.log(field, value)
if (field === 'hots') {
let html = ''
value.forEach(e => {
html += `${e.name}`
})
$('.' + field).html(html)
}
});
}
// 处于页面配置时,绑定方法 end
$(function () {
$("#logout").click(function () {
$request
.post("/api/user/logout")
.then((res) => {
// 跳转页面
location.href = "/";
});
})
// 防止一开始进入页面在底部不显示
setHeaderSticky()
$(window).scroll(setHeaderSticky)
function setHeaderSticky(){
let offset = $("html,body").scrollTop()
if (offset) {
$('.ys-header').addClass('is-sticky')
} else {
$('.ys-header').removeClass('is-sticky')
}
}
// 导航栏悬停
$('.ys-header__nav .nav-item').hover(function () {
$(this).find('.ys-header__card').addClass('show')
$('.ys-header__cover').removeClass('display-none')
}, function () {
$(this).find('.ys-header__card').removeClass('show')
$('.ys-header__cover').addClass('display-none')
})
// 搜索框悬停事件
$('.ys-header__search').focus(function () {
$('.ys-header__nav').addClass('display-none')
$('.ys-header__right').addClass('open')
}, function() {
if (!$('.ys-header__search-card').hasClass('show')) {
$('.ys-header__nav').removeClass('display-none')
$('.ys-header__right').removeClass('open')
}
})
// 搜索框聚焦事件
$('.ys-header__search input').focus(function () {
openSearchCard()
})
$('.ys-header__search-card .icon-close').click(function () {
closeSearchCard()
})
$(document).on('click', function (e) {
if (!$('.ys-header__search-card')[0].contains(e.target) && !$('.ys-header__search input').is(':focus')) {
closeSearchCard()
}
})
// 搜索
$('.ys-header__search input').keyup(function (e) {
if (e.keyCode === 13) {
search()
}
})
$('.ys-header__search .search-btn').click(function () {
search()
})
// 清空历史记录
$('.ys-header__search-card .search-history span').click(function () {
localStorage.removeItem('searchHistory')
setHistory()
})
// 展开搜索卡片
function openSearchCard() {
$('.ys-header__nav').addClass('display-none')
$('.ys-header__search-card').addClass('show')
$('.ys-header__cover').removeClass('display-none')
$('.ys-header__right').addClass('open')
}
// 收起搜索卡片
function closeSearchCard() {
$('.ys-header__nav').removeClass('display-none')
$('.ys-header__search-card').removeClass('show')
$('.ys-header__cover').addClass('display-none')
$('.ys-header__right').removeClass('open')
}
// 搜索事件
function search() {
let val = $('.ys-header__search input').val()
if (!val) return $message.warning('请输入搜索关键词')
let history = JSON.parse(localStorage.getItem('searchHistory')) || []
history.unshift(val)
history = [...new Set(history)]
localStorage.setItem('searchHistory', JSON.stringify(history.slice(0, 10)))
window.open('/search_result.html?keyword=' + val)
closeSearchCard()
setHistory()
}
// 设置搜索历史
function setHistory() {
let history = JSON.parse(localStorage.getItem('searchHistory')) || []
let html = ''
history.forEach(e => {
html += `${e}`
})
$('.ys-header__search-card .search-history .search-words').html(html)
}
setHistory()
// 熊猫体育官网首页入口
tabs切换
const moreTypeList = ['information', 'catalog'] // 存在 more 的类型
$('.service-cate li').hover(function () {
let type = $(this).attr('data-type')
if (type) {
$('.service-cate li').removeClass('active')
$(this).addClass('active')
$('.ys-header__service .content-item').addClass('display-none')
$('.ys-header__service .content-item[data-type='+type+']').removeClass('display-none')
if(moreTypeList.includes(type)){
$('.service-content-more').not('.' + type).addClass('display-none')
$('.service-content-slide').removeClass('display-none')
$('.service-content-more.' + type).removeClass('display-none')
} else {
$('.service-content-more').addClass('display-none')
$('.service-content-slide').addClass('display-none')
}
}
})
// 关于我们tabs切换
$('.about-cate-item').hover(function () {
let type = $(this).attr('data-type')
if (type) {
$('.about-cate-item').removeClass('active')
$(this).addClass('active')
$('.about-content .about-item').addClass('display-none')
$('.about-content .about-item[data-type='+type+']').removeClass('display-none')
// 用于切换底部更多链接跳转,现在没有更多,如果需要参考上方取消注释
/* $('.about-content-slide').addClass('display-none')
$('.about-content-more').addClass('display-none') */
}
})
})
// 点赞相关
let likeLoading = false
const likeStateInfo = {
default: 'icon-thumb',
active: 'icon-thumb-fill',
}
$('.article-tools__like').click(function () {
if (!$isLogin) {
$message.info('请先登录')
return
}
if (likeLoading) {
$message.info('正在处理中,请稍等~')
return
}
likeLoading = true
const icon = $(this).children('.iconfont')
const isActive = icon.hasClass(likeStateInfo.default)
if (isActive) {
icon.removeClass(likeStateInfo.default).addClass(likeStateInfo.active)
} else {
icon.removeClass(likeStateInfo.active).addClass(likeStateInfo.default)
}
handleLikeRequest(+isActive)
})
/**
* @description: 处理点赞 ajax
* @return {*}
*/
function handleLikeRequest(state) {
$request
.post("/api/content/like", { id: $('.info-detail__content').data('id') }).then(() => {
$message.success(state ? '点赞成功' : '取消点赞成功')
likeLoading = false
})
}
// 点击分享相关
$('.article-tools .tencent').on('click', () => {
let url = encodeURIComponent(location.href)
let title = encodeURIComponent($('.article__title').text())
window.open(
`https://connect.qq.com/widget/shareqq/index.html?url=${url}&title=${title}&source=${url}&desc=${title}&pics=`
)
})
$('.article-tools .weibo').on('click', () => {
let url = encodeURIComponent(location.href)
let title = encodeURIComponent($('.article__title').text())
window.open(
`https://service.weibo.com/share/share.php?url=${url}&title=${title}&pic=&appkey=&sudaref=`
)
})
// 创建分享二维码
$().ready(() => {
new QRCode(document.querySelector('.share-options .cover-code div'), {
text: location.href,
width: 100,
height: 100,
colorDark: '#000000',
colorLight: '#ffffff',
})
})
// 复制链接
$('.share-options .link').on('click', () => {
let oInput = document.createElement('input')
oInput.value = location.href
document.body.appendChild(oInput)
oInput.select()
document.execCommand("Copy")
oInput.remove()
$message.success('复制成功')
})
$(function () {
// 页面滚动时右侧栏的悬停
let articleHeight = $('.content-side').height() - +($('.related-product').height() || 0)
let sideHeight = $('.info-side').height()
window.addEventListener('scroll', function () {
let scrollHeight = $(document).scrollTop() + $(window).height()
if (articleHeight > sideHeight) {
if (scrollHeight - 173 >= sideHeight) {
$('.info-side').addClass('fixed-bottom')
if (scrollHeight > articleHeight) {
$('.info-side > div').css('bottom', scrollHeight - articleHeight + 'px')
} else {
$('.info-side > div').css('bottom', 0)
}
} else {
$('.info-side').removeClass('fixed-bottom')
}
}
});
// 埋点
productViewListItem()
productSelectItemClick()
})
/* 埋点方法 start */
const ItemListId = 'information_related_products_list'; // ga view_item_list 列表id
const ItemListName = 'information related products list';// ga view_item_list 列表名称
function productViewListItem() {
const itemsInfoList = getProductListInfo()
if(!Array.isArray(itemsInfoList) || !itemsInfoList.length) return
const ecommerceListObj = {
event: "view_item_list",
ecommerce: {
item_list_id: ItemListId,
item_list_name: ItemListName,
items: itemsInfoList,
}
}
customEventLog('ecommerce', ecommerceListObj, {onlyTrack: ["DataLayerTracker"]})
}
function getProductListInfo() {
const itemInfoList = []
$('.related-product__list .related-product__item').each(function (index, value) {
const itemEle = $(this)
const item = {
item_id: itemEle.find('.product__code').text().trim(),
item_name: itemEle.find('.product__title').text().trim(),
index: index + 1,
item_list_id: ItemListId,
item_list_name: ItemListName,
from_information: $('.info-detail__content').data('id')
}
itemInfoList.push(item)
})
return itemInfoList
}
// 列表点击商品
function productSelectItemClick() {
$('.related-product__list').on('click', 'a', productSelectItem)
}
function productSelectItem() {
const itemEle = $(this)
const ecommerceItemObj = {
event: "select_item",
ecommerce : [{
item_list_id: ItemListId,
item_list_name: ItemListName,
items: {
item_id: itemEle.find('.product__code').text().trim(),
item_name: itemEle.find('.product__code').text().trim(),
index: itemEle.index() + 1,
item_list_id: ItemListId,
item_list_name: ItemListName,
from_information: $('.info-detail__content').data('id')
}
}]
}
customEventLog('ecommerce', ecommerceItemObj, {onlyTrack: ["DataLayerTracker"]})
}
/* 埋点方法 end */
// 处于页面配置时,绑定方法
if ($isDecorateMode) {
document.addEventListener('diy_footer/1', (event) => {
const { field, value } = event.detail
console.log(field, value)
if (field === 'footer_ad') {
const nodes = $(
value
.map((item) => ``)
.join('')
)
$('.ys-footer__ad').empty()
$('.ys-footer__ad').append(nodes)
} else if (field === 'contact_phone') {
$('.footer_phone').text(value)
} else if (field === 'work_time') {
$('.footer_work_time').text(value)
} else if (field === 'contact_email') {
$('.footer_email').text(value)
} else if (field === 'footer_nav') {
const nodes = $(
value
.map(
(c) => `
`
)
.join('')
)
$('.ys-footer__content .center-part').empty()
$('.ys-footer__content .center-part').append(nodes)
} else if (field === 'right_part') {
const nodes = $(
value
.map((item) => `
`)
.join('')
)
$('.ys-footer__content .right-part').empty()
$('.ys-footer__content .right-part').append(nodes)
} else if (field === 'friendly_links') {
const nodes = $(
value
.map(
(e) => `