Commit 9f4efca89cf08cddc1462712faf2b9fb02882333

Authored by xp.Huang
2 parents 5e894f61 76455f6b

Merge branch 'fix/types-error' into 'main_dev'

fix: 修复类型错误

See merge request yunteng/thingskit-view!228
1 -import { ref, toRefs, toRaw, watch } from 'vue' 1 +import {ref, toRefs, toRaw, watch} from 'vue'
2 import type VChart from 'vue-echarts' 2 import type VChart from 'vue-echarts'
3 -import { useChartDataPondFetch } from '@/hooks/'  
4 -import { CreateComponentType, ChartFrameEnum, CreateComponentGroupType } from '@/packages/index.d'  
5 -import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'  
6 -import { isPreview, intervalUnitHandle } from '@/utils'  
7 -import { setOption } from '@/packages/public/chart'  
8 -import { useChartDataSocket } from './useChartDataSocket'  
9 -import { customRequest } from '@/api/external/customRequest'  
10 -import { useFilterFn } from './useFilterFn'  
11 -import { RequestContentTypeEnum } from '@/enums/external/httpEnum' 3 +import {useChartDataPondFetch} from '@/hooks/'
  4 +import {CreateComponentType, ChartFrameEnum, CreateComponentGroupType} from '@/packages/index.d'
  5 +import {useChartEditStore} from '@/store/modules/chartEditStore/chartEditStore'
  6 +import {isPreview, intervalUnitHandle} from '@/utils'
  7 +import {setOption} from '@/packages/public/chart'
  8 +import {useChartDataSocket} from './useChartDataSocket'
  9 +import {customRequest} from '@/api/external/customRequest'
  10 +import {useFilterFn} from './useFilterFn'
  11 +import {RequestContentTypeEnum} from '@/enums/external/httpEnum'
12 import dayjs from 'dayjs' 12 import dayjs from 'dayjs'
13 13
14 14
@@ -22,123 +22,123 @@ type ChartEditStoreType = typeof useChartEditStore @@ -22,123 +22,123 @@ type ChartEditStoreType = typeof useChartEditStore
22 * @param updateCallback 自定义更新函数 22 * @param updateCallback 自定义更新函数
23 */ 23 */
24 export const useChartDataFetch = ( 24 export const useChartDataFetch = (
25 - targetComponent: CreateComponentType,  
26 - useChartEditStore: ChartEditStoreType,  
27 - updateCallback?: (...args: any) => any 25 + targetComponent: CreateComponentType,
  26 + useChartEditStore: ChartEditStoreType,
  27 + updateCallback?: (...args: any) => any
28 ) => { 28 ) => {
29 - const vChartRef = ref<typeof VChart | null>(null)  
30 - let fetchInterval: any = 0 29 + const vChartRef = ref<typeof VChart | null>(null)
  30 + let fetchInterval: any = 0
31 31
32 - // 组件类型  
33 - const { chartFrame } = targetComponent.chartConfig 32 + // 组件类型
  33 + const {chartFrame} = targetComponent.chartConfig
34 34
35 - // eCharts 组件配合 vChart 库更新方式  
36 - const echartsUpdateHandle = (dataset: any) => {  
37 - if (chartFrame === ChartFrameEnum.ECHARTS) {  
38 - if (vChartRef.value) {  
39 - setOption(vChartRef.value, { dataset: dataset })  
40 - } 35 + // eCharts 组件配合 vChart 库更新方式
  36 + const echartsUpdateHandle = (dataset: any) => {
  37 + if (chartFrame === ChartFrameEnum.ECHARTS) {
  38 + if (vChartRef.value) {
  39 + setOption(vChartRef.value, {dataset: dataset})
  40 + }
  41 + }
41 } 42 }
42 - }  
43 43
44 - const requestIntervalFn = () => {  
45 - const chartEditStore = useChartEditStore()  
46 - if ((targetComponent.request.requestContentType as RequestContentTypeEnum) === RequestContentTypeEnum.WEB_SOCKET) return 44 + const requestIntervalFn = () => {
  45 + const chartEditStore = useChartEditStore()
  46 + if ((targetComponent.request.requestContentType as RequestContentTypeEnum) === RequestContentTypeEnum.WEB_SOCKET) return
47 47
48 - // 全局数据  
49 - const {  
50 - requestOriginUrl,  
51 - requestIntervalUnit: globalUnit,  
52 - requestInterval: globalRequestInterval  
53 - } = toRefs(chartEditStore.getRequestGlobalConfig) 48 + // 全局数据
  49 + const {
  50 + requestOriginUrl,
  51 + requestIntervalUnit: globalUnit,
  52 + requestInterval: globalRequestInterval
  53 + } = toRefs(chartEditStore.getRequestGlobalConfig)
54 54
55 - // 目标组件  
56 - const {  
57 - requestUrl,  
58 - requestIntervalUnit: targetUnit,  
59 - requestInterval: targetInterval  
60 - } = toRefs(targetComponent.request) 55 + // 目标组件
  56 + const {
  57 + requestUrl,
  58 + requestIntervalUnit: targetUnit,
  59 + requestInterval: targetInterval
  60 + } = toRefs(targetComponent.request)
61 61
62 - try {  
63 - // 处理地址  
64 - if (requestUrl?.value) {  
65 - // requestOriginUrl 允许为空  
66 - const completePath = requestOriginUrl && requestOriginUrl.value + requestUrl.value  
67 - if (!completePath) return 62 + try {
  63 + // 处理地址
  64 + if (requestUrl?.value) {
  65 + // requestOriginUrl 允许为空
  66 + const completePath = requestOriginUrl && requestOriginUrl.value + requestUrl.value
  67 + if (!completePath) return
68 68
69 - clearInterval(fetchInterval) 69 + clearInterval(fetchInterval)
70 70
71 - const fetchFn = async () => {  
72 - let startTsValue = null  
73 - let endTsValue = null  
74 - const { requestParams } = toRaw(targetComponent.request)  
75 - const { Params } = requestParams  
76 - const { entityType, startTs, endTs } = Params  
77 - const days = Math.ceil((endTs - startTs) / (1 * 60 * 60 * 24 * 1000))  
78 - if (entityType === 'DEVICE') {  
79 - startTsValue = Date.now() - days <= 32 ? 2592000000: days <= 8 ? 604800000 : startTs  
80 - endTsValue = Date.now()  
81 - toRaw(targetComponent.request).requestParams.Params.startTs = startTsValue  
82 - toRaw(targetComponent.request).requestParams.Params.endTs = endTsValue  
83 - }  
84 - const res = await customRequest(toRaw(targetComponent.request))  
85 - if (res) {  
86 - try {  
87 - const filter = targetComponent.filter  
88 - const { value } = useFilterFn(filter, res)  
89 - echartsUpdateHandle(value)  
90 - // 更新回调函数  
91 - if (updateCallback) {  
92 - updateCallback(value, targetComponent.request)//为了处理设备最新数据轮播列表,这里传过去当前组件的信息  
93 - }  
94 - } catch (error) {  
95 - console.error(error)  
96 - }  
97 - }  
98 - } 71 + const fetchFn = async () => {
  72 + let startTsValue = null
  73 + let endTsValue = null
  74 + const {requestParams} = toRaw(targetComponent.request)
  75 + const {Params} = requestParams
  76 + const {entityType, startTs, endTs} = Params
  77 + const days = Math.ceil(((endTs as unknown as number) - (startTs as unknown as number)) / (1 * 60 * 60 * 24 * 1000))
  78 + if (entityType === 'DEVICE') {
  79 + startTsValue = Date.now() - days <= 32 ? 2592000000 : days <= 8 ? 604800000 : startTs
  80 + endTsValue = Date.now()
  81 + ;(toRaw(targetComponent.request).requestParams.Params.startTs as unknown as number) = startTsValue as number
  82 + ;(toRaw(targetComponent.request).requestParams.Params.endTs as unknown as number) = endTsValue
  83 + }
  84 + const res = await customRequest(toRaw(targetComponent.request))
  85 + if (res) {
  86 + try {
  87 + const filter = targetComponent.filter
  88 + const {value} = useFilterFn(filter, res)
  89 + echartsUpdateHandle(value)
  90 + // 更新回调函数
  91 + if (updateCallback) {
  92 + updateCallback(value, targetComponent.request)//为了处理设备最新数据轮播列表,这里传过去当前组件的信息
  93 + }
  94 + } catch (error) {
  95 + console.error(error)
  96 + }
  97 + }
  98 + }
99 99
100 - // 普通初始化与组件交互处理监听  
101 - watch(  
102 - () => targetComponent.request,  
103 - () => {  
104 - fetchFn()  
105 - },  
106 - {  
107 - immediate: true,  
108 - deep: true  
109 - }  
110 - ) 100 + // 普通初始化与组件交互处理监听
  101 + watch(
  102 + () => targetComponent.request,
  103 + () => {
  104 + fetchFn()
  105 + },
  106 + {
  107 + immediate: true,
  108 + deep: true
  109 + }
  110 + )
111 111
112 - // 定时时间  
113 - const time = targetInterval && targetInterval.value ? targetInterval.value : globalRequestInterval.value  
114 - // 单位  
115 - const unit = targetInterval && targetInterval.value ? targetUnit.value : globalUnit.value  
116 - // 开启轮询  
117 - if (time) fetchInterval = setInterval(fetchFn, intervalUnitHandle(time, unit))  
118 - }  
119 - // eslint-disable-next-line no-empty  
120 - } catch (error) {  
121 - console.log(error) 112 + // 定时时间
  113 + const time = targetInterval && targetInterval.value ? targetInterval.value : globalRequestInterval.value
  114 + // 单位
  115 + const unit = targetInterval && targetInterval.value ? targetUnit.value : globalUnit.value
  116 + // 开启轮询
  117 + if (time) fetchInterval = setInterval(fetchFn, intervalUnitHandle(time, unit))
  118 + }
  119 + // eslint-disable-next-line no-empty
  120 + } catch (error) {
  121 + console.log(error)
  122 + }
122 } 123 }
123 - }  
124 124
125 - if (isPreview()) {  
126 - requestIntervalFn()  
127 - const chartEditStore = useChartEditStore()  
128 - const { initial } = useChartDataSocket()  
129 - /**  
130 - * 支持分组也可以接受ws  
131 - * 如果是分组并且绑定了ws  
132 - */  
133 - chartEditStore.getComponentList?.forEach((item: CreateComponentType | CreateComponentGroupType) => {  
134 - if (item.isGroup) {  
135 - if (item.request.requestUrl?.includes('ws')) {  
136 - initial(item, useChartEditStore, updateCallback)  
137 - }  
138 - }  
139 - })  
140 - //  
141 - initial(targetComponent, useChartEditStore, updateCallback)  
142 - }  
143 - return { vChartRef } 125 + if (isPreview()) {
  126 + requestIntervalFn()
  127 + const chartEditStore = useChartEditStore()
  128 + const {initial} = useChartDataSocket()
  129 + /**
  130 + * 支持分组也可以接受ws
  131 + * 如果是分组并且绑定了ws
  132 + */
  133 + chartEditStore.getComponentList?.forEach((item: CreateComponentType | CreateComponentGroupType) => {
  134 + if (item.isGroup) {
  135 + if (item.request.requestUrl?.includes('ws')) {
  136 + initial(item, useChartEditStore, updateCallback)
  137 + }
  138 + }
  139 + })
  140 + //
  141 + initial(targetComponent, useChartEditStore, updateCallback)
  142 + }
  143 + return {vChartRef}
144 } 144 }