/** * Created by Mai on 2017/3/10. */ $(function () { // 读取本地存储的高度(必须放在载入spread之前) let mainResizeEles = {}; mainResizeEles.id = '#main'; mainResizeEles.resize = $('#main').find('.resize'); mainResizeEles.nearElement = $('#main').find('.top-content'); mainResizeEles.nearSpread = mainResizeEles.nearElement.children(".main-data-top"); mainResizeEles.farElement = $('#main').find('.bottom-content'); mainResizeEles.farSpread = mainResizeEles.farElement.children().find(".main-data-bottom"); mainResizeEles.nav = mainResizeEles.farElement.children('ul.nav'); loadSize(mainResizeEles, 'height', function() { refreshSubSpread(); zmhs_obj.refresh(); }); $("#header-menu").removeAttr('style'); projectInfoObj.showProjectInfo(); projectObj.checkMainSpread(); projectObj.loadProjectData(); $('#tab_baobiao').on('shown.bs.tab', function (e) { $(e.relatedTarget.hash).removeClass('active'); // do something }); $('#tab_zaojiashu').on('shown.bs.tab', function (e) { //设置sessionStorage,重载时用 sessionStorage.setItem('mainTab', '#tab_zaojiashu'); $(e.relatedTarget.hash).removeClass('active'); $("#subItems").addClass('active'); $(gljOprObj.activeTab).addClass('active'); autoFlashHeight(); projectObj.refreshMainSpread(); }); $('#tab_report').on('shown.bs.tab', function(e){ sessionStorage.setItem('mainTab', '#tab_report'); }); slideResize(mainResizeEles, {min: 170, max: 700}, 'height', function() { projectObj.mainSpread.refresh(); refreshSubSpread(); zmhs_obj.refresh(); }); /*const projectId = scUrlUtil.GetQueryString('project'); // 绑定点击事件 projectObj.mainSpread.bind(GC.Spread.Sheets.Events.CellClick, function(sender, info) { if (info.row !== undefined && projectId !== undefined) { setLocalCache('lastRow:' + projectId, info.row); setLocalCache('lastCol:' + projectId, info.col); } });*/ }); /** * 拖动更改div大小 * * @param {Object} eles - id:存储本地的标记 resize:拖动条 nearElement:左上外层div nearSpread:左上spread farElement:右下外层div evFixedSize:造价书左右拖动用 * @param {Object} limit - min/max * @param {String} type - height/width * @param {function} callback - 成功后执行 * @return {void} */ function slideResize(eles, limit, type, callback) { if(type !== 'height' && type !== 'width'){ return; } //nearElement:左上, farElement:右下 let startP = 0; let drag = false; const resizeElement = eles.resize; const nElement = eles.nearElement; const fElement = eles.farElement; const navContentEle = eles.nav ? eles.nav : null; let nEleSize = 0; let fEleSize = 0; let navSize = 0; let nEleChangeSize = 0; let fEleChangeSize = 0; // 鼠标点下时 resizeElement.mousedown(function(e) { drag = true; startP = type === 'height' ? e.clientY : e.clientX; // 获取左(上)部分的宽度(高度) nEleSize = nElement[type](); // 获取右(下)部分的宽度(高度) fEleSize = fElement[type](); // nav宽(高度)部分 if(navContentEle){ navSize = navContentEle[type]() + 4; } resizeElement.tooltip('hide'); }); // 鼠标移动 $("body").mousemove(function(e) { if (drag) { let moveSize = type === 'height' ? e.clientY - startP : e.clientX - startP; // 判断拖动范围不能超出 nEleChangeSize = nEleSize + moveSize; nEleChangeSize = nEleChangeSize < limit.min ? limit.min : nEleChangeSize; nEleChangeSize = nEleChangeSize > limit.max ? limit.max + 9 : nEleChangeSize; fEleChangeSize = fEleSize - moveSize; fEleChangeSize = fEleChangeSize < limit.min ? limit.min : fEleChangeSize; fEleChangeSize = fEleChangeSize > limit.max ? limit.max + 9 : fEleChangeSize; if(type === 'width'){ let rePercent = getResizeWidthPercent(nEleChangeSize, fEleChangeSize); eles.nearElement.css(type, rePercent.nearPercent); eles.farElement.css(type, rePercent.farPercent); } else{ eles.nearSpread[type](nEleChangeSize); eles.farSpread[type](fEleChangeSize - navSize); } } }); // 鼠标弹起 $("body").mouseup(function(e) { if (drag) { callback(); drag = false; // 存入本地缓存 const id = eles.id; nEleChangeSize = nEleChangeSize >= limit.max ? limit.max + 9 : nEleChangeSize; fEleChangeSize = fEleChangeSize >= limit.max ? limit.max + 9 : fEleChangeSize; setLocalCache(`near${type}:${id}`, nEleChangeSize); setLocalCache(`far${type}:${id}`, fEleChangeSize); } }); } /** * 读取设置的高度 * * @param {String} tag - 顶层div的id * @param {function} callback - 回调函数 * @return {void} */ function loadSize(eles, type, callback) { let tag = eles.id; if (tag === '') { return; } if(type !== 'height' && type !== 'width'){ return; } let o_nearSize = eles.nearSpread[type](); let o_farSize = eles.farSpread[type](); let nearSize = getLocalCache(`near${type}:${tag}`); let farSize = getLocalCache(`far${type}:${tag}`); if (nearSize === null || farSize === null) { setDefaultSize(tag,eles,type);//zhang 2018-05-21 /* eles.nearSpread[type](o_nearSize); eles.farSpread[type](o_farSize);*/ }else { nearSize = parseFloat(nearSize); farSize = parseFloat(farSize); if(type !== 'width') { const navSize = eles.nav ? eles.nav[type]() + 4 : 0; eles.nearSpread[type](nearSize); eles.farSpread[type](farSize - navSize); } } if(type === 'width'){//使用百分比 let rePercent = getResizeWidthPercent(nearSize ? nearSize : o_nearSize, farSize ? farSize : o_farSize); eles.nearElement.css(type, rePercent.nearPercent); eles.farElement.css(type, rePercent.farPercent); } callback(); } function getResizeWidthPercent(nearSize, farSize){ const resizeWidth = 6; let nearPercent = (nearSize / (resizeWidth + nearSize + farSize) * 100) + '%'; let farPercent = (farSize / (resizeWidth + nearSize + farSize) * 100) + '%'; return {nearPercent, farPercent}; } function setDefaultSize(tag,eles,type) { let o_nearSize = eles.nearSpread[type](); let o_farSize = eles.farSpread[type](); if(tag == "#main"){ eles.nearSpread[type](o_nearSize); //工料机汇总和main页面处理方式不同 eles.farSpread[type](o_farSize); }else if(tag == "#project-glj-main"){ o_nearSize = parseFloat(o_nearSize); o_farSize = parseFloat(o_farSize); eles.nearSpread[type](o_nearSize - o_farSize + 30); eles.farSpread[type](o_farSize); } } /*window.onunload=show; 页面唯一性可以用session storage 来做 function show() { return "exit" };*/