// import {getStore, setStore} from '@/util/store'
|
|
// import {getDictionary} from '@/api/system/dict'
|
let screenSizes = {
|
w: window.screen.width,
|
h: window.screen.height
|
};
|
let innerWH = {
|
innerWidth: window.innerWidth,
|
innerHeight: window.innerHeight
|
};
|
const control = {
|
state: {
|
clearOtherBut: {
|
refreshBtn: false,
|
columnBtn: false,
|
searchShowBtn: false,
|
filterBtn: false,
|
// addBtn: false,
|
// editBtn: false,
|
// viewBtn: false,
|
// delBtn: false,
|
searchIndex: 6, //收缩展示数量
|
searchIcon: true, //搜索是否收缩
|
height: window.screen.height //初始高度
|
},
|
changePageSize: {
|
pageSize: 15,
|
currentPage: 1,
|
total: 0,
|
pageSizes: [15, 30, 50, 100]
|
},
|
windowWidth: innerWH.innerWidth,
|
windowHeight: innerWH.innerHeight,
|
tableWindowHeight: innerWH.innerHeight,
|
heightTimesOut: "",
|
table_height: "",
|
butState: "",
|
oldOpens: "",
|
screenSize: screenSizes.w <= 1366 && screenSizes.h <= 768,
|
screenHeight: 1000,
|
|
searchOpen: {
|
searchIndex: 6, //收缩展示数量
|
searchIcon: true, //搜索是否收缩
|
height: window.screen.height //初始高度
|
},
|
//面的集和点
|
polygons: [],
|
},
|
actions: {
|
WHchangeHight({
|
state,
|
commit
|
}, data) {
|
if (data.fn) {
|
if (!state.heightTimesOut) {
|
data.fn(state.windowHeight);
|
} else {
|
state.heightTimesOut = setTimeout(() => {
|
clearTimeout(state.heightTimesOut);
|
state.heightTimesOut = "";
|
data.fn(state.windowHeight);
|
}, 500);
|
}
|
}
|
},
|
|
TABLE_CHANGEBUTPOSITION({
|
state,
|
commit,
|
dispatch
|
}, data) {
|
//判断是否有展开按键,并做调整,具体样式在smallSize.scss中做调整
|
let table = document.getElementsByClassName("tablesss")[0];
|
let heard = table.getElementsByClassName("avue-crud__search")[0]; //获取搜索的长度
|
let buts = table.getElementsByClassName("avue-form__menu--center")[0];
|
let Open = buts.getElementsByClassName("el-button--text")[0];
|
let butsheight = heard.clientHeight;
|
let other = data.otherclass || [];
|
// buts.style.transition = "all 0.1s";
|
if (buts) {
|
buts.style.top = butsheight - 3 + "px";
|
}
|
if (other && state.windowWidth >= 1024) {
|
for (let k in other) {
|
let otherbuts = document.getElementsByClassName(other[k])[0];
|
// otherbuts.style.transition = "all 0.1s";
|
if (otherbuts) {
|
otherbuts.style.top = butsheight + 26 + "px";
|
}
|
}
|
}
|
// Open.style.transition = "all 0.1s";
|
// Open.style.top = -(butsheight + 4) + "px";
|
// 添加事件
|
if (Open) {
|
Open.style.top = (state.screenSize ? 125 : 140) + "px";
|
Open.onclick = function (e) {
|
// changedom(e.srcElement.innerText);
|
//固定高度
|
//调用改变高度
|
if (e.srcElement.innerText == "展 开") {
|
state.tableWindowHeight += 1;
|
} else {
|
state.tableWindowHeight -= 1;
|
}
|
// commit("setButOpens", e.srcElement.innerText);
|
};
|
}
|
},
|
TABLE_CHANGEHEIGHT({
|
state,
|
commit
|
}, data) {
|
let h = +state.windowHeight - (+data.searchHeight + +data.flowHeight);
|
console.log(h);
|
state.table_height = h;
|
// commit("settable_height", h);
|
},
|
changeZoom({
|
state,
|
commit,
|
dispatch
|
}, data) {
|
if (window.innerWidth <= 1396 && window.innerHeight <= 798) {
|
// var devicewidth = document.documentElement.clientWidth; //获取当前分辨率下的可是区域宽度
|
// console.log(devicewidth)
|
let devicewidth = 1143;
|
var scale = devicewidth / 1366; // 分母——设计稿的尺寸
|
document.body.style.zoom = scale; //放大缩小相应倍数
|
// console.log("应用1366*768")
|
} else {
|
if (document.body.style.zoom != 1) {
|
document.body.style.zoom = 1;
|
// console.log("还原缩放")
|
}
|
}
|
// return;
|
let usheight = 0;
|
//监听可视高度
|
Object.defineProperty(state, "tableWindowHeight", {
|
set: function (key, value) {
|
// //此处拦截了设置请求
|
// window.console.log(key, value, "tableWindowHeight");
|
usheight = key;
|
let d = {
|
fn: function (h) {
|
let doit = (height, val) => {
|
//获取tablesss 若没有 不做更改
|
let table = document.getElementsByClassName("tablesss");
|
// console.log(table[0]);
|
if (table[0]) {
|
//有需要调整的表格
|
let heard = table[0].getElementsByClassName(
|
"avue-crud__search"
|
);
|
let tip = document.getElementsByClassName("avue-crud__tip")[0];
|
//判断是否存在提示dom
|
let usNum = state.screenSize ? 165 : 302;
|
if (!tip) {
|
// console.log("没有tip")
|
usNum = usNum - 50;
|
}
|
let pagination = document.getElementsByClassName("avue-crud__pagination")[0];
|
//判断是否存在分页
|
if (!pagination) {
|
// console.log("没有分页")
|
usNum = usNum - 45;
|
}
|
let nav_scroll = document.getElementsByClassName("el-tabs__nav-scroll");
|
if (nav_scroll[1]) {
|
// console.log("有额外标签栏")
|
usNum = usNum + 55;
|
}
|
let hs = height || h;
|
let overHeight = +hs - (+heard[0].clientHeight + +usNum);
|
// console.log(overHeight, heard[0].clientHeight, usNum);
|
let fromDom = document.getElementsByClassName(
|
"el-table--fit"
|
);
|
if (fromDom) {
|
let ifsize = fromDom.length;
|
// console.log("页面表格数量:", ifsize)
|
for (let ifrom = 0; ifrom < ifsize; ifrom++) {
|
// fromDom[ifrom].style.transition = "height 0.1s";
|
fromDom[ifrom].style.maxHeight = overHeight + "px";
|
fromDom[ifrom].style.height = overHeight + "px";
|
}
|
}
|
let d = {
|
otherclass: ["downSFZ"],
|
haveOpen: true
|
};
|
dispatch("TABLE_CHANGEBUTPOSITION", d);
|
}
|
return;
|
};
|
// if (that.onceTableChange == 1) {
|
// //解决第一次未渲染成功会报错的问题
|
// that.onceTableChange++;
|
// console.log(that.onceTableChange);
|
// commit("checkDomHeight", {
|
// domName: "getElementsByClassName",
|
// name: "el-table--fit",
|
// fn: function() {
|
// that.$nextTick(() => {
|
// setTimeout(() => {
|
// doit(window.innerHeight, "once");
|
// }, 200);
|
// });
|
// }
|
// });
|
// } else {
|
doit(window.innerHeight);
|
// }
|
}
|
};
|
dispatch("WHchangeHight", d);
|
return
|
// tablesss
|
// class="tablesss"
|
$store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
|
$store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : '',
|
|
// searchIndex: 6, //收缩展示数量
|
// searchIcon: true, //搜索是否收缩
|
// ...this.$store.state.control.searchOpen,
|
// height: "auto",
|
// 初始化位置, 放入mounted, 以及放入onload的获取数据后
|
this.$store.commit("setWindowSizeHeightAdd");
|
},
|
get: function () {
|
// console.log('get!', usheight);
|
return usheight;
|
}
|
});
|
},
|
MOUNTED_TABLE_SIZE({
|
state,
|
commit,
|
dispatch
|
}, data) {
|
let d = {
|
otherclass: ["downSFZ"],
|
haveOpen: true,
|
from: "mounted"
|
};
|
// 开始就适应高度
|
commit("setWindowSizeHeightAdd");
|
// dispatch("TABLE_CHANGEBUTPOSITION", d);
|
}
|
},
|
mutations: {
|
setpolygon: (state, data) => {
|
state.polygons = data;
|
},
|
setWindowSize: (state, data) => {
|
state.windowWidth = data.innerWidth;
|
state.windowHeight = data.innerHeight;
|
// console.log(state.windowHeight, "state.windowHeight")
|
},
|
setWindowSizeHeight: (state, data) => {
|
state.tableWindowHeight = data;
|
// console.log(state.tableWindowHeight, "state.tableWindowHeight")
|
},
|
setWindowSizeHeightAdd: (state, data) => {
|
setTimeout(() => {
|
state.tableWindowHeight += 1;
|
}, 0);
|
},
|
setButOpens(state, data) {
|
state.butState = data;
|
},
|
setOldOpens(state, data) {
|
state.oldOpens = data;
|
state.oldOpens = data;
|
},
|
setScreenSize(state, data) {
|
state.screenSize = data.w <= 1366 && data.h <= 768 ? 1366 : false;
|
state.screenHeight = data.h;
|
},
|
checkDomHeight(state, data) {
|
// 声明定时器
|
var timer = null;
|
// 检查dom是否执行完成
|
function checkDom() {
|
let dom = document[data.domName](data.name);
|
console.log(dom[0].style.height, "height");
|
if (dom[0].style.height) {
|
// 执行dom加载完成后的操作
|
// 清除定时器
|
if (!timer) {
|
clearTimeout(timer);
|
}
|
if (data.fn) {
|
//回调函数
|
data.fn(dom);
|
return;
|
} else {
|
return dom;
|
}
|
} else {
|
// 自我调用
|
timer = setTimeout(checkDom, 200);
|
}
|
}
|
// 首次执行
|
checkDom();
|
}
|
}
|
};
|
|
export default control;
|