Browse Source

fix(bug): bug

bug
master
wpxp123456 5 years ago
parent
commit
0cb1ec23c2
  1. 277
      src/controllers/freezen.js
  2. 10
      src/controllers/searchReplace.js
  3. 150
      src/global/api.js
  4. 1
      src/locale/en.js
  5. 1
      src/locale/zh.js

277
src/controllers/freezen.js

@ -1563,186 +1563,183 @@ const luckysheetFreezen = {
Store.luckysheetfile[order]["frozen"] = frozen[operate];
},
frozenTofreezen: function() {
// get frozen type
const frozen = Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)]["frozen"];
let file = Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)];
const frozen = file["frozen"];
if(frozen == null){
return;
}
let freezen = null;
// transform to freezen
if(frozen.type === 'row'){
let scrollTop = $("#luckysheet-cell-main").scrollTop();
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
if(row_st == -1){
row_st = 0;
}
let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight;
let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top];
freezen = {
horizontal:{
freezenhorizontaldata: freezenhorizontaldata,
top: top
}
}
}
else if(frozen.type === 'column'){
let scrollLeft = $("#luckysheet-cell-main").scrollLeft();
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
if(col_st == -1){
col_st = 0;
}
let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth;
let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left];
if(file["freezen"] == null){
let freezen = null;
freezen = {
vertical:{
freezenverticaldata: freezenverticaldata,
left: left
// transform to freezen
if(frozen.type === 'row'){
let scrollTop = 0;
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
if(row_st == -1){
row_st = 0;
}
let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight;
let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top];
freezen = {
horizontal:{
freezenhorizontaldata: freezenhorizontaldata,
top: top
}
}
}
}
else if(frozen.type === 'both'){
let scrollTop = $("#luckysheet-cell-main").scrollTop();
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
if(row_st == -1){
row_st = 0;
}
let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight;
let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top];
freezen = {
}
let scrollLeft = $("#luckysheet-cell-main").scrollLeft();
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
if(col_st == -1){
col_st = 0;
}
let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth;
let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left];
freezen = {
horizontal:{
freezenhorizontaldata: freezenhorizontaldata,
top: top
},
vertical:{
freezenverticaldata: freezenverticaldata,
left: left
else if(frozen.type === 'column'){
let scrollLeft = 0;
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
if(col_st == -1){
col_st = 0;
}
let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth;
let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left];
freezen = {
vertical:{
freezenverticaldata: freezenverticaldata,
left: left
}
}
}
else if(frozen.type === 'both'){
let scrollTop = 0;
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
if(row_st == -1){
row_st = 0;
}
let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight;
let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top];
let scrollLeft = 0;
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
if(col_st == -1){
col_st = 0;
}
let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth;
let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left];
freezen = {
horizontal:{
freezenhorizontaldata: freezenhorizontaldata,
top: top
},
vertical:{
freezenverticaldata: freezenverticaldata,
left: left
}
}
}
else if(frozen.type === 'rangeRow'){
let scrollTop = $("#luckysheet-cell-main").scrollTop();
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
let row_focus = frozen.range["row_focus"];
if(row_focus > row_st){
row_st = row_focus;
}
if(row_st == -1){
row_st = 0;
}
else if(frozen.type === 'rangeRow'){
let scrollTop = 0;
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight;
let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top];
let row_focus = frozen.range["row_focus"];
freezen = {
horizontal:{
freezenhorizontaldata: freezenhorizontaldata,
top: top
if(row_focus > row_st){
row_st = row_focus;
}
if(row_st == -1){
row_st = 0;
}
}
}
else if(frozen.type === 'rangeColumn'){
let scrollLeft = $("#luckysheet-cell-main").scrollLeft();
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight;
let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top];
let column_focus = frozen.range["column_focus"];
freezen = {
horizontal:{
freezenhorizontaldata: freezenhorizontaldata,
top: top
}
}
if(column_focus > col_st){
col_st = column_focus;
}
else if(frozen.type === 'rangeColumn'){
let scrollLeft = 0;
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
if(col_st == -1){
col_st = 0;
}
let column_focus = frozen.range["column_focus"];
let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth;
let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left];
if(column_focus > col_st){
col_st = column_focus;
}
freezen = {
vertical:{
freezenverticaldata: freezenverticaldata,
left: left
if(col_st == -1){
col_st = 0;
}
}
}
else if(frozen.type === 'rangeBoth'){
let scrollTop = $("#luckysheet-cell-main").scrollTop();
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth;
let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left];
let row_focus = frozen.range["row_focus"];
freezen = {
vertical:{
freezenverticaldata: freezenverticaldata,
left: left
}
}
if(row_focus > row_st){
row_st = row_focus;
}
if(row_st == -1){
row_st = 0;
}
else if(frozen.type === 'rangeBoth'){
let scrollTop = 0;
let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop);
let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight;
let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top];
let row_focus = frozen.range["row_focus"];
let scrollLeft = $("#luckysheet-cell-main").scrollLeft();
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
if(row_focus > row_st){
row_st = row_focus;
}
if(row_st == -1){
row_st = 0;
}
let column_focus = frozen.range["column_focus"];
let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight;
let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top];
if(column_focus > col_st){
col_st = column_focus;
}
let scrollLeft = 0;
let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft);
if(col_st == -1){
col_st = 0;
}
let column_focus = frozen.range["column_focus"];
if(column_focus > col_st){
col_st = column_focus;
}
let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth;
let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left];
if(col_st == -1){
col_st = 0;
}
let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth;
let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left];
freezen = {
horizontal:{
freezenhorizontaldata: freezenhorizontaldata,
top: top
},
vertical:{
freezenverticaldata: freezenverticaldata,
left: left
freezen = {
horizontal:{
freezenhorizontaldata: freezenhorizontaldata,
top: top
},
vertical:{
freezenverticaldata: freezenverticaldata,
left: left
}
}
}
}
else if(frozen.type === 'cancel'){
freezen = {
horizontal: null,
vertical: null
else if(frozen.type === 'cancel'){
freezen = {
horizontal: null,
vertical: null
}
}
}
Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)]["freezen"] = freezen;
file["freezen"] = freezen;
}
}
}

10
src/controllers/searchReplace.js

@ -476,6 +476,11 @@ const luckysheetSearchReplace = {
const _locale = locale();
const locale_findAndReplace = _locale.findAndReplace;
if(!Store.allowEdit){
tooltip.info(locale_findAndReplace.modeTip, "");
return;
}
let searchText = $("#luckysheet-search-replace #searchInput input").val();
if(searchText == "" || searchText == null){
if(isEditMode()){
@ -628,6 +633,11 @@ const luckysheetSearchReplace = {
const _locale = locale();
const locale_findAndReplace = _locale.findAndReplace;
if(!Store.allowEdit){
tooltip.info(locale_findAndReplace.modeTip, "");
return;
}
let searchText = $("#luckysheet-search-replace #searchInput input").val();
if(searchText == "" || searchText == null){
if(isEditMode()){

150
src/global/api.js

@ -1,32 +1,36 @@
import Store from "../store";
import { getObjType, chatatABC } from "../utils/util";
import formula from './formula';
import { replaceHtml, getObjType, chatatABC } from "../utils/util";
import { getSheetIndex, getluckysheet_select_save } from "../methods/get";
import { isRealNull, valueIsError, isRealNum, isEditMode, hasPartMC } from "./validate";
import { genarate, update } from './format';
import server from "../controllers/server";
import luckysheetConfigsetting from "../controllers/luckysheetConfigsetting";
import { setAccuracy } from "./setdata";
import func_methods from "./func_methods";
import luckysheetFreezen from "../controllers/freezen";
import { luckysheetrefreshgrid, jfrefreshgrid, jfrefreshgrid_rhcw } from "./refresh";
import locale from "../locale/locale";
import formula from './formula';
import func_methods from "./func_methods";
import tooltip from "./tooltip";
import { luckysheet_searcharray } from "../controllers/sheetSearch";
import { selectIsOverlap } from '../controllers/select';
import { luckysheetDeleteCell, luckysheetextendtable, luckysheetdeletetable } from "./extend";
import { getdatabyselection, getcellvalue } from "./getdata";
import selection from "../controllers/selection";
import json from "./json";
import { orderbydata } from "./sort";
import editor from "./editor";
import { rowlenByRange } from "./getRowlen";
import luckysheetformula from './formula';
import cleargridelement from './cleargridelement';
import { genarate, update } from './format';
import { setAccuracy } from "./setdata";
import { orderbydata } from "./sort";
import { rowlenByRange } from "./getRowlen";
import { getdatabyselection, getcellvalue } from "./getdata";
import { luckysheetrefreshgrid, jfrefreshgrid, jfrefreshgrid_rhcw } from "./refresh";
import { luckysheetDeleteCell, luckysheetextendtable, luckysheetdeletetable } from "./extend";
import { isRealNull, valueIsError, isRealNum, isEditMode, hasPartMC } from "./validate";
import server from "../controllers/server";
import selection from "../controllers/selection";
import luckysheetConfigsetting from "../controllers/luckysheetConfigsetting";
import luckysheetFreezen from "../controllers/freezen";
import luckysheetsizeauto from '../controllers/resize';
import sheetmanage from '../controllers/sheetmanage';
import { luckysheet_searcharray } from "../controllers/sheetSearch";
import { selectIsOverlap } from '../controllers/select';
import { sheetHTML } from '../controllers/constant';
const IDCardReg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i;
/**
* 获取单元格的值
* @param {Number} row 单元格所在行数从0开始的整数0表示第一行
@ -2691,6 +2695,116 @@ export function matrixCalculation(type, number, options = {}) {
}
/**
* 新增一个sheet返回新增的工作表对象
* @param {Object} options 可选参数
* @param {Object} options.sheetObject 新增的工作表的数据默认值为空对象
* @param {Number} options.order 新增的工作表索引默认值为最后一个索引位置
* @param {Function} options.success 操作结束的回调函数
*/
export function setSheetAdd(options = {}) {
let lastOrder = Store.luckysheetfile.length - 1;
let {
sheetObject = {},
order = lastOrder,
success
} = {...options}
if(!isRealNum(order)){
return tooltip.info("Parameter is not a table index", "");
}
order = Number(order);
let index = sheetmanage.generateRandomSheetIndex();
let sheetname = sheetmanage.generateRandomSheetName(Store.luckysheetfile, false);
if(!!sheetObject.name){
let sameName = false;
for(let i = 0; i < Store.luckysheetfile.length; i++){
if(Store.luckysheetfile[i].name == sheetObject.name){
sameName = true;
break;
}
}
if(!sameName){
sheetname = sheetObject.name;
}
}
$("#luckysheet-sheet-container-c").append(replaceHtml(sheetHTML, {
"index": index,
"active": "",
"name": sheetname,
"style": "",
"colorset": ""
}));
let sheetconfig = {
"name": "",
"color": "",
"status": "0",
"order": "",
"index": "",
"celldata": [],
"row": Store.defaultrowNum,
"column": Store.defaultcolumnNum,
"config": {},
"pivotTable": null,
"isPivotTable": false
};
sheetconfig = $.extend(true, sheetconfig, sheetObject);
sheetconfig.index = index;
sheetconfig.name = sheetname;
sheetconfig.order = order;
if(order <= 0){
let beforeIndex = Store.luckysheetfile[0].index;
let beforeObj = $("#luckysheet-sheets-item" + beforeIndex);
$("#luckysheet-sheets-item" + index).insertBefore(beforeObj);
Store.luckysheetfile.splice(0, 0, sheetconfig);
}
else{
if(order > Store.luckysheetfile.length){
order = Store.luckysheetfile.length;
}
let afterIndex = Store.luckysheetfile[order - 1].index;
let afterObj = $("#luckysheet-sheets-item" + afterIndex);
$("#luckysheet-sheets-item" + index).insertAfter(afterObj);
Store.luckysheetfile.splice(order, 0, sheetconfig);
}
Store.luckysheetfile.forEach((item, i, arr) => {
arr[i].order = i;
})
$("#luckysheet-sheet-area div.luckysheet-sheets-item").removeClass("luckysheet-sheets-item-active");
$("#luckysheet-sheets-item" + index).addClass("luckysheet-sheets-item-active");
$("#luckysheet-cell-main").append('<div id="luckysheet-datavisual-selection-set-' + index + '" class="luckysheet-datavisual-selection-set"></div>');
cleargridelement(true);
server.saveParam("sha", null, $.extend(true, {}, sheetconfig));
if (Store.clearjfundo) {
Store.jfundo = [];
let redo = {};
redo["type"] = "addSheet";
redo["sheetconfig"] = $.extend(true, {}, sheetconfig);
redo["index"] = index;
redo["currentSheetIndex"] = Store.currentSheetIndex;
Store.jfredo.push(redo);
}
sheetmanage.changeSheetExec(index, false, true);
}
/**
* 根据窗口大小自动resize画布
*

1
src/locale/en.js

@ -639,6 +639,7 @@ export default {
findBtn:"Find next",
noFindTip:"The content was not found",
modeTip:"This operation is not available in this mode",
searchTargetSheet:"Sheet",
searchTargetCell:"Cell",

1
src/locale/zh.js

@ -655,6 +655,7 @@ export default {
findBtn:"查找下一个",
noFindTip:"没有查找到该内容",
modeTip:"该模式下不可进行此操作",
searchTargetSheet:"工作表",
searchTargetCell:"单元格",

Loading…
Cancel
Save