From 32f94a72285d6051df87ce45390cb4e5a4cc49b2 Mon Sep 17 00:00:00 2001 From: wpxp123456 <2677556700@qq.com> Date: Thu, 23 Jul 2020 17:41:40 +0800 Subject: [PATCH] feat(rightclick menu perfect): add rows and cols delete rows and cols hide rows and cols rightclick --- src/config.js | 2 +- src/controllers/constant.js | 364 ++++++++++++++++++++++++++---- src/controllers/controlHistory.js | 20 ++ src/controllers/handler.js | 324 +++++++++++++++++++++++++- src/core.js | 1 + src/css/luckysheet-core.css | 4 +- src/global/extend.js | 5 +- src/locale/en.js | 23 ++ src/locale/zh.js | 25 +- 9 files changed, 715 insertions(+), 53 deletions(-) diff --git a/src/config.js b/src/config.js index 045b137..4847416 100644 --- a/src/config.js +++ b/src/config.js @@ -22,7 +22,7 @@ export default { config: {}, //表格行高、列宽、合并单元格、公式等设置 fullscreenmode: true, //是否全屏模式,非全屏模式下,标记框不会强制选中。 devicePixelRatio: window.devicePixelRatio, //设备比例,比例越大表格分标率越高 - allowEdit: true, //是否允许前台编辑 + allowEdit: false, //是否允许前台编辑 loadUrl: "", // 配置loadUrl的地址,luckysheet会通过ajax请求表格数据,默认载入status为1的sheet数据中的所有data,其余的sheet载入除data字段外的所有字段 loadSheetUrl: "", //配置loadSheetUrl的地址,参数为gridKey(表格主键) 和 index(sheet主键合集,格式为[1,2,3]),返回的数据为sheet的data字段数据集合 gridKey: "", // 表格唯一标识符 diff --git a/src/controllers/constant.js b/src/controllers/constant.js index 9737bdc..eeceea6 100644 --- a/src/controllers/constant.js +++ b/src/controllers/constant.js @@ -164,9 +164,281 @@ const gridHTML = '
' + columeHeader_word = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'], columeHeader_word_index = { 'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'J': 9, 'K': 10, 'L': 11, 'M': 12, 'N': 13, 'O': 14, 'P': 15, 'Q': 16, 'R': 17, 'S': 18, 'T': 19, 'U': 20, 'V': 21, 'W': 22, 'X': 23, 'Y': 24, 'Z': 25 }, flow = '
${flow}
', - colsmenuHTML = '', - rightclickHTML = '
复制
复制为
粘贴
增加
增加
删除选中
px
A-Z顺序排列
Z-A降序排列
清除内容
矩阵操作选区
排序选区
筛选选区
图表生成
Json
一维数组
二维数组
多维数组
×
对角线
反对角线
对角偏移
布尔值
翻转
翻转
转置
矩阵计算
删除两端0值
删除重复值
生成新矩阵
', - pivottableconfigHTML = '
排序
排序依据
显示总计
', + colsmenuHTML = ''; + +//右键菜单dom +const rightclickHTML = '
' + +'
' + +'
复制
' + +'
' + +'
' + +'
' + +'复制为' + +'
' + +'
' + +'
' + +'
粘贴
' + +'
' + +'
' + +'' + +'
' + +'
' + +'插入' + +'
' + +'
' + +'
' + +'
' + +'删除' + +'
' + +'
' + +'
' + +'
' + +'隐藏' + +'
' + +'
' + +'
' + +'
' + +'' + +'
' + +'
' + +'向' + +'' + +'增加' + +'' + +'' + +'' + +'
' + +'
' + +'
' + +'
' + +'向' + +'' + +'增加' + +'' + +'' + +'' + +'
' + +'
' + +'
' + +'
' + +'删除选中' + +'' + +'
' + +'
' + +'
' + +'
' + +'' + +'' + +'' + +'px' + +'' + +'
' + +'
' + +'
' + +'
' + +'' + +'
' + +'
A-Z顺序排列
' + +'
' + +'
' + +'
Z-A降序排列
' + +'
' + +'
' + +'
' + +'' + +'
' + +'
清除内容
' + +'
' + +'
' + +'
' + +'矩阵操作选区' + +'
' + +'
' + +'
' + +'
排序选区
' + +'
' + +'
' + +'
筛选选区
' + +'
' + +'
' + +'
图表生成
' + +'
' + +'
' + +'
' + //复制为 二级菜单 + +'
' + +'
' + +'
' + +'Json' + +'' + +'' + +'
' + +'
' + +'
' + +'
一维数组
' + +'
' + +'
' + +'
二维数组
' + +'
' + +'
' + +'
' + +'
多维数组
' + +'
' + +'' + +'×' + +'' + +'' + +'
' + +'
' + +'
' + +'' + +'
' + +'
对角线
' + +'
' + +'
' + +'
反对角线
' + +'
' + +'
' + +'
' + +'对角偏移' + +'' + +'列' + +'' + +'
' + +'
' + +'
' + +'
布尔值
' + +'
' + +'
' + //插入 二级菜单 + +'
' + +'
' + +'
' + +'向上增加' + +'' + +'' + +'' + +'
' + +'
' + +'
' + +'
' + +'向下增加' + +'' + +'' + +'' + +'
' + +'
' + +'
' + +'
' + +'向左增加' + +'' + +'' + +'' + +'
' + +'
' + +'
' + +'
' + +'向右增加' + +'' + +'' + +'' + +'
' + +'
' + +'
' + //删除 二级菜单 + +'
' + +'
' + +'
' + +'删除选中行' + +'
' + +'
' + +'
' + +'
' + +'删除选中列' + +'
' + +'
' + +'
' + //隐藏 二级菜单 + +'
' + +'
' + +'
' + +'隐藏选中行' + +'
' + +'
' + +'
' + +'
' + +'显示隐藏行' + +'
' + +'
' + // +'
' + // +'
' + // +'隐藏选中列' + // +'
' + // +'
' + // +'
' + // +'
' + // +'显示隐藏列' + // +'
' + // +'
' + +'
' + //矩阵操作选区 二级菜单 + +'
' + +'
' + +'
' + +'翻转' + +'' + +'' + +'
' + +'
' + +'
' + +'
' + +'翻转' + +'' + +'' + +'
' + +'
' + +'
' + +'
转置
' + +'
' + +'' + +'
' + +'
' + +'
矩阵计算
' + +'
' + +'' + +'' + +'' + +'
' + +'
' + +'
' + +'
' + +'
' + +'删除两端0值' + +'' + +'' + +'
' + +'
' + +'
' + +'
' + +'删除重复值' + +'' + +'' + +'
' + +'
' + +'
' + +'
生成新矩阵
' + +'
' + +'
'; + +const pivottableconfigHTML = '
排序
排序依据
显示总计
', pivottablesumHTML = '
求和
数值计数
计数
去重计数
平均值
最大值
最小值
中位数
乘积
标准差
整体标准差
方差
整体方差
', sheetHTML = '
${name} ${colorset}
', columnHeaderHTML = '
${column}
', @@ -272,7 +544,7 @@ function menuToolBar (){
-
@@ -290,7 +562,7 @@ function menuToolBar (){ style="user-select: none;">
-->
-
@@ -300,7 +572,7 @@ function menuToolBar (){
-
@@ -310,7 +582,7 @@ function menuToolBar (){
-
@@ -325,7 +597,7 @@ function menuToolBar (){
-
@@ -340,7 +612,7 @@ function menuToolBar (){
-
@@ -359,7 +631,7 @@ function menuToolBar (){
+ data-tooltip="${toolbar.font}" id="luckysheet-icon-font-family" role="button" style="user-select: none;">
+ data-tips="${toolbar.fontSize}" id="luckysheet-icon-font-size" style="user-select: none;">
-
@@ -396,7 +668,7 @@ function menuToolBar (){
-
@@ -410,7 +682,7 @@ function menuToolBar (){
-
@@ -424,7 +696,7 @@ function menuToolBar (){
-
@@ -439,7 +711,7 @@ function menuToolBar (){
+ data-tips="${toolbar.textColor}" id="luckysheet-icon-text-color" role="button" style="user-select: none;">
@@ -473,7 +745,7 @@ function menuToolBar (){
+ data-tips="${toolbar.fillColor}" id="luckysheet-icon-cell-color" role="button" style="user-select: none;">
@@ -505,7 +777,7 @@ function menuToolBar (){
+ data-tips="${toolbar.border}" id="luckysheet-icon-border-all" role="button" style="user-select: none;">
+ data-tips="${toolbar.borderStyle}..." id="luckysheet-icon-border-menu" role="button" style="user-select: none;">
+ data-tips="${toolbar.mergeCell}" id="luckysheet-icon-merge-button" role="button" style="user-select: none;">
+ data-tips="${toolbar.chooseMergeType}..." id="luckysheet-icon-merge-menu" role="button" style="user-select: none;">
+ data-tips="${toolbar.horizontalAlign}" id="luckysheet-icon-align" role="button" style="user-select: none;">
+ data-tips="${toolbar.alignment}..." id="luckysheet-icon-align-menu" role="button" style="user-select: none;">
+ data-tips="${toolbar.verticalAlign}" id="luckysheet-icon-valign" role="button" style="user-select: none;">
+ data-tips="${toolbar.alignment}..." id="luckysheet-icon-valign-menu" role="button" style="user-select: none;">
+ data-tips="${toolbar.textWrap}" id="luckysheet-icon-textwrap" role="button" style="user-select: none;">
+ data-tips="${toolbar.textWrapMode}..." id="luckysheet-icon-textwrap-menu" role="button" style="user-select: none;">
+ data-tips="${toolbar.textRotate}" id="luckysheet-icon-rotation" role="button" style="user-select: none;">
+ data-tips="${toolbar.textRotateMode}..." id="luckysheet-icon-rotation-menu" role="button" style="user-select: none;">
+ data-tips="${toolbar.freezeTopRow}" id="luckysheet-freezen-btn-horizontal" role="button" style="user-select: none;">
- 冻结首行 + ${toolbar.freezeTopRow}
@@ -705,7 +977,7 @@ function menuToolBar (){
-
@@ -722,7 +994,7 @@ function menuToolBar (){
-
@@ -740,7 +1012,7 @@ function menuToolBar (){
+ data-tips="${toolbar.autoSum}" id="luckysheet-icon-function" role="button" style="user-select: none;">
- 求和 + ${toolbar.sum}
+ data-tips="${toolbar.moreFunction}..." id="luckysheet-icon-function-menu" role="button" style="user-select: none;">
-
@@ -777,7 +1049,7 @@ function menuToolBar (){ style="user-select: none;">
- 条件格式 + ${toolbar.conditionalFormat}
@@ -785,7 +1057,7 @@ function menuToolBar (){
-
@@ -793,7 +1065,7 @@ function menuToolBar (){ style="user-select: none;">
- 批注 + ${toolbar.postil}
@@ -804,22 +1076,22 @@ function menuToolBar (){
- 数据透视表 + ${toolbar.pivotTable}
- 图表 + ${toolbar.chart}
- 截图 + ${toolbar.screenshot}
- 分列 + ${toolbar.splitColumn}
`; } const luckysheetlodingHTML = '
渲染中...
'; diff --git a/src/controllers/controlHistory.js b/src/controllers/controlHistory.js index 1693e92..7e96c57 100644 --- a/src/controllers/controlHistory.js +++ b/src/controllers/controlHistory.js @@ -139,6 +139,16 @@ const controlHistory = { jfrefreshgrid_adRC(ctr.data, ctr.config, "addRC", ctrlValue, ctr.calc, ctr.filterObj, ctr.cf, ctr.af, ctr.freezen); } + else if (ctr.type == "showHidRows") { // 隐藏、显示行 撤销操作 + //config + Store.config = ctr.config; + Store.luckysheetfile[getSheetIndex(ctr.sheetIndex)].config = ctr.config; + + server.saveParam("cg", ctr.sheetIndex, ctr.config["rowhidden"], { "k": "rowhidden" }); + + //行高、列宽 刷新 + jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length); + } else if (ctr.type == "datachangeAll") { formula.execFunctionGroup(); jfrefreshgridall(ctr.data[0].length, ctr.data.length, ctr.data, null, ctr.range, "datachangeAll", ctr.ctrlValue); @@ -371,6 +381,16 @@ const controlHistory = { else if (ctr.type == "delRC") { //删除行列重做操作 jfrefreshgrid_adRC(ctr.curData, ctr.curConfig, "delRC", ctr.ctrlValue, ctr.curCalc, ctr.curFilterObj, ctr.curCf, ctr.curAf, ctr.curFreezen); } + else if (ctr.type == "showHidRows") { // 隐藏、显示行 重做操作 + //config + Store.config = ctr.curconfig; + Store.luckysheetfile[getSheetIndex(ctr.sheetIndex)].config = ctr.curconfig; + + server.saveParam("cg", ctr.sheetIndex, ctr.curconfig["rowhidden"], { "k": "rowhidden" }); + + //行高、列宽 刷新 + jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length); + } else if (ctr.type == "datachangeAll") { formula.execFunctionGroup(); jfrefreshgridall(ctr.curdata[0].length, ctr.curdata.length, ctr.curdata, null, ctr.currange, "datachangeAll", ctr.ctrlValue); diff --git a/src/controllers/handler.js b/src/controllers/handler.js index 7a8e17f..fc4f627 100644 --- a/src/controllers/handler.js +++ b/src/controllers/handler.js @@ -185,6 +185,11 @@ export default function luckysheetHandler() { } }); + // //禁止前台编辑 + // if(!Store.allowEdit){ + // return; + // } + //选区拖动替换 $("#luckysheet-cell-main div.luckysheet-cs-draghandle").mousedown(function (event) { if(isEditMode()){//此模式下禁用选区拖动 @@ -1077,6 +1082,7 @@ export default function luckysheetHandler() { let obj_s = Store.luckysheet_select_save[0]; $("#luckysheet-cols-rows-data").show(); + $("#luckysheet-cols-rows-handleincell").show(); $("#luckysheet-cols-rows-add, #luckysheet-cols-rows-shift").hide(); if (obj_s["row"] != null && obj_s["row"][0] == 0 && obj_s["row"][1] == Store.flowdata.length - 1) { @@ -1090,6 +1096,7 @@ export default function luckysheetHandler() { $("#luckysheet-cols-rows-add").show(); $("#luckysheet-cols-rows-data").show(); $("#luckysheet-cols-rows-shift").hide(); + $("#luckysheet-cols-rows-handleincell").hide(); Store.luckysheet_cols_menu_status = true; @@ -1134,6 +1141,7 @@ export default function luckysheetHandler() { $("#luckysheet-cols-rows-add").show(); $("#luckysheet-cols-rows-data").show(); $("#luckysheet-cols-rows-shift").hide(); + $("#luckysheet-cols-rows-handleincell").hide(); Store.luckysheet_cols_menu_status = true; @@ -4469,6 +4477,7 @@ export default function luckysheetHandler() { $("#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; @@ -4856,6 +4865,7 @@ export default function luckysheetHandler() { $("#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; @@ -5122,6 +5132,7 @@ export default function luckysheetHandler() { $("#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; @@ -6843,6 +6854,90 @@ export default function luckysheetHandler() { let st_index = Store.luckysheet_select_save[0][Store.luckysheetRightHeadClickIs][0]; luckysheetextendtable(Store.luckysheetRightHeadClickIs, st_index, value, "lefttop"); }); + $("#luckysheet-addTopRows").click(function (event) { + $("#luckysheet-rightclick-menu").hide(); + $("#" + Store.container).attr("tabindex", 0).focus(); + + if(Store.luckysheet_select_save.length > 1){ + if(isEditMode()){ + alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + } + else{ + tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + } + + return; + } + + let $t = $(this), value = $t.parent().find("input").val(); + if (!isRealNum(value)) { + if(isEditMode()){ + alert("增加错误, 请输入数字"); + } + else{ + tooltip.info("增加错误, 请输入数字", ""); + } + + return; + } + + value = parseInt(value); + + if (value < 1 || value > 100) { + if(isEditMode()){ + alert("增加错误, 增加范围限制在1-100"); + } + else{ + tooltip.info("增加错误, 增加范围限制在1-100", ""); + } + return; + } + + let st_index = Store.luckysheet_select_save[0].row[0]; + luckysheetextendtable('row', st_index, value, "lefttop"); + }) + $("#luckysheet-addLeftCols").click(function (event) { + $("#luckysheet-rightclick-menu").hide(); + $("#" + Store.container).attr("tabindex", 0).focus(); + + if(Store.luckysheet_select_save.length > 1){ + if(isEditMode()){ + alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + } + else{ + tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + } + + return; + } + + let $t = $(this), value = $t.parent().find("input").val(); + if (!isRealNum(value)) { + if(isEditMode()){ + alert("增加错误, 请输入数字"); + } + else{ + tooltip.info("增加错误, 请输入数字", ""); + } + + return; + } + + value = parseInt(value); + + if (value < 1 || value > 100) { + if(isEditMode()){ + alert("增加错误, 增加范围限制在1-100"); + } + else{ + tooltip.info("增加错误, 增加范围限制在1-100", ""); + } + return; + } + + let st_index = Store.luckysheet_select_save[0].column[0]; + luckysheetextendtable('column', st_index, value, "lefttop"); + }) //向右增加列,向下增加行 $("#luckysheet-add-rightbottom, #luckysheet-add-rightbottom_t").click(function (event) { @@ -6888,6 +6983,92 @@ export default function luckysheetHandler() { let st_index = Store.luckysheet_select_save[0][Store.luckysheetRightHeadClickIs][1]; luckysheetextendtable(Store.luckysheetRightHeadClickIs, st_index, value, "rightbottom"); }); + $("#luckysheet-addBottomRows").click(function (event) { + $("#luckysheet-rightclick-menu").hide(); + $("#" + Store.container).attr("tabindex", 0).focus(); + + if(Store.luckysheet_select_save.length > 1){ + if(isEditMode()){ + alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + } + else{ + tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + } + + return; + } + + let $t = $(this), value = $t.parent().find("input").val(); + if (!isRealNum(value)) { + if(isEditMode()){ + alert("增加错误, 请输入数字"); + } + else{ + tooltip.info("增加错误, 请输入数字", ""); + } + + return; + } + + value = parseInt(value); + + if (value < 1 || value > 100) { + if(isEditMode()){ + alert("增加错误, 增加范围限制在1-100"); + } + else{ + tooltip.info("增加错误, 增加范围限制在1-100", ""); + } + + return; + } + + let st_index = Store.luckysheet_select_save[0].row[1]; + luckysheetextendtable('row', st_index, value, "rightbottom"); + }); + $("#luckysheet-addRightCols").click(function (event) { + $("#luckysheet-rightclick-menu").hide(); + $("#" + Store.container).attr("tabindex", 0).focus(); + + if(Store.luckysheet_select_save.length > 1){ + if(isEditMode()){ + alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + } + else{ + tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + } + + return; + } + + let $t = $(this), value = $t.parent().find("input").val(); + if (!isRealNum(value)) { + if(isEditMode()){ + alert("增加错误, 请输入数字"); + } + else{ + tooltip.info("增加错误, 请输入数字", ""); + } + + return; + } + + value = parseInt(value); + + if (value < 1 || value > 100) { + if(isEditMode()){ + alert("增加错误, 增加范围限制在1-100"); + } + else{ + tooltip.info("增加错误, 增加范围限制在1-100", ""); + } + + return; + } + + let st_index = Store.luckysheet_select_save[0].column[1]; + luckysheetextendtable('column', st_index, value, "rightbottom"); + }); //删除选中行列 $("#luckysheet-del-selected, #luckysheet-del-selected_t").click(function (event) { @@ -6914,9 +7095,150 @@ export default function luckysheetHandler() { return; } - let st_index = Store.luckysheet_select_save[0][Store.luckysheetRightHeadClickIs][0], ed_index = Store.luckysheet_select_save[0][Store.luckysheetRightHeadClickIs][1]; + 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(); + $("#" + Store.container).attr("tabindex", 0).focus(); + + if(Store.luckysheet_select_save.length > 1){ + if(Store.luckysheetRightHeadClickIs == "row"){ + if(isEditMode()){ + alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + } + else{ + tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + } + } + else if(Store.luckysheetRightHeadClickIs == "column"){ + if(isEditMode()){ + alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + } + else{ + tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + } + } + 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(); + $("#" + Store.container).attr("tabindex", 0).focus(); + + if(Store.luckysheet_select_save.length > 1){ + if(Store.luckysheetRightHeadClickIs == "row"){ + if(isEditMode()){ + alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + } + else{ + tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + } + } + else if(Store.luckysheetRightHeadClickIs == "column"){ + if(isEditMode()){ + alert("不能对多重选择区域执行此操作,请选择单个区域,然后再试"); + } + else{ + tooltip.info("不能对多重选择区域执行此操作,请选择单个区域,然后再试", ""); + } + } + 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(); + $("#" + Store.container).attr("tabindex", 0).focus(); + + 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], + c1 = Store.luckysheet_select_save[s].column[0], + c2 = Store.luckysheet_select_save[s].column[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(); + $("#" + Store.container).attr("tabindex", 0).focus(); + + 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], + c1 = Store.luckysheet_select_save[s].column[0], + c2 = Store.luckysheet_select_save[s].column[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-delete-text").click(function(){ diff --git a/src/core.js b/src/core.js index 563a5d2..db3bacd 100644 --- a/src/core.js +++ b/src/core.js @@ -25,6 +25,7 @@ luckysheet.create = function (setting) { Store.defaultrowNum = extendsetting.row; Store.fullscreenmode = extendsetting.fullscreenmode; Store.lang = extendsetting.lang; //language + Store.allowEdit = extendsetting.allowEdit; server.gridKey = extendsetting.gridKey; server.loadUrl = extendsetting.loadUrl; diff --git a/src/css/luckysheet-core.css b/src/css/luckysheet-core.css index e02d0c3..42dcc60 100644 --- a/src/css/luckysheet-core.css +++ b/src/css/luckysheet-core.css @@ -2452,10 +2452,10 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu padding-left: 999999px; } -#luckysheet-copy-btn { +/* #luckysheet-copy-btn { position: absolute; visibility: hidden; -} +} */ .btn { diff --git a/src/global/extend.js b/src/global/extend.js index 621896a..34fcd56 100644 --- a/src/global/extend.js +++ b/src/global/extend.js @@ -459,8 +459,9 @@ function luckysheetextendtable(type, index, value, direction) { newFreezen.freezenverticaldata = luckysheetFreezen.freezenverticaldata; } + let type1; if (type == "row") { - let type1 = "r"; + type1 = "r"; //行高配置变动 if(cfg["rowlen"] != null){ @@ -586,7 +587,7 @@ function luckysheetextendtable(type, index, value, direction) { } } else { - let type1 = "c"; + type1 = "c"; //行高配置变动 if(cfg["columlen"] != null){ diff --git a/src/locale/en.js b/src/locale/en.js index 9a446c2..402a8dd 100644 --- a/src/locale/en.js +++ b/src/locale/en.js @@ -22,6 +22,29 @@ export default { cancelColor: 'Cancel', collapse: 'Collapse', fillColor: 'Fill color', + border: 'Border', + borderStyle: 'Border style', + mergeCell: 'Merge cells', + chooseMergeType: 'Choose merge type', + horizontalAlign: 'Horizontal align', + verticalAlign: 'Vertical align', + alignment: 'Alignment', + textWrap: 'Text wrap', + textWrapMode: 'Text wrap mode', + textRotate: 'Text rotate', + textRotateMode: 'Text rotate mode', + freezeTopRow: 'Freeze top row', + sortAndFilter: 'Sort and filter', + findAndReplace: 'Find and replace', + sum: 'SUM', + autoSum: 'Auto SUM', + moreFunction: 'More function', + conditionalFormat: 'Conditional format', + postil: 'Postil', + pivotTable: 'PivotTable', + chart: 'Chart', + screenshot: 'Screenshot', + splitColumn: 'Split column', }, alternatingColors:{ applyRange: 'Apply to range', diff --git a/src/locale/zh.js b/src/locale/zh.js index 7c161e7..392e524 100644 --- a/src/locale/zh.js +++ b/src/locale/zh.js @@ -11,7 +11,7 @@ export default { font: '字体', fontSize: '字号大小', bold: '粗体 (Ctrl+B)', - Italic: '斜体 (Ctrl+I)', + italic: '斜体 (Ctrl+I)', strikethrough: '删除线 (Alt+Shift+5)', textColor: '文本颜色', chooseColor: '颜色选择', @@ -21,6 +21,29 @@ export default { confirmColor: '确定颜色', collapse: '收起', fillColor: '单元格颜色', + border: '边框', + borderStyle: '边框类型', + mergeCell: '合并单元格', + chooseMergeType: '选择合并类型', + horizontalAlign: '水平对齐', + verticalAlign: '垂直对齐', + alignment: '对齐方式', + textWrap: '文本换行', + textWrapMode: '换行方式', + textRotate: '文本旋转', + textRotateMode: '旋转方式', + freezeTopRow: '冻结首行', + sortAndFilter: '排序和筛选', + findAndReplace: '查找替换', + sum: '求和', + autoSum: '自动求和', + moreFunction: '更多函数', + conditionalFormat: '条件格式', + postil: '批注', + pivotTable: '数据透视表', + chart: '图表', + screenshot: '截图', + splitColumn: '分列', }, alternatingColors:{ applyRange: '应用范围',