perf(仪表板-日期范围过滤器): 优化时分秒精度设置

This commit is contained in:
fit2cloud-chenyw 2022-08-05 03:05:56 -04:00
parent 7a650c49b4
commit 8b616deb94
3 changed files with 35 additions and 14 deletions

View File

@ -230,8 +230,9 @@ export default {
} }
let start = values[0] let start = values[0]
let end = values[1] let end = values[1]
start = timeSection(start, 'date')[0] start = timeSection(start, 'datetime', this.labelFormat)[0]
end = timeSection(end, 'date')[1] end = timeSection(end, 'datetime', this.labelFormat)[1]
const results = [start, end] const results = [start, end]
return results return results
} else { } else {
@ -264,9 +265,6 @@ export default {
.coustom-date-picker { .coustom-date-picker {
border:1px solid var(--BrDateColor, #dfe4ed) !important; border:1px solid var(--BrDateColor, #dfe4ed) !important;
background: var(--BgDateColor, #FFFFFF) !important; background: var(--BgDateColor, #FFFFFF) !important;
// .popper__arrow::after{
// border-bottom-color: var(--BgDateColor, #FFFFFF) !important;
// }
.popper__arrow, .popper__arrow,
.popper__arrow::after { .popper__arrow::after {

View File

@ -269,23 +269,24 @@ class TimeDateRangeServiceImpl extends WidgetService {
if (!values || values.length === 0) { if (!values || values.length === 0) {
return [] return []
} }
const componentType = element.options.attrs.showTime ? 'datetimerange' : 'daterange'
let labelFormat = 'yyyy-MM-dd'
if (element.options.attrs.showTime && element.options.attrs.accuracy) {
labelFormat = labelFormat + ' ' + element.options.attrs.accuracy
}
if (element.options.attrs.type === 'daterange') { if (element.options.attrs.type === 'daterange') {
if (values.length !== 2) { if (values.length !== 2) {
return null return null
} }
let start = values[0] let start = values[0]
let end = values[1] let end = values[1]
start = timeSection(start, 'date')[0]
end = timeSection(end, 'date')[1] start = timeSection(start, 'datetime', labelFormat)[0]
end = timeSection(end, 'datetime', labelFormat)[1]
const results = [start, end] const results = [start, end]
return results return results
} else { } else {
const value = values[0] const value = values[0]
const componentType = element.options.attrs.showTime ? 'datetimerange' : 'daterange'
let labelFormat = 'yyyy-MM-dd'
if (element.options.attrs.showTime && element.options.attrs.accuracy) {
labelFormat = labelFormat + ' ' + element.options.attrs.accuracy
}
return timeSection(parseFloat(value), componentType || element.options.attrs.type, labelFormat) return timeSection(parseFloat(value), componentType || element.options.attrs.type, labelFormat)
} }

View File

@ -5,7 +5,7 @@
<el-form-item :label="$t('dynamic_time.set_default')"> <el-form-item :label="$t('dynamic_time.set_default')">
<el-radio-group v-model="element.options.attrs.default.isDynamic" @change="dynamicChange"> <el-radio-group v-model="element.options.attrs.default.isDynamic" @change="dynamicChange">
<el-radio :label="false">{{ $t('dynamic_time.fix') }}</el-radio> <el-radio :label="false">{{ $t('dynamic_time.fix') }}</el-radio>
<el-radio :label="true">{{ $t('dynamic_time.dynamic') }}</el-radio> <el-radio :label="true" :disabled="isTimeWidget && element.options.attrs.showTime">{{ $t('dynamic_time.dynamic') }}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
@ -136,7 +136,8 @@
<el-form-item v-if="element.options.attrs.default.isDynamic" :label="$t('dynamic_time.preview')"> <el-form-item v-if="element.options.attrs.default.isDynamic" :label="$t('dynamic_time.preview')">
<el-date-picker <el-date-picker
v-model="dval" v-model="dval"
:type="element.options.attrs.type" :type="componentType"
:format="labelFormat"
disabled disabled
class="relative-time" class="relative-time"
placeholder="" placeholder=""
@ -177,6 +178,27 @@ export default {
dval: null dval: null
} }
}, },
computed: {
isTimeWidget() {
const widget = ApplicationContext.getService(this.element.serviceName)
return widget.isTimeWidget && widget.isTimeWidget()
},
componentType() {
let result = 'daterange'
if (this.isTimeWidget && this.element.options.attrs.showTime) {
result = 'datetimerange'
}
return result
},
labelFormat() {
const result = 'yyyy-MM-dd'
if (this.isTimeWidget && this.element.options.attrs.showTime && this.element.options.attrs.accuracy) {
return result + ' ' + this.element.options.attrs.accuracy
}
return result
}
},
created() { created() {
this.setDval() this.setDval()
}, },