// 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;