Browse Source

Merge pull request #466 in VISUAL/fineui from ~TELLER/fineui:bugfix/BI-23990 to master

* commit 'ee56a939a426a0e000971b4dca7b422bd8527e46':
  update
  update
es6
Teller 7 years ago
parent
commit
b86b5a13ea
  1. 6
      dist/base.css
  2. 26
      dist/base.js
  3. 6
      dist/bundle.css
  4. 26
      dist/bundle.js
  5. 2
      dist/bundle.min.css
  6. 70
      dist/bundle.min.js
  7. 6
      dist/fineui.css
  8. 26
      dist/fineui.js
  9. 2
      dist/fineui.min.css
  10. 26
      dist/fineui.min.js
  11. 26
      src/base/formula/formulaeditor.js
  12. 6
      src/css/base/formula/formulaeditor.css
  13. 10
      src/less/base/formula/formulaeditor.less

6
dist/base.css vendored

@ -700,6 +700,12 @@ li.CodeMirror-hint-active {
background: #08f; background: #08f;
color: white; color: white;
} }
.bi-formula-editor .error-field {
color: #ff4949;
padding: 0 5px;
margin: 1px 1px;
display: inline-block;
}
.bi-message-title { .bi-message-title {
font-size: 14px; font-size: 14px;
cursor: pointer; cursor: pointer;

26
dist/base.js vendored

@ -14534,7 +14534,10 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
value: "", value: "",
fieldTextValueMap: {}, fieldTextValueMap: {},
showHint: true, showHint: true,
lineHeight: 2 lineHeight: 2,
paramFormatter: function (v) {
return v;
}
}); });
}, },
_init: function () { _init: function () {
@ -14643,11 +14646,21 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
* @param field * @param field
*/ */
insertField: function (field) { insertField: function (field) {
var value = this.options.fieldTextValueMap[field];
var fieldId = this.options.paramFormatter(field);
var from = this.editor.getCursor(); var from = this.editor.getCursor();
// 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下 // 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下
this.editor.replaceSelection("\u200b" + field + "\u200b"); var showName = fieldId.replaceAll(/^<!.*!>$/, function (str) {
return str.substring(2, str.length - 2);
});
this.editor.replaceSelection("\u200b" + showName + "\u200b");
var to = this.editor.getCursor(); var to = this.editor.getCursor();
this.editor.markText(from, to, {className: "fieldName", atomic: true, startStyle: "start", endStyle: "end"}); var className = "fieldName";
if (BI.isNotNull(fieldId.match(/^<!.*!>$/))) {
className = "error-field";
}
this.editor.markText(from, to, {className: className, atomic: true, startStyle: "start", endStyle: "end", value: value});
this.editor.replaceSelection(" ");
this.editor.focus(); this.editor.focus();
}, },
@ -14695,8 +14708,9 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
// 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符 // 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符
var dId = fieldMap[value.substr(i.from + 1, i.to - i.from - 2)]; var dId = i.marker.value;
if (!fields.contains(dId)) { if (!fields.contains(dId)) {
fields.push(dId); fields.push(dId);
} }
@ -14715,6 +14729,7 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length);
num = num + 2 - fieldNameLength; num = num + 2 - fieldNameLength;
@ -14734,10 +14749,11 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
var start = i.from + num + 1; var start = i.from + num + 1;
var end = fieldNameLength - 2; var end = fieldNameLength - 2;
var fieldId = fieldMap[value.substr(start, end)]; var fieldId = i.marker.value;
value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length);
num += fieldId.length - fieldNameLength + 3; num += fieldId.length - fieldNameLength + 3;
break; break;

6
dist/bundle.css vendored

@ -2407,6 +2407,12 @@ li.CodeMirror-hint-active {
background: #08f; background: #08f;
color: white; color: white;
} }
.bi-formula-editor .error-field {
color: #ff4949;
padding: 0 5px;
margin: 1px 1px;
display: inline-block;
}
.bi-message-title { .bi-message-title {
font-size: 14px; font-size: 14px;
cursor: pointer; cursor: pointer;

26
dist/bundle.js vendored

@ -50304,7 +50304,10 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
value: "", value: "",
fieldTextValueMap: {}, fieldTextValueMap: {},
showHint: true, showHint: true,
lineHeight: 2 lineHeight: 2,
paramFormatter: function (v) {
return v;
}
}); });
}, },
_init: function () { _init: function () {
@ -50413,11 +50416,21 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
* @param field * @param field
*/ */
insertField: function (field) { insertField: function (field) {
var value = this.options.fieldTextValueMap[field];
var fieldId = this.options.paramFormatter(field);
var from = this.editor.getCursor(); var from = this.editor.getCursor();
// 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下 // 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下
this.editor.replaceSelection("\u200b" + field + "\u200b"); var showName = fieldId.replaceAll(/^<!.*!>$/, function (str) {
return str.substring(2, str.length - 2);
});
this.editor.replaceSelection("\u200b" + showName + "\u200b");
var to = this.editor.getCursor(); var to = this.editor.getCursor();
this.editor.markText(from, to, {className: "fieldName", atomic: true, startStyle: "start", endStyle: "end"}); var className = "fieldName";
if (BI.isNotNull(fieldId.match(/^<!.*!>$/))) {
className = "error-field";
}
this.editor.markText(from, to, {className: className, atomic: true, startStyle: "start", endStyle: "end", value: value});
this.editor.replaceSelection(" ");
this.editor.focus(); this.editor.focus();
}, },
@ -50465,8 +50478,9 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
// 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符 // 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符
var dId = fieldMap[value.substr(i.from + 1, i.to - i.from - 2)]; var dId = i.marker.value;
if (!fields.contains(dId)) { if (!fields.contains(dId)) {
fields.push(dId); fields.push(dId);
} }
@ -50485,6 +50499,7 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length);
num = num + 2 - fieldNameLength; num = num + 2 - fieldNameLength;
@ -50504,10 +50519,11 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
var start = i.from + num + 1; var start = i.from + num + 1;
var end = fieldNameLength - 2; var end = fieldNameLength - 2;
var fieldId = fieldMap[value.substr(start, end)]; var fieldId = i.marker.value;
value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length);
num += fieldId.length - fieldNameLength + 3; num += fieldId.length - fieldNameLength + 3;
break; break;

2
dist/bundle.min.css vendored

File diff suppressed because one or more lines are too long

70
dist/bundle.min.js vendored

File diff suppressed because one or more lines are too long

6
dist/fineui.css vendored

@ -2407,6 +2407,12 @@ li.CodeMirror-hint-active {
background: #08f; background: #08f;
color: white; color: white;
} }
.bi-formula-editor .error-field {
color: #ff4949;
padding: 0 5px;
margin: 1px 1px;
display: inline-block;
}
.bi-message-title { .bi-message-title {
font-size: 14px; font-size: 14px;
cursor: pointer; cursor: pointer;

26
dist/fineui.js vendored

@ -50547,7 +50547,10 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
value: "", value: "",
fieldTextValueMap: {}, fieldTextValueMap: {},
showHint: true, showHint: true,
lineHeight: 2 lineHeight: 2,
paramFormatter: function (v) {
return v;
}
}); });
}, },
_init: function () { _init: function () {
@ -50656,11 +50659,21 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
* @param field * @param field
*/ */
insertField: function (field) { insertField: function (field) {
var value = this.options.fieldTextValueMap[field];
var fieldId = this.options.paramFormatter(field);
var from = this.editor.getCursor(); var from = this.editor.getCursor();
// 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下 // 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下
this.editor.replaceSelection("\u200b" + field + "\u200b"); var showName = fieldId.replaceAll(/^<!.*!>$/, function (str) {
return str.substring(2, str.length - 2);
});
this.editor.replaceSelection("\u200b" + showName + "\u200b");
var to = this.editor.getCursor(); var to = this.editor.getCursor();
this.editor.markText(from, to, {className: "fieldName", atomic: true, startStyle: "start", endStyle: "end"}); var className = "fieldName";
if (BI.isNotNull(fieldId.match(/^<!.*!>$/))) {
className = "error-field";
}
this.editor.markText(from, to, {className: className, atomic: true, startStyle: "start", endStyle: "end", value: value});
this.editor.replaceSelection(" ");
this.editor.focus(); this.editor.focus();
}, },
@ -50708,8 +50721,9 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
// 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符 // 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符
var dId = fieldMap[value.substr(i.from + 1, i.to - i.from - 2)]; var dId = i.marker.value;
if (!fields.contains(dId)) { if (!fields.contains(dId)) {
fields.push(dId); fields.push(dId);
} }
@ -50728,6 +50742,7 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length);
num = num + 2 - fieldNameLength; num = num + 2 - fieldNameLength;
@ -50747,10 +50762,11 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
var start = i.from + num + 1; var start = i.from + num + 1;
var end = fieldNameLength - 2; var end = fieldNameLength - 2;
var fieldId = fieldMap[value.substr(start, end)]; var fieldId = i.marker.value;
value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length);
num += fieldId.length - fieldNameLength + 3; num += fieldId.length - fieldNameLength + 3;
break; break;

2
dist/fineui.min.css vendored

File diff suppressed because one or more lines are too long

26
dist/fineui.min.js vendored

@ -65,7 +65,10 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
value: "", value: "",
fieldTextValueMap: {}, fieldTextValueMap: {},
showHint: true, showHint: true,
lineHeight: 2 lineHeight: 2,
paramFormatter: function (v) {
return v;
}
}); });
}, },
_init: function () { _init: function () {
@ -174,11 +177,21 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
* @param field * @param field
*/ */
insertField: function (field) { insertField: function (field) {
var value = this.options.fieldTextValueMap[field];
var fieldId = this.options.paramFormatter(field);
var from = this.editor.getCursor(); var from = this.editor.getCursor();
// 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下 // 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下
this.editor.replaceSelection("\u200b" + field + "\u200b"); var showName = fieldId.replaceAll(/^<!.*!>$/, function (str) {
return str.substring(2, str.length - 2);
});
this.editor.replaceSelection("\u200b" + showName + "\u200b");
var to = this.editor.getCursor(); var to = this.editor.getCursor();
this.editor.markText(from, to, {className: "fieldName", atomic: true, startStyle: "start", endStyle: "end"}); var className = "fieldName";
if (BI.isNotNull(fieldId.match(/^<!.*!>$/))) {
className = "error-field";
}
this.editor.markText(from, to, {className: className, atomic: true, startStyle: "start", endStyle: "end", value: value});
this.editor.replaceSelection(" ");
this.editor.focus(); this.editor.focus();
}, },
@ -226,8 +239,9 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
// 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符 // 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符
var dId = fieldMap[value.substr(i.from + 1, i.to - i.from - 2)]; var dId = i.marker.value;
if (!fields.contains(dId)) { if (!fields.contains(dId)) {
fields.push(dId); fields.push(dId);
} }
@ -246,6 +260,7 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length);
num = num + 2 - fieldNameLength; num = num + 2 - fieldNameLength;
@ -265,10 +280,11 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
var start = i.from + num + 1; var start = i.from + num + 1;
var end = fieldNameLength - 2; var end = fieldNameLength - 2;
var fieldId = fieldMap[value.substr(start, end)]; var fieldId = i.marker.value;
value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length);
num += fieldId.length - fieldNameLength + 3; num += fieldId.length - fieldNameLength + 3;
break; break;

26
src/base/formula/formulaeditor.js

@ -11,7 +11,10 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
value: "", value: "",
fieldTextValueMap: {}, fieldTextValueMap: {},
showHint: true, showHint: true,
lineHeight: 2 lineHeight: 2,
paramFormatter: function (v) {
return v;
}
}); });
}, },
_init: function () { _init: function () {
@ -120,11 +123,21 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
* @param field * @param field
*/ */
insertField: function (field) { insertField: function (field) {
var value = this.options.fieldTextValueMap[field];
var fieldId = this.options.paramFormatter(field);
var from = this.editor.getCursor(); var from = this.editor.getCursor();
// 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下 // 解决插入字段由括号或其他特殊字符包围时分裂的bug,在两端以不可见字符包裹一下
this.editor.replaceSelection("\u200b" + field + "\u200b"); var showName = fieldId.replaceAll(/^<!.*!>$/, function (str) {
return str.substring(2, str.length - 2);
});
this.editor.replaceSelection("\u200b" + showName + "\u200b");
var to = this.editor.getCursor(); var to = this.editor.getCursor();
this.editor.markText(from, to, {className: "fieldName", atomic: true, startStyle: "start", endStyle: "end"}); var className = "fieldName";
if (BI.isNotNull(fieldId.match(/^<!.*!>$/))) {
className = "error-field";
}
this.editor.markText(from, to, {className: className, atomic: true, startStyle: "start", endStyle: "end", value: value});
this.editor.replaceSelection(" ");
this.editor.focus(); this.editor.focus();
}, },
@ -172,8 +185,9 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
// 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符 // 因为插入字段的时候首尾加了不可见字符,所以首尾缩进一个字符
var dId = fieldMap[value.substr(i.from + 1, i.to - i.from - 2)]; var dId = i.marker.value;
if (!fields.contains(dId)) { if (!fields.contains(dId)) {
fields.push(dId); fields.push(dId);
} }
@ -192,6 +206,7 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$a" + value.substr(i.to + num, value.length);
num = num + 2 - fieldNameLength; num = num + 2 - fieldNameLength;
@ -211,10 +226,11 @@ BI.FormulaEditor = BI.inherit(BI.Single, {
_.forEach(line.markedSpans, function (i, ms) { _.forEach(line.markedSpans, function (i, ms) {
switch (i.marker.className) { switch (i.marker.className) {
case "fieldName": case "fieldName":
case "error-field":
var fieldNameLength = i.to - i.from; var fieldNameLength = i.to - i.from;
var start = i.from + num + 1; var start = i.from + num + 1;
var end = fieldNameLength - 2; var end = fieldNameLength - 2;
var fieldId = fieldMap[value.substr(start, end)]; var fieldId = i.marker.value;
value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length); value = value.substr(0, i.from + num) + "$\{" + fieldId + "\}" + value.substr(i.to + num, value.length);
num += fieldId.length - fieldNameLength + 3; num += fieldId.length - fieldNameLength + 3;
break; break;

6
src/css/base/formula/formulaeditor.css

@ -0,0 +1,6 @@
.bi-formula-editor .error-field {
color: #ff4949;
padding: 0 5px;
margin: 1px 1px;
display: inline-block;
}

10
src/less/base/formula/formulaeditor.less

@ -0,0 +1,10 @@
@import "../../index";
.bi-formula-editor {
& .error-field {
color: @color-bi-text-failure;
padding: 0 5px;
margin: 1px 1px;
display: inline-block;
}
}
Loading…
Cancel
Save