Browse Source

fix(bug): bug

bug

fix #263
master
wpxp123456 5 years ago
parent
commit
31bdc4feae
  1. 99
      src/controllers/dropCell.js

99
src/controllers/dropCell.js

@ -202,31 +202,20 @@ const luckysheetDropCell = {
return isChnNumber; return isChnNumber;
}, },
isExtendNumber: function(txt){ isExtendNumber: function(txt){
let reg = /[0-9]/; let reg = /0|([1-9]+[0-9]*)/g;
let isExtendNumber; let isExtendNumber = reg.test(txt);
if(reg.test(txt.substr(txt.length - 1, 1))){
isExtendNumber = true;
}
else{
isExtendNumber = false;
}
if(isExtendNumber){ if(isExtendNumber){
let str = txt.split(""); let match = txt.match(reg);
str.reverse(); let matchTxt = match[match.length - 1];
let matchIndex = txt.lastIndexOf(matchTxt);
let len = 0; let beforeTxt = txt.substr(0, matchIndex);
for(let i = 0; i < str.length; i++){ let afterTxt = txt.substr(matchIndex + matchTxt.length);
if(!reg.test(str[i])){
len = i;
break;
}
}
return [isExtendNumber, txt.substr(0, txt.length - len), txt.substr(txt.length - len, len)]; return [isExtendNumber, Number(matchTxt), beforeTxt, afterTxt];
} }
else{ else {
return [isExtendNumber]; return [isExtendNumber]
} }
}, },
isChnWeek1: function(txt){ isChnWeek1: function(txt){
@ -913,7 +902,8 @@ const luckysheetDropCell = {
let arrData = []; let arrData = [];
let arrIndex = []; let arrIndex = [];
let text = ""; let text = "";
let extendNumberStr = null; let extendNumberBeforeStr = null;
let extendNumberAfterStr = null;
let isSameStr = true; let isSameStr = true;
for(let b = b1; b <= b2; b++){ for(let b = b1; b <= b2; b++){
@ -931,49 +921,60 @@ const luckysheetDropCell = {
if(!!data && !!data["v"] && data["f"] == null){ if(!!data && !!data["v"] && data["f"] == null){
if(!!data["ct"] && data["ct"]["t"] == "n"){ if(!!data["ct"] && data["ct"]["t"] == "n"){
str = "number"; str = "number";
extendNumberStr = null; extendNumberBeforeStr = null;
extendNumberAfterStr = null;
} }
else if(!!data["ct"] && data["ct"]["t"] == "d"){ else if(!!data["ct"] && data["ct"]["t"] == "d"){
str = "date"; str = "date";
extendNumberStr = null; extendNumberBeforeStr = null;
extendNumberAfterStr = null;
} }
else if(_this.isExtendNumber(data["m"])[0]){ else if(_this.isExtendNumber(data["m"])[0]){
str = "extendNumber"; str = "extendNumber";
if(extendNumberStr == null){ let isExtendNumber = _this.isExtendNumber(data["m"]);
if(extendNumberBeforeStr == null || extendNumberAfterStr == null){
isSameStr = true; isSameStr = true;
extendNumberStr = _this.isExtendNumber(data["m"])[1]; extendNumberBeforeStr = isExtendNumber[2];
extendNumberAfterStr = isExtendNumber[3];
} }
else{ else {
if(_this.isExtendNumber(data["m"])[1] != extendNumberStr){ if(isExtendNumber[2] != extendNumberBeforeStr || isExtendNumber[3] != extendNumberAfterStr){
isSameStr = false; isSameStr = false;
extendNumberStr = _this.isExtendNumber(data["m"])[1]; extendNumberBeforeStr = isExtendNumber[2];
extendNumberAfterStr = isExtendNumber[3];
} }
else{ else {
isSameStr = true; isSameStr = true;
} }
} }
} }
else if(_this.isChnNumber(data["m"])){ else if(_this.isChnNumber(data["m"])){
str = "chnNumber"; str = "chnNumber";
extendNumberStr = null; extendNumberBeforeStr = null;
extendNumberAfterStr = null;
} }
else if(_this.isChnWeek2(data["m"])){ else if(_this.isChnWeek2(data["m"])){
str = "chnWeek2"; str = "chnWeek2";
extendNumberStr = null; extendNumberBeforeStr = null;
extendNumberAfterStr = null;
} }
else if(_this.isChnWeek3(data["m"])){ else if(_this.isChnWeek3(data["m"])){
str = "chnWeek3"; str = "chnWeek3";
extendNumberStr = null; extendNumberBeforeStr = null;
extendNumberAfterStr = null;
} }
else{ else{
str = "other"; str = "other";
extendNumberStr = null; extendNumberBeforeStr = null;
extendNumberAfterStr = null;
} }
} }
else{ else{
str = "other"; str = "other";
extendNumberStr = null; extendNumberBeforeStr = null;
extendNumberAfterStr = null;
} }
if(str == "extendNumber"){ if(str == "extendNumber"){
@ -1439,7 +1440,7 @@ const luckysheetDropCell = {
applyData = _this.FillSeries(data, len, direction); applyData = _this.FillSeries(data, len, direction);
} }
else if(dataType == "extendNumber"){ else if(dataType == "extendNumber"){
//扩展数字(一串字符最后面的是数字) //扩展数字
if(data.length == 1){ if(data.length == 1){
let step; let step;
if(direction == "down" || direction == "right"){ if(direction == "down" || direction == "right"){
@ -1456,7 +1457,7 @@ const luckysheetDropCell = {
for(let i = 0; i < data.length; i++){ for(let i = 0; i < data.length; i++){
let txt = data[i]["m"]; let txt = data[i]["m"];
dataNumArr.push(Number(_this.isExtendNumber(txt)[2])); dataNumArr.push(Number(_this.isExtendNumber(txt)[1]));
} }
if(direction == "up" || direction == "left"){ if(direction == "up" || direction == "left"){
@ -2315,30 +2316,22 @@ const luckysheetDropCell = {
let _this = this; let _this = this;
let applyData = []; let applyData = [];
let reg = /0|([1-9]+[0-9]*)/g;
for(let i = 1; i <= len; i++){ for(let i = 1; i <= len; i++){
let index = (i - 1) % data.length; let index = (i - 1) % data.length;
let d = $.extend(true, {}, data[index]); let d = $.extend(true, {}, data[index]);
let last = data[data.length - 1]["m"]; let last = data[data.length - 1]["m"];
let lastTxt = _this.isExtendNumber(last)[1]; let match = last.match(reg)
let lastNum = _this.isExtendNumber(last)[2]; let lastTxt = match[match.length -1];
if(lastNum==""){
let num = Math.abs(Number(lastTxt) + step * i); let num = Math.abs(Number(lastTxt) + step * i);
if(lastTxt.substr(0,1)=="0"){ let lastIndex = last.lastIndexOf(lastTxt);
if(lastTxt.length>num.toString().length){ let valueTxt = last.substr(0, lastIndex) + num.toString() + last.substr(lastIndex + lastTxt.length);
num = "0" + num.toString();
} d["v"] = valueTxt;
} d["m"] = valueTxt;
d["v"] = num.toString();
d["m"] = num.toString();
}
else{
let num = Math.abs(Number(lastNum) + step * i);
d["v"] = lastTxt + num.toString();
d["m"] = lastTxt + num.toString();
}
applyData.push(d); applyData.push(d);
} }

Loading…
Cancel
Save