Browse Source

feat(hide column): hide column

hide column
master
wpxp123456 5 years ago
parent
commit
9f05959d4d
  1. 10
      src/controllers/constant.js
  2. 20
      src/controllers/controlHistory.js
  3. 88
      src/controllers/rowColumnOperation.js
  4. 16
      src/global/draw.js
  5. 29
      src/global/rhchInit.js
  6. 2
      src/locale/en.js

10
src/controllers/constant.js

@ -395,6 +395,16 @@ function rightclickHTML(){
${rightclick.showHide}${rightclick.row} ${rightclick.showHide}${rightclick.row}
</div> </div>
</div> </div>
<div id="luckysheet-hidCols" class="luckysheet-cols-menuitem luckysheet-mousedown-cancel">
<div class="luckysheet-cols-menuitem-content luckysheet-mousedown-cancel">
${rightclick.hideSelected}${rightclick.column}
</div>
</div>
<div id="luckysheet-showHidCols" class="luckysheet-cols-menuitem luckysheet-mousedown-cancel">
<div class="luckysheet-cols-menuitem-content luckysheet-mousedown-cancel">
${rightclick.showHide}${rightclick.column}
</div>
</div>
</div> </div>
<div id="luckysheetCellsHandleDel_sub" class="luckysheet-cols-menu luckysheet-rightgclick-menu luckysheet-rightgclick-menu-sub luckysheet-mousedown-cancel"> <div id="luckysheetCellsHandleDel_sub" class="luckysheet-cols-menu luckysheet-rightgclick-menu luckysheet-rightgclick-menu-sub luckysheet-mousedown-cancel">
<div id="luckysheet-delCellsMoveLeft" class="luckysheet-cols-menuitem luckysheet-mousedown-cancel"> <div id="luckysheet-delCellsMoveLeft" class="luckysheet-cols-menuitem luckysheet-mousedown-cancel">

20
src/controllers/controlHistory.js

@ -154,6 +154,16 @@ const controlHistory = {
//行高、列宽 刷新 //行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length); jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
} }
else if (ctr.type == "showHidCols") { // 隐藏、显示列 撤销操作
//config
Store.config = ctr.config;
Store.luckysheetfile[getSheetIndex(ctr.sheetIndex)].config = ctr.config;
server.saveParam("cg", ctr.sheetIndex, ctr.config["colhidden"], { "k": "colhidden" });
//行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
}
else if (ctr.type == "datachangeAll") { else if (ctr.type == "datachangeAll") {
formula.execFunctionGroup(); formula.execFunctionGroup();
jfrefreshgridall(ctr.data[0].length, ctr.data.length, ctr.data, null, ctr.range, "datachangeAll", ctr.ctrlValue); jfrefreshgridall(ctr.data[0].length, ctr.data.length, ctr.data, null, ctr.range, "datachangeAll", ctr.ctrlValue);
@ -405,6 +415,16 @@ const controlHistory = {
//行高、列宽 刷新 //行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length); jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
} }
else if (ctr.type == "showHidCols") { // 隐藏、显示列 重做操作
//config
Store.config = ctr.curconfig;
Store.luckysheetfile[getSheetIndex(ctr.sheetIndex)].config = ctr.curconfig;
server.saveParam("cg", ctr.sheetIndex, ctr.curconfig["colhidden"], { "k": "colhidden" });
//行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
}
else if (ctr.type == "datachangeAll") { else if (ctr.type == "datachangeAll") {
formula.execFunctionGroup(); formula.execFunctionGroup();
jfrefreshgridall(ctr.curdata[0].length, ctr.curdata.length, ctr.curdata, null, ctr.currange, "datachangeAll", ctr.ctrlValue); jfrefreshgridall(ctr.curdata[0].length, ctr.curdata.length, ctr.curdata, null, ctr.currange, "datachangeAll", ctr.ctrlValue);

88
src/controllers/rowColumnOperation.js

@ -1295,9 +1295,7 @@ export function rowColumnOperationInitial(){
for(let s = 0; s < Store.luckysheet_select_save.length; s++){ for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let r1 = Store.luckysheet_select_save[s].row[0], let r1 = Store.luckysheet_select_save[s].row[0],
r2 = Store.luckysheet_select_save[s].row[1], 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++){ for(let r = r1; r <= r2; r++){
cfg["rowhidden"][r] = 0; cfg["rowhidden"][r] = 0;
@ -1336,9 +1334,7 @@ export function rowColumnOperationInitial(){
for(let s = 0; s < Store.luckysheet_select_save.length; s++){ for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let r1 = Store.luckysheet_select_save[s].row[0], let r1 = Store.luckysheet_select_save[s].row[0],
r2 = Store.luckysheet_select_save[s].row[1], 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++){ for(let r = r1; r <= r2; r++){
delete cfg["rowhidden"][r]; delete cfg["rowhidden"][r];
@ -1367,6 +1363,86 @@ export function rowColumnOperationInitial(){
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length); jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
}) })
//隐藏、显示列
$("#luckysheet-hidCols").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
let cfg = $.extend(true, {}, Store.config);
if(cfg["colhidden"] == null){
cfg["colhidden"] = {};
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let c1 = Store.luckysheet_select_save[s].column[0],
c2 = Store.luckysheet_select_save[s].column[1];
for(let c = c1; c <= c2; c++){
cfg["colhidden"][c] = 0;
}
}
//保存撤销
if(Store.clearjfundo){
let redo = {};
redo["type"] = "showHidCols";
redo["sheetIndex"] = Store.currentSheetIndex;
redo["config"] = $.extend(true, {}, Store.config);
redo["curconfig"] = cfg;
Store.jfundo = [];
Store.jfredo.push(redo);
}
//config
Store.config = cfg;
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].config = Store.config;
server.saveParam("cg", Store.currentSheetIndex, cfg["colhidden"], { "k": "colhidden" });
//行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
})
$("#luckysheet-showHidCols").click(function (event) {
$("#luckysheet-rightclick-menu").hide();
luckysheetContainerFocus();
let cfg = $.extend(true, {}, Store.config);
if(cfg["colhidden"] == null){
return;
}
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let c1 = Store.luckysheet_select_save[s].column[0],
c2 = Store.luckysheet_select_save[s].column[1];
for(let c = c1; c <= c2; c++){
delete cfg["colhidden"][c];
}
}
//保存撤销
if(Store.clearjfundo){
let redo = {};
redo["type"] = "showHidCols";
redo["sheetIndex"] = Store.currentSheetIndex;
redo["config"] = $.extend(true, {}, Store.config);
redo["curconfig"] = cfg;
Store.jfundo = [];
Store.jfredo.push(redo);
}
//config
Store.config = cfg;
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)].config = Store.config;
server.saveParam("cg", Store.currentSheetIndex, cfg["colhidden"], { "k": "colhidden" });
//行高、列宽 刷新
jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length);
})
//删除单元格(左移、上移) //删除单元格(左移、上移)
$("#luckysheet-delCellsMoveLeft").click(function (event) { $("#luckysheet-delCellsMoveLeft").click(function (event) {
$("#luckysheet-rightclick-menu").hide(); $("#luckysheet-rightclick-menu").hide();

16
src/global/draw.js

@ -224,6 +224,10 @@ function luckysheetDrawgridColumnTitle(scrollWidth, drawWidth, offsetLeft) {
// break; // break;
// } // }
if (Store.config["colhidden"] != null && Store.config["colhidden"][c] != null) {
}
else {
luckysheetTableContent.fillStyle = "#ffffff"; luckysheetTableContent.fillStyle = "#ffffff";
luckysheetTableContent.fillRect( luckysheetTableContent.fillRect(
(start_c + offsetLeft - 1) , (start_c + offsetLeft - 1) ,
@ -245,6 +249,7 @@ function luckysheetDrawgridColumnTitle(scrollWidth, drawWidth, offsetLeft) {
luckysheetTableContent.fillText(abc, horizonAlignPos/Store.zoomRatio, verticalAlignPos/Store.zoomRatio); luckysheetTableContent.fillText(abc, horizonAlignPos/Store.zoomRatio, verticalAlignPos/Store.zoomRatio);
luckysheetTableContent.restore();//restore scale after draw text luckysheetTableContent.restore();//restore scale after draw text
}
//列标题栏竖线 vertical //列标题栏竖线 vertical
luckysheetTableContent.beginPath(); luckysheetTableContent.beginPath();
@ -466,6 +471,10 @@ function luckysheetDrawMain(scrollWidth, scrollHeight, drawWidth, drawHeight, of
let end_r = Store.visibledatarow[r] - scrollHeight; let end_r = Store.visibledatarow[r] - scrollHeight;
if (Store.config["rowhidden"] != null && Store.config["rowhidden"][r] != null) {
continue;
}
for (let c = dataset_col_st; c <= dataset_col_ed; c++) { for (let c = dataset_col_st; c <= dataset_col_ed; c++) {
let start_c; let start_c;
if (c == 0) { if (c == 0) {
@ -477,10 +486,10 @@ function luckysheetDrawMain(scrollWidth, scrollHeight, drawWidth, drawHeight, of
let end_c = Store.visibledatacolumn[c] - scrollWidth; let end_c = Store.visibledatacolumn[c] - scrollWidth;
if (Store.config["rowhidden"] != null && Store.config["rowhidden"][r] != null) { if (Store.config["colhidden"] != null && Store.config["colhidden"][c] != null) {
continue
} }
else {
let firstcolumnlen = Store.defaultcollen; let firstcolumnlen = Store.defaultcollen;
if (Store.config["columnlen"] != null && Store.config["columnlen"][c] != null) { if (Store.config["columnlen"] != null && Store.config["columnlen"][c] != null) {
firstcolumnlen = Store.config["columnlen"][c]; firstcolumnlen = Store.config["columnlen"][c];
@ -550,7 +559,6 @@ function luckysheetDrawMain(scrollWidth, scrollHeight, drawWidth, drawHeight, of
}; };
} }
} }
}
//动态数组公式计算 //动态数组公式计算
let dynamicArray_compute = dynamicArrayCompute(Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)]["dynamicArray"]); let dynamicArray_compute = dynamicArrayCompute(Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)]["dynamicArray"]);

29
src/global/rhchInit.js

@ -8,21 +8,19 @@ export default function rhchInit(rowheight, colwidth) {
Store.visibledatarow = []; Store.visibledatarow = [];
Store.rh_height = 0; Store.rh_height = 0;
for (let i = 0; i < rowheight; i++) { for (let r = 0; r < rowheight; r++) {
let rowlen = Store.defaultrowlen; let rowlen = Store.defaultrowlen;
if (Store.config["rowlen"] != null && Store.config["rowlen"][i] != null) { if (Store.config["rowlen"] != null && Store.config["rowlen"][r] != null) {
rowlen = Store.config["rowlen"][i]; rowlen = Store.config["rowlen"][r];
} }
if (Store.config["rowhidden"] != null && Store.config["rowhidden"][i] != null) { if (Store.config["rowhidden"] != null && Store.config["rowhidden"][r] != null) {
rowlen = Store.config["rowhidden"][i];
Store.visibledatarow.push(Store.rh_height); Store.visibledatarow.push(Store.rh_height);
continue; continue;
} }
else {
Store.rh_height += Math.round((rowlen + 1)*Store.zoomRatio); Store.rh_height += Math.round((rowlen + 1) * Store.zoomRatio);
}
Store.visibledatarow.push(Store.rh_height); //行的临时长度分布 Store.visibledatarow.push(Store.rh_height); //行的临时长度分布
} }
@ -37,14 +35,14 @@ export default function rhchInit(rowheight, colwidth) {
let maxColumnlen = 120; let maxColumnlen = 120;
for (let i = 0; i < colwidth; i++) { for (let c = 0; c < colwidth; c++) {
let firstcolumnlen = Store.defaultcollen; let firstcolumnlen = Store.defaultcollen;
if (Store.config["columnlen"] != null && Store.config["columnlen"][i] != null) { if (Store.config["columnlen"] != null && Store.config["columnlen"][c] != null) {
firstcolumnlen = Store.config["columnlen"][i]; firstcolumnlen = Store.config["columnlen"][c];
} }
else { else {
if (Store.flowdata[0] != null && Store.flowdata[0][i] != null) { if (Store.flowdata[0] != null && Store.flowdata[0][c] != null) {
if (firstcolumnlen > 300) { if (firstcolumnlen > 300) {
firstcolumnlen = 300; firstcolumnlen = 300;
} }
@ -57,11 +55,16 @@ export default function rhchInit(rowheight, colwidth) {
Store.config["columnlen"] = {}; Store.config["columnlen"] = {};
} }
Store.config["columnlen"][i] = firstcolumnlen; Store.config["columnlen"][c] = firstcolumnlen;
} }
} }
} }
if(Store.config["colhidden"] != null && Store.config["colhidden"][c] != null){
Store.visibledatacolumn.push(Store.ch_width);
continue;
}
Store.ch_width += Math.round((firstcolumnlen + 1)*Store.zoomRatio); Store.ch_width += Math.round((firstcolumnlen + 1)*Store.zoomRatio);
Store.visibledatacolumn.push(Store.ch_width);//列的临时长度分布 Store.visibledatacolumn.push(Store.ch_width);//列的临时长度分布

2
src/locale/en.js

@ -496,7 +496,7 @@ export default {
deleteSelected: 'Delete selected ', deleteSelected: 'Delete selected ',
hide: 'Hide', hide: 'Hide',
hideSelected: 'Hide selected ', hideSelected: 'Hide selected ',
showHide: 'Show hide', showHide: 'Show hide ',
to: 'Towards', to: 'Towards',
left: 'Left', left: 'Left',
right: 'Right', right: 'Right',

Loading…
Cancel
Save