diff --git a/src/components/Pages/MonacoEditor/EditorWorker.vue b/src/components/Pages/MonacoEditor/EditorWorker.vue index 5e2a6350..a1689e68 100644 --- a/src/components/Pages/MonacoEditor/EditorWorker.vue +++ b/src/components/Pages/MonacoEditor/EditorWorker.vue @@ -5,6 +5,7 @@ import * as monaco from 'monaco-editor' import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker' import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker' import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker' +import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker' self.MonacoEnvironment = { getWorker(workerId, label) { @@ -14,6 +15,9 @@ self.MonacoEnvironment = { if (label === 'typescript' || label === 'javascript') { return new tsWorker() } + if (label === 'html') { + return new htmlWorker() + } return new editorWorker() } } diff --git a/src/enums/httpEnum.ts b/src/enums/httpEnum.ts index 50dcbf7c..100a0392 100644 --- a/src/enums/httpEnum.ts +++ b/src/enums/httpEnum.ts @@ -65,12 +65,24 @@ export const SelectHttpTimeNameObj = { * @description: 请求头部类型 */ export enum RequestBodyEnum { + NONE = 'none', FORM_DATA = 'form-data', X_WWW_FORM_URLENCODED = 'x-www-form-urlencoded', JSON = 'json', XML = 'xml' } +/** + * @description: 请求头部类型数组 + */ +export const RequestBodyEnumList = [ + RequestBodyEnum.NONE, + RequestBodyEnum.FORM_DATA, + RequestBodyEnum.X_WWW_FORM_URLENCODED, + RequestBodyEnum.JSON, + RequestBodyEnum.XML +] + /** * @description: 请求参数类型 */ @@ -84,15 +96,18 @@ export enum RequestParamsTypeEnum { /** * @description: 请求参数主体 */ +export type RequestParamsObjType = { + [T: string]: string +} export type RequestParams = { - [RequestParamsTypeEnum.PARAMS]: object, - [RequestParamsTypeEnum.COOKIE]: object, - [RequestParamsTypeEnum.HEADER]: object, + [RequestParamsTypeEnum.PARAMS]: RequestParamsObjType + [RequestParamsTypeEnum.COOKIE]: RequestParamsObjType + [RequestParamsTypeEnum.HEADER]: RequestParamsObjType [RequestParamsTypeEnum.BODY]: { - [RequestBodyEnum.FORM_DATA]: object, - [RequestBodyEnum.X_WWW_FORM_URLENCODED]: object, - [RequestBodyEnum.JSON]: object, - [RequestBodyEnum.XML]: string, + [RequestBodyEnum.FORM_DATA]: RequestParamsObjType + [RequestBodyEnum.X_WWW_FORM_URLENCODED]: RequestParamsObjType + [RequestBodyEnum.JSON]: string + [RequestBodyEnum.XML]: string } } diff --git a/src/main.ts b/src/main.ts index 30d5c836..cf9b86df 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,6 +7,8 @@ import { setupNaive, setupDirectives, setupCustomComponents } from '@/plugins' import { GoAppProvider } from '@/components/GoAppProvider/index' import { setHtmlTheme } from '@/utils' +// 引入全局样式 +import '@/styles/pages/index.scss' // 引入动画 import 'animate.css/animate.min.css' // 引入标尺 diff --git a/src/packages/public/publicConfig.ts b/src/packages/public/publicConfig.ts index cc7be730..0eff7f5e 100644 --- a/src/packages/public/publicConfig.ts +++ b/src/packages/public/publicConfig.ts @@ -1,7 +1,13 @@ import { getUUID } from '@/utils' import { PublicConfigType } from '@/packages/index.d' import { RequestConfigType } from '@/store/modules/chartEditStore/chartEditStore.d' -import { RequestHttpEnum, RequestDataTypeEnum, RequestHttpIntervalEnum, RequestContentTypeEnum } from '@/enums/httpEnum' +import { + RequestHttpEnum, + RequestDataTypeEnum, + RequestHttpIntervalEnum, + RequestContentTypeEnum, + RequestBodyEnum +} from '@/enums/httpEnum' import { chartInitConfig } from '@/settings/designSetting' const requestConfig: RequestConfigType = { @@ -10,7 +16,22 @@ const requestConfig: RequestConfigType = { requestUrl: '', requestInterval: undefined, requestIntervalUnit: RequestHttpIntervalEnum.SECOND, - requestContentType: RequestContentTypeEnum.DEFAULT + requestContentType: RequestContentTypeEnum.DEFAULT, + requestParamsBodyType: RequestBodyEnum.NONE, + requestSQLContent: { + sql: 'select * from where' + }, + requestParams: { + Body: { + 'form-data': {}, + 'x-www-form-urlencoded': {}, + json: '', + xml: '' + }, + Cookie: {}, + Header: {}, + Params: {} + } } export class publicConfig implements PublicConfigType { @@ -40,7 +61,7 @@ export class publicConfig implements PublicConfigType { // 倾斜 skewX: 0, skewY: 0, - + // 动画 animations: [] } diff --git a/src/store/modules/chartEditStore/chartEditStore.d.ts b/src/store/modules/chartEditStore/chartEditStore.d.ts index 767ae4b7..b544a64f 100644 --- a/src/store/modules/chartEditStore/chartEditStore.d.ts +++ b/src/store/modules/chartEditStore/chartEditStore.d.ts @@ -5,9 +5,11 @@ import { RequestContentTypeEnum, RequestDataTypeEnum, RequestHttpIntervalEnum, - RequestParams + RequestParams, + RequestBodyEnum, + RequestParamsObjType } from '@/enums/httpEnum' -import { PreviewScaleEnum, RequestBodyEnum } from '@/enums/styleEnum' +import { PreviewScaleEnum } from '@/enums/styleEnum' import type { ChartColorsNameType, GlobalThemeJsonType } from '@/settings/chartThemes/index' // 编辑画布属性 @@ -141,6 +143,8 @@ type RequestPublicConfigType = { requestIntervalUnit: RequestHttpIntervalEnum // 请求内容 requestParams: RequestParams + // 请求体类型 + requestParamsBodyType: RequestBodyEnum } // 全局的图表请求配置 @@ -159,6 +163,10 @@ export interface RequestConfigType extends RequestPublicConfigType { requestUrl?: string // 请求内容主体方式 普通/sql requestContentType: RequestContentTypeEnum + // SQL 请求对象 + requestSQLContent: { + sql: string + } } // Store 类型 diff --git a/src/store/modules/chartEditStore/chartEditStore.ts b/src/store/modules/chartEditStore/chartEditStore.ts index 0bfb310b..2dd4026d 100644 --- a/src/store/modules/chartEditStore/chartEditStore.ts +++ b/src/store/modules/chartEditStore/chartEditStore.ts @@ -4,6 +4,7 @@ import debounce from 'lodash/debounce' import cloneDeep from 'lodash/cloneDeep' import { defaultTheme, globalThemeJson } from '@/settings/chartThemes/index' import { requestInterval, previewScaleType, requestIntervalUnit } from '@/settings/designSetting' +import { RequestBodyEnum } from '@/enums/httpEnum' // 记录记录 import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore' // 全局设置 @@ -111,11 +112,12 @@ export const useChartEditStore = defineStore({ requestOriginUrl: '', requestInterval: requestInterval, requestIntervalUnit: requestIntervalUnit, + requestParamsBodyType: RequestBodyEnum.NONE, requestParams: { Body: { "form-data": {}, "x-www-form-urlencoded": {}, - json: {}, + json: '', xml: '' }, Cookie: {}, diff --git a/src/styles/pages/index.scss b/src/styles/pages/index.scss new file mode 100644 index 00000000..3e1b45e5 --- /dev/null +++ b/src/styles/pages/index.scss @@ -0,0 +1 @@ +// 页面全局样式 \ No newline at end of file diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.vue index c22b4429..5bb1ac2a 100644 --- a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.vue +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMatchingAndShow/index.vue @@ -166,7 +166,7 @@ const dimensionsAndSourceHandle = () => { // 过滤结果 const filterRes = (data: any) => { try { - if(targetData.value.filter) { + if (targetData.value.filter) { const fn = new Function('data', targetData.value.filter) const res = fn(cloneDeep(data)) return toString(res) diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue index 849d6512..c3b66bc5 100644 --- a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue @@ -7,16 +7,73 @@