Commit c63ac5d2eb38d4960e32484664f733681526f639
1 parent
fd12ae03
perf: extract code about how to render updatetime
Showing
5 changed files
with
23 additions
and
70 deletions
| ... | ... | @@ -7,22 +7,21 @@ |
| 7 | 7 | DashboardComponentLayout, |
| 8 | 8 | DashBoardValue, |
| 9 | 9 | instrumentComponent1, |
| 10 | - InstrumentComponentType, | |
| 11 | 10 | update_instrument_1_font, |
| 12 | 11 | update_instrument_2_font, |
| 13 | 12 | update_instrument_1_value, |
| 14 | 13 | update_instrument_2_value, |
| 15 | 14 | } from './dashBoardComponent.config'; |
| 16 | - import { dateUtil } from '/@/utils/dateUtil'; | |
| 17 | 15 | import { |
| 18 | 16 | DEFAULT_RADIO_RECORD, |
| 19 | 17 | RadioRecord, |
| 20 | - DEFAULT_DATE_FORMAT, | |
| 21 | 18 | fontSize, |
| 19 | + getUpdateTime, | |
| 22 | 20 | } from '../../detail/config/util'; |
| 23 | 21 | import { Tooltip } from 'ant-design-vue'; |
| 24 | 22 | import { useThrottleFn } from '@vueuse/shared'; |
| 25 | 23 | import { buildUUID } from '/@/utils/uuid'; |
| 24 | + import { FrontComponent } from '../help'; | |
| 26 | 25 | |
| 27 | 26 | const props = defineProps({ |
| 28 | 27 | add: { |
| ... | ... | @@ -61,7 +60,6 @@ |
| 61 | 60 | } |
| 62 | 61 | |
| 63 | 62 | const getRadio = computed(() => { |
| 64 | - // const { radio } = props.radio; | |
| 65 | 63 | return props.radio; |
| 66 | 64 | }); |
| 67 | 65 | |
| ... | ... | @@ -69,7 +67,6 @@ |
| 69 | 67 | const realWidth = unref(chartRef)?.getWidth(); |
| 70 | 68 | const realHeight = unref(chartRef)?.getHeight(); |
| 71 | 69 | const radioRecord = props.radio; |
| 72 | - // const widht | |
| 73 | 70 | return { |
| 74 | 71 | ...radioRecord, |
| 75 | 72 | height: realHeight || radioRecord.height, |
| ... | ... | @@ -77,7 +74,7 @@ |
| 77 | 74 | }; |
| 78 | 75 | }); |
| 79 | 76 | |
| 80 | - const beforeUpdateFn = (componentType: InstrumentComponentType) => { | |
| 77 | + const beforeUpdateFn = (componentType: FrontComponent) => { | |
| 81 | 78 | if (componentType === 'instrument-component-1') return update_instrument_1_font; |
| 82 | 79 | if (componentType === 'instrument-component-2') return update_instrument_2_font; |
| 83 | 80 | return (_radio: RadioRecord) => {}; |
| ... | ... | @@ -89,7 +86,7 @@ |
| 89 | 86 | unref(chartRef)?.resize(); |
| 90 | 87 | } |
| 91 | 88 | |
| 92 | - const getUpdateValueFn = (componentType: InstrumentComponentType) => { | |
| 89 | + const getUpdateValueFn = (componentType: FrontComponent) => { | |
| 93 | 90 | if (componentType === 'instrument-component-1') return update_instrument_1_value; |
| 94 | 91 | if (componentType === 'instrument-component-2') return update_instrument_2_value; |
| 95 | 92 | return (_radio: DashBoardValue) => {}; |
| ... | ... | @@ -164,22 +161,11 @@ |
| 164 | 161 | color: '#999', |
| 165 | 162 | }" |
| 166 | 163 | > |
| 167 | - <Tooltip | |
| 168 | - placement="top" | |
| 169 | - :title=" | |
| 170 | - props.value?.updateTime | |
| 171 | - ? dateUtil(props?.value?.updateTime).format(DEFAULT_DATE_FORMAT) | |
| 172 | - : '暂无更新时间' | |
| 173 | - " | |
| 174 | - > | |
| 164 | + <Tooltip placement="top" :title="getUpdateTime(props.value?.updateTime)"> | |
| 175 | 165 | <div class="truncate"> |
| 176 | 166 | <span class="mr-2">更新时间:</span> |
| 177 | 167 | <span> |
| 178 | - {{ | |
| 179 | - props.value?.updateTime | |
| 180 | - ? dateUtil(props?.value?.updateTime).format(DEFAULT_DATE_FORMAT) | |
| 181 | - : '暂无更新时间' | |
| 182 | - }} | |
| 168 | + {{ getUpdateTime(props.value?.updateTime) }} | |
| 183 | 169 | </span> |
| 184 | 170 | </div> |
| 185 | 171 | </Tooltip> | ... | ... |
| ... | ... | @@ -6,11 +6,10 @@ |
| 6 | 6 | DigitalDashBoardLayout, |
| 7 | 7 | DigitalDashBoardValue, |
| 8 | 8 | } from './digitalDashBoard.config'; |
| 9 | - import { dateUtil } from '/@/utils/dateUtil'; | |
| 10 | 9 | import { |
| 11 | 10 | fontSize, |
| 12 | 11 | RadioRecord, |
| 13 | - DEFAULT_DATE_FORMAT, | |
| 12 | + getUpdateTime, | |
| 14 | 13 | DEFAULT_RADIO_RECORD, |
| 15 | 14 | DEFAULT_ANIMATION_INTERVAL, |
| 16 | 15 | } from '../../detail/config/util'; |
| ... | ... | @@ -59,8 +58,6 @@ |
| 59 | 58 | }); |
| 60 | 59 | |
| 61 | 60 | const getRadio = computed(() => { |
| 62 | - // const { radio } = props.radio || DEFAULT_RADIO_RECORD; | |
| 63 | - // return radio; | |
| 64 | 61 | return props.radio || DEFAULT_RADIO_RECORD; |
| 65 | 62 | }); |
| 66 | 63 | |
| ... | ... | @@ -166,22 +163,11 @@ |
| 166 | 163 | color: '#999', |
| 167 | 164 | }" |
| 168 | 165 | > |
| 169 | - <Tooltip | |
| 170 | - placement="top" | |
| 171 | - :title=" | |
| 172 | - props.value?.updateTime | |
| 173 | - ? dateUtil(props?.value?.updateTime).format(DEFAULT_DATE_FORMAT) | |
| 174 | - : '暂无更新时间' | |
| 175 | - " | |
| 176 | - > | |
| 166 | + <Tooltip placement="top" :title="getUpdateTime(props.value?.updateTime)"> | |
| 177 | 167 | <div class="truncate"> |
| 178 | 168 | <span class="mr-1">更新时间:</span> |
| 179 | 169 | <span> |
| 180 | - {{ | |
| 181 | - props.value?.updateTime | |
| 182 | - ? dateUtil(props?.value?.updateTime).format(DEFAULT_DATE_FORMAT) | |
| 183 | - : '暂无更新时间' | |
| 184 | - }} | |
| 170 | + {{ getUpdateTime(props.value?.updateTime) }} | |
| 185 | 171 | </span> |
| 186 | 172 | </div> |
| 187 | 173 | </Tooltip> | ... | ... |
| ... | ... | @@ -2,16 +2,15 @@ |
| 2 | 2 | import { computed, ref, watch } from 'vue'; |
| 3 | 3 | import { Tooltip, Image as AntImage } from 'ant-design-vue'; |
| 4 | 4 | import { |
| 5 | - DEFAULT_DATE_FORMAT, | |
| 5 | + getUpdateTime, | |
| 6 | 6 | DEFAULT_RADIO_RECORD, |
| 7 | 7 | fontSize, |
| 8 | 8 | RadioRecord, |
| 9 | 9 | } from '../../detail/config/util'; |
| 10 | - import { PictureComponentLayout, PictureComponentValue } from './pictureComponent.config'; | |
| 11 | - import { dateUtil } from '/@/utils/dateUtil'; | |
| 10 | + import { PictureComponentValue } from './pictureComponent.config'; | |
| 12 | 11 | |
| 13 | 12 | const props = defineProps<{ |
| 14 | - layout?: PictureComponentLayout; | |
| 13 | + layout?: Recordable; | |
| 15 | 14 | value?: PictureComponentValue; |
| 16 | 15 | radio?: RadioRecord; |
| 17 | 16 | }>(); |
| ... | ... | @@ -69,21 +68,10 @@ |
| 69 | 68 | class="w-full text-center truncate p-5" |
| 70 | 69 | :style="{ fontSize: fontSize({ radioRecord: getRadio, basic: 12, max: 12 }), color: '#999' }" |
| 71 | 70 | > |
| 72 | - <Tooltip | |
| 73 | - placement="top" | |
| 74 | - :title=" | |
| 75 | - props.value?.updateTime | |
| 76 | - ? dateUtil(props?.value?.updateTime).format(DEFAULT_DATE_FORMAT) | |
| 77 | - : '暂无更新时间' | |
| 78 | - " | |
| 79 | - > | |
| 71 | + <Tooltip placement="top" :title="getUpdateTime(props.value?.updateTime)"> | |
| 80 | 72 | <span class="mr-1">更新时间:</span> |
| 81 | 73 | <span class="truncate"> |
| 82 | - {{ | |
| 83 | - props.value?.updateTime | |
| 84 | - ? dateUtil(props?.value?.updateTime).format(DEFAULT_DATE_FORMAT) | |
| 85 | - : '暂无更新时间' | |
| 86 | - }} | |
| 74 | + {{ getUpdateTime(props.value?.updateTime) }} | |
| 87 | 75 | </span> |
| 88 | 76 | </Tooltip> |
| 89 | 77 | </div> | ... | ... |
| ... | ... | @@ -2,14 +2,13 @@ |
| 2 | 2 | import { computed } from 'vue'; |
| 3 | 3 | import { Statistic, Tooltip } from 'ant-design-vue'; |
| 4 | 4 | import { |
| 5 | + getUpdateTime, | |
| 5 | 6 | fontSize, |
| 6 | 7 | RadioRecord, |
| 7 | 8 | DEFAULT_RADIO_RECORD, |
| 8 | - DEFAULT_DATE_FORMAT, | |
| 9 | 9 | } from '../../detail/config/util'; |
| 10 | 10 | import { TextComponentDefaultConfig, TextComponentLayout, TextComponentValue } from './config'; |
| 11 | 11 | import { SvgIcon } from '/@/components/Icon'; |
| 12 | - import { dateUtil } from '/@/utils/dateUtil'; | |
| 13 | 12 | const props = defineProps({ |
| 14 | 13 | layout: { |
| 15 | 14 | type: Object as PropType<TextComponentLayout>, |
| ... | ... | @@ -89,26 +88,14 @@ |
| 89 | 88 | </div> |
| 90 | 89 | |
| 91 | 90 | <div class="text-center text-xs truncate p-5" style="color: #999"> |
| 92 | - <Tooltip | |
| 93 | - v-if="getShowUpdate" | |
| 94 | - placement="top" | |
| 95 | - :title=" | |
| 96 | - props.value?.updateTime | |
| 97 | - ? dateUtil(props?.value?.updateTime).format(DEFAULT_DATE_FORMAT) | |
| 98 | - : '暂无更新时间' | |
| 99 | - " | |
| 100 | - > | |
| 91 | + <Tooltip v-if="getShowUpdate" placement="top" :title="getUpdateTime(props.value?.updateTime)"> | |
| 101 | 92 | <div |
| 102 | 93 | :style="{ fontSize: fontSize({ radioRecord: getRadio, basic: 12, max: 12 }) }" |
| 103 | 94 | class="truncate" |
| 104 | 95 | > |
| 105 | 96 | <span class="mr-1">更新时间:</span> |
| 106 | 97 | <span class="truncate"> |
| 107 | - {{ | |
| 108 | - props.value?.updateTime | |
| 109 | - ? dateUtil(props?.value?.updateTime).format(DEFAULT_DATE_FORMAT) | |
| 110 | - : '暂无更新时间' | |
| 111 | - }} | |
| 98 | + {{ getUpdateTime(props.value?.updateTime) }} | |
| 112 | 99 | </span> |
| 113 | 100 | </div> |
| 114 | 101 | </Tooltip> | ... | ... |
| 1 | +import { dateUtil } from '/@/utils/dateUtil'; | |
| 2 | + | |
| 1 | 3 | export interface RadioRecord { |
| 2 | 4 | width: number; |
| 3 | 5 | height: number; |
| ... | ... | @@ -16,6 +18,10 @@ export const DEFAULT_RADIO_RECORD: RadioRecord = { |
| 16 | 18 | |
| 17 | 19 | export const DEFAULT_DATE_FORMAT = 'YYYY-MM-DD HH:mm:ss'; |
| 18 | 20 | |
| 21 | +export const getUpdateTime = (updateTime?: string) => { | |
| 22 | + return updateTime ? dateUtil(updateTime).format(DEFAULT_DATE_FORMAT) : '暂无更新时间'; | |
| 23 | +}; | |
| 24 | + | |
| 19 | 25 | export const calcScale = ( |
| 20 | 26 | width: number, |
| 21 | 27 | height: number, | ... | ... |