Commit c63ac5d2eb38d4960e32484664f733681526f639

Authored by ww
1 parent fd12ae03

perf: extract code about how to render updatetime

... ... @@ -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,
... ...