Commit 3d7ab5e9d5f05e822139ca707f839b56f6e07e15

Authored by ww
1 parent 2d795708

fix(preview): 修复预览模式下未轮训请求

1 1 import { ref, toRefs, toRaw, watch } from 'vue'
2 2 import type VChart from 'vue-echarts'
3   -import { customizeHttp } from '@/api/http'
4 3 import { useChartDataPondFetch } from '@/hooks/'
5 4 import { CreateComponentType, ChartFrameEnum } from '@/packages/index.d'
6 5 import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
7   -import { RequestDataTypeEnum } from '@/enums/httpEnum'
8   -import { isPreview, newFunctionHandle, intervalUnitHandle } from '@/utils'
  6 +import { isPreview, intervalUnitHandle } from '@/utils'
9 7 import { setOption } from '@/packages/public/chart'
  8 +import { useChartDataSocket } from './useChartDataSocket'
  9 +import { customRequest } from '@/api/external/customRequest'
  10 +import { useFilterFn } from './useFilterFn'
10 11
11 12 // 获取类型
12 13 type ChartEditStoreType = typeof useChartEditStore
... ... @@ -52,18 +53,13 @@ export const useChartDataFetch = (
52 53
53 54 // 目标组件
54 55 const {
55   - requestDataType,
56 56 requestUrl,
57 57 requestIntervalUnit: targetUnit,
58 58 requestInterval: targetInterval
59 59 } = toRefs(targetComponent.request)
60 60
61   - // 非请求类型
62   - if (requestDataType.value !== RequestDataTypeEnum.AJAX) return
63   -
64 61 try {
65   - // 处理地址
66   - // @ts-ignore
  62 + // 处理地址
67 63 if (requestUrl?.value) {
68 64 // requestOriginUrl 允许为空
69 65 const completePath = requestOriginUrl && requestOriginUrl.value + requestUrl.value
... ... @@ -72,14 +68,15 @@ export const useChartDataFetch = (
72 68 clearInterval(fetchInterval)
73 69
74 70 const fetchFn = async () => {
75   - const res = await customizeHttp(toRaw(targetComponent.request), toRaw(chartEditStore.getRequestGlobalConfig))
  71 + const res = await customRequest(toRaw(targetComponent.request))
76 72 if (res) {
77 73 try {
78 74 const filter = targetComponent.filter
79   - echartsUpdateHandle(newFunctionHandle(res?.data, res, filter))
  75 + const { value } = useFilterFn(filter, res)
  76 + echartsUpdateHandle(value)
80 77 // 更新回调函数
81 78 if (updateCallback) {
82   - updateCallback(newFunctionHandle(res?.data, res, filter))
  79 + updateCallback(value)
83 80 }
84 81 } catch (error) {
85 82 console.error(error)
... ... @@ -113,10 +110,9 @@ export const useChartDataFetch = (
113 110 }
114 111
115 112 if (isPreview()) {
116   - // 判断是否是数据池类型
117   - targetComponent.request.requestDataType === RequestDataTypeEnum.Pond
118   - ? addGlobalDataInterface(targetComponent, useChartEditStore, updateCallback || echartsUpdateHandle)
119   - : requestIntervalFn()
  113 + requestIntervalFn()
  114 + const { initial } = useChartDataSocket()
  115 + initial(targetComponent, useChartEditStore, updateCallback)
120 116 }
121 117 return { vChartRef }
122 118 }
... ...
... ... @@ -7,18 +7,21 @@ import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore
7 7 import { RequestDataTypeEnum } from '@/enums/httpEnum'
8 8 import { isPreview, newFunctionHandle, intervalUnitHandle } from '@/utils'
9 9 import { setOption } from '@/packages/public/chart'
10   -import { useChartDataSocket } from './external/useChartDataSocket'
  10 +
  11 +// THINGS_KIT 重写默认方法
  12 +export { useChartDataFetch } from './external/useChartDataFetch.hook'
11 13
12 14 // 获取类型
13 15 type ChartEditStoreType = typeof useChartEditStore
14 16
  17 +// THINGS_KIT 重命名默认方法
15 18 /**
16 19 * setdata 数据监听与更改
17 20 * @param targetComponent
18 21 * @param useChartEditStore 若直接引会报错,只能动态传递
19 22 * @param updateCallback 自定义更新函数
20 23 */
21   -export const useChartDataFetch = (
  24 +export const originUseChartDataFetch = (
22 25 targetComponent: CreateComponentType,
23 26 useChartEditStore: ChartEditStoreType,
24 27 updateCallback?: (...args: any) => any
... ... @@ -119,9 +122,5 @@ export const useChartDataFetch = (
119 122 ? addGlobalDataInterface(targetComponent, useChartEditStore, updateCallback || echartsUpdateHandle)
120 123 : requestIntervalFn()
121 124 }
122   -
123   - // THINGS_KIT 添加socket支持
124   - const { initial } = useChartDataSocket()
125   - initial(targetComponent, useChartEditStore, updateCallback)
126 125 return { vChartRef }
127 126 }
... ...
... ... @@ -37,7 +37,6 @@ export function createPermissionGuard(router: Router) {
37 37 }
38 38
39 39 const token = userStore.getJwtToken
40   - console.log(token)
41 40
42 41 if (to.matched.find(item => whitePathList.includes(item.path))) {
43 42 if (to.path === PageEnum.BASE_LOGIN && token) {
... ...
... ... @@ -54,7 +54,7 @@ const handleFilter = (query: string, option: SelectOption) => {
54 54
55 55 const requestHttpTypeRef = ref<RequestHttpEnum>()
56 56
57   -const requestIntervalValueRef = ref<number>(30)
  57 +const requestIntervalValueRef = ref<undefined | number>(30)
58 58
59 59 const requestIntervalUnitRef = ref<RequestHttpIntervalEnum>(RequestHttpIntervalEnum.SECOND)
60 60
... ... @@ -112,12 +112,14 @@ const getConfigurationData = () => {
112 112 record.requestParams[RequestParamsTypeEnum.PARAMS] = getDynamicFormValue()
113 113 record.requestParams[RequestParamsTypeEnum.HEADER] = unref(headerRef)
114 114 record.requestParams[RequestParamsTypeEnum.BODY] = bodyValue
  115 + record.requestInterval = unref(requestIntervalValueRef)
  116 + record.requestIntervalUnit = unref(requestIntervalUnitRef)
115 117 return record
116 118 }
117 119
118 120 const setConfigurationData = async (request: ExtraRequestConfigType) => {
119 121 await getPublicInterfaceList()
120   - const { requestDataPondId, requestParams, requestParamsBodyType, requestContentType, requestHttpType } = request
  122 + const { requestDataPondId, requestParams, requestParamsBodyType, requestContentType, requestHttpType, requestIntervalUnit, requestInterval } = request
121 123 const { Header } = requestParams
122 124 selectedPublicInterface.value = requestDataPondId
123 125 requestContentTypeRef.value = requestContentType
... ... @@ -125,6 +127,8 @@ const setConfigurationData = async (request: ExtraRequestConfigType) => {
125 127 headerRef.value = Header
126 128 requestParamsBodyTypeRef.value = requestParamsBodyType
127 129 requestBodyRef.value = requestParams
  130 + requestIntervalUnitRef.value = requestIntervalUnit
  131 + requestIntervalValueRef.value = requestInterval
128 132 await nextTick()
129 133 setDynamicFormValue(request)
130 134 }
... ...