commit
						b79a187534
					
				| 
						 | 
				
			
			@ -6,11 +6,13 @@ import progress from 'vite-plugin-progress'
 | 
			
		|||
import EslintPlugin from 'vite-plugin-eslint'
 | 
			
		||||
import PurgeIcons from 'vite-plugin-purge-icons'
 | 
			
		||||
import { ViteEjsPlugin } from 'vite-plugin-ejs'
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
import ElementPlus from 'unplugin-element-plus/vite'
 | 
			
		||||
import AutoImport from 'unplugin-auto-import/vite'
 | 
			
		||||
import Components from 'unplugin-vue-components/vite'
 | 
			
		||||
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
 | 
			
		||||
import viteCompression from 'vite-plugin-compression'
 | 
			
		||||
import topLevelAwait from 'vite-plugin-top-level-await'
 | 
			
		||||
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
 | 
			
		||||
import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'
 | 
			
		||||
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
 | 
			
		||||
| 
						 | 
				
			
			@ -95,6 +97,12 @@ export function createVitePlugins() {
 | 
			
		|||
      ext: '.gz', // 生成的压缩包后缀
 | 
			
		||||
      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-purge-icons": "^0.9.2",
 | 
			
		||||
    "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-windicss": "^1.8.10",
 | 
			
		||||
    "vue-tsc": "^1.2.0",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -280,7 +280,7 @@ const elementHover = (element) => {
 | 
			
		|||
    if (element.value.type === 'bpmn:StartEvent' && processInstance.value) {
 | 
			
		||||
      html = `<p>发起人:${processInstance.value.startUser.nickname}</p>
 | 
			
		||||
                  <p>部门:${processInstance.value.startUser.deptName}</p>
 | 
			
		||||
                  <p>创建时间:${parseTime(processInstance.value.createTime)}`
 | 
			
		||||
                  <p>创建时间:${formatDate(processInstance.value.createTime)}`
 | 
			
		||||
    } else if (element.value.type === 'bpmn:UserTask') {
 | 
			
		||||
      // debugger
 | 
			
		||||
      let task = taskList.value.find((m) => m.id === activity.taskId) // 找到活动对应的 taskId
 | 
			
		||||
| 
						 | 
				
			
			@ -297,26 +297,26 @@ const elementHover = (element) => {
 | 
			
		|||
      html = `<p>审批人:${task.assigneeUser.nickname}</p>
 | 
			
		||||
                  <p>部门:${task.assigneeUser.deptName}</p>
 | 
			
		||||
                  <p>结果:${dataResult}</p>
 | 
			
		||||
                  <p>创建时间:${parseTime(task.createTime)}</p>`
 | 
			
		||||
                  <p>创建时间:${formatDate(task.createTime)}</p>`
 | 
			
		||||
      // html = `<p>审批人:${task.assigneeUser.nickname}</p>
 | 
			
		||||
      //             <p>部门:${task.assigneeUser.deptName}</p>
 | 
			
		||||
      //             <p>结果:${getIntDictOptions(
 | 
			
		||||
      //               DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT,
 | 
			
		||||
      //               task.result
 | 
			
		||||
      //             )}</p>
 | 
			
		||||
      //             <p>创建时间:${parseTime(task.createTime)}</p>`
 | 
			
		||||
      //             <p>创建时间:${formatDate(task.createTime)}</p>`
 | 
			
		||||
      if (task.endTime) {
 | 
			
		||||
        html += `<p>结束时间:${parseTime(task.endTime)}</p>`
 | 
			
		||||
        html += `<p>结束时间:${formatDate(task.endTime)}</p>`
 | 
			
		||||
      }
 | 
			
		||||
      if (task.reason) {
 | 
			
		||||
        html += `<p>审批建议:${task.reason}</p>`
 | 
			
		||||
      }
 | 
			
		||||
    } else if (element.value.type === 'bpmn:ServiceTask' && processInstance.value) {
 | 
			
		||||
      if (activity.startTime > 0) {
 | 
			
		||||
        html = `<p>创建时间:${parseTime(activity.startTime)}</p>`
 | 
			
		||||
        html = `<p>创建时间:${formatDate(activity.startTime)}</p>`
 | 
			
		||||
      }
 | 
			
		||||
      if (activity.endTime > 0) {
 | 
			
		||||
        html += `<p>结束时间:${parseTime(activity.endTime)}</p>`
 | 
			
		||||
        html += `<p>结束时间:${formatDate(activity.endTime)}</p>`
 | 
			
		||||
      }
 | 
			
		||||
      console.log(html)
 | 
			
		||||
    } else if (element.value.type === 'bpmn:EndEvent' && processInstance.value) {
 | 
			
		||||
| 
						 | 
				
			
			@ -333,7 +333,7 @@ const elementHover = (element) => {
 | 
			
		|||
      //   processInstance.value.result
 | 
			
		||||
      // )}</p>`
 | 
			
		||||
      if (processInstance.value.endTime) {
 | 
			
		||||
        html += `<p>结束时间:${parseTime(processInstance.value.endTime)}</p>`
 | 
			
		||||
        html += `<p>结束时间:${formatDate(processInstance.value.endTime)}</p>`
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    console.log(html, 'html111111111111111')
 | 
			
		||||
| 
						 | 
				
			
			@ -348,50 +348,6 @@ const elementOut = (element) => {
 | 
			
		|||
  toRaw(overlays.value).remove({ element })
 | 
			
		||||
  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(() => {
 | 
			
		||||
  xml.value = props.value
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -219,21 +219,19 @@ const handleAuthorized = () => {
 | 
			
		|||
  if (!isRelogin.show) {
 | 
			
		||||
    isRelogin.show = true
 | 
			
		||||
    ElMessageBox.confirm(t('sys.api.timeoutMessage'), t('common.confirmTitle'), {
 | 
			
		||||
      showCancelButton: false,
 | 
			
		||||
      closeOnClickModal: false,
 | 
			
		||||
      showClose: false,
 | 
			
		||||
      confirmButtonText: t('login.relogin'),
 | 
			
		||||
      cancelButtonText: t('common.cancel'),
 | 
			
		||||
      type: 'warning'
 | 
			
		||||
    }).then(() => {
 | 
			
		||||
      const { wsCache } = useCache()
 | 
			
		||||
      resetRouter() // 重置静态路由表
 | 
			
		||||
      wsCache.clear()
 | 
			
		||||
      removeToken()
 | 
			
		||||
      isRelogin.show = false
 | 
			
		||||
      window.location.href = '/'
 | 
			
		||||
    })
 | 
			
		||||
      .then(() => {
 | 
			
		||||
        const { wsCache } = useCache()
 | 
			
		||||
        resetRouter() // 重置静态路由表
 | 
			
		||||
        wsCache.clear()
 | 
			
		||||
        removeToken()
 | 
			
		||||
        isRelogin.show = false
 | 
			
		||||
        window.location.href = '/'
 | 
			
		||||
      })
 | 
			
		||||
      .catch(() => {
 | 
			
		||||
        isRelogin.show = false
 | 
			
		||||
      })
 | 
			
		||||
  }
 | 
			
		||||
  return Promise.reject(t('sys.api.timeoutMessage'))
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
<script setup lang="ts">
 | 
			
		||||
import { parseTime } from '@/utils/formatTime'
 | 
			
		||||
import { formatDate } from '@/utils/formatTime'
 | 
			
		||||
import * as NotifyMessageApi from '@/api/system/notify/message'
 | 
			
		||||
 | 
			
		||||
const { push } = useRouter()
 | 
			
		||||
| 
						 | 
				
			
			@ -57,7 +57,7 @@ onMounted(() => {
 | 
			
		|||
                    {{ item.templateNickname }}:{{ item.templateContent }}
 | 
			
		||||
                  </span>
 | 
			
		||||
                  <span class="message-date">
 | 
			
		||||
                    {{ parseTime(item.createTime) }}
 | 
			
		||||
                    {{ formatDate(item.createTime) }}
 | 
			
		||||
                  </span>
 | 
			
		||||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,7 @@ VXETable.renderer.add('XPreview', {
 | 
			
		|||
      )
 | 
			
		||||
    } else {
 | 
			
		||||
      return (
 | 
			
		||||
        // @ts-ignore
 | 
			
		||||
        <ElLink href={row[column.field]} target="_blank">
 | 
			
		||||
          {row[column.field]}
 | 
			
		||||
        </ElLink>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
import { defineStore } from 'pinia'
 | 
			
		||||
import { store } from '../index'
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
import { DictDataVO } from '@/api/system/dict/types'
 | 
			
		||||
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 | 
			
		||||
const { wsCache } = useCache('sessionStorage')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,6 +24,7 @@ declare module '@vue/runtime-core' {
 | 
			
		|||
    Echart: typeof import('./../components/Echart/src/Echart.vue')['default']
 | 
			
		||||
    Editor: typeof import('./../components/Editor/src/Editor.vue')['default']
 | 
			
		||||
    ElAutoResizer: typeof import('element-plus/es')['ElAutoResizer']
 | 
			
		||||
    ElAvatar: typeof import('element-plus/es')['ElAvatar']
 | 
			
		||||
    ElBadge: typeof import('element-plus/es')['ElBadge']
 | 
			
		||||
    ElButton: typeof import('element-plus/es')['ElButton']
 | 
			
		||||
    ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
 | 
			
		||||
| 
						 | 
				
			
			@ -68,6 +69,7 @@ declare module '@vue/runtime-core' {
 | 
			
		|||
    ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
 | 
			
		||||
    ElSelect: typeof import('element-plus/es')['ElSelect']
 | 
			
		||||
    ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
 | 
			
		||||
    ElSpace: typeof import('element-plus/es')['ElSpace']
 | 
			
		||||
    ElSwitch: typeof import('element-plus/es')['ElSwitch']
 | 
			
		||||
    ElTable: typeof import('element-plus/es')['ElTable']
 | 
			
		||||
    ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
 | 
			
		||||
| 
						 | 
				
			
			@ -78,7 +80,6 @@ declare module '@vue/runtime-core' {
 | 
			
		|||
    ElTimeline: typeof import('element-plus/es')['ElTimeline']
 | 
			
		||||
    ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
 | 
			
		||||
    ElTooltip: typeof import('element-plus/es')['ElTooltip']
 | 
			
		||||
    ElTransfer: typeof import('element-plus/es')['ElTransfer']
 | 
			
		||||
    ElTree: typeof import('element-plus/es')['ElTree']
 | 
			
		||||
    ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
 | 
			
		||||
    ElUpload: typeof import('element-plus/es')['ElUpload']
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,53 +23,6 @@ export function formatDate(date: Date, format?: string): string {
 | 
			
		|||
  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 当前传入的日期值
 | 
			
		||||
| 
						 | 
				
			
			@ -87,8 +40,7 @@ export function getWeek(dateTime: Date): number {
 | 
			
		|||
  if (dayOfWeek != 0) spendDay = 7 - dayOfWeek + 1
 | 
			
		||||
  firstDay = new Date(temptTime.getFullYear(), 0, 1 + spendDay)
 | 
			
		||||
  const d = Math.ceil((temptTime.valueOf() - firstDay.valueOf()) / 86400000)
 | 
			
		||||
  const result = Math.ceil(d / 7)
 | 
			
		||||
  return result
 | 
			
		||||
  return Math.ceil(d / 7)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -265,6 +265,7 @@ export const handleTree = (data: any[], id?: string, parentId?: string, children
 | 
			
		|||
  }
 | 
			
		||||
  return tree
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 构造树型结构数据
 | 
			
		||||
 * @param {*} data 数据源
 | 
			
		||||
| 
						 | 
				
			
			@ -273,6 +274,7 @@ export const handleTree = (data: any[], id?: string, parentId?: string, children
 | 
			
		|||
 * @param {*} children 孩子节点字段 默认 'children'
 | 
			
		||||
 * @param {*} rootId 根Id 默认 0
 | 
			
		||||
 */
 | 
			
		||||
// @ts-ignore
 | 
			
		||||
export const handleTree2 = (data, id, parentId, children, rootId) => {
 | 
			
		||||
  id = id || 'id'
 | 
			
		||||
  parentId = parentId || 'parentId'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,13 +34,13 @@
 | 
			
		|||
      </li>
 | 
			
		||||
      <li class="list-group-item">
 | 
			
		||||
        <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>
 | 
			
		||||
    </ul>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { parseTime } from '@/utils/formatTime'
 | 
			
		||||
import { formatDate } from '@/utils/formatTime'
 | 
			
		||||
import UserAvatar from './UserAvatar.vue'
 | 
			
		||||
 | 
			
		||||
import { getUserProfileApi, ProfileVO } from '@/api/system/user/profile'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,13 +20,13 @@
 | 
			
		|||
              </label>
 | 
			
		||||
              <label style="font-weight: normal" v-if="item.createTime">创建时间:</label>
 | 
			
		||||
              <label style="color: #8a909c; font-weight: normal">
 | 
			
		||||
                {{ parseTime(item?.createTime) }}
 | 
			
		||||
                {{ formatDate(item?.createTime) }}
 | 
			
		||||
              </label>
 | 
			
		||||
              <label v-if="item.endTime" style="margin-left: 30px; font-weight: normal">
 | 
			
		||||
                审批时间:
 | 
			
		||||
              </label>
 | 
			
		||||
              <label v-if="item.endTime" style="color: #8a909c; font-weight: normal">
 | 
			
		||||
                {{ parseTime(item?.endTime) }}
 | 
			
		||||
                {{ formatDate(item?.endTime) }}
 | 
			
		||||
              </label>
 | 
			
		||||
              <label v-if="item.durationInMillis" style="margin-left: 30px; font-weight: normal">
 | 
			
		||||
                耗时:
 | 
			
		||||
| 
						 | 
				
			
			@ -45,7 +45,7 @@
 | 
			
		|||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { parseTime, formatPast2 } from '@/utils/formatTime'
 | 
			
		||||
import { formatDate, formatPast2 } from '@/utils/formatTime'
 | 
			
		||||
import { propTypes } from '@/utils/propTypes'
 | 
			
		||||
 | 
			
		||||
defineProps({
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,7 +44,7 @@
 | 
			
		|||
          <li v-for="item in getList" class="mt-2" :key="item.time">
 | 
			
		||||
            <div class="flex items-center">
 | 
			
		||||
              <span class="mr-2 text-primary font-medium">收到消息:</span>
 | 
			
		||||
              <span>{{ parseTime(item.time) }}</span>
 | 
			
		||||
              <span>{{ formatDate(item.time) }}</span>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div>
 | 
			
		||||
              {{ item.res }}
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +56,7 @@
 | 
			
		|||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import { parseTime } from '@/utils/formatTime'
 | 
			
		||||
import { formatDate } from '@/utils/formatTime'
 | 
			
		||||
import { useUserStore } from '@/store/modules/user'
 | 
			
		||||
import { useWebSocket } from '@vueuse/core'
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,7 +41,7 @@
 | 
			
		|||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="上传时间" align="center" prop="createTime" width="180">
 | 
			
		||||
        <template #default="scope">
 | 
			
		||||
          <span>{{ parseTime(scope.row.createTime) }}</span>
 | 
			
		||||
          <span>{{ formatDate(scope.row.createTime) }}</span>
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column
 | 
			
		||||
| 
						 | 
				
			
			@ -80,7 +80,7 @@
 | 
			
		|||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="上传时间" align="center" prop="createTime" width="180">
 | 
			
		||||
        <template #default="scope">
 | 
			
		||||
          <span>{{ parseTime(scope.row.createTime) }}</span>
 | 
			
		||||
          <span>{{ formatDate(scope.row.createTime) }}</span>
 | 
			
		||||
        </template>
 | 
			
		||||
      </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 { getFreePublishPage } from '@/api/mp/freePublish'
 | 
			
		||||
import { getDraftPage } from '@/api/mp/draft'
 | 
			
		||||
import { dateFormatter, parseTime } from '@/utils/formatTime'
 | 
			
		||||
import { dateFormatter, formatDate } from '@/utils/formatTime'
 | 
			
		||||
import { defineComponent, PropType } from 'vue'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
| 
						 | 
				
			
			@ -238,7 +238,7 @@ export default defineComponent({
 | 
			
		|||
      selectMaterialFun,
 | 
			
		||||
      getMaterialPageFun,
 | 
			
		||||
      getPage,
 | 
			
		||||
      parseTime,
 | 
			
		||||
      formatDate,
 | 
			
		||||
      newsTypeRef,
 | 
			
		||||
      queryParams,
 | 
			
		||||
      objDataRef,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
          </div>
 | 
			
		||||
          <div class="avue-comment__main">
 | 
			
		||||
            <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
 | 
			
		||||
              class="avue-comment__body"
 | 
			
		||||
| 
						 | 
				
			
			@ -145,7 +145,7 @@ import { defineComponent } from 'vue'
 | 
			
		|||
const message = useMessage() // 消息弹窗
 | 
			
		||||
import profile from '@/assets/imgs/profile.jpg'
 | 
			
		||||
import wechat from '@/assets/imgs/wechat.png'
 | 
			
		||||
import { parseTime } from '@/utils/formatTime'
 | 
			
		||||
import { formatDate } from '@/utils/formatTime'
 | 
			
		||||
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  components: {
 | 
			
		||||
| 
						 | 
				
			
			@ -286,7 +286,7 @@ export default defineComponent({
 | 
			
		|||
    return {
 | 
			
		||||
      sendMsg,
 | 
			
		||||
      loadingMore,
 | 
			
		||||
      parseTime,
 | 
			
		||||
      formatDate,
 | 
			
		||||
      scrollToBottom,
 | 
			
		||||
      objData,
 | 
			
		||||
      mp,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,11 @@
 | 
			
		|||
<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" />
 | 
			
		||||
    <template #footer>
 | 
			
		||||
      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
 | 
			
		||||
| 
						 | 
				
			
			@ -9,7 +15,7 @@
 | 
			
		|||
</template>
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import * as MailTemplateApi from '@/api/system/mail/template'
 | 
			
		||||
import { rules, allSchemas } from './template.data'
 | 
			
		||||
import { allSchemas, rules } from './template.data'
 | 
			
		||||
 | 
			
		||||
const { t } = useI18n() // 国际化
 | 
			
		||||
const message = useMessage() // 消息弹窗
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@
 | 
			
		|||
        {{ detailData.templateNickname }}
 | 
			
		||||
      </el-descriptions-item>
 | 
			
		||||
      <el-descriptions-item label="发送时间">
 | 
			
		||||
        {{ formatDate(detailData.createTime, 'YYYY-MM-DD HH:mm:ss') }}
 | 
			
		||||
        {{ formatDate(detailData.createTime) }}
 | 
			
		||||
      </el-descriptions-item>
 | 
			
		||||
      <el-descriptions-item label="消息类型">
 | 
			
		||||
        <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" />
 | 
			
		||||
      </el-descriptions-item>
 | 
			
		||||
      <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 label="内容">
 | 
			
		||||
        {{ detailData.templateContent }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue