From 8f4ae6f3ba392e3eb84174d97fa48533f6b0fa72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=94=E8=B7=91=E7=9A=84=E9=9D=A2=E6=9D=A1?= <1262327911@qq.com> Date: Sun, 26 Jun 2022 15:11:52 +0800 Subject: [PATCH 01/29] docs: update README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 05267c46..af7d5dc3 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图 ### 携带 **👻 后端** 请求分支: **`master-fetch`** +### GoView **📚 文档** 地址:[http://www.mtruning.club:81/](http://www.mtruning.club:81/) + 项目纯前端-Demo 地址:[https://www.mtruning.club](https://www.mtruning.club) 项目带后端-Demo 地址:[后端 Demo 地址](http://1.117.240.165:8080/goview/#/login) From 5ed7374592dc01be4cf4e46f6dd6efb85a62f040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=94=E8=B7=91=E7=9A=84=E9=9D=A2=E6=9D=A1?= <1262327911@qq.com> Date: Wed, 6 Jul 2022 21:42:24 +0800 Subject: [PATCH 02/29] =?UTF-8?q?build:=20=E5=8D=87=E7=BA=A7=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=88=B01.0.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 98295f6f..a2becb4b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "go-view", - "version": "1.0.4", + "version": "1.0.5", "scripts": { "dev": "vite --host", "build": "vue-tsc --noEmit && vite build", From 46f80ea9079437999dcce625810261d0605eda7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=94=E8=B7=91=E7=9A=84=E9=9D=A2=E6=9D=A1?= <1262327911@qq.com> Date: Mon, 11 Jul 2022 09:01:19 +0800 Subject: [PATCH 03/29] =?UTF-8?q?feat:=20=E7=BC=96=E5=86=99=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E9=85=8D=E7=BD=AE=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/ChartItemSetting/SettingItemBox.vue | 10 ++- src/enums/httpEnum.ts | 75 +++++++++++++++++- src/packages/public/publicConfig.ts | 6 +- src/plugins/naive.ts | 4 + src/settings/designSetting.ts | 4 + .../chartEditStore/chartEditStore.d.ts | 45 ++++++----- .../modules/chartEditStore/chartEditStore.ts | 16 +++- .../components/ChartDataAjax/index.vue | 13 ++++ .../ChartDataMonacoEditor/index.vue | 2 +- .../components/RequestGlobalConfig/index.ts | 3 + .../components/RequestGlobalConfig/index.vue | 67 ++++++++++++++++ .../components/RequestHeader/index.ts | 3 + .../components/RequestHeader/index.vue | 47 ++++++++++++ .../components/RequestHeaderTable/index.ts | 3 + .../components/RequestHeaderTable/index.vue | 11 +++ .../components/RequestTargetConfig/index.ts | 3 + .../components/RequestTargetConfig/index.vue | 75 ++++++++++++++++++ .../components/ChartDataRequest/index.ts | 3 + .../components/ChartDataRequest/index.vue | 62 +++++++++++++++ .../components/ChartData/index.d.ts | 76 ++++++++++++++++++- 20 files changed, 497 insertions(+), 31 deletions(-) create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.ts create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.vue create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.ts create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.ts create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.vue create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.ts create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.ts create mode 100644 src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.vue diff --git a/src/components/Pages/ChartItemSetting/SettingItemBox.vue b/src/components/Pages/ChartItemSetting/SettingItemBox.vue index 56b81c40..95893596 100644 --- a/src/components/Pages/ChartItemSetting/SettingItemBox.vue +++ b/src/components/Pages/ChartItemSetting/SettingItemBox.vue @@ -8,9 +8,9 @@
@@ -28,6 +28,11 @@ defineProps({ type: Boolean, default: false, required: false + }, + itemRightStyle: { + type: Object, + default: () => {}, + required: false } }) @@ -48,7 +53,6 @@ $leftWidth: 60px; .item-right { display: grid; grid-column-gap: 10px; - grid-template-columns: 1fr 1fr; width: calc(100% - #{$leftWidth}); } } diff --git a/src/enums/httpEnum.ts b/src/enums/httpEnum.ts index 165948f5..50dcbf7c 100644 --- a/src/enums/httpEnum.ts +++ b/src/enums/httpEnum.ts @@ -7,7 +7,7 @@ export enum ResultEnum { SERVER_ERROR = 500, SERVER_FORBIDDEN = 403, NOT_FOUND = 404, - TIMEOUT = 10042, + TIMEOUT = 10042 } // 数据相关 @@ -15,7 +15,15 @@ export enum RequestDataTypeEnum { // 静态数据 STATIC = 0, // 请求数据 - AJAX = 1, + AJAX = 1 +} + +// 请求主体类型 +export enum RequestContentTypeEnum { + // 普通请求 + DEFAULT = 0, + // SQL请求 + SQL = 1 } /** @@ -26,7 +34,66 @@ export enum RequestHttpEnum { POST = 'post', PATCH = 'patch', PUT = 'put', - DELETE = 'delete', + DELETE = 'delete' +} + +/** + * @description: 请求间隔 + */ +export enum RequestHttpIntervalEnum { + // 秒 + SECOND = 'second', + // 分 + MINUTE = 'minute', + // 时 + HOUR = 'hour', + // 天 + DAY = 'day' +} + +/** + * @description: 请求间隔名称 + */ +export const SelectHttpTimeNameObj = { + [RequestHttpIntervalEnum.SECOND]: '秒', + [RequestHttpIntervalEnum.MINUTE]: '分', + [RequestHttpIntervalEnum.HOUR]: '时', + [RequestHttpIntervalEnum.DAY]: '天' +} + +/** + * @description: 请求头部类型 + */ +export enum RequestBodyEnum { + FORM_DATA = 'form-data', + X_WWW_FORM_URLENCODED = 'x-www-form-urlencoded', + JSON = 'json', + XML = 'xml' +} + +/** + * @description: 请求参数类型 + */ +export enum RequestParamsTypeEnum { + PARAMS = 'Params', + BODY = 'Body', + HEADER = 'Header', + COOKIE = 'Cookie' +} + +/** + * @description: 请求参数主体 + */ +export type RequestParams = { + [RequestParamsTypeEnum.PARAMS]: object, + [RequestParamsTypeEnum.COOKIE]: object, + [RequestParamsTypeEnum.HEADER]: object, + [RequestParamsTypeEnum.BODY]: { + [RequestBodyEnum.FORM_DATA]: object, + [RequestBodyEnum.X_WWW_FORM_URLENCODED]: object, + [RequestBodyEnum.JSON]: object, + [RequestBodyEnum.XML]: string, + } } /** @@ -40,5 +107,5 @@ export enum ContentTypeEnum { // form-data 一般配合qs FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8', // form-data 上传 - FORM_DATA = 'multipart/form-data;charset=UTF-8', + FORM_DATA = 'multipart/form-data;charset=UTF-8' } diff --git a/src/packages/public/publicConfig.ts b/src/packages/public/publicConfig.ts index d4fde6be..cc7be730 100644 --- a/src/packages/public/publicConfig.ts +++ b/src/packages/public/publicConfig.ts @@ -1,14 +1,16 @@ import { getUUID } from '@/utils' import { PublicConfigType } from '@/packages/index.d' import { RequestConfigType } from '@/store/modules/chartEditStore/chartEditStore.d' -import { RequestHttpEnum, RequestDataTypeEnum } from '@/enums/httpEnum' +import { RequestHttpEnum, RequestDataTypeEnum, RequestHttpIntervalEnum, RequestContentTypeEnum } from '@/enums/httpEnum' import { chartInitConfig } from '@/settings/designSetting' const requestConfig: RequestConfigType = { requestDataType: RequestDataTypeEnum.STATIC, requestHttpType: RequestHttpEnum.GET, requestUrl: '', - requestInterval: undefined + requestInterval: undefined, + requestIntervalUnit: RequestHttpIntervalEnum.SECOND, + requestContentType: RequestContentTypeEnum.DEFAULT } export class publicConfig implements PublicConfigType { diff --git a/src/plugins/naive.ts b/src/plugins/naive.ts index 8e7e3dd6..a1e03c3a 100644 --- a/src/plugins/naive.ts +++ b/src/plugins/naive.ts @@ -37,6 +37,7 @@ import { NTooltip, NAvatar, NTabs, + NTab, NTabPane, NCard, NRow, @@ -68,6 +69,7 @@ import { NSteps, NStep, NInputGroup, + NInputGroupLabel, NResult, NDescriptions, NDescriptionsItem, @@ -136,6 +138,7 @@ const naive = create({ NTooltip, NAvatar, NTabs, + NTab, NTabPane, NCard, NRow, @@ -167,6 +170,7 @@ const naive = create({ NSteps, NStep, NInputGroup, + NInputGroupLabel, NResult, NDescriptions, NDescriptionsItem, diff --git a/src/settings/designSetting.ts b/src/settings/designSetting.ts index fe10d8ff..dbb86da5 100644 --- a/src/settings/designSetting.ts +++ b/src/settings/designSetting.ts @@ -1,4 +1,5 @@ import { LangEnum, PreviewScaleEnum } from '@/enums/styleEnum' +import { RequestHttpIntervalEnum } from '@/enums/httpEnum' import designColor from './designColor.json' // 默认语言 @@ -51,5 +52,8 @@ export const previewScaleType = PreviewScaleEnum.FIT // 数据请求间隔 export const requestInterval = 30 +// 数据请求间隔单位 +export const requestIntervalUnit = RequestHttpIntervalEnum.SECOND + // 工作区域历史记录存储最大数量 export const editHistoryMax = 100 \ No newline at end of file diff --git a/src/store/modules/chartEditStore/chartEditStore.d.ts b/src/store/modules/chartEditStore/chartEditStore.d.ts index dab3a992..767ae4b7 100644 --- a/src/store/modules/chartEditStore/chartEditStore.d.ts +++ b/src/store/modules/chartEditStore/chartEditStore.d.ts @@ -1,11 +1,14 @@ -import { CreateComponentType, FilterEnum} from '@/packages/index.d' +import { CreateComponentType, FilterEnum } from '@/packages/index.d' import { HistoryActionTypeEnum } from '@/store/modules/chartHistoryStore/chartHistoryStore.d' -import { RequestHttpEnum, RequestDataTypeEnum } from '@/enums/httpEnum' -import { PreviewScaleEnum } from '@/enums/styleEnum' -import type { - ChartColorsNameType, - GlobalThemeJsonType, -} from '@/settings/chartThemes/index' +import { + RequestHttpEnum, + RequestContentTypeEnum, + RequestDataTypeEnum, + RequestHttpIntervalEnum, + RequestParams +} from '@/enums/httpEnum' +import { PreviewScaleEnum, RequestBodyEnum } from '@/enums/styleEnum' +import type { ChartColorsNameType, GlobalThemeJsonType } from '@/settings/chartThemes/index' // 编辑画布属性 export enum EditCanvasTypeEnum { @@ -16,7 +19,7 @@ export enum EditCanvasTypeEnum { USER_SCALE = 'userScale', LOCK_SCALE = 'lockScale', IS_CREATE = 'isCreate', - IS_DRAG = 'isDrag', + IS_DRAG = 'isDrag' } // 编辑区域 @@ -47,7 +50,7 @@ export enum EditCanvasConfigEnum { BACKGROUND = 'background', BACKGROUND_IMAGE = 'backgroundImage', SELECT_COLOR = 'selectColor', - PREVIEW_SCALE_TYPE = 'previewScaleType', + PREVIEW_SCALE_TYPE = 'previewScaleType' } export interface EditCanvasConfigType { @@ -89,7 +92,7 @@ export enum EditCanvasTypeEnum { START_X = 'startX', START_Y = 'startY', X = 'x', - Y = 'y', + Y = 'y' } // 鼠标位置 @@ -127,27 +130,35 @@ export enum ChartEditStoreEnum { // 以下需要存储 EDIT_CANVAS_CONFIG = 'editCanvasConfig', REQUEST_GLOBAL_CONFIG = 'requestGlobalConfig', - COMPONENT_LIST = 'componentList', + COMPONENT_LIST = 'componentList' +} + +// 请求公共类型 +type RequestPublicConfigType = { + // 组件定制轮询时间 + requestInterval?: number + // 时间单位(时分秒) + requestIntervalUnit: RequestHttpIntervalEnum + // 请求内容 + requestParams: RequestParams } // 全局的图表请求配置 -export type RequestGlobalConfigType = { +export interface RequestGlobalConfigType extends RequestPublicConfigType { // 请求源地址 requestOriginUrl?: string - // 全局默认轮询时间 - requestInterval: number } // 单个图表请求配置 -export type RequestConfigType = { +export interface RequestConfigType extends RequestPublicConfigType { // 获取数据的方式 requestDataType: RequestDataTypeEnum // 请求方式 get/post/del/put/patch requestHttpType: RequestHttpEnum // 源后续的 url requestUrl?: string - // 组件定制轮询时间 - requestInterval?: number + // 请求内容主体方式 普通/sql + requestContentType: RequestContentTypeEnum } // Store 类型 diff --git a/src/store/modules/chartEditStore/chartEditStore.ts b/src/store/modules/chartEditStore/chartEditStore.ts index 3803960d..0bfb310b 100644 --- a/src/store/modules/chartEditStore/chartEditStore.ts +++ b/src/store/modules/chartEditStore/chartEditStore.ts @@ -3,7 +3,7 @@ import { CreateComponentType } from '@/packages/index.d' import debounce from 'lodash/debounce' import cloneDeep from 'lodash/cloneDeep' import { defaultTheme, globalThemeJson } from '@/settings/chartThemes/index' -import { requestInterval, previewScaleType } from '@/settings/designSetting' +import { requestInterval, previewScaleType, requestIntervalUnit } from '@/settings/designSetting' // 记录记录 import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHistoryStore' // 全局设置 @@ -109,7 +109,19 @@ export const useChartEditStore = defineStore({ // 数据请求处理(需存储给后端) requestGlobalConfig: { requestOriginUrl: '', - requestInterval: requestInterval + requestInterval: requestInterval, + requestIntervalUnit: requestIntervalUnit, + requestParams: { + Body: { + "form-data": {}, + "x-www-form-urlencoded": {}, + json: {}, + xml: '' + }, + Cookie: {}, + Header: {}, + Params: {} + } }, // 图表数组(需存储给后端) componentList: [] diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.vue index 488eefb0..d672891a 100644 --- a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.vue +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataAjax/index.vue @@ -1,5 +1,6 @@ + @@ -72,6 +78,7 @@ import { ref, toRefs, onBeforeUnmount, watchEffect } from 'vue' import { icon } from '@/plugins' import { SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting' +import { ChartDataRequest } from '../ChartDataRequest/index' import { RequestHttpEnum, ResultEnum } from '@/enums/httpEnum' import { chartDataUrl, rankListUrl, scrollBoardUrl, numberFloatUrl, numberIntUrl, textUrl, imageUrl } from '@/api/mock' import { http } from '@/api/http' @@ -85,6 +92,7 @@ const { targetData, chartEditStore } = useTargetData() const { requestOriginUrl } = toRefs(chartEditStore.getRequestGlobalConfig) // 是否展示数据分析 const loading = ref(false) +const requestShow = ref(false) const showMatching = ref(false) let lastFilter: any = undefined @@ -124,6 +132,11 @@ const selectOptions: SelectHttpType[] = [ } ] +// 请求配置 model +const requestModelHandle = () => { + requestShow.value = true +} + // 发送请求 const sendHandle = async () => { loading.value = true diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue index 00eef16e..d9435fe3 100644 --- a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue @@ -88,7 +88,7 @@ 取消 - 保存 + 保存 diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.ts b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.ts new file mode 100644 index 00000000..a6efbcc2 --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.ts @@ -0,0 +1,3 @@ +import RequestGlobalConfig from './index.vue' + +export { RequestGlobalConfig } diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.vue new file mode 100644 index 00000000..c8e5d7bb --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestGlobalConfig/index.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.ts b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.ts new file mode 100644 index 00000000..71865c65 --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.ts @@ -0,0 +1,3 @@ +import RequestHeader from './index.vue' + +export { RequestHeader } 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 new file mode 100644 index 00000000..849d6512 --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeader/index.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.ts b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.ts new file mode 100644 index 00000000..b016ea61 --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.ts @@ -0,0 +1,3 @@ +import RequestHeaderTable from './index.vue' + +export { RequestHeaderTable } diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.vue new file mode 100644 index 00000000..e34ecb6e --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestHeaderTable/index.vue @@ -0,0 +1,11 @@ + + + + + diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.ts b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.ts new file mode 100644 index 00000000..d3242c60 --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.ts @@ -0,0 +1,3 @@ +import RequestTargetConfig from './index.vue' + +export { RequestTargetConfig } diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue new file mode 100644 index 00000000..0c906b82 --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.ts b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.ts new file mode 100644 index 00000000..d0c33687 --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.ts @@ -0,0 +1,3 @@ +import ChartDataRequest from './index.vue' + +export { ChartDataRequest } diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.vue new file mode 100644 index 00000000..6097292a --- /dev/null +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/index.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/src/views/chart/ContentConfigurations/components/ChartData/index.d.ts b/src/views/chart/ContentConfigurations/components/ChartData/index.d.ts index c6707bcb..fb70fe6d 100644 --- a/src/views/chart/ContentConfigurations/components/ChartData/index.d.ts +++ b/src/views/chart/ContentConfigurations/components/ChartData/index.d.ts @@ -1,4 +1,4 @@ -import { RequestHttpEnum, RequestDataTypeEnum } from '@/enums/httpEnum' +import { RequestHttpEnum, RequestHttpIntervalEnum, RequestDataTypeEnum, SelectHttpTimeNameObj } from '@/enums/httpEnum' // 匹配结果 export enum DataResultEnum { @@ -24,9 +24,81 @@ export interface SelectCreateDataType { disabled?: boolean } -// ajax 请求 +// ajax 请求类型 export interface SelectHttpType { label: RequestHttpEnum value: RequestHttpEnum disabled?: boolean + style?: object } + +// 类型选项 +export const selectTypeOptions: SelectHttpType[] = [ + { + label: RequestHttpEnum.GET, + value: RequestHttpEnum.GET, + style: { + color: 'greenyellow', + fontWeight: 'bold' + } + }, + { + label: RequestHttpEnum.POST, + value: RequestHttpEnum.POST, + style: { + color: 'skyblue', + fontWeight: 'bold' + } + }, + { + label: RequestHttpEnum.PUT, + value: RequestHttpEnum.PUT, + style: { + color: 'goldenrod', + fontWeight: 'bold' + } + }, + { + label: RequestHttpEnum.PATCH, + value: RequestHttpEnum.PATCH, + style: { + color: 'violet', + fontWeight: 'bold' + } + }, + { + label: RequestHttpEnum.DELETE, + value: RequestHttpEnum.DELETE, + disabled: true, + style: { + fontWeight: 'bold' + } + }, +] + +// ajax 请求间隔 +export interface SelectHttpTimeType { + label: string + value: RequestHttpIntervalEnum + disabled?: boolean +} + +// 时间选项 +export const selectTimeOptions: SelectHttpTimeType[] = [ + { + label: SelectHttpTimeNameObj[RequestHttpIntervalEnum.SECOND], + value: RequestHttpIntervalEnum.SECOND + }, + { + label: SelectHttpTimeNameObj[RequestHttpIntervalEnum.MINUTE], + value: RequestHttpIntervalEnum.MINUTE + }, + { + label: SelectHttpTimeNameObj[RequestHttpIntervalEnum.HOUR], + value: RequestHttpIntervalEnum.HOUR + }, + { + label: SelectHttpTimeNameObj[RequestHttpIntervalEnum.DAY], + value: RequestHttpIntervalEnum.DAY + }, +] \ No newline at end of file From 1c54bd836a4c02c4e72676cbd61fa8c81646bd3d Mon Sep 17 00:00:00 2001 From: wei <1196957227@qq.com> Date: Wed, 13 Jul 2022 11:00:14 +0800 Subject: [PATCH 04/29] docs: update README --- README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index af7d5dc3..d51c220f 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。 -### 纯 **😶 前端** 分支: **`master`** +### 😶 纯 **前端** 分支: **`master`** -### 携带 **👻 后端** 请求分支: **`master-fetch`** +### 👻 携带 ** 后端** 请求分支: **`master-fetch`** -### GoView **📚 文档** 地址:[http://www.mtruning.club:81/](http://www.mtruning.club:81/) +### 📚 GoView ** 文档** 地址:[http://www.mtruning.club:81/](http://www.mtruning.club:81/) 项目纯前端-Demo 地址:[https://www.mtruning.club](https://www.mtruning.club) @@ -18,6 +18,12 @@ GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图 文档-源码地址:[https://gitee.com/MTrun/go-view-doc](https://gitee.com/MTrun/go-view-doc) +### 🤯 后端项目 + +后端项目gitee地址:[https://gitee.com/MTrun/go-view-serve](https://gitee.com/MTrun/go-view-serve) + +接口说明地址:[https://docs.apipost.cn/preview/5aa85d10a59d66ce/ddb813732007ad2b?target_id=84dbc5b0-158f-4bcb-8f74-793ac604ada3#3e053622-1e76-43f9-a039-756aee822dbb](https://docs.apipost.cn/preview/5aa85d10a59d66ce/ddb813732007ad2b?target_id=84dbc5b0-158f-4bcb-8f74-793ac604ada3#3e053622-1e76-43f9-a039-756aee822dbb) + 技术点: - 框架:基于 `Vue3` 框架编写,使用 `hooks` 写法抽离部分逻辑,使代码结构更加清晰; From 5e502eed6d9a3ff40628b473f4f24f33322cad3f Mon Sep 17 00:00:00 2001 From: wei <1196957227@qq.com> Date: Wed, 13 Jul 2022 11:06:42 +0800 Subject: [PATCH 05/29] docs: update README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d51c220f..9b194765 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图 ### 😶 纯 **前端** 分支: **`master`** -### 👻 携带 ** 后端** 请求分支: **`master-fetch`** +### 👻 携带 **后端** 请求分支: **`master-fetch`** -### 📚 GoView ** 文档** 地址:[http://www.mtruning.club:81/](http://www.mtruning.club:81/) +### 📚 GoView **文档** 地址:[http://www.mtruning.club:81/](http://www.mtruning.club:81/) 项目纯前端-Demo 地址:[https://www.mtruning.club](https://www.mtruning.club) From 54555ece08254b35f8e540d21d249360c8d250ed Mon Sep 17 00:00:00 2001 From: wei <1196957227@qq.com> Date: Wed, 13 Jul 2022 15:01:43 +0800 Subject: [PATCH 06/29] =?UTF-8?q?fix:=20=E5=B0=8F=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E7=BF=BB=E7=89=8C=E9=A2=9C=E8=89=B2=E5=89=8D?= =?UTF-8?q?=E7=BC=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/packages/components/Decorates/Mores/Number/config.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packages/components/Decorates/Mores/Number/config.vue b/src/packages/components/Decorates/Mores/Number/config.vue index 21736689..760fb14f 100644 --- a/src/packages/components/Decorates/Mores/Number/config.vue +++ b/src/packages/components/Decorates/Mores/Number/config.vue @@ -44,7 +44,7 @@ From 20b196a12a19327be00fb5fbad0fff25238314e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=94=E8=B7=91=E7=9A=84=E9=9D=A2=E6=9D=A1?= <1262327911@qq.com> Date: Fri, 15 Jul 2022 00:11:42 +0800 Subject: [PATCH 07/29] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E7=BC=96=E8=BE=91=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Pages/MonacoEditor/EditorWorker.vue | 4 + src/enums/httpEnum.ts | 29 +++- src/main.ts | 2 + src/packages/public/publicConfig.ts | 27 ++- .../chartEditStore/chartEditStore.d.ts | 12 +- .../modules/chartEditStore/chartEditStore.ts | 4 +- src/styles/pages/index.scss | 1 + .../ChartDataMatchingAndShow/index.vue | 2 +- .../components/RequestHeader/index.vue | 103 ++++++++++-- .../components/RequestHeaderTable/index.vue | 157 +++++++++++++++++- .../components/RequestTargetConfig/index.vue | 5 +- .../components/ChartDataRequest/index.vue | 5 +- vite.config.ts | 2 +- 13 files changed, 318 insertions(+), 35 deletions(-) create mode 100644 src/styles/pages/index.scss 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 @@
- + {{ item }} + + +
+
+ +
+ + +
+ + + + {{ bodyEnum }} + + + + + + + 该请求没有 Body 体 + + + + + + + + + + +
+
- + sql - +
@@ -24,20 +81,44 @@ + diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue index 0c906b82..afba71b5 100644 --- a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataRequest/components/RequestTargetConfig/index.vue @@ -7,7 +7,7 @@ gridTemplateColumns: '5fr 2fr 1fr' }" > - + @@ -55,11 +55,10 @@ import { selectTypeOptions, selectTimeOptions } from '@/views/chart/ContentConfi import { RequestHeader } from '../RequestHeader' import { icon } from '@/plugins' -const { PencilIcon, FlashIcon } = icon.ionicons5 +const { FlashIcon } = icon.ionicons5 const { targetData, chartEditStore } = useTargetData() const { requestOriginUrl } = toRefs(chartEditStore.getRequestGlobalConfig) const { requestInterval, requestIntervalUnit, requestHttpType, requestUrl } = toRefs(targetData.value.request) -const disabled = ref(true) 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 c3b66bc5..9bc90beb 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 @@ -12,7 +12,7 @@ -
+
@@ -80,7 +80,7 @@ diff --git a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue index 4dfa6b92..40470f66 100644 --- a/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue +++ b/src/views/chart/ContentConfigurations/components/ChartData/components/ChartDataMonacoEditor/index.vue @@ -25,7 +25,7 @@