Browse Source

fix(bug): history bug

master
break-wave 5 years ago
parent
commit
973eec8b71
  1. 71
      src/global/api.js

71
src/global/api.js

@ -344,7 +344,7 @@ export function setCellFormat(row, column, attr, value, options = {}) {
if(targetSheetData.length == 0){ if(targetSheetData.length == 0){
targetSheetData = sheetmanage.buildGridData(file); targetSheetData = sheetmanage.buildGridData(file);
} }
let cellData = targetSheetData[row][column] || {}; let cellData = targetSheetData[row][column] || {};
let cfg = $.extend(true, {}, file.config); let cfg = $.extend(true, {}, file.config);
@ -484,10 +484,33 @@ export function find(content, options = {}) {
*/ */
export function replace(content, replaceContent, options = {}) { export function replace(content, replaceContent, options = {}) {
let matchCells = find(content, options) let matchCells = find(content, options)
let curSheetOrder = getSheetIndex(Store.currentSheetIndex);
let {
order = curSheetOrder,
} = {...options}
let file = Store.luckysheetfile[order];
if(file == null){
return tooltip.info("The order parameter is invalid.", "");
}
let sheetData = $.extend(true, [], file.data);
matchCells.forEach(cell => { matchCells.forEach(cell => {
cell.m = replaceContent; cell.m = replaceContent;
setCellValue(cell.row, cell.column, replaceContent, options); setCellValue(cell.row, cell.column, replaceContent, {order: order, isRefresh: false});
}) })
let fileData = $.extend(true, [], file.data);
file.data.length = 0;
file.data.push(...sheetData);
if(file.index == Store.currentSheetIndex){
jfrefreshgrid(fileData, undefined, undefined, true, false);
}
luckysheetrefreshgrid();
if (options.success && typeof options.success === 'function') { if (options.success && typeof options.success === 'function') {
options.success(matchCells) options.success(matchCells)
} }
@ -509,14 +532,14 @@ export function exitEditMode(options = {}){
} }
else { else {
formula.updatecell(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1]); formula.updatecell(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1]);
Store.luckysheet_select_save = [{ Store.luckysheet_select_save = [{
"row": [Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[0]], "row": [Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[0]],
"column": [Store.luckysheetCellUpdate[1], Store.luckysheetCellUpdate[1]], "column": [Store.luckysheetCellUpdate[1], Store.luckysheetCellUpdate[1]],
"row_focus": Store.luckysheetCellUpdate[0], "row_focus": Store.luckysheetCellUpdate[0],
"column_focus": Store.luckysheetCellUpdate[1] "column_focus": Store.luckysheetCellUpdate[1]
}]; }];
} }
//若有参数弹出框,隐藏 //若有参数弹出框,隐藏
if($("#luckysheet-search-formula-parm").is(":visible")){ if($("#luckysheet-search-formula-parm").is(":visible")){
$("#luckysheet-search-formula-parm").hide(); $("#luckysheet-search-formula-parm").hide();
@ -2554,6 +2577,7 @@ export function setRangeShow(range, options = {}) {
* @param {Array[Array]} data 要赋值的单元格二维数组数据每个单元格的值可以为字符串或数字或为符合Luckysheet格式的对象 * @param {Array[Array]} data 要赋值的单元格二维数组数据每个单元格的值可以为字符串或数字或为符合Luckysheet格式的对象
* @param {Object} options 可选参数 * @param {Object} options 可选参数
* @param {Object | String} options.range 选区范围,支持选区的格式为"A1:B2""sheetName!A1:B2"或者{row:[0,1],column:[0,1]}只能为单个选区默认为当前选区 * @param {Object | String} options.range 选区范围,支持选区的格式为"A1:B2""sheetName!A1:B2"或者{row:[0,1],column:[0,1]}只能为单个选区默认为当前选区
* @param {Number} options.isRefresh 是否刷新界面默认为true
* @param {Number} options.order 工作表索引默认值为当前工作表索引 * @param {Number} options.order 工作表索引默认值为当前工作表索引
* @param {Function} options.success 操作结束的回调函数 * @param {Function} options.success 操作结束的回调函数
*/ */
@ -2562,6 +2586,7 @@ export function setRangeValue(data, options = {}) {
let curRange = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1]; let curRange = Store.luckysheet_select_save[Store.luckysheet_select_save.length - 1];
let { let {
range = curRange, range = curRange,
isRefresh = true,
order = curSheetOrder, order = curSheetOrder,
success success
} = {...options} } = {...options}
@ -2585,14 +2610,36 @@ export function setRangeValue(data, options = {}) {
return tooltip.info('The data to be set does not match the selection.', '') return tooltip.info('The data to be set does not match the selection.', '')
} }
let file = Store.luckysheetfile[order];
if(file == null){
return tooltip.info("The order parameter is invalid.", "");
}
let sheetData = $.extend(true, [], file.data);
for (let i = 0; i < rowCount; i++) { for (let i = 0; i < rowCount; i++) {
for (let j = 0; j < columnCount; j++) { for (let j = 0; j < columnCount; j++) {
let row = range.row[0] + i, let row = range.row[0] + i,
column = range.column[0] + j; column = range.column[0] + j;
setCellValue(row, column, data[i][j], {order: order}) setCellValue(row, column, data[i][j], {order: order, isRefresh: false})
} }
} }
let fileData = $.extend(true, [], file.data);
file.data.length = 0;
file.data.push(...sheetData);
if(file.index == Store.currentSheetIndex){
jfrefreshgrid(fileData, [{
row: range.row,
column: range.column,
}], undefined, true, false);
}
if(isRefresh) {
luckysheetrefreshgrid();
}
if (success && typeof success === 'function') { if (success && typeof success === 'function') {
success(); success();
} }
@ -6029,7 +6076,7 @@ export function insertImage(src, options = {}){
visibledatarow.push(rh_height); visibledatarow.push(rh_height);
continue; continue;
} }
rh_height += Math.round((rowlen + 1) * zoomRatio); rh_height += Math.round((rowlen + 1) * zoomRatio);
visibledatarow.push(rh_height); //行的临时长度分布 visibledatarow.push(rh_height); //行的临时长度分布
@ -6180,7 +6227,7 @@ export function deleteImage(options = {}){
$("#luckysheet-modal-dialog-cropping").hide(); $("#luckysheet-modal-dialog-cropping").hide();
$("#luckysheet-modal-dialog-slider-imageCtrl").hide(); $("#luckysheet-modal-dialog-slider-imageCtrl").hide();
} }
imageCtrl.images = images; imageCtrl.images = images;
imageCtrl.allImagesShow(); imageCtrl.allImagesShow();
imageCtrl.init(); imageCtrl.init();
@ -6309,7 +6356,7 @@ export function changLang(lang = 'zh'){
/** /**
* 关闭websocket连接 * 关闭websocket连接
*/ */
export function closeWebsocket(){ export function closeWebsocket(){
if(server.websocket == null){ if(server.websocket == null){

Loading…
Cancel
Save