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