项目全局使用formatDate方法移除parseTime方法

This commit is contained in:
puhui999 2023-04-04 11:19:58 +08:00
parent 933c710f36
commit dc1393411c
10 changed files with 26 additions and 125 deletions

View File

@ -280,7 +280,7 @@ const elementHover = (element) => {
if (element.value.type === 'bpmn:StartEvent' && processInstance.value) { if (element.value.type === 'bpmn:StartEvent' && processInstance.value) {
html = `<p>发起人:${processInstance.value.startUser.nickname}</p> html = `<p>发起人:${processInstance.value.startUser.nickname}</p>
<p>部门${processInstance.value.startUser.deptName}</p> <p>部门${processInstance.value.startUser.deptName}</p>
<p>创建时间${parseTime(processInstance.value.createTime)}` <p>创建时间${formatDate(processInstance.value.createTime)}`
} else if (element.value.type === 'bpmn:UserTask') { } else if (element.value.type === 'bpmn:UserTask') {
// debugger // debugger
let task = taskList.value.find((m) => m.id === activity.taskId) // taskId let task = taskList.value.find((m) => m.id === activity.taskId) // taskId
@ -297,26 +297,26 @@ const elementHover = (element) => {
html = `<p>审批人:${task.assigneeUser.nickname}</p> html = `<p>审批人:${task.assigneeUser.nickname}</p>
<p>部门${task.assigneeUser.deptName}</p> <p>部门${task.assigneeUser.deptName}</p>
<p>结果${dataResult}</p> <p>结果${dataResult}</p>
<p>创建时间${parseTime(task.createTime)}</p>` <p>创建时间${formatDate(task.createTime)}</p>`
// html = `<p>${task.assigneeUser.nickname}</p> // html = `<p>${task.assigneeUser.nickname}</p>
// <p>${task.assigneeUser.deptName}</p> // <p>${task.assigneeUser.deptName}</p>
// <p>${getIntDictOptions( // <p>${getIntDictOptions(
// DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT, // DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT,
// task.result // task.result
// )}</p> // )}</p>
// <p>${parseTime(task.createTime)}</p>` // <p>${formatDate(task.createTime)}</p>`
if (task.endTime) { if (task.endTime) {
html += `<p>结束时间:${parseTime(task.endTime)}</p>` html += `<p>结束时间:${formatDate(task.endTime)}</p>`
} }
if (task.reason) { if (task.reason) {
html += `<p>审批建议:${task.reason}</p>` html += `<p>审批建议:${task.reason}</p>`
} }
} else if (element.value.type === 'bpmn:ServiceTask' && processInstance.value) { } else if (element.value.type === 'bpmn:ServiceTask' && processInstance.value) {
if (activity.startTime > 0) { if (activity.startTime > 0) {
html = `<p>创建时间:${parseTime(activity.startTime)}</p>` html = `<p>创建时间:${formatDate(activity.startTime)}</p>`
} }
if (activity.endTime > 0) { if (activity.endTime > 0) {
html += `<p>结束时间:${parseTime(activity.endTime)}</p>` html += `<p>结束时间:${formatDate(activity.endTime)}</p>`
} }
console.log(html) console.log(html)
} else if (element.value.type === 'bpmn:EndEvent' && processInstance.value) { } else if (element.value.type === 'bpmn:EndEvent' && processInstance.value) {
@ -333,7 +333,7 @@ const elementHover = (element) => {
// processInstance.value.result // processInstance.value.result
// )}</p>` // )}</p>`
if (processInstance.value.endTime) { if (processInstance.value.endTime) {
html += `<p>结束时间:${parseTime(processInstance.value.endTime)}</p>` html += `<p>结束时间:${formatDate(processInstance.value.endTime)}</p>`
} }
} }
console.log(html, 'html111111111111111') console.log(html, 'html111111111111111')
@ -348,50 +348,6 @@ const elementOut = (element) => {
toRaw(overlays.value).remove({ element }) toRaw(overlays.value).remove({ element })
elementOverlayIds.value[element.id] = null elementOverlayIds.value[element.id] = null
} }
const parseTime = (time) => {
if (!time) {
return null
}
const format = '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
time = parseInt(time)
} else if (typeof time === 'string') {
time = time
.replace(new RegExp(/-/gm), '/')
.replace('T', ' ')
.replace(new RegExp(/\.[\d]{3}/gm), '')
}
if (typeof time === 'number' && time.toString().length === 10) {
time = time * 1000
}
date = new Date(time)
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') {
return ['日', '一', '二', '三', '四', '五', '六'][value]
}
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return time_str
}
onMounted(() => { onMounted(() => {
xml.value = props.value xml.value = props.value

View File

@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { parseTime } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import * as NotifyMessageApi from '@/api/system/notify/message' import * as NotifyMessageApi from '@/api/system/notify/message'
const { push } = useRouter() const { push } = useRouter()
@ -57,7 +57,7 @@ onMounted(() => {
{{ item.templateNickname }}{{ item.templateContent }} {{ item.templateNickname }}{{ item.templateContent }}
</span> </span>
<span class="message-date"> <span class="message-date">
{{ parseTime(item.createTime) }} {{ formatDate(item.createTime) }}
</span> </span>
</div> </div>
</div> </div>

View File

@ -23,7 +23,6 @@ declare module '@vue/runtime-core' {
DictTag: typeof import('./../components/DictTag/src/DictTag.vue')['default'] DictTag: typeof import('./../components/DictTag/src/DictTag.vue')['default']
Echart: typeof import('./../components/Echart/src/Echart.vue')['default'] Echart: typeof import('./../components/Echart/src/Echart.vue')['default']
Editor: typeof import('./../components/Editor/src/Editor.vue')['default'] Editor: typeof import('./../components/Editor/src/Editor.vue')['default']
ElAutoResizer: typeof import('element-plus/es')['ElAutoResizer']
ElBadge: typeof import('element-plus/es')['ElBadge'] ElBadge: typeof import('element-plus/es')['ElBadge']
ElButton: typeof import('element-plus/es')['ElButton'] ElButton: typeof import('element-plus/es')['ElButton']
ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
@ -53,7 +52,6 @@ declare module '@vue/runtime-core' {
ElForm: typeof import('element-plus/es')['ElForm'] ElForm: typeof import('element-plus/es')['ElForm']
ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElFormItem: typeof import('element-plus/es')['ElFormItem']
ElIcon: typeof import('element-plus/es')['ElIcon'] ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage']
ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer']
ElInput: typeof import('element-plus/es')['ElInput'] ElInput: typeof import('element-plus/es')['ElInput']
ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
@ -62,7 +60,6 @@ declare module '@vue/runtime-core' {
ElPagination: typeof import('element-plus/es')['ElPagination'] ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover'] ElPopover: typeof import('element-plus/es')['ElPopover']
ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadio: typeof import('element-plus/es')['ElRadio']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow'] ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
@ -71,14 +68,10 @@ declare module '@vue/runtime-core' {
ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTable: typeof import('element-plus/es')['ElTable'] ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
ElTableV2: typeof import('element-plus/es')['ElTableV2']
ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs'] ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag'] ElTag: typeof import('element-plus/es')['ElTag']
ElTimeline: typeof import('element-plus/es')['ElTimeline']
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTransfer: typeof import('element-plus/es')['ElTransfer']
ElTree: typeof import('element-plus/es')['ElTree'] ElTree: typeof import('element-plus/es')['ElTree']
ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
ElUpload: typeof import('element-plus/es')['ElUpload'] ElUpload: typeof import('element-plus/es')['ElUpload']

View File

@ -23,53 +23,6 @@ export function formatDate(date: Date, format?: string): string {
return dayjs(date).format(format) return dayjs(date).format(format)
} }
// TODO 芋艿:稍后去掉
// 日期格式化
export function parseTime(time: any, pattern?: string) {
if (arguments.length === 0 || !time) {
return null
}
const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
time = parseInt(time)
} else if (typeof time === 'string') {
time = time
.replace(new RegExp(/-/gm), '/')
.replace('T', ' ')
.replace(new RegExp(/\.\d{3}/gm), '')
}
if (typeof time === 'number' && time.toString().length === 10) {
time = time * 1000
}
date = new Date(time)
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
let value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') {
return ['日', '一', '二', '三', '四', '五', '六'][value]
}
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return time_str
}
/** /**
* *
* @param dateTime * @param dateTime
@ -87,8 +40,7 @@ export function getWeek(dateTime: Date): number {
if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1 if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1
firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay) firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay)
const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000) const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000)
const result = Math.ceil(d / 7) return Math.ceil(d / 7)
return result
} }
/** /**

View File

@ -34,13 +34,13 @@
</li> </li>
<li class="list-group-item"> <li class="list-group-item">
<Icon icon="ep:calendar" class="mr-5px" />{{ t('profile.user.createTime') }} <Icon icon="ep:calendar" class="mr-5px" />{{ t('profile.user.createTime') }}
<div class="pull-right">{{ parseTime(userInfo?.createTime) }}</div> <div class="pull-right">{{ formatDate(userInfo?.createTime) }}</div>
</li> </li>
</ul> </ul>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { parseTime } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import UserAvatar from './UserAvatar.vue' import UserAvatar from './UserAvatar.vue'
import { getUserProfileApi, ProfileVO } from '@/api/system/user/profile' import { getUserProfileApi, ProfileVO } from '@/api/system/user/profile'

View File

@ -20,13 +20,13 @@
</label> </label>
<label style="font-weight: normal" v-if="item.createTime">创建时间</label> <label style="font-weight: normal" v-if="item.createTime">创建时间</label>
<label style="color: #8a909c; font-weight: normal"> <label style="color: #8a909c; font-weight: normal">
{{ parseTime(item?.createTime) }} {{ formatDate(item?.createTime) }}
</label> </label>
<label v-if="item.endTime" style="margin-left: 30px; font-weight: normal"> <label v-if="item.endTime" style="margin-left: 30px; font-weight: normal">
审批时间 审批时间
</label> </label>
<label v-if="item.endTime" style="color: #8a909c; font-weight: normal"> <label v-if="item.endTime" style="color: #8a909c; font-weight: normal">
{{ parseTime(item?.endTime) }} {{ formatDate(item?.endTime) }}
</label> </label>
<label v-if="item.durationInMillis" style="margin-left: 30px; font-weight: normal"> <label v-if="item.durationInMillis" style="margin-left: 30px; font-weight: normal">
耗时 耗时
@ -45,7 +45,7 @@
</el-card> </el-card>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { parseTime, formatPast2 } from '@/utils/formatTime' import { formatDate, formatPast2 } from '@/utils/formatTime'
import { propTypes } from '@/utils/propTypes' import { propTypes } from '@/utils/propTypes'
defineProps({ defineProps({

View File

@ -44,7 +44,7 @@
<li v-for="item in getList" class="mt-2" :key="item.time"> <li v-for="item in getList" class="mt-2" :key="item.time">
<div class="flex items-center"> <div class="flex items-center">
<span class="mr-2 text-primary font-medium">收到消息:</span> <span class="mr-2 text-primary font-medium">收到消息:</span>
<span>{{ parseTime(item.time) }}</span> <span>{{ formatDate(item.time) }}</span>
</div> </div>
<div> <div>
{{ item.res }} {{ item.res }}
@ -56,7 +56,7 @@
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { parseTime } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import { useUserStore } from '@/store/modules/user' import { useUserStore } from '@/store/modules/user'
import { useWebSocket } from '@vueuse/core' import { useWebSocket } from '@vueuse/core'

View File

@ -41,7 +41,7 @@
</el-table-column> </el-table-column>
<el-table-column label="上传时间" align="center" prop="createTime" width="180"> <el-table-column label="上传时间" align="center" prop="createTime" width="180">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ formatDate(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -80,7 +80,7 @@
</el-table-column> </el-table-column>
<el-table-column label="上传时间" align="center" prop="createTime" width="180"> <el-table-column label="上传时间" align="center" prop="createTime" width="180">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.createTime) }}</span> <span>{{ formatDate(scope.row.createTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -136,7 +136,7 @@ import WxVideoPlayer from '@/views/mp/components/wx-video-play/main.vue'
import { getMaterialPage } from '@/api/mp/material' import { getMaterialPage } from '@/api/mp/material'
import { getFreePublishPage } from '@/api/mp/freePublish' import { getFreePublishPage } from '@/api/mp/freePublish'
import { getDraftPage } from '@/api/mp/draft' import { getDraftPage } from '@/api/mp/draft'
import { dateFormatter, parseTime } from '@/utils/formatTime' import { dateFormatter, formatDate } from '@/utils/formatTime'
import { defineComponent, PropType } from 'vue' import { defineComponent, PropType } from 'vue'
export default defineComponent({ export default defineComponent({
@ -238,7 +238,7 @@ export default defineComponent({
selectMaterialFun, selectMaterialFun,
getMaterialPageFun, getMaterialPageFun,
getPage, getPage,
parseTime, formatDate,
newsTypeRef, newsTypeRef,
queryParams, queryParams,
objDataRef, objDataRef,

View File

@ -32,7 +32,7 @@
</div> </div>
<div class="avue-comment__main"> <div class="avue-comment__main">
<div class="avue-comment__header"> <div class="avue-comment__header">
<div class="avue-comment__create_time">{{ parseTime(item.createTime) }}</div> <div class="avue-comment__create_time">{{ formatDate(item.createTime) }}</div>
</div> </div>
<div <div
class="avue-comment__body" class="avue-comment__body"
@ -145,7 +145,7 @@ import { defineComponent } from 'vue'
const message = useMessage() // const message = useMessage() //
import profile from '@/assets/imgs/profile.jpg' import profile from '@/assets/imgs/profile.jpg'
import wechat from '@/assets/imgs/wechat.png' import wechat from '@/assets/imgs/wechat.png'
import { parseTime } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
export default defineComponent({ export default defineComponent({
components: { components: {
@ -286,7 +286,7 @@ export default defineComponent({
return { return {
sendMsg, sendMsg,
loadingMore, loadingMore,
parseTime, formatDate,
scrollToBottom, scrollToBottom,
objData, objData,
mp, mp,

View File

@ -5,7 +5,7 @@
{{ detailData.templateNickname }} {{ detailData.templateNickname }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="发送时间"> <el-descriptions-item label="发送时间">
{{ formatDate(detailData.createTime, 'YYYY-MM-DD HH:mm:ss') }} {{ formatDate(detailData.createTime) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="消息类型"> <el-descriptions-item label="消息类型">
<dict-tag :type="DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE" :value="detailData.templateType" /> <dict-tag :type="DICT_TYPE.SYSTEM_NOTIFY_TEMPLATE_TYPE" :value="detailData.templateType" />
@ -14,7 +14,7 @@
<dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="detailData.readStatus" /> <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="detailData.readStatus" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="阅读时间" v-if="detailData.readStatus"> <el-descriptions-item label="阅读时间" v-if="detailData.readStatus">
{{ formatDate(detailData.readTime, 'YYYY-MM-DD HH:mm:ss') }} {{ formatDate(detailData.readTime) }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="内容"> <el-descriptions-item label="内容">
{{ detailData.templateContent }} {{ detailData.templateContent }}