Browse Source

Merge pull request #105 from javahuang/master

feat(row and column width): batch change the height and width of the …
master
mengshukeji 5 years ago
committed by GitHub
parent
commit
cdf3548088
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      src/controllers/controlHistory.js
  2. 45
      src/controllers/handler.js
  3. 12
      src/controllers/rowColumnOperation.js
  4. 28
      src/global/api.js

12
src/controllers/controlHistory.js

@ -23,6 +23,7 @@ import {
} from '../global/refresh';
import { getSheetIndex } from '../methods/get';
import Store from '../store';
import { selectHightlightShow } from './select';
function formulaHistoryHanddler(ctr, type="redo"){
if(ctr==null){
@ -83,7 +84,6 @@ const controlHistory = {
"dataVerification": ctr.dataVerification,
"dynamicArray": ctr.dynamicArray
}
jfrefreshgrid(ctr.data, ctr.range, allParam);
// formula.execFunctionGroup(null, null, null, null, ctr.data);//取之前的数据
}
@ -421,6 +421,10 @@ const controlHistory = {
}
cleargridelement(e);
if (ctr.range) {
Store.luckysheet_select_save = ctr.range;
selectHightlightShow();
}
Store.clearjfundo = true;
},
undo: function () {
@ -726,7 +730,11 @@ const controlHistory = {
zoomNumberDomBind();
zoomRefreshView();
}
if (ctr.range) {
Store.luckysheet_select_save = ctr.range;
selectHightlightShow();
}
Store.clearjfundo = true;
}
};

45
src/controllers/handler.js

@ -3603,7 +3603,26 @@ export default function luckysheetHandler() {
cfg["customHeight"][Store.luckysheet_rows_change_size_start[1]] = 1;
cfg["rowlen"][Store.luckysheet_rows_change_size_start[1]] = Math.ceil(size/Store.zoomRatio);
const changeRowIndex = Store.luckysheet_rows_change_size_start[1];
let changeRowSelected = false;
if(Store["luckysheet_select_save"].length > 0) {
Store["luckysheet_select_save"].filter(select => select.row_select).some((select) => {
if(changeRowIndex >= select.row[0] && changeRowIndex <= select.row[1]) {
changeRowSelected = true;
}
return changeRowSelected;
});
}
if(changeRowSelected) {
Store["luckysheet_select_save"].filter(select => select.row_select).forEach(select => {
for(let r = select.row[0]; r <= select.row[1]; r++) {
cfg["rowlen"][r] = Math.ceil(size/Store.zoomRatio);
}
})
}
else {
cfg["rowlen"][Store.luckysheet_rows_change_size_start[1]] = Math.ceil(size/Store.zoomRatio);
}
let images = imageCtrl.moveChangeSize("row", Store.luckysheet_rows_change_size_start[1], size);
@ -3685,7 +3704,27 @@ export default function luckysheetHandler() {
cfg["customWidth"][Store.luckysheet_cols_change_size_start[1]] = 1;
cfg["columnlen"][Store.luckysheet_cols_change_size_start[1]] = Math.ceil(size/Store.zoomRatio);
const changeColumnIndex = Store.luckysheet_cols_change_size_start[1];
let changeColumnSelected = false;
if(Store["luckysheet_select_save"].length > 0) {
Store["luckysheet_select_save"].filter(select => select.column_select).some((select) => {
if(changeColumnIndex >= select.column[0] && changeColumnIndex <= select.column[1]) {
changeColumnSelected = true;
}
return changeColumnSelected;
});
}
if(changeColumnSelected) {
Store["luckysheet_select_save"].filter(select => select.column_select).forEach(select => {
for(let r = select.column[0]; r <= select.column[1]; r++) {
cfg["columnlen"][r] = Math.ceil(size/Store.zoomRatio);
}
})
}
else {
cfg["columnlen"][Store.luckysheet_cols_change_size_start[1]] = Math.ceil(size/Store.zoomRatio);
}
let images = imageCtrl.moveChangeSize("column", Store.luckysheet_cols_change_size_start[1], size);
@ -4930,7 +4969,7 @@ export default function luckysheetHandler() {
$("#luckysheet-wa-functionbox-confirm").click();
Store.luckysheet_select_status = false;
Store.luckysheet_select_save = [{ "row": [0, Store.flowdata.length - 1], "column": [0, Store.flowdata[0].length - 1], "row_focus": 0, "column_focus": 0 }];
Store.luckysheet_select_save = [{ "row": [0, Store.flowdata.length - 1], "column": [0, Store.flowdata[0].length - 1], "row_focus": 0, "column_focus": 0, row_select: true, column_select: true }];
selectHightlightShow();
clearTimeout(Store.countfuncTimeout);

12
src/controllers/rowColumnOperation.js

@ -318,7 +318,8 @@ export function rowColumnOperationInitial(){
"row": rowseleted,
"column": [0, col_index],
"row_focus": row_index,
"column_focus": 0
"column_focus": 0,
"row_select": true
});
}
else{
@ -335,7 +336,8 @@ export function rowColumnOperationInitial(){
"row": rowseleted,
"column": [0, col_index],
"row_focus": row_index,
"column_focus": 0
"column_focus": 0,
"row_select": true
});
}
@ -730,7 +732,8 @@ export function rowColumnOperationInitial(){
"row": [0, row_index],
"column": columnseleted,
"row_focus": 0,
"column_focus": col_index
"column_focus": col_index,
"column_select": true
});
}
else{
@ -747,7 +750,8 @@ export function rowColumnOperationInitial(){
"row": [0, row_index],
"column": columnseleted,
"row_focus": 0,
"column_focus": col_index
"column_focus": col_index,
"column_select": true
});
}

28
src/global/api.js

@ -323,10 +323,32 @@ export function setCellFormat(row, column, attr, value, options = {}) {
// 特殊格式
if (attr == 'ct' && (!value || !value.hasOwnProperty('fa') || !value.hasOwnProperty('t'))) {
return new TypeError('While set attribute \'ct\' to cell, the value must have property \'fa\' and \'t\'')
cellData.m = update(value.fa, cellData.v)
}
cellData[attr] = value;
if (attr == 'bd') {
let cfg = $.extend(true, {}, Store.config);
if(cfg["borderInfo"] == null){
cfg["borderInfo"] = [];
}
let borderInfo = {
rangeType: "range",
borderType: "border-all",
color: "#000",
style: "1",
range: [{
column: [column, column],
row: [row, row]
}],
...value,
}
cfg["borderInfo"].push(borderInfo);
Store.config = cfg;
} else {
cellData[attr] = value;
}
// refresh
jfrefreshgrid(targetSheetData, {
row: [row],
@ -901,6 +923,8 @@ export function insertRowOrColumn(type, index = 0, options = {}) {
success
} = {...options}
let _locale = locale();
let locale_info = _locale.info;
if (!isRealNum(number)) {
if(isEditMode()){
alert(locale_info.tipInputNumber);

Loading…
Cancel
Save