// 处于页面配置时,绑定方法 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')
if(!$(this).hasClass('ignore'))
$('.ys-header__cover').removeClass('display-none')
}, function () {
$(this).find('.ys-header__card').removeClass('show')
$('.ys-header__cover').addClass('display-none')
})
// 产品中心悬停
$('.ys-header__nav .product-item').hover(function () {
$('.ys-header__nav .product-child').addClass('display-none')
$('.ys-header__nav .product-item').removeClass('active')
$(this).addClass('active')
$(this).next().removeClass('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()
})
// 客服
$('.ys-header-shortcut__server span').click(function(){
window.dispatchEvent(
new CustomEvent('openService')
)
})
/* 多选框 */
$(function () {
$("#skus").selectize({
plugins: ["no_results"],
closeAfterSelect: true,
valueField: "value",
labelField: "label",
respect_word_boundaries: false,
openOnFocus: true,
searchField: ["label", "value", "other"], // 搜索字段
loadThrottle: 500, // 节流
render: {
item: function (item, escape) {
return "" + escape(item.label) + "";
},
},
// 远程搜索
load(query, callback) {
$request
.get("/api/goods/sku/options?is_free_sample=1&keyword=" + query)
.then((res) => {
// 因为插件需要搜索对应字段有相关查询词,
// 如果模糊搜索情况可能会查询不到,添加字段绑定
if(Array.isArray(res.data)){
res.data.forEach(e => {
e.other = query
});
}
callback(res.data)
}).catch((e) => {
callback()
})
},
onChange(e) {
console.log("e", e);
},
});
});
$("#form").validate({
onsubmit: false,
rules: {
company: "required",
contact: "required",
phone: {
required: true,
checkMobile: true,
},
},
messages: {
company: "请输入您的企业信息",
contact: "请输入联系人",
phone: {
required: "请输入手机号",
},
},
});
$(".form-submit").click((e) => {
e.preventDefault();
var selectize = $("#skus").get(0).selectize;
var current = selectize.getValue();
if (!current.length && !$('#description').val())
return $message.error('请选择或描述您的试样')
let data = {};
$.each($("#form").serializeArray(), function (i, obj) {
data[obj.name] = obj.value
})
if ($("#form").valid()) {
$request
.post("/api/service/free-sample/apply", {
...data,
sku_code: current
})
.then((res) => {
$message.success('提交成功')
customEventLog("apply_sample"); // 打点
customEventLog("set", { key:'clue', value:'apply_sample'}, {onlyTrack: ["ClarityTracker"]}); // clarity标签
location.href = '/'
});
}
});
// 联系客服
$('.form-buttons button:last').click(function() {
window.dispatchEvent(
new CustomEvent('openService')
)
})
$('.apply-sample__staff').click(function() {
window.dispatchEvent(
new CustomEvent('openService')
)
})
// 处于页面配置时,绑定方法
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) => `