mirror of
https://gitee.com/dromara/go-view.git
synced 2025-02-24 16:22:57 +08:00
perf: 优化时间选择器
This commit is contained in:
parent
34b4eb77ba
commit
8f0f9ea334
@ -10,6 +10,8 @@ import { InputsDateConfig } from './index'
|
|||||||
export const option = {
|
export const option = {
|
||||||
// 时间组件展示类型,必须和 interactActions 中定义的数据一致
|
// 时间组件展示类型,必须和 interactActions 中定义的数据一致
|
||||||
[COMPONENT_INTERACT_EVENT_KET]: ComponentInteractEventEnum.DATE,
|
[COMPONENT_INTERACT_EVENT_KET]: ComponentInteractEventEnum.DATE,
|
||||||
|
// 下拉展示
|
||||||
|
isPanel: 0,
|
||||||
dataset: dayjs().valueOf()
|
dataset: dayjs().valueOf()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<collapse-item name="展示方式" :expanded="true">
|
||||||
|
<setting-item-box name="选择方式">
|
||||||
|
<n-select
|
||||||
|
v-model:value="props.optionData.isPanel"
|
||||||
|
size="small"
|
||||||
|
:options="panelOptions"
|
||||||
|
/>
|
||||||
|
</setting-item-box>
|
||||||
|
</collapse-item>
|
||||||
|
|
||||||
<collapse-item name="时间配置" :expanded="true">
|
<collapse-item name="时间配置" :expanded="true">
|
||||||
<setting-item-box name="基础">
|
<setting-item-box name="基础">
|
||||||
<setting-item name="类型">
|
<setting-item name="类型">
|
||||||
@ -25,6 +35,7 @@ import { PropType } from 'vue'
|
|||||||
import { icon } from '@/plugins'
|
import { icon } from '@/plugins'
|
||||||
import { CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
|
import { CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
|
||||||
import { option } from './config'
|
import { option } from './config'
|
||||||
|
import { ComponentInteractEventEnum } from './interact'
|
||||||
|
|
||||||
const { HelpOutlineIcon } = icon.ionicons5
|
const { HelpOutlineIcon } = icon.ionicons5
|
||||||
|
|
||||||
@ -35,14 +46,53 @@ const props = defineProps({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const panelOptions = [
|
||||||
|
{
|
||||||
|
label: '下拉展示',
|
||||||
|
value: 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '面板展示',
|
||||||
|
value: 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
const datePickerTypeOptions = [
|
const datePickerTypeOptions = [
|
||||||
{
|
{
|
||||||
label: '具体日期',
|
label: '日期',
|
||||||
value: 'date'
|
value: ComponentInteractEventEnum.DATE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '日期时间',
|
||||||
|
value: ComponentInteractEventEnum.DATE_TIME
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '日期范围',
|
label: '日期范围',
|
||||||
value: 'daterange'
|
value: ComponentInteractEventEnum.DATE_RANGE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '月份',
|
||||||
|
value: ComponentInteractEventEnum.MONTH
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '月份范围',
|
||||||
|
value: ComponentInteractEventEnum.MONTH_RANGE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '年份',
|
||||||
|
value: ComponentInteractEventEnum.YEAR
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '年份范围',
|
||||||
|
value: ComponentInteractEventEnum.YEAR_RANGE
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '季度',
|
||||||
|
value: ComponentInteractEventEnum.QUARTER
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '季度范围',
|
||||||
|
value: ComponentInteractEventEnum.QUARTER_RANGE
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
</script>
|
</script>
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
<div :style="`width:${w}px; height:${h}px;`">
|
<div :style="`width:${w}px; height:${h}px;`">
|
||||||
<n-date-picker
|
<n-date-picker
|
||||||
v-model:value="option.dataset"
|
v-model:value="option.dataset"
|
||||||
|
:panel="!!chartConfig.option.isPanel"
|
||||||
:type="chartConfig.option.componentInteractEventKey"
|
:type="chartConfig.option.componentInteractEventKey"
|
||||||
@update:value="onChange"
|
@update:value="onChange"
|
||||||
/>
|
/>
|
||||||
|
@ -3,7 +3,15 @@ import { InteractEventOn, InteractActionsType } from '@/enums/eventEnum'
|
|||||||
// 时间组件类型
|
// 时间组件类型
|
||||||
export enum ComponentInteractEventEnum {
|
export enum ComponentInteractEventEnum {
|
||||||
DATE = 'date',
|
DATE = 'date',
|
||||||
DATE_RANGE = 'daterange'
|
DATE_TIME = 'datetime',
|
||||||
|
DATE_RANGE = 'daterange',
|
||||||
|
DATE_TIME_RANGE = 'datetimerange',
|
||||||
|
MONTH = 'month',
|
||||||
|
MONTH_RANGE = 'monthrange',
|
||||||
|
YEAR = 'year',
|
||||||
|
YEAR_RANGE = 'yearrange',
|
||||||
|
QUARTER = 'quarter',
|
||||||
|
QUARTER_RANGE = 'quarterrange'
|
||||||
}
|
}
|
||||||
|
|
||||||
// 联动参数
|
// 联动参数
|
||||||
@ -14,32 +22,43 @@ export enum ComponentInteractParamsEnum {
|
|||||||
DATE_RANGE = 'daterange'
|
DATE_RANGE = 'daterange'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const time = [
|
||||||
|
{
|
||||||
|
value: ComponentInteractParamsEnum.DATE,
|
||||||
|
label: '日期'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
const timeRange = [
|
||||||
|
{
|
||||||
|
value: ComponentInteractParamsEnum.DATE_START,
|
||||||
|
label: '开始时间'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: ComponentInteractParamsEnum.DATE_END,
|
||||||
|
label: '结束时间'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: ComponentInteractParamsEnum.DATE_RANGE,
|
||||||
|
label: '日期范围'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
// 定义组件触发回调事件
|
// 定义组件触发回调事件
|
||||||
export const interactActions: InteractActionsType[] = [
|
export const interactActions: InteractActionsType[] = [
|
||||||
{
|
{
|
||||||
interactType: InteractEventOn.CHANGE,
|
interactType: InteractEventOn.CHANGE,
|
||||||
interactName: '完成后的回调',
|
interactName: '完成后的回调',
|
||||||
componentEmitEvents: {
|
componentEmitEvents: {
|
||||||
[ComponentInteractEventEnum.DATE]: [
|
[ComponentInteractEventEnum.DATE]: time,
|
||||||
{
|
[ComponentInteractEventEnum.DATE_TIME]: time,
|
||||||
value: ComponentInteractParamsEnum.DATE,
|
[ComponentInteractEventEnum.DATE_RANGE]: timeRange,
|
||||||
label: '日期'
|
[ComponentInteractEventEnum.MONTH]: time,
|
||||||
}
|
[ComponentInteractEventEnum.MONTH_RANGE]: timeRange,
|
||||||
],
|
[ComponentInteractEventEnum.QUARTER]: time,
|
||||||
[ComponentInteractEventEnum.DATE_RANGE]: [
|
[ComponentInteractEventEnum.QUARTER_RANGE]: timeRange,
|
||||||
{
|
[ComponentInteractEventEnum.YEAR]: time,
|
||||||
value: ComponentInteractParamsEnum.DATE_START,
|
[ComponentInteractEventEnum.YEAR_RANGE]: timeRange,
|
||||||
label: '开始时间'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: ComponentInteractParamsEnum.DATE_END,
|
|
||||||
label: '结束时间'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: ComponentInteractParamsEnum.DATE_RANGE,
|
|
||||||
label: '日期范围'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -105,6 +105,7 @@
|
|||||||
size="tiny"
|
size="tiny"
|
||||||
v-model:value="item.interactFn[ovlKey]"
|
v-model:value="item.interactFn[ovlKey]"
|
||||||
:options="fnDimensionsAndSource(item.interactOn)"
|
:options="fnDimensionsAndSource(item.interactOn)"
|
||||||
|
clearable
|
||||||
></n-select>
|
></n-select>
|
||||||
</setting-item>
|
</setting-item>
|
||||||
<n-text
|
<n-text
|
||||||
|
Loading…
Reference in New Issue
Block a user