feat(过滤组件): 过滤组件时间区间国际化

This commit is contained in:
dataeaseShu 2024-03-19 18:29:44 +08:00
parent 86e662e256
commit 152b41ba1f
6 changed files with 119 additions and 35 deletions

View File

@ -41,6 +41,34 @@ export default {
finish: 'Finish' finish: 'Finish'
} }
}, },
time: {
set_time_filtering_range: 'Set time filtering range',
filter_range: 'The default value must be within the time filtering range',
interval_type: 'Interval type',
fixed_time: 'Fixed time',
dynamic_time: 'Dynamic time',
relative_to_current: 'Relative to current',
start_time: 'start time',
end_time: 'End time',
preview: 'preview',
maximum_single_query: 'Maximum single query',
day: 'day',
dynamic_query_time_window: 'Dynamic query time window',
nothing: 'nothing',
starting_from: 'Starting from',
end_at: 'End at',
time_interval: 'Time interval',
ago: 'ago',
after: 'after',
year: 'year',
month: 'month',
day: 'day',
today: 'today',
yesterday: 'yesterday',
at_the_beginning_of_the_month: 'At the beginning of the month',
at_the_beginning_of_the_year: 'At the beginning of the year',
custom: 'custom',
},
track: { track: {
upload_limit_format: 'The image format is incorrect. It supports JPG and PNG', upload_limit_format: 'The image format is incorrect. It supports JPG and PNG',
upload_limit_size: 'Picture size shall not exceed' upload_limit_size: 'Picture size shall not exceed'

View File

@ -41,6 +41,34 @@ export default {
finish: '完成' finish: '完成'
} }
}, },
time: {
set_time_filtering_range: '設定時間篩選範圍',
filter_range: '預設值必須在時間篩選範圍',
interval_type: '區間類型',
fixed_time: '固定時間',
dynamic_time: '動態時間',
relative_to_current: '相對當前',
start_time: '開始',
end_time: '結束時間',
preview: '預覽',
maximum_single_query: '單次査詢最多',
day: '天',
dynamic_query_time_window: '動態査詢時間視窗',
nothing: '無',
starting_from: '開始於',
end_at: '結束於',
time_interval: '時間區間',
ago: '前',
after: '後',
year: '年',
month: '月',
day: '日',
today: '今天',
yesterday: '昨天',
at_the_beginning_of_the_month: '月初',
at_the_beginning_of_the_year: '年初',
custom: '自定義',
},
track: { track: {
upload_limit_format: '圖片格式錯誤支持JPGPNG', upload_limit_format: '圖片格式錯誤支持JPGPNG',
upload_limit_size: '圖片大小不超過' upload_limit_size: '圖片大小不超過'

View File

@ -45,6 +45,34 @@ export default {
upload_limit_format: '图片格式错误支持JPGPNG', upload_limit_format: '图片格式错误支持JPGPNG',
upload_limit_size: '图片大小不超过' upload_limit_size: '图片大小不超过'
}, },
time: {
set_time_filtering_range: '设置时间筛选范围',
filter_range: '默认值必须在时间筛选范围',
interval_type: '区间类型',
fixed_time: '固定时间',
dynamic_time: '动态时间',
relative_to_current: '相对当前',
start_time: '开始时间',
end_time: '结束时间',
preview: '预览',
maximum_single_query: '单次查询最多',
day: '天',
dynamic_query_time_window: '动态查询时间窗口',
nothing: '无',
starting_from: '开始于',
end_at: '结束于',
time_interval: '时间区间',
ago: '前',
after: '后',
year: '年',
month: '月',
day: '日',
today: '今天',
yesterday: '昨天',
at_the_beginning_of_the_month: '月初',
at_the_beginning_of_the_year: '年初',
custom: '自定义',
},
route: { route: {
dashboard: '首页', dashboard: '首页',
documentation: '文档', documentation: '文档',

View File

@ -1366,7 +1366,7 @@ export default {
if(this.isInRange(attrs, +startWindowTime, dayjs(+timeStamp) if(this.isInRange(attrs, +startWindowTime, dayjs(+timeStamp)
.startOf('day') .startOf('day')
.valueOf())) { .valueOf())) {
this.openMessageSuccess('默认值必须在时间筛选范围!', 'error') this.openMessageSuccess(this.$t('time.filter_range'), 'error')
return return
} }
} }

View File

@ -171,7 +171,7 @@
<el-checkbox <el-checkbox
v-if="widget.name && ['timeDateRangeWidget'].includes(widget.name)" v-if="widget.name && ['timeDateRangeWidget'].includes(widget.name)"
v-model="attrs.setTimeRange" v-model="attrs.setTimeRange"
>设置时间筛选范围 >{{ $t('time.set_time_filtering_range') }}
</el-checkbox> </el-checkbox>
<el-popover :disabled="!attrs.setTimeRange" popper-class="popover-setting-parent" ref="popoverSetting" :visible-arrow="false" placement="bottom-start" :width="452" trigger="click"> <el-popover :disabled="!attrs.setTimeRange" popper-class="popover-setting-parent" ref="popoverSetting" :visible-arrow="false" placement="bottom-start" :width="452" trigger="click">
<RangeFilterTime @changeData="changeData" :timeRangeData="attrs.timeRange" /> <RangeFilterTime @changeData="changeData" :timeRangeData="attrs.timeRange" />

View File

@ -1,8 +1,8 @@
<template> <template>
<div class="set-time-filtering-range"> <div class="set-time-filtering-range">
<div class="title">设置时间筛选范围</div> <div class="title">{{ $t('time.set_time_filtering_range') }}</div>
<div class="list-item"> <div class="list-item">
<div class="label">区间类型</div> <div class="label">{{ $t('time.interval_type') }}</div>
<div class="setting-content"> <div class="setting-content">
<div class="setting"> <div class="setting">
<el-radio-group v-model="timeRange.intervalType"> <el-radio-group v-model="timeRange.intervalType">
@ -10,7 +10,7 @@
v-for="ele in intervalTypeList" v-for="ele in intervalTypeList"
:key="ele.value" :key="ele.value"
:label="ele.value" :label="ele.value"
>{{ ele.label }}</el-radio >{{ $t(`time.${ele.label}`) }}</el-radio
> >
</el-radio-group> </el-radio-group>
</div> </div>
@ -21,21 +21,21 @@
<div class="setting-content"> <div class="setting-content">
<div class="setting"> <div class="setting">
<el-radio-group v-model="timeRange.regularOrTrends"> <el-radio-group v-model="timeRange.regularOrTrends">
<el-radio label="fixed">固定时间</el-radio> <el-radio label="fixed">{{ $t('time.fixed_time') }}</el-radio>
<el-radio label="dynamic">动态时间</el-radio> <el-radio label="dynamic">{{ $t('time.dynamic_time') }}</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<template <template
v-if="dynamicTime && timeRange.intervalType !== 'timeInterval'" v-if="dynamicTime && timeRange.intervalType !== 'timeInterval'"
> >
<div class="setting"> <div class="setting">
<div class="setting-label">相对当前</div> <div class="setting-label">{{ $t('time.relative_to_current') }}</div>
<div class="setting-value select"> <div class="setting-value select">
<el-select v-model="timeRange.relativeToCurrent"> <el-select v-model="timeRange.relativeToCurrent">
<el-option <el-option
v-for="item in relativeToCurrentList" v-for="item in relativeToCurrentList"
:key="item.value" :key="item.value"
:label="item.label" :label="$t(`time.${item.label}`)"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
@ -53,7 +53,7 @@
<el-option <el-option
v-for="item in relativeToCurrentTypeList" v-for="item in relativeToCurrentTypeList"
:key="item.value" :key="item.value"
:label="item.label" :label="$t(`time.${item.label}`)"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
@ -61,7 +61,7 @@
<el-option <el-option
v-for="item in aroundList" v-for="item in aroundList"
:key="item.value" :key="item.value"
:label="item.label" :label="$t(`time.${item.label}`)"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
@ -72,7 +72,7 @@
v-else-if="dynamicTime && timeRange.intervalType === 'timeInterval'" v-else-if="dynamicTime && timeRange.intervalType === 'timeInterval'"
> >
<div class="setting"> <div class="setting">
<div class="setting-label">开始时间</div> <div class="setting-label">{{ $t('time.start_time') }}</div>
<div class="setting-input range"> <div class="setting-input range">
<el-input-number <el-input-number
v-model="timeRange.timeNum" v-model="timeRange.timeNum"
@ -84,7 +84,7 @@
<el-option <el-option
v-for="item in relativeToCurrentTypeList" v-for="item in relativeToCurrentTypeList"
:key="item.value" :key="item.value"
:label="item.label" :label="$t(`time.${item.label}`)"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
@ -92,14 +92,14 @@
<el-option <el-option
v-for="item in aroundList" v-for="item in aroundList"
:key="item.value" :key="item.value"
:label="item.label" :label="$t(`time.${item.label}`)"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="setting"> <div class="setting">
<div class="setting-label">结束时间</div> <div class="setting-label">{{ $t('time.end_time') }}</div>
<div class="setting-input range"> <div class="setting-input range">
<el-input-number <el-input-number
v-model="timeRange.timeNumRange" v-model="timeRange.timeNumRange"
@ -111,7 +111,7 @@
<el-option <el-option
v-for="item in relativeToCurrentTypeList" v-for="item in relativeToCurrentTypeList"
:key="item.value" :key="item.value"
:label="item.label" :label="$t(`time.${item.label}`)"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
@ -119,7 +119,7 @@
<el-option <el-option
v-for="item in aroundList" v-for="item in aroundList"
:key="item.value" :key="item.value"
:label="item.label" :label="$t(`time.${item.label}`)"
:value="item.value" :value="item.value"
/> />
</el-select> </el-select>
@ -128,7 +128,7 @@
</template> </template>
</div> </div>
<div class="parameters" :class="dynamicTime && 'setting'"> <div class="parameters" :class="dynamicTime && 'setting'">
<div class="setting-label" v-if="dynamicTime">预览</div> <div class="setting-label" v-if="dynamicTime">{{ $t('time.preview') }}</div>
<div :class="dynamicTime ? 'setting-value' : 'w100'"> <div :class="dynamicTime ? 'setting-value' : 'w100'">
<el-date-picker <el-date-picker
:disabled="timeRange.regularOrTrends !== 'fixed'" :disabled="timeRange.regularOrTrends !== 'fixed'"
@ -145,21 +145,21 @@
<div class="label"> <div class="label">
<el-checkbox <el-checkbox
v-model="timeRange.dynamicWindow" v-model="timeRange.dynamicWindow"
label="动态查询时间窗口" :label="$t('time.dynamic_query_time_window')"
/> />
</div> </div>
<div <div
v-if="timeRange.dynamicWindow" v-if="timeRange.dynamicWindow"
class="setting-content maximum-single-query" class="setting-content maximum-single-query"
> >
单次查询最多 {{ $t('time.maximum_single_query') }}
<el-input-number <el-input-number
v-model="timeRange.maximumSingleQuery" v-model="timeRange.maximumSingleQuery"
:min="1" :min="1"
size="small" size="small"
controls-position="right" controls-position="right"
/> />
{{ $t('time.day') }}
</div> </div>
</div> </div>
<div class="popover-foot"> <div class="popover-foot">
@ -182,66 +182,66 @@ import { getThisStart, getLastStart, getAround } from "./time-format-dayjs";
import { cloneDeep } from 'lodash-es' import { cloneDeep } from 'lodash-es'
const intervalTypeList = [ const intervalTypeList = [
{ {
label: "", label: "day",
value: "none", value: "none",
}, },
{ {
label: "开始于", label: "starting_from",
value: "start", value: "start",
}, },
{ {
label: "结束于", label: "end_at",
value: "end", value: "end",
}, },
{ {
label: "时间区间", label: "time_interval",
value: "timeInterval", value: "timeInterval",
}, },
]; ];
const aroundList = [ const aroundList = [
{ {
label: "", label: "ago",
value: "f", value: "f",
}, },
{ {
label: "", label: "after",
value: "b", value: "b",
}, },
]; ];
const relativeToCurrentTypeList = [ const relativeToCurrentTypeList = [
{ {
label: "", label: "year",
value: "year", value: "year",
}, },
{ {
label: "", label: "month",
value: "month", value: "month",
}, },
{ {
label: "", label: "day",
value: "day", value: "day",
}, },
]; ];
const relativeToCurrentList = [ const relativeToCurrentList = [
{ {
label: "今天", label: "today",
value: "today", value: "today",
}, },
{ {
label: "昨天", label: "yesterday",
value: "yesterday", value: "yesterday",
}, },
{ {
label: "月初", label: "at_the_beginning_of_the_month",
value: "monthBeginning", value: "monthBeginning",
}, },
{ {
label: "年初", label: "at_the_beginning_of_the_year",
value: "yearBeginning", value: "yearBeginning",
}, },
{ {
label: "自定义", label: "custom",
value: "custom", value: "custom",
}, },
]; ];