Browse Source

Merge pull request #843 from cdswyda/fix/freeze

修复冻结首行实际是冻结了当前视图的第一行的问题
master
Dushusir 4 years ago
committed by GitHub
parent
commit
436452e745
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 110
      src/controllers/freezen.js
  2. 2
      src/controllers/handler.js
  3. 148
      src/controllers/menuButton.js
  4. 77
      src/global/api.js
  5. 5
      src/locale/en.js
  6. 2
      src/locale/es.js
  7. 12
      src/locale/zh.js
  8. 10
      src/locale/zh_tw.js

110
src/controllers/freezen.js

@ -9,6 +9,8 @@ import luckysheetDropCell from './dropCell';
import { rowLocationByIndex, colLocationByIndex } from '../global/location'; import { rowLocationByIndex, colLocationByIndex } from '../global/location';
import Store from '../store'; import Store from '../store';
import locale from '../locale/locale'; import locale from '../locale/locale';
import { luckysheetrefreshgrid } from '../global/refresh';
const luckysheetFreezen = { const luckysheetFreezen = {
freezenHorizontalHTML: '<div id="luckysheet-freezebar-horizontal" class="luckysheet-freezebar" tabindex="0"><div class="luckysheet-freezebar-handle luckysheet-freezebar-horizontal-handle" ><div class="luckysheet-freezebar-handle-bar luckysheet-freezebar-horizontal-handle-title" ></div><div class="luckysheet-freezebar-handle-bar luckysheet-freezebar-horizontal-handle-bar" ></div></div><div class="luckysheet-freezebar-drop luckysheet-freezebar-horizontal-drop" ><div class="luckysheet-freezebar-drop-bar luckysheet-freezebar-horizontal-drop-title" ></div><div class="luckysheet-freezebar-drop-bar luckysheet-freezebar-horizontal-drop-bar" >&nbsp;</div></div></div>', freezenHorizontalHTML: '<div id="luckysheet-freezebar-horizontal" class="luckysheet-freezebar" tabindex="0"><div class="luckysheet-freezebar-handle luckysheet-freezebar-horizontal-handle" ><div class="luckysheet-freezebar-handle-bar luckysheet-freezebar-horizontal-handle-title" ></div><div class="luckysheet-freezebar-handle-bar luckysheet-freezebar-horizontal-handle-bar" ></div></div><div class="luckysheet-freezebar-drop luckysheet-freezebar-horizontal-drop" ><div class="luckysheet-freezebar-drop-bar luckysheet-freezebar-horizontal-drop-title" ></div><div class="luckysheet-freezebar-drop-bar luckysheet-freezebar-horizontal-drop-bar" >&nbsp;</div></div></div>',
@ -23,6 +25,10 @@ const luckysheetFreezen = {
windowWidth: null, windowWidth: null,
freezenhorizontaldata: null, freezenhorizontaldata: null,
freezenverticaldata: null, freezenverticaldata: null,
// 定义冻结首行、首列是实际的第一行第一列还是当前视图的第一行第一列
// excel 为视图的第一行第一列,但此处实现有问题,如滚动到15行冻结首行,当前冻结了15行,保存再进去实际冻结了第一行
// 冻结真实的第一行、第一列更符合直觉
freezenRealFirstRowColumn: true,
cutVolumn: function (arr, cutindex) { cutVolumn: function (arr, cutindex) {
if(cutindex <= 0){ if(cutindex <= 0){
return arr; return arr;
@ -43,6 +49,26 @@ const luckysheetFreezen = {
const _locale = locale(); const _locale = locale();
const locale_freezen = _locale.freezen; const locale_freezen = _locale.freezen;
// 解决freeze 不垂直居中的问题
const freezeHTML = `
<div class="luckysheet-toolbar-button-outer-box luckysheet-inline-block"
style="user-select: none;">
<div class="luckysheet-toolbar-button-inner-box luckysheet-inline-block"
style="user-select: none;">
<div class="luckysheet-icon luckysheet-inline-block " style="user-select: none;">
<div aria-hidden="true" class="luckysheet-icon-img-container luckysheet-icon-img luckysheet-icon-function iconfont luckysheet-iconfont-dongjie1"
style="user-select: none;">
</div>
</div>
<div class="luckysheet-toolbar-menu-button-caption luckysheet-inline-block"
style="user-select: none;">
${locale_freezen.default}
</div>
</div>
</div>
`
$("#luckysheet-freezen-btn-horizontal").html(freezeHTML);
$("#luckysheet-freezen-btn-vertical").html('<i class="fa fa-indent"></i> '+locale_freezen.freezenColumn); $("#luckysheet-freezen-btn-vertical").html('<i class="fa fa-indent"></i> '+locale_freezen.freezenColumn);
_this.freezenverticaldata = null; _this.freezenverticaldata = null;
@ -100,20 +126,33 @@ const luckysheetFreezen = {
} }
if (freezenverticaldata == null) { if (freezenverticaldata == null) {
let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); if (_this.freezenRealFirstRowColumn) {
let dataset_col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); let dataset_col_st = 0;
if (dataset_col_st == -1) { left = Store.visibledatacolumn[dataset_col_st] - 2 + Store.rowHeaderWidth;
dataset_col_st = 0; 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); _this.saveFreezen(null, null, freezenverticaldata, left);
} }
@ -370,21 +409,41 @@ const luckysheetFreezen = {
} }
if (freezenhorizontaldata == null) { if (freezenhorizontaldata == null) {
let scrollTop = $("#luckysheet-cell-main").scrollTop(); let dataset_row_st;
let dataset_row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); if (_this.freezenRealFirstRowColumn) {
if (dataset_row_st == -1) {
dataset_row_st = 0; 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);
} }
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; _this.freezenhorizontaldata = freezenhorizontaldata;
@ -414,6 +473,7 @@ const luckysheetFreezen = {
$("#luckysheet-freezen-btn-horizontal").html(freezeHTML); $("#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 }); $("#luckysheet-freezebar-horizontal").show().find(".luckysheet-freezebar-horizontal-handle").css({ "top": top }).end().find(".luckysheet-freezebar-horizontal-drop").css({ "top": top });
}, },
createAssistCanvas: function(){ createAssistCanvas: function(){
let _this = this; let _this = this;

2
src/controllers/handler.js

@ -4946,6 +4946,8 @@ export default function luckysheetHandler() {
} }
luckysheetFreezen.scrollAdapt(); luckysheetFreezen.scrollAdapt();
// cancel 之后 勾勾取消
$('#luckysheet-icon-freezen-menu-menuButton').find('.fa.fa-check').remove();
} }
else { else {

148
src/controllers/menuButton.js

@ -37,7 +37,7 @@ import { replaceHtml, getObjType, rgbTohex, mouseclickposition, luckysheetfontfo
import {openProtectionModal,checkProtectionFormatCells,checkProtectionNotEnable} from './protection'; import {openProtectionModal,checkProtectionFormatCells,checkProtectionNotEnable} from './protection';
import Store from '../store'; import Store from '../store';
import locale from '../locale/locale'; import locale from '../locale/locale';
import {checkTheStatusOfTheSelectedCells} from '../global/api'; import { checkTheStatusOfTheSelectedCells, frozenFirstRow, frozenFirstColumn } from '../global/api';
const menuButton = { const menuButton = {
"menu": '<div class="luckysheet-cols-menu luckysheet-rightgclick-menu luckysheet-menuButton ${subclass} luckysheet-mousedown-cancel" id="luckysheet-icon-${id}-menuButton">${item}</div>', "menu": '<div class="luckysheet-cols-menu luckysheet-rightgclick-menu luckysheet-menuButton ${subclass} luckysheet-mousedown-cancel" id="luckysheet-icon-${id}-menuButton">${item}</div>',
@ -1619,77 +1619,98 @@ const menuButton = {
let $t = $(this), itemvalue = $t.attr("itemvalue"); let $t = $(this), itemvalue = $t.attr("itemvalue");
_this.focus($menuButton, itemvalue); _this.focus($menuButton, itemvalue);
if (itemvalue === 'freezenCancel') {
$menuButton.find('.fa.fa-check').remove();
}
// store frozen // store frozen
luckysheetFreezen.saveFrozen(itemvalue); luckysheetFreezen.saveFrozen(itemvalue);
if(itemvalue == "freezenRow"){ //首行冻结 if(itemvalue == "freezenRow"){ //首行冻结
let scrollTop = $("#luckysheet-cell-main").scrollTop(); frozenFirstRow();
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); // let scrollTop = $("#luckysheet-cell-main").scrollTop();
if(row_st == -1){ // let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
row_st = 0; // 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 = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columnHeaderHeight;
luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); // 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(); // if (luckysheetFreezen.freezenverticaldata != null) {
luckysheetFreezen.createAssistCanvas(); // luckysheetFreezen.cancelFreezenVertical();
luckysheetrefreshgrid(); // luckysheetFreezen.createAssistCanvas();
} // luckysheetrefreshgrid();
// }
luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); // luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top);
luckysheetFreezen.createAssistCanvas(); // luckysheetFreezen.createAssistCanvas();
luckysheetrefreshgrid(); // luckysheetrefreshgrid();
} }
else if(itemvalue == "freezenColumn"){ //首列冻结 else if(itemvalue == "freezenColumn"){ //首列冻结
let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); frozenFirstColumn();
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); // let scrollLeft = $("#luckysheet-cell-main").scrollLeft();
if(col_st == -1){ // let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
col_st = 0; // 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 = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth;
luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); // 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(); // if (luckysheetFreezen.freezenhorizontaldata != null) {
luckysheetFreezen.createAssistCanvas(); // luckysheetFreezen.cancelFreezenHorizontal();
luckysheetrefreshgrid(); // luckysheetFreezen.createAssistCanvas();
} // luckysheetrefreshgrid();
// }
luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); // luckysheetFreezen.createFreezenVertical(freezenverticaldata, left);
luckysheetFreezen.createAssistCanvas(); // luckysheetFreezen.createAssistCanvas();
luckysheetrefreshgrid(); // luckysheetrefreshgrid();
} }
else if(itemvalue == "freezenRC"){ //首行列冻结 else if(itemvalue == "freezenRC"){ //首行列冻结
let scrollTop = $("#luckysheet-cell-main").scrollTop(); if (luckysheetFreezen.freezenRealFirstRowColumn) {
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); let row_st = 0;
if(row_st == -1){ let top = Store.visibledatarow[row_st] - 2 + Store.columnHeaderHeight;
row_st = 0; let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, 0, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top];
} luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null);
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.createFreezenHorizontal(freezenhorizontaldata, top);
luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null);
let col_st = 0;
luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); 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(); luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top);
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); 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(); luckysheetFreezen.createAssistCanvas();
luckysheetrefreshgrid(); luckysheetrefreshgrid();
} }
else if(itemvalue == "freezenRowRange"){ //选区行冻结 else if(itemvalue == "freezenRowRange"){ //选区行冻结
if(Store.luckysheet_select_save == null || Store.luckysheet_select_save.length == 0){ if(Store.luckysheet_select_save == null || Store.luckysheet_select_save.length == 0){
if(isEditMode()){ if(isEditMode()){
alert(locale_freezen.noSeletionError); alert(locale_freezen.noSeletionError);
@ -1700,7 +1721,11 @@ const menuButton = {
return; 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 scrollTop = $("#luckysheet-cell-main").scrollTop();
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
@ -1740,7 +1765,11 @@ const menuButton = {
return; 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 scrollLeft = $("#luckysheet-cell-main").scrollLeft();
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
@ -1780,6 +1809,13 @@ const menuButton = {
return; 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 scrollTop = $("#luckysheet-cell-main").scrollTop();
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);

77
src/global/api.js

@ -609,21 +609,34 @@ export function frozenFirstRow(order) {
// 冻结为当前sheet页 // 冻结为当前sheet页
if (!order || order == getSheetIndex(Store.currentSheetIndex)) { 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); top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columnHeaderHeight;
if(row_st == -1){ freezenhorizontaldata = [
row_st = 0; 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 freezenhorizontaldata = [
Store.visibledatarow[row_st],
row_st + 1,
scrollTop,
luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1),
top
];
luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null);
if (luckysheetFreezen.freezenverticaldata != null) { if (luckysheetFreezen.freezenverticaldata != null) {
@ -649,21 +662,35 @@ export function frozenFirstColumn(order) {
// 冻结为当前sheet页 // 冻结为当前sheet页
if (!order || order == getSheetIndex(Store.currentSheetIndex)) { if (!order || order == getSheetIndex(Store.currentSheetIndex)) {
let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); let freezenverticaldata, col_st, left;
if (luckysheetFreezen.freezenRealFirstRowColumn) {
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
if(col_st == -1){
col_st = 0; 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();
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 freezenverticaldata = [
Store.visibledatacolumn[col_st],
col_st + 1,
scrollLeft,
luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1),
left
];
luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left);
if (luckysheetFreezen.freezenhorizontaldata != null) { if (luckysheetFreezen.freezenhorizontaldata != null) {

5
src/locale/en.js

@ -8878,7 +8878,7 @@ export default {
textWrapMode: 'Text wrap mode', textWrapMode: 'Text wrap mode',
textRotate: 'Text rotate', textRotate: 'Text rotate',
textRotateMode: 'Text rotate mode', textRotateMode: 'Text rotate mode',
freezeTopRow: 'Freeze top row', freezeTopRow: 'Freeze first row',
sortAndFilter: 'Sort and filter', sortAndFilter: 'Sort and filter',
findAndReplace: 'Find and replace', findAndReplace: 'Find and replace',
sum: 'SUM', sum: 'SUM',
@ -9265,7 +9265,8 @@ export default {
freezenRCRange:"Freezen both range", freezenRCRange:"Freezen both range",
freezenCancel:"Cancel", 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:{ sort:{
"asc":"Ascending ", "asc":"Ascending ",

2
src/locale/es.js

@ -9250,6 +9250,8 @@ export default {
freezenCancel:"Cancelar", freezenCancel:"Cancelar",
noSeletionError:"No hay rango para seleccionar", 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:{ sort:{
"asc":"Ascendente ", "asc":"Ascendente ",

12
src/locale/zh.js

@ -9088,7 +9088,7 @@ export default {
textWrapMode: '换行方式', textWrapMode: '换行方式',
textRotate: '文本旋转', textRotate: '文本旋转',
textRotateMode: '旋转方式', textRotateMode: '旋转方式',
freezeTopRow: '冻结行', freezeTopRow: '冻结第一行',
sortAndFilter: '排序和筛选', sortAndFilter: '排序和筛选',
findAndReplace: '查找替换', findAndReplace: '查找替换',
sum: '求和', sum: '求和',
@ -9483,16 +9483,18 @@ export default {
"rotationDown":"向下90°" "rotationDown":"向下90°"
}, },
freezen:{ freezen:{
default:"冻结行", default:"冻结第一行",
freezenRow:"冻结行", freezenRow:"冻结第一行",
freezenColumn:"冻结列", freezenColumn:"冻结第A列",
freezenRC:"冻结行列", freezenRC:"冻结第一第A列",
freezenRowRange:"冻结行到选区", freezenRowRange:"冻结行到选区",
freezenColumnRange:"冻结列到选区", freezenColumnRange:"冻结列到选区",
freezenRCRange:"冻结行列到选区", freezenRCRange:"冻结行列到选区",
freezenCancel:"取消冻结", freezenCancel:"取消冻结",
noSeletionError:"没有选区", noSeletionError:"没有选区",
rangeRCOverErrorTitle: "冻结提醒",
rangeRCOverError: "冻结窗格超过可见范围,会导致无法正常操作,请重新设置冻结区域。"
}, },
sort:{ sort:{
"asc":"升序", "asc":"升序",

10
src/locale/zh_tw.js

@ -9089,7 +9089,7 @@ export default {
textWrapMode : '換行管道', textWrapMode : '換行管道',
textRotate : '文字旋轉', textRotate : '文字旋轉',
textRotateMode : '旋轉管道', textRotateMode : '旋轉管道',
freezeTopRow : '凍結行', freezeTopRow : '凍結第一行',
sortAndFilter : '排序和篩選', sortAndFilter : '排序和篩選',
findAndReplace : '查找替換', findAndReplace : '查找替換',
sum : '求和', sum : '求和',
@ -9476,9 +9476,9 @@ export default {
"rotationDown": "向下90°" "rotationDown": "向下90°"
}, },
freezen: { freezen: {
default : "凍結行", default : "凍結第一行",
freezenRow : "凍結行", freezenRow : "凍結第一行",
freezenColumn : "凍結列", freezenColumn : "凍結第A列",
freezenRC : "凍結行列", freezenRC : "凍結行列",
freezenRowRange : "凍結行到選區", freezenRowRange : "凍結行到選區",
freezenColumnRange: "凍結列到選區", freezenColumnRange: "凍結列到選區",
@ -9486,6 +9486,8 @@ export default {
freezenCancel : "取消凍結", freezenCancel : "取消凍結",
noSeletionError: "没有選區", noSeletionError: "没有選區",
rangeRCOverErrorTitle: "凍結提醒",
rangeRCOverError: "凍結窗格超過可見範圍,會導致無法正常操作,請重新設定凍結區域。"
}, },
sort: { sort: {
"asc" : "昇冪", "asc" : "昇冪",

Loading…
Cancel
Save