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 => { |