diff --git a/core/backend/src/main/java/io/dataease/service/datafill/CommentWriteHandler.java b/core/backend/src/main/java/io/dataease/service/datafill/CommentWriteHandler.java index 3d8d35ea4f..cdeff01b34 100644 --- a/core/backend/src/main/java/io/dataease/service/datafill/CommentWriteHandler.java +++ b/core/backend/src/main/java/io/dataease/service/datafill/CommentWriteHandler.java @@ -42,7 +42,29 @@ public class CommentWriteHandler implements RowWriteHandler { StringBuilder options = new StringBuilder(); switch (field.getSettings().getMapping().getType()) { case datetime: - example = "\n(日期格式: yyyy/MM/dd" + (field.getSettings().isEnableTime() ? " HH:mm:ss" : "") + ")"; + String dateFormat = "yyyy/MM/dd"; + switch (field.getSettings().getDateType()) { + case "year": + dateFormat = "yyyy"; + break; + case "month": + case "monthrange": + dateFormat = "yyyy/MM"; + break; + case "datetime": + case "datetimerange": + dateFormat = "yyyy/MM/dd HH:mm:ss"; + break; + case "date": + case "daterange": + dateFormat = "yyyy/MM/dd"; + break; + default: + if (field.getSettings().isEnableTime()) { //兼容旧版 + dateFormat = "yyyy/MM/dd HH:mm:ss"; + } + } + example = "\n(日期格式: " + dateFormat + ")"; break; case number: example = "\n(整形数字)"; diff --git a/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java b/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java index c0c532d9f0..cf449ee748 100644 --- a/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java +++ b/core/backend/src/main/java/io/dataease/service/datafill/DataFillDataService.java @@ -934,16 +934,53 @@ public class DataFillDataService { return null; } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //默认会拿到这种格式的 - if (field.getSettings().isEnableTime()) { - sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + switch (field.getSettings().getDateType()) { + case "year": + sdf = new SimpleDateFormat("yyyy"); + break; + case "month": + case "monthrange": + sdf = new SimpleDateFormat("yyyy-MM"); + break; + case "datetime": + case "datetimerange": + sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + break; + case "date": + case "daterange": + sdf = new SimpleDateFormat("yyyy-MM-dd"); + break; + default: + if (field.getSettings().isEnableTime()) { //兼容旧版 + sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + } } + Date date = null; try { date = sdf.parse(excelRowData); } catch (ParseException e) { sdf = new SimpleDateFormat("yyyy/MM/dd"); //以防万一也加上这种 - if (field.getSettings().isEnableTime()) { - sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + switch (field.getSettings().getDateType()) { + case "year": + sdf = new SimpleDateFormat("yyyy"); + break; + case "month": + case "monthrange": + sdf = new SimpleDateFormat("yyyy/MM"); + break; + case "datetime": + case "datetimerange": + sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + break; + case "date": + case "daterange": + sdf = new SimpleDateFormat("yyyy/MM/dd"); + break; + default: + if (field.getSettings().isEnableTime()) { //兼容旧版 + sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + } } date = sdf.parse(excelRowData); } diff --git a/core/frontend/src/lang/en.js b/core/frontend/src/lang/en.js index f99895c847..bc6ba1d5bb 100644 --- a/core/frontend/src/lang/en.js +++ b/core/frontend/src/lang/en.js @@ -648,6 +648,7 @@ export default { start_hint_word: 'Start Hint Word', end_hint_word: 'End Hint Word', input_type: 'Input Type', + date_type: 'Date Format', check: 'Check', set_required: 'Set Required', set_unique: 'Set Unique', diff --git a/core/frontend/src/lang/tw.js b/core/frontend/src/lang/tw.js index e3d2e0dfd3..5e7ba6a5b4 100644 --- a/core/frontend/src/lang/tw.js +++ b/core/frontend/src/lang/tw.js @@ -648,6 +648,7 @@ export default { start_hint_word: '開始提示詞', end_hint_word: '結束提示詞', input_type: '格式類型', + date_type: '展示粒度', check: '校驗', set_required: '設置為必填項', set_unique: '不允許重復值', diff --git a/core/frontend/src/lang/zh.js b/core/frontend/src/lang/zh.js index 5575ebdbc5..5e51e789ea 100644 --- a/core/frontend/src/lang/zh.js +++ b/core/frontend/src/lang/zh.js @@ -646,6 +646,7 @@ export default { start_hint_word: '开始提示词', end_hint_word: '结束提示词', input_type: '格式类型', + date_type: '展示粒度', check: '校验', set_required: '设置为必填项', set_unique: '不允许重复值', diff --git a/core/frontend/src/views/dataFilling/form/EditFormData.vue b/core/frontend/src/views/dataFilling/form/EditFormData.vue index 209e401432..90e8409269 100644 --- a/core/frontend/src/views/dataFilling/form/EditFormData.vue +++ b/core/frontend/src/views/dataFilling/form/EditFormData.vue @@ -91,6 +91,12 @@ export default { forEach(this.forms, v => { if (!v.removed) { const f = cloneDeep(v) + if (f.type === 'date' && f.settings.dateType === undefined) { // 兼容旧的 + f.settings.dateType = f.settings.enableTime ? 'datetime' : 'date' + } + if (f.type === 'dateRange' && f.settings.dateType === undefined) { // 兼容旧的 + f.settings.dateType = f.settings.enableTime ? 'datetimerange' : 'daterange' + } if (f.type === 'dateRange') { const _start = this.data[f.settings.mapping.columnName1] const _end = this.data[f.settings.mapping.columnName2] @@ -349,46 +355,22 @@ export default { - - - {{ formatDate(scope.row.data[c.props], c.enableTime) }} + {{ formatDate(scope.row.data[c.props], c.dateType) }}