产品一张表luckysheet前端代码库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1899 lines
68 KiB

import pivotTable from './pivotTable';
import luckysheetPostil from './postil';
import imageCtrl from './imageCtrl';
import menuButton from './menuButton';
import server from './server';
import { selectHightlightShow, luckysheet_count_show,selectHelpboxFill } from './select';
import {
getObjType,
showrightclickmenu,
luckysheetContainerFocus,
luckysheetfontformat,
} from '../utils/util';
import { getSheetIndex, getRangetxt } from '../methods/get';
import {
rowLocation,
rowLocationByIndex,
colLocation,
colLocationByIndex,
mouseposition
} from '../global/location';
import { isRealNull, isRealNum, hasPartMC, isEditMode } from '../global/validate';
import { countfunc } from '../global/count';
import formula from '../global/formula';
import { luckysheetextendtable, luckysheetdeletetable, luckysheetDeleteCell } from '../global/extend';
import {
jfrefreshgrid,
jfrefreshgridall,
jfrefreshgrid_rhcw,
} from '../global/refresh';
import { getcellvalue } from '../global/getdata';
import tooltip from '../global/tooltip';
import editor from '../global/editor';
import locale from '../locale/locale';
import {getMeasureText,getCellTextInfo} from '../global/getRowlen';
import { luckysheet_searcharray } from '../controllers/sheetSearch';
import {isInlineStringCell} from './inlineString';
import Store from '../store';
export function rowColumnOperationInitial(){
//表格行标题 mouse事件
$("#luckysheet-rows-h").mousedown(function (event) {
//有批注在编辑时
luckysheetPostil.removeActivePs();
//图片 active/cropping
if($("#luckysheet-modal-dialog-activeImage").is(":visible") || $("#luckysheet-modal-dialog-cropping").is(":visible")){
imageCtrl.cancelActiveImgItem();
}
let mouse = mouseposition(event.pageX, event.pageY);
let y = mouse[1] + $("#luckysheet-rows-h").scrollTop();
let row_location = rowLocation(y),
row = row_location[1],
row_pre = row_location[0],
row_index = row_location[2];
let col_index = Store.visibledatacolumn.length - 1,
col = Store.visibledatacolumn[col_index], col_pre = 0;
$("#luckysheet-rightclick-menu").hide();
$("#luckysheet-sheet-list, #luckysheet-rightclick-sheet-menu").hide();
//mousedown是右键
if (event.which == "3") {
let isright = false;
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let obj_s = Store.luckysheet_select_save[s];
if(obj_s["row"] != null && (row_index >= obj_s["row"][0] && row_index <= obj_s["row"][1]) && (obj_s["column"][0] == 0 && obj_s["column"][1] == Store.flowdata[0].length - 1)){
isright = true;
break;
}
}
if(isright){
return;
}
}
let top = row_pre, height = row - row_pre - 1;
let rowseleted = [row_index, row_index];
Store.luckysheet_scroll_status = true;
//公式相关
let $input = $("#luckysheet-input-box");
if (parseInt($input.css("top")) > 0) {
if (formula.rangestart || formula.rangedrag_column_start || formula.rangedrag_row_start || formula.israngeseleciton() || $("#luckysheet-ifFormulaGenerator-multiRange-dialog").is(":visible")) {
//公式选区
let changeparam = menuButton.mergeMoveMain([0, col_index], rowseleted, {"row_focus": row_index, "column_focus": 0}, top, height, col_pre, col);
if(changeparam != null){
//columnseleted = changeparam[0];
rowseleted = changeparam[1];
top = changeparam[2];
height = changeparam[3];
//left = changeparam[4];
//width = changeparam[5];
}
if(event.shiftKey){
let last = formula.func_selectedrange;
let top = 0, height = 0, rowseleted = [];
if (last.top > row_pre) {
top = row_pre;
height = last.top + last.height - row_pre;
if(last.row[1] > last.row_focus){
last.row[1] = last.row_focus;
}
rowseleted = [row_index, last.row[1]];
}
else if (last.top == row_pre) {
top = row_pre;
height = last.top + last.height - row_pre;
rowseleted = [row_index, last.row[0]];
}
else {
top = last.top;
height = row - last.top - 1;
if(last.row[0] < last.row_focus){
last.row[0] = last.row_focus;
}
rowseleted = [last.row[0], row_index];
}
let changeparam = menuButton.mergeMoveMain([0, col_index], rowseleted, {"row_focus": row_index, "column_focus": 0}, top, height, col_pre, col);
if(changeparam != null){
// columnseleted = changeparam[0];
rowseleted = changeparam[1];
top = changeparam[2];
height = changeparam[3];
// left = changeparam[4];
// width = changeparam[5];
}
last["row"] = rowseleted;
last["top_move"] = top;
last["height_move"] = height;
formula.func_selectedrange = last;
}
else if(event.ctrlKey && $("#luckysheet-rich-text-editor").find("span").last().text() != ","){
//按住ctrl 选择选区时 先处理上一个选区
let vText = $("#luckysheet-rich-text-editor").text() + ",";
if(vText.length > 0 && vText.substr(0, 1) == "="){
vText = formula.functionHTMLGenerate(vText);
if (window.getSelection) { // all browsers, except IE before version 9
let currSelection = window.getSelection();
formula.functionRangeIndex = [$(currSelection.anchorNode).parent().index(), currSelection.anchorOffset];
}
else { // Internet Explorer before version 9
let textRange = document.selection.createRange();
formula.functionRangeIndex = textRange;
}
$("#luckysheet-rich-text-editor").html(vText);
formula.canceFunctionrangeSelected();
formula.createRangeHightlight();
}
formula.rangestart = false;
formula.rangedrag_column_start = false;
formula.rangedrag_row_start = false;
$("#luckysheet-functionbox-cell").html(vText);
formula.rangeHightlightselected($("#luckysheet-rich-text-editor"));
//再进行 选区的选择
formula.israngeseleciton();
formula.func_selectedrange = {
"left": colLocationByIndex(0)[0],
"width": colLocationByIndex(0)[1] - colLocationByIndex(0)[0] - 1,
"top": top,
"height": height,
"left_move": col_pre,
"width_move": col - col_pre - 1,
"top_move": top,
"height_move": height,
"row": rowseleted,
"column": [0, col_index],
"row_focus": row_index,
"column_focus": 0
}
}
else{
formula.func_selectedrange = {
"left": colLocationByIndex(0)[0],
"width": colLocationByIndex(0)[1] - colLocationByIndex(0)[0] - 1,
"top": top,
"height": height,
"left_move": col_pre,
"width_move": col - col_pre - 1,
"top_move": top,
"height_move": height,
"row": rowseleted,
"column": [0, col_index],
"row_focus": row_index,
"column_focus": 0
}
}
if(formula.rangestart || formula.rangedrag_column_start || formula.rangedrag_row_start || formula.israngeseleciton()){
formula.rangeSetValue({ "row": rowseleted, "column": [null, null] });
}
else if($("#luckysheet-ifFormulaGenerator-multiRange-dialog").is(":visible")){//if公式生成器
let range = getRangetxt(Store.currentSheetIndex, { "row": rowseleted, "column": [0, col_index] }, Store.currentSheetIndex);
$("#luckysheet-ifFormulaGenerator-multiRange-dialog input").val(range);
}
formula.rangedrag_row_start = true;
formula.rangestart = false;
formula.rangedrag_column_start = false;
$("#luckysheet-formula-functionrange-select").css({
"left": col_pre,
"width": col - col_pre - 1,
"top": top,
"height": height
}).show();
$("#luckysheet-formula-help-c").hide();
luckysheet_count_show(col_pre, top, col - col_pre - 1, height, rowseleted, [0, col_index]);
setTimeout(function(){
let currSelection = window.getSelection();
let anchorOffset = currSelection.anchorNode;
let $editor;
if($("#luckysheet-search-formula-parm").is(":visible")||$("#luckysheet-search-formula-parm-select").is(":visible")){
$editor = $("#luckysheet-rich-text-editor");
formula.rangechangeindex = formula.data_parm_index;
}
else{
$editor = $(anchorOffset).closest("div");
}
let $span = $editor.find("span[rangeindex='" + formula.rangechangeindex + "']");
formula.setCaretPosition($span.get(0), 0, $span.html().length);
}, 1);
return;
}
else {
formula.updatecell(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1]);
Store.luckysheet_rows_selected_status = true;
}
}
else {
Store.luckysheet_rows_selected_status = true;
}
if (Store.luckysheet_rows_selected_status) {
if(event.shiftKey){
//按住shift点击行索引选取范围
let last = $.extend(true, {}, Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1]); //选区最后一个
let top = 0, height = 0, rowseleted = [];
if (last.top > row_pre) {
top = row_pre;
height = last.top + last.height - row_pre;
if(last.row[1] > last.row_focus){
last.row[1] = last.row_focus;
}
rowseleted = [row_index, last.row[1]];
}
else if (last.top == row_pre) {
top = row_pre;
height = last.top + last.height - row_pre;
rowseleted = [row_index, last.row[0]];
}
else {
top = last.top;
height = row - last.top - 1;
if(last.row[0] < last.row_focus){
last.row[0] = last.row_focus;
}
rowseleted = [last.row[0], row_index];
}
last["row"] = rowseleted;
last["top_move"] = top;
last["height_move"] = height;
Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1] = last;
}
else if(event.ctrlKey){
Store.luckysheet_select_save.push({
"left": colLocationByIndex(0)[0],
"width": colLocationByIndex(0)[1] - colLocationByIndex(0)[0] - 1,
"top": top,
"height": height,
"left_move": col_pre,
"width_move": col - col_pre - 1,
"top_move": top,
"height_move": height,
"row": rowseleted,
"column": [0, col_index],
"row_focus": row_index,
"column_focus": 0
});
}
else{
Store.luckysheet_select_save = [];
Store.luckysheet_select_save.push({
"left": colLocationByIndex(0)[0],
"width": colLocationByIndex(0)[1] - colLocationByIndex(0)[0] - 1,
"top": top,
"height": height,
"left_move": col_pre,
"width_move": col - col_pre - 1,
"top_move": top,
"height_move": height,
"row": rowseleted,
"column": [0, col_index],
"row_focus": row_index,
"column_focus": 0
});
}
selectHightlightShow();
if(server.allowUpdate){
//允许编辑后的后台更新时
server.saveParam("mv", Store.currentSheetIndex, Store.luckysheet_select_save);
}
}
selectHelpboxFill();
setTimeout(function () {
clearTimeout(Store.countfuncTimeout);
countfunc();
}, 101);
}).mousemove(function (event) {
if (Store.luckysheet_rows_selected_status || Store.luckysheet_rows_change_size || Store.luckysheet_select_status) {
$("#luckysheet-rows-h-hover").hide();
return;
}
let mouse = mouseposition(event.pageX, event.pageY);
let y = mouse[1] + $("#luckysheet-rows-h").scrollTop();
let row_location = rowLocation(y),
row = row_location[1],
row_pre = row_location[0],
row_index = row_location[2];
$("#luckysheet-rows-h-hover").css({ "top": row_pre, "height": row - row_pre - 1, "display": "block" });
if (y < row - 1 && y >= row - 5) {
$("#luckysheet-rows-change-size").css({ "top": row - 3, "opacity": 0 });
}
else {
$("#luckysheet-rows-change-size").css("opacity", 0);
}
}).mouseleave(function (event) {
$("#luckysheet-rows-h-hover").hide();
$("#luckysheet-rows-change-size").css("opacity", 0);
}).mouseup(function (event) {
if (event.which == 3) {
if(isEditMode()){ //非编辑模式下禁止右键功能框
return;
}
$("#luckysheet-cols-rows-shift").hide();
Store.luckysheetRightHeadClickIs = "row";
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-word").text(locale().rightclick.row);
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-size").text(locale().rightclick.height);
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-left").text(locale().rightclick.top);
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-right").text(locale().rightclick.bottom);
$("#luckysheet-cols-rows-add").show();
$("#luckysheet-cols-rows-data").show();
$("#luckysheet-cols-rows-shift").hide();
$("#luckysheet-cols-rows-handleincell").hide();
showrightclickmenu($("#luckysheet-rightclick-menu"), $(this).offset().left + 46, event.pageY);
Store.luckysheet_cols_menu_status = true;
//行高默认值
let cfg = $.extend(true, {}, Store.config);
if(cfg["rowlen"] == null){
cfg["rowlen"] = {};
}
let first_rowlen = cfg["rowlen"][Store.luckysheet_select_save[0].row[0]] == null ? Store.defaultrowlen : cfg["rowlen"][Store.luckysheet_select_save[0].row[0]];
let isSame = true;
for(let i = 0; i < Store.luckysheet_select_save.length; i++){
let s = Store.luckysheet_select_save[i];
let r1 = s.row[0], r2 = s.row[1];
for(let r = r1; r <= r2; r++){
let rowlen = cfg["rowlen"][r] == null ? Store.defaultrowlen : cfg["rowlen"][r];
if(rowlen != first_rowlen){
isSame = false;
break;
}
}
}
if(isSame){
$("#luckysheet-cols-rows-add").find("input[type='number'].rcsize").val(first_rowlen);
}
else{
$("#luckysheet-cols-rows-add").find("input[type='number'].rcsize").val("");
}
}
});
//表格列标题 mouse事件
$("#luckysheet-cols-h-c").mousedown(function (event) {
//有批注在编辑时
luckysheetPostil.removeActivePs();
//图片 active/cropping
if($("#luckysheet-modal-dialog-activeImage").is(":visible") || $("#luckysheet-modal-dialog-cropping").is(":visible")){
imageCtrl.cancelActiveImgItem();
}
let mouse = mouseposition(event.pageX, event.pageY);
let x = mouse[0] + $(this).scrollLeft();
let row_index = Store.visibledatarow.length - 1,
row = Store.visibledatarow[row_index], row_pre = 0;
let col_location = colLocation(x),
col = col_location[1],
col_pre = col_location[0],
col_index = col_location[2];
Store.orderbyindex = col_index;//排序全局函数
$("#luckysheet-rightclick-menu").hide();
$("#luckysheet-sheet-list, #luckysheet-rightclick-sheet-menu").hide();
$("#luckysheet-filter-menu, #luckysheet-filter-submenu").hide();
//mousedown是右键
if (event.which == "3") {
let isright = false;
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let obj_s = Store.luckysheet_select_save[s];
if(obj_s["column"] != null && (col_index >= obj_s["column"][0] && col_index <= obj_s["column"][1]) && (obj_s["row"][0] == 0 && obj_s["row"][1] == Store.flowdata.length - 1)){
isright = true;
break;
}
}
if(isright){
return;
}
}
let left = col_pre, width = col - col_pre - 1;
let columnseleted = [col_index, col_index];
Store.luckysheet_scroll_status = true;
//公式相关
let $input = $("#luckysheet-input-box");
if (parseInt($input.css("top")) > 0) {
if (formula.rangestart || formula.rangedrag_column_start || formula.rangedrag_row_start || formula.israngeseleciton() || $("#luckysheet-ifFormulaGenerator-multiRange-dialog").is(":visible")) {
//公式选区
let changeparam = menuButton.mergeMoveMain(columnseleted, [0, row_index], {"row_focus": 0, "column_focus": col_index}, row_pre, row, left, width);
if(changeparam != null){
columnseleted = changeparam[0];
//rowseleted= changeparam[1];
//top = changeparam[2];
//height = changeparam[3];
left = changeparam[4];
width = changeparam[5];
}
if(event.shiftKey){
let last = formula.func_selectedrange;
let left = 0, width = 0, columnseleted = [];
if (last.left > col_pre) {
left = col_pre;
width = last.left + last.width - col_pre;
if(last.column[1] > last.column_focus){
last.column[1] = last.column_focus;
}
columnseleted = [col_index, last.column[1]];
}
else if (last.left == col_pre) {
left = col_pre;
width = last.left + last.width - col_pre;
columnseleted = [col_index, last.column[0]];
}
else {
left = last.left;
width = col - last.left - 1;
if(last.column[0] < last.column_focus){
last.column[0] = last.column_focus;
}
columnseleted = [last.column[0], col_index];
}
let changeparam = menuButton.mergeMoveMain(columnseleted , [0, row_index], {"row_focus": 0, "column_focus": col_index}, row_pre, row, left, width);
if(changeparam != null){
columnseleted = changeparam[0];
//rowseleted= changeparam[1];
//top = changeparam[2];
//height = changeparam[3];
left = changeparam[4];
width = changeparam[5];
}
last["column"] = columnseleted;
last["left_move"] = left;
last["width_move"] = width;
formula.func_selectedrange = last;
}
else if(event.ctrlKey && $("#luckysheet-rich-text-editor").find("span").last().text() != ","){
//按住ctrl 选择选区时 先处理上一个选区
let vText = $("#luckysheet-rich-text-editor").text() + ",";
if(vText.length > 0 && vText.substr(0, 1) == "="){
vText = formula.functionHTMLGenerate(vText);
if (window.getSelection) { // all browsers, except IE before version 9
let currSelection = window.getSelection();
formula.functionRangeIndex = [$(currSelection.anchorNode).parent().index(), currSelection.anchorOffset];
}
else { // Internet Explorer before version 9
let textRange = document.selection.createRange();
formula.functionRangeIndex = textRange;
}
$("#luckysheet-rich-text-editor").html(vText);
formula.canceFunctionrangeSelected();
formula.createRangeHightlight();
}
formula.rangestart = false;
formula.rangedrag_column_start = false;
formula.rangedrag_row_start = false;
$("#luckysheet-functionbox-cell").html(vText);
formula.rangeHightlightselected($("#luckysheet-rich-text-editor"));
//再进行 选区的选择
formula.israngeseleciton();
formula.func_selectedrange = {
"left": left,
"width": width,
"top": rowLocationByIndex(0)[0],
"height": rowLocationByIndex(0)[1] - rowLocationByIndex(0)[0] - 1,
"left_move": left,
"width_move": width,
"top_move": row_pre,
"height_move": row - row_pre - 1,
"row": [0, row_index],
"column": columnseleted,
"row_focus": 0,
"column_focus": col_index
}
}
else{
formula.func_selectedrange = {
"left": left,
"width": width,
"top": rowLocationByIndex(0)[0],
"height": rowLocationByIndex(0)[1] - rowLocationByIndex(0)[0] - 1,
"left_move": left,
"width_move": width,
"top_move": row_pre,
"height_move": row - row_pre - 1,
"row": [0, row_index],
"column": columnseleted,
"row_focus": 0,
"column_focus": col_index
}
}
if(formula.rangestart || formula.rangedrag_column_start || formula.rangedrag_row_start || formula.israngeseleciton()){
formula.rangeSetValue({ "row": [null, null], "column": columnseleted });
}
else if($("#luckysheet-ifFormulaGenerator-multiRange-dialog").is(":visible")){//if公式生成器
let range = getRangetxt(Store.currentSheetIndex, { "row": [0, row_index], "column": columnseleted }, Store.currentSheetIndex);
$("#luckysheet-ifFormulaGenerator-multiRange-dialog input").val(range);
}
formula.rangedrag_column_start = true;
formula.rangestart = false;
formula.rangedrag_row_start = false;
$("#luckysheet-formula-functionrange-select").css({
"left": left,
"width": width,
"top": row_pre,
"height": row - row_pre - 1
}).show();
$("#luckysheet-formula-help-c").hide();
luckysheet_count_show(left, row_pre, width, row - row_pre - 1, [0, row_index], columnseleted);
return;
}
else {
formula.updatecell(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1]);
Store.luckysheet_cols_selected_status = true;
}
}
else {
Store.luckysheet_cols_selected_status = true;
}
if (Store.luckysheet_cols_selected_status) {
if(event.shiftKey){
//按住shift点击列索引选取范围
let last = $.extend(true, {}, Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1]); //选区最后一个
let left = 0, width = 0, columnseleted = [];
if (last.left > col_pre) {
left = col_pre;
width = last.left + last.width - col_pre;
if(last.column[1] > last.column_focus){
last.column[1] = last.column_focus;
}
columnseleted = [col_index, last.column[1]];
}
else if (last.left == col_pre) {
left = col_pre;
width = last.left + last.width - col_pre;
columnseleted = [col_index, last.column[0]];
}
else {
left = last.left;
width = col - last.left - 1;
if(last.column[0] < last.column_focus){
last.column[0] = last.column_focus;
}
columnseleted = [last.column[0], col_index];
}
last["column"] = columnseleted;
last["left_move"] = left;
last["width_move"] = width;
Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1] = last;
}
else if(event.ctrlKey){
//选区添加
Store.luckysheet_select_save.push({
"left": left,
"width": width,
"top": rowLocationByIndex(0)[0],
"height": rowLocationByIndex(0)[1] - rowLocationByIndex(0)[0] - 1,
"left_move": left,
"width_move": width,
"top_move": row_pre,
"height_move": row - row_pre - 1,
"row": [0, row_index],
"column": columnseleted,
"row_focus": 0,
"column_focus": col_index
});
}
else{
Store.luckysheet_select_save = [];
Store.luckysheet_select_save.push({
"left": left,
"width": width,
"top": rowLocationByIndex(0)[0],
"height": rowLocationByIndex(0)[1] - rowLocationByIndex(0)[0] - 1,
"left_move": left,
"width_move": width,
"top_move": row_pre,
"height_move": row - row_pre - 1,
"row": [0, row_index],
"column": columnseleted,
"row_focus": 0,
"column_focus": col_index
});
}
selectHightlightShow();
if(server.allowUpdate){
//允许编辑后的后台更新时
server.saveParam("mv", Store.currentSheetIndex, Store.luckysheet_select_save);
}
}
selectHelpboxFill();
setTimeout(function () {
clearTimeout(Store.countfuncTimeout);
countfunc();
}, 101);
if (Store.luckysheet_cols_menu_status) {
$("#luckysheet-rightclick-menu").hide();
$("#luckysheet-cols-h-hover").hide();
$("#luckysheet-cols-menu-btn").hide();
Store.luckysheet_cols_menu_status = false;
}
event.stopPropagation();
}).mousemove(function (event) {
if (Store.luckysheet_cols_selected_status || Store.luckysheet_select_status) {
$("#luckysheet-cols-h-hover").hide();
$("#luckysheet-cols-menu-btn").hide();
return;
}
if (Store.luckysheet_cols_menu_status || Store.luckysheet_cols_change_size) {
return;
}
let mouse = mouseposition(event.pageX, event.pageY);
let x = mouse[0] + $("#luckysheet-cols-h-c").scrollLeft();
let col_location = colLocation(x),
col = col_location[1],
col_pre = col_location[0],
col_index = col_location[2];
$("#luckysheet-cols-h-hover").css({ "left": col_pre, "width": col - col_pre - 1, "display": "block" });
$("#luckysheet-cols-menu-btn").css({ "left": col - 19, "display": "block" });
$("#luckysheet-cols-change-size").css({ "left": col - 5 });
if (x < col && x >= col - 5) {
$("#luckysheet-cols-change-size").css({ "opacity": 0 });
$("#luckysheet-cols-menu-btn").hide();
}
else {
$("#luckysheet-change-size-line").hide();
$("#luckysheet-cols-change-size").css("opacity", 0);
}
}).mouseleave(function (event) {
if (Store.luckysheet_cols_menu_status || Store.luckysheet_cols_change_size) {
return;
}
$("#luckysheet-cols-h-hover").hide();
$("#luckysheet-cols-menu-btn").hide();
$("#luckysheet-cols-change-size").css("opacity", 0);
}).mouseup(function (event) {
if (event.which == 3) {
if(isEditMode()){ //非编辑模式下禁止右键功能框
return;
}
Store.luckysheetRightHeadClickIs = "column";
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-word").text(locale().rightclick.column);
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-size").text(locale().rightclick.width);
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-left").text(locale().rightclick.left);
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-right").text(locale().rightclick.right);
$("#luckysheet-cols-rows-add").show();
$("#luckysheet-cols-rows-data").show();
$("#luckysheet-cols-rows-shift").hide();
$("#luckysheet-cols-rows-handleincell").hide();
showrightclickmenu($("#luckysheet-rightclick-menu"), event.pageX, $(this).offset().top + 18);
Store.luckysheet_cols_menu_status = true;
//列宽默认值
let cfg = $.extend(true, {}, Store.config);
if(cfg["columnlen"] == null){
cfg["columnlen"] = {};
}
let first_collen = cfg["columnlen"][Store.luckysheet_select_save[0].column[0]] == null ? Store.defaultcollen : cfg["columnlen"][Store.luckysheet_select_save[0].column[0]];
let isSame = true;
for(let i = 0; i < Store.luckysheet_select_save.length; i++){
let s = Store.luckysheet_select_save[i];
let c1 = s.column[0], c2 = s.column[1];
for(let c = c1; c <= c2; c++){
let collen = cfg["columnlen"][c] == null ? Store.defaultcollen : cfg["columnlen"][c];
if(collen != first_collen){
isSame = false;
break;
}
}
}
if(isSame){
$("#luckysheet-cols-rows-add").find("input[type='number'].rcsize").val(first_collen);
}
else{
$("#luckysheet-cols-rows-add").find("input[type='number'].rcsize").val("");
}
}
});
//表格行标题 改变行高按钮
$("#luckysheet-rows-change-size").mousedown(function (event) {
//有批注在编辑时
luckysheetPostil.removeActivePs();
//图片 active/cropping
if($("#luckysheet-modal-dialog-activeImage").is(":visible") || $("#luckysheet-modal-dialog-cropping").is(":visible")){
imageCtrl.cancelActiveImgItem();
}
$("#luckysheet-input-box").hide();
$("#luckysheet-rows-change-size").css({ "opacity": 1 });
let mouse = mouseposition(event.pageX, event.pageY);
let y = mouse[1] + $("#luckysheet-rows-h").scrollTop();
let scrollLeft = $("#luckysheet-cell-main").scrollLeft();
let winW = $("#luckysheet-cell-main").width();
let row_location = rowLocation(y),
row = row_location[1],
row_pre = row_location[0],
row_index = row_location[2];
Store.luckysheet_rows_change_size = true;
Store.luckysheet_scroll_status = true;
$("#luckysheet-change-size-line").css({
"height": "1px",
"border-width":
"0 0px 1px 0",
"top": row - 3,
"left": 0,
"width": scrollLeft + winW,
"display": "block",
"cursor": "ns-resize"
});
$("#luckysheet-sheettable, #luckysheet-rows-h, #luckysheet-rows-h canvas").css("cursor", "ns-resize");
Store.luckysheet_rows_change_size_start = [row_pre, row_index];
$("#luckysheet-rightclick-menu").hide();
$("#luckysheet-rows-h-hover").hide();
$("#luckysheet-cols-menu-btn").hide();
event.stopPropagation();
});
//表格列标题 改变列宽按钮
$("#luckysheet-cols-change-size").mousedown(function (event) {
//有批注在编辑时
luckysheetPostil.removeActivePs();
//图片 active/cropping
if($("#luckysheet-modal-dialog-activeImage").is(":visible") || $("#luckysheet-modal-dialog-cropping").is(":visible")){
imageCtrl.cancelActiveImgItem();
}
$("#luckysheet-input-box").hide();
$("#luckysheet-cols-change-size").css({ "opacity": 1 });
let mouse = mouseposition(event.pageX, event.pageY);
let scrollLeft = $("#luckysheet-cols-h-c").scrollLeft();
let scrollTop = $("#luckysheet-cell-main").scrollTop();
let winH = $("#luckysheet-cell-main").height();
let x = mouse[0] + scrollLeft;
let row_index = Store.visibledatarow.length - 1,
row = Store.visibledatarow[row_index], row_pre = 0;
let col_location = colLocation(x),
col = col_location[1],
col_pre = col_location[0],
col_index = col_location[2];
Store.luckysheet_cols_change_size = true;
Store.luckysheet_scroll_status = true;
$("#luckysheet-change-size-line").css({
"height": winH + scrollTop,
"border-width": "0 1px 0 0",
"top": 0,
"left": col - 3,
"width": "1px",
"display": "block",
"cursor": "ew-resize"
});
$("#luckysheet-sheettable, #luckysheet-cols-h-c, .luckysheet-cols-h-cells, .luckysheet-cols-h-cells canvas").css("cursor", "ew-resize");
Store.luckysheet_cols_change_size_start = [col_pre, col_index];
$("#luckysheet-rightclick-menu").hide();
$("#luckysheet-cols-h-hover").hide();
$("#luckysheet-cols-menu-btn").hide();
Store.luckysheet_cols_dbclick_times = 0;
event.stopPropagation();
}).dblclick(function () {
luckysheetcolsdbclick();
});
$("#luckysheet-cols-menu-btn").click(function (event) {
let $menu = $("#luckysheet-rightclick-menu");
let offset = $(this).offset();
$("#luckysheet-cols-rows-shift").show();
Store.luckysheetRightHeadClickIs = "column";
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-word").text(locale().rightclick.column);
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-left").text(locale().rightclick.left);
$("#luckysheet-rightclick-menu .luckysheet-cols-rows-shift-right").text(locale().rightclick.right);
$("#luckysheet-cols-rows-add").show();
$("#luckysheet-cols-rows-data").hide();
$("#luckysheet-cols-rows-shift").show();
$("#luckysheet-cols-rows-handleincell").hide();
showrightclickmenu($menu, offset.left, offset.top + 18);
Store.luckysheet_cols_menu_status = true;
});
//向左增加列,向上增加行
// $("#luckysheet-add-lefttop, #luckysheet-add-lefttop_t").click(function (event) {
$("#luckysheet-top-left-add-selected").click(function (event) {
// Click input element, don't comfirm
if(event.target.nodeName === 'INPUT'){
return;
}
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const _locale = locale();
const locale_drag = _locale.drag;
const locale_info = _locale.info;
if(Store.luckysheet_select_save.length > 1){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
return;
}
let $t = $(this), value = $t.find("input").val();
if (!isRealNum(value)) {
if(isEditMode()){
alert(locale_info.tipInputNumber);
}
else{
tooltip.info(locale_info.tipInputNumber, "");
}
return;
}
value = parseInt(value);
if (value < 1 || value > 100) {
if(isEditMode()){
alert(locale_info.tipInputNumberLimit);
}
else{
tooltip.info(locale_info.tipInputNumberLimit, "");
}
return;
}
let st_index = Store.luckysheet_select_save[0][Store.luckysheetRightHeadClickIs][0];
luckysheetextendtable(Store.luckysheetRightHeadClickIs, st_index, value, "lefttop");
});
// Add the row up, and click the text area to trigger the confirmation instead of clicking the confirmation button to enhance the experience
// $("#luckysheet-addTopRows").click(function (event) {
$("#luckysheetColsRowsHandleAdd_sub .luckysheet-cols-menuitem:first-child").click(function (event) {
// Click input element, don't comfirm
if(event.target.nodeName === 'INPUT'){
return;
}
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const _locale = locale();
const locale_drag = _locale.drag;
const locale_info = _locale.info;
if(Store.luckysheet_select_save.length > 1){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
return;
}
let $t = $(this), value = $t.find("input").val();
if (!isRealNum(value)) {
if(isEditMode()){
alert(locale_info.tipInputNumber);
}
else{
tooltip.info(locale_info.tipInputNumber, "");
}
return;
}
value = parseInt(value);
if (value < 1 || value > 100) {
if(isEditMode()){
alert(locale_info.tipInputNumberLimit);
}
else{
tooltip.info(locale_info.tipInputNumberLimit, "");
}
return;
}
let st_index = Store.luckysheet_select_save[0].row[0];
luckysheetextendtable('row', st_index, value, "lefttop");
$("#luckysheetColsRowsHandleAdd_sub").hide();
})
// // input输入时阻止冒泡,禁止父级元素的确认事件触发
// $("input.luckysheet-mousedown-cancel").click(function(event) {
// event.stopPropagation;
// })
// $("#luckysheet-addLeftCols").click(function (event) {
$("#luckysheetColsRowsHandleAdd_sub .luckysheet-cols-menuitem:nth-child(3)").click(function (event) {
// Click input element, don't comfirm
if(event.target.nodeName === 'INPUT'){
return;
}
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const _locale = locale();
const locale_drag = _locale.drag;
const locale_info = _locale.info;
if(Store.luckysheet_select_save.length > 1){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
return;
}
let $t = $(this), value = $t.find("input").val();
if (!isRealNum(value)) {
if(isEditMode()){
alert(locale_info.tipInputNumber);
}
else{
tooltip.info(locale_info.tipInputNumber, "");
}
return;
}
value = parseInt(value);
if (value < 1 || value > 100) {
if(isEditMode()){
alert(locale_info.tipInputNumberLimit);
}
else{
tooltip.info(locale_info.tipInputNumberLimit, "");
}
return;
}
let st_index = Store.luckysheet_select_save[0].column[0];
luckysheetextendtable('column', st_index, value, "lefttop");
$("#luckysheetColsRowsHandleAdd_sub").hide();
})
//向右增加列,向下增加行
// $("#luckysheet-add-rightbottom, #luckysheet-add-rightbottom_t").click(function (event) {
$("#luckysheet-bottom-right-add-selected").click(function (event) {
// Click input element, don't comfirm
if(event.target.nodeName === 'INPUT'){
return;
}
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const _locale = locale();
const locale_drag = _locale.drag;
const locale_info = _locale.info;
if(Store.luckysheet_select_save.length > 1){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
return;
}
let $t = $(this), value = $t.find("input").val();
if (!isRealNum(value)) {
if(isEditMode()){
alert(locale_info.tipInputNumber);
}
else{
tooltip.info(locale_info.tipInputNumber, "");
}
return;
}
value = parseInt(value);
if (value < 1 || value > 100) {
if(isEditMode()){
alert(locale_info.tipInputNumberLimit);
}
else{
tooltip.info(locale_info.tipInputNumberLimit, "");
}
return;
}
let st_index = Store.luckysheet_select_save[0][Store.luckysheetRightHeadClickIs][1];
luckysheetextendtable(Store.luckysheetRightHeadClickIs, st_index, value, "rightbottom");
});
// $("#luckysheet-addBottomRows").click(function (event) {
$("#luckysheetColsRowsHandleAdd_sub .luckysheet-cols-menuitem:nth-child(2)").click(function (event) {
// Click input element, don't comfirm
if(event.target.nodeName === 'INPUT'){
return;
}
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const _locale = locale();
const locale_drag = _locale.drag;
const locale_info = _locale.info;
if(Store.luckysheet_select_save.length > 1){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
return;
}
let $t = $(this), value = $t.find("input").val();
if (!isRealNum(value)) {
if(isEditMode()){
alert(locale_info.tipInputNumber);
}
else{
tooltip.info(locale_info.tipInputNumber, "");
}
return;
}
value = parseInt(value);
if (value < 1 || value > 100) {
if(isEditMode()){
alert(locale_info.tipInputNumberLimit);
}
else{
tooltip.info(locale_info.tipInputNumberLimit, "");
}
return;
}
let st_index = Store.luckysheet_select_save[0].row[1];
luckysheetextendtable('row', st_index, value, "rightbottom");
$("#luckysheetColsRowsHandleAdd_sub").hide();
});
// $("#luckysheet-addRightCols").click(function (event) {
$("#luckysheetColsRowsHandleAdd_sub .luckysheet-cols-menuitem:nth-child(4)").click(function (event) {
// Click input element, don't comfirm
if(event.target.nodeName === 'INPUT'){
return;
}
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const _locale = locale();
const locale_drag = _locale.drag;
const locale_info = _locale.info;
if(Store.luckysheet_select_save.length > 1){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
return;
}
let $t = $(this), value = $t.find("input").val();
if (!isRealNum(value)) {
if(isEditMode()){
alert(locale_info.tipInputNumber);
}
else{
tooltip.info(locale_info.tipInputNumber, "");
}
return;
}
value = parseInt(value);
if (value < 1 || value > 100) {
if(isEditMode()){
alert(locale_info.tipInputNumberLimit);
}
else{
tooltip.info(locale_info.tipInputNumberLimit, "");
}
return;
}
let st_index = Store.luckysheet_select_save[0].column[1];
luckysheetextendtable('column', st_index, value, "rightbottom");
$("#luckysheetColsRowsHandleAdd_sub").hide();
});
//删除选中行列
$("#luckysheet-del-selected, #luckysheet-del-selected_t").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const locale_drag = locale().drag;
if(Store.luckysheet_select_save.length > 1){
if(Store.luckysheetRightHeadClickIs == "row"){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
}
else if(Store.luckysheetRightHeadClickIs == "column"){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
}
return;
}
let st_index = Store.luckysheet_select_save[0][Store.luckysheetRightHeadClickIs][0],
ed_index = Store.luckysheet_select_save[0][Store.luckysheetRightHeadClickIs][1];
luckysheetdeletetable(Store.luckysheetRightHeadClickIs, st_index, ed_index);
});
$("#luckysheet-delRows").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const locale_drag = locale().drag;
if(Store.luckysheet_select_save.length > 1){
if(Store.luckysheetRightHeadClickIs == "row"){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
}
else if(Store.luckysheetRightHeadClickIs == "column"){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
}
return;
}
let st_index = Store.luckysheet_select_save[0].row[0],
ed_index = Store.luckysheet_select_save[0].row[1];
luckysheetdeletetable('row', st_index, ed_index);
})
$("#luckysheet-delCols").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const locale_drag = locale().drag;
if(Store.luckysheet_select_save.length > 1){
if(Store.luckysheetRightHeadClickIs == "row"){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
}
else if(Store.luckysheetRightHeadClickIs == "column"){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
}
return;
}
let st_index = Store.luckysheet_select_save[0].column[0],
ed_index = Store.luckysheet_select_save[0].column[1];
luckysheetdeletetable('column', st_index, ed_index);
})
//隐藏、显示行
$("#luckysheet-hidRows").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
let cfg = $.extend(true, {}, Store.config);
if(cfg["rowhidden"] == null){
cfg["rowhidden"] = {};
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let r1 = Store.luckysheet_select_save[s].row[0],
r2 = Store.luckysheet_select_save[s].row[1];
for(let r = r1; r <= r2; r++){
cfg["rowhidden"][r] = 0;
}
}
//保存撤销
if(Store.clearjfundo){
let redo = {};
redo["type"] = "showHidRows";
redo["sheetIndex"] = Store.currentSheetIndex;
redo["config"] = $.extend(true, {}, Store.config);
redo["curconfig"] = cfg;
Store.jfundo = [];
Store.jfredo.push(redo);
}
//config
Store.config = cfg;
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].config = Store.config;
server.saveParam("cg", Store.currentSheetIndex, cfg["rowhidden"], { "k": "rowhidden" });
//行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
})
$("#luckysheet-showHidRows").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
let cfg = $.extend(true, {}, Store.config);
if(cfg["rowhidden"] == null){
return;
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let r1 = Store.luckysheet_select_save[s].row[0],
r2 = Store.luckysheet_select_save[s].row[1];
for(let r = r1; r <= r2; r++){
delete cfg["rowhidden"][r];
}
}
//保存撤销
if(Store.clearjfundo){
let redo = {};
redo["type"] = "showHidRows";
redo["sheetIndex"] = Store.currentSheetIndex;
redo["config"] = $.extend(true, {}, Store.config);
redo["curconfig"] = cfg;
Store.jfundo = [];
Store.jfredo.push(redo);
}
//config
Store.config = cfg;
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].config = Store.config;
server.saveParam("cg", Store.currentSheetIndex, cfg["rowhidden"], { "k": "rowhidden" });
//行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
})
//隐藏、显示列
$("#luckysheet-hidCols").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
let cfg = $.extend(true, {}, Store.config);
if(cfg["colhidden"] == null){
cfg["colhidden"] = {};
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let c1 = Store.luckysheet_select_save[s].column[0],
c2 = Store.luckysheet_select_save[s].column[1];
for(let c = c1; c <= c2; c++){
cfg["colhidden"][c] = 0;
}
}
//保存撤销
if(Store.clearjfundo){
let redo = {};
redo["type"] = "showHidCols";
redo["sheetIndex"] = Store.currentSheetIndex;
redo["config"] = $.extend(true, {}, Store.config);
redo["curconfig"] = cfg;
Store.jfundo = [];
Store.jfredo.push(redo);
}
//config
Store.config = cfg;
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].config = Store.config;
server.saveParam("cg", Store.currentSheetIndex, cfg["colhidden"], { "k": "colhidden" });
//行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
})
$("#luckysheet-showHidCols").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
let cfg = $.extend(true, {}, Store.config);
if(cfg["colhidden"] == null){
return;
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let c1 = Store.luckysheet_select_save[s].column[0],
c2 = Store.luckysheet_select_save[s].column[1];
for(let c = c1; c <= c2; c++){
delete cfg["colhidden"][c];
}
}
//保存撤销
if(Store.clearjfundo){
let redo = {};
redo["type"] = "showHidCols";
redo["sheetIndex"] = Store.currentSheetIndex;
redo["config"] = $.extend(true, {}, Store.config);
redo["curconfig"] = cfg;
Store.jfundo = [];
Store.jfredo.push(redo);
}
//config
Store.config = cfg;
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].config = Store.config;
server.saveParam("cg", Store.currentSheetIndex, cfg["colhidden"], { "k": "colhidden" });
//行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
})
//删除单元格(左移、上移)
$("#luckysheet-delCellsMoveLeft").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const locale_drag = locale().drag;
if(Store.luckysheet_select_save.length > 1){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
return;
}
let str = Store.luckysheet_select_save[0].row[0],
edr = Store.luckysheet_select_save[0].row[1],
stc = Store.luckysheet_select_save[0].column[0],
edc = Store.luckysheet_select_save[0].column[1];
luckysheetDeleteCell('moveLeft', str, edr, stc, edc);
});
$("#luckysheet-delCellsMoveUp").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
const locale_drag = locale().drag;
if(Store.luckysheet_select_save.length > 1){
if(isEditMode()){
alert(locale_drag.noMulti);
}
else{
tooltip.info(locale_drag.noMulti, "");
}
return;
}
let str = Store.luckysheet_select_save[0].row[0],
edr = Store.luckysheet_select_save[0].row[1],
stc = Store.luckysheet_select_save[0].column[0],
edc = Store.luckysheet_select_save[0].column[1];
luckysheetDeleteCell('moveUp', str, edr, stc, edc);
});
//清除单元格内容
$("#luckysheet-delete-text").click(function(){
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
if(Store.allowEdit===false){
return;
}
if(Store.luckysheet_select_save.length > 0){
let d = editor.deepCopyFlowData(Store.flowdata);
let has_PartMC = false;
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let r1 = Store.luckysheet_select_save[s].row[0],
r2 = Store.luckysheet_select_save[s].row[1];
let c1 = Store.luckysheet_select_save[s].column[0],
c2 = Store.luckysheet_select_save[s].column[1];
if(hasPartMC(Store.config, r1, r2, c1, c2)){
has_PartMC = true;
break;
}
}
if(has_PartMC){
const locale_drag = locale().drag;
if(isEditMode()){
alert(locale_drag.noPartMerge);
}
else{
tooltip.info(locale_drag.noPartMerge, "");
}
return;
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let r1 = Store.luckysheet_select_save[s].row[0],
r2 = Store.luckysheet_select_save[s].row[1];
let c1 = Store.luckysheet_select_save[s].column[0],
c2 = Store.luckysheet_select_save[s].column[1];
for(let r = r1; r <= r2; r++){
for(let c = c1; c <= c2; c++){
if(pivotTable.isPivotRange(r, c)){
continue;
}
if(getObjType(d[r][c]) == "object"){
delete d[r][c]["m"];
delete d[r][c]["v"];
if(d[r][c]["f"] != null){
delete d[r][c]["f"];
formula.delFunctionGroup(r, c, Store.currentSheetIndex);
delete d[r][c]["spl"];
}
if(d[r][c]["ct"] != null && d[r][c]["ct"].t == 'inlineStr'){
delete d[r][c]["ct"];
}
}
else{
d[r][c] = null;
}
}
}
}
jfrefreshgrid(d, Store.luckysheet_select_save);
}
});
//行高列宽设置
// $("#luckysheet-rows-cols-changesize").click(function(){
$("#luckysheet-column-row-width-selected").click(function (event) {
// Click input element, don't comfirm
if(event.target.nodeName === 'INPUT'){
return;
}
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
// let size = parseInt($(this).siblings("input[type='number']").val().trim());
let size = parseInt($(this).closest('.luckysheet-cols-menuitem').find("input[type='number']").val().trim());
if(size < 0 || size > 255){
const locale_info = locale().info;
if(isEditMode()){
alert(locale_info.tipRowHeightLimit);
}
else{
tooltip.info(locale_info.tipRowHeightLimit, "");
}
return;
}
let cfg = $.extend(true, {}, Store.config);
let type;
if(Store.luckysheetRightHeadClickIs == "row"){
type = "resizeR";
if(cfg["rowlen"] == null){
cfg["rowlen"] = {};
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let r1 = Store.luckysheet_select_save[s].row[0];
let r2 = Store.luckysheet_select_save[s].row[1];
for(let r = r1; r <= r2; r++){
cfg["rowlen"][r] = size;
}
}
}
else if(Store.luckysheetRightHeadClickIs == "column"){
type = "resizeC";
if(cfg["columnlen"] == null){
cfg["columnlen"] = {};
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let c1 = Store.luckysheet_select_save[s].column[0];
let c2 = Store.luckysheet_select_save[s].column[1];
for(let c = c1; c <= c2; c++){
cfg["columnlen"][c] = size;
}
}
}
if (Store.clearjfundo) {
Store.jfundo = [];
Store.jfredo.push({
"type": "resize",
"ctrlType": type,
"config": $.extend(true, {}, Store.config),
"curconfig": $.extend(true, {}, cfg),
"sheetIndex": Store.currentSheetIndex
});
}
//config
Store.config = cfg;
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].config = Store.config;
if(Store.luckysheetRightHeadClickIs == "row"){
server.saveParam("cg", Store.currentSheetIndex, cfg["rowlen"], { "k": "rowlen" });
jfrefreshgrid_rhcw(Store.flowdata.length, null);
}
else if(Store.luckysheetRightHeadClickIs == "column"){
server.saveParam("cg", Store.currentSheetIndex, cfg["columnlen"], { "k": "columnlen" });
jfrefreshgrid_rhcw(null, Store.flowdata[0].length);
}
});
}
function luckysheetcolsdbclick() {
Store.luckysheet_cols_change_size = false;
$("#luckysheet-change-size-line").hide();
$("#luckysheet-cols-change-size").css("opacity", 0);
$("#luckysheet-sheettable, #luckysheet-cols-h-c, .luckysheet-cols-h-cells, .luckysheet-cols-h-cells canvas").css("cursor", "default");
let mouse = mouseposition(event.pageX, event.pageY);
let scrollLeft = $("#luckysheet-cols-h-c").scrollLeft();
let x = mouse[0] + scrollLeft;
let colIndex = colLocation(x)[2];
let d = editor.deepCopyFlowData(Store.flowdata);
let canvas = $("#luckysheetTableContent").get(0).getContext("2d");
let cfg = $.extend(true, {}, Store.config);
if (cfg["columnlen"] == null) {
cfg["columnlen"] = {};
}
let matchColumn = {};
let scrollTop = $("#luckysheet-cell-main").scrollTop(), drawHeight = Store.luckysheetTableContentHW[1];
let dataset_row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
let dataset_row_ed = luckysheet_searcharray(Store.visibledatarow, scrollTop + drawHeight);
dataset_row_ed += dataset_row_ed - dataset_row_st;
if(dataset_row_ed>=d.length){
dataset_row_ed = d.length-1;
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let c1 = Store.luckysheet_select_save[s].column[0],
c2 = Store.luckysheet_select_save[s].column[1];
if (colIndex < c1 || colIndex > c2) {
if(colIndex in matchColumn){//此列已计算过
continue;
}
let currentColLen = Store.defaultcollen;
for(let r = dataset_row_st; r <= dataset_row_ed; r++){
let cell = d[r][colIndex];
if(cell == null || (isRealNull(cell.v) && !isInlineStringCell(cell)) ){
continue;
}
// let fontset = luckysheetfontformat(cell);
// canvas.font = fontset;
// let value = getcellvalue(r, colIndex, d, "m").toString(); //单元格文本
// let textMetrics = getMeasureText(value, canvas).width; //文本宽度
let cellWidth = colLocationByIndex(colIndex)[1] - colLocationByIndex(colIndex)[0] - 2;
let textInfo = getCellTextInfo(cell, canvas,{
r:r,
c:colIndex,
cellWidth:cellWidth
});
let computeRowlen = 0;
// console.log("rowlen", textInfo);
if(textInfo!=null){
computeRowlen = textInfo.textWidthAll;
}
if(computeRowlen + 6 > currentColLen){
currentColLen = computeRowlen + 6;
}
}
if(currentColLen != Store.defaultcollen){
cfg["columnlen"][colIndex] = currentColLen;
if(cfg["customWidth"]){
delete cfg["customWidth"][colIndex];
}
}
matchColumn[colIndex] = 1;
}
else {
for (let c = c1; c <= c2; c++) {
if(c in matchColumn){//此列已计算过
continue;
}
let currentColLen = Store.defaultcollen;
for(let r = dataset_row_st; r <= dataset_row_ed; r++){
let cell = d[r][c];
if(cell == null || (isRealNull(cell.v) && !isInlineStringCell(cell)) ){
continue;
}
// let fontset = luckysheetfontformat(cell);
// canvas.font = fontset;
// let value = getcellvalue(r, c, d, "m").toString(); //单元格文本
// let textMetrics = getMeasureText(value, canvas).width; //文本宽度
// if(textMetrics + 6 > currentColLen){
// currentColLen = textMetrics + 6;
// }
let cellWidth = colLocationByIndex(c)[1] - colLocationByIndex(c)[0] - 2;
let textInfo = getCellTextInfo(cell, canvas,{
r:r,
c:c,
cellWidth:cellWidth
});
let computeRowlen = 0;
// console.log("rowlen", textInfo);
if(textInfo!=null){
computeRowlen = textInfo.textWidthAll;
}
if(computeRowlen + 6 > currentColLen){
currentColLen = computeRowlen + 6;
}
}
if(currentColLen != Store.defaultcollen){
cfg["columnlen"][c] = currentColLen;
if(cfg["customWidth"]){
delete cfg["customWidth"][c];
}
}
matchColumn[c] = 1;
}
}
}
jfrefreshgridall(Store.flowdata[0].length, Store.flowdata.length, Store.flowdata, cfg, Store.luckysheet_select_save, "resizeC", "columnlen");
}
/**
*
* @param {String} type:delete type,
* @param {*} st_index
* @param {*} ed_index
*/
// Delete row api
export function deleteRows(type, st_index, ed_index){
Store.luckysheetRightHeadClickIs = "column";
}
// Delete column api
export function deleteColumns(){
}