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)