Commit 7da45aca2acadfbebf9402e5a8067b25b82ad9e6
Merge branch 'fix/custom-request' into 'main_dev'
fix: 修复实时请求携带无效参数报错 See merge request yunteng/thingskit-view!201
Showing
3 changed files
with
34 additions
and
33 deletions
@@ -115,12 +115,12 @@ export const getVideoUrl = (id: string) => | @@ -115,12 +115,12 @@ export const getVideoUrl = (id: string) => | ||
115 | }) | 115 | }) |
116 | 116 | ||
117 | //获取行政区域 | 117 | //获取行政区域 |
118 | -export const getGeoJsonMap = (code: number | string, level: string) =>{ | 118 | +export const getGeoJsonMap = (code: number | string, level: string) => { |
119 | return defHttp.get({ | 119 | return defHttp.get({ |
120 | url: `${Api.GEOJSONURL}${code}/${level}` | 120 | url: `${Api.GEOJSONURL}${code}/${level}` |
121 | - },{withShareToken:isShareMode()}) | 121 | + }, { withShareToken: isShareMode() }) |
122 | } | 122 | } |
123 | - | 123 | + |
124 | 124 | ||
125 | // 获取设备详情 | 125 | // 获取设备详情 |
126 | export const getDeviceDetail = (id: string) => | 126 | export const getDeviceDetail = (id: string) => |
@@ -136,11 +136,11 @@ export const getAttribute = (deviceProfileId: string) => | @@ -136,11 +136,11 @@ export const getAttribute = (deviceProfileId: string) => | ||
136 | 136 | ||
137 | // 获取设备最新数据 | 137 | // 获取设备最新数据 |
138 | export const getDeviceLatest = (tbDeviceId: string) => | 138 | export const getDeviceLatest = (tbDeviceId: string) => |
139 | -defHttp.get({ | ||
140 | - url: `${Api.GET_DEVICE_LATEST}${tbDeviceId}/values/timeseries` | ||
141 | -}, { | ||
142 | - joinPrefix: false | ||
143 | -}) | 139 | + defHttp.get({ |
140 | + url: `${Api.GET_DEVICE_LATEST}${tbDeviceId}/values/timeseries` | ||
141 | + }, { | ||
142 | + joinPrefix: false | ||
143 | + }) | ||
144 | 144 | ||
145 | //获取产品属性 | 145 | //获取产品属性 |
146 | export const getProfileAttrs = (params: { deviceProfileId: string; dataType?: string }) => { | 146 | export const getProfileAttrs = (params: { deviceProfileId: string; dataType?: string }) => { |
@@ -94,13 +94,15 @@ const extraValue = (object: Recordable) => { | @@ -94,13 +94,15 @@ const extraValue = (object: Recordable) => { | ||
94 | 94 | ||
95 | const handleParams = (Params: Recordable) => { | 95 | const handleParams = (Params: Recordable) => { |
96 | if (Params.keys && Params?.keys?.length) { | 96 | if (Params.keys && Params?.keys?.length) { |
97 | + // 过滤无效参数 | ||
98 | + Reflect.deleteProperty(Params, 'attrName') | ||
97 | /** ft 修改select联动下拉框选择了属性(单个)报错问题 | 99 | /** ft 修改select联动下拉框选择了属性(单个)报错问题 |
98 | * 源代码 Params.keys = (Params.keys || [] as any).join(',') | 100 | * 源代码 Params.keys = (Params.keys || [] as any).join(',') |
99 | */ | 101 | */ |
100 | - if(!Array.isArray(Params.keys)){ | ||
101 | - Params.keys = ([Params.keys] || [] as any).join(',') | ||
102 | - }else{ | ||
103 | - Params.keys = (Params.keys || [] as any).join(',') | 102 | + if (!Array.isArray(Params.keys)) { |
103 | + Params.keys = ([Params.keys] || [] as any).join(',') | ||
104 | + } else { | ||
105 | + Params.keys = (Params.keys || [] as any).join(',') | ||
104 | } | 106 | } |
105 | //ft | 107 | //ft |
106 | } | 108 | } |
@@ -116,12 +118,12 @@ const handleParams = (Params: Recordable) => { | @@ -116,12 +118,12 @@ const handleParams = (Params: Recordable) => { | ||
116 | } | 118 | } |
117 | 119 | ||
118 | //post请求动态追加query参数 | 120 | //post请求动态追加query参数 |
119 | -const objConvertQuery= (data:Recordable)=> { | 121 | +const objConvertQuery = (data: Recordable) => { |
120 | const _result = []; | 122 | const _result = []; |
121 | for (const key in data) { | 123 | for (const key in data) { |
122 | const value = data[key]; | 124 | const value = data[key]; |
123 | if (value.constructor == Array) { | 125 | if (value.constructor == Array) { |
124 | - value.forEach(function(_value) { | 126 | + value.forEach(function (_value) { |
125 | _result.push(key + "=" + _value); | 127 | _result.push(key + "=" + _value); |
126 | }); | 128 | }); |
127 | } else { | 129 | } else { |
@@ -152,11 +154,12 @@ export const customRequest = async (request: RequestConfigType) => { | @@ -152,11 +154,12 @@ export const customRequest = async (request: RequestConfigType) => { | ||
152 | * 修改后代码 requestHttpType === RequestHttpEnum.GET.toUpperCase() ? requestUrl: `${requestUrl}?${objConvertQuery(Params)} | 154 | * 修改后代码 requestHttpType === RequestHttpEnum.GET.toUpperCase() ? requestUrl: `${requestUrl}?${objConvertQuery(Params)} |
153 | */ | 155 | */ |
154 | Params = handleParams(Params) | 156 | Params = handleParams(Params) |
157 | + console.log(Params) | ||
155 | return customHttp.request<any>({ | 158 | return customHttp.request<any>({ |
156 | - url: requestHttpType === RequestHttpEnum.GET.toUpperCase() ? requestUrl: `${requestUrl}?${objConvertQuery(Params)}`, | 159 | + url: requestHttpType === RequestHttpEnum.GET.toUpperCase() ? requestUrl : `${requestUrl}?${objConvertQuery(Params)}`, |
157 | baseURL: getOriginUrl(requestOriginUrl!), | 160 | baseURL: getOriginUrl(requestOriginUrl!), |
158 | method: requestHttpType, | 161 | method: requestHttpType, |
159 | - params: requestHttpType === RequestHttpEnum.GET.toUpperCase() ? Params: null, | 162 | + params: requestHttpType === RequestHttpEnum.GET.toUpperCase() ? Params : null, |
160 | data: body, | 163 | data: body, |
161 | headers: extraValue(Header) | 164 | headers: extraValue(Header) |
162 | }, { | 165 | }, { |
1 | <template> | 1 | <template> |
2 | - <v-chart | ||
3 | - ref="vChartRef" | ||
4 | - :init-options="initOptions" | ||
5 | - :theme="themeColor" | ||
6 | - :option="option" | ||
7 | - :manual-update="isPreview()" | 2 | + <v-chart ref="vChartRef" :init-options="initOptions" :theme="themeColor" :option="option" :manual-update="isPreview()" |
8 | :update-options="{ | 3 | :update-options="{ |
9 | replaceMerge: replaceMergeArr | 4 | replaceMerge: replaceMergeArr |
10 | - }" | ||
11 | - autoresize | ||
12 | - @mouseover="handleHighlight" | ||
13 | - @mouseout="handleDownplay" | ||
14 | - > | 5 | + }" autoresize @mouseover="handleHighlight" @mouseout="handleDownplay"> |
15 | </v-chart> | 6 | </v-chart> |
16 | </template> | 7 | </template> |
17 | 8 | ||
@@ -186,6 +177,12 @@ watch( | @@ -186,6 +177,12 @@ watch( | ||
186 | for (let i = 0; i < dimensionsGap; i++) { | 177 | for (let i = 0; i < dimensionsGap; i++) { |
187 | seriesArr.push(cloneDeep(seriesItem)) | 178 | seriesArr.push(cloneDeep(seriesItem)) |
188 | } | 179 | } |
180 | + | ||
181 | + const { request } = props.chartConfig | ||
182 | + const { requestParams: { Params: { attrName } } } = request || {} | ||
183 | + seriesArr.forEach((item: any, index: number) => { | ||
184 | + item.name = attrName?.[index] | ||
185 | + }) | ||
189 | props.chartConfig.option.series.push(...seriesArr) | 186 | props.chartConfig.option.series.push(...seriesArr) |
190 | } | 187 | } |
191 | replaceMergeArr.value = ['series'] | 188 | replaceMergeArr.value = ['series'] |
@@ -205,28 +202,29 @@ watch( | @@ -205,28 +202,29 @@ watch( | ||
205 | //fix 修复v-chart图表绑定联动组件视图不更新问题 | 202 | //fix 修复v-chart图表绑定联动组件视图不更新问题 |
206 | const updateVChart = (newData: SocketReceiveMessageType) => { | 203 | const updateVChart = (newData: SocketReceiveMessageType) => { |
207 | if (!newData) return | 204 | if (!newData) return |
208 | - const { option,request } = props.chartConfig | ||
209 | - const {requestParams:{Params:{attrName}}} = request || {} | 205 | + const { option, request } = props.chartConfig |
206 | + const { requestParams: { Params: { attrName } } } = request || {} | ||
210 | const { dataset: overrideDataset } = option | 207 | const { dataset: overrideDataset } = option |
211 | const { dimensions } = overrideDataset | 208 | const { dimensions } = overrideDataset |
212 | if (!Array.isArray(dimensions)) return | 209 | if (!Array.isArray(dimensions)) return |
213 | const { data } = newData | 210 | const { data } = newData |
214 | - const { record } = useAssembleDataHooks(data,dimensions,(attrName as any)) | 211 | + const { record } = useAssembleDataHooks(data, dimensions, (attrName as any)) |
215 | if (unref(realTimeList).length >= chartMaxDataPoint.value) { | 212 | if (unref(realTimeList).length >= chartMaxDataPoint.value) { |
216 | unref(realTimeList).splice(0, 1) | 213 | unref(realTimeList).splice(0, 1) |
217 | } | 214 | } |
218 | realTimeList.value.push(record) | 215 | realTimeList.value.push(record) |
219 | - const dataset = { | 216 | + const dataset = { |
220 | dimensions: ['ts', ...attrName], | 217 | dimensions: ['ts', ...attrName], |
221 | source: toRaw(unref(realTimeList)) | 218 | source: toRaw(unref(realTimeList)) |
222 | } | 219 | } |
223 | - option.series.forEach((item:any,index:number)=>{ | 220 | + option.series.forEach((item: any, index: number) => { |
224 | item.name = attrName?.[index] | 221 | item.name = attrName?.[index] |
225 | }) | 222 | }) |
223 | + | ||
226 | vChartRef.value?.setOption({ | 224 | vChartRef.value?.setOption({ |
227 | ...option, | 225 | ...option, |
228 | dataset, | 226 | dataset, |
229 | - legend:{data:attrName || []} | 227 | + legend: { data: attrName || [] } |
230 | }) | 228 | }) |
231 | } | 229 | } |
232 | const { vChartRef } = useChartDataFetch(props.chartConfig, useChartEditStore, newData => { | 230 | const { vChartRef } = useChartDataFetch(props.chartConfig, useChartEditStore, newData => { |