You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

176 lines
8.1 KiB

//判断字符串是否为空
function isNullOrEmpty(str) {
if (typeof str === "string") {
return /^ *$/.test(str);
} else if (typeof str === "function") {
return false;
}
for (let key in str) { //可遍历的
return false;
}
return typeof str !== "number" && typeof str !== "boolean";
}
document.ready = (function () {
let funcs = []; //当获得事件时,要运行的函数
let ready = false; //当触发事件处理程序时,切换为true
//当文档就绪时,调用事件处理程序
function handler(e) {
if (ready) return; //确保事件处理程序只完整运行一次
//如果发生onreadystatechange事件,但其状态不是complete的话,那么文档尚未准备好
if (e.type === 'onreadystatechange' && document.readyState !== 'complete') {
return;
}
//运行所有注册函数
//注意每次都要计算funcs.length
//以防这些函数的调用可能会导致注册更多的函数
for (let i = 0; i < funcs.length; i++) {
funcs[i].call(document);
}
//事件处理函数完整执行,切换ready状态, 并移除所有函数
ready = true;
funcs = null;
}
//为接收到的任何事件注册处理程序
if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', handler, false);
document.addEventListener('readystatechange', handler, false); //IE9+
window.addEventListener('load', handler, false);
} else if (document.attachEvent) {
document.attachEvent('onreadystatechange', handler);
window.attachEvent('onload', handler);
}
//返回whenReady()函数
return function whenReady(fn) {
if (ready) { fn.call(document); }
else { funcs.push(fn); }
}
})();
let currentBlockObjectColor__ = "blue";
const $PABlockControlPanel__ = document.getElementById("hc_block_control_set_panel");
let currentMouseOverBlockIdx__ = -1;
document.ready(function () {
$PABlockControlPanel__.style.display = "none";
const $PABlockControlSetBtn__1 = document.getElementById("hc_block_control_set_btn_1");
const $PABlockControlSetBtn__2 = document.getElementById("hc_block_control_set_btn_2");
const blockControlDescriptor__ = {blockId: 0,columnId: 0,infoId:0,infoTable:"",setType:"",setUrl:"",title:"设置",winWidth:"80%",winHeight:"80%"};
const $PABlockControl__ = document.querySelectorAll("*[data-hc-block-control='true']"); //根据样式获取
const blockControlPanelColors__ = ["blue", "red", "black", "white"];//控制面板可选颜色
function showControl(idx) {
const obj = $PABlockControl__[idx];
let dataBlockId = obj.getAttribute("data-block-id");
let dataColumnId = obj.getAttribute("data-block-column-id");
let dataInfoId = obj.getAttribute("data-block-info-id");
let dataInfoTable = obj.getAttribute("data-block-info-table");
let setType = obj.getAttribute("data-block-set-type");
let dataSetUrl = obj.getAttribute("data-block-control-url");
let dataTitle = obj.getAttribute("data-block-control-title");
let winWidth = obj.getAttribute("data-block-control-width");
let winHeight = obj.getAttribute("data-block-control-height");
if (isNullOrEmpty(dataBlockId)) {
dataBlockId = 0;
}
if (isNullOrEmpty(dataColumnId)) {
dataColumnId = 0;
}
if (isNullOrEmpty(dataInfoId)) {
dataInfoId= 0;
}
if (isNullOrEmpty(dataInfoTable)) {
dataInfoTable = "";
}
if (isNullOrEmpty(setType)) {
setType = "";
}
if (dataInfoId > 0) {
$PABlockControlSetBtn__1.innerText = "编辑";
}
else if (dataColumnId > 0 || setType == "infoAdmin" || setType == "columnAdmin"){
$PABlockControlSetBtn__1.innerText = "管理";
}
else {
$PABlockControlSetBtn__1.innerText = "设置";
}
let dataBlockControlStyle = obj.getAttribute("data-block-control-style");
if (isNullOrEmpty(dataBlockControlStyle)) {
dataBlockControlStyle = "blue";
}
if (blockControlPanelColors__.indexOf(dataBlockControlStyle) < 0) {
dataBlockControlStyle = "blue";
}
currentBlockObjectColor__ = dataBlockControlStyle;
const pageXOffset = window.pageXOffset;
const pageYOffset = window.pageYOffset;
const pos = obj.getBoundingClientRect();
blockControlDescriptor__.setType = setType
blockControlDescriptor__.blockId = dataBlockId;
blockControlDescriptor__.columnId = dataColumnId;
blockControlDescriptor__.infoTable = dataInfoTable;
blockControlDescriptor__.infoId = dataInfoId;
blockControlDescriptor__.title = dataTitle;
blockControlDescriptor__.setUrl = dataSetUrl;
blockControlDescriptor__.winWidth = winWidth;
blockControlDescriptor__.winHeight = winHeight;
$PABlockControlPanel__.style.display = "block";
$PABlockControlPanel__.style.width = pos.width + "px";
//$PABlockControlPanel__.style.height = blockControlDescriptor__.height + "px";
$PABlockControlPanel__.style.top = pos.top + pageYOffset + "px";
$PABlockControlPanel__.style.left = pos.left + +pageXOffset + "px";
$PABlockControlPanel__.style.display = "block";
$PABlockControlPanel__.classList.remove("hc-block-control-panel-blue", "hc-block-control-panel-red", "hc-block-control-panel-black", "hc-block-control-panel-white");
$PABlockControlPanel__.classList.add("hc-block-control-panel-" + dataBlockControlStyle);
$PABlockControlPanel__.style.display = "block";
obj.classList.add("current-set-block-color-" + currentBlockObjectColor__);
currentMouseOverBlockIdx__ = idx;
}
for (let i = 0; i < $PABlockControl__.length; i++) {
(function (idx) {//闭包解决for循环中i变化的问题
const obj = $PABlockControl__[idx];
obj.onmouseenter = function (event) {
showControl(idx)
};
obj.onmouseleave = function () {
obj.classList.remove("current-set-block-color-blue", "current-set-block-color-red", "current-set-block-color-black", "current-set-block-color-white");
$PABlockControlPanel__.style.display = "";
}
})(i);//立即执行匿名函数,传递下标i(实参)
}
$PABlockControlPanel__.onmouseenter = function () {
showControl(currentMouseOverBlockIdx__);
}
$PABlockControlPanel__.onmouseleave = function () {
const idx = currentMouseOverBlockIdx__;
if (idx >= 0) {
const obj = $PABlockControl__[idx];
obj.classList.remove("current-set-block-color", "current-set-block-color-blue", "current-set-block-color-red", "current-set-block-color-black", "current-set-block-color-white");
$PABlockControlPanel__.style.display = "none";
}
}
$PABlockControlSetBtn__1.onclick = function () {
if (parent !== self) {
parent.blockContentSet(blockControlDescriptor__);
}
}
$PABlockControlSetBtn__2.onclick = function () {
if (parent !== self) {
parent.childScrollHeight = window.pageYOffset;
}
window.location.reload();
}
});
window.addEventListener("resize", function () {
currentMouseOverBlockIdx__ = -1;
$PABlockControlPanel__.style.display = "none";
}, false);
document.getElementById('hc_block_control_set_btn_1').addEventListener("click",function(){
window.open = "http://huocms.dev.test/themeFile/compData?url=/&theme_id=2&website_id=3&block=1&token=Bearer%20eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjEifQ.eyJpc3MiOiJjbGllbnQudGFudCIsImF1ZCI6InNlcnZlci50YW50IiwianRpIjoiMSIsImlhdCI6MTYzMTIzNjA0MSwibmJmIjoxNjMxMjM2MDQxLCJleHAiOjE2MzM4MjgwNDEsInJlZnJlc2hBdCI6MTYzNTAzNzY0MSwic3RvcmUiOiIiLCJ1aWQiOjEsIm5hbWUiOiJyZWlkLXVwZGF0ZSIsInNlbGxlcl9pZCI6MX0.i3NQV9AfvFxHQatBkE8Hmje4E9jN5ACT7o_XQI3lXbQ";
});