Commit 289d434a28ca3daa429f335c2ed47bfbfee2ef74

Authored by xp.Huang
2 parents c0a4a0fb 34e5e476

Merge branch 'fix/select-empty' into 'main_dev'

perf(src/views): 优化公共接口选择其他接口,表单数据还缓存上一次的数据

See merge request yunteng/thingskit-view!254
@@ -62,6 +62,8 @@ const initOptions = useCanvasInitOptions(props.chartConfig.option, props.themeSe @@ -62,6 +62,8 @@ const initOptions = useCanvasInitOptions(props.chartConfig.option, props.themeSe
62 62
63 const { queryCondition } = toRefs(props.chartConfig.option) 63 const { queryCondition } = toRefs(props.chartConfig.option)
64 64
  65 +const { limit, startTs, endTs, interval, agg } = toRefs(props.chartConfig.request.requestParams.Params)
  66 +
65 use([DatasetComponent, CanvasRenderer, LineChart, GridComponent, TooltipComponent, LegendComponent]) 67 use([DatasetComponent, CanvasRenderer, LineChart, GridComponent, TooltipComponent, LegendComponent])
66 68
67 const chartEditStore = useChartEditStore() 69 const chartEditStore = useChartEditStore()
@@ -286,6 +288,23 @@ const handleAggChange = (value: string) => { @@ -286,6 +288,23 @@ const handleAggChange = (value: string) => {
286 } 288 }
287 289
288 onMounted(() => { 290 onMounted(() => {
  291 + if (Reflect.get(props.chartConfig.request.requestParams.Params, 'startTs')) {
  292 + queryCondition.value.timeRange[0] = startTs.value
  293 + getPacketIntervalByRange(queryCondition.value.timeRange)
  294 + }
  295 + if (Reflect.get(props.chartConfig.request.requestParams.Params, 'endTs')) {
  296 + queryCondition.value.timeRange[1] = endTs.value
  297 + getPacketIntervalByRange(queryCondition.value.timeRange)
  298 + }
  299 + if (Reflect.get(props.chartConfig.request.requestParams.Params, 'agg')) {
  300 + queryCondition.value.agg = agg.value
  301 + }
  302 + if (Reflect.get(props.chartConfig.request.requestParams.Params, 'interval')) {
  303 + queryCondition.value.interval = interval.value
  304 + }
  305 + if (Reflect.get(props.chartConfig.request.requestParams.Params, 'limit')) {
  306 + queryCondition.value.limit = limit.value
  307 + }
289 seriesDataMaxLength = dataJson.source.length 308 seriesDataMaxLength = dataJson.source.length
290 if (props.chartConfig.option.isCarousel) { 309 if (props.chartConfig.option.isCarousel) {
291 addPieInterval(undefined, true) 310 addPieInterval(undefined, true)
@@ -6,6 +6,7 @@ import { chartInitConfig } from '@/settings/designSetting' @@ -6,6 +6,7 @@ import { chartInitConfig } from '@/settings/designSetting'
6 6
7 export const option = { 7 export const option = {
8 dataset: 80, 8 dataset: 80,
  9 + valueRange: [0, 100],
9 unitStr: '个', 10 unitStr: '个',
10 openAnim: true, 11 openAnim: true,
11 duration: 3, 12 duration: 3,
@@ -12,6 +12,12 @@ @@ -12,6 +12,12 @@
12 <n-input-number :min="0.1" step="0.5" v-model:value="optionData.duration"></n-input-number> 12 <n-input-number :min="0.1" step="0.5" v-model:value="optionData.duration"></n-input-number>
13 </SettingItem> 13 </SettingItem>
14 </SettingItemBox> 14 </SettingItemBox>
  15 + <setting-item-box name="范围">
  16 + <setting-item name="范围">
  17 + <n-input-number :min="0" :max="99" v-model:value="optionData.valueRange[0]" />
  18 + <n-input-number :min="1" :max="100" v-model:value="optionData.valueRange[1]" />
  19 + </setting-item>
  20 + </setting-item-box>
15 <setting-item-box name="数据源"> 21 <setting-item-box name="数据源">
16 <setting-item name="数据"> 22 <setting-item name="数据">
17 <n-input-number :min="0" :max="100" v-model:value="optionData.dataset" /> 23 <n-input-number :min="0" :max="100" v-model:value="optionData.dataset" />
@@ -260,7 +260,7 @@ @@ -260,7 +260,7 @@
260 d="M202.38 399.21C205.97 399.21 208.88 402.12 208.88 405.71C208.88 409.3 205.97 412.21 202.38 412.21C198.79 412.21 195.88 409.3 195.88 405.71C195.88 402.12 198.79 399.21 202.38 399.21L202.38 399.21Z" 260 d="M202.38 399.21C205.97 399.21 208.88 402.12 208.88 405.71C208.88 409.3 205.97 412.21 202.38 412.21C198.79 412.21 195.88 409.3 195.88 405.71C195.88 402.12 198.79 399.21 202.38 399.21L202.38 399.21Z"
261 /> 261 />
262 <animateMotion 262 <animateMotion
263 - path="M0,0 L0 -5 L0 -13 L0 -15 L0 -17 L0 -19 L0 -22 L0 -26 L0 -36 263 + path="M0,0 L0 -5 L0 -13 L0 -15 L0 -17 L0 -19 L0 -22 L0 -26 L0 -36
264 L0 -46 L0 -50 L0 -59 L0 -60 L0 -69 L0 -71 L0 -79 L0 -89 L0 -91 L0 -122 L0 -132 L0 -142 L0 -162 L0 -172 L0 -182 L0 -192 264 L0 -46 L0 -50 L0 -59 L0 -60 L0 -69 L0 -71 L0 -79 L0 -89 L0 -91 L0 -122 L0 -132 L0 -142 L0 -162 L0 -172 L0 -182 L0 -192
265 " 265 "
266 begin="1.5s" 266 begin="1.5s"
@@ -278,7 +278,7 @@ @@ -278,7 +278,7 @@
278 d="M231.69 443.18C235.28 443.18 238.19 446.09 238.19 449.68C238.19 453.27 235.28 456.18 231.69 456.18C228.1 456.18 225.19 453.27 225.19 449.68C225.19 446.09 228.1 443.18 231.69 443.18L231.69 443.18Z" 278 d="M231.69 443.18C235.28 443.18 238.19 446.09 238.19 449.68C238.19 453.27 235.28 456.18 231.69 456.18C228.1 456.18 225.19 453.27 225.19 449.68C225.19 446.09 228.1 443.18 231.69 443.18L231.69 443.18Z"
279 /> 279 />
280 <animateMotion 280 <animateMotion
281 - path="M0,0 L0 -5 L0 -13 L0 -15 L0 -17 L0 -19 L0 -22 L0 -26 L0 -36 281 + path="M0,0 L0 -5 L0 -13 L0 -15 L0 -17 L0 -19 L0 -22 L0 -26 L0 -36
282 L0 -46 L0 -50 L0 -59 L0 -60 L0 -69 L0 -71 L0 -79 L0 -89 L0 -91 L0 -122 L0 -132 L0 -142 L0 -162 L0 -172 L0 -182 L0 -192 282 L0 -46 L0 -50 L0 -59 L0 -60 L0 -69 L0 -71 L0 -79 L0 -89 L0 -91 L0 -122 L0 -132 L0 -142 L0 -162 L0 -172 L0 -182 L0 -192
283 " 283 "
284 begin="1.5s" 284 begin="1.5s"
@@ -296,7 +296,7 @@ @@ -296,7 +296,7 @@
296 d="M231.69 443.18C235.28 443.18 238.19 446.09 238.19 449.68C238.19 453.27 235.28 456.18 231.69 456.18C228.1 456.18 225.19 453.27 225.19 449.68C225.19 446.09 228.1 443.18 231.69 443.18L231.69 443.18Z" 296 d="M231.69 443.18C235.28 443.18 238.19 446.09 238.19 449.68C238.19 453.27 235.28 456.18 231.69 456.18C228.1 456.18 225.19 453.27 225.19 449.68C225.19 446.09 228.1 443.18 231.69 443.18L231.69 443.18Z"
297 /> 297 />
298 <animateMotion 298 <animateMotion
299 - path="M0,0 L0 -5 L0 -13 L0 -15 L0 -17 L0 -19 L0 -22 L0 -26 L0 -36 299 + path="M0,0 L0 -5 L0 -13 L0 -15 L0 -17 L0 -19 L0 -22 L0 -26 L0 -36
300 L0 -46 L0 -50 L0 -59 L0 -60 L0 -69 L0 -71 L0 -79 L0 -89 L0 -91 L0 -122 L0 -132 L0 -142 L0 -162 L0 -172 L0 -182 L0 -192 300 L0 -46 L0 -50 L0 -59 L0 -60 L0 -69 L0 -71 L0 -79 L0 -89 L0 -91 L0 -122 L0 -132 L0 -142 L0 -162 L0 -172 L0 -182 L0 -192
301 " 301 "
302 begin="1.5s" 302 begin="1.5s"
@@ -656,7 +656,7 @@ @@ -656,7 +656,7 @@
656 </div> 656 </div>
657 </template> 657 </template>
658 <script setup lang="ts"> 658 <script setup lang="ts">
659 -import { PropType, toRefs } from 'vue' 659 +import { PropType, toRefs, watch } from 'vue'
660 import { CreateComponentType } from '@/packages/index.d' 660 import { CreateComponentType } from '@/packages/index.d'
661 import { option } from './config' 661 import { option } from './config'
662 import { useChartDataFetch } from '@/hooks' 662 import { useChartDataFetch } from '@/hooks'
@@ -671,13 +671,29 @@ const props = defineProps({ @@ -671,13 +671,29 @@ const props = defineProps({
671 671
672 const { w, h } = toRefs(props.chartConfig.attr) 672 const { w, h } = toRefs(props.chartConfig.attr)
673 673
674 -const { dataset, unitStr, colorConfig, openAnim, duration, fontConfig } = toRefs( 674 +const { dataset, unitStr, colorConfig, openAnim, duration, fontConfig, valueRange } = toRefs(
675 props.chartConfig.option as typeof option 675 props.chartConfig.option as typeof option
676 ) 676 )
677 677
  678 +watch(()=>dataset.value,(newData)=>{
  679 + if((Number(newData)) >= valueRange.value[1]){
  680 + newData = valueRange.value[1]
  681 + }
  682 + if((Number(newData)) <= valueRange.value[0]){
  683 + newData = valueRange.value[0]
  684 + }
  685 + dataset.value = newData as number
  686 +})
  687 +
678 // 预览更新 688 // 预览更新
679 -useChartDataFetch(props.chartConfig, useChartEditStore, (newData: number) => {  
680 - dataset.value = newData 689 +useChartDataFetch(props.chartConfig, useChartEditStore, (newData: number | string) => {
  690 + if((Number(newData)) >= valueRange.value[1]){
  691 + newData = valueRange.value[1]
  692 + }
  693 + if((Number(newData)) <= valueRange.value[0]){
  694 + newData = valueRange.value[0]
  695 + }
  696 + dataset.value = newData as number
681 }) 697 })
682 </script> 698 </script>
683 699
@@ -448,9 +448,17 @@ export const useDynamicPublicForm = (paramsItemList: Ref<ParamsItemType[]>) => { @@ -448,9 +448,17 @@ export const useDynamicPublicForm = (paramsItemList: Ref<ParamsItemType[]>) => {
448 Reflect.deleteProperty(params, key) 448 Reflect.deleteProperty(params, key)
449 }) 449 })
450 params[BuiltInVariable.SELECT_TIME_AGGREGATION] = {} 450 params[BuiltInVariable.SELECT_TIME_AGGREGATION] = {}
  451 + params[BuiltInVariable.SELECT_TIME_AGGREGATION].agg = null
  452 + params[BuiltInVariable.SELECT_TIME_AGGREGATION].limit = 7
  453 + params[BuiltInVariable.SELECT_TIME_AGGREGATION].interval = null
  454 + getSelectDeviceAttr.value.value = null
  455 + getSelectOrgTree.value.value = null
  456 + getSelectDeviceProfile.value.value = null
  457 + getSelectDevice.value.value = null
451 } 458 }
452 459
453 const setDynamicFormValue = (params: Recordable) => { 460 const setDynamicFormValue = (params: Recordable) => {
  461 + clearParams()
454 setParams(params) 462 setParams(params)
455 getOrgOption() 463 getOrgOption()
456 getDeviceProfileOption() 464 getDeviceProfileOption()