Commit 5200cae09fcceb5a388bc6805f9000fb5dd6adce
Merge branch 'perf/add-board-fontsize-field' into 'main_dev'
看板组件新增字体设置字段 See merge request yunteng/thingskit-front!816
Showing
66 changed files
with
693 additions
and
165 deletions
@@ -16,6 +16,7 @@ export const option: PublicPresetOptions = { | @@ -16,6 +16,7 @@ export const option: PublicPresetOptions = { | ||
16 | [ComponentConfigFieldEnum.CLOSE_COLOR]: '#FF0000', | 16 | [ComponentConfigFieldEnum.CLOSE_COLOR]: '#FF0000', |
17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: true, | 17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: true, |
18 | [ComponentConfigFieldEnum.SHOW_TIME]: false, | 18 | [ComponentConfigFieldEnum.SHOW_TIME]: false, |
19 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
19 | }; | 20 | }; |
20 | 21 | ||
21 | export default class Config extends PublicConfigClass implements CreateComponentType { | 22 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -36,6 +36,15 @@ | @@ -36,6 +36,15 @@ | ||
36 | component: 'Checkbox', | 36 | component: 'Checkbox', |
37 | defaultValue: option.showTime, | 37 | defaultValue: option.showTime, |
38 | }, | 38 | }, |
39 | + { | ||
40 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
41 | + label: '文本字体大小', | ||
42 | + component: 'InputNumber', | ||
43 | + defaultValue: 14, | ||
44 | + componentProps: { | ||
45 | + min: 0, | ||
46 | + }, | ||
47 | + }, | ||
39 | ], | 48 | ], |
40 | showActionButtonGroup: false, | 49 | showActionButtonGroup: false, |
41 | labelWidth: 120, | 50 | labelWidth: 120, |
@@ -24,6 +24,7 @@ | @@ -24,6 +24,7 @@ | ||
24 | showTime: boolean; | 24 | showTime: boolean; |
25 | status: IStatus; | 25 | status: IStatus; |
26 | time: number; | 26 | time: number; |
27 | + fontSize?: number; | ||
27 | } | 28 | } |
28 | 29 | ||
29 | const props = defineProps<{ | 30 | const props = defineProps<{ |
@@ -53,7 +54,11 @@ | @@ -53,7 +54,11 @@ | ||
53 | const getDesign = computed(() => { | 54 | const getDesign = computed(() => { |
54 | const { persetOption = {}, option } = props.config; | 55 | const { persetOption = {}, option } = props.config; |
55 | const { dataSource } = option; | 56 | const { dataSource } = option; |
56 | - const { showDeviceName: presetShowDeviceName, showTime: persetShowTime } = persetOption; | 57 | + const { |
58 | + showDeviceName: presetShowDeviceName, | ||
59 | + showTime: persetShowTime, | ||
60 | + fontSize: persetFontSize, | ||
61 | + } = persetOption; | ||
57 | 62 | ||
58 | return { | 63 | return { |
59 | dataSource: dataSource?.map((item) => { | 64 | dataSource: dataSource?.map((item) => { |
@@ -63,6 +68,7 @@ | @@ -63,6 +68,7 @@ | ||
63 | deviceName: deviceRename || deviceName, | 68 | deviceName: deviceRename || deviceName, |
64 | showDeviceName: componentInfo.showDeviceName ?? presetShowDeviceName, | 69 | showDeviceName: componentInfo.showDeviceName ?? presetShowDeviceName, |
65 | showTime: componentInfo.showTime ?? persetShowTime, | 70 | showTime: componentInfo.showTime ?? persetShowTime, |
71 | + fontSize: componentInfo.fontSize || persetFontSize, | ||
66 | }; | 72 | }; |
67 | }), | 73 | }), |
68 | }; | 74 | }; |
@@ -82,6 +88,7 @@ | @@ -82,6 +88,7 @@ | ||
82 | time: 1689574726, | 88 | time: 1689574726, |
83 | showDeviceName: true, | 89 | showDeviceName: true, |
84 | showTime: true, | 90 | showTime: true, |
91 | + fontSize: 14, | ||
85 | }, | 92 | }, |
86 | ]); | 93 | ]); |
87 | 94 | ||
@@ -133,6 +140,7 @@ | @@ -133,6 +140,7 @@ | ||
133 | showTime: item.showTime, | 140 | showTime: item.showTime, |
134 | status: { text: '', color: '' }, | 141 | status: { text: '', color: '' }, |
135 | time: 0, | 142 | time: 0, |
143 | + fontSize: item.fontSize, | ||
136 | }; | 144 | }; |
137 | }) as any; | 145 | }) as any; |
138 | const { data, update } = message; | 146 | const { data, update } = message; |
@@ -163,7 +171,7 @@ | @@ -163,7 +171,7 @@ | ||
163 | <main :style="getScale" class="w-full h-full flex justify-center items-center"> | 171 | <main :style="getScale" class="w-full h-full flex justify-center items-center"> |
164 | <div v-for="item in alarmStatusList" :key="item.id" class="flex flex-col items-center"> | 172 | <div v-for="item in alarmStatusList" :key="item.id" class="flex flex-col items-center"> |
165 | <div class="flex justify-center items-center flex-col"> | 173 | <div class="flex justify-center items-center flex-col"> |
166 | - <div class="text-gray-500 text-sm truncate" | 174 | + <div class="text-gray-500 truncate" :style="{ fontSize: item.fontSize + 'px' }" |
167 | >{{ | 175 | >{{ |
168 | item.status.text | 176 | item.status.text |
169 | ? item.showDeviceName | 177 | ? item.showDeviceName |
@@ -11,6 +11,7 @@ import { ComponentConfigFieldEnum } from '../../../enum'; | @@ -11,6 +11,7 @@ import { ComponentConfigFieldEnum } from '../../../enum'; | ||
11 | 11 | ||
12 | export const option: PublicPresetOptions = { | 12 | export const option: PublicPresetOptions = { |
13 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 13 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
14 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
14 | // [ComponentConfigFieldEnum.FONT_COLOR]: '#000', | 15 | // [ComponentConfigFieldEnum.FONT_COLOR]: '#000', |
15 | }; | 16 | }; |
16 | 17 |
@@ -19,6 +19,12 @@ | @@ -19,6 +19,12 @@ | ||
19 | component: 'Checkbox', | 19 | component: 'Checkbox', |
20 | defaultValue: option.showDeviceName, | 20 | defaultValue: option.showDeviceName, |
21 | }, | 21 | }, |
22 | + { | ||
23 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
24 | + label: '文本字体大小', | ||
25 | + component: 'InputNumber', | ||
26 | + defaultValue: 14, | ||
27 | + }, | ||
22 | ], | 28 | ], |
23 | showActionButtonGroup: false, | 29 | showActionButtonGroup: false, |
24 | labelWidth: 120, | 30 | labelWidth: 120, |
@@ -19,20 +19,23 @@ | @@ -19,20 +19,23 @@ | ||
19 | const currentValue = ref(false); | 19 | const currentValue = ref(false); |
20 | 20 | ||
21 | const getDesign = computed(() => { | 21 | const getDesign = computed(() => { |
22 | - // console.log(props.config, 'config'); | ||
23 | - const { option } = props.config; | 22 | + const { option, persetOption } = props.config; |
24 | const { | 23 | const { |
25 | attribute, | 24 | attribute, |
26 | attributeRename, | 25 | attributeRename, |
27 | attributeName, | 26 | attributeName, |
27 | + componentInfo, | ||
28 | commandType, | 28 | commandType, |
29 | extensionDesc, | 29 | extensionDesc, |
30 | codeType, | 30 | codeType, |
31 | deviceCode, | 31 | deviceCode, |
32 | customCommand, | 32 | customCommand, |
33 | } = option; | 33 | } = option; |
34 | + const { fontSize: persetFontSize } = persetOption || {}; | ||
35 | + const { fontSize } = componentInfo || {}; | ||
34 | return { | 36 | return { |
35 | attribute: attributeRename || attributeName || attribute, | 37 | attribute: attributeRename || attributeName || attribute, |
38 | + fontSize: fontSize || persetFontSize || 14, | ||
36 | extensionDesc: extensionDesc ? JSON.parse(extensionDesc) : {}, | 39 | extensionDesc: extensionDesc ? JSON.parse(extensionDesc) : {}, |
37 | commandType, | 40 | commandType, |
38 | codeType, | 41 | codeType, |
@@ -81,7 +84,10 @@ | @@ -81,7 +84,10 @@ | ||
81 | <span class="on">ON</span> | 84 | <span class="on">ON</span> |
82 | <span class="off">OFF</span> | 85 | <span class="off">OFF</span> |
83 | </label> | 86 | </label> |
84 | - <div class="text-center mt-2 text-gray-700" :style="getScale"> | 87 | + <div |
88 | + class="text-center mt-2 text-gray-700" | ||
89 | + :style="{ ...getScale, fontSize: getDesign.fontSize + 'px' }" | ||
90 | + > | ||
85 | {{ getDesign.attribute || '属性' }} | 91 | {{ getDesign.attribute || '属性' }} |
86 | </div> | 92 | </div> |
87 | </Spin> | 93 | </Spin> |
@@ -13,6 +13,7 @@ export const option: PublicPresetOptions = { | @@ -13,6 +13,7 @@ export const option: PublicPresetOptions = { | ||
13 | [ComponentConfigFieldEnum.ICON]: 'shuiwen', | 13 | [ComponentConfigFieldEnum.ICON]: 'shuiwen', |
14 | [ComponentConfigFieldEnum.ICON_COLOR]: '#377DFF', | 14 | [ComponentConfigFieldEnum.ICON_COLOR]: '#377DFF', |
15 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 15 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
16 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
16 | }; | 17 | }; |
17 | 18 | ||
18 | export default class Config extends PublicConfigClass implements CreateComponentType { | 19 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -32,6 +32,12 @@ | @@ -32,6 +32,12 @@ | ||
32 | component: 'Checkbox', | 32 | component: 'Checkbox', |
33 | defaultValue: option.showDeviceName, | 33 | defaultValue: option.showDeviceName, |
34 | }, | 34 | }, |
35 | + { | ||
36 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
37 | + label: '文本字体大小', | ||
38 | + component: 'InputNumber', | ||
39 | + defaultValue: option.fontSize, | ||
40 | + }, | ||
35 | ], | 41 | ], |
36 | showActionButtonGroup: false, | 42 | showActionButtonGroup: false, |
37 | labelWidth: 120, | 43 | labelWidth: 120, |
@@ -31,14 +31,19 @@ | @@ -31,14 +31,19 @@ | ||
31 | deviceCode, | 31 | deviceCode, |
32 | customCommand, | 32 | customCommand, |
33 | } = option; | 33 | } = option; |
34 | - const { icon: presetIcon, iconColor: presetIconColor } = persetOption || {}; | ||
35 | - const { icon, iconColor } = componentInfo || {}; | 34 | + const { |
35 | + icon: presetIcon, | ||
36 | + iconColor: presetIconColor, | ||
37 | + fontSize: persetFontSize, | ||
38 | + } = persetOption || {}; | ||
39 | + const { icon, iconColor, fontSize } = componentInfo || {}; | ||
36 | 40 | ||
37 | return { | 41 | return { |
38 | icon: icon ?? presetIcon, | 42 | icon: icon ?? presetIcon, |
39 | iconColor: iconColor || presetIconColor, | 43 | iconColor: iconColor || presetIconColor, |
40 | attribute: attributeRename || attributeName || attribute, | 44 | attribute: attributeRename || attributeName || attribute, |
41 | extensionDesc: extensionDesc ? JSON.parse(extensionDesc) : {}, | 45 | extensionDesc: extensionDesc ? JSON.parse(extensionDesc) : {}, |
46 | + fontSize: fontSize || persetFontSize || 14, | ||
42 | commandType, | 47 | commandType, |
43 | codeType, | 48 | codeType, |
44 | deviceCode, | 49 | deviceCode, |
@@ -84,7 +89,10 @@ | @@ -84,7 +89,10 @@ | ||
84 | :style="{ color: getDesign.iconColor }" | 89 | :style="{ color: getDesign.iconColor }" |
85 | :size="50" | 90 | :size="50" |
86 | /> | 91 | /> |
87 | - <span class="mt-3 truncate text-gray-500 text-xs text-center"> | 92 | + <span |
93 | + class="mt-3 truncate text-gray-500 text-center" | ||
94 | + :style="{ fontSize: getDesign.fontSize + 'px' }" | ||
95 | + > | ||
88 | {{ getDesign.attribute || '属性' }} | 96 | {{ getDesign.attribute || '属性' }} |
89 | </span> | 97 | </span> |
90 | </div> | 98 | </div> |
@@ -11,6 +11,7 @@ import { ComponentConfigFieldEnum } from '../../../enum'; | @@ -11,6 +11,7 @@ import { ComponentConfigFieldEnum } from '../../../enum'; | ||
11 | 11 | ||
12 | export const option: PublicPresetOptions = { | 12 | export const option: PublicPresetOptions = { |
13 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 13 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
14 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
14 | // [ComponentConfigFieldEnum.FONT_COLOR]: '#000', | 15 | // [ComponentConfigFieldEnum.FONT_COLOR]: '#000', |
15 | }; | 16 | }; |
16 | 17 |
@@ -18,6 +18,12 @@ | @@ -18,6 +18,12 @@ | ||
18 | component: 'Checkbox', | 18 | component: 'Checkbox', |
19 | defaultValue: option.showDeviceName, | 19 | defaultValue: option.showDeviceName, |
20 | }, | 20 | }, |
21 | + { | ||
22 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
23 | + label: '文本字体大小', | ||
24 | + component: 'InputNumber', | ||
25 | + defaultValue: option.fontSize, | ||
26 | + }, | ||
21 | ], | 27 | ], |
22 | showActionButtonGroup: false, | 28 | showActionButtonGroup: false, |
23 | labelWidth: 120, | 29 | labelWidth: 120, |
@@ -19,7 +19,7 @@ | @@ -19,7 +19,7 @@ | ||
19 | const currentValue = ref(false); | 19 | const currentValue = ref(false); |
20 | 20 | ||
21 | const getDesign = computed(() => { | 21 | const getDesign = computed(() => { |
22 | - const { option } = props.config; | 22 | + const { option, persetOption } = props.config; |
23 | const { | 23 | const { |
24 | attribute, | 24 | attribute, |
25 | attributeRename, | 25 | attributeRename, |
@@ -29,7 +29,10 @@ | @@ -29,7 +29,10 @@ | ||
29 | codeType, | 29 | codeType, |
30 | deviceCode, | 30 | deviceCode, |
31 | customCommand, | 31 | customCommand, |
32 | + componentInfo, | ||
32 | } = option; | 33 | } = option; |
34 | + const { fontSize: persetFontSize } = persetOption || {}; | ||
35 | + const { fontSize } = componentInfo || {}; | ||
33 | return { | 36 | return { |
34 | attribute: attributeRename || attributeName || attribute, | 37 | attribute: attributeRename || attributeName || attribute, |
35 | extensionDesc: extensionDesc ? JSON.parse(extensionDesc) : {}, | 38 | extensionDesc: extensionDesc ? JSON.parse(extensionDesc) : {}, |
@@ -37,6 +40,7 @@ | @@ -37,6 +40,7 @@ | ||
37 | codeType, | 40 | codeType, |
38 | deviceCode, | 41 | deviceCode, |
39 | customCommand, | 42 | customCommand, |
43 | + fontSize: fontSize || persetFontSize || 14, | ||
40 | }; | 44 | }; |
41 | }); | 45 | }); |
42 | 46 | ||
@@ -80,9 +84,11 @@ | @@ -80,9 +84,11 @@ | ||
80 | </div> | 84 | </div> |
81 | </label> | 85 | </label> |
82 | </div> | 86 | </div> |
83 | - <div class="text-center mt-2 text-gray-500" :style="getScale">{{ | ||
84 | - getDesign.attribute || '属性' | ||
85 | - }}</div> | 87 | + <div |
88 | + class="text-center mt-2 text-gray-500" | ||
89 | + :style="{ ...getScale, fontSize: getDesign.fontSize + 'px' }" | ||
90 | + >{{ getDesign.attribute || '属性' }}</div | ||
91 | + > | ||
86 | </Spin> | 92 | </Spin> |
87 | </main> | 93 | </main> |
88 | </main> | 94 | </main> |
@@ -13,8 +13,11 @@ export const option: PublicPresetOptions = { | @@ -13,8 +13,11 @@ export const option: PublicPresetOptions = { | ||
13 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 13 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
14 | [ComponentConfigFieldEnum.CONTROL_BAR_COLOR]: '#0072ff', | 14 | [ComponentConfigFieldEnum.CONTROL_BAR_COLOR]: '#0072ff', |
15 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000000', | 15 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000000', |
16 | + [ComponentConfigFieldEnum.TEXT_COLOR]: '#000000', | ||
16 | [ComponentConfigFieldEnum.MIN_NUMBER]: 0, | 17 | [ComponentConfigFieldEnum.MIN_NUMBER]: 0, |
17 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, | 18 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, |
19 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
20 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 20, | ||
18 | }; | 21 | }; |
19 | 22 | ||
20 | export default class Config extends PublicConfigClass implements CreateComponentType { | 23 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -8,20 +8,39 @@ | @@ -8,20 +8,39 @@ | ||
8 | const [register, { getFieldsValue, setFieldsValue, resetFields }] = useForm({ | 8 | const [register, { getFieldsValue, setFieldsValue, resetFields }] = useForm({ |
9 | schemas: [ | 9 | schemas: [ |
10 | { | 10 | { |
11 | - field: ComponentConfigFieldEnum.CONTROL_BAR_COLOR, | ||
12 | - label: '控制栏背景色', | 11 | + field: ComponentConfigFieldEnum.FONT_COLOR, |
12 | + label: '数值字体颜色', | ||
13 | component: 'ColorPicker', | 13 | component: 'ColorPicker', |
14 | changeEvent: 'update:value', | 14 | changeEvent: 'update:value', |
15 | - defaultValue: option.controlBarColor, | 15 | + defaultValue: option.fontColor, |
16 | }, | 16 | }, |
17 | { | 17 | { |
18 | - field: ComponentConfigFieldEnum.FONT_COLOR, | ||
19 | - label: '数值字体颜色', | 18 | + field: ComponentConfigFieldEnum.VALUE_SIZE, |
19 | + label: '数值字体大小', | ||
20 | + component: 'InputNumber', | ||
21 | + defaultValue: option.fontSize, | ||
22 | + }, | ||
23 | + { | ||
24 | + field: ComponentConfigFieldEnum.TEXT_COLOR, | ||
25 | + label: '文本字体颜色', | ||
20 | component: 'ColorPicker', | 26 | component: 'ColorPicker', |
21 | changeEvent: 'update:value', | 27 | changeEvent: 'update:value', |
22 | defaultValue: option.fontColor, | 28 | defaultValue: option.fontColor, |
23 | }, | 29 | }, |
24 | { | 30 | { |
31 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
32 | + label: '文本字体大小', | ||
33 | + component: 'InputNumber', | ||
34 | + defaultValue: option.fontSize, | ||
35 | + }, | ||
36 | + { | ||
37 | + field: ComponentConfigFieldEnum.CONTROL_BAR_COLOR, | ||
38 | + label: '控制栏背景色', | ||
39 | + component: 'ColorPicker', | ||
40 | + changeEvent: 'update:value', | ||
41 | + defaultValue: option.controlBarColor, | ||
42 | + }, | ||
43 | + { | ||
25 | field: ComponentConfigFieldEnum.MIN_NUMBER, | 44 | field: ComponentConfigFieldEnum.MIN_NUMBER, |
26 | label: '最小值', | 45 | label: '最小值', |
27 | component: 'InputNumber', | 46 | component: 'InputNumber', |
@@ -61,6 +80,7 @@ | @@ -61,6 +80,7 @@ | ||
61 | }; | 80 | }; |
62 | }, | 81 | }, |
63 | }, | 82 | }, |
83 | + | ||
64 | { | 84 | { |
65 | field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | 85 | field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, |
66 | label: '显示设备名称', | 86 | label: '显示设备名称', |
@@ -43,8 +43,12 @@ | @@ -43,8 +43,12 @@ | ||
43 | fonColor: persetFontColor, | 43 | fonColor: persetFontColor, |
44 | minNumber: persetMinNumber, | 44 | minNumber: persetMinNumber, |
45 | maxNumber: persetMaxNumber, | 45 | maxNumber: persetMaxNumber, |
46 | + textColor: persetTextColor, | ||
47 | + valueSize: persetValueSize, | ||
48 | + fontSize: persetFontSize, | ||
46 | } = persetOption || {}; | 49 | } = persetOption || {}; |
47 | - const { controlBarColor, fontColor, minNumber, maxNumber } = componentInfo || {}; | 50 | + const { controlBarColor, fontColor, minNumber, maxNumber, textColor, valueSize, fontSize } = |
51 | + componentInfo || {}; | ||
48 | return { | 52 | return { |
49 | attribute: attributeRename || attributeName || attribute, | 53 | attribute: attributeRename || attributeName || attribute, |
50 | controlBarColor: controlBarColor ?? persetControlBarColor, | 54 | controlBarColor: controlBarColor ?? persetControlBarColor, |
@@ -56,6 +60,9 @@ | @@ -56,6 +60,9 @@ | ||
56 | codeType, | 60 | codeType, |
57 | deviceCode, | 61 | deviceCode, |
58 | customCommand, | 62 | customCommand, |
63 | + textColor: textColor || persetTextColor, | ||
64 | + valueSize: valueSize || persetValueSize || 20, | ||
65 | + fontSize: fontSize || persetFontSize || 14, | ||
59 | }; | 66 | }; |
60 | }); | 67 | }); |
61 | 68 | ||
@@ -198,7 +205,7 @@ | @@ -198,7 +205,7 @@ | ||
198 | <Spin :spinning="loading" class="w-full h-full"> | 205 | <Spin :spinning="loading" class="w-full h-full"> |
199 | <div class="flex flex-col" style="width: 80%"> | 206 | <div class="flex flex-col" style="width: 80%"> |
200 | <span | 207 | <span |
201 | - :style="{ color: getDesign.fontColor }" | 208 | + :style="{ color: getDesign.fontColor, fontSize: getDesign.valueSize + 'px' }" |
202 | class="font-bold text-xl mt-3 truncate text-center" | 209 | class="font-bold text-xl mt-3 truncate text-center" |
203 | >{{ sliderValue }}</span | 210 | >{{ sliderValue }}</span |
204 | > | 211 | > |
@@ -215,7 +222,7 @@ | @@ -215,7 +222,7 @@ | ||
215 | /> | 222 | /> |
216 | 223 | ||
217 | <span | 224 | <span |
218 | - :style="{ color: getDesign.fontColor }" | 225 | + :style="{ color: getDesign.textColor, fontSize: getDesign.fontSize + 'px' }" |
219 | class="mt-3 truncate font-bold text-xs text-center" | 226 | class="mt-3 truncate font-bold text-xs text-center" |
220 | > | 227 | > |
221 | {{ getDesign.attribute || '属性' }} | 228 | {{ getDesign.attribute || '属性' }} |
@@ -14,6 +14,7 @@ export const option: PublicPresetOptions = { | @@ -14,6 +14,7 @@ export const option: PublicPresetOptions = { | ||
14 | [ComponentConfigFieldEnum.ICON]: 'shuiwen', | 14 | [ComponentConfigFieldEnum.ICON]: 'shuiwen', |
15 | [ComponentConfigFieldEnum.ICON_COLOR]: '#377DFF', | 15 | [ComponentConfigFieldEnum.ICON_COLOR]: '#377DFF', |
16 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 16 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
17 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
17 | }; | 18 | }; |
18 | 19 | ||
19 | export default class Config extends PublicConfigClass implements CreateComponentType { | 20 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -27,6 +27,12 @@ | @@ -27,6 +27,12 @@ | ||
27 | }, | 27 | }, |
28 | }, | 28 | }, |
29 | { | 29 | { |
30 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
31 | + label: '文本字体大小', | ||
32 | + component: 'InputNumber', | ||
33 | + defaultValue: option.fontSize, | ||
34 | + }, | ||
35 | + { | ||
30 | field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | 36 | field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, |
31 | label: '显示设备名称', | 37 | label: '显示设备名称', |
32 | component: 'Checkbox', | 38 | component: 'Checkbox', |
@@ -5,6 +5,6 @@ const componentKeys = useComponentKeys('SwitchList'); | @@ -5,6 +5,6 @@ const componentKeys = useComponentKeys('SwitchList'); | ||
5 | 5 | ||
6 | export const SwitchListConfig: ConfigType = { | 6 | export const SwitchListConfig: ConfigType = { |
7 | ...componentKeys, | 7 | ...componentKeys, |
8 | - title: '开关量控制列表', | 8 | + title: '开关控制列表', |
9 | package: PackagesCategoryEnum.CONTROL, | 9 | package: PackagesCategoryEnum.CONTROL, |
10 | }; | 10 | }; |
@@ -52,10 +52,11 @@ | @@ -52,10 +52,11 @@ | ||
52 | fontColor: persetFontColor, | 52 | fontColor: persetFontColor, |
53 | icon: persetIcon, | 53 | icon: persetIcon, |
54 | iconColor: persetIconColor, | 54 | iconColor: persetIconColor, |
55 | + fontSize: persetFontSize, | ||
55 | } = persetOption || {}; | 56 | } = persetOption || {}; |
56 | return { | 57 | return { |
57 | dataSource: dataSource.map((item) => { | 58 | dataSource: dataSource.map((item) => { |
58 | - const { fontColor, icon, iconColor, unit, showDeviceName } = item.componentInfo; | 59 | + const { fontColor, icon, iconColor, unit, showDeviceName, fontSize } = item.componentInfo; |
59 | const { | 60 | const { |
60 | attribute, | 61 | attribute, |
61 | attributeRename, | 62 | attributeRename, |
@@ -84,6 +85,7 @@ | @@ -84,6 +85,7 @@ | ||
84 | codeType, | 85 | codeType, |
85 | deviceCode, | 86 | deviceCode, |
86 | customCommand, | 87 | customCommand, |
88 | + fontSize: fontSize || persetFontSize || 14, | ||
87 | }; | 89 | }; |
88 | }), | 90 | }), |
89 | }; | 91 | }; |
@@ -146,19 +148,15 @@ | @@ -146,19 +148,15 @@ | ||
146 | <SvgIcon | 148 | <SvgIcon |
147 | :name="item.icon!" | 149 | :name="item.icon!" |
148 | prefix="iconfont" | 150 | prefix="iconfont" |
149 | - :size="getRatio ? 30 * getRatio : 30" | 151 | + :size="getRatio ? 25 * getRatio : 25" |
150 | :style="{ color: item.iconColor }" | 152 | :style="{ color: item.iconColor }" |
151 | /> | 153 | /> |
152 | 154 | ||
153 | - <div | ||
154 | - class="text-gray-500 truncate ml-6" | ||
155 | - :style="{ fontSize: getRatio ? '18px' : getRatio * 18 + 'px' }" | ||
156 | - >{{ | ||
157 | - `${item.deviceName} - ${ | ||
158 | - item.commandType ? CommandTypeEnumLIst[item.commandType].name : item.attributeName | ||
159 | - }` | ||
160 | - }}</div | ||
161 | - > | 155 | + <div class="text-gray-500 truncate ml-6" :style="{ fontSize: item.fontSize + 'px' }">{{ |
156 | + `${item.deviceName} - ${ | ||
157 | + item.commandType ? CommandTypeEnumLIst[item.commandType].name : item.attributeName | ||
158 | + }` | ||
159 | + }}</div> | ||
162 | </div> | 160 | </div> |
163 | 161 | ||
164 | <Switch | 162 | <Switch |
@@ -13,6 +13,8 @@ export const option: PublicPresetOptions = { | @@ -13,6 +13,8 @@ export const option: PublicPresetOptions = { | ||
13 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 13 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
14 | [ComponentConfigFieldEnum.UNIT]: 'm', | 14 | [ComponentConfigFieldEnum.UNIT]: 'm', |
15 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, | 15 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, |
16 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 20, | ||
17 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
16 | [ComponentConfigFieldEnum.FONT_COLOR]: '#fff', | 18 | [ComponentConfigFieldEnum.FONT_COLOR]: '#fff', |
17 | [ComponentConfigFieldEnum.SHOW_TIME]: false, | 19 | [ComponentConfigFieldEnum.SHOW_TIME]: false, |
18 | [ComponentConfigFieldEnum.FLOWMETER_CONFIG]: { | 20 | [ComponentConfigFieldEnum.FLOWMETER_CONFIG]: { |
@@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
10 | schemas: [ | 10 | schemas: [ |
11 | { | 11 | { |
12 | field: ComponentConfigFieldEnum.FONT_COLOR, | 12 | field: ComponentConfigFieldEnum.FONT_COLOR, |
13 | - label: '字体颜色', | 13 | + label: '数值字体颜色', |
14 | component: 'ColorPicker', | 14 | component: 'ColorPicker', |
15 | changeEvent: 'update:value', | 15 | changeEvent: 'update:value', |
16 | defaultValue: option.fontColor, | 16 | defaultValue: option.fontColor, |
@@ -50,6 +50,24 @@ | @@ -50,6 +50,24 @@ | ||
50 | defaultValue: option.unit, | 50 | defaultValue: option.unit, |
51 | }, | 51 | }, |
52 | { | 52 | { |
53 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
54 | + label: '数值字体大小', | ||
55 | + component: 'InputNumber', | ||
56 | + defaultValue: 14, | ||
57 | + componentProps: { | ||
58 | + min: 0, | ||
59 | + }, | ||
60 | + }, | ||
61 | + { | ||
62 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
63 | + label: '文本字体大小', | ||
64 | + component: 'InputNumber', | ||
65 | + defaultValue: 14, | ||
66 | + componentProps: { | ||
67 | + min: 0, | ||
68 | + }, | ||
69 | + }, | ||
70 | + { | ||
53 | field: ComponentConfigFieldEnum.MAX_NUMBER, | 71 | field: ComponentConfigFieldEnum.MAX_NUMBER, |
54 | label: '最大值', | 72 | label: '最大值', |
55 | component: 'InputNumber', | 73 | component: 'InputNumber', |
@@ -20,7 +20,8 @@ | @@ -20,7 +20,8 @@ | ||
20 | const getDesign = computed(() => { | 20 | const getDesign = computed(() => { |
21 | const { option, persetOption } = props.config; | 21 | const { option, persetOption } = props.config; |
22 | const { componentInfo, attribute, attributeName, attributeRename } = option; | 22 | const { componentInfo, attribute, attributeName, attributeRename } = option; |
23 | - const { flowmeterConfig, unit, fontColor, showTime, maxNumber } = componentInfo || {}; | 23 | + const { flowmeterConfig, unit, fontColor, showTime, maxNumber, valueSize, fontSize } = |
24 | + componentInfo || {}; | ||
24 | const { backgroundColor, waveFirst, waveSecond, waveThird } = flowmeterConfig || {}; | 25 | const { backgroundColor, waveFirst, waveSecond, waveThird } = flowmeterConfig || {}; |
25 | const { | 26 | const { |
26 | flowmeterConfig: presetFlowmeterConfig, | 27 | flowmeterConfig: presetFlowmeterConfig, |
@@ -28,6 +29,8 @@ | @@ -28,6 +29,8 @@ | ||
28 | fontColor: presetFontColor, | 29 | fontColor: presetFontColor, |
29 | showTime: persetShowTime, | 30 | showTime: persetShowTime, |
30 | maxNumber: persetMaxNumber, | 31 | maxNumber: persetMaxNumber, |
32 | + valueSize: persetValueSize, | ||
33 | + fontSize: persetFontSize, | ||
31 | } = persetOption || {}; | 34 | } = persetOption || {}; |
32 | const { | 35 | const { |
33 | backgroundColor: presetBackgroundColor, | 36 | backgroundColor: presetBackgroundColor, |
@@ -45,6 +48,8 @@ | @@ -45,6 +48,8 @@ | ||
45 | attribute: attributeRename || attributeName || attribute, | 48 | attribute: attributeRename || attributeName || attribute, |
46 | showTime: showTime ?? persetShowTime, | 49 | showTime: showTime ?? persetShowTime, |
47 | maxNumber: maxNumber ?? persetMaxNumber, | 50 | maxNumber: maxNumber ?? persetMaxNumber, |
51 | + valueSize: valueSize || persetValueSize || 20, | ||
52 | + fontSize: fontSize || persetFontSize || 14, | ||
48 | }; | 53 | }; |
49 | }); | 54 | }); |
50 | 55 | ||
@@ -129,14 +134,17 @@ | @@ -129,14 +134,17 @@ | ||
129 | 134 | ||
130 | <div | 135 | <div |
131 | class="absolute w-full h-full top-0 left-0 text-center text-lg flex items-center justify-center" | 136 | class="absolute w-full h-full top-0 left-0 text-center text-lg flex items-center justify-center" |
132 | - :style="{ color: getDesign.fontColor }" | 137 | + :style="{ color: getDesign.fontColor, fontSize: getDesign.valueSize + 'px' }" |
133 | > | 138 | > |
134 | <div>{{ currentValue }}</div> | 139 | <div>{{ currentValue }}</div> |
135 | <div class="ml-1">{{ getDesign.unit }}</div> | 140 | <div class="ml-1">{{ getDesign.unit }}</div> |
136 | </div> | 141 | </div> |
137 | - <div class="text-gray-500 text-sm truncate" style="flex: 0 0 20px">{{ | ||
138 | - getDesign.attribute || '属性' | ||
139 | - }}</div> | 142 | + <div |
143 | + class="text-gray-500 text-sm truncate" | ||
144 | + style="flex: 0 0 20px" | ||
145 | + :style="{ fontSize: getDesign.fontSize + 'px' }" | ||
146 | + >{{ getDesign.attribute || '属性' }}</div | ||
147 | + > | ||
140 | <UpdateTime v-show="getDesign.showTime" :time="time" /> | 148 | <UpdateTime v-show="getDesign.showTime" :time="time" /> |
141 | </main> | 149 | </main> |
142 | </template> | 150 | </template> |
@@ -14,6 +14,8 @@ export const option: PublicPresetOptions = { | @@ -14,6 +14,8 @@ export const option: PublicPresetOptions = { | ||
14 | [ComponentConfigFieldEnum.SHOW_TIME]: false, | 14 | [ComponentConfigFieldEnum.SHOW_TIME]: false, |
15 | [ComponentConfigFieldEnum.UNIT]: 'm', | 15 | [ComponentConfigFieldEnum.UNIT]: 'm', |
16 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, | 16 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, |
17 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
18 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 20, | ||
17 | [ComponentConfigFieldEnum.FLOWMETER_CONFIG]: { | 19 | [ComponentConfigFieldEnum.FLOWMETER_CONFIG]: { |
18 | [ComponentConfigFieldEnum.BACKGROUND_COLOR]: '#8badcb', | 20 | [ComponentConfigFieldEnum.BACKGROUND_COLOR]: '#8badcb', |
19 | [ComponentConfigFieldEnum.WAVE_FIRST]: '#4579e2', | 21 | [ComponentConfigFieldEnum.WAVE_FIRST]: '#4579e2', |
@@ -10,7 +10,7 @@ | @@ -10,7 +10,7 @@ | ||
10 | schemas: [ | 10 | schemas: [ |
11 | { | 11 | { |
12 | field: ComponentConfigFieldEnum.FONT_COLOR, | 12 | field: ComponentConfigFieldEnum.FONT_COLOR, |
13 | - label: '字体颜色', | 13 | + label: '数值字体颜色', |
14 | component: 'ColorPicker', | 14 | component: 'ColorPicker', |
15 | changeEvent: 'update:value', | 15 | changeEvent: 'update:value', |
16 | defaultValue: option.fontColor, | 16 | defaultValue: option.fontColor, |
@@ -56,6 +56,24 @@ | @@ -56,6 +56,24 @@ | ||
56 | // defaultValue: 0, | 56 | // defaultValue: 0, |
57 | // }, | 57 | // }, |
58 | { | 58 | { |
59 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
60 | + label: '数值字体大小', | ||
61 | + component: 'InputNumber', | ||
62 | + defaultValue: 14, | ||
63 | + componentProps: { | ||
64 | + min: 0, | ||
65 | + }, | ||
66 | + }, | ||
67 | + { | ||
68 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
69 | + label: '文本字体大小', | ||
70 | + component: 'InputNumber', | ||
71 | + defaultValue: 14, | ||
72 | + componentProps: { | ||
73 | + min: 0, | ||
74 | + }, | ||
75 | + }, | ||
76 | + { | ||
59 | field: ComponentConfigFieldEnum.MAX_NUMBER, | 77 | field: ComponentConfigFieldEnum.MAX_NUMBER, |
60 | label: '最大值', | 78 | label: '最大值', |
61 | component: 'InputNumber', | 79 | component: 'InputNumber', |
@@ -20,7 +20,8 @@ | @@ -20,7 +20,8 @@ | ||
20 | const getDesign = computed(() => { | 20 | const getDesign = computed(() => { |
21 | const { option, persetOption } = props.config; | 21 | const { option, persetOption } = props.config; |
22 | const { componentInfo, attribute, attributeName, attributeRename } = option; | 22 | const { componentInfo, attribute, attributeName, attributeRename } = option; |
23 | - const { flowmeterConfig, unit, fontColor, showTime, maxNumber } = componentInfo || {}; | 23 | + const { flowmeterConfig, unit, fontColor, showTime, maxNumber, fontSize, valueSize } = |
24 | + componentInfo || {}; | ||
24 | const { backgroundColor, waveFirst, waveSecond, waveThird } = flowmeterConfig || {}; | 25 | const { backgroundColor, waveFirst, waveSecond, waveThird } = flowmeterConfig || {}; |
25 | const { | 26 | const { |
26 | flowmeterConfig: presetFlowmeterConfig, | 27 | flowmeterConfig: presetFlowmeterConfig, |
@@ -28,6 +29,8 @@ | @@ -28,6 +29,8 @@ | ||
28 | fontColor: presetFontColor, | 29 | fontColor: presetFontColor, |
29 | showTime: persetShowTime, | 30 | showTime: persetShowTime, |
30 | maxNumber: persetMaxNumber, | 31 | maxNumber: persetMaxNumber, |
32 | + fontSize: persetFontSize, | ||
33 | + valueSize: persetValueSize, | ||
31 | } = persetOption || {}; | 34 | } = persetOption || {}; |
32 | const { | 35 | const { |
33 | backgroundColor: presetBackgroundColor, | 36 | backgroundColor: presetBackgroundColor, |
@@ -45,6 +48,8 @@ | @@ -45,6 +48,8 @@ | ||
45 | attribute: attributeRename || attributeName || attribute, | 48 | attribute: attributeRename || attributeName || attribute, |
46 | showTime: showTime ?? persetShowTime, | 49 | showTime: showTime ?? persetShowTime, |
47 | maxNumber: maxNumber ?? persetMaxNumber, | 50 | maxNumber: maxNumber ?? persetMaxNumber, |
51 | + fontSize: fontSize || persetFontSize || 14, | ||
52 | + valueSize: valueSize || persetValueSize || 20, | ||
48 | }; | 53 | }; |
49 | }); | 54 | }); |
50 | 55 | ||
@@ -122,14 +127,17 @@ | @@ -122,14 +127,17 @@ | ||
122 | </svg> | 127 | </svg> |
123 | <div | 128 | <div |
124 | class="absolute w-full h-full top-0 left-0 text-center text-lg flex items-center justify-center" | 129 | class="absolute w-full h-full top-0 left-0 text-center text-lg flex items-center justify-center" |
125 | - :style="{ color: getDesign.fontColor }" | 130 | + :style="{ color: getDesign.fontColor, fontSize: getDesign.valueSize + 'px' }" |
126 | > | 131 | > |
127 | <div>{{ currentValue }}</div> | 132 | <div>{{ currentValue }}</div> |
128 | <div class="ml-1">{{ getDesign.unit }}</div> | 133 | <div class="ml-1">{{ getDesign.unit }}</div> |
129 | </div> | 134 | </div> |
130 | - <div class="text-gray-500 text-sm truncate" style="flex: 0 0 20px">{{ | ||
131 | - getDesign.attribute || '属性' | ||
132 | - }}</div> | 135 | + <div |
136 | + class="text-gray-500" | ||
137 | + style="flex: 0 0 20px" | ||
138 | + :style="{ fontSize: getDesign.fontSize + 'px', height: getDesign.fontSize + 'px' }" | ||
139 | + >{{ getDesign.attribute || '属性' }}</div | ||
140 | + > | ||
133 | <UpdateTime v-show="getDesign.showTime" :time="time" /> | 141 | <UpdateTime v-show="getDesign.showTime" :time="time" /> |
134 | </main> | 142 | </main> |
135 | </template> | 143 | </template> |
@@ -27,6 +27,8 @@ export const option: PublicPresetOptions = { | @@ -27,6 +27,8 @@ export const option: PublicPresetOptions = { | ||
27 | [ComponentConfigFieldEnum.UNIT]: '℃', | 27 | [ComponentConfigFieldEnum.UNIT]: '℃', |
28 | [ComponentConfigFieldEnum.POINTER_COLOR]: '#15E2C6', | 28 | [ComponentConfigFieldEnum.POINTER_COLOR]: '#15E2C6', |
29 | [ComponentConfigFieldEnum.INSTRUMENT_PANEL_COLOR]: '#61D4C5', | 29 | [ComponentConfigFieldEnum.INSTRUMENT_PANEL_COLOR]: '#61D4C5', |
30 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
31 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 14, | ||
30 | [ComponentConfigFieldEnum.GRADIENT_INFO]: [ | 32 | [ComponentConfigFieldEnum.GRADIENT_INFO]: [ |
31 | { key: Gradient.FIRST, value: 0, color: GradientColor.FIRST }, | 33 | { key: Gradient.FIRST, value: 0, color: GradientColor.FIRST }, |
32 | { key: Gradient.SECOND, value: 1, color: GradientColor.SECOND }, | 34 | { key: Gradient.SECOND, value: 1, color: GradientColor.SECOND }, |
@@ -43,26 +43,6 @@ | @@ -43,26 +43,6 @@ | ||
43 | changeEvent: 'update:value', | 43 | changeEvent: 'update:value', |
44 | defaultValue: GradientColor.SECOND, | 44 | defaultValue: GradientColor.SECOND, |
45 | }, | 45 | }, |
46 | - // { | ||
47 | - // field: ComponentConfigFieldEnum.INSTRUMENT_PANEL_WIDTH, | ||
48 | - // label: '仪表盘宽度', | ||
49 | - // component: 'Slider', | ||
50 | - // changeEvent: 'update:value', | ||
51 | - // defaultValue: option.pointerColor, | ||
52 | - // }, | ||
53 | - { | ||
54 | - field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | ||
55 | - label: '显示设备名称', | ||
56 | - component: 'Checkbox', | ||
57 | - defaultValue: option.showDeviceName, | ||
58 | - }, | ||
59 | - { | ||
60 | - field: ComponentConfigFieldEnum.SHOW_TIME, | ||
61 | - label: '显示时间', | ||
62 | - component: 'Checkbox', | ||
63 | - defaultValue: option.showTime, | ||
64 | - }, | ||
65 | - | ||
66 | { | 46 | { |
67 | field: ComponentConfigFieldEnum.UNIT, | 47 | field: ComponentConfigFieldEnum.UNIT, |
68 | label: '数值单位', | 48 | label: '数值单位', |
@@ -70,6 +50,24 @@ | @@ -70,6 +50,24 @@ | ||
70 | defaultValue: option.unit, | 50 | defaultValue: option.unit, |
71 | }, | 51 | }, |
72 | { | 52 | { |
53 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
54 | + label: '数值字体大小', | ||
55 | + component: 'InputNumber', | ||
56 | + defaultValue: 14, | ||
57 | + componentProps: { | ||
58 | + min: 0, | ||
59 | + }, | ||
60 | + }, | ||
61 | + { | ||
62 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
63 | + label: '文本字体大小', | ||
64 | + component: 'InputNumber', | ||
65 | + defaultValue: 14, | ||
66 | + componentProps: { | ||
67 | + min: 0, | ||
68 | + }, | ||
69 | + }, | ||
70 | + { | ||
73 | field: ComponentConfigFieldEnum.MAX_NUMBER, | 71 | field: ComponentConfigFieldEnum.MAX_NUMBER, |
74 | label: '最大值', | 72 | label: '最大值', |
75 | component: 'InputNumber', | 73 | component: 'InputNumber', |
@@ -90,6 +88,18 @@ | @@ -90,6 +88,18 @@ | ||
90 | }; | 88 | }; |
91 | }, | 89 | }, |
92 | }, | 90 | }, |
91 | + { | ||
92 | + field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | ||
93 | + label: '显示设备名称', | ||
94 | + component: 'Checkbox', | ||
95 | + defaultValue: option.showDeviceName, | ||
96 | + }, | ||
97 | + { | ||
98 | + field: ComponentConfigFieldEnum.SHOW_TIME, | ||
99 | + label: '显示时间', | ||
100 | + component: 'Checkbox', | ||
101 | + defaultValue: option.showTime, | ||
102 | + }, | ||
93 | ], | 103 | ], |
94 | showActionButtonGroup: false, | 104 | showActionButtonGroup: false, |
95 | labelWidth: 120, | 105 | labelWidth: 120, |
@@ -120,13 +130,24 @@ | @@ -120,13 +130,24 @@ | ||
120 | showTime: item[ComponentConfigFieldEnum.SHOW_TIME], | 130 | showTime: item[ComponentConfigFieldEnum.SHOW_TIME], |
121 | pointerColor: item[ComponentConfigFieldEnum.POINTER_COLOR], | 131 | pointerColor: item[ComponentConfigFieldEnum.POINTER_COLOR], |
122 | maxNumber: item[ComponentConfigFieldEnum.MAX_NUMBER], | 132 | maxNumber: item[ComponentConfigFieldEnum.MAX_NUMBER], |
133 | + fontSize: item[ComponentConfigFieldEnum.FONT_SIZE], | ||
134 | + valueSize: item[ComponentConfigFieldEnum.VALUE_SIZE], | ||
123 | } as ComponentInfo; | 135 | } as ComponentInfo; |
124 | }; | 136 | }; |
125 | 137 | ||
126 | const setFormValues = (data: Recordable) => { | 138 | const setFormValues = (data: Recordable) => { |
127 | // return setFieldsValue(data); | 139 | // return setFieldsValue(data); |
128 | - const { gradientInfo, unit, fontColor, showDeviceName, pointerColor, showTime, maxNumber } = | ||
129 | - data; | 140 | + const { |
141 | + gradientInfo, | ||
142 | + unit, | ||
143 | + fontColor, | ||
144 | + showDeviceName, | ||
145 | + pointerColor, | ||
146 | + showTime, | ||
147 | + maxNumber, | ||
148 | + fontSize, | ||
149 | + valueSize, | ||
150 | + } = data; | ||
130 | const firstRecord = gradientInfo.find((item) => item.key === Gradient.FIRST); | 151 | const firstRecord = gradientInfo.find((item) => item.key === Gradient.FIRST); |
131 | const secondRecord = gradientInfo.find((item) => item.key === Gradient.SECOND); | 152 | const secondRecord = gradientInfo.find((item) => item.key === Gradient.SECOND); |
132 | 153 | ||
@@ -141,6 +162,8 @@ | @@ -141,6 +162,8 @@ | ||
141 | [ComponentConfigFieldEnum.SECOND_PHASE_COLOR]: secondRecord?.color, | 162 | [ComponentConfigFieldEnum.SECOND_PHASE_COLOR]: secondRecord?.color, |
142 | [ComponentConfigFieldEnum.POINTER_COLOR]: pointerColor, | 163 | [ComponentConfigFieldEnum.POINTER_COLOR]: pointerColor, |
143 | [ComponentConfigFieldEnum.MAX_NUMBER]: maxNumber, | 164 | [ComponentConfigFieldEnum.MAX_NUMBER]: maxNumber, |
165 | + [ComponentConfigFieldEnum.FONT_SIZE]: fontSize, | ||
166 | + [ComponentConfigFieldEnum.VALUE_SIZE]: valueSize, | ||
144 | }; | 167 | }; |
145 | return setFieldsValue(value); | 168 | return setFieldsValue(value); |
146 | }; | 169 | }; |
@@ -32,6 +32,8 @@ | @@ -32,6 +32,8 @@ | ||
32 | gradientInfo: presetGradientInfo, | 32 | gradientInfo: presetGradientInfo, |
33 | showTime: persetShowTime, | 33 | showTime: persetShowTime, |
34 | maxNumber: persetMaxNumber, | 34 | maxNumber: persetMaxNumber, |
35 | + fontSize: persetFontSize, | ||
36 | + valueSize: persetValueSize, | ||
35 | } = persetOption || {}; | 37 | } = persetOption || {}; |
36 | const { | 38 | const { |
37 | unit, | 39 | unit, |
@@ -41,6 +43,8 @@ | @@ -41,6 +43,8 @@ | ||
41 | gradientInfo, | 43 | gradientInfo, |
42 | showTime, | 44 | showTime, |
43 | maxNumber, | 45 | maxNumber, |
46 | + fontSize, | ||
47 | + valueSize, | ||
44 | } = componentInfo || {}; | 48 | } = componentInfo || {}; |
45 | return { | 49 | return { |
46 | unit: unit ?? presetUnit, | 50 | unit: unit ?? presetUnit, |
@@ -51,6 +55,8 @@ | @@ -51,6 +55,8 @@ | ||
51 | gradientInfo: gradientInfo ?? presetGradientInfo, | 55 | gradientInfo: gradientInfo ?? presetGradientInfo, |
52 | showTime: showTime ?? persetShowTime, | 56 | showTime: showTime ?? persetShowTime, |
53 | maxNumber: maxNumber || persetMaxNumber, | 57 | maxNumber: maxNumber || persetMaxNumber, |
58 | + fontSize: fontSize || persetFontSize || 14, | ||
59 | + valueSize: valueSize || persetValueSize || 14, | ||
54 | }; | 60 | }; |
55 | }); | 61 | }); |
56 | 62 | ||
@@ -66,7 +72,7 @@ | @@ -66,7 +72,7 @@ | ||
66 | }; | 72 | }; |
67 | 73 | ||
68 | const options = (): EChartsOption => { | 74 | const options = (): EChartsOption => { |
69 | - const { unit, fontColor, pointerColor, gradientInfo, maxNumber } = unref(getDesign); | 75 | + const { unit, fontColor, pointerColor, gradientInfo, maxNumber, valueSize } = unref(getDesign); |
70 | 76 | ||
71 | const instrumentPanelColor = getStageColor(gradientInfo); | 77 | const instrumentPanelColor = getStageColor(gradientInfo); |
72 | // getStageColor(gradientInfo); | 78 | // getStageColor(gradientInfo); |
@@ -108,7 +114,7 @@ | @@ -108,7 +114,7 @@ | ||
108 | //指针 | 114 | //指针 |
109 | show: true, | 115 | show: true, |
110 | icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z', | 116 | icon: 'path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z', |
111 | - width: 4 * unref(getRatio) ? 4 * unref(getRatio) : 4, | 117 | + width: unref(getRatio) ? 4 * unref(getRatio) : 4, |
112 | length: '100%', | 118 | length: '100%', |
113 | itemStyle: { | 119 | itemStyle: { |
114 | color: pointerColor, | 120 | color: pointerColor, |
@@ -128,7 +134,7 @@ | @@ -128,7 +134,7 @@ | ||
128 | }, | 134 | }, |
129 | detail: { | 135 | detail: { |
130 | valueAnimation: true, | 136 | valueAnimation: true, |
131 | - fontSize: 14 * unref(getRatio), | 137 | + fontSize: unref(getRatio) ? valueSize * unref(getRatio) : valueSize, |
132 | fontWeight: 'bolder', | 138 | fontWeight: 'bolder', |
133 | formatter: `{value} ${unit ?? ''}`, | 139 | formatter: `{value} ${unit ?? ''}`, |
134 | color: fontColor || 'inherit', | 140 | color: fontColor || 'inherit', |
@@ -199,7 +205,7 @@ | @@ -199,7 +205,7 @@ | ||
199 | width: 4 * unref(getRatio), | 205 | width: 4 * unref(getRatio), |
200 | }, | 206 | }, |
201 | detail: { | 207 | detail: { |
202 | - fontSize: 14 * unref(getRatio), | 208 | + fontSize: unref(getDesign).valueSize * unref(getRatio), |
203 | }, | 209 | }, |
204 | }, | 210 | }, |
205 | ], | 211 | ], |
@@ -219,9 +225,11 @@ | @@ -219,9 +225,11 @@ | ||
219 | <div class="w-full h-full flex flex-1 flex-col justify-center items-center"> | 225 | <div class="w-full h-full flex flex-1 flex-col justify-center items-center"> |
220 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex flex-col justify-center items-center"> | 226 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex flex-col justify-center items-center"> |
221 | </div> | 227 | </div> |
222 | - <div class="text-gray-500 text-xs text-center truncate">{{ | ||
223 | - getDesign.attribute || '湿度' | ||
224 | - }}</div> | 228 | + <div |
229 | + class="text-gray-500 text-center truncate" | ||
230 | + :style="{ fontSize: getDesign.fontSize + 'px' }" | ||
231 | + >{{ getDesign.attribute || '湿度' }}</div | ||
232 | + > | ||
225 | </div> | 233 | </div> |
226 | <UpdateTime v-if="getDesign.showTime" :time="time" /> | 234 | <UpdateTime v-if="getDesign.showTime" :time="time" /> |
227 | </main> | 235 | </main> |
@@ -26,6 +26,8 @@ export const option: PublicPresetOptions = { | @@ -26,6 +26,8 @@ export const option: PublicPresetOptions = { | ||
26 | [ComponentConfigFieldEnum.POINTER_COLOR]: '#15E2C6', | 26 | [ComponentConfigFieldEnum.POINTER_COLOR]: '#15E2C6', |
27 | [ComponentConfigFieldEnum.INSTRUMENT_PANEL_COLOR]: '#61D4C5', | 27 | [ComponentConfigFieldEnum.INSTRUMENT_PANEL_COLOR]: '#61D4C5', |
28 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, | 28 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, |
29 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
30 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 14, | ||
29 | [ComponentConfigFieldEnum.GRADIENT_INFO]: [ | 31 | [ComponentConfigFieldEnum.GRADIENT_INFO]: [ |
30 | { key: Gradient.FIRST, value: 0, color: GradientColor.FIRST }, | 32 | { key: Gradient.FIRST, value: 0, color: GradientColor.FIRST }, |
31 | { key: Gradient.SECOND, value: 1, color: GradientColor.SECOND }, | 33 | { key: Gradient.SECOND, value: 1, color: GradientColor.SECOND }, |
@@ -43,24 +43,6 @@ | @@ -43,24 +43,6 @@ | ||
43 | defaultValue: GradientColor.SECOND, | 43 | defaultValue: GradientColor.SECOND, |
44 | }, | 44 | }, |
45 | { | 45 | { |
46 | - field: ComponentConfigFieldEnum.PROGRESS_BAR_CIRCLE, | ||
47 | - label: '显示进度条圆形', | ||
48 | - component: 'Checkbox', | ||
49 | - defaultValue: option.progressBarCircle, | ||
50 | - }, | ||
51 | - { | ||
52 | - field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | ||
53 | - label: '显示设备名称', | ||
54 | - component: 'Checkbox', | ||
55 | - defaultValue: option.showDeviceName, | ||
56 | - }, | ||
57 | - { | ||
58 | - field: ComponentConfigFieldEnum.SHOW_TIME, | ||
59 | - label: '显示时间', | ||
60 | - component: 'Checkbox', | ||
61 | - defaultValue: option.showTime, | ||
62 | - }, | ||
63 | - { | ||
64 | field: ComponentConfigFieldEnum.MAX_NUMBER, | 46 | field: ComponentConfigFieldEnum.MAX_NUMBER, |
65 | label: '最大值', | 47 | label: '最大值', |
66 | component: 'InputNumber', | 48 | component: 'InputNumber', |
@@ -81,6 +63,42 @@ | @@ -81,6 +63,42 @@ | ||
81 | }; | 63 | }; |
82 | }, | 64 | }, |
83 | }, | 65 | }, |
66 | + { | ||
67 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
68 | + label: '数值字体大小', | ||
69 | + component: 'InputNumber', | ||
70 | + defaultValue: 14, | ||
71 | + componentProps: { | ||
72 | + min: 0, | ||
73 | + }, | ||
74 | + }, | ||
75 | + { | ||
76 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
77 | + label: '文本字体大小', | ||
78 | + component: 'InputNumber', | ||
79 | + defaultValue: 14, | ||
80 | + componentProps: { | ||
81 | + min: 0, | ||
82 | + }, | ||
83 | + }, | ||
84 | + { | ||
85 | + field: ComponentConfigFieldEnum.PROGRESS_BAR_CIRCLE, | ||
86 | + label: '显示进度条圆形', | ||
87 | + component: 'Checkbox', | ||
88 | + defaultValue: option.progressBarCircle, | ||
89 | + }, | ||
90 | + { | ||
91 | + field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | ||
92 | + label: '显示设备名称', | ||
93 | + component: 'Checkbox', | ||
94 | + defaultValue: option.showDeviceName, | ||
95 | + }, | ||
96 | + { | ||
97 | + field: ComponentConfigFieldEnum.SHOW_TIME, | ||
98 | + label: '显示时间', | ||
99 | + component: 'Checkbox', | ||
100 | + defaultValue: option.showTime, | ||
101 | + }, | ||
84 | ], | 102 | ], |
85 | showActionButtonGroup: false, | 103 | showActionButtonGroup: false, |
86 | labelWidth: 120, | 104 | labelWidth: 120, |
@@ -111,6 +129,8 @@ | @@ -111,6 +129,8 @@ | ||
111 | showTime: item[ComponentConfigFieldEnum.SHOW_TIME], | 129 | showTime: item[ComponentConfigFieldEnum.SHOW_TIME], |
112 | progressBarCircle: item[ComponentConfigFieldEnum.PROGRESS_BAR_CIRCLE], | 130 | progressBarCircle: item[ComponentConfigFieldEnum.PROGRESS_BAR_CIRCLE], |
113 | maxNumber: item[ComponentConfigFieldEnum.MAX_NUMBER], | 131 | maxNumber: item[ComponentConfigFieldEnum.MAX_NUMBER], |
132 | + valueSize: item[ComponentConfigFieldEnum.VALUE_SIZE], | ||
133 | + fontSize: item[ComponentConfigFieldEnum.FONT_SIZE], | ||
114 | } as ComponentInfo; | 134 | } as ComponentInfo; |
115 | }; | 135 | }; |
116 | 136 | ||
@@ -124,6 +144,8 @@ | @@ -124,6 +144,8 @@ | ||
124 | progressBarCircle, | 144 | progressBarCircle, |
125 | showTime, | 145 | showTime, |
126 | maxNumber, | 146 | maxNumber, |
147 | + valueSize, | ||
148 | + fontSize, | ||
127 | } = data; | 149 | } = data; |
128 | const firstRecord = gradientInfo.find((item) => item.key === Gradient.FIRST); | 150 | const firstRecord = gradientInfo.find((item) => item.key === Gradient.FIRST); |
129 | const secondRecord = gradientInfo.find((item) => item.key === Gradient.SECOND); | 151 | const secondRecord = gradientInfo.find((item) => item.key === Gradient.SECOND); |
@@ -139,6 +161,8 @@ | @@ -139,6 +161,8 @@ | ||
139 | [ComponentConfigFieldEnum.SECOND_PHASE_COLOR]: secondRecord?.color, | 161 | [ComponentConfigFieldEnum.SECOND_PHASE_COLOR]: secondRecord?.color, |
140 | [ComponentConfigFieldEnum.PROGRESS_BAR_CIRCLE]: progressBarCircle, | 162 | [ComponentConfigFieldEnum.PROGRESS_BAR_CIRCLE]: progressBarCircle, |
141 | [ComponentConfigFieldEnum.MAX_NUMBER]: maxNumber, | 163 | [ComponentConfigFieldEnum.MAX_NUMBER]: maxNumber, |
164 | + [ComponentConfigFieldEnum.VALUE_SIZE]: valueSize, | ||
165 | + [ComponentConfigFieldEnum.FONT_SIZE]: fontSize, | ||
142 | }; | 166 | }; |
143 | return setFieldsValue(value); | 167 | return setFieldsValue(value); |
144 | }; | 168 | }; |
@@ -33,6 +33,8 @@ | @@ -33,6 +33,8 @@ | ||
33 | gradientInfo: presetGradientInfo, | 33 | gradientInfo: presetGradientInfo, |
34 | showTime: persetShowTime, | 34 | showTime: persetShowTime, |
35 | maxNumber: persetMaxNumber, | 35 | maxNumber: persetMaxNumber, |
36 | + fontSize: persetFontSize, | ||
37 | + valueSize: persetValueSize, | ||
36 | } = persetOption || {}; | 38 | } = persetOption || {}; |
37 | const { | 39 | const { |
38 | unit, | 40 | unit, |
@@ -43,6 +45,8 @@ | @@ -43,6 +45,8 @@ | ||
43 | instrumentPanelColor, | 45 | instrumentPanelColor, |
44 | showTime, | 46 | showTime, |
45 | maxNumber, | 47 | maxNumber, |
48 | + fontSize, | ||
49 | + valueSize, | ||
46 | } = componentInfo || {}; | 50 | } = componentInfo || {}; |
47 | return { | 51 | return { |
48 | unit: unit ?? presetUnit, | 52 | unit: unit ?? presetUnit, |
@@ -54,6 +58,8 @@ | @@ -54,6 +58,8 @@ | ||
54 | gradientInfo: gradientInfo ?? presetGradientInfo, | 58 | gradientInfo: gradientInfo ?? presetGradientInfo, |
55 | showTime: showTime ?? persetShowTime, | 59 | showTime: showTime ?? persetShowTime, |
56 | maxNumber: maxNumber || persetMaxNumber, | 60 | maxNumber: maxNumber || persetMaxNumber, |
61 | + fontSize: fontSize || persetFontSize || 14, | ||
62 | + valueSize: valueSize || persetValueSize || 14, | ||
57 | }; | 63 | }; |
58 | }); | 64 | }); |
59 | 65 | ||
@@ -71,7 +77,8 @@ | @@ -71,7 +77,8 @@ | ||
71 | const titleValue = ref<number>(20); | 77 | const titleValue = ref<number>(20); |
72 | 78 | ||
73 | const options = (): EChartsOption => { | 79 | const options = (): EChartsOption => { |
74 | - const { unit, fontColor, progressBarCircle, gradientInfo, maxNumber } = unref(getDesign); | 80 | + const { unit, fontColor, progressBarCircle, gradientInfo, maxNumber, valueSize } = |
81 | + unref(getDesign); | ||
75 | const instrumentPanelColor = getStageColor(gradientInfo); | 82 | const instrumentPanelColor = getStageColor(gradientInfo); |
76 | return { | 83 | return { |
77 | title: { | 84 | title: { |
@@ -79,7 +86,7 @@ | @@ -79,7 +86,7 @@ | ||
79 | top: 'center', | 86 | top: 'center', |
80 | left: 'center', | 87 | left: 'center', |
81 | textStyle: { | 88 | textStyle: { |
82 | - fontSize: unref(getRatio) ? 14 * unref(getRatio) : 14, | 89 | + fontSize: unref(getRatio) ? valueSize * unref(getRatio) : valueSize, |
83 | color: fontColor || '#65d3ff', | 90 | color: fontColor || '#65d3ff', |
84 | valueAnimation: true, | 91 | valueAnimation: true, |
85 | }, | 92 | }, |
@@ -210,7 +217,7 @@ | @@ -210,7 +217,7 @@ | ||
210 | ], | 217 | ], |
211 | title: { | 218 | title: { |
212 | textStyle: { | 219 | textStyle: { |
213 | - fontSize: 14 * unref(getRatio), | 220 | + fontSize: unref(getDesign).valueSize * unref(getRatio), |
214 | }, | 221 | }, |
215 | }, | 222 | }, |
216 | }); | 223 | }); |
@@ -229,9 +236,11 @@ | @@ -229,9 +236,11 @@ | ||
229 | <div class="flex w-full h-full flex-col justify-center items-center flex-1"> | 236 | <div class="flex w-full h-full flex-col justify-center items-center flex-1"> |
230 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex-col justify-center items-center flex"> | 237 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex-col justify-center items-center flex"> |
231 | </div> | 238 | </div> |
232 | - <div class="text-gray-500 text-xs text-center truncate">{{ | ||
233 | - getDesign.attribute || '湿度' | ||
234 | - }}</div> | 239 | + <div |
240 | + class="text-gray-500 text-center truncate" | ||
241 | + :style="{ fontSize: getDesign.fontSize + 'px' }" | ||
242 | + >{{ getDesign.attribute || '湿度' }}</div | ||
243 | + > | ||
235 | </div> | 244 | </div> |
236 | <UpdateTime v-if="getDesign.showTime" :time="time" /> | 245 | <UpdateTime v-if="getDesign.showTime" :time="time" /> |
237 | </main> | 246 | </main> |
@@ -23,6 +23,8 @@ export const option: PublicPresetOptions = { | @@ -23,6 +23,8 @@ export const option: PublicPresetOptions = { | ||
23 | [ComponentConfigFieldEnum.SHOW_TIME]: false, | 23 | [ComponentConfigFieldEnum.SHOW_TIME]: false, |
24 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, | 24 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, |
25 | [ComponentConfigFieldEnum.UNIT]: 'kw', | 25 | [ComponentConfigFieldEnum.UNIT]: 'kw', |
26 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
27 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 14, | ||
26 | }; | 28 | }; |
27 | 29 | ||
28 | export default class Config extends PublicConfigClass implements CreateComponentType { | 30 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -22,18 +22,6 @@ | @@ -22,18 +22,6 @@ | ||
22 | defaultValue: option.unit, | 22 | defaultValue: option.unit, |
23 | }, | 23 | }, |
24 | { | 24 | { |
25 | - field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | ||
26 | - label: '显示设备名称', | ||
27 | - component: 'Checkbox', | ||
28 | - defaultValue: option.showDeviceName, | ||
29 | - }, | ||
30 | - { | ||
31 | - field: ComponentConfigFieldEnum.SHOW_TIME, | ||
32 | - label: '显示时间', | ||
33 | - component: 'Checkbox', | ||
34 | - defaultValue: option.showTime, | ||
35 | - }, | ||
36 | - { | ||
37 | field: ComponentConfigFieldEnum.MAX_NUMBER, | 25 | field: ComponentConfigFieldEnum.MAX_NUMBER, |
38 | label: '最大值', | 26 | label: '最大值', |
39 | component: 'InputNumber', | 27 | component: 'InputNumber', |
@@ -54,6 +42,36 @@ | @@ -54,6 +42,36 @@ | ||
54 | }; | 42 | }; |
55 | }, | 43 | }, |
56 | }, | 44 | }, |
45 | + { | ||
46 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
47 | + label: '数值字体大小', | ||
48 | + component: 'InputNumber', | ||
49 | + defaultValue: 14, | ||
50 | + componentProps: { | ||
51 | + min: 0, | ||
52 | + }, | ||
53 | + }, | ||
54 | + { | ||
55 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
56 | + label: '文本字体大小', | ||
57 | + component: 'InputNumber', | ||
58 | + defaultValue: 14, | ||
59 | + componentProps: { | ||
60 | + min: 0, | ||
61 | + }, | ||
62 | + }, | ||
63 | + { | ||
64 | + field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | ||
65 | + label: '显示设备名称', | ||
66 | + component: 'Checkbox', | ||
67 | + defaultValue: option.showDeviceName, | ||
68 | + }, | ||
69 | + { | ||
70 | + field: ComponentConfigFieldEnum.SHOW_TIME, | ||
71 | + label: '显示时间', | ||
72 | + component: 'Checkbox', | ||
73 | + defaultValue: option.showTime, | ||
74 | + }, | ||
57 | ], | 75 | ], |
58 | showActionButtonGroup: false, | 76 | showActionButtonGroup: false, |
59 | labelWidth: 120, | 77 | labelWidth: 120, |
@@ -71,12 +89,14 @@ | @@ -71,12 +89,14 @@ | ||
71 | showDeviceName: item[ComponentConfigFieldEnum.SHOW_DEVICE_NAME], | 89 | showDeviceName: item[ComponentConfigFieldEnum.SHOW_DEVICE_NAME], |
72 | showTime: item[ComponentConfigFieldEnum.SHOW_TIME], | 90 | showTime: item[ComponentConfigFieldEnum.SHOW_TIME], |
73 | maxNumber: item[ComponentConfigFieldEnum.MAX_NUMBER], | 91 | maxNumber: item[ComponentConfigFieldEnum.MAX_NUMBER], |
92 | + fontSize: item[ComponentConfigFieldEnum.FONT_SIZE], | ||
93 | + valueSize: item[ComponentConfigFieldEnum.VALUE_SIZE], | ||
74 | } as ComponentInfo; | 94 | } as ComponentInfo; |
75 | }; | 95 | }; |
76 | 96 | ||
77 | const setFormValues = (data: Recordable) => { | 97 | const setFormValues = (data: Recordable) => { |
78 | // return setFieldsValue(data); | 98 | // return setFieldsValue(data); |
79 | - const { unit, fontColor, showDeviceName, showTime, maxNumber } = data; | 99 | + const { unit, fontColor, showDeviceName, showTime, maxNumber, fontSize, valueSize } = data; |
80 | 100 | ||
81 | const value = { | 101 | const value = { |
82 | [ComponentConfigFieldEnum.UNIT]: unit, | 102 | [ComponentConfigFieldEnum.UNIT]: unit, |
@@ -84,6 +104,8 @@ | @@ -84,6 +104,8 @@ | ||
84 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: showDeviceName, | 104 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: showDeviceName, |
85 | [ComponentConfigFieldEnum.SHOW_TIME]: showTime, | 105 | [ComponentConfigFieldEnum.SHOW_TIME]: showTime, |
86 | [ComponentConfigFieldEnum.MAX_NUMBER]: maxNumber, | 106 | [ComponentConfigFieldEnum.MAX_NUMBER]: maxNumber, |
107 | + [ComponentConfigFieldEnum.FONT_SIZE]: fontSize, | ||
108 | + [ComponentConfigFieldEnum.VALUE_SIZE]: valueSize, | ||
87 | }; | 109 | }; |
88 | return setFieldsValue(value); | 110 | return setFieldsValue(value); |
89 | }; | 111 | }; |
@@ -31,6 +31,8 @@ | @@ -31,6 +31,8 @@ | ||
31 | gradientInfo: presetGradientInfo, | 31 | gradientInfo: presetGradientInfo, |
32 | showTime: persetShowTime, | 32 | showTime: persetShowTime, |
33 | maxNumber: persetMaxNumber, | 33 | maxNumber: persetMaxNumber, |
34 | + fontSize: persetFontSize, | ||
35 | + valueSize: persetValueSize, | ||
34 | } = persetOption || {}; | 36 | } = persetOption || {}; |
35 | const { | 37 | const { |
36 | unit, | 38 | unit, |
@@ -40,6 +42,8 @@ | @@ -40,6 +42,8 @@ | ||
40 | gradientInfo, | 42 | gradientInfo, |
41 | showTime, | 43 | showTime, |
42 | maxNumber, | 44 | maxNumber, |
45 | + fontSize, | ||
46 | + valueSize, | ||
43 | } = componentInfo || {}; | 47 | } = componentInfo || {}; |
44 | return { | 48 | return { |
45 | unit: unit ?? presetUnit, | 49 | unit: unit ?? presetUnit, |
@@ -50,11 +54,13 @@ | @@ -50,11 +54,13 @@ | ||
50 | gradientInfo: gradientInfo ?? presetGradientInfo, | 54 | gradientInfo: gradientInfo ?? presetGradientInfo, |
51 | showTime: showTime ?? persetShowTime, | 55 | showTime: showTime ?? persetShowTime, |
52 | maxNumber: maxNumber || persetMaxNumber, | 56 | maxNumber: maxNumber || persetMaxNumber, |
57 | + fontSize: fontSize || persetFontSize || 14, | ||
58 | + valueSize: valueSize || persetValueSize || 14, | ||
53 | }; | 59 | }; |
54 | }); | 60 | }); |
55 | 61 | ||
56 | const options = (): EChartsOption => { | 62 | const options = (): EChartsOption => { |
57 | - const { unit, fontColor, pointerColor, maxNumber } = unref(getDesign); | 63 | + const { unit, fontColor, pointerColor, maxNumber, valueSize } = unref(getDesign); |
58 | 64 | ||
59 | // getStageColor(gradientInfo); | 65 | // getStageColor(gradientInfo); |
60 | return { | 66 | return { |
@@ -110,7 +116,7 @@ | @@ -110,7 +116,7 @@ | ||
110 | }, | 116 | }, |
111 | detail: { | 117 | detail: { |
112 | valueAnimation: true, | 118 | valueAnimation: true, |
113 | - fontSize: unref(getRatio) ? 16 * unref(getRatio) : 16, | 119 | + fontSize: unref(getRatio) ? valueSize * unref(getRatio) : valueSize, |
114 | offsetCenter: [0, '70%'], | 120 | offsetCenter: [0, '70%'], |
115 | formatter: `{value} ${unit ?? ''}`, | 121 | formatter: `{value} ${unit ?? ''}`, |
116 | color: fontColor || 'inherit', | 122 | color: fontColor || 'inherit', |
@@ -191,7 +197,7 @@ | @@ -191,7 +197,7 @@ | ||
191 | }, | 197 | }, |
192 | }, | 198 | }, |
193 | detail: { | 199 | detail: { |
194 | - fontSize: 16 * unref(getRatio), | 200 | + fontSize: unref(getDesign).valueSize * unref(getRatio), |
195 | }, | 201 | }, |
196 | }, | 202 | }, |
197 | ], | 203 | ], |
@@ -211,7 +217,7 @@ | @@ -211,7 +217,7 @@ | ||
211 | <div class="flex flex-1 flex-col justify-center items-center w-full h-full"> | 217 | <div class="flex flex-1 flex-col justify-center items-center w-full h-full"> |
212 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex flex-col justify-center items-center"> | 218 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex flex-col justify-center items-center"> |
213 | </div> | 219 | </div> |
214 | - <div class="text-gray-500 text-xs text-center truncate">{{ | 220 | + <div class="text-gray-500 text-center" :style="{ fontSize: getDesign.fontSize + 'px' }">{{ |
215 | getDesign.attribute || '速度' | 221 | getDesign.attribute || '速度' |
216 | }}</div> | 222 | }}</div> |
217 | </div> | 223 | </div> |
@@ -15,6 +15,8 @@ export const option: PublicPresetOptions = { | @@ -15,6 +15,8 @@ export const option: PublicPresetOptions = { | ||
15 | [ComponentConfigFieldEnum.SHOW_TIME]: false, | 15 | [ComponentConfigFieldEnum.SHOW_TIME]: false, |
16 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, | 16 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, |
17 | [ComponentConfigFieldEnum.UNIT]: '℃', | 17 | [ComponentConfigFieldEnum.UNIT]: '℃', |
18 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 14, | ||
19 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
18 | }; | 20 | }; |
19 | 21 | ||
20 | export default class Config extends PublicConfigClass implements CreateComponentType { | 22 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -53,6 +53,24 @@ | @@ -53,6 +53,24 @@ | ||
53 | }; | 53 | }; |
54 | }, | 54 | }, |
55 | }, | 55 | }, |
56 | + { | ||
57 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
58 | + label: '数值字体大小', | ||
59 | + component: 'InputNumber', | ||
60 | + defaultValue: 14, | ||
61 | + componentProps: { | ||
62 | + min: 0, | ||
63 | + }, | ||
64 | + }, | ||
65 | + { | ||
66 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
67 | + label: '文本字体大小', | ||
68 | + component: 'InputNumber', | ||
69 | + defaultValue: 14, | ||
70 | + componentProps: { | ||
71 | + min: 0, | ||
72 | + }, | ||
73 | + }, | ||
56 | ], | 74 | ], |
57 | showActionButtonGroup: false, | 75 | showActionButtonGroup: false, |
58 | labelWidth: 120, | 76 | labelWidth: 120, |
@@ -32,19 +32,23 @@ | @@ -32,19 +32,23 @@ | ||
32 | unit: presetUnit, | 32 | unit: presetUnit, |
33 | showTime: persetShowTime, | 33 | showTime: persetShowTime, |
34 | maxNumber: persetMaxNumber, | 34 | maxNumber: persetMaxNumber, |
35 | + valueSize: persetValueSize, | ||
36 | + fontSize: persetFontSize, | ||
35 | } = persetOption || {}; | 37 | } = persetOption || {}; |
36 | - const { unit, fontColor, showTime, maxNumber } = componentInfo || {}; | 38 | + const { unit, fontColor, showTime, maxNumber, valueSize, fontSize } = componentInfo || {}; |
37 | return { | 39 | return { |
38 | unit: unit ?? presetUnit, | 40 | unit: unit ?? presetUnit, |
39 | fontColor: fontColor ?? presetFontColor, | 41 | fontColor: fontColor ?? presetFontColor, |
40 | attribute: attributeRename || attributeName || attribute, | 42 | attribute: attributeRename || attributeName || attribute, |
41 | showTime: persetShowTime || showTime, | 43 | showTime: persetShowTime || showTime, |
42 | maxNumber: maxNumber || persetMaxNumber, | 44 | maxNumber: maxNumber || persetMaxNumber, |
45 | + valueSize: valueSize || persetValueSize || 14, | ||
46 | + fontSize: fontSize || persetFontSize || 14, | ||
43 | }; | 47 | }; |
44 | }); | 48 | }); |
45 | 49 | ||
46 | const options = (): EChartsOption => { | 50 | const options = (): EChartsOption => { |
47 | - const { unit, fontColor, maxNumber } = unref(getDesign); | 51 | + const { unit, fontColor, maxNumber, valueSize } = unref(getDesign); |
48 | return { | 52 | return { |
49 | series: [ | 53 | series: [ |
50 | { | 54 | { |
@@ -104,7 +108,7 @@ | @@ -104,7 +108,7 @@ | ||
104 | lineHeight: 10, | 108 | lineHeight: 10, |
105 | borderRadius: 8, | 109 | borderRadius: 8, |
106 | offsetCenter: [0, '40%'], | 110 | offsetCenter: [0, '40%'], |
107 | - fontSize: unref(getRatio) ? 14 * unref(getRatio) : 14, | 111 | + fontSize: unref(getRatio) ? valueSize * unref(getRatio) : valueSize, |
108 | fontWeight: 'bolder', | 112 | fontWeight: 'bolder', |
109 | formatter: `{value} ${unit ?? ''}`, | 113 | formatter: `{value} ${unit ?? ''}`, |
110 | color: fontColor || 'inherit', | 114 | color: fontColor || 'inherit', |
@@ -200,7 +204,7 @@ | @@ -200,7 +204,7 @@ | ||
200 | series: [ | 204 | series: [ |
201 | { | 205 | { |
202 | detail: { | 206 | detail: { |
203 | - fontSize: 14 * unref(getRatio), | 207 | + fontSize: unref(getDesign).valueSize * unref(getRatio), |
204 | }, | 208 | }, |
205 | progress: { | 209 | progress: { |
206 | width: 24 * unref(getRatio), | 210 | width: 24 * unref(getRatio), |
@@ -238,9 +242,11 @@ | @@ -238,9 +242,11 @@ | ||
238 | <div class="w-full h-full flex justify-center items-center flex-1 flex-col"> | 242 | <div class="w-full h-full flex justify-center items-center flex-1 flex-col"> |
239 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex justify-center items-center flex-col"> | 243 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex justify-center items-center flex-col"> |
240 | </div> | 244 | </div> |
241 | - <div class="text-gray-500 text-xs text-center truncate">{{ | ||
242 | - getDesign.attribute || '温度' | ||
243 | - }}</div> | 245 | + <div |
246 | + class="text-gray-500 text-center truncate" | ||
247 | + :style="{ fontSize: getDesign.fontSize + 'px' }" | ||
248 | + >{{ getDesign.attribute || '温度' }}</div | ||
249 | + > | ||
244 | </div> | 250 | </div> |
245 | <UpdateTime v-show="getDesign.showTime" :time="time" /> | 251 | <UpdateTime v-show="getDesign.showTime" :time="time" /> |
246 | </main> | 252 | </main> |
@@ -31,6 +31,8 @@ export const option: PublicPresetOptions = { | @@ -31,6 +31,8 @@ export const option: PublicPresetOptions = { | ||
31 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 31 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
32 | [ComponentConfigFieldEnum.SHOW_TIME]: false, | 32 | [ComponentConfigFieldEnum.SHOW_TIME]: false, |
33 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, | 33 | [ComponentConfigFieldEnum.MAX_NUMBER]: 100, |
34 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
35 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 14, | ||
34 | }; | 36 | }; |
35 | 37 | ||
36 | export default class Config extends PublicConfigClass implements CreateComponentType { | 38 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -77,16 +77,22 @@ | @@ -77,16 +77,22 @@ | ||
77 | }, | 77 | }, |
78 | }, | 78 | }, |
79 | { | 79 | { |
80 | - field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | ||
81 | - label: '显示设备名称', | ||
82 | - component: 'Checkbox', | ||
83 | - defaultValue: option.showDeviceName, | 80 | + field: ComponentConfigFieldEnum.VALUE_SIZE, |
81 | + label: '数值字体大小', | ||
82 | + component: 'InputNumber', | ||
83 | + defaultValue: 14, | ||
84 | + componentProps: { | ||
85 | + min: 0, | ||
86 | + }, | ||
84 | }, | 87 | }, |
85 | { | 88 | { |
86 | - field: ComponentConfigFieldEnum.SHOW_TIME, | ||
87 | - label: '显示时间', | ||
88 | - component: 'Checkbox', | ||
89 | - defaultValue: option.showTime, | 89 | + field: ComponentConfigFieldEnum.FONT_SIZE, |
90 | + label: '文本字体大小', | ||
91 | + component: 'InputNumber', | ||
92 | + defaultValue: 14, | ||
93 | + componentProps: { | ||
94 | + min: 0, | ||
95 | + }, | ||
90 | }, | 96 | }, |
91 | { | 97 | { |
92 | field: ComponentConfigFieldEnum.MAX_NUMBER, | 98 | field: ComponentConfigFieldEnum.MAX_NUMBER, |
@@ -109,6 +115,18 @@ | @@ -109,6 +115,18 @@ | ||
109 | }; | 115 | }; |
110 | }, | 116 | }, |
111 | }, | 117 | }, |
118 | + { | ||
119 | + field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | ||
120 | + label: '显示设备名称', | ||
121 | + component: 'Checkbox', | ||
122 | + defaultValue: option.showDeviceName, | ||
123 | + }, | ||
124 | + { | ||
125 | + field: ComponentConfigFieldEnum.SHOW_TIME, | ||
126 | + label: '显示时间', | ||
127 | + component: 'Checkbox', | ||
128 | + defaultValue: option.showTime, | ||
129 | + }, | ||
112 | ], | 130 | ], |
113 | showActionButtonGroup: false, | 131 | showActionButtonGroup: false, |
114 | labelWidth: 120, | 132 | labelWidth: 120, |
@@ -142,11 +160,22 @@ | @@ -142,11 +160,22 @@ | ||
142 | showDeviceName: value[ComponentConfigFieldEnum.SHOW_DEVICE_NAME], | 160 | showDeviceName: value[ComponentConfigFieldEnum.SHOW_DEVICE_NAME], |
143 | showTime: value[ComponentConfigFieldEnum.SHOW_TIME], | 161 | showTime: value[ComponentConfigFieldEnum.SHOW_TIME], |
144 | maxNumber: value[ComponentConfigFieldEnum.MAX_NUMBER], | 162 | maxNumber: value[ComponentConfigFieldEnum.MAX_NUMBER], |
163 | + valueSize: value[ComponentConfigFieldEnum.VALUE_SIZE], | ||
164 | + fontSize: value[ComponentConfigFieldEnum.FONT_SIZE], | ||
145 | } as ComponentInfo; | 165 | } as ComponentInfo; |
146 | }; | 166 | }; |
147 | 167 | ||
148 | const setFormValues = (data: ComponentInfo) => { | 168 | const setFormValues = (data: ComponentInfo) => { |
149 | - const { gradientInfo, unit, fontColor, showDeviceName, showTime, maxNumber } = data; | 169 | + const { |
170 | + gradientInfo, | ||
171 | + unit, | ||
172 | + fontColor, | ||
173 | + showDeviceName, | ||
174 | + showTime, | ||
175 | + maxNumber, | ||
176 | + valueSize, | ||
177 | + fontSize, | ||
178 | + } = data; | ||
150 | const firstRecord = gradientInfo.find((item) => item.key === Gradient.FIRST); | 179 | const firstRecord = gradientInfo.find((item) => item.key === Gradient.FIRST); |
151 | const secondRecord = gradientInfo.find((item) => item.key === Gradient.SECOND); | 180 | const secondRecord = gradientInfo.find((item) => item.key === Gradient.SECOND); |
152 | const thirdRecord = gradientInfo.find((item) => item.key === Gradient.THIRD); | 181 | const thirdRecord = gradientInfo.find((item) => item.key === Gradient.THIRD); |
@@ -156,6 +185,8 @@ | @@ -156,6 +185,8 @@ | ||
156 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: showDeviceName, | 185 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: showDeviceName, |
157 | [ComponentConfigFieldEnum.SHOW_TIME]: showTime, | 186 | [ComponentConfigFieldEnum.SHOW_TIME]: showTime, |
158 | [ComponentConfigFieldEnum.MAX_NUMBER]: maxNumber, | 187 | [ComponentConfigFieldEnum.MAX_NUMBER]: maxNumber, |
188 | + [ComponentConfigFieldEnum.VALUE_SIZE]: valueSize, | ||
189 | + [ComponentConfigFieldEnum.FONT_SIZE]: fontSize, | ||
159 | [ComponentConfigFieldEnum.FIRST_PHASE_VALUE]: firstRecord?.value, | 190 | [ComponentConfigFieldEnum.FIRST_PHASE_VALUE]: firstRecord?.value, |
160 | [ComponentConfigFieldEnum.FIRST_PHASE_COLOR]: firstRecord?.color, | 191 | [ComponentConfigFieldEnum.FIRST_PHASE_COLOR]: firstRecord?.color, |
161 | [ComponentConfigFieldEnum.SECOND_PHASE_VALUE]: secondRecord?.value, | 192 | [ComponentConfigFieldEnum.SECOND_PHASE_VALUE]: secondRecord?.value, |
@@ -38,9 +38,12 @@ | @@ -38,9 +38,12 @@ | ||
38 | gradientInfo: presetGradientInfo, | 38 | gradientInfo: presetGradientInfo, |
39 | showTime: persetShowTime, | 39 | showTime: persetShowTime, |
40 | maxNumber: persetMaxNumber, | 40 | maxNumber: persetMaxNumber, |
41 | + fontSize: persetFontSize, | ||
42 | + valueSize: persetValueSize, | ||
41 | } = persetOption || {}; | 43 | } = persetOption || {}; |
42 | 44 | ||
43 | - const { unit, fontColor, gradientInfo, showTime, maxNumber } = componentInfo || {}; | 45 | + const { unit, fontColor, gradientInfo, showTime, maxNumber, fontSize, valueSize } = |
46 | + componentInfo || {}; | ||
44 | return { | 47 | return { |
45 | unit: unit ?? presetUnit, | 48 | unit: unit ?? presetUnit, |
46 | fontColor: fontColor ?? presetFontColor, | 49 | fontColor: fontColor ?? presetFontColor, |
@@ -48,6 +51,8 @@ | @@ -48,6 +51,8 @@ | ||
48 | attribute: attributeRename || attributeName || attribute, | 51 | attribute: attributeRename || attributeName || attribute, |
49 | showTime: showTime || persetShowTime, | 52 | showTime: showTime || persetShowTime, |
50 | maxNumber: maxNumber || persetMaxNumber, | 53 | maxNumber: maxNumber || persetMaxNumber, |
54 | + fontSize: fontSize || persetFontSize || 14, | ||
55 | + valueSize: valueSize || persetValueSize || 14, | ||
51 | }; | 56 | }; |
52 | }); | 57 | }); |
53 | 58 | ||
@@ -57,7 +62,7 @@ | @@ -57,7 +62,7 @@ | ||
57 | }; | 62 | }; |
58 | 63 | ||
59 | const options = (): EChartsOption => { | 64 | const options = (): EChartsOption => { |
60 | - const { gradientInfo, unit, fontColor, maxNumber } = unref(getDesign); | 65 | + const { gradientInfo, unit, fontColor, maxNumber, valueSize } = unref(getDesign); |
61 | const firstRecord = getGradient(Gradient.FIRST, gradientInfo); | 66 | const firstRecord = getGradient(Gradient.FIRST, gradientInfo); |
62 | const secondRecord = getGradient(Gradient.SECOND, gradientInfo); | 67 | const secondRecord = getGradient(Gradient.SECOND, gradientInfo); |
63 | const thirdRecord = getGradient(Gradient.THIRD, gradientInfo); | 68 | const thirdRecord = getGradient(Gradient.THIRD, gradientInfo); |
@@ -122,7 +127,7 @@ | @@ -122,7 +127,7 @@ | ||
122 | formatter: `{value} ${unit ?? ''}`, | 127 | formatter: `{value} ${unit ?? ''}`, |
123 | color: fontColor || 'inherit', | 128 | color: fontColor || 'inherit', |
124 | offsetCenter: [0, '70%'], | 129 | offsetCenter: [0, '70%'], |
125 | - fontSize: unref(getRatio) ? unref(getRatio) * 14 : 14, | 130 | + fontSize: unref(getRatio) ? unref(getRatio) * valueSize : valueSize, |
126 | }, | 131 | }, |
127 | data: [ | 132 | data: [ |
128 | { | 133 | { |
@@ -194,7 +199,7 @@ | @@ -194,7 +199,7 @@ | ||
194 | fontSize: 6 * unref(getRatio), | 199 | fontSize: 6 * unref(getRatio), |
195 | }, | 200 | }, |
196 | detail: { | 201 | detail: { |
197 | - fontSize: 14 * unref(getRatio), | 202 | + fontSize: unref(getDesign).valueSize * unref(getRatio), |
198 | }, | 203 | }, |
199 | }, | 204 | }, |
200 | ], | 205 | ], |
@@ -218,7 +223,10 @@ | @@ -218,7 +223,10 @@ | ||
218 | <div class="w-full h-full flex justify-center items-center flex-col flex-1"> | 223 | <div class="w-full h-full flex justify-center items-center flex-col flex-1"> |
219 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex flex-col justify-center items-center"> | 224 | <div ref="chartRefEl" class="flex-1 w-full h-6/7 flex flex-col justify-center items-center"> |
220 | </div> | 225 | </div> |
221 | - <div class="text-center text-gray-500 text-xs truncate"> | 226 | + <div |
227 | + class="text-center text-gray-500 truncate" | ||
228 | + :style="{ fontSize: getDesign.fontSize + 'px' }" | ||
229 | + > | ||
222 | {{ getDesign.attribute || '速度' }} | 230 | {{ getDesign.attribute || '速度' }} |
223 | </div> | 231 | </div> |
224 | </div> | 232 | </div> |
@@ -14,6 +14,7 @@ export const option: PublicPresetOptions = { | @@ -14,6 +14,7 @@ export const option: PublicPresetOptions = { | ||
14 | [ComponentConfigFieldEnum.CLOSE_COLOR]: '#eeeeee', | 14 | [ComponentConfigFieldEnum.CLOSE_COLOR]: '#eeeeee', |
15 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: true, | 15 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: true, |
16 | [ComponentConfigFieldEnum.SHOW_TIME]: false, | 16 | [ComponentConfigFieldEnum.SHOW_TIME]: false, |
17 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
17 | }; | 18 | }; |
18 | 19 | ||
19 | export default class Config extends PublicConfigClass implements CreateComponentType { | 20 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -25,6 +25,15 @@ | @@ -25,6 +25,15 @@ | ||
25 | }, | 25 | }, |
26 | }, | 26 | }, |
27 | { | 27 | { |
28 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
29 | + label: '文字字体的大小', | ||
30 | + component: 'InputNumber', | ||
31 | + defaultValue: 14, | ||
32 | + componentProps: { | ||
33 | + min: 0, | ||
34 | + }, | ||
35 | + }, | ||
36 | + { | ||
28 | field: ComponentConfigFieldEnum.SHOW_TIME, | 37 | field: ComponentConfigFieldEnum.SHOW_TIME, |
29 | label: '显示时间', | 38 | label: '显示时间', |
30 | component: 'Checkbox', | 39 | component: 'Checkbox', |
@@ -25,16 +25,18 @@ | @@ -25,16 +25,18 @@ | ||
25 | closeColor: persetCloseColor, | 25 | closeColor: persetCloseColor, |
26 | showDeviceName: persetShowDeviceName, | 26 | showDeviceName: persetShowDeviceName, |
27 | showTime: persetShowTime, | 27 | showTime: persetShowTime, |
28 | + fontSize: persetFontSize, | ||
28 | } = persetOption || {}; | 29 | } = persetOption || {}; |
29 | const { componentInfo, attribute, attributeName, attributeRename } = option; | 30 | const { componentInfo, attribute, attributeName, attributeRename } = option; |
30 | 31 | ||
31 | - const { openColor, closeColor, showDeviceName, showTime } = componentInfo || {}; | 32 | + const { openColor, closeColor, showDeviceName, showTime, fontSize } = componentInfo || {}; |
32 | return { | 33 | return { |
33 | openColor: openColor ?? persetOpenColor, | 34 | openColor: openColor ?? persetOpenColor, |
34 | closeColor: closeColor ?? persetCloseColor, | 35 | closeColor: closeColor ?? persetCloseColor, |
35 | showDeviceName: showDeviceName ?? persetShowDeviceName, | 36 | showDeviceName: showDeviceName ?? persetShowDeviceName, |
36 | attribute: attributeRename || attributeName || attribute, | 37 | attribute: attributeRename || attributeName || attribute, |
37 | showTime: showTime ?? persetShowTime, | 38 | showTime: showTime ?? persetShowTime, |
39 | + fontSize: fontSize || persetFontSize || 14, | ||
38 | }; | 40 | }; |
39 | }); | 41 | }); |
40 | 42 | ||
@@ -78,7 +80,9 @@ | @@ -78,7 +80,9 @@ | ||
78 | }" | 80 | }" |
79 | :class="isOpenClose ? 'switch_open' : 'switch_close'" | 81 | :class="isOpenClose ? 'switch_open' : 'switch_close'" |
80 | ></div> | 82 | ></div> |
81 | - <div class="text-gray-500 text-sm truncate">{{ getDesign.attribute }}</div> | 83 | + <div class="text-gray-500 truncate" :style="{ fontSize: getDesign.fontSize + 'px' }">{{ |
84 | + getDesign.attribute | ||
85 | + }}</div> | ||
82 | </div> | 86 | </div> |
83 | <UpdateTime v-if="getDesign.showTime" :time="time" /> | 87 | <UpdateTime v-if="getDesign.showTime" :time="time" /> |
84 | </main> | 88 | </main> |
@@ -16,6 +16,7 @@ export const option: PublicPresetOptions = { | @@ -16,6 +16,7 @@ export const option: PublicPresetOptions = { | ||
16 | [ComponentConfigFieldEnum.ICON_COLOR_CLOSE]: '#CCCCCC', | 16 | [ComponentConfigFieldEnum.ICON_COLOR_CLOSE]: '#CCCCCC', |
17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
18 | [ComponentConfigFieldEnum.SHOW_TIME]: false, | 18 | [ComponentConfigFieldEnum.SHOW_TIME]: false, |
19 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
19 | }; | 20 | }; |
20 | 21 | ||
21 | export default class Config extends PublicConfigClass implements CreateComponentType { | 22 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -47,6 +47,15 @@ | @@ -47,6 +47,15 @@ | ||
47 | defaultValue: option.iconColorClose, | 47 | defaultValue: option.iconColorClose, |
48 | }, | 48 | }, |
49 | { | 49 | { |
50 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
51 | + label: '文本字体大小', | ||
52 | + component: 'InputNumber', | ||
53 | + defaultValue: 14, | ||
54 | + componentProps: { | ||
55 | + min: 0, | ||
56 | + }, | ||
57 | + }, | ||
58 | + { | ||
50 | field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | 59 | field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, |
51 | label: '显示设备名称', | 60 | label: '显示设备名称', |
52 | component: 'Checkbox', | 61 | component: 'Checkbox', |
@@ -26,11 +26,12 @@ | @@ -26,11 +26,12 @@ | ||
26 | iconClose: persetIconCLose, | 26 | iconClose: persetIconCLose, |
27 | iconColorClose: persetIconColorClose, | 27 | iconColorClose: persetIconColorClose, |
28 | showTime: persetShowTime, | 28 | showTime: persetShowTime, |
29 | + fontSize: persetFontSize, | ||
29 | } = persetOption; | 30 | } = persetOption; |
30 | 31 | ||
31 | const { componentInfo, attributeName, attributeRename } = option; | 32 | const { componentInfo, attributeName, attributeRename } = option; |
32 | 33 | ||
33 | - const { icon, iconColor, fontColor, unit, iconClose, iconColorClose, showTime } = | 34 | + const { icon, iconColor, fontColor, unit, iconClose, iconColorClose, showTime, fontSize } = |
34 | componentInfo || {}; | 35 | componentInfo || {}; |
35 | return { | 36 | return { |
36 | iconColor: iconColor || persetIconColor, | 37 | iconColor: iconColor || persetIconColor, |
@@ -41,6 +42,7 @@ | @@ -41,6 +42,7 @@ | ||
41 | iconClose: iconClose || persetIconCLose, | 42 | iconClose: iconClose || persetIconCLose, |
42 | iconColorClose: iconColorClose || persetIconColorClose, | 43 | iconColorClose: iconColorClose || persetIconColorClose, |
43 | showTime: showTime ?? persetShowTime, | 44 | showTime: showTime ?? persetShowTime, |
45 | + fontSize: fontSize || persetFontSize || 14, | ||
44 | }; | 46 | }; |
45 | }); | 47 | }); |
46 | 48 | ||
@@ -68,7 +70,9 @@ | @@ -68,7 +70,9 @@ | ||
68 | :size="60" | 70 | :size="60" |
69 | :style="{ color: isOpenClose ? getDesign.iconColor : getDesign.iconColorClose }" | 71 | :style="{ color: isOpenClose ? getDesign.iconColor : getDesign.iconColorClose }" |
70 | /> | 72 | /> |
71 | - <div class="text-gray-500 text-sm truncate m-2">{{ getDesign.attribute || '' }}</div> | 73 | + <div class="text-gray-500 truncate m-2" :style="{ fontSize: getDesign.fontSize + 'px' }">{{ |
74 | + getDesign.attribute || '' | ||
75 | + }}</div> | ||
72 | </div> | 76 | </div> |
73 | <UpdateTime v-show="getDesign.showTime" :time="time" /> | 77 | <UpdateTime v-show="getDesign.showTime" :time="time" /> |
74 | </main> | 78 | </main> |
@@ -12,6 +12,8 @@ import { ComponentConfigFieldEnum } from '/@/views/visual/packages/enum'; | @@ -12,6 +12,8 @@ import { ComponentConfigFieldEnum } from '/@/views/visual/packages/enum'; | ||
12 | export const option: PublicPresetOptions = { | 12 | export const option: PublicPresetOptions = { |
13 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', | 13 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', |
14 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 14 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
15 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
16 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 20, | ||
15 | }; | 17 | }; |
16 | 18 | ||
17 | export default class Config extends PublicConfigClass implements CreateComponentType { | 19 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -19,6 +19,24 @@ | @@ -19,6 +19,24 @@ | ||
19 | label: '显示设备名称', | 19 | label: '显示设备名称', |
20 | component: 'Checkbox', | 20 | component: 'Checkbox', |
21 | }, | 21 | }, |
22 | + { | ||
23 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
24 | + label: '数值字体大小', | ||
25 | + component: 'InputNumber', | ||
26 | + defaultValue: 20, | ||
27 | + componentProps: { | ||
28 | + min: 0, | ||
29 | + }, | ||
30 | + }, | ||
31 | + { | ||
32 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
33 | + label: '文本字体大小', | ||
34 | + component: 'InputNumber', | ||
35 | + defaultValue: 14, | ||
36 | + componentProps: { | ||
37 | + min: 0, | ||
38 | + }, | ||
39 | + }, | ||
22 | ], | 40 | ], |
23 | showActionButtonGroup: false, | 41 | showActionButtonGroup: false, |
24 | labelWidth: 120, | 42 | labelWidth: 120, |
@@ -17,13 +17,19 @@ | @@ -17,13 +17,19 @@ | ||
17 | const getDesign = computed(() => { | 17 | const getDesign = computed(() => { |
18 | const { persetOption = {}, option } = props.config; | 18 | const { persetOption = {}, option } = props.config; |
19 | 19 | ||
20 | - const { fontColor: persetFontColor } = persetOption; | 20 | + const { |
21 | + fontColor: persetFontColor, | ||
22 | + fontSize: persetFontSize, | ||
23 | + valueSize: persetValueSize, | ||
24 | + } = persetOption; | ||
21 | 25 | ||
22 | const { componentInfo, attribute, attributeRename, attributeName } = option; | 26 | const { componentInfo, attribute, attributeRename, attributeName } = option; |
23 | 27 | ||
24 | - const { fontColor } = componentInfo || {}; | 28 | + const { fontColor, fontSize, valueSize } = componentInfo || {}; |
25 | return { | 29 | return { |
26 | fontColor: fontColor || persetFontColor, | 30 | fontColor: fontColor || persetFontColor, |
31 | + fontSize: fontSize || persetFontSize || 14, | ||
32 | + valueSize: valueSize || persetValueSize || 20, | ||
27 | attribute: attributeRename || attributeName || attribute, | 33 | attribute: attributeRename || attributeName || attribute, |
28 | }; | 34 | }; |
29 | }); | 35 | }); |
@@ -45,10 +51,15 @@ | @@ -45,10 +51,15 @@ | ||
45 | <main :style="getScale" class="w-full h-full flex flex-col justify-center items-center"> | 51 | <main :style="getScale" class="w-full h-full flex flex-col justify-center items-center"> |
46 | <DeviceName :config="config" /> | 52 | <DeviceName :config="config" /> |
47 | 53 | ||
48 | - <h1 class="my-4 font-bold text-xl !my-2 truncate" :style="{ color: getDesign.fontColor }"> | 54 | + <h1 |
55 | + class="my-4 font-bold !my-2 truncate" | ||
56 | + :style="{ color: getDesign.fontColor, fontSize: getDesign.valueSize + 'px' }" | ||
57 | + > | ||
49 | {{ currentValue || 0 }} | 58 | {{ currentValue || 0 }} |
50 | </h1> | 59 | </h1> |
51 | - <div class="text-gray-500 text-sm truncate">{{ getDesign.attribute || '温度' }}</div> | 60 | + <div class="text-gray-500 truncate" :style="{ fontSize: getDesign.fontSize + 'px' }">{{ |
61 | + getDesign.attribute || '温度' | ||
62 | + }}</div> | ||
52 | <!-- <div v-if="config.option.componentInfo.showDeviceName"> | 63 | <!-- <div v-if="config.option.componentInfo.showDeviceName"> |
53 | {{ config.option.deviceRename || config.option.deviceName }} | 64 | {{ config.option.deviceRename || config.option.deviceName }} |
54 | </div> --> | 65 | </div> --> |
@@ -12,6 +12,8 @@ import { ComponentConfigFieldEnum } from '/@/views/visual/packages/enum'; | @@ -12,6 +12,8 @@ import { ComponentConfigFieldEnum } from '/@/views/visual/packages/enum'; | ||
12 | export const option: PublicPresetOptions = { | 12 | export const option: PublicPresetOptions = { |
13 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', | 13 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', |
14 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 14 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
15 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 20, | ||
16 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
15 | }; | 17 | }; |
16 | 18 | ||
17 | export default class Config extends PublicConfigClass implements CreateComponentType { | 19 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -19,6 +19,24 @@ | @@ -19,6 +19,24 @@ | ||
19 | label: '显示设备名称', | 19 | label: '显示设备名称', |
20 | component: 'Checkbox', | 20 | component: 'Checkbox', |
21 | }, | 21 | }, |
22 | + { | ||
23 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
24 | + label: '数值字体大小', | ||
25 | + component: 'InputNumber', | ||
26 | + defaultValue: 20, | ||
27 | + componentProps: { | ||
28 | + min: 0, | ||
29 | + }, | ||
30 | + }, | ||
31 | + { | ||
32 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
33 | + label: '文本字体大小', | ||
34 | + component: 'InputNumber', | ||
35 | + defaultValue: 14, | ||
36 | + componentProps: { | ||
37 | + min: 0, | ||
38 | + }, | ||
39 | + }, | ||
22 | ], | 40 | ], |
23 | showActionButtonGroup: false, | 41 | showActionButtonGroup: false, |
24 | labelWidth: 120, | 42 | labelWidth: 120, |
@@ -19,14 +19,20 @@ | @@ -19,14 +19,20 @@ | ||
19 | const getDesign = computed(() => { | 19 | const getDesign = computed(() => { |
20 | const { persetOption = {}, option } = props.config; | 20 | const { persetOption = {}, option } = props.config; |
21 | 21 | ||
22 | - const { fontColor: persetFontColor } = persetOption; | 22 | + const { |
23 | + fontColor: persetFontColor, | ||
24 | + valueSize: persetValueSize, | ||
25 | + fontSize: persetFontSize, | ||
26 | + } = persetOption; | ||
23 | 27 | ||
24 | const { componentInfo, attribute, attributeName, attributeRename } = option; | 28 | const { componentInfo, attribute, attributeName, attributeRename } = option; |
25 | 29 | ||
26 | - const { fontColor } = componentInfo || {}; | 30 | + const { fontColor, valueSize, fontSize } = componentInfo || {}; |
27 | 31 | ||
28 | return { | 32 | return { |
29 | fontColor: fontColor || persetFontColor, | 33 | fontColor: fontColor || persetFontColor, |
34 | + valueSize: valueSize || persetValueSize || 20, | ||
35 | + fontSize: fontSize || persetFontSize || 14, | ||
30 | attribute: attributeRename || attributeName || attribute, | 36 | attribute: attributeRename || attributeName || attribute, |
31 | }; | 37 | }; |
32 | }); | 38 | }); |
@@ -50,10 +56,15 @@ | @@ -50,10 +56,15 @@ | ||
50 | <DeviceName :config="config" /> | 56 | <DeviceName :config="config" /> |
51 | 57 | ||
52 | <div class="flex-1 flex justify-center items-center flex-col" :style="getScale"> | 58 | <div class="flex-1 flex justify-center items-center flex-col" :style="getScale"> |
53 | - <h1 class="my-4 font-bold text-xl !my-2 truncate" :style="{ color: getDesign.fontColor }"> | 59 | + <h1 |
60 | + class="my-4 font-bold !my-2 truncate" | ||
61 | + :style="{ color: getDesign.fontColor, fontSize: getDesign.valueSize + 'px' }" | ||
62 | + > | ||
54 | {{ currentValue || 0 }} | 63 | {{ currentValue || 0 }} |
55 | </h1> | 64 | </h1> |
56 | - <div class="text-gray-500 text-sm truncate">{{ getDesign.attribute || '温度' }}</div> | 65 | + <div class="text-gray-500 truncate" :style="{ fontSize: getDesign.fontSize + 'px' }">{{ |
66 | + getDesign.attribute || '温度' | ||
67 | + }}</div> | ||
57 | </div> | 68 | </div> |
58 | <UpdateTime :time="time" /> | 69 | <UpdateTime :time="time" /> |
59 | </main> | 70 | </main> |
@@ -15,6 +15,8 @@ export const option: PublicPresetOptions = { | @@ -15,6 +15,8 @@ export const option: PublicPresetOptions = { | ||
15 | [ComponentConfigFieldEnum.ICON_COLOR]: '#367bff', | 15 | [ComponentConfigFieldEnum.ICON_COLOR]: '#367bff', |
16 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', | 16 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', |
17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
18 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 20, | ||
19 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
18 | }; | 20 | }; |
19 | 21 | ||
20 | export default class Config extends PublicConfigClass implements CreateComponentType { | 22 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -23,6 +23,25 @@ | @@ -23,6 +23,25 @@ | ||
23 | placeholder: '请输入数值单位', | 23 | placeholder: '请输入数值单位', |
24 | }, | 24 | }, |
25 | }, | 25 | }, |
26 | + | ||
27 | + { | ||
28 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
29 | + label: '数值字体大小', | ||
30 | + component: 'InputNumber', | ||
31 | + defaultValue: 20, | ||
32 | + componentProps: { | ||
33 | + min: 0, | ||
34 | + }, | ||
35 | + }, | ||
36 | + { | ||
37 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
38 | + label: '文本字体大小', | ||
39 | + component: 'InputNumber', | ||
40 | + defaultValue: 14, | ||
41 | + componentProps: { | ||
42 | + min: 0, | ||
43 | + }, | ||
44 | + }, | ||
26 | { | 45 | { |
27 | field: ComponentConfigFieldEnum.ICON_COLOR, | 46 | field: ComponentConfigFieldEnum.ICON_COLOR, |
28 | label: '图标颜色', | 47 | label: '图标颜色', |
@@ -26,17 +26,21 @@ | @@ -26,17 +26,21 @@ | ||
26 | unit: perseUnit, | 26 | unit: perseUnit, |
27 | icon: persetIcon, | 27 | icon: persetIcon, |
28 | fontColor: persetFontColor, | 28 | fontColor: persetFontColor, |
29 | + valueSize: persetValueSize, | ||
30 | + fontSize: persetFontSize, | ||
29 | } = persetOption; | 31 | } = persetOption; |
30 | 32 | ||
31 | const { componentInfo, attribute, attributeRename, attributeName } = option; | 33 | const { componentInfo, attribute, attributeRename, attributeName } = option; |
32 | 34 | ||
33 | - const { icon, iconColor, fontColor, unit } = componentInfo || {}; | 35 | + const { icon, iconColor, fontColor, unit, valueSize, fontSize } = componentInfo || {}; |
34 | return { | 36 | return { |
35 | iconColor: iconColor || persetIconColor, | 37 | iconColor: iconColor || persetIconColor, |
36 | unit: unit ?? perseUnit, | 38 | unit: unit ?? perseUnit, |
37 | icon: icon || persetIcon, | 39 | icon: icon || persetIcon, |
38 | fontColor: fontColor || persetFontColor, | 40 | fontColor: fontColor || persetFontColor, |
39 | attribute: attributeRename || attributeName || attribute, | 41 | attribute: attributeRename || attributeName || attribute, |
42 | + valueSize: valueSize || persetValueSize || 20, | ||
43 | + fontSize: fontSize || persetFontSize || 14, | ||
40 | }; | 44 | }; |
41 | }); | 45 | }); |
42 | 46 | ||
@@ -64,11 +68,16 @@ | @@ -64,11 +68,16 @@ | ||
64 | :size="60" | 68 | :size="60" |
65 | :style="{ color: getDesign.iconColor }" | 69 | :style="{ color: getDesign.iconColor }" |
66 | /> | 70 | /> |
67 | - <h1 class="font-bold text-xl m-2 truncate" :style="{ color: getDesign.fontColor }"> | 71 | + <h1 |
72 | + class="font-bold m-2 truncate" | ||
73 | + :style="{ color: getDesign.fontColor, fontSize: getDesign.valueSize + 'px' }" | ||
74 | + > | ||
68 | <span> {{ currentValue || 0 }}</span> | 75 | <span> {{ currentValue || 0 }}</span> |
69 | <span>{{ getDesign.unit }} </span> | 76 | <span>{{ getDesign.unit }} </span> |
70 | </h1> | 77 | </h1> |
71 | - <div class="text-gray-500 text-sm truncate">{{ getDesign.attribute || '温度' }}</div> | 78 | + <div class="text-gray-500 truncate" :style="{ fontSize: getDesign.fontSize + 'px' }">{{ |
79 | + getDesign.attribute || '温度' | ||
80 | + }}</div> | ||
72 | </div> | 81 | </div> |
73 | <UpdateTime :time="time" /> | 82 | <UpdateTime :time="time" /> |
74 | </main> | 83 | </main> |
@@ -15,6 +15,8 @@ export const option: PublicPresetOptions = { | @@ -15,6 +15,8 @@ export const option: PublicPresetOptions = { | ||
15 | [ComponentConfigFieldEnum.ICON_COLOR]: '#367bff', | 15 | [ComponentConfigFieldEnum.ICON_COLOR]: '#367bff', |
16 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', | 16 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', |
17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
18 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 20, | ||
19 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
18 | }; | 20 | }; |
19 | 21 | ||
20 | export default class Config extends PublicConfigClass implements CreateComponentType { | 22 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -24,6 +24,24 @@ | @@ -24,6 +24,24 @@ | ||
24 | }, | 24 | }, |
25 | }, | 25 | }, |
26 | { | 26 | { |
27 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
28 | + label: '数值字体大小', | ||
29 | + component: 'InputNumber', | ||
30 | + defaultValue: 20, | ||
31 | + componentProps: { | ||
32 | + min: 0, | ||
33 | + }, | ||
34 | + }, | ||
35 | + { | ||
36 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
37 | + label: '文本字体大小', | ||
38 | + component: 'InputNumber', | ||
39 | + defaultValue: 14, | ||
40 | + componentProps: { | ||
41 | + min: 0, | ||
42 | + }, | ||
43 | + }, | ||
44 | + { | ||
27 | field: ComponentConfigFieldEnum.ICON_COLOR, | 45 | field: ComponentConfigFieldEnum.ICON_COLOR, |
28 | label: '图标颜色', | 46 | label: '图标颜色', |
29 | component: 'ColorPicker', | 47 | component: 'ColorPicker', |
@@ -23,17 +23,21 @@ | @@ -23,17 +23,21 @@ | ||
23 | unit: perseUnit, | 23 | unit: perseUnit, |
24 | icon: persetIcon, | 24 | icon: persetIcon, |
25 | fontColor: persetFontColor, | 25 | fontColor: persetFontColor, |
26 | + valueSize: persetValueSize, | ||
27 | + fontSize: persetFontSize, | ||
26 | } = persetOption; | 28 | } = persetOption; |
27 | 29 | ||
28 | const { componentInfo, attribute, attributeRename, attributeName } = option; | 30 | const { componentInfo, attribute, attributeRename, attributeName } = option; |
29 | 31 | ||
30 | - const { icon, iconColor, fontColor, unit } = componentInfo || {}; | 32 | + const { icon, iconColor, fontColor, unit, valueSize, fontSize } = componentInfo || {}; |
31 | return { | 33 | return { |
32 | iconColor: iconColor || persetIconColor, | 34 | iconColor: iconColor || persetIconColor, |
33 | unit: unit ?? perseUnit, | 35 | unit: unit ?? perseUnit, |
34 | icon: icon || persetIcon, | 36 | icon: icon || persetIcon, |
35 | fontColor: fontColor || persetFontColor, | 37 | fontColor: fontColor || persetFontColor, |
36 | attribute: attributeRename || attributeName || attribute, | 38 | attribute: attributeRename || attributeName || attribute, |
39 | + valueSize: valueSize || persetValueSize || 20, | ||
40 | + fontSize: fontSize || persetFontSize || 14, | ||
37 | }; | 41 | }; |
38 | }); | 42 | }); |
39 | 43 | ||
@@ -60,11 +64,16 @@ | @@ -60,11 +64,16 @@ | ||
60 | :size="60" | 64 | :size="60" |
61 | :style="{ color: getDesign.iconColor }" | 65 | :style="{ color: getDesign.iconColor }" |
62 | /> | 66 | /> |
63 | - <h1 class="my-4 font-bold text-lg !my-2 truncate" :style="{ color: getDesign.fontColor }"> | 67 | + <h1 |
68 | + class="my-4 font-bold !my-2 truncate" | ||
69 | + :style="{ color: getDesign.fontColor, fontSize: getDesign.valueSize + 'px' }" | ||
70 | + > | ||
64 | <span>{{ currentValue || 0 }}</span> | 71 | <span>{{ currentValue || 0 }}</span> |
65 | <span>{{ getDesign.unit }}</span> | 72 | <span>{{ getDesign.unit }}</span> |
66 | </h1> | 73 | </h1> |
67 | - <div class="text-gray-500 text-sm truncate">{{ getDesign.attribute || '温度' }}</div> | 74 | + <div class="text-gray-500 truncate" :style="{ fontSize: getDesign.fontSize + 'px' }">{{ |
75 | + getDesign.attribute || '温度' | ||
76 | + }}</div> | ||
68 | </div> | 77 | </div> |
69 | </main> | 78 | </main> |
70 | </template> | 79 | </template> |
@@ -16,7 +16,8 @@ export const option: PublicPresetOptions = { | @@ -16,7 +16,8 @@ export const option: PublicPresetOptions = { | ||
16 | [ComponentConfigFieldEnum.UNIT]: '℃', | 16 | [ComponentConfigFieldEnum.UNIT]: '℃', |
17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 17 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
18 | [ComponentConfigFieldEnum.BACKGROUND_COLOR]: '#377dff', | 18 | [ComponentConfigFieldEnum.BACKGROUND_COLOR]: '#377dff', |
19 | - fontSize: '18px', | 19 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 20, |
20 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
20 | }; | 21 | }; |
21 | 22 | ||
22 | export default class Config extends PublicConfigClass implements CreateComponentType { | 23 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -51,6 +51,24 @@ | @@ -51,6 +51,24 @@ | ||
51 | component: 'Input', | 51 | component: 'Input', |
52 | defaultValue: option.unit, | 52 | defaultValue: option.unit, |
53 | }, | 53 | }, |
54 | + { | ||
55 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
56 | + label: '数值字体大小', | ||
57 | + component: 'InputNumber', | ||
58 | + defaultValue: 20, | ||
59 | + componentProps: { | ||
60 | + min: 0, | ||
61 | + }, | ||
62 | + }, | ||
63 | + { | ||
64 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
65 | + label: '文本字体大小', | ||
66 | + component: 'InputNumber', | ||
67 | + defaultValue: 14, | ||
68 | + componentProps: { | ||
69 | + min: 0, | ||
70 | + }, | ||
71 | + }, | ||
54 | // { | 72 | // { |
55 | // field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, | 73 | // field: ComponentConfigFieldEnum.SHOW_DEVICE_NAME, |
56 | // label: '显示设备名称', | 74 | // label: '显示设备名称', |
@@ -29,6 +29,7 @@ | @@ -29,6 +29,7 @@ | ||
29 | attributeName?: string; | 29 | attributeName?: string; |
30 | deviceRename?: string; | 30 | deviceRename?: string; |
31 | maxNumber?: number; | 31 | maxNumber?: number; |
32 | + [key: string]: number | string | undefined; | ||
32 | } | 33 | } |
33 | 34 | ||
34 | const defaultValue: PercentType[] = [ | 35 | const defaultValue: PercentType[] = [ |
@@ -39,6 +40,8 @@ | @@ -39,6 +40,8 @@ | ||
39 | unit: '℃', | 40 | unit: '℃', |
40 | deviceName: '温湿度', | 41 | deviceName: '温湿度', |
41 | attribute: '温度', | 42 | attribute: '温度', |
43 | + fontSize: 14, | ||
44 | + valueSize: 20, | ||
42 | id: buildUUID(), | 45 | id: buildUUID(), |
43 | }, | 46 | }, |
44 | { | 47 | { |
@@ -60,10 +63,13 @@ | @@ -60,10 +63,13 @@ | ||
60 | fontColor: presetFontColor, | 63 | fontColor: presetFontColor, |
61 | backgroundColor: persetBackgroundColor, | 64 | backgroundColor: persetBackgroundColor, |
62 | maxNumber: persetMaxNumber, | 65 | maxNumber: persetMaxNumber, |
66 | + valueSize: persetValueSize, | ||
67 | + fontSize: persetFontSize, | ||
63 | } = persetOption || {}; | 68 | } = persetOption || {}; |
64 | return { | 69 | return { |
65 | dataSource: dataSource.map((item) => { | 70 | dataSource: dataSource.map((item) => { |
66 | - const { unit, fontColor, backgroundColor, maxNumber } = item.componentInfo || {}; | 71 | + const { unit, fontColor, backgroundColor, maxNumber, valueSize, fontSize } = |
72 | + item.componentInfo || {}; | ||
67 | const { attribute, attributeRename, deviceName, deviceRename, deviceId, attributeName } = | 73 | const { attribute, attributeRename, deviceName, deviceRename, deviceId, attributeName } = |
68 | item; | 74 | item; |
69 | return { | 75 | return { |
@@ -75,6 +81,8 @@ | @@ -75,6 +81,8 @@ | ||
75 | attributeName: attributeRename || attributeName, | 81 | attributeName: attributeRename || attributeName, |
76 | maxNumber: maxNumber || persetMaxNumber, | 82 | maxNumber: maxNumber || persetMaxNumber, |
77 | id: deviceId, | 83 | id: deviceId, |
84 | + valueSize: valueSize || persetValueSize || 20, | ||
85 | + fontSize: fontSize || persetFontSize || 14, | ||
78 | } as PercentType; | 86 | } as PercentType; |
79 | }), | 87 | }), |
80 | }; | 88 | }; |
@@ -112,14 +120,17 @@ | @@ -112,14 +120,17 @@ | ||
112 | class="mt-2 flex flex-col ml-3 mr-3 items-stretch" | 120 | class="mt-2 flex flex-col ml-3 mr-3 items-stretch" |
113 | > | 121 | > |
114 | <div class="flex justify-between"> | 122 | <div class="flex justify-between"> |
115 | - <div class="text-gray-500 text-sm truncate" :style="{ color: item.fontColor }"> | 123 | + <div |
124 | + class="text-gray-500 text-sm truncate" | ||
125 | + :style="{ color: item.fontColor, fontSize: item.fontSize + 'px' }" | ||
126 | + > | ||
116 | {{ | 127 | {{ |
117 | `${item.deviceName} | 128 | `${item.deviceName} |
118 | - | 129 | - |
119 | ${item.attributeName || item.attribute || '温度'}` | 130 | ${item.attributeName || item.attribute || '温度'}` |
120 | }} | 131 | }} |
121 | </div> | 132 | </div> |
122 | - <span class="text-lg" :style="{ color: item.fontColor }" | 133 | + <span class="text-lg" :style="{ color: item.fontColor, fontSize: item.valueSize + 'px' }" |
123 | >{{ item.value }} {{ item.unit }}</span | 134 | >{{ item.value }} {{ item.unit }}</span |
124 | > | 135 | > |
125 | </div> | 136 | </div> |
@@ -16,6 +16,8 @@ export const option: PublicPresetOptions = { | @@ -16,6 +16,8 @@ export const option: PublicPresetOptions = { | ||
16 | [ComponentConfigFieldEnum.ICON_COLOR]: '#367bff', | 16 | [ComponentConfigFieldEnum.ICON_COLOR]: '#367bff', |
17 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', | 17 | [ComponentConfigFieldEnum.FONT_COLOR]: '#000', |
18 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, | 18 | [ComponentConfigFieldEnum.SHOW_DEVICE_NAME]: false, |
19 | + [ComponentConfigFieldEnum.VALUE_SIZE]: 20, | ||
20 | + [ComponentConfigFieldEnum.FONT_SIZE]: 14, | ||
19 | }; | 21 | }; |
20 | 22 | ||
21 | export default class Config extends PublicConfigClass implements CreateComponentType { | 23 | export default class Config extends PublicConfigClass implements CreateComponentType { |
@@ -23,6 +23,25 @@ | @@ -23,6 +23,25 @@ | ||
23 | placeholder: '请输入数值单位', | 23 | placeholder: '请输入数值单位', |
24 | }, | 24 | }, |
25 | }, | 25 | }, |
26 | + | ||
27 | + { | ||
28 | + field: ComponentConfigFieldEnum.VALUE_SIZE, | ||
29 | + label: '数值字体大小', | ||
30 | + component: 'InputNumber', | ||
31 | + defaultValue: 20, | ||
32 | + componentProps: { | ||
33 | + min: 0, | ||
34 | + }, | ||
35 | + }, | ||
36 | + { | ||
37 | + field: ComponentConfigFieldEnum.FONT_SIZE, | ||
38 | + label: '文本字体大小', | ||
39 | + component: 'InputNumber', | ||
40 | + defaultValue: 14, | ||
41 | + componentProps: { | ||
42 | + min: 0, | ||
43 | + }, | ||
44 | + }, | ||
26 | { | 45 | { |
27 | field: ComponentConfigFieldEnum.ICON_COLOR, | 46 | field: ComponentConfigFieldEnum.ICON_COLOR, |
28 | label: '图标颜色', | 47 | label: '图标颜色', |
@@ -9,6 +9,7 @@ | @@ -9,6 +9,7 @@ | ||
9 | import { useReceiveValue } from '../../../hook/useReceiveValue'; | 9 | import { useReceiveValue } from '../../../hook/useReceiveValue'; |
10 | import { useMultipleDataFetch } from '../../../hook/socket/useSocket'; | 10 | import { useMultipleDataFetch } from '../../../hook/socket/useSocket'; |
11 | import { MultipleDataFetchUpdateFn } from '../../../hook/socket/useSocket.type'; | 11 | import { MultipleDataFetchUpdateFn } from '../../../hook/socket/useSocket.type'; |
12 | + import { useComponentScale } from '../../../hook/useComponentScale'; | ||
12 | 13 | ||
13 | const props = defineProps<{ | 14 | const props = defineProps<{ |
14 | config: ComponentPropsConfigType<typeof option>; | 15 | config: ComponentPropsConfigType<typeof option>; |
@@ -24,10 +25,12 @@ | @@ -24,10 +25,12 @@ | ||
24 | fontColor: persetFontColor, | 25 | fontColor: persetFontColor, |
25 | icon: persetIcon, | 26 | icon: persetIcon, |
26 | iconColor: persetIconColor, | 27 | iconColor: persetIconColor, |
28 | + valueSize: persetValueSize, | ||
29 | + fontSize: persetFontSize, | ||
27 | } = persetOption || {}; | 30 | } = persetOption || {}; |
28 | return { | 31 | return { |
29 | dataSource: dataSource.map((item) => { | 32 | dataSource: dataSource.map((item) => { |
30 | - const { fontColor, icon, iconColor, unit } = item.componentInfo; | 33 | + const { fontColor, icon, iconColor, unit, valueSize, fontSize } = item.componentInfo; |
31 | const { attribute, attributeRename, deviceName, deviceRename, deviceId, attributeName } = | 34 | const { attribute, attributeRename, deviceName, deviceRename, deviceId, attributeName } = |
32 | item; | 35 | item; |
33 | 36 | ||
@@ -40,6 +43,8 @@ | @@ -40,6 +43,8 @@ | ||
40 | deviceName: deviceRename || deviceName, | 43 | deviceName: deviceRename || deviceName, |
41 | attributeName: attributeRename || attributeName, | 44 | attributeName: attributeRename || attributeName, |
42 | id: deviceId, | 45 | id: deviceId, |
46 | + valueSize: valueSize || persetValueSize || 20, | ||
47 | + fontSize: fontSize || persetFontSize || 14, | ||
43 | }; | 48 | }; |
44 | }), | 49 | }), |
45 | }; | 50 | }; |
@@ -84,6 +89,7 @@ | @@ -84,6 +89,7 @@ | ||
84 | }; | 89 | }; |
85 | 90 | ||
86 | useMultipleDataFetch(props, updateFn); | 91 | useMultipleDataFetch(props, updateFn); |
92 | + const { getRatio } = useComponentScale(props); | ||
87 | </script> | 93 | </script> |
88 | 94 | ||
89 | <template> | 95 | <template> |
@@ -99,19 +105,21 @@ | @@ -99,19 +105,21 @@ | ||
99 | <SvgIcon | 105 | <SvgIcon |
100 | :name="item.icon!" | 106 | :name="item.icon!" |
101 | prefix="iconfont" | 107 | prefix="iconfont" |
102 | - :size="40" | 108 | + :size="getRatio ? 25 * getRatio : 25" |
103 | :style="{ color: item.iconColor }" | 109 | :style="{ color: item.iconColor }" |
104 | /> | 110 | /> |
105 | 111 | ||
106 | - <div class="text-gray-500 text-lg truncate ml-6">{{ | ||
107 | - item.deviceName + '-' + item.attributeName || '温度' | ||
108 | - }}</div> | 112 | + <div |
113 | + class="text-gray-500 text-sm truncate ml-6" | ||
114 | + :style="{ fontSize: item.fontSize + 'px' }" | ||
115 | + >{{ item.deviceName + '-' + item.attributeName || '温度' }}</div | ||
116 | + > | ||
109 | </div> | 117 | </div> |
110 | 118 | ||
111 | - <h1 class="font-bold text-xl m-2 truncate" :style="{ color: item.fontColor }"> | 119 | + <span class="text-lg" :style="{ color: item.fontColor, fontSize: item.valueSize + 'px' }"> |
112 | <span> {{ item.value || 0 }}</span> | 120 | <span> {{ item.value || 0 }}</span> |
113 | <span>{{ item.unit }} </span> | 121 | <span>{{ item.unit }} </span> |
114 | - </h1> | 122 | + </span> |
115 | </div> | 123 | </div> |
116 | <!-- <UpdateTime :time="time" /> --> | 124 | <!-- <UpdateTime :time="time" /> --> |
117 | </main> | 125 | </main> |
1 | export enum ComponentConfigFieldEnum { | 1 | export enum ComponentConfigFieldEnum { |
2 | - FONT_COLOR = 'fontColor', | 2 | + FONT_COLOR = 'fontColor', //数值字体颜色 |
3 | + VALUE_SIZE = 'valueSize', //数值字体大小 | ||
4 | + TEXT_COLOR = 'textColor', //文本字体颜色 | ||
5 | + FONT_SIZE = 'fontSize', //文本数值颜色 | ||
3 | UNIT = 'unit', | 6 | UNIT = 'unit', |
4 | POINTER_COLOR = 'pointerColor', | 7 | POINTER_COLOR = 'pointerColor', |
5 | INSTRUMENT_PANEL_COLOR = 'instrumentPanelColor', | 8 | INSTRUMENT_PANEL_COLOR = 'instrumentPanelColor', |
@@ -63,6 +63,8 @@ export interface ComponentInfo { | @@ -63,6 +63,8 @@ export interface ComponentInfo { | ||
63 | progressBarCircle?: Boolean; | 63 | progressBarCircle?: Boolean; |
64 | lineColor?: string; | 64 | lineColor?: string; |
65 | maxNumber?: number; | 65 | maxNumber?: number; |
66 | + fontSize?: string | number; | ||
67 | + valueSize?: string | number; | ||
66 | [key: string]: any; | 68 | [key: string]: any; |
67 | } | 69 | } |
68 | 70 |