fix: 修复JS数据集,动态参数为脚本循环次数的情况,值转为字符串,导致无限循环,出现浏览器内存溢出问题

main
wu.jian2 2 years ago
parent 6e0230ac4a
commit 01cf4b0123

@ -641,7 +641,12 @@ export default {
let scriptMethod = null
try {
const scriptAfterReplacement = javascript.replace(/\${(.*?)}/g, (match, p) => {
return `'${this.dataForm.config.paramsList.find(param => param.name === p).value}'`
const value = this.dataForm.config.paramsList.find(param => param.name === p).value
if (!isNaN(value)) {
return value
} else {
return `'${value}'`
}
})
// eslint-disable-next-line no-new-func
scriptMethod = new Function(scriptAfterReplacement)

@ -82,8 +82,13 @@ export default {
if (res.data.datasetType === 'js') {
try {
const scriptAfterReplacement = res.data.script.replace(/\${(.*?)}/g, (match, p) => {
// 根据parmas的key获取value
return `'${this.config.dataSource?.params[p]}' || '${p}'`
const value = this.config.dataSource?.params[p]
if (!isNaN(value)) {
return value || p
} else {
return `'${value}' || '${p}'`
}
})
// eslint-disable-next-line no-new-func
const scriptMethod = new Function(scriptAfterReplacement)
@ -129,8 +134,12 @@ export default {
if (res.data.datasetType === 'js') {
try {
const scriptAfterReplacement = res.data.script.replace(/\${(.*?)}/g, (match, p) => {
// 根据parmas的key获取value
return `'${this.config.dataSource?.params[p]}' || '${p}'`
const value = this.config.dataSource?.params[p]
if (!isNaN(value)) {
return value || p
} else {
return `'${value}' || '${p}'`
}
})
// eslint-disable-next-line no-new-func
const scriptMethod = new Function(scriptAfterReplacement)

Loading…
Cancel
Save