Commit db42c0a2517d6f056fdee1685a5b3414f96009de
Merge branch 'fix/DEFECT-1895' into 'main_dev'
fix: 修复自定义Naiveui组件进度条刻度的问题 See merge request yunteng/thingskit-view!181
Showing
2 changed files
with
22 additions
and
8 deletions
@@ -15,7 +15,7 @@ | @@ -15,7 +15,7 @@ | ||
15 | <n-input-number :min="0" v-model:value="optionData.value.min" size="small"></n-input-number> | 15 | <n-input-number :min="0" v-model:value="optionData.value.min" size="small"></n-input-number> |
16 | </SettingItem> | 16 | </SettingItem> |
17 | <setting-item name="最大值"> | 17 | <setting-item name="最大值"> |
18 | - <n-input-number v-model:value="optionData.value.max" size="small"></n-input-number> | 18 | + <n-input-number v-model:value="optionData.value.max" size="small" :min="100"></n-input-number> |
19 | </setting-item> | 19 | </setting-item> |
20 | </SettingItemBox> | 20 | </SettingItemBox> |
21 | <SettingItemBox name="轨道"> | 21 | <SettingItemBox name="轨道"> |
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
3 | :type="type" | 3 | :type="type" |
4 | :height="h" | 4 | :height="h" |
5 | :processing="processing" | 5 | :processing="processing" |
6 | - :percentage="dataset" | 6 | + :percentage="percentage" |
7 | :indicator-placement="indicatorPlacement" | 7 | :indicator-placement="indicatorPlacement" |
8 | :color="color" | 8 | :color="color" |
9 | :rail-color="railColor" | 9 | :rail-color="railColor" |
@@ -21,11 +21,12 @@ | @@ -21,11 +21,12 @@ | ||
21 | </template> | 21 | </template> |
22 | 22 | ||
23 | <script setup lang="ts"> | 23 | <script setup lang="ts"> |
24 | -import { PropType, toRefs, watch } from 'vue' | 24 | +import { PropType, computed, ref, toRefs, watch } from 'vue' |
25 | import { useChartDataFetch } from '@/hooks' | 25 | import { useChartDataFetch } from '@/hooks' |
26 | import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' | 26 | import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' |
27 | import config from './config' | 27 | import config from './config' |
28 | import { toNumber } from '@/utils' | 28 | import { toNumber } from '@/utils' |
29 | +import { unref } from 'vue' | ||
29 | 30 | ||
30 | const props = defineProps({ | 31 | const props = defineProps({ |
31 | chartConfig: { | 32 | chartConfig: { |
@@ -46,25 +47,38 @@ const { | @@ -46,25 +47,38 @@ const { | ||
46 | indicatorPlacement, | 47 | indicatorPlacement, |
47 | indicatorTextSize, | 48 | indicatorTextSize, |
48 | offsetDegree, | 49 | offsetDegree, |
49 | - dataset | 50 | + dataset, |
50 | } = toRefs(props.chartConfig.option) | 51 | } = toRefs(props.chartConfig.option) |
51 | 52 | ||
53 | +const max = computed(()=>{//获取最新的最大值 | ||
54 | + const {value:{max}} = props.chartConfig.option | ||
55 | + return max | ||
56 | +}) | ||
57 | +const percentage = ref<number>(unref(dataset) * (100/max.value))//计算当设置的最大值大于100的时候 | ||
52 | // 手动更新 | 58 | // 手动更新 |
53 | watch( | 59 | watch( |
54 | - () => props.chartConfig.option.dataset, | ||
55 | - (newData: any) => { | 60 | + () => {props.chartConfig.option.dataset,props.chartConfig.option.value.max}, |
61 | + () => { | ||
56 | try { | 62 | try { |
57 | - dataset.value = toNumber(newData, 2) | 63 | + if(max.value!==100){ |
64 | + const newValue = unref(dataset) * (100/max.value)//计算进度条的位置 | ||
65 | + percentage.value = toNumber(newValue,2) | ||
66 | + dataset.value = toNumber((unref(dataset)), 2) | ||
67 | + return | ||
68 | + } | ||
69 | + percentage.value = toNumber(unref(dataset), 2) | ||
70 | + dataset.value = toNumber((unref(dataset)), 2) | ||
58 | } catch (error) { | 71 | } catch (error) { |
59 | console.log(error) | 72 | console.log(error) |
60 | } | 73 | } |
61 | }, | 74 | }, |
62 | { | 75 | { |
63 | - deep: false | 76 | + deep: true |
64 | } | 77 | } |
65 | ) | 78 | ) |
66 | // 预览更新 | 79 | // 预览更新 |
67 | useChartDataFetch(props.chartConfig, useChartEditStore, (newData: number) => { | 80 | useChartDataFetch(props.chartConfig, useChartEditStore, (newData: number) => { |
81 | + percentage.value = toNumber(newData*(100/max.value), 2) | ||
68 | dataset.value = toNumber(newData, 2) | 82 | dataset.value = toNumber(newData, 2) |
69 | }) | 83 | }) |
70 | </script> | 84 | </script> |