From d192b3cf34c3021453443949cd6804bfb30e9e75 Mon Sep 17 00:00:00 2001 From: cdswyda Date: Thu, 11 Nov 2021 16:53:57 +0800 Subject: [PATCH 1/8] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E6=97=B6=20=E7=82=B9=E5=87=BB=E5=86=BB?= =?UTF-8?q?=E7=BB=93=E9=A6=96=E8=A1=8C=20=E5=AE=9E=E9=99=85=E5=86=BB?= =?UTF-8?q?=E7=BB=93=E7=9A=84=E6=98=AF=E5=BD=93=E5=89=8D=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E8=A1=8C=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/freezen.js | 29 +++++++++++++++++++-------- src/controllers/menuButton.js | 37 ++++++++++++++++++----------------- src/global/api.js | 20 ++++++++++--------- 3 files changed, 51 insertions(+), 35 deletions(-) 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": '
${item}
', @@ -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 ]; From efb593b7d72ca635a8c9b1ed09fdff254a2fdf16 Mon Sep 17 00:00:00 2001 From: cdswyda Date: Thu, 11 Nov 2021 16:59:47 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E6=97=B6=20=E7=82=B9=E5=87=BB=E5=86=BB?= =?UTF-8?q?=E7=BB=93=E9=A6=96=E5=88=97=20=E5=AE=9E=E9=99=85=E5=86=BB?= =?UTF-8?q?=E7=BB=93=E7=9A=84=E6=98=AF=E5=BD=93=E5=89=8D=E8=A7=86=E5=9B=BE?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E5=88=97=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/menuButton.js | 35 ++++++++++++++++++----------------- src/global/api.js | 16 +++++++++------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index ed6e839..43247d2 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, frozenFirstRow} from '../global/api'; +import { checkTheStatusOfTheSelectedCells, frozenFirstRow, frozenFirstColumn } from '../global/api'; const menuButton = { "menu": '
${item}
', @@ -1645,24 +1645,25 @@ const menuButton = { // luckysheetrefreshgrid(); } else if(itemvalue == "freezenColumn"){ //首列冻结 - let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); - let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); - 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]; - luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); + frozenFirstColumn(); + // let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); + // let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); + // 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]; + // luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); - if (luckysheetFreezen.freezenhorizontaldata != null) { - luckysheetFreezen.cancelFreezenHorizontal(); - luckysheetFreezen.createAssistCanvas(); - luckysheetrefreshgrid(); - } + // if (luckysheetFreezen.freezenhorizontaldata != null) { + // luckysheetFreezen.cancelFreezenHorizontal(); + // luckysheetFreezen.createAssistCanvas(); + // luckysheetrefreshgrid(); + // } - luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); - luckysheetFreezen.createAssistCanvas(); - luckysheetrefreshgrid(); + // luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); + // luckysheetFreezen.createAssistCanvas(); + // luckysheetrefreshgrid(); } else if(itemvalue == "freezenRC"){ //首行列冻结 let scrollTop = $("#luckysheet-cell-main").scrollTop(); diff --git a/src/global/api.js b/src/global/api.js index cad3e06..77e7c16 100644 --- a/src/global/api.js +++ b/src/global/api.js @@ -651,18 +651,20 @@ export function frozenFirstColumn(order) { // 冻结为当前sheet页 if (!order || order == getSheetIndex(Store.currentSheetIndex)) { - let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); + // let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); - let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); - if(col_st == -1){ - col_st = 0; - } + // let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); + // if(col_st == -1){ + // col_st = 0; + // } + let col_st = 0; - let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; + // let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; + let left = Store.visibledatacolumn[col_st] - 2 + Store.rowHeaderWidth; let freezenverticaldata = [ Store.visibledatacolumn[col_st], col_st + 1, - scrollLeft, + 0, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left ]; From f265b631701b0ba6c5d505d27354e95285953f68 Mon Sep 17 00:00:00 2001 From: cdswyda Date: Fri, 12 Nov 2021 11:24:26 +0800 Subject: [PATCH 3/8] =?UTF-8?q?fix:=20=E5=8A=A0=E4=B8=AA=E6=A0=87=E5=BF=97?= =?UTF-8?q?=E4=BD=8D=EF=BC=8C=E6=8E=A7=E5=88=B6=E5=86=BB=E7=BB=93=E9=A6=96?= =?UTF-8?q?=E8=A1=8C=E9=A6=96=E5=88=97=E5=88=B0=E5=BA=95=E6=98=AF=E6=8C=87?= =?UTF-8?q?=E5=8F=AF=E6=98=AF=E5=8C=BA=E5=9F=9F=E8=BF=98=E6=98=AF=E5=AE=9E?= =?UTF-8?q?=E9=99=85=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/freezen.js | 101 +++++++++++++++++++++++-------------- src/global/api.js | 83 +++++++++++++++++++----------- 2 files changed, 117 insertions(+), 67 deletions(-) diff --git a/src/controllers/freezen.js b/src/controllers/freezen.js index 2e2d48f..17e4ae4 100644 --- a/src/controllers/freezen.js +++ b/src/controllers/freezen.js @@ -25,6 +25,10 @@ const luckysheetFreezen = { windowWidth: null, freezenhorizontaldata: null, freezenverticaldata: null, + // 定义冻结首行、首列是实际的第一行第一列还是当前视图的第一行第一列 + // excel 为视图的第一行第一列,但此处实现有问题,如滚动到15行冻结首行,当前冻结了15行,保存再进去实际冻结了第一行 + // 冻结真实的第一行、第一列更符合直觉 + freezenRealFirstRowColumn: true, cutVolumn: function (arr, cutindex) { if(cutindex <= 0){ return arr; @@ -102,20 +106,33 @@ const luckysheetFreezen = { } if (freezenverticaldata == null) { - let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); - let dataset_col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); - if (dataset_col_st == -1) { - dataset_col_st = 0; + if (_this.freezenRealFirstRowColumn) { + let dataset_col_st = 0; + left = Store.visibledatacolumn[dataset_col_st] - 2 + Store.rowHeaderWidth; + freezenverticaldata = [ + Store.visibledatacolumn[dataset_col_st], + dataset_col_st + 1, + 0, + _this.cutVolumn(Store.visibledatacolumn, dataset_col_st + 1), + left + ]; + } else { + let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); + let dataset_col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); + if (dataset_col_st == -1) { + dataset_col_st = 0; + } + + left = Store.visibledatacolumn[dataset_col_st] - 2 - scrollLeft + Store.rowHeaderWidth; + freezenverticaldata = [ + Store.visibledatacolumn[dataset_col_st], + dataset_col_st + 1, + scrollLeft, + _this.cutVolumn(Store.visibledatacolumn, dataset_col_st + 1), + left + ]; } - left = Store.visibledatacolumn[dataset_col_st] - 2 - scrollLeft + Store.rowHeaderWidth; - freezenverticaldata = [ - Store.visibledatacolumn[dataset_col_st], - dataset_col_st + 1, - scrollLeft, - _this.cutVolumn(Store.visibledatacolumn, dataset_col_st + 1), - left - ]; _this.saveFreezen(null, null, freezenverticaldata, left); } @@ -372,34 +389,44 @@ 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; - // } - 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, - 0, - _this.cutVolumn(Store.visibledatarow, dataset_row_st + 1), - top - ]; - _this.saveFreezen(freezenhorizontaldata, top, null, null); - // todo: 没有下面代码 如果有滚动,冻结之后首行的行号仍显示的之前滚动的行号 - // todo: 不 setTimeout 这里直接刷新的话,冻结的首行显示有问题,没有列的分割线 - setTimeout(() => { - luckysheetFreezen.createAssistCanvas(); - luckysheetrefreshgrid(); - }); + let dataset_row_st; + if (_this.freezenRealFirstRowColumn) { + dataset_row_st = 0; + top = Store.visibledatarow[dataset_row_st] - 2 + Store.columnHeaderHeight; + freezenhorizontaldata = [ + Store.visibledatarow[dataset_row_st], + dataset_row_st + 1, + 0, + _this.cutVolumn(Store.visibledatarow, dataset_row_st + 1), + top + ]; + _this.saveFreezen(freezenhorizontaldata, top, null, null); + // todo: 没有下面代码 如果有滚动,冻结之后首行的行号仍显示的之前滚动的行号 + // todo: 不 setTimeout 这里直接刷新的话,冻结的首行显示有问题,没有列的分割线 + setTimeout(() => { + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + }); + } else { + let scrollTop = $("#luckysheet-cell-main").scrollTop(); + 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; + freezenhorizontaldata = [ + Store.visibledatarow[dataset_row_st], + dataset_row_st + 1, + scrollTop, + _this.cutVolumn(Store.visibledatarow, dataset_row_st + 1), + top + ]; + _this.saveFreezen(freezenhorizontaldata, top, null, null); + } } _this.freezenhorizontaldata = freezenhorizontaldata; - - // $("#luckysheet-freezen-btn-horizontal").html(' '+locale().freezen.freezenCancel); diff --git a/src/global/api.js b/src/global/api.js index 77e7c16..dc858cc 100644 --- a/src/global/api.js +++ b/src/global/api.js @@ -609,23 +609,34 @@ export function frozenFirstRow(order) { // 冻结为当前sheet页 if (!order || order == getSheetIndex(Store.currentSheetIndex)) { - // let scrollTop = $("#luckysheet-cell-main").scrollTop(); + let freezenhorizontaldata, row_st, top; + if (luckysheetFreezen.freezenRealFirstRowColumn) { + let row_st = 0; + 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 { + let scrollTop = $("#luckysheet-cell-main").scrollTop(); + row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); + if(row_st == -1){ + row_st = 0; + } - // let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); - // if(row_st == -1){ - // row_st = 0; - // } - let row_st = 0; + 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 + ]; + } - // 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, - 0, - luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), - top - ]; luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); if (luckysheetFreezen.freezenverticaldata != null) { @@ -651,23 +662,35 @@ export function frozenFirstColumn(order) { // 冻结为当前sheet页 if (!order || order == getSheetIndex(Store.currentSheetIndex)) { - // let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); + let freezenverticaldata, col_st, left; + if (luckysheetFreezen.freezenRealFirstRowColumn) { + col_st = 0; + 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 { + let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); - // let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); - // if(col_st == -1){ - // col_st = 0; - // } - let col_st = 0; + col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); + if(col_st == -1){ + col_st = 0; + } + + 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 + ]; + } - // let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; - let left = Store.visibledatacolumn[col_st] - 2 + Store.rowHeaderWidth; - let freezenverticaldata = [ - Store.visibledatacolumn[col_st], - col_st + 1, - 0, - luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), - left - ]; luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); if (luckysheetFreezen.freezenhorizontaldata != null) { From c28659e2516297a4bc7042ccc368dac43d82caf7 Mon Sep 17 00:00:00 2001 From: cdswyda Date: Fri, 12 Nov 2021 16:24:53 +0800 Subject: [PATCH 4/8] =?UTF-8?q?fix:=20=E5=86=BB=E7=BB=93=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=9B=B4=E8=B4=B4=E5=88=87=E7=9A=84=E6=96=87=E6=A1=88=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locale/en.js | 2 +- src/locale/zh.js | 8 ++++---- src/locale/zh_tw.js | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/locale/en.js b/src/locale/en.js index 6744a1e..3842f22 100644 --- a/src/locale/en.js +++ b/src/locale/en.js @@ -8878,7 +8878,7 @@ export default { textWrapMode: 'Text wrap mode', textRotate: 'Text rotate', textRotateMode: 'Text rotate mode', - freezeTopRow: 'Freeze top row', + freezeTopRow: 'Freeze first row', sortAndFilter: 'Sort and filter', findAndReplace: 'Find and replace', sum: 'SUM', diff --git a/src/locale/zh.js b/src/locale/zh.js index a811804..b79d401 100644 --- a/src/locale/zh.js +++ b/src/locale/zh.js @@ -9088,7 +9088,7 @@ export default { textWrapMode: '换行方式', textRotate: '文本旋转', textRotateMode: '旋转方式', - freezeTopRow: '冻结首行', + freezeTopRow: '冻结第一行', sortAndFilter: '排序和筛选', findAndReplace: '查找替换', sum: '求和', @@ -9483,9 +9483,9 @@ export default { "rotationDown":"向下90°" }, freezen:{ - default:"冻结首行", - freezenRow:"冻结首行", - freezenColumn:"冻结首列", + default:"冻结第一行", + freezenRow:"冻结第一行", + freezenColumn:"冻结第A列", freezenRC:"冻结行列", freezenRowRange:"冻结行到选区", freezenColumnRange:"冻结列到选区", diff --git a/src/locale/zh_tw.js b/src/locale/zh_tw.js index 27637ae..3d6c2b9 100644 --- a/src/locale/zh_tw.js +++ b/src/locale/zh_tw.js @@ -9089,7 +9089,7 @@ export default { textWrapMode : '換行管道', textRotate : '文字旋轉', textRotateMode : '旋轉管道', - freezeTopRow : '凍結首行', + freezeTopRow : '凍結第一行', sortAndFilter : '排序和篩選', findAndReplace : '查找替換', sum : '求和', @@ -9476,9 +9476,9 @@ export default { "rotationDown": "向下90°" }, freezen: { - default : "凍結首行", - freezenRow : "凍結首行", - freezenColumn : "凍結首列", + default : "凍結第一行", + freezenRow : "凍結第一行", + freezenColumn : "凍結第A列", freezenRC : "凍結行列", freezenRowRange : "凍結行到選區", freezenColumnRange: "凍結列到選區", From 009205eb754babd96d22f41edc6715219d2f6e68 Mon Sep 17 00:00:00 2001 From: cdswyda Date: Mon, 15 Nov 2021 10:34:41 +0800 Subject: [PATCH 5/8] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E5=86=BB=E7=BB=93=E9=A6=96=E8=A1=8C=E9=A6=96=E5=88=97=E7=9A=84?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/menuButton.js | 53 ++++++++++++++++++++++------------- src/locale/zh.js | 2 +- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index 43247d2..29b1cff 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -1666,28 +1666,43 @@ const menuButton = { // luckysheetrefreshgrid(); } else if(itemvalue == "freezenRC"){ //首行列冻结 - 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); - - luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); + if (luckysheetFreezen.freezenRealFirstRowColumn) { + let row_st = 0; + let top = Store.visibledatarow[row_st] - 2 + Store.columnHeaderHeight; + let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, 0, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; + luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); + + luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); + + let col_st = 0; + let left = Store.visibledatacolumn[col_st] - 2 + Store.rowHeaderWidth; + let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, 0, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); + + luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); + } else { + 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); - let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); - let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); - 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]; - luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); + luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); - luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); + let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); + let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); + 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]; + luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); + luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); + } luckysheetFreezen.createAssistCanvas(); luckysheetrefreshgrid(); } diff --git a/src/locale/zh.js b/src/locale/zh.js index b79d401..00cc217 100644 --- a/src/locale/zh.js +++ b/src/locale/zh.js @@ -9486,7 +9486,7 @@ export default { default:"冻结第一行", freezenRow:"冻结第一行", freezenColumn:"冻结第A列", - freezenRC:"冻结行列", + freezenRC:"冻结第一行第A列", freezenRowRange:"冻结行到选区", freezenColumnRange:"冻结列到选区", freezenRCRange:"冻结行列到选区", From 65da5b9c653b70e0a816526b0a43b9e9c7dab10f Mon Sep 17 00:00:00 2001 From: cdswyda Date: Mon, 15 Nov 2021 10:51:54 +0800 Subject: [PATCH 6/8] =?UTF-8?q?fix:=20=E5=8F=96=E6=B6=88=E5=86=BB=E7=BB=93?= =?UTF-8?q?=E6=97=A0=E9=A1=BB=E6=89=93=E5=8B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/handler.js | 2 ++ src/controllers/menuButton.js | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/controllers/handler.js b/src/controllers/handler.js index d98c7ab..292d490 100644 --- a/src/controllers/handler.js +++ b/src/controllers/handler.js @@ -4956,6 +4956,8 @@ export default function luckysheetHandler() { } luckysheetFreezen.scrollAdapt(); + // cancel 之后 勾勾取消 + $('#luckysheet-icon-freezen-menu-menuButton').find('.fa.fa-check').remove(); } else { diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index 29b1cff..fa03359 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -1619,6 +1619,9 @@ const menuButton = { let $t = $(this), itemvalue = $t.attr("itemvalue"); _this.focus($menuButton, itemvalue); + if (itemvalue === locale_freezen.freezenCancel) { + $menuButton.find('.fa.fa-check').remove(); + } // store frozen luckysheetFreezen.saveFrozen(itemvalue); From 4e4e952f9ffc065e06f700168de204f81d7bf073 Mon Sep 17 00:00:00 2001 From: cdswyda Date: Mon, 15 Nov 2021 11:08:42 +0800 Subject: [PATCH 7/8] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E5=86=BB=E7=BB=93=E9=A6=96=E5=88=97=E5=86=8D=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=86=BB=E7=BB=93=E7=9A=84=E6=83=85=E5=86=B5?= =?UTF-8?q?=E4=B8=8B=EF=BC=8C=E5=B7=A5=E5=85=B7=E6=A0=8F=E4=BB=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=8F=96=E6=B6=88=E5=86=BB=E7=BB=93=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/freezen.js | 20 ++++++++++++++++++++ src/controllers/menuButton.js | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/controllers/freezen.js b/src/controllers/freezen.js index 17e4ae4..049c6ae 100644 --- a/src/controllers/freezen.js +++ b/src/controllers/freezen.js @@ -49,6 +49,26 @@ const luckysheetFreezen = { const _locale = locale(); const locale_freezen = _locale.freezen; + // 解决freeze 不垂直居中的问题 + const freezeHTML = ` +
+
+
+ +
+
+ ${locale_freezen.default} +
+
+
+ ` + + $("#luckysheet-freezen-btn-horizontal").html(freezeHTML); $("#luckysheet-freezen-btn-vertical").html(' '+locale_freezen.freezenColumn); _this.freezenverticaldata = null; diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index fa03359..00e28da 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -1619,7 +1619,7 @@ const menuButton = { let $t = $(this), itemvalue = $t.attr("itemvalue"); _this.focus($menuButton, itemvalue); - if (itemvalue === locale_freezen.freezenCancel) { + if (itemvalue === 'freezenCancel') { $menuButton.find('.fa.fa-check').remove(); } From a03a442fa27ff24c41a91f1a4865316bdb268564 Mon Sep 17 00:00:00 2001 From: cdswyda Date: Mon, 15 Nov 2021 14:46:55 +0800 Subject: [PATCH 8/8] =?UTF-8?q?fix:=20=E4=BB=A5=E5=AE=9E=E9=99=85=E7=9A=84?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E8=A1=8C=E7=AC=AC=E4=B8=80=E5=88=97=E5=86=BB?= =?UTF-8?q?=E7=BB=93=E6=97=B6=EF=BC=8C=E4=B8=8D=E8=83=BD=E5=86=BB=E7=BB=93?= =?UTF-8?q?=E5=88=B0=E5=8F=AF=E8=A7=86=E5=8C=BA=E5=9F=9F=E4=BB=A5=E5=A4=96?= =?UTF-8?q?=E5=8E=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controllers/menuButton.js | 20 ++++++++++++++++++-- src/locale/en.js | 3 ++- src/locale/es.js | 2 ++ src/locale/zh.js | 2 ++ src/locale/zh_tw.js | 2 ++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/controllers/menuButton.js b/src/controllers/menuButton.js index 00e28da..06566f3 100644 --- a/src/controllers/menuButton.js +++ b/src/controllers/menuButton.js @@ -1710,6 +1710,7 @@ const menuButton = { luckysheetrefreshgrid(); } else if(itemvalue == "freezenRowRange"){ //选区行冻结 + if(Store.luckysheet_select_save == null || Store.luckysheet_select_save.length == 0){ if(isEditMode()){ alert(locale_freezen.noSeletionError); @@ -1720,7 +1721,11 @@ const menuButton = { return; } - + // 固定超出屏幕范围 + let rangeTop = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1].top; + if (luckysheetFreezen.freezenRealFirstRowColumn && rangeTop > $("#luckysheet-cell-main").height()) { + return tooltip.info(locale_freezen.rangeRCOverErrorTitle, locale_freezen.rangeRCOverError); + } let scrollTop = $("#luckysheet-cell-main").scrollTop(); let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); @@ -1760,7 +1765,11 @@ const menuButton = { return; } - + // 固定超出屏幕范围 + let rangeLeft = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1].left; + if (luckysheetFreezen.freezenRealFirstRowColumn && rangeLeft > $("#luckysheet-cell-main").width()) { + return tooltip.info(locale_freezen.rangeRCOverErrorTitle, locale_freezen.rangeRCOverError); + } let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); @@ -1800,6 +1809,13 @@ const menuButton = { return; } + + // 固定超出屏幕范围 + let rangeTop = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1].top; + let rangeLeft = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1].left; + if (luckysheetFreezen.freezenRealFirstRowColumn && (rangeTop > $("#luckysheet-cell-main").height() || rangeLeft > $("#luckysheet-cell-main").width())) { + return tooltip.info(locale_freezen.rangeRCOverErrorTitle, locale_freezen.rangeRCOverError); + } let scrollTop = $("#luckysheet-cell-main").scrollTop(); let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); diff --git a/src/locale/en.js b/src/locale/en.js index 3842f22..6770889 100644 --- a/src/locale/en.js +++ b/src/locale/en.js @@ -9265,7 +9265,8 @@ export default { freezenRCRange:"Freezen both range", freezenCancel:"Cancel", - noSeletionError:"No Range to be selected", + noSeletionError:"No Range to be selected", rangeRCOverErrorTitle: "Freeze reminder", + rangeRCOverError: "The frozen pane is beyond the visible range, which will lead to abnormal operation. Please reset the frozen area." }, sort:{ "asc":"Ascending ", diff --git a/src/locale/es.js b/src/locale/es.js index 9074f30..93149fd 100644 --- a/src/locale/es.js +++ b/src/locale/es.js @@ -9250,6 +9250,8 @@ export default { freezenCancel:"Cancelar", noSeletionError:"No hay rango para seleccionar", + rangeRCOverErrorTitle: "Recordatorio de congelación", + rangeRCOverError: "El panel de congelación excede el rango visible y puede causar que no funcione correctamente. Reinicie el área de congelación." }, sort:{ "asc":"Ascendente ", diff --git a/src/locale/zh.js b/src/locale/zh.js index 00cc217..11bb434 100644 --- a/src/locale/zh.js +++ b/src/locale/zh.js @@ -9493,6 +9493,8 @@ export default { freezenCancel:"取消冻结", noSeletionError:"没有选区", + rangeRCOverErrorTitle: "冻结提醒", + rangeRCOverError: "冻结窗格超过可见范围,会导致无法正常操作,请重新设置冻结区域。" }, sort:{ "asc":"升序", diff --git a/src/locale/zh_tw.js b/src/locale/zh_tw.js index 3d6c2b9..bca42d5 100644 --- a/src/locale/zh_tw.js +++ b/src/locale/zh_tw.js @@ -9486,6 +9486,8 @@ export default { freezenCancel : "取消凍結", noSeletionError: "没有選區", + rangeRCOverErrorTitle: "凍結提醒", + rangeRCOverError: "凍結窗格超過可見範圍,會導致無法正常操作,請重新設定凍結區域。" }, sort: { "asc" : "昇冪",