From 8d7d3d5fe1491c5ef8158331999982a05f031528 Mon Sep 17 00:00:00 2001 From: hw Date: Fri, 21 Nov 2025 18:19:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20todo=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/mp/autoReply/data.ts | 35 ++- .../web-antd/src/views/mp/autoReply/index.vue | 23 +- .../src/views/mp/autoReply/modules/form.vue | 3 +- .../mp/components/wx-account-select/index.ts | 3 - .../views/mp/components/wx-location/index.ts | 4 - .../views/mp/components/wx-location/types.ts | 1 - .../mp/components/wx-location/wx-location.vue | 2 +- .../mp/components/wx-material-select/index.ts | 3 - .../wx-material-select/wx-material-select.vue | 6 +- .../src/views/mp/components/wx-msg/index.ts | 5 - .../views/mp/components/wx-msg/msg-list.vue | 6 +- .../src/views/mp/components/wx-msg/msg.vue | 1 - .../src/views/mp/components/wx-msg/types.ts | 7 - .../src/views/mp/components/wx-msg/wx-msg.vue | 4 +- .../src/views/mp/components/wx-music/index.ts | 3 - .../views/mp/components/wx-music/wx-music.vue | 11 +- .../src/views/mp/components/wx-news/index.ts | 3 - .../views/mp/components/wx-news/wx-news.vue | 2 +- .../src/views/mp/components/wx-reply/index.ts | 5 - .../mp/components/wx-reply/tab-image.vue | 23 +- .../mp/components/wx-reply/tab-music.vue | 24 +- .../views/mp/components/wx-reply/tab-news.vue | 2 +- .../mp/components/wx-reply/tab-video.vue | 23 +- .../mp/components/wx-reply/tab-voice.vue | 26 +-- .../views/mp/components/wx-reply/wx-reply.vue | 3 - .../mp/components/wx-video-play/index.ts | 3 - .../mp/components/wx-voice-play/index.ts | 3 - apps/web-antd/src/views/mp/draft/data.ts | 22 +- apps/web-antd/src/views/mp/draft/index.vue | 46 +++- .../views/mp/draft/modules/cover-select.vue | 4 +- .../views/mp/draft/modules/draft-table.vue | 20 -- .../src/views/mp/draft/modules/news-form.vue | 43 ++-- .../mp/material/components/VideoTable.vue | 2 +- apps/web-antd/src/views/mp/material/index.vue | 6 +- .../{modules => }/assets/iphone_backImg.png | Bin .../menu/{modules => }/assets/menu_foot.png | Bin .../menu/{modules => }/assets/menu_head.png | Bin apps/web-antd/src/views/mp/menu/index.vue | 17 +- .../src/views/mp/menu/modules/editor.vue | 11 +- .../src/views/mp/menu/modules/index.ts | 5 - .../src/views/mp/menu/modules/previewer.vue | 2 - apps/web-antd/src/views/mp/message/index.vue | 2 +- apps/web-ele/src/api/mp/material/index.ts | 10 +- apps/web-ele/src/views/mp/autoReply/data.ts | 72 ++---- apps/web-ele/src/views/mp/autoReply/index.vue | 47 ++-- .../src/views/mp/autoReply/modules/form.vue | 17 +- .../src/views/mp/autoReply/modules/types.ts | 8 - apps/web-ele/src/views/mp/components/index.ts | 17 +- .../mp/components/wx-account-select/index.ts | 3 - .../wx-account-select/wx-account-select.vue | 110 ++------- .../views/mp/components/wx-location/index.ts | 3 - .../views/mp/components/wx-location/types.ts | 6 + .../mp/components/wx-location/wx-location.vue | 49 ++-- .../mp/components/wx-material-select/index.ts | 5 - .../mp/components/wx-material-select/types.ts | 12 - .../wx-material-select/wx-material-select.vue | 5 +- .../src/views/mp/components/wx-msg/index.ts | 5 - .../views/mp/components/wx-msg/msg-event.vue | 1 + .../views/mp/components/wx-msg/msg-list.vue | 72 +++--- .../src/views/mp/components/wx-msg/msg.vue | 89 ++++++++ .../src/views/mp/components/wx-msg/types.ts | 19 -- .../src/views/mp/components/wx-msg/wx-msg.vue | 216 ++++++++++++------ .../src/views/mp/components/wx-music/index.ts | 3 - .../views/mp/components/wx-music/wx-music.vue | 6 +- .../src/views/mp/components/wx-news/index.ts | 3 - .../src/views/mp/components/wx-reply/index.ts | 5 - .../mp/components/wx-reply/tab-image.vue | 12 +- .../mp/components/wx-reply/tab-music.vue | 5 +- .../views/mp/components/wx-reply/tab-news.vue | 3 +- .../mp/components/wx-reply/tab-video.vue | 13 +- .../mp/components/wx-reply/tab-voice.vue | 15 +- .../src/views/mp/components/wx-reply/types.ts | 38 ++- .../views/mp/components/wx-reply/wx-reply.vue | 87 +++++-- .../mp/components/wx-video-play/index.ts | 3 - .../wx-video-play/wx-video-play.vue | 23 +- .../mp/components/wx-voice-play/index.ts | 3 - apps/web-ele/src/views/mp/draft/index.vue | 186 +++++++-------- apps/web-ele/src/views/mp/draft/mock.js | 165 ------------- .../views/mp/draft/modules/cover-select.vue | 26 ++- .../src/views/mp/draft/modules/news-form.vue | 46 ++-- apps/web-ele/src/views/mp/menu/index.vue | 188 +++++++-------- .../modules/{menu-editor.vue => editor.vue} | 3 +- .../src/views/mp/menu/modules/menuOptions.ts | 43 ---- .../{menu-previewer.vue => previewer.vue} | 6 +- .../src/views/mp/menu/modules/types.ts | 43 ++++ packages/constants/src/biz-mp-enum.ts | 11 + 86 files changed, 942 insertions(+), 1174 deletions(-) delete mode 100644 apps/web-antd/src/views/mp/components/wx-account-select/index.ts delete mode 100644 apps/web-antd/src/views/mp/components/wx-location/index.ts delete mode 100644 apps/web-antd/src/views/mp/components/wx-material-select/index.ts delete mode 100644 apps/web-antd/src/views/mp/components/wx-msg/index.ts delete mode 100644 apps/web-antd/src/views/mp/components/wx-msg/types.ts delete mode 100644 apps/web-antd/src/views/mp/components/wx-music/index.ts delete mode 100644 apps/web-antd/src/views/mp/components/wx-news/index.ts delete mode 100644 apps/web-antd/src/views/mp/components/wx-reply/index.ts delete mode 100644 apps/web-antd/src/views/mp/components/wx-video-play/index.ts delete mode 100644 apps/web-antd/src/views/mp/components/wx-voice-play/index.ts delete mode 100644 apps/web-antd/src/views/mp/draft/modules/draft-table.vue rename apps/web-antd/src/views/mp/menu/{modules => }/assets/iphone_backImg.png (100%) rename apps/web-antd/src/views/mp/menu/{modules => }/assets/menu_foot.png (100%) rename apps/web-antd/src/views/mp/menu/{modules => }/assets/menu_head.png (100%) delete mode 100644 apps/web-antd/src/views/mp/menu/modules/index.ts delete mode 100644 apps/web-ele/src/views/mp/autoReply/modules/types.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-account-select/index.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-location/index.ts create mode 100644 apps/web-ele/src/views/mp/components/wx-location/types.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-material-select/index.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-material-select/types.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-msg/index.ts create mode 100644 apps/web-ele/src/views/mp/components/wx-msg/msg.vue delete mode 100644 apps/web-ele/src/views/mp/components/wx-msg/types.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-music/index.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-news/index.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-reply/index.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-video-play/index.ts delete mode 100644 apps/web-ele/src/views/mp/components/wx-voice-play/index.ts delete mode 100644 apps/web-ele/src/views/mp/draft/mock.js rename apps/web-ele/src/views/mp/menu/modules/{menu-editor.vue => editor.vue} (98%) delete mode 100644 apps/web-ele/src/views/mp/menu/modules/menuOptions.ts rename apps/web-ele/src/views/mp/menu/modules/{menu-previewer.vue => previewer.vue} (98%) diff --git a/apps/web-antd/src/views/mp/autoReply/data.ts b/apps/web-antd/src/views/mp/autoReply/data.ts index 4054ec64b3..3bd3ab03c4 100644 --- a/apps/web-antd/src/views/mp/autoReply/data.ts +++ b/apps/web-antd/src/views/mp/autoReply/data.ts @@ -3,27 +3,22 @@ import type { VxeGridPropTypes } from '#/adapter/vxe-table'; import { markRaw } from 'vue'; -import { DICT_TYPE, AutoReplyMsgType as MsgType } from '@vben/constants'; +import { + AutoReplyMsgType, + DICT_TYPE, + RequestMessageTypes, +} from '@vben/constants'; import { getDictOptions } from '@vben/hooks'; import { WxReply } from '#/views/mp/components'; -// TODO @hw:要不要使用统一枚举? -const RequestMessageTypes = new Set([ - 'image', - 'link', - 'location', - 'shortvideo', - 'text', - 'video', - 'voice', -]); // 允许选择的请求消息类型 - /** 获取表格列配置 */ -export function useGridColumns(msgType: MsgType): VxeGridPropTypes.Columns { +export function useGridColumns( + msgType: AutoReplyMsgType, +): VxeGridPropTypes.Columns { const columns: VxeGridPropTypes.Columns = []; // 请求消息类型列(仅消息回复显示) - if (msgType === MsgType.Message) { + if (msgType === AutoReplyMsgType.Message) { columns.push({ field: 'requestMessageType', title: '请求消息类型', @@ -32,7 +27,7 @@ export function useGridColumns(msgType: MsgType): VxeGridPropTypes.Columns { } // 关键词列(仅关键词回复显示) - if (msgType === MsgType.Keyword) { + if (msgType === AutoReplyMsgType.Keyword) { columns.push({ field: 'requestKeyword', title: '关键词', @@ -41,7 +36,7 @@ export function useGridColumns(msgType: MsgType): VxeGridPropTypes.Columns { } // 匹配类型列(仅关键词回复显示) - if (msgType === MsgType.Keyword) { + if (msgType === AutoReplyMsgType.Keyword) { columns.push({ field: 'requestMatch', title: '匹配类型', @@ -87,11 +82,11 @@ export function useGridColumns(msgType: MsgType): VxeGridPropTypes.Columns { } /** 新增/修改的表单 */ -export function useFormSchema(msgType: MsgType): VbenFormSchema[] { +export function useFormSchema(msgType: AutoReplyMsgType): VbenFormSchema[] { const schema: VbenFormSchema[] = []; // 消息类型(仅消息回复显示) - if (msgType === MsgType.Message) { + if (msgType === AutoReplyMsgType.Message) { schema.push({ fieldName: 'requestMessageType', label: '消息类型', @@ -106,7 +101,7 @@ export function useFormSchema(msgType: MsgType): VbenFormSchema[] { } // 匹配类型(仅关键词回复显示) - if (msgType === MsgType.Keyword) { + if (msgType === AutoReplyMsgType.Keyword) { schema.push({ fieldName: 'requestMatch', label: '匹配类型', @@ -124,7 +119,7 @@ export function useFormSchema(msgType: MsgType): VbenFormSchema[] { } // 关键词(仅关键词回复显示) - if (msgType === MsgType.Keyword) { + if (msgType === AutoReplyMsgType.Keyword) { schema.push({ fieldName: 'requestKeyword', label: '关键词', diff --git a/apps/web-antd/src/views/mp/autoReply/index.vue b/apps/web-antd/src/views/mp/autoReply/index.vue index c3c84a4424..71191c5947 100644 --- a/apps/web-antd/src/views/mp/autoReply/index.vue +++ b/apps/web-antd/src/views/mp/autoReply/index.vue @@ -5,8 +5,7 @@ import type { MpAutoReplyApi } from '#/api/mp/autoReply'; import { computed, nextTick, ref } from 'vue'; import { confirm, DocAlert, Page, useVbenModal } from '@vben/common-ui'; -// TODO @hw:直接使用 AutoReplyMsgType,不用 as -import { AutoReplyMsgType as MsgType } from '@vben/constants'; +import { AutoReplyMsgType } from '@vben/constants'; import { IconifyIcon } from '@vben/icons'; import { message, Row, Tabs } from 'ant-design-vue'; @@ -26,10 +25,10 @@ import Form from './modules/form.vue'; defineOptions({ name: 'MpAutoReply' }); -const msgType = ref(String(MsgType.Keyword)); // 消息类型 +const msgType = ref(String(AutoReplyMsgType.Keyword)); // 消息类型 const showCreateButton = computed(() => { - if (Number(msgType.value) !== MsgType.Follow) { + if (Number(msgType.value) !== AutoReplyMsgType.Follow) { return true; } try { @@ -56,7 +55,7 @@ async function onTabChange(tabName: string) { msgType.value = tabName; await nextTick(); // 更新 columns - const columns = useGridColumns(Number(msgType.value) as MsgType); + const columns = useGridColumns(Number(msgType.value) as AutoReplyMsgType); if (columns) { // 使用 setGridOptions 更新列配置 gridApi.setGridOptions({ columns }); @@ -72,7 +71,7 @@ async function handleCreate() { const formValues = await gridApi.formApi.getValues(); formModalApi .setData({ - msgType: Number(msgType.value) as MsgType, + msgType: Number(msgType.value) as AutoReplyMsgType, accountId: formValues.accountId, }) .open(); @@ -83,7 +82,7 @@ async function handleEdit(row: any) { const data = (await getAutoReply(row.id)) as any; formModalApi .setData({ - msgType: Number(msgType.value) as MsgType, + msgType: Number(msgType.value) as AutoReplyMsgType, accountId: row.accountId, row: data, }) @@ -116,7 +115,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ schema: useGridFormSchema(), }, gridOptions: { - columns: useGridColumns(Number(msgType.value) as MsgType), + columns: useGridColumns(Number(msgType.value) as AutoReplyMsgType), height: 'auto', keepSource: true, proxyConfig: { @@ -125,7 +124,7 @@ const [Grid, gridApi] = useVbenVxeGrid({ return await getAutoReplyPage({ pageNo: page.currentPage, pageSize: page.pageSize, - type: Number(msgType.value) as MsgType, + type: Number(msgType.value) as AutoReplyMsgType, ...formValues, }); }, @@ -161,14 +160,14 @@ const [Grid, gridApi] = useVbenVxeGrid({ class="w-full" @change="(activeKey) => onTabChange(activeKey as string)" > - + - + - +