|
@@ -172,6 +172,13 @@ function getDaglText(data) {
|
|
|
return def ? def.name : '';
|
|
|
}
|
|
|
|
|
|
+function getHintMsg () {
|
|
|
+ return {
|
|
|
+ invalidExpr: {type: 'warning', msg: '粘贴了非法表达式,已过滤'},
|
|
|
+ disableChange: {type: 'error', msg: '不可修改此数据'},
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
$(document).ready(() => {
|
|
|
const exportExcelSetting = {
|
|
@@ -1038,10 +1045,10 @@ $(document).ready(() => {
|
|
|
}
|
|
|
},
|
|
|
clipboardPasted(e, info) {
|
|
|
+ const pasteHint = getHintMsg();
|
|
|
if (info.sheet.zh_setting && info.sheet.zh_tree) {
|
|
|
const sheet = info.sheet, setting = info.sheet.zh_setting;
|
|
|
const filterNodes = [], datas = [], dgnDatas = [], mainDatas = [];
|
|
|
- let bHint = false;
|
|
|
|
|
|
for (let iRow = 0; iRow < info.cellRange.rowCount; iRow++) {
|
|
|
const curRow = iRow + info.cellRange.row;
|
|
@@ -1077,10 +1084,7 @@ $(document).ready(() => {
|
|
|
dgnData[col.field] = math.evaluate(transExpr(text));
|
|
|
filterDgn = false;
|
|
|
} catch(err) {
|
|
|
- if (!bHint) {
|
|
|
- toastr.warning('粘贴了非法表达式,已过滤');
|
|
|
- bHint = true;
|
|
|
- }
|
|
|
+ toastMessageUniq(pasteHint.invalidExpr);
|
|
|
}
|
|
|
}
|
|
|
} else if (col.field === 'memo') {
|
|
@@ -1088,28 +1092,26 @@ $(document).ready(() => {
|
|
|
filterMain = false;
|
|
|
} else {
|
|
|
if (col.type === 'Number') {
|
|
|
- const num = _.toNumber(text);
|
|
|
- data[col.field] = num;
|
|
|
const exprInfo = getExprInfo(col.field);
|
|
|
- if (exprInfo) {
|
|
|
- data[exprInfo.expr] = '';
|
|
|
- }
|
|
|
- if (_.isFinite(num)) {
|
|
|
- filter = false;
|
|
|
- } else {
|
|
|
- try {
|
|
|
- data[col.field] = math.evaluate(transExpr(text));
|
|
|
- const exprInfo = getExprInfo(col.field);
|
|
|
- if (exprInfo) {
|
|
|
- data[exprInfo.expr] = text;
|
|
|
- }
|
|
|
+ if (text) {
|
|
|
+ const num = _.toNumber(text);
|
|
|
+ data[col.field] = num;
|
|
|
+ if (exprInfo) data[exprInfo.expr] = '';
|
|
|
+ if (_.isFinite(num)) {
|
|
|
filter = false;
|
|
|
- } catch(err) {
|
|
|
- if (!bHint) {
|
|
|
- toastr.warning('粘贴了非法表达式,已过滤');
|
|
|
- bHint = true;
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ data[col.field] = math.evaluate(transExpr(text));
|
|
|
+ if (exprInfo) data[exprInfo.expr] = text;
|
|
|
+ filter = false;
|
|
|
+ } catch(err) {
|
|
|
+ toastMessageUniq(pasteHint.invalidExpr);
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ data[col.field] = null;
|
|
|
+ if (exprInfo) data[exprInfo.expr] = '';
|
|
|
+ filter = false;
|
|
|
}
|
|
|
} else {
|
|
|
data[col.field] = text;
|
|
@@ -1724,26 +1726,29 @@ $(document).ready(() => {
|
|
|
|
|
|
const newValue = trimInvalidChar(info.sheet.getText(curRow, curCol));
|
|
|
if (colSetting.type === 'Number') {
|
|
|
- const num = _.toNumber(newValue);
|
|
|
- if (num) {
|
|
|
- newData[colSetting.field] = num;
|
|
|
- const exprInfo = getExprInfo(colSetting.field);
|
|
|
- if (exprInfo) {
|
|
|
- newData[exprInfo.expr] = '';
|
|
|
- }
|
|
|
- } else {
|
|
|
- try {
|
|
|
- newData[colSetting.field] = math.evaluate(transExpr(newValue));
|
|
|
- const exprInfo = getExprInfo(colSetting.field);
|
|
|
+ const exprInfo = getExprInfo(colSetting.field);
|
|
|
+ if (newValue) {
|
|
|
+ const num = _.toNumber(newValue);
|
|
|
+ if (num) {
|
|
|
+ newData[colSetting.field] = num;
|
|
|
if (exprInfo) {
|
|
|
- newData[exprInfo.expr] = newValue;
|
|
|
+ newData[exprInfo.expr] = '';
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ newData[colSetting.field] = math.evaluate(transExpr(newValue));
|
|
|
+ if (exprInfo) {
|
|
|
+ newData[exprInfo.expr] = newValue;
|
|
|
+ }
|
|
|
+ } catch(err) {
|
|
|
+ toastr.error('输入的表达式非法');
|
|
|
+ stagePosSpreadObj.loadCurPosData();
|
|
|
+ return;
|
|
|
}
|
|
|
- } catch(err) {
|
|
|
- toastr.error('输入的表达式非法');
|
|
|
- stagePosSpreadObj.loadCurPosData();
|
|
|
- return;
|
|
|
-
|
|
|
}
|
|
|
+ } else {
|
|
|
+ newData[colSetting.field] = null;
|
|
|
+ if (exprInfo) newData[exprInfo.expr] = '';
|
|
|
}
|
|
|
} else {
|
|
|
newData[colSetting.field] = newValue;
|
|
@@ -1763,20 +1768,22 @@ $(document).ready(() => {
|
|
|
const colSetting = info.sheet.zh_setting.cols[curCol];
|
|
|
const newValue = trimInvalidChar(info.sheet.getText(curRow, curCol));
|
|
|
if (colSetting.type === 'Number') {
|
|
|
+ const exprInfo = getExprInfo(colSetting.field);
|
|
|
+ if (!newValue) {
|
|
|
+ newData[colSetting.field] = newValue;
|
|
|
+ if (exprInfo) newData[exprInfo.expr] = '';
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
const num = _.toNumber(newValue);
|
|
|
if (num) {
|
|
|
newData[colSetting.field] = num;
|
|
|
- const exprInfo = getExprInfo(colSetting.field);
|
|
|
- if (exprInfo) {
|
|
|
- newData[exprInfo.expr] = '';
|
|
|
- }
|
|
|
+ if (exprInfo) newData[exprInfo.expr] = '';
|
|
|
} else {
|
|
|
try {
|
|
|
newData[colSetting.field] = math.evaluate(transExpr(newValue));
|
|
|
const exprInfo = getExprInfo(colSetting.field);
|
|
|
- if (exprInfo) {
|
|
|
- newData[exprInfo.expr] = newValue;
|
|
|
- }
|
|
|
+ if (exprInfo) newData[exprInfo.expr] = newValue;
|
|
|
} catch(err) {
|
|
|
toastr.error('输入的表达式非法');
|
|
|
stagePosSpreadObj.loadCurPosData();
|