Merge pull request #2805 from dataease/pr@dev@perf_date_range_time

perf(仪表板-日期范围过滤器): 优化时分秒精度设置
This commit is contained in:
fit2cloud-chenyw 2022-08-05 15:06:33 +08:00 committed by GitHub
commit db331f7cdd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 14 deletions

View File

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

View File

@ -269,23 +269,24 @@ class TimeDateRangeServiceImpl extends WidgetService {
if (!values || values.length === 0) {
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 (values.length !== 2) {
return null
}
let start = values[0]
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]
return results
} else {
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)
}

View File

@ -5,7 +5,7 @@
<el-form-item :label="$t('dynamic_time.set_default')">
<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="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-form-item>
@ -136,7 +136,8 @@
<el-form-item v-if="element.options.attrs.default.isDynamic" :label="$t('dynamic_time.preview')">
<el-date-picker
v-model="dval"
:type="element.options.attrs.type"
:type="componentType"
:format="labelFormat"
disabled
class="relative-time"
placeholder=""
@ -177,6 +178,27 @@ export default {
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() {
this.setDval()
},