From 3421f678db6c3a69d712270c0f3bc960c1a65171 Mon Sep 17 00:00:00 2001 From: cdswyda Date: Wed, 1 Dec 2021 16:59:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(freezen):=20=E4=BF=AE=E5=A4=8DPR#843?= =?UTF-8?q?=E4=B8=AD=E4=BF=AE=E6=94=B9=E9=81=97=E6=BC=8F=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=86=BB=E7=BB=93=E5=88=B0=E9=80=89=E5=8C=BA=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充处理冻结行到选区、冻结列到选区、冻结行列到选区 --- src/controllers/menuButton.js | 47 +++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index 06566f3..ed0c298 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -1739,9 +1739,14 @@ const menuButton = { 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]; + let top,freezenhorizontaldata; + if (luckysheetFreezen.freezenRealFirstRowColumn) { + top = Store.visibledatarow[row_st] - 2 + Store.columnHeaderHeight; + freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, 0, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; + } else { + top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columnHeaderHeight; + 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) { @@ -1783,9 +1788,14 @@ const menuButton = { if(col_st == -1){ col_st = 0; } - - let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; - let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + let left,freezenverticaldata; + if (luckysheetFreezen.freezenRealFirstRowColumn) { + left = Store.visibledatacolumn[col_st] - 2 + Store.rowHeaderWidth; + freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, 0, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + } else { + left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; + freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + } luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); if (luckysheetFreezen.freezenhorizontaldata != null) { @@ -1830,10 +1840,16 @@ const menuButton = { 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); + let top,freezenhorizontaldata; + if (luckysheetFreezen.freezenRealFirstRowColumn) { + top = Store.visibledatarow[row_st] - 2 + Store.columnHeaderHeight; + freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, 0, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; + luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); + } else { + top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columnHeaderHeight; + freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; + luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); + } luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); @@ -1849,9 +1865,14 @@ const menuButton = { if(col_st == -1){ col_st = 0; } - - let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; - let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + let left,freezenverticaldata; + if (luckysheetFreezen.freezenRealFirstRowColumn) { + left = Store.visibledatacolumn[col_st] - 2 + Store.rowHeaderWidth; + freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, 0, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + } else { + left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; + freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + } luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); luckysheetFreezen.createFreezenVertical(freezenverticaldata, left);