2615 lines
100 KiB
JavaScript
2615 lines
100 KiB
JavaScript
import pivotTable from "./pivotTable";
|
|||
|
|
import luckysheetPostil from "./postil";
|
||
|
|
import imageCtrl from "./imageCtrl";
|
||
|
|
import menuButton from "./menuButton";
|
||
|
|
import server from "./server";
|
||
|
|
import method from "../global/method";
|
||
|
|
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, checkIsAllowEdit } 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 {
|
||
|
|
checkProtectionLockedRangeList,
|
||
|
|
checkProtectionAllSelected,
|
||
|
|
checkProtectionAuthorityNormal,
|
||
|
|
} from "./protection";
|
||
|
|
import Store from "../store";
|
||
|
|
import luckysheetConfigsetting from "./luckysheetConfigsetting";
|
||
|
|
|
||
|
|
export function rowColumnOperationInitial() {
|
||
|
|
//表格行标题 mouse事件
|
||
|
|
$("#luckysheet-rows-h")
|
||
|
|
.mousedown(function(event) {
|
||
|
|
if (!checkProtectionAllSelected(Store.currentSheetIndex)) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
//有批注在编辑时
|
||
|
|
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,
|
||
|
|
row_select: true,
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
Store.luckysheet_select_save.length = 0;
|
||
|
|
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,
|
||
|
|
row_select: true,
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
selectHightlightShow();
|
||
|
|
|
||
|
|
//允许编辑后的后台更新时
|
||
|
|
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 (!checkIsAllowEdit()) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
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();
|
||
|
|
|
||
|
|
$$("#luckysheet-cols-rows-add .luckysheet-menuseparator").style.display = "block";
|
||
|
|
$$("#luckysheet-cols-rows-data .luckysheet-menuseparator").style.display = "block";
|
||
|
|
|
||
|
|
// 自定义右键菜单:向上向下增加行,删除行,隐藏显示行,设置行高
|
||
|
|
const cellRightClickConfig = luckysheetConfigsetting.cellRightClickConfig;
|
||
|
|
|
||
|
|
// 如果全部按钮都隐藏,则整个菜单容器也要隐藏
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.copy &&
|
||
|
|
!cellRightClickConfig.copyAs &&
|
||
|
|
!cellRightClickConfig.paste &&
|
||
|
|
!cellRightClickConfig.insertRow &&
|
||
|
|
!cellRightClickConfig.deleteRow &&
|
||
|
|
!cellRightClickConfig.hideRow &&
|
||
|
|
!cellRightClickConfig.rowHeight &&
|
||
|
|
!cellRightClickConfig.clear &&
|
||
|
|
!cellRightClickConfig.matrix &&
|
||
|
|
!cellRightClickConfig.sort &&
|
||
|
|
!cellRightClickConfig.filter &&
|
||
|
|
!cellRightClickConfig.chart &&
|
||
|
|
!cellRightClickConfig.image &&
|
||
|
|
!cellRightClickConfig.link &&
|
||
|
|
!cellRightClickConfig.data &&
|
||
|
|
!cellRightClickConfig.cellFormat
|
||
|
|
) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
$$("#luckysheet-top-left-add-selected").style.display = cellRightClickConfig.insertRow
|
||
|
|
? "block"
|
||
|
|
: "none";
|
||
|
|
$$("#luckysheet-bottom-right-add-selected").style.display = cellRightClickConfig.insertRow
|
||
|
|
? "block"
|
||
|
|
: "none";
|
||
|
|
$$("#luckysheet-del-selected").style.display = cellRightClickConfig.deleteRow ? "block" : "none";
|
||
|
|
$$("#luckysheet-hide-selected").style.display = cellRightClickConfig.hideRow ? "block" : "none";
|
||
|
|
$$("#luckysheet-show-selected").style.display = cellRightClickConfig.hideRow ? "block" : "none";
|
||
|
|
$$("#luckysheet-column-row-width-selected").style.display = cellRightClickConfig.rowHeight
|
||
|
|
? "block"
|
||
|
|
: "none";
|
||
|
|
|
||
|
|
// 1. 当一个功能菜单块上方的功能块按钮都隐藏的时候,下方的功能块的顶部分割线也需要隐藏
|
||
|
|
if (!cellRightClickConfig.copy && !cellRightClickConfig.copyAs && !cellRightClickConfig.paste) {
|
||
|
|
$$("#luckysheet-cols-rows-add .luckysheet-menuseparator").style.display = "none";
|
||
|
|
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.insertRow &&
|
||
|
|
!cellRightClickConfig.deleteRow &&
|
||
|
|
!cellRightClickConfig.hideRow &&
|
||
|
|
!cellRightClickConfig.rowHeight
|
||
|
|
) {
|
||
|
|
$$("#luckysheet-cols-rows-data .luckysheet-menuseparator").style.display = "none";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 2. 当一个功能菜单块内所有的按钮都隐藏的时候,它顶部的分割线也需要隐藏掉
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.insertRow &&
|
||
|
|
!cellRightClickConfig.deleteRow &&
|
||
|
|
!cellRightClickConfig.hideRow &&
|
||
|
|
!cellRightClickConfig.rowHeight
|
||
|
|
) {
|
||
|
|
$$("#luckysheet-cols-rows-add .luckysheet-menuseparator").style.display = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.clear &&
|
||
|
|
!cellRightClickConfig.matrix &&
|
||
|
|
!cellRightClickConfig.sort &&
|
||
|
|
!cellRightClickConfig.filter &&
|
||
|
|
!cellRightClickConfig.chart &&
|
||
|
|
!cellRightClickConfig.image &&
|
||
|
|
!cellRightClickConfig.link &&
|
||
|
|
!cellRightClickConfig.data &&
|
||
|
|
!cellRightClickConfig.cellFormat
|
||
|
|
) {
|
||
|
|
$$("#luckysheet-cols-rows-data .luckysheet-menuseparator").style.display = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
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) {
|
||
|
|
if (!checkProtectionAllSelected(Store.currentSheetIndex)) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
//有批注在编辑时
|
||
|
|
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,
|
||
|
|
column_select: true,
|
||
|
|
});
|
||
|
|
} else {
|
||
|
|
Store.luckysheet_select_save.length = 0;
|
||
|
|
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,
|
||
|
|
column_select: true,
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
selectHightlightShow();
|
||
|
|
|
||
|
|
//允许编辑后的后台更新时
|
||
|
|
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 (!checkIsAllowEdit()) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
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();
|
||
|
|
|
||
|
|
$$("#luckysheet-cols-rows-add .luckysheet-menuseparator").style.display = "block";
|
||
|
|
$$("#luckysheet-cols-rows-data .luckysheet-menuseparator").style.display = "block";
|
||
|
|
|
||
|
|
// 自定义右键菜单:向左向右增加列,删除列,隐藏显示列,设置列宽
|
||
|
|
const cellRightClickConfig = luckysheetConfigsetting.cellRightClickConfig;
|
||
|
|
|
||
|
|
// 如果全部按钮都隐藏,则整个菜单容器也要隐藏
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.copy &&
|
||
|
|
!cellRightClickConfig.copyAs &&
|
||
|
|
!cellRightClickConfig.paste &&
|
||
|
|
!cellRightClickConfig.insertColumn &&
|
||
|
|
!cellRightClickConfig.deleteColumn &&
|
||
|
|
!cellRightClickConfig.hideColumn &&
|
||
|
|
!cellRightClickConfig.columnWidth &&
|
||
|
|
!cellRightClickConfig.clear &&
|
||
|
|
!cellRightClickConfig.matrix &&
|
||
|
|
!cellRightClickConfig.sort &&
|
||
|
|
!cellRightClickConfig.filter &&
|
||
|
|
!cellRightClickConfig.chart &&
|
||
|
|
!cellRightClickConfig.image &&
|
||
|
|
!cellRightClickConfig.link &&
|
||
|
|
!cellRightClickConfig.data &&
|
||
|
|
!cellRightClickConfig.cellFormat
|
||
|
|
) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
$$("#luckysheet-top-left-add-selected").style.display = cellRightClickConfig.insertColumn
|
||
|
|
? "block"
|
||
|
|
: "none";
|
||
|
|
$$("#luckysheet-bottom-right-add-selected").style.display = cellRightClickConfig.insertColumn
|
||
|
|
? "block"
|
||
|
|
: "none";
|
||
|
|
$$("#luckysheet-del-selected").style.display = cellRightClickConfig.deleteColumn ? "block" : "none";
|
||
|
|
$$("#luckysheet-hide-selected").style.display = cellRightClickConfig.hideColumn ? "block" : "none";
|
||
|
|
$$("#luckysheet-show-selected").style.display = cellRightClickConfig.hideColumn ? "block" : "none";
|
||
|
|
$$("#luckysheet-column-row-width-selected").style.display = cellRightClickConfig.columnWidth
|
||
|
|
? "block"
|
||
|
|
: "none";
|
||
|
|
|
||
|
|
// 1. 当一个功能菜单块上方的功能块按钮都隐藏的时候,下方的功能块的顶部分割线也需要隐藏
|
||
|
|
if (!cellRightClickConfig.copy && !cellRightClickConfig.copyAs && !cellRightClickConfig.paste) {
|
||
|
|
$$("#luckysheet-cols-rows-add .luckysheet-menuseparator").style.display = "none";
|
||
|
|
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.insertColumn &&
|
||
|
|
!cellRightClickConfig.deleteColumn &&
|
||
|
|
!cellRightClickConfig.hideColumn &&
|
||
|
|
!cellRightClickConfig.columnWidth
|
||
|
|
) {
|
||
|
|
$$("#luckysheet-cols-rows-data .luckysheet-menuseparator").style.display = "none";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 2. 当一个功能菜单块内所有的按钮都隐藏的时候,它顶部的分割线也需要隐藏掉
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.insertColumn &&
|
||
|
|
!cellRightClickConfig.deleteColumn &&
|
||
|
|
!cellRightClickConfig.hideColumn &&
|
||
|
|
!cellRightClickConfig.columnWidth
|
||
|
|
) {
|
||
|
|
$$("#luckysheet-cols-rows-add .luckysheet-menuseparator").style.display = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.clear &&
|
||
|
|
!cellRightClickConfig.matrix &&
|
||
|
|
!cellRightClickConfig.sort &&
|
||
|
|
!cellRightClickConfig.filter &&
|
||
|
|
!cellRightClickConfig.chart &&
|
||
|
|
!cellRightClickConfig.image &&
|
||
|
|
!cellRightClickConfig.link &&
|
||
|
|
!cellRightClickConfig.data &&
|
||
|
|
!cellRightClickConfig.cellFormat
|
||
|
|
) {
|
||
|
|
$$("#luckysheet-cols-rows-data .luckysheet-menuseparator").style.display = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
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) {
|
||
|
|
// *如果禁止前台编辑,则中止下一步操作
|
||
|
|
if (!checkIsAllowEdit()) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
//有批注在编辑时
|
||
|
|
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) {
|
||
|
|
// *如果禁止前台编辑,则中止下一步操作
|
||
|
|
if (!checkIsAllowEdit()) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
//有批注在编辑时
|
||
|
|
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) {
|
||
|
|
// *如果禁止前台编辑,则中止下一步操作
|
||
|
|
if (!checkIsAllowEdit()) {
|
||
|
|
tooltip.info("", locale().pivotTable.errorNotAllowEdit);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
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();
|
||
|
|
|
||
|
|
$$("#luckysheet-cols-rows-add .luckysheet-menuseparator").style.display = "block";
|
||
|
|
$$("#luckysheet-cols-rows-shift .luckysheet-menuseparator").style.display = "block";
|
||
|
|
|
||
|
|
// 自定义右键菜单:向左向右增加列,删除列,隐藏显示列,设置列宽
|
||
|
|
const cellRightClickConfig = luckysheetConfigsetting.cellRightClickConfig;
|
||
|
|
|
||
|
|
// 如果全部按钮都隐藏,则整个菜单容器也要隐藏
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.copy &&
|
||
|
|
!cellRightClickConfig.copyAs &&
|
||
|
|
!cellRightClickConfig.paste &&
|
||
|
|
!cellRightClickConfig.insertColumn &&
|
||
|
|
!cellRightClickConfig.deleteColumn &&
|
||
|
|
!cellRightClickConfig.hideColumn &&
|
||
|
|
!cellRightClickConfig.columnWidth &&
|
||
|
|
!cellRightClickConfig.sort
|
||
|
|
) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
$$("#luckysheet-top-left-add-selected").style.display = cellRightClickConfig.insertColumn ? "block" : "none";
|
||
|
|
$$("#luckysheet-bottom-right-add-selected").style.display = cellRightClickConfig.insertColumn
|
||
|
|
? "block"
|
||
|
|
: "none";
|
||
|
|
$$("#luckysheet-del-selected").style.display = cellRightClickConfig.deleteColumn ? "block" : "none";
|
||
|
|
$$("#luckysheet-hide-selected").style.display = cellRightClickConfig.hideColumn ? "block" : "none";
|
||
|
|
$$("#luckysheet-show-selected").style.display = cellRightClickConfig.hideColumn ? "block" : "none";
|
||
|
|
$$("#luckysheet-column-row-width-selected").style.display = cellRightClickConfig.columnWidth ? "block" : "none";
|
||
|
|
|
||
|
|
// 1. 当一个功能菜单块上方的功能块按钮都隐藏的时候,下方的功能块的顶部分割线也需要隐藏
|
||
|
|
if (!cellRightClickConfig.copy && !cellRightClickConfig.copyAs && !cellRightClickConfig.paste) {
|
||
|
|
$$("#luckysheet-cols-rows-add .luckysheet-menuseparator").style.display = "none";
|
||
|
|
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.insertColumn &&
|
||
|
|
!cellRightClickConfig.deleteColumn &&
|
||
|
|
!cellRightClickConfig.hideColumn &&
|
||
|
|
!cellRightClickConfig.columnWidth
|
||
|
|
) {
|
||
|
|
$$("#luckysheet-cols-rows-shift .luckysheet-menuseparator").style.display = "none";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 2. 当一个功能菜单块内所有的按钮都隐藏的时候,它顶部的分割线也需要隐藏掉
|
||
|
|
if (
|
||
|
|
!cellRightClickConfig.insertColumn &&
|
||
|
|
!cellRightClickConfig.deleteColumn &&
|
||
|
|
!cellRightClickConfig.hideColumn &&
|
||
|
|
!cellRightClickConfig.columnWidth
|
||
|
|
) {
|
||
|
|
$$("#luckysheet-cols-rows-add .luckysheet-menuseparator").style.display = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
if (!cellRightClickConfig.sort) {
|
||
|
|
$$("#luckysheet-cols-rows-shift .luckysheet-menuseparator").style.display = "none";
|
||
|
|
}
|
||
|
|
|
||
|
|
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];
|
||
|
|
|
||
|
|
if(!method.createHookFunction("rowInsertBefore", st_index, value, "lefttop", Store.luckysheetRightHeadClickIs)){
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
luckysheetextendtable(Store.luckysheetRightHeadClickIs, st_index, value, "lefttop");
|
||
|
|
|
||
|
|
});
|
||
|
|
|
||
|
|
// When you right-click a cell, a row is inserted before the row by default
|
||
|
|
$("#luckysheetColsRowsHandleAdd_row").click(function(event) {
|
||
|
|
$("#luckysheet-rightclick-menu").hide();
|
||
|
|
luckysheetContainerFocus();
|
||
|
|
|
||
|
|
if (Store.allowEdit === false) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
let st_index = Store.luckysheet_select_save[0].row[0];
|
||
|
|
|
||
|
|
if(!method.createHookFunction("rowInsertBefore", st_index, 1, "lefttop", Store.luckysheetRightHeadClickIs)){
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
luckysheetextendtable('row', st_index, 1, "lefttop");
|
||
|
|
|
||
|
|
|
||
|
|
})
|
||
|
|
$("#luckysheetColsRowsHandleAdd_column").click(function (event) {
|
||
|
|
|
||
|
|
$("#luckysheet-rightclick-menu").hide();
|
||
|
|
luckysheetContainerFocus();
|
||
|
|
|
||
|
|
if (Store.allowEdit === false) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
let st_index = Store.luckysheet_select_save[0].column[0];
|
||
|
|
luckysheetextendtable("column", st_index, 1, "lefttop");
|
||
|
|
});
|
||
|
|
|
||
|
|
// custom right-click a cell buttton click
|
||
|
|
$(".luckysheetColsRowsHandleAdd_custom").click(function(clickEvent) {
|
||
|
|
$("#luckysheet-rightclick-menu").hide();
|
||
|
|
const cellRightClickConfig = luckysheetConfigsetting.cellRightClickConfig;
|
||
|
|
const rowIndex = Store.luckysheet_select_save[0].row[0];
|
||
|
|
const columnIndex = Store.luckysheet_select_save[0].column[0];
|
||
|
|
if (cellRightClickConfig.customs[Number(clickEvent.currentTarget.dataset.index)]) {
|
||
|
|
try {
|
||
|
|
cellRightClickConfig.customs[Number(clickEvent.currentTarget.dataset.index)].onClick(
|
||
|
|
clickEvent,
|
||
|
|
event,
|
||
|
|
{ rowIndex, columnIndex },
|
||
|
|
);
|
||
|
|
} catch (e) {
|
||
|
|
console.error("custom click error", e);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
// 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];
|
||
|
|
|
||
|
|
if(!method.createHookFunction("rowInsertBefore", st_index, value, "rightbottom", Store.luckysheetRightHeadClickIs)){
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
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];
|
||
|
|
|
||
|
|
if(!method.createHookFunction("rowDeleteBefore", st_index, ed_index, Store.luckysheetRightHeadClickIs)){
|
||
|
|
return;
|
||
|
|
|
||
|
|
}
|
||
|
|
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];
|
||
|
|
|
||
|
|
if(!method.createHookFunction("rowDeleteBefore", st_index, ed_index, 'row')){
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
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-hide-selected").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;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 隐藏行
|
||
|
|
if (Store.luckysheetRightHeadClickIs == "row") {
|
||
|
|
if (!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatRows")) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
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.length = 0;
|
||
|
|
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);
|
||
|
|
}
|
||
|
|
// 隐藏列
|
||
|
|
else if (Store.luckysheetRightHeadClickIs == "column") {
|
||
|
|
if (!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatColumns")) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
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.length = 0;
|
||
|
|
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-show-selected").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;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 取消隐藏行
|
||
|
|
if (Store.luckysheetRightHeadClickIs == "row") {
|
||
|
|
if (!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatRows")) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
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.length = 0;
|
||
|
|
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);
|
||
|
|
} else if (Store.luckysheetRightHeadClickIs == "column") {
|
||
|
|
if (!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatColumns")) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
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.length = 0;
|
||
|
|
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-hidRows").click(function (event) {
|
||
|
|
// if(!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatRows")){
|
||
|
|
// return;
|
||
|
|
// }
|
||
|
|
|
||
|
|
// $("#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.length = 0;
|
||
|
|
// 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) {
|
||
|
|
// if(!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatRows")){
|
||
|
|
// return;
|
||
|
|
// }
|
||
|
|
// $("#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.length = 0;
|
||
|
|
// 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) {
|
||
|
|
// if(!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatColumns")){
|
||
|
|
// return;
|
||
|
|
// }
|
||
|
|
// $("#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.length = 0;
|
||
|
|
// 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) {
|
||
|
|
// if(!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatColumns")){
|
||
|
|
// return;
|
||
|
|
// }
|
||
|
|
// $("#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.length = 0;
|
||
|
|
// 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) {
|
||
|
|
$("body .luckysheet-cols-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) {
|
||
|
|
$("body .luckysheet-cols-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() {
|
||
|
|
if (!checkProtectionLockedRangeList(Store.luckysheet_select_save, Store.currentSheetIndex)) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
$("#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;
|
||
|
|
}
|
||
|
|
|
||
|
|
const file = Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)];
|
||
|
|
const hyperlink = file.hyperlink && $.extend(true, {}, file.hyperlink);
|
||
|
|
let hyperlinkUpdated;
|
||
|
|
|
||
|
|
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;
|
||
|
|
}
|
||
|
|
// 同步清除 hyperlink
|
||
|
|
if (hyperlink?.[`${r}_${c}`]) {
|
||
|
|
delete hyperlink[`${r}_${c}`];
|
||
|
|
hyperlinkUpdated = true;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
jfrefreshgrid(d, Store.luckysheet_select_save, hyperlinkUpdated && { hyperlink });
|
||
|
|
|
||
|
|
// 清空编辑框的内容
|
||
|
|
// 备注:在functionInputHanddler方法中会把该标签的内容拷贝到 #luckysheet-functionbox-cell
|
||
|
|
$("#luckysheet-rich-text-editor").html("");
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
//行高列宽设置
|
||
|
|
// $("#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(),
|
||
|
|
);
|
||
|
|
|
||
|
|
const locale_info = locale().info;
|
||
|
|
|
||
|
|
/* 对异常情况进行判断:NaN */
|
||
|
|
if (isNaN(size)) {
|
||
|
|
tooltip.info(locale_info.tipInputNumber, "");
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
let cfg = $.extend(true, {}, Store.config);
|
||
|
|
let type;
|
||
|
|
let images = null;
|
||
|
|
|
||
|
|
if (Store.luckysheetRightHeadClickIs == "row") {
|
||
|
|
if (!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatRows")) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (size < 0 || size > 545) {
|
||
|
|
if (isEditMode()) {
|
||
|
|
alert(locale_info.tipRowHeightLimit);
|
||
|
|
} else {
|
||
|
|
tooltip.info(locale_info.tipRowHeightLimit, "");
|
||
|
|
}
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
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;
|
||
|
|
|
||
|
|
images = imageCtrl.moveChangeSize("row", r, size);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} else if (Store.luckysheetRightHeadClickIs == "column") {
|
||
|
|
if (!checkProtectionAuthorityNormal(Store.currentSheetIndex, "formatColumns")) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
if (size < 0 || size > 2038) {
|
||
|
|
if (isEditMode()) {
|
||
|
|
alert(locale_info.tipColumnWidthLimit);
|
||
|
|
} else {
|
||
|
|
tooltip.info(locale_info.tipColumnWidthLimit, "");
|
||
|
|
}
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
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;
|
||
|
|
|
||
|
|
images = imageCtrl.moveChangeSize("column", c, size);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if (Store.clearjfundo) {
|
||
|
|
Store.jfundo.length = 0;
|
||
|
|
Store.jfredo.push({
|
||
|
|
type: "resize",
|
||
|
|
ctrlType: type,
|
||
|
|
sheetIndex: Store.currentSheetIndex,
|
||
|
|
config: $.extend(true, {}, Store.config),
|
||
|
|
curconfig: $.extend(true, {}, cfg),
|
||
|
|
images: $.extend(true, {}, imageCtrl.images),
|
||
|
|
curImages: $.extend(true, {}, images),
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
//config
|
||
|
|
Store.config = cfg;
|
||
|
|
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].config = Store.config;
|
||
|
|
|
||
|
|
//images
|
||
|
|
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].images = images;
|
||
|
|
server.saveParam("all", Store.currentSheetIndex, images, { k: "images" });
|
||
|
|
imageCtrl.images = images;
|
||
|
|
imageCtrl.allImagesShow();
|
||
|
|
|
||
|
|
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() {}
|