From ba5985943bad95d977d5753ca6a6d26a77e12429 Mon Sep 17 00:00:00 2001 From: puhui999 <puhui999@163.com> Date: Thu, 30 Mar 2023 16:04:46 +0800 Subject: [PATCH 1/4] =?UTF-8?q?update:=20=E8=A7=A3=E5=86=B3=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E9=81=AE=E7=BD=A9=E5=B1=82=E5=BC=B9=E7=AA=97=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E5=90=8E=EF=BC=8C=E9=A1=B5=E9=9D=A2=E5=B0=B1=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E4=B8=8D=E4=BA=86=E4=BA=86=E4=BC=9A=E4=B8=80=E7=9B=B4?= =?UTF-8?q?=E8=BD=AC=E5=9C=88=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/vite/index.ts | 1 + src/config/axios/service.ts | 22 ++++++++++------------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/build/vite/index.ts b/build/vite/index.ts index dcec1aed..fa7e04e8 100644 --- a/build/vite/index.ts +++ b/build/vite/index.ts @@ -6,6 +6,7 @@ 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' diff --git a/src/config/axios/service.ts b/src/config/axios/service.ts index 7109615b..afe75d8a 100644 --- a/src/config/axios/service.ts +++ b/src/config/axios/service.ts @@ -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')) } From 5459fadafd863e2e49b6fef5b7f1cd063dde7740 Mon Sep 17 00:00:00 2001 From: puhui999 <puhui999@163.com> Date: Thu, 30 Mar 2023 16:13:43 +0800 Subject: [PATCH 2/4] update: @ts-ignore --- src/plugins/vxeTable/renderer/preview.tsx | 1 + src/store/modules/dict.ts | 1 + src/types/auto-components.d.ts | 1 + src/utils/tree.ts | 2 ++ 4 files changed, 5 insertions(+) diff --git a/src/plugins/vxeTable/renderer/preview.tsx b/src/plugins/vxeTable/renderer/preview.tsx index 3cb1270b..a737dd51 100644 --- a/src/plugins/vxeTable/renderer/preview.tsx +++ b/src/plugins/vxeTable/renderer/preview.tsx @@ -25,6 +25,7 @@ VXETable.renderer.add('XPreview', { ) } else { return ( + // @ts-ignore <ElLink href={row[column.field]} target="_blank"> {row[column.field]} </ElLink> diff --git a/src/store/modules/dict.ts b/src/store/modules/dict.ts index 2d393e43..822547bf 100644 --- a/src/store/modules/dict.ts +++ b/src/store/modules/dict.ts @@ -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') diff --git a/src/types/auto-components.d.ts b/src/types/auto-components.d.ts index a04c98b3..2a42203d 100644 --- a/src/types/auto-components.d.ts +++ b/src/types/auto-components.d.ts @@ -70,6 +70,7 @@ declare module '@vue/runtime-core' { ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] + ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] ElUpload: typeof import('element-plus/es')['ElUpload'] Error: typeof import('./../components/Error/src/Error.vue')['default'] FlowCondition: typeof import('./../components/bpmnProcessDesigner/package/penal/flow-condition/FlowCondition.vue')['default'] diff --git a/src/utils/tree.ts b/src/utils/tree.ts index 20f97a38..51a64bd1 100644 --- a/src/utils/tree.ts +++ b/src/utils/tree.ts @@ -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' From dc1393411c5cc7d43d349ce720dca789e8f224b0 Mon Sep 17 00:00:00 2001 From: puhui999 <puhui999@163.com> Date: Tue, 4 Apr 2023 11:19:58 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E4=BD=BF=E7=94=A8formatDate=E6=96=B9=E6=B3=95=E7=A7=BB?= =?UTF-8?q?=E9=99=A4parseTime=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../package/designer/ProcessViewer.vue | 58 +++---------------- src/layout/components/Message/src/Message.vue | 4 +- src/types/auto-components.d.ts | 7 --- src/utils/formatTime.ts | 50 +--------------- src/views/Profile/components/ProfileUser.vue | 4 +- .../detail/ProcessInstanceTaskList.vue | 6 +- src/views/infra/webSocket/index.vue | 4 +- .../mp/components/wx-material-select/main.vue | 8 +-- src/views/mp/components/wx-msg/main.vue | 6 +- .../notify/my/MyNotifyMessageDetail.vue | 4 +- 10 files changed, 26 insertions(+), 125 deletions(-) diff --git a/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue index a206c45b..a90d468e 100644 --- a/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue +++ b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue @@ -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 diff --git a/src/layout/components/Message/src/Message.vue b/src/layout/components/Message/src/Message.vue index 4ac85860..d42a51c0 100644 --- a/src/layout/components/Message/src/Message.vue +++ b/src/layout/components/Message/src/Message.vue @@ -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> diff --git a/src/types/auto-components.d.ts b/src/types/auto-components.d.ts index 80a5900f..0ed1a84d 100644 --- a/src/types/auto-components.d.ts +++ b/src/types/auto-components.d.ts @@ -23,7 +23,6 @@ declare module '@vue/runtime-core' { DictTag: typeof import('./../components/DictTag/src/DictTag.vue')['default'] 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'] ElBadge: typeof import('element-plus/es')['ElBadge'] ElButton: typeof import('element-plus/es')['ElButton'] ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup'] @@ -53,7 +52,6 @@ declare module '@vue/runtime-core' { ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElIcon: typeof import('element-plus/es')['ElIcon'] - ElImage: typeof import('element-plus/es')['ElImage'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElInput: typeof import('element-plus/es')['ElInput'] ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] @@ -62,7 +60,6 @@ declare module '@vue/runtime-core' { ElPagination: typeof import('element-plus/es')['ElPagination'] ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadio: typeof import('element-plus/es')['ElRadio'] - ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRow: typeof import('element-plus/es')['ElRow'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] @@ -71,14 +68,10 @@ declare module '@vue/runtime-core' { ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] - ElTableV2: typeof import('element-plus/es')['ElTableV2'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] 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'] - 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'] diff --git a/src/utils/formatTime.ts b/src/utils/formatTime.ts index d4dea9b5..0d68e362 100644 --- a/src/utils/formatTime.ts +++ b/src/utils/formatTime.ts @@ -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) } /** diff --git a/src/views/Profile/components/ProfileUser.vue b/src/views/Profile/components/ProfileUser.vue index 015440fc..4e4de722 100644 --- a/src/views/Profile/components/ProfileUser.vue +++ b/src/views/Profile/components/ProfileUser.vue @@ -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' diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue b/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue index 3bbabcc6..a8aa0120 100644 --- a/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue +++ b/src/views/bpm/processInstance/detail/ProcessInstanceTaskList.vue @@ -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({ diff --git a/src/views/infra/webSocket/index.vue b/src/views/infra/webSocket/index.vue index f090ba9b..b4e0acc0 100644 --- a/src/views/infra/webSocket/index.vue +++ b/src/views/infra/webSocket/index.vue @@ -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' diff --git a/src/views/mp/components/wx-material-select/main.vue b/src/views/mp/components/wx-material-select/main.vue index 26b747e2..4c477078 100644 --- a/src/views/mp/components/wx-material-select/main.vue +++ b/src/views/mp/components/wx-material-select/main.vue @@ -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, diff --git a/src/views/mp/components/wx-msg/main.vue b/src/views/mp/components/wx-msg/main.vue index 215b4f97..52397e12 100644 --- a/src/views/mp/components/wx-msg/main.vue +++ b/src/views/mp/components/wx-msg/main.vue @@ -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, diff --git a/src/views/system/notify/my/MyNotifyMessageDetail.vue b/src/views/system/notify/my/MyNotifyMessageDetail.vue index bcad4711..247136b0 100644 --- a/src/views/system/notify/my/MyNotifyMessageDetail.vue +++ b/src/views/system/notify/my/MyNotifyMessageDetail.vue @@ -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 }} From 05019837d058f7aae1961f3908e6efa3eace8626 Mon Sep 17 00:00:00 2001 From: puhui999 <puhui999@163.com> Date: Tue, 4 Apr 2023 22:08:17 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=A8vue3+vite3=20?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=B8=AD=E4=BD=BF=E7=94=A8=E9=A1=B6=E5=B1=82?= =?UTF-8?q?await=E6=89=93=E5=8C=85=E7=9A=84=E6=97=B6=E5=80=99=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/vite/index.ts | 9 ++++++++- package.json | 1 + src/types/auto-components.d.ts | 8 ++++++++ src/views/system/mail/template/form.vue | 10 ++++++++-- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/build/vite/index.ts b/build/vite/index.ts index fa7e04e8..7d3aa5be 100644 --- a/build/vite/index.ts +++ b/build/vite/index.ts @@ -12,6 +12,7 @@ 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' @@ -96,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}` + }) ] } diff --git a/package.json b/package.json index 683d09eb..b7629029 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/types/auto-components.d.ts b/src/types/auto-components.d.ts index 0ed1a84d..8851767a 100644 --- a/src/types/auto-components.d.ts +++ b/src/types/auto-components.d.ts @@ -23,6 +23,8 @@ declare module '@vue/runtime-core' { DictTag: typeof import('./../components/DictTag/src/DictTag.vue')['default'] 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'] @@ -52,6 +54,7 @@ declare module '@vue/runtime-core' { ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElIcon: typeof import('element-plus/es')['ElIcon'] + ElImage: typeof import('element-plus/es')['ElImage'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElInput: typeof import('element-plus/es')['ElInput'] ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] @@ -60,17 +63,22 @@ declare module '@vue/runtime-core' { ElPagination: typeof import('element-plus/es')['ElPagination'] ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadio: typeof import('element-plus/es')['ElRadio'] + ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] ElRow: typeof import('element-plus/es')['ElRow'] 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'] + ElTableV2: typeof import('element-plus/es')['ElTableV2'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] 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'] ElTree: typeof import('element-plus/es')['ElTree'] ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] diff --git a/src/views/system/mail/template/form.vue b/src/views/system/mail/template/form.vue index f1b8f9a2..96989e3a 100644 --- a/src/views/system/mail/template/form.vue +++ b/src/views/system/mail/template/form.vue @@ -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() // 消息弹窗