Commit 1ce3d0e6f5d78161e292c38acc51bfc6a9b27d53
1 parent
09977928
fix: DEFECT-685 update component info component not recalculate
Showing
7 changed files
with
77 additions
and
18 deletions
| 1 | 1 | import { |
| 2 | 2 | AddDataBoardParams, |
| 3 | 3 | AddDataComponentParams, |
| 4 | + ComponentInfoDetail, | |
| 4 | 5 | DataBoardList, |
| 5 | 6 | DataComponentRecord, |
| 6 | 7 | GetDataBoardParams, |
| ... | ... | @@ -103,12 +104,10 @@ export const updateDataBoardLayout = (params: UpdateDataBoardLayoutParams) => { |
| 103 | 104 | * @returns |
| 104 | 105 | */ |
| 105 | 106 | export const getDataComponent = (params: string) => { |
| 106 | - return defHttp.get<{ data: { componentData: DataComponentRecord[]; componentLayout: Layout[] } }>( | |
| 107 | - { | |
| 108 | - url: `${DataComponentUrl.GET_DATA_COMPONENT}/${params}`, | |
| 109 | - // params: { boardId: params }, | |
| 110 | - } | |
| 111 | - ); | |
| 107 | + return defHttp.get<ComponentInfoDetail>({ | |
| 108 | + url: `${DataComponentUrl.GET_DATA_COMPONENT}/${params}`, | |
| 109 | + // params: { boardId: params }, | |
| 110 | + }); | |
| 112 | 111 | }; |
| 113 | 112 | |
| 114 | 113 | export const addDataComponent = (params: AddDataComponentParams) => { |
| ... | ... | @@ -151,7 +150,7 @@ export const updateDataComponent = (params: UpdateDataComponentParams) => { |
| 151 | 150 | */ |
| 152 | 151 | export const getShareBoardComponentInfo = (params: { boardId: string; tenantId: string }) => { |
| 153 | 152 | const { boardId, tenantId } = params; |
| 154 | - return defHttp.get({ | |
| 153 | + return defHttp.get<ComponentInfoDetail>({ | |
| 155 | 154 | url: `${DataBoardShareUrl.GET_DATA_COMPONENT}/${boardId}/${tenantId}`, |
| 156 | 155 | }); |
| 157 | 156 | }; | ... | ... |
| ... | ... | @@ -10,6 +10,7 @@ |
| 10 | 10 | import { TextComponentDefaultConfig, TextComponentLayout, TextComponentValue } from './config'; |
| 11 | 11 | import { SvgIcon } from '/@/components/Icon'; |
| 12 | 12 | import { dateUtil } from '/@/utils/dateUtil'; |
| 13 | + import { min } from 'lodash'; | |
| 13 | 14 | const props = defineProps({ |
| 14 | 15 | layout: { |
| 15 | 16 | type: Object as PropType<TextComponentLayout>, |
| ... | ... | @@ -66,8 +67,8 @@ |
| 66 | 67 | prefix="iconfont" |
| 67 | 68 | :style="{ |
| 68 | 69 | color: props.value.iconColor, |
| 69 | - width: fontSize({ radio: getRadio, basic: 50 }), | |
| 70 | - height: fontSize({ radio: getRadio, basic: 50 }), | |
| 70 | + width: fontSize({ radio: getRadio, basic: 50, min: 16 }), | |
| 71 | + height: fontSize({ radio: getRadio, basic: 50, min: 16 }), | |
| 71 | 72 | }" |
| 72 | 73 | /> |
| 73 | 74 | </div> | ... | ... |
| ... | ... | @@ -15,7 +15,7 @@ |
| 15 | 15 | id: string; |
| 16 | 16 | } |
| 17 | 17 | |
| 18 | - const emit = defineEmits(['submit', 'register']); | |
| 18 | + const emit = defineEmits(['submit', 'update', 'create', 'register']); | |
| 19 | 19 | |
| 20 | 20 | const ROUTE = useRoute(); |
| 21 | 21 | |
| ... | ... | @@ -75,7 +75,7 @@ |
| 75 | 75 | const handleUpdateComponent = async (value: Recordable) => { |
| 76 | 76 | try { |
| 77 | 77 | changeOkLoading(true); |
| 78 | - await updateDataComponent({ | |
| 78 | + const res = await updateDataComponent({ | |
| 79 | 79 | boardId: unref(boardId), |
| 80 | 80 | record: { |
| 81 | 81 | id: unref(componentRecord).i, |
| ... | ... | @@ -86,7 +86,8 @@ |
| 86 | 86 | }); |
| 87 | 87 | createMessage.success('修改成功'); |
| 88 | 88 | closeModal(); |
| 89 | - emit('submit'); | |
| 89 | + // emit('submit'); | |
| 90 | + emit('update', res.data.id); | |
| 90 | 91 | } catch (error) { |
| 91 | 92 | // createMessage.error('修改失败'); |
| 92 | 93 | } finally { | ... | ... |
| ... | ... | @@ -39,8 +39,19 @@ export const calcScale = ( |
| 39 | 39 | }; |
| 40 | 40 | }; |
| 41 | 41 | |
| 42 | -export const fontSize = ({ radio, basic, max }: { radio: number; basic: number; max?: number }) => { | |
| 42 | +export const fontSize = ({ | |
| 43 | + radio, | |
| 44 | + basic, | |
| 45 | + max, | |
| 46 | + min, | |
| 47 | +}: { | |
| 48 | + radio: number; | |
| 49 | + basic: number; | |
| 50 | + max?: number; | |
| 51 | + min?: number; | |
| 52 | +}) => { | |
| 43 | 53 | let res = basic * radio; |
| 44 | 54 | if (max && res > max) res = max; |
| 55 | + if (min && res < min) res = min; | |
| 45 | 56 | return res + 'px'; |
| 46 | 57 | }; | ... | ... |
| ... | ... | @@ -24,7 +24,12 @@ |
| 24 | 24 | } from '/@/api/dataBoard'; |
| 25 | 25 | import { useRoute, useRouter } from 'vue-router'; |
| 26 | 26 | import { computed, unref } from '@vue/reactivity'; |
| 27 | - import { DataComponentRecord, DataSource, Layout } from '/@/api/dataBoard/model'; | |
| 27 | + import { | |
| 28 | + ComponentInfoDetail, | |
| 29 | + DataComponentRecord, | |
| 30 | + DataSource, | |
| 31 | + Layout, | |
| 32 | + } from '/@/api/dataBoard/model'; | |
| 28 | 33 | import { frontComponentMap } from './config/help'; |
| 29 | 34 | import { calcScale } from './config/util'; |
| 30 | 35 | import { useMessage } from '/@/hooks/web/useMessage'; |
| ... | ... | @@ -98,6 +103,9 @@ |
| 98 | 103 | width = 100; |
| 99 | 104 | } |
| 100 | 105 | |
| 106 | + data.width = newWPx; | |
| 107 | + data.height = newHPx; | |
| 108 | + | |
| 101 | 109 | data.record.dataSource = data?.record.dataSource.map((item) => { |
| 102 | 110 | if (!item.uuid) item.uuid = buildUUID(); |
| 103 | 111 | return { |
| ... | ... | @@ -194,7 +202,7 @@ |
| 194 | 202 | try { |
| 195 | 203 | return await getDataComponent(unref(getBoardId)); |
| 196 | 204 | } catch (error) {} |
| 197 | - return []; | |
| 205 | + return {} as ComponentInfoDetail; | |
| 198 | 206 | }; |
| 199 | 207 | |
| 200 | 208 | const getSharePageComponentData = async () => { |
| ... | ... | @@ -202,7 +210,7 @@ |
| 202 | 210 | const params = unref(getSharePageParams); |
| 203 | 211 | return await getShareBoardComponentInfo(params); |
| 204 | 212 | } catch (error) {} |
| 205 | - return []; | |
| 213 | + return {} as ComponentInfoDetail; | |
| 206 | 214 | }; |
| 207 | 215 | |
| 208 | 216 | const getDataBoradDetail = async () => { |
| ... | ... | @@ -211,7 +219,7 @@ |
| 211 | 219 | ? await getSharePageComponentData() |
| 212 | 220 | : await getBasePageComponentData(); |
| 213 | 221 | } catch (error) {} |
| 214 | - return []; | |
| 222 | + return {} as ComponentInfoDetail; | |
| 215 | 223 | }; |
| 216 | 224 | |
| 217 | 225 | const loading = ref(false); |
| ... | ... | @@ -245,6 +253,35 @@ |
| 245 | 253 | } |
| 246 | 254 | }; |
| 247 | 255 | |
| 256 | + const handleUpdateComponent = async (id: string) => { | |
| 257 | + try { | |
| 258 | + loading.value = true; | |
| 259 | + const data = await getDataBoradDetail(); | |
| 260 | + const updateIndex = data.data.componentData.findIndex((item) => item.id === id); | |
| 261 | + const originalIndex = unref(dataBoardList).findIndex((item) => item.i === id); | |
| 262 | + | |
| 263 | + const newUpdateData = data.data.componentData[updateIndex]; | |
| 264 | + const originalData = unref(dataBoardList)[originalIndex]; | |
| 265 | + dataBoardList.value[updateIndex] = { | |
| 266 | + i: id, | |
| 267 | + w: originalData.w || DEFAULT_WIDGET_WIDTH, | |
| 268 | + h: originalData.h || DEFAULT_WIDGET_HEIGHT, | |
| 269 | + x: originalData.x || 0, | |
| 270 | + y: originalData.y || 0, | |
| 271 | + width: originalData.width, | |
| 272 | + height: originalData.height, | |
| 273 | + record: newUpdateData, | |
| 274 | + }; | |
| 275 | + console.log(dataBoardList.value[updateIndex]); | |
| 276 | + updateSize(id, 0, 0, originalData.height || 0, originalData.width || 0); | |
| 277 | + | |
| 278 | + // beginSendMessage(); | |
| 279 | + } catch (error) { | |
| 280 | + } finally { | |
| 281 | + loading.value = false; | |
| 282 | + } | |
| 283 | + }; | |
| 284 | + | |
| 248 | 285 | const getComponent = (record: DataComponentRecord) => { |
| 249 | 286 | const frontComponent = record.frontId; |
| 250 | 287 | const component = frontComponentMap.get(frontComponent as WidgetComponentType); |
| ... | ... | @@ -392,7 +429,11 @@ |
| 392 | 429 | <Empty v-if="!dataBoardList.length" /> |
| 393 | 430 | </Spin> |
| 394 | 431 | </section> |
| 395 | - <DataBindModal @register="register" @submit="getDataBoardComponent" /> | |
| 432 | + <DataBindModal | |
| 433 | + @register="register" | |
| 434 | + @update="handleUpdateComponent" | |
| 435 | + @submit="getDataBoardComponent" | |
| 436 | + /> | |
| 396 | 437 | <HistoryTrendModal @register="registerHistoryDataModal" /> |
| 397 | 438 | </section> |
| 398 | 439 | </template> | ... | ... |