From a0bdf517c15d51c9a4c4e56ce539359d0de894b3 Mon Sep 17 00:00:00 2001 From: "liu.shiyi" Date: Wed, 26 Jul 2023 09:28:20 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E5=88=9D=E6=AD=A5=E5=AE=9E=E7=8E=B0htt?= =?UTF-8?q?p=E6=95=B0=E6=8D=AE=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataSetManagement/src/HttpEditForm.vue | 1114 +++++++++++++++++ .../packages/js/utils/httpParamsFormatting.js | 54 + 2 files changed, 1168 insertions(+) create mode 100644 data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue create mode 100644 data-room-ui/packages/js/utils/httpParamsFormatting.js diff --git a/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue b/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue new file mode 100644 index 00000000..244d7955 --- /dev/null +++ b/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue @@ -0,0 +1,1114 @@ + + + + + diff --git a/data-room-ui/packages/js/utils/httpParamsFormatting.js b/data-room-ui/packages/js/utils/httpParamsFormatting.js new file mode 100644 index 00000000..1fe11579 --- /dev/null +++ b/data-room-ui/packages/js/utils/httpParamsFormatting.js @@ -0,0 +1,54 @@ +import axios from 'axios' +import { Loading, Message } from 'element-ui' +export default function axiosFormatting (customConfig) { + const httpConfig = { + timeout: 1000 * 30, + baseURL: '', + headers: { + ...customConfig.headers + } + } + // let loadingInstance = null // 加载全局的loading + const instance = axios.create(httpConfig) + /** 添加请求拦截器 **/ + instance.interceptors.request.use(config => { + /** + * 在这里:可以根据业务需求可以在发送请求之前做些什么。 + * config.headers['token'] = sessionStorage.getItem('token') || '' + */ + // 执行请求脚本 + eval(customConfig.requestScript) + return config + }, error => { + // 对请求错误做些什么 + return Promise.reject(error) + }) + + /** 添加响应拦截器 **/ + instance.interceptors.response.use(response => { + if (response.data.code === 200) { + // 执行响应脚本 + const data = response.data.data + eval(customConfig.responseScript) + return Promise.resolve(data) + } else { + Message({ + message: response.data.message, + type: 'error' + }) + return Promise.reject(response.data.message) + } + }) + return new Promise((resolve, reject) => { + instance({ + method: customConfig.method, + url: customConfig.url, + params: customConfig.params, + data: customConfig.method === 'post' ? customConfig.body : undefined + }).then(response => { + resolve(response) + }).catch(error => { + reject(error) + }) + }) +} From 29984eeee3e41202886e4bced1a998973758ba90 Mon Sep 17 00:00:00 2001 From: "liu.shiyi" Date: Wed, 26 Jul 2023 09:38:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E5=88=9D=E6=AD=A5=E5=AE=9E=E7=8E=B0htt?= =?UTF-8?q?p=E6=95=B0=E6=8D=AE=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data-room-ui/example/main.js | 6 +++++- .../packages/DataSetManagement/src/HttpEditForm.vue | 8 ++++---- data-room-ui/packages/DataSetManagement/src/index.vue | 7 +++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/data-room-ui/example/main.js b/data-room-ui/example/main.js index c566d664..a85f2555 100644 --- a/data-room-ui/example/main.js +++ b/data-room-ui/example/main.js @@ -13,6 +13,7 @@ import * as $dataRoomAxios from 'data-room-ui/js/utils/http.js' import { registerConfig } from '@gcpaas/data-room-ui' import remoteComponents from '@/remoteComponents/exports.js' import customDatasetComponents from '@/customDatasetComponents/exports.js' +import customPlots from '@/customPlots/exports' Vue.use(ElementUI, { size: 'mini' }) registerConfig( { @@ -65,7 +66,10 @@ promise.polyfill() Vue.use(ElementUI, { size: 'mini' }) Vue.prototype.$dataRoomAxios = $dataRoomAxios Vue.config.productionTip = false - +// 兼容ie下双向绑定事件 +Vue.prototype.inputChange = function (e) { + return e.target.value +} /* eslint-disable no-new */ new Vue({ el: '#app', diff --git a/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue b/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue index 244d7955..28eb0f64 100644 --- a/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue +++ b/data-room-ui/packages/DataSetManagement/src/HttpEditForm.vue @@ -678,9 +678,9 @@ export default { url: '', headers: [], params: [], - body: null, - requestScript: null, - responseScript: null + body: '', + requestScript: '', + responseScript: '' } }, rules: { @@ -798,7 +798,7 @@ export default { labelIds: dataForm.labelIds, config: { className: 'com.gccloud.dataset.entity.config.HttpDataSetConfig', - method: dataForm.config.headers, + method: dataForm.config.method, url: dataForm.config.url, headers: dataForm.config.headers, params: dataForm.config.params, diff --git a/data-room-ui/packages/DataSetManagement/src/index.vue b/data-room-ui/packages/DataSetManagement/src/index.vue index 458d8ffc..240a6bad 100644 --- a/data-room-ui/packages/DataSetManagement/src/index.vue +++ b/data-room-ui/packages/DataSetManagement/src/index.vue @@ -262,6 +262,7 @@ import checkDatasource from 'data-room-ui/DataSourceManagement/src/checkDatasour import CustomEditForm from './CustomEditForm.vue' import { pageMixins } from 'data-room-ui/js/mixins/page' import OriginalEditForm from './OriginalEditForm.vue' +import HttpEditForm from './HttpEditForm.vue' import DatasetTypeDialog from './DatasetTypeDialog.vue' import StoredProcedureEditForm from './StoredProcedureEditForm.vue' import { datasetPage, datasetRemove, datasetCheck } from 'data-room-ui/js/utils/datasetConfigService' @@ -280,7 +281,8 @@ export default { StoredProcedureEditForm, ScriptEditForm, JsEditForm, - checkDatasource + checkDatasource, + HttpEditForm }, mixins: [pageMixins], props: { @@ -529,7 +531,8 @@ export default { { name: '存储过程数据集', datasetType: 'storedProcedure', componentName: 'StoredProcedureEditForm' }, { name: 'JSON数据集', datasetType: 'json', componentName: 'JsonEditForm' }, { name: '脚本数据集', datasetType: 'script', componentName: 'ScriptEditForm' }, - { name: 'JS数据集', datasetType: 'js', componentName: 'JsEditForm' } + { name: 'JS数据集', datasetType: 'js', componentName: 'JsEditForm' }, + { name: 'HTTP数据集', datasetType: 'http', componentName: 'HttpEditForm' } ] if (window.BS_CONFIG?.datasetTypeList&&window.BS_CONFIG?.datasetTypeList?.length!=0) { this.datasetTypeList = [{ name: '全部', datasetType: '' }, ...list.filter(item => window.BS_CONFIG?.datasetTypeList.findIndex(x => x === item.datasetType) !== -1)]