浏览代码

feat: JS数据集添加动态参数补充逻辑

wu.jian2 1 年之前
父节点
当前提交
db460bd511
共有 1 个文件被更改,包括 32 次插入1 次删除
  1. 32 1
      data-room-ui/packages/DataSetManagement/src/JsEditForm.vue

+ 32 - 1
data-room-ui/packages/DataSetManagement/src/JsEditForm.vue

@@ -652,7 +652,38 @@ export default {
           scriptMethod = new Function(scriptAfterReplacement)
           scriptMethod = new Function(scriptAfterReplacement)
         } catch (error) {
         } catch (error) {
           this.passTest = false
           this.passTest = false
-          this.$message.error(`脚本执行错误,请检查脚本,具体错误:${error}`)
+          const javascriptParams = javascript.match(/\${(.*?)}/g)
+          // 取出${}中的参数名
+          if (javascriptParams) {
+            const paramList = []
+            javascriptParams.forEach(item => {
+              const name = item.replace(/\${(.*?)}/g, '$1')
+              const param = this.dataForm.config.paramsList.find(param => param.name === name)
+              if (!param) {
+                // 添加确认框,是否填充参数
+                paramList.push(name)
+              }
+            })
+            this.$confirm(`脚本中的参数${paramList.join(',')}不存在,是否添加?`, '提示', {
+              confirmButtonText: '确定',
+              cancelButtonText: '取消',
+              customClass: 'bs-el-message-box',
+              type: 'warning'
+            }).then(() => {
+              paramList.forEach(name => {
+                this.dataForm.config.paramsList.push({
+                  name,
+                  type: '',
+                  value: '',
+                  status: 1,
+                  require: 0,
+                  remark: ''
+                })
+              })
+            }).catch(() => {})
+          } else {
+            this.$message.error(`脚本执行错误,请检查脚本,具体错误:${error}`)
+          }
           return
           return
         }
         }
         // 调用方法生成随机数据
         // 调用方法生成随机数据