feat: 日期格式的支持

This commit is contained in:
taojinlong 2022-11-22 18:55:25 +08:00
parent bbea8ecef8
commit 8dca4400c1
5 changed files with 89 additions and 37 deletions

View File

@ -13,6 +13,7 @@ import io.dataease.commons.exception.DEException;
import io.dataease.controller.request.dataset.DataSetTableRequest; import io.dataease.controller.request.dataset.DataSetTableRequest;
import io.dataease.controller.request.dataset.MultFieldValuesRequest; import io.dataease.controller.request.dataset.MultFieldValuesRequest;
import io.dataease.controller.response.DatasetTableField4Type; import io.dataease.controller.response.DatasetTableField4Type;
import io.dataease.dto.dataset.DatasetTableFieldDTO;
import io.dataease.i18n.Translator; import io.dataease.i18n.Translator;
import io.dataease.plugins.common.base.domain.DatasetTable; import io.dataease.plugins.common.base.domain.DatasetTable;
import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableField;
@ -106,9 +107,33 @@ public class DataSetTableFieldController {
DatasetTableField datasetTableField = DatasetTableField.builder().build(); DatasetTableField datasetTableField = DatasetTableField.builder().build();
datasetTableField.setTableId(tableId); datasetTableField.setTableId(tableId);
datasetTableField.setGroupType("d"); datasetTableField.setGroupType("d");
List<DatasetTableField> dimensionList = dataSetTableFieldsService.list(datasetTableField); List<DatasetTableFieldDTO> dimensionList = new ArrayList<>();
dataSetTableFieldsService.list(datasetTableField).forEach(o -> {
DatasetTableFieldDTO datasetTableFieldDTO = new DatasetTableFieldDTO();
BeanUtils.copyProperties(o, datasetTableFieldDTO);
List<Object> deTypeCascader = new ArrayList<>();
deTypeCascader.add(datasetTableFieldDTO.getDeType());
if (datasetTableFieldDTO.getDeExtractType() == 0 && datasetTableFieldDTO.getDeType() == 1) {
deTypeCascader.add(datasetTableFieldDTO.getDateFormatType());
}
datasetTableFieldDTO.setDeTypeCascader(deTypeCascader);
dimensionList.add(datasetTableFieldDTO);
});
datasetTableField.setGroupType("q"); datasetTableField.setGroupType("q");
List<DatasetTableField> quotaList = dataSetTableFieldsService.list(datasetTableField); List<DatasetTableFieldDTO> quotaList = new ArrayList<>();
dataSetTableFieldsService.list(datasetTableField).forEach(o -> {
DatasetTableFieldDTO datasetTableFieldDTO = new DatasetTableFieldDTO();
BeanUtils.copyProperties(o, datasetTableFieldDTO);
List<Object> deTypeCascader = new ArrayList<>();
deTypeCascader.add(datasetTableFieldDTO.getDeType());
if (datasetTableFieldDTO.getDeExtractType() == 0 && datasetTableFieldDTO.getDeType() == 1) {
deTypeCascader.add(datasetTableFieldDTO.getDateFormatType());
}
datasetTableFieldDTO.setDeTypeCascader(deTypeCascader);
quotaList.add(datasetTableFieldDTO);
});
DatasetTableField4Type datasetTableField4Type = new DatasetTableField4Type(); DatasetTableField4Type datasetTableField4Type = new DatasetTableField4Type();
datasetTableField4Type.setDimensionList(dimensionList); datasetTableField4Type.setDimensionList(dimensionList);

View File

@ -1,6 +1,6 @@
package io.dataease.controller.response; package io.dataease.controller.response;
import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.dto.dataset.DatasetTableFieldDTO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -9,7 +9,7 @@ import java.util.List;
@Data @Data
public class DatasetTableField4Type { public class DatasetTableField4Type {
@ApiModelProperty("维度") @ApiModelProperty("维度")
List<DatasetTableField> dimensionList; List<DatasetTableFieldDTO> dimensionList;
@ApiModelProperty("指标") @ApiModelProperty("指标")
List<DatasetTableField> quotaList; List<DatasetTableFieldDTO> quotaList;
} }

View File

@ -3,7 +3,10 @@ package io.dataease.dto.dataset;
import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableField;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class DatasetTableFieldDTO extends DatasetTableField { public class DatasetTableFieldDTO extends DatasetTableField {
private String jsonPath; private String jsonPath;
private List<Object> deTypeCascader;
} }

View File

@ -39,3 +39,6 @@ WHERE (`component` = 'msg/setting');
ALTER TABLE `panel_group` ALTER TABLE `panel_group`
ADD COLUMN `panel_sort` bigint(13) NULL COMMENT '排序' AFTER `watermark_open`; ADD COLUMN `panel_sort` bigint(13) NULL COMMENT '排序' AFTER `watermark_open`;
ALTER TABLE `dataset_table_field`
ADD COLUMN `date_format_type` VARCHAR(255) NULL COMMENT '时间格式类型' AFTER `date_format`;

View File

@ -136,24 +136,24 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
property="deType" property="deTypeCascader"
:label="$t('dataset.field_type')" :label="$t('dataset.field_type')"
min-width="200" min-width="200"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-cascader <el-cascader
v-model="scope.row.deType" v-model="scope.row.deTypeCascader"
size="small" size="small"
popper-class="select-date-resolution-format" popper-class="select-date-resolution-format"
:disabled="!hasDataPermission('manage', param.privileges)" :disabled="!hasDataPermission('manage', param.privileges)"
class="select-type" class="select-type"
:options="fields" :options="getFields(scope.row)"
@visible-change="getPopPosition" @visible-change="getPopPosition"
@change="saveEdit(scope.row)" @change="saveEdit(scope.row)"
> >
<template slot-scope="{ node, data }"> <template slot-scope="{ node, data }">
<span <span
v-if="node.level === 2 && node.label === '%Y-%m-%d'" v-if="node.level === 2"
class="format-title" class="format-title"
:style="popPosition" :style="popPosition"
>{{ $t('chart.date_format') }}</span> >{{ $t('chart.date_format') }}</span>
@ -214,16 +214,16 @@
/> />
</span> </span>
</span> </span>
<!-- <el-input--> <el-input
<!-- v-if="scope.row.deType === 1"--> v-if="scope.row.deType === 1 && scope.row.deExtractType === 0"
<!-- v-model="scope.row.dateFormat"--> v-model="scope.row.dateFormat"
<!-- :placeholder="$t('dataset.date_format')"--> :placeholder="$t('dataset.date_format')"
<!-- size="small"--> size="small"
<!-- class="input-type"--> class="input-type"
<!-- :disabled="!hasDataPermission('manage', param.privileges)"--> :disabled="!hasDataPermission('manage', param.privileges)"
<!-- @blur="saveEdit(scope.row)"--> @blur="saveEdit(scope.row)"
<!-- @keyup.enter.native="saveEdit(scope.row)"--> @keyup.enter.native="saveEdit(scope.row)"
<!-- />--> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -476,24 +476,24 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
property="deType" property="deTypeCascader"
:label="$t('dataset.field_type')" :label="$t('dataset.field_type')"
min-width="200" min-width="200"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-cascader <el-cascader
v-model="scope.row.deType" v-model="scope.row.deTypeCascader"
size="small" size="small"
popper-class="select-date-resolution-format" popper-class="select-date-resolution-format"
:disabled="!hasDataPermission('manage', param.privileges)" :disabled="!hasDataPermission('manage', param.privileges)"
class="select-type" class="select-type"
:options="fields" :options="getFields(scope.row)"
@visible-change="getPopPosition" @visible-change="getPopPosition"
@change="saveEdit(scope.row)" @change="saveEdit(scope.row)"
> >
<template slot-scope="{ node, data }"> <template slot-scope="{ node, data }">
<span <span
v-if="node.level === 2 && node.label === '%Y-%m-%d'" v-if="node.level === 2"
class="format-title" class="format-title"
:style="popPosition" :style="popPosition"
>{{ $t('chart.date_format') }}</span> >{{ $t('chart.date_format') }}</span>
@ -554,16 +554,16 @@
/> />
</span> </span>
</span> </span>
<!-- <el-input--> <el-input
<!-- v-if="scope.row.deType === 1"--> v-if="scope.row.deType === 1 && scope.row.deExtractType === 0"
<!-- v-model="scope.row.dateFormat"--> v-model="scope.row.dateFormat"
<!-- :placeholder="$t('dataset.date_format')"--> :placeholder="$t('dataset.date_format')"
<!-- size="small"--> size="small"
<!-- class="input-type"--> class="input-type"
<!-- :disabled="!hasDataPermission('manage', param.privileges)"--> :disabled="!hasDataPermission('manage', param.privileges)"
<!-- @blur="saveEdit(scope.row)"--> @blur="saveEdit(scope.row)"
<!-- @keyup.enter.native="saveEdit(scope.row)"--> @keyup.enter.native="saveEdit(scope.row)"
<!-- />--> />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -771,7 +771,7 @@ export default {
quotaListData: [] quotaListData: []
}, },
popPosition: {}, popPosition: {},
fields: [], dateformats: [],
fieldActiveNames: ['d', 'q'], fieldActiveNames: ['d', 'q'],
searchField: '', searchField: '',
editCalcField: false, editCalcField: false,
@ -835,24 +835,45 @@ export default {
dateformats(this.param.id).then((response) => { dateformats(this.param.id).then((response) => {
const children = (response?.data || []).map(ele => ({ label: ele.dateformat, value: ele.dateformat })) const children = (response?.data || []).map(ele => ({ label: ele.dateformat, value: ele.dateformat }))
children.push({ label: '自定义', value: 'custom' }) children.push({ label: '自定义', value: 'custom' })
this.fields = [ this.dateformats = children
})
},
getFields(item) {
if(item.deExtractType == 0){
const children = this.dateformats
return [
{ label: this.$t('dataset.text'), value: 0 }, { label: this.$t('dataset.text'), value: 0 },
{ label: this.$t('dataset.time'), value: 1, children }, { label: this.$t('dataset.time'), value: 1, children },
{ label: this.$t('dataset.value'), value: 2 }, { label: this.$t('dataset.value'), value: 2 },
{ {
label: label:
this.$t('dataset.value') + '(' + this.$t('dataset.float') + ')', this.$t('dataset.value') + '(' + this.$t('dataset.float') + ')',
value: 3 value: 3
}, },
{ label: this.$t('dataset.location'), value: 5 } { label: this.$t('dataset.location'), value: 5 }
] ]
}) }else {
return [
{ label: this.$t('dataset.text'), value: 0 },
{ label: this.$t('dataset.time'), value: 1 },
{ label: this.$t('dataset.value'), value: 2 },
{ label: this.$t('dataset.value') + '(' + this.$t('dataset.float') + ')', value: 3 },
{ label: this.$t('dataset.location'), value: 5 }
]
}
}, },
saveEdit(item) { saveEdit(item) {
if (item.name && item.name.length > 50) { if (item.name && item.name.length > 50) {
this.$message.error(this.$t('dataset.field_name_less_50')) this.$message.error(this.$t('dataset.field_name_less_50'))
return return
} }
item.deType = item.deTypeCascader[0]
if (item.deTypeCascader.length === 2) { //
item.dateFormatType = item.deTypeCascader[1]
if(item.dateFormatType !== 'custom'){
item.dateFormat = item.dateFormatType
}
}
post('/dataset/field/save', item) post('/dataset/field/save', item)
.then((response) => { .then((response) => {