!78 项目全局使用formatDate方法移除parseTime方法
Merge pull request !78 from puhui999/dev
This commit is contained in:
commit
b79a187534
@ -6,11 +6,13 @@ import progress from 'vite-plugin-progress'
|
|||||||
import EslintPlugin from 'vite-plugin-eslint'
|
import EslintPlugin from 'vite-plugin-eslint'
|
||||||
import PurgeIcons from 'vite-plugin-purge-icons'
|
import PurgeIcons from 'vite-plugin-purge-icons'
|
||||||
import { ViteEjsPlugin } from 'vite-plugin-ejs'
|
import { ViteEjsPlugin } from 'vite-plugin-ejs'
|
||||||
|
// @ts-ignore
|
||||||
import ElementPlus from 'unplugin-element-plus/vite'
|
import ElementPlus from 'unplugin-element-plus/vite'
|
||||||
import AutoImport from 'unplugin-auto-import/vite'
|
import AutoImport from 'unplugin-auto-import/vite'
|
||||||
import Components from 'unplugin-vue-components/vite'
|
import Components from 'unplugin-vue-components/vite'
|
||||||
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
||||||
import viteCompression from 'vite-plugin-compression'
|
import viteCompression from 'vite-plugin-compression'
|
||||||
|
import topLevelAwait from 'vite-plugin-top-level-await'
|
||||||
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
|
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
|
||||||
import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'
|
import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'
|
||||||
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
|
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
|
||||||
@ -95,6 +97,12 @@ export function createVitePlugins() {
|
|||||||
ext: '.gz', // 生成的压缩包后缀
|
ext: '.gz', // 生成的压缩包后缀
|
||||||
deleteOriginFile: false //压缩后是否删除源文件
|
deleteOriginFile: false //压缩后是否删除源文件
|
||||||
}),
|
}),
|
||||||
ViteEjsPlugin()
|
ViteEjsPlugin(),
|
||||||
|
topLevelAwait({
|
||||||
|
// The export name of top-level await promise for each chunk module
|
||||||
|
promiseExportName: '__tla',
|
||||||
|
// The function to generate import names of top-level await promise in each chunk module
|
||||||
|
promiseImportName: (i) => `__tla_${i}`
|
||||||
|
})
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -122,6 +122,7 @@
|
|||||||
"vite-plugin-progress": "^0.0.6",
|
"vite-plugin-progress": "^0.0.6",
|
||||||
"vite-plugin-purge-icons": "^0.9.2",
|
"vite-plugin-purge-icons": "^0.9.2",
|
||||||
"vite-plugin-svg-icons": "^2.0.1",
|
"vite-plugin-svg-icons": "^2.0.1",
|
||||||
|
"vite-plugin-top-level-await": "^1.3.0",
|
||||||
"vite-plugin-vue-setup-extend": "^0.4.0",
|
"vite-plugin-vue-setup-extend": "^0.4.0",
|
||||||
"vite-plugin-windicss": "^1.8.10",
|
"vite-plugin-windicss": "^1.8.10",
|
||||||
"vue-tsc": "^1.2.0",
|
"vue-tsc": "^1.2.0",
|
||||||
|
@ -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
|
||||||
|
@ -219,11 +219,12 @@ const handleAuthorized = () => {
|
|||||||
if (!isRelogin.show) {
|
if (!isRelogin.show) {
|
||||||
isRelogin.show = true
|
isRelogin.show = true
|
||||||
ElMessageBox.confirm(t('sys.api.timeoutMessage'), t('common.confirmTitle'), {
|
ElMessageBox.confirm(t('sys.api.timeoutMessage'), t('common.confirmTitle'), {
|
||||||
|
showCancelButton: false,
|
||||||
|
closeOnClickModal: false,
|
||||||
|
showClose: false,
|
||||||
confirmButtonText: t('login.relogin'),
|
confirmButtonText: t('login.relogin'),
|
||||||
cancelButtonText: t('common.cancel'),
|
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
})
|
}).then(() => {
|
||||||
.then(() => {
|
|
||||||
const { wsCache } = useCache()
|
const { wsCache } = useCache()
|
||||||
resetRouter() // 重置静态路由表
|
resetRouter() // 重置静态路由表
|
||||||
wsCache.clear()
|
wsCache.clear()
|
||||||
@ -231,9 +232,6 @@ const handleAuthorized = () => {
|
|||||||
isRelogin.show = false
|
isRelogin.show = false
|
||||||
window.location.href = '/'
|
window.location.href = '/'
|
||||||
})
|
})
|
||||||
.catch(() => {
|
|
||||||
isRelogin.show = false
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
return Promise.reject(t('sys.api.timeoutMessage'))
|
return Promise.reject(t('sys.api.timeoutMessage'))
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
|
@ -25,6 +25,7 @@ VXETable.renderer.add('XPreview', {
|
|||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
|
// @ts-ignore
|
||||||
<ElLink href={row[column.field]} target="_blank">
|
<ElLink href={row[column.field]} target="_blank">
|
||||||
{row[column.field]}
|
{row[column.field]}
|
||||||
</ElLink>
|
</ElLink>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { store } from '../index'
|
import { store } from '../index'
|
||||||
|
// @ts-ignore
|
||||||
import { DictDataVO } from '@/api/system/dict/types'
|
import { DictDataVO } from '@/api/system/dict/types'
|
||||||
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
|
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
|
||||||
const { wsCache } = useCache('sessionStorage')
|
const { wsCache } = useCache('sessionStorage')
|
||||||
|
3
src/types/auto-components.d.ts
vendored
3
src/types/auto-components.d.ts
vendored
@ -24,6 +24,7 @@ declare module '@vue/runtime-core' {
|
|||||||
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']
|
ElAutoResizer: typeof import('element-plus/es')['ElAutoResizer']
|
||||||
|
ElAvatar: typeof import('element-plus/es')['ElAvatar']
|
||||||
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']
|
||||||
@ -68,6 +69,7 @@ declare module '@vue/runtime-core' {
|
|||||||
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
|
||||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||||
ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
|
ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
|
||||||
|
ElSpace: typeof import('element-plus/es')['ElSpace']
|
||||||
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']
|
||||||
@ -78,7 +80,6 @@ declare module '@vue/runtime-core' {
|
|||||||
ElTimeline: typeof import('element-plus/es')['ElTimeline']
|
ElTimeline: typeof import('element-plus/es')['ElTimeline']
|
||||||
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
|
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']
|
||||||
|
@ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -265,6 +265,7 @@ export const handleTree = (data: any[], id?: string, parentId?: string, children
|
|||||||
}
|
}
|
||||||
return tree
|
return tree
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造树型结构数据
|
* 构造树型结构数据
|
||||||
* @param {*} data 数据源
|
* @param {*} data 数据源
|
||||||
@ -273,6 +274,7 @@ export const handleTree = (data: any[], id?: string, parentId?: string, children
|
|||||||
* @param {*} children 孩子节点字段 默认 'children'
|
* @param {*} children 孩子节点字段 默认 'children'
|
||||||
* @param {*} rootId 根Id 默认 0
|
* @param {*} rootId 根Id 默认 0
|
||||||
*/
|
*/
|
||||||
|
// @ts-ignore
|
||||||
export const handleTree2 = (data, id, parentId, children, rootId) => {
|
export const handleTree2 = (data, id, parentId, children, rootId) => {
|
||||||
id = id || 'id'
|
id = id || 'id'
|
||||||
parentId = parentId || 'parentId'
|
parentId = parentId || 'parentId'
|
||||||
|
@ -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'
|
||||||
|
@ -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({
|
||||||
|
@ -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'
|
||||||
|
|
||||||
|
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<Dialog :title="dialogTitle" v-model="dialogVisible" :scroll="true" :width="800" :max-height="500">
|
<Dialog
|
||||||
|
:title="dialogTitle"
|
||||||
|
v-model="dialogVisible"
|
||||||
|
:scroll="true"
|
||||||
|
:width="800"
|
||||||
|
:max-height="500"
|
||||||
|
>
|
||||||
<Form ref="formRef" :schema="allSchemas.formSchema" :rules="rules" v-loading="formLoading" />
|
<Form ref="formRef" :schema="allSchemas.formSchema" :rules="rules" v-loading="formLoading" />
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
||||||
@ -9,7 +15,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import * as MailTemplateApi from '@/api/system/mail/template'
|
import * as MailTemplateApi from '@/api/system/mail/template'
|
||||||
import { rules, allSchemas } from './template.data'
|
import { allSchemas, rules } from './template.data'
|
||||||
|
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
|
@ -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 }}
|
||||||
|
Loading…
Reference in New Issue
Block a user