diff --git a/DataRoom/pom.xml b/DataRoom/pom.xml
index 8082f7a1..3b54394e 100644
--- a/DataRoom/pom.xml
+++ b/DataRoom/pom.xml
@@ -60,7 +60,7 @@
0.3.2
2.2
4.9.1
- 1.0.1.2023072703.Alpha
+ 1.0.1.2023072801.Alpha
diff --git a/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue b/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue
index e75cc517..5c0c8262 100644
--- a/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue
+++ b/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue
@@ -147,6 +147,40 @@
+
+
+
+
+
+
+
+
+
+
+
+ GET
+
+
+ POST
+
+
+
+
-
-
-
- GET
-
-
- POST
-
-
-
-
-
-
-
-
- 增加
-
-
-
-
-
-
-
-
-
-
-
-
-
- 移除
+ 增加
-
-
-
-
-
- 增加
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ 移除
+
+
+
+
+
+
+
- 移除
+ 增加
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 移除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{
- // acc[cur.name] = cur.value
- // return acc
- // }, {})
- // // 将url中 ${xxx} 替换成 ${params.xxx}
- // const str = string.replace(/\$\{(\w+)\}/g, (match, p1) => {
- // return '${params.' + p1 + '}'
- // })
- // const transformStr = ''
- // // 将字符串中的${}替换为变量, 使用eval执行
- // eval('transformStr = `' + str + '`')
- // return transformStr
- // },
- // evalArrFunc (paramsList, arr) {
- // // 取name作为变量名, value作为变量值 { name: '站三', token: '123'}
- // const params = paramsList.reduce((acc, cur) => {
- // acc[cur.name] = cur.value
- // return acc
- // }, {})
- //
- // // 取name作为变量名, value作为变量值 { _name: '${name}', _token: '${token}'}
- // const paramsListObj = arr.reduce((acc, cur) => {
- // acc[cur.key] = cur.value
- // return acc
- // }, {})
- // // 转成字符串
- // const paramsListStr = JSON.stringify(paramsListObj)
- //
- // // 将url中 ${xxx} 替换成 ${params.xxx}
- // const str = paramsListStr.replace(/\$\{(\w+)\}/g, (match, p1) => {
- // return '${params.' + p1 + '}'
- // })
- // const transformStr = ''
- // // 将字符串中的${}替换为变量, 使用eval执行
- // eval('transformStr = `' + str + '`')
- // const obj = JSON.parse(transformStr)
- // return obj
- // },
// 获取请求地址、请求头、请求参数、请求体中所有的变量,在动态参数中进行变量
getPramsList () {
const paramNames1 = this.getValName(this.dataForm.config.url)
@@ -977,10 +969,10 @@ export default {
if (this.dataForm.config.requestType === 'frontend') {
// this.replaceParams(this.dataForm.config.paramsList)
axiosFormatting({ ...this.dataForm.config }).then((res) => {
- this.dataPreviewList = res.data
+ this.dataPreviewList = res.data && Array.isArray(res.data) ? res.data : []
// 获取数据后更新输出字段
this.updateOoutputFieldList(this.dataPreviewList)
- console.log(res)
+ this.$message.success('解析并执行成功')
})
} else {
// 如果是后端代理,则将配置传到后端
@@ -991,7 +983,7 @@ export default {
dataSetType: 'http'
}
datasetExecuteTest(executeParams).then(res => {
- this.dataPreviewList = res
+ this.dataPreviewList = res.data && Array.isArray(res.data) ? res.data : []
// 获取数据后更新输出字段
this.updateOoutputFieldList(this.dataPreviewList)
this.$message.success('解析并执行成功')
@@ -1223,4 +1215,7 @@ export default {
.tree-box {
padding: 0;
}
+.tabs-box{
+ margin-left: 45px;
+}
diff --git a/data-room-ui/packages/DataSetManagement/src/OriginalEditForm.vue b/data-room-ui/packages/DataSetManagement/src/OriginalEditForm.vue
index 6b6d83d4..2e5ff579 100644
--- a/data-room-ui/packages/DataSetManagement/src/OriginalEditForm.vue
+++ b/data-room-ui/packages/DataSetManagement/src/OriginalEditForm.vue
@@ -655,7 +655,11 @@ export default {
getData () {
const executeParams = {
dataSourceId: this.dataForm.sourceId,
- script: this.dataForm.fieldInfo.join(','),
+ script:JSON.stringify({
+ fieldInfo: this.dataForm.fieldInfo,// 未选中字段就传空数组
+ tableName: this.dataForm.tableName,
+ repeatStatus: this.dataForm.repeatStatus
+ }) ,
// 原始表数据集没有数据集参数
params: [],
dataSetType: 'original',
@@ -856,7 +860,11 @@ export default {
if (!this.dataForm.sourceId || !this.dataForm.tableName) return
const executeParams = {
dataSourceId: this.dataForm.sourceId,
- script: this.dataForm.fieldInfo.join(','),
+ script:JSON.stringify({
+ fieldInfo: this.dataForm.fieldInfo,// 未选中字段就传空数组
+ tableName: this.dataForm.tableName,
+ repeatStatus: this.dataForm.repeatStatus
+ }) ,
// 原始表数据集没有数据集参数
params: [],
dataSetType: 'original',
diff --git a/data-room-ui/packages/js/mixins/commonMixins.js b/data-room-ui/packages/js/mixins/commonMixins.js
index c06e155a..a297cda1 100644
--- a/data-room-ui/packages/js/mixins/commonMixins.js
+++ b/data-room-ui/packages/js/mixins/commonMixins.js
@@ -71,28 +71,13 @@ export default {
pageCode: this.pageCode,
size: size,
type: config.type
- }).then((res) => {
+ }).then(async (res) => {
+ let _res = _.cloneDeep(res)
// 如果是http数据集的前端代理,则需要调封装的axios请求
- // if (data.executionByFrontend) {
- // axiosFormatting(data.data).then(res => {
- // config = this.dataFormatting(config, res)
- // this.changeChartConfig(config)
- // })
- // }
- // if (data.datasetType !== 'http' && data.executionByFrontend) {
- // try {
- // const scriptAfterReplacement = data.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)
- // data.data = scriptMethod()
- // } catch (error) {
- // console.error('数据集脚本执行失败', error)
- // }
- // }
if (res.executionByFrontend) {
+ if (res.data.datasetType === 'http') {
+ _res = await axiosFormatting(res.data)
+ }
if (res.data.datasetType === 'js') {
try {
const scriptAfterReplacement = res.data.script.replace(/\${(.*?)}/g, (match, p) => {
@@ -101,13 +86,13 @@ export default {
})
// eslint-disable-next-line no-new-func
const scriptMethod = new Function(scriptAfterReplacement)
- res.data = scriptMethod()
+ _res.data = scriptMethod()
} catch (error) {
console.error('JS数据集脚本执行失败', error)
}
}
}
- config = this.dataFormatting(config, res)
+ config = this.dataFormatting(config, _res)
this.changeChartConfig(config)
}).catch((err) => {
console.error(err)
@@ -132,15 +117,13 @@ export default {
filterList: filterList || this.filterList
}
return new Promise((resolve, reject) => {
- getUpdateChartInfo(params).then((res) => {
+ getUpdateChartInfo(params).then(async (res) => {
+ let _res = _.cloneDeep(res)
// 如果是http数据集的前端代理,则需要调封装的axios请求
- // if (data.executionByFrontend) {
- // axiosFormatting(data.data).then(res => {
- // config = this.dataFormatting(config, res)
- // this.changeChartConfig(config)
- // })
- // }
if (res.executionByFrontend) {
+ if (res.data.datasetType === 'http') {
+ _res = await axiosFormatting(res.data)
+ }
if (res.data.datasetType === 'js') {
try {
const scriptAfterReplacement = res.data.script.replace(/\${(.*?)}/g, (match, p) => {
@@ -149,14 +132,13 @@ export default {
})
// eslint-disable-next-line no-new-func
const scriptMethod = new Function(scriptAfterReplacement)
- res.data = scriptMethod()
+ _res.data = scriptMethod()
} catch (error) {
console.error('JS数据集脚本执行失败', error)
}
}
}
- config = this.dataFormatting(config, res)
- this.changeChartConfig(config)
+ config = this.dataFormatting(config, _res)
if (this.chart) {
// 单指标组件和多指标组件的changeData传参不同
if (['Liquid', 'Gauge', 'RingProgress'].includes(config.chartType)) {
diff --git a/data-room-ui/packages/js/utils/httpParamsFormatting.js b/data-room-ui/packages/js/utils/httpParamsFormatting.js
index 3d4c0f4e..a1f85154 100644
--- a/data-room-ui/packages/js/utils/httpParamsFormatting.js
+++ b/data-room-ui/packages/js/utils/httpParamsFormatting.js
@@ -35,12 +35,10 @@ export default function axiosFormatting (customConfig) {
instance.interceptors.response.use(response => {
if (response.data.code === 200) {
// 执行响应脚本
- const resp = _.cloneDeep(response.data)
- eval(newCustomConfig.responseScript)
- Message({
- message: '执行成功',
- type: 'success'
- })
+ // eslint-disable-next-line no-new-func
+ const getResp = new Function('response', newCustomConfig.responseScript)
+ const resp = getResp(response)
+ console.log(resp)
return Promise.resolve(resp)
} else {
Message({
@@ -80,7 +78,7 @@ function replaceUrlParam (url, paramName, paramValue) {
}
// 将参数的值替换掉其他配置中对应属性的值
function replaceParams (customConfig) {
- let newConfig = _.cloneDeep(customConfig)
+ const newConfig = _.cloneDeep(customConfig)
newConfig.url = evalStrFunc(newConfig.paramsList, newConfig.url)
newConfig.headers = evalArrFunc(newConfig.paramsList, newConfig.headers)
newConfig.params = evalArrFunc(newConfig.paramsList, newConfig.params)