Commit b7fb4619 authored by cwuyiqing's avatar cwuyiqing
Browse files

fix: fix date type display wrong

parent 7c603777
Showing with 49 additions and 8 deletions
+49 -8
......@@ -3,7 +3,7 @@ import moment from 'moment'
import 'moment/locale/zh-cn'
import { DatePicker } from 'antd'
import locale from 'antd/es/date-picker/locale/zh_CN'
import { formatTimeByType } from '@/utils'
import { formatStoreTimeByType } from '@/utils'
export const IDatePicker: React.FC<{
type?: string
......@@ -35,7 +35,7 @@ export const IDatePicker: React.FC<{
}
// 格式化时间
const formatDate: number | string = formatTimeByType(v, dateFormatType, type)
const formatDate: number | string = formatStoreTimeByType(v, dateFormatType, type)
onChange(formatDate)
}}
/>
......
import React from 'react'
import { Space, Tag, Tooltip, Typography } from 'antd'
import { IConnectRender, IFileRender, ImageRender } from '@/components/Fields'
import { calculateFieldWidth } from '@/utils'
import { calculateFieldWidth, formatDisplayTimeByType } from '@/utils'
import { IObjectRender } from './Object'
import { IMedia } from './Media'
......@@ -87,9 +87,19 @@ export function getFieldRender(field: SchemaField) {
action: any
): React.ReactNode | React.ReactNode[] => <Text>{text}</Text>
case 'Date':
return undefined
case 'DateTime':
return undefined
return (
text: React.ReactNode,
record: any,
index: number,
action: any
): React.ReactNode | React.ReactNode[] => {
const date =
typeof record[name] === 'undefined'
? '-'
: formatDisplayTimeByType(record[name], field.dateFormatType, type)
return <Text>{date}</Text>
}
case 'Image':
return (
text: React.ReactNode,
......
......@@ -19,7 +19,7 @@ import {
import { ContentCtx, SchmeaCtx } from 'typings/store'
import { getFieldDefaultValueInput, getFieldFormItem } from './Field'
import { FieldTypes, SYSTEM_FIELDS } from '@/common'
import { formatTimeByType, isDateType, isResourceType, random } from '@/utils'
import { formatStoreTimeByType, isDateType, isResourceType, random } from '@/utils'
const { TextArea } = Input
const { Text } = Typography
......@@ -203,7 +203,7 @@ export const SchemaFieldEditorModal: React.FC<{
// 格式化默认时间,与 dateFormatType 保持一致
if (v.dateFormatType && v.defaultValue) {
v.defaultValue = formatTimeByType(v.defaultValue, v.dateFormatType)
v.defaultValue = formatStoreTimeByType(v.defaultValue, v.dateFormatType)
}
createField(v)
......
......@@ -5,7 +5,13 @@ export const getFullDate = (v = Date.now()) => moment(v).format('YYYY-MM-DD')
export const getDateValue = (v?: string | number) => moment(v).valueOf()
export const formatTimeByType = (
/**
* 格式化保存到数据库中的时间
* @param v
* @param dateType
* @param valueType
*/
export const formatStoreTimeByType = (
v: string,
dateType?: 'timestamp-ms' | 'timestamp-s' | 'date' | 'string',
valueType?: string
......@@ -33,3 +39,28 @@ export const formatTimeByType = (
return formatDate
}
/**
* 格式化展示的时间
* @param v
* @param dateType
* @param valueType
*/
export const formatDisplayTimeByType = (
v: string | number,
dateType?: 'timestamp-ms' | 'timestamp-s' | 'date' | 'string',
valueType?: string
) => {
const format = valueType === 'Date' ? 'YYYY-MM-DD' : 'YYYY-MM-DD HH:mm:ss'
// 字符串
if (dateType === 'string') {
return v
}
if (dateType === 'timestamp-s') {
return moment(Number(v) * 1000).format(format)
}
return moment(v).format(format)
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment