Quellcode durchsuchen

feat: 自定义JS数据集添加动态参数

wu.jian2 vor 2 Jahren
Ursprung
Commit
43ae68df94

+ 1 - 1
data-room-ui/example/customDatasetComponents/jsDataSet/index.vue

@@ -613,7 +613,7 @@ export default {
           scriptMethod = new Function(scriptAfterReplacement)
         } catch (error) {
           this.passTest = false
-          this.$message.error('脚本执行错误,请检查脚本')
+          this.$message.error(`脚本执行错误,请检查脚本,具体错误:${error}`)
           return
         }
         // 调用方法生成随机数据

+ 7 - 2
data-room-ui/packages/js/mixins/commonMixins.js

@@ -142,8 +142,13 @@ export default {
         // 数据集脚本前端执行
         if (res.executionByFrontend) {
           try {
-            const returnResult = eval(`(${res.data})`)()
-            res.data = returnResult
+            const scriptAfterReplacement = res.data.replace(/\${(.*?)}/g, (match, p) => {
+              // 根据parmas的key获取value
+              return `'${this.config.dataSource?.params[p]}' || '${p}'`
+            })
+            // eslint-disable-next-line no-new-func
+            const scriptMethod = new Function(scriptAfterReplacement)
+            res.data = scriptMethod()
           } catch (error) {
             console.error('数据集脚本执行失败', error)
           }