official_website/static/js/common.js

265 lines
8.7 KiB
JavaScript
Raw Normal View History

2024-12-02 13:57:08 +08:00
/*
* @Descripttion : 通用js
* @Author : liuzhifang
* @Date : 2022-06-02 13:42:45
* @LastEditors : Please set LastEditors
* @LastEditTime : 2022-12-24 00:18:35
*/
// 导航服务和消息
foxui.tooltip({
el: '#barService',
content: barServiceHtml(),
className: 'bar-service-container',
width: '324px',
});
foxui.tooltip({
el: '#barBell',
content: barBellHtml(),
className: 'bar-bell-container',
effect: 'light',
width: '330px',
});
// 导航折叠功能
$('.foxcms-menu-nav-fold').on('click', function () {
let $this = $(this),
$icon = $this.find('i'),
$inner = $('.foxcms-menu-nav-inner'),
isRotate = $icon.is('.rotate');
if (isRotate) {
$icon.removeClass('rotate');
$inner.animate({ width: '148px' });
} else {
$icon.addClass('rotate');
$inner.animate({ width: 0 });
}
});
// 根据窗口宽度判断是否折叠
let foldTimer = null;
$(window).on('resize', function () {
if (foldTimer) {
clearTimeout(foldTimer);
foldTimer = null;
}
foldTimer = setTimeout(function () {
let width = $(window).width(),
$fold = $('.foxcms-menu-nav-fold'),
$icon = $fold.find('i'),
$inner = $('.foxcms-menu-nav-inner'),
isRotate = $icon.is('.rotate');
if (width < 1440) {
if (!isRotate) {
$icon.addClass('rotate');
$inner.animate({ width: 0 });
}
} else {
if (isRotate) {
$icon.removeClass('rotate');
$inner.animate({ width: '148px' });
}
}
clearTimeout(foldTimer);
foldTimer = null;
}, 300);
});
// 收起/展开所有导航
$('.foxcms-menu-expand-all i').on('click', function () {
let $container = $('.foxui-menu.foxui-type-vertical'),
$this = $(this),
isActive = $this.is('.is-active');
if (isActive) {
let $openHandle = $container.find('.foxui-menu-handle.is-active');
$openHandle.click();
$this.removeClass('is-active');
} else {
let $foldHandle = $container.find('.foxui-menu-handle:not(.is-active)');
$foldHandle.click();
$this.addClass('is-active');
}
});
// 根据折叠转换全部折叠按钮状态
$(document).on('click', '.foxui-menu.foxui-type-vertical .foxui-menu-handle', function () {
let count = $('.foxui-menu.foxui-type-vertical .foxui-menu-handle').length,
openLen = $('.foxui-menu.foxui-type-vertical .foxui-menu-handle.is-active').length;
if (count === openLen) {
$('.foxcms-menu-expand-all i').addClass('is-active');
} else {
$('.foxcms-menu-expand-all i').removeClass('is-active');
}
});
// 表单字段调用
$(document).on('click', '.call-field .foxui-tag', function () {
const text = $(this).text(),
el = document.createElement('input');
el.value = text;
el.setAttribute('readonly', '');
el.style.position = 'absolute';
el.style.opacity = 0;
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
foxui.message({ text: '已复制到剪贴板' });
});
// 右侧浮动预览模板
$('.web-image-view .content-box .main-part').on('mouseover', function () {
const viewHeight = $(this).height();
const imgHeight = $(this).find('img').height();
const mValue = viewHeight - imgHeight;
$(this)
.find('img')
.css('marginTop', mValue + 'px');
});
$('.web-image-view .content-box .main-part').on('mouseout', function () {
$(this).find('img').css('marginTop', 0);
});
/* bar -> html
*****************************************************************************************************/
function barServiceHtml() {
return [
'<div class="bar-service-content">',
'<div class="top">',
'<div class="foxui-row foxui-gutter-0">',
'<div class="foxui-col-xs-8 foxui-col-sm-8">',
'<a class="col-inter" href="#">',
'<i class="foxui-icon-weixiao-f"></i>',
'<span>建议留言</span>',
'</a>',
'</div>',
'<div class="foxui-col-xs-8 foxui-col-sm-8">',
'<a class="col-inter" href="#">',
'<i class="foxui-icon-QQ-f"></i>',
'<span>QQ客服</span>',
'</a>',
'</div>',
'<div class="foxui-col-xs-8 foxui-col-sm-8">',
'<a class="col-inter" href="#">',
'<i class="foxui-icon-hezuo-f"></i>',
'<span>代理加盟</span>',
'</a>',
'</div>',
'</div>',
'</div>',
'<div class="bottom">',
'<div class="foxui-row foxui-gutter-6 foxui-align-items-center">',
'<div class="foxui-col-xs-10 foxui-col-sm-10">',
'<div class="col-inter img-box">',
'<img src="'+STATIC_PATH+'images/service_qr_code.jpg"/>',
'</div>',
'</div>',
'<div class="foxui-col-xs-14 foxui-col-sm-14">',
'<div class="col-inter">',
'<p>扫码联系官方客服</p>',
'<p>提供线上咨询</p>',
'<h3><i class="foxui-icon-dianhua-o"></i><span>400-888-3116</span></h3>',
'</div>',
'</div>',
'</div>',
'</div>',
'</div>',
].join('');
}
function barBellHtml() {
return [
'<div class="bar-bell-content">',
'<div class="head">',
'<h2>系统消息</h2>',
'</div>',
'<div class="content">',
'<a class="img-box" href="#">',
'<img src="'+STATIC_PATH+'images/join.png"/>',
'</a>',
'<ul class="message-list">',
'<li class="message-item">',
'<a class="foxui-link" href="#">',
'<span>功能更新 (2022年8月第2期)</span>',
'<i class="foxui-icon-arrow-right"></i>',
'</a>',
'</li>',
'<li class="message-item">',
'<a class="foxui-link" href="#">',
'<span>功能更新 (2022年8月第2期)</span>',
'<i class="foxui-icon-arrow-right"></i>',
'</a>',
'</li>',
'<li class="message-item">',
'<a class="foxui-link" href="#">',
'<span>功能更新 (2022年8月第2期)</span>',
'<i class="foxui-icon-arrow-right"></i>',
'</a>',
'</li>',
'</ul>',
'</div>',
'</div>',
].join('');
}
// 标签调用 html
function _callHtml(dataObj) {
return [
'<div class="edit-model-call-dialog">',
'<div class="foxui-input-group foxui-vertical">',
'<label>首页调用:</label>',
`<input class="foxui-size-small" readOnly placeholder="" value="${dataObj.index}" />`,
'</div>',
'<div class="foxui-input-group foxui-vertical margin-top-32">',
'<label>列表页调用:</label>',
`<input class="foxui-size-small" readOnly placeholder="" value="${dataObj.list}" />`,
'</div>',
'<div class="foxui-input-group foxui-vertical margin-top-32">',
'<label>列表页调用:</label>',
`<input class="foxui-size-small" readOnly placeholder="" value="${dataObj.article}" />`,
'</div>',
'<div class="section-top-info margin-top-32">',
'<p>请将相应标签复制并粘贴到对应模板文件中!</p>',
'</div>',
'</div>',
].join('');
}
// 校验颜色值是否合法
function _CheckIsColor(bgVal) {
let type = '';
if (/^rgb\(/.test(bgVal)) {
//如果是rgb开头200-249250-2550-199
type = '^[rR][gG][Bb][(]([\\s]*(2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?)[\\s]*,){2}[\\s]*(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)[\\s]*[)]{1}$';
} else if (/^rgba\(/.test(bgVal)) {
//如果是rgba开头判断0-255:200-249250-2550-199 判断0-10 1 1.0 0.0-0.9
type = '^[rR][gG][Bb][Aa][(]([\\s]*(2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?)[\\s]*,){3}[\\s]*(1|1.0|0|0.[0-9])[\\s]*[)]{1}$';
} else if (/^#/.test(bgVal)) {
//六位或者三位
type = '^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$';
} else if (/^hsl\(/.test(bgVal)) {
//判断0-360 判断0-100%(0可以没有百分号)
type = '^[hH][Ss][Ll][(]([\\s]*(2[0-9][0-9]|360|3[0-5][0-9]|[01]?[0-9][0-9]?)[\\s]*,)([\\s]*((100|[0-9][0-9]?)%|0)[\\s]*,)([\\s]*((100|[0-9][0-9]?)%|0)[\\s]*)[)]$';
} else if (/^hsla\(/.test(bgVal)) {
type = '^[hH][Ss][Ll][Aa][(]([\\s]*(2[0-9][0-9]|360|3[0-5][0-9]|[01]?[0-9][0-9]?)[\\s]*,)([\\s]*((100|[0-9][0-9]?)%|0)[\\s]*,){2}([\\s]*(1|1.0|0|0.[0-9])[\\s]*)[)]$';
}
if (!type || bgVal.match(new RegExp(type)) == null) {
return false;
} else {
return true;
}
}
// 按钮形状单选
$(document).on('click', '.button-radio .button-radio-item', function () {
$(this).closest('.button-radio').find('.button-radio-item.is-active').removeClass('is-active');
$(this).addClass('is-active');
});