diff --git a/src/controllers/freezen.js b/src/controllers/freezen.js index 2f2ce7a..2e2d48f 100644 --- a/src/controllers/freezen.js +++ b/src/controllers/freezen.js @@ -9,6 +9,8 @@ import luckysheetDropCell from './dropCell'; import { rowLocationByIndex, colLocationByIndex } from '../global/location'; import Store from '../store'; import locale from '../locale/locale'; +import { luckysheetrefreshgrid } from '../global/refresh'; + const luckysheetFreezen = { freezenHorizontalHTML: '
', @@ -370,24 +372,34 @@ const luckysheetFreezen = { } if (freezenhorizontaldata == null) { - let scrollTop = $("#luckysheet-cell-main").scrollTop(); - let dataset_row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); - if (dataset_row_st == -1) { - dataset_row_st = 0; - } - - top = Store.visibledatarow[dataset_row_st] - 2 - scrollTop + Store.columnHeaderHeight; + // let scrollTop = $("#luckysheet-cell-main").scrollTop(); + // let dataset_row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); + // if (dataset_row_st == -1) { + // dataset_row_st = 0; + // } + dataset_row_st = 0; + + // top = Store.visibledatarow[dataset_row_st] - 2 - scrollTop + Store.columnHeaderHeight; + top = Store.visibledatarow[dataset_row_st] - 2 + Store.columnHeaderHeight; freezenhorizontaldata = [ Store.visibledatarow[dataset_row_st], dataset_row_st + 1, - scrollTop, + 0, _this.cutVolumn(Store.visibledatarow, dataset_row_st + 1), top ]; _this.saveFreezen(freezenhorizontaldata, top, null, null); + // todo: 没有下面代码 如果有滚动,冻结之后首行的行号仍显示的之前滚动的行号 + // todo: 不 setTimeout 这里直接刷新的话,冻结的首行显示有问题,没有列的分割线 + setTimeout(() => { + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + }); } _this.freezenhorizontaldata = freezenhorizontaldata; + + // $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.freezenCancel); @@ -414,6 +426,7 @@ const luckysheetFreezen = { $("#luckysheet-freezen-btn-horizontal").html(freezeHTML); $("#luckysheet-freezebar-horizontal").show().find(".luckysheet-freezebar-horizontal-handle").css({ "top": top }).end().find(".luckysheet-freezebar-horizontal-drop").css({ "top": top }); + }, createAssistCanvas: function(){ let _this = this; diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index b5d8e8c..ed6e839 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -37,7 +37,7 @@ import { replaceHtml, getObjType, rgbTohex, mouseclickposition, luckysheetfontfo import {openProtectionModal,checkProtectionFormatCells,checkProtectionNotEnable} from './protection'; import Store from '../store'; import locale from '../locale/locale'; -import {checkTheStatusOfTheSelectedCells} from '../global/api'; +import {checkTheStatusOfTheSelectedCells, frozenFirstRow} from '../global/api'; const menuButton = { "menu": ' ', @@ -1624,24 +1624,25 @@ const menuButton = { luckysheetFreezen.saveFrozen(itemvalue); if(itemvalue == "freezenRow"){ //首行冻结 - let scrollTop = $("#luckysheet-cell-main").scrollTop(); - let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); - if(row_st == -1){ - row_st = 0; - } - let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columnHeaderHeight; - let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; - luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); - - if (luckysheetFreezen.freezenverticaldata != null) { - luckysheetFreezen.cancelFreezenVertical(); - luckysheetFreezen.createAssistCanvas(); - luckysheetrefreshgrid(); - } + frozenFirstRow(); + // let scrollTop = $("#luckysheet-cell-main").scrollTop(); + // let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); + // if(row_st == -1){ + // row_st = 0; + // } + // let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columnHeaderHeight; + // let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; + // luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); + + // if (luckysheetFreezen.freezenverticaldata != null) { + // luckysheetFreezen.cancelFreezenVertical(); + // luckysheetFreezen.createAssistCanvas(); + // luckysheetrefreshgrid(); + // } - luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); - luckysheetFreezen.createAssistCanvas(); - luckysheetrefreshgrid(); + // luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); + // luckysheetFreezen.createAssistCanvas(); + // luckysheetrefreshgrid(); } else if(itemvalue == "freezenColumn"){ //首列冻结 let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); diff --git a/src/global/api.js b/src/global/api.js index 2bd633c..cad3e06 100644 --- a/src/global/api.js +++ b/src/global/api.js @@ -609,18 +609,20 @@ export function frozenFirstRow(order) { // 冻结为当前sheet页 if (!order || order == getSheetIndex(Store.currentSheetIndex)) { - let scrollTop = $("#luckysheet-cell-main").scrollTop(); - - let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); - if(row_st == -1){ - row_st = 0; - } - - let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columnHeaderHeight; + // let scrollTop = $("#luckysheet-cell-main").scrollTop(); + + // let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); + // if(row_st == -1){ + // row_st = 0; + // } + let row_st = 0; + + // let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columnHeaderHeight; + let top = Store.visibledatarow[row_st] - 2 + Store.columnHeaderHeight; let freezenhorizontaldata = [ Store.visibledatarow[row_st], row_st + 1, - scrollTop, + 0, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top ];