diff --git a/apps/web-ele/.env.development b/apps/web-ele/.env.development index cf25c6dd5..cb83c77f0 100644 --- a/apps/web-ele/.env.development +++ b/apps/web-ele/.env.development @@ -4,7 +4,7 @@ VITE_PORT=5777 VITE_BASE=/ # 请求路径 -VITE_BASE_URL=http://127.0.0.1:48080 +VITE_BASE_URL=http://47.103.66.220:48080 # 接口地址 VITE_GLOB_API_URL=http://47.103.66.220:48080/admin-api # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务 diff --git a/apps/web-ele/src/views/mp/menu/index.vue b/apps/web-ele/src/views/mp/menu/index.vue index 36425357f..d95d1268f 100644 --- a/apps/web-ele/src/views/mp/menu/index.vue +++ b/apps/web-ele/src/views/mp/menu/index.vue @@ -1,5 +1,5 @@ diff --git a/apps/web-ele/src/views/mp/menu/modules/menu-editor.vue b/apps/web-ele/src/views/mp/menu/modules/menu-editor.vue index 45f259a68..00193bcf2 100644 --- a/apps/web-ele/src/views/mp/menu/modules/menu-editor.vue +++ b/apps/web-ele/src/views/mp/menu/modules/menu-editor.vue @@ -14,11 +14,11 @@ import { ElSelect, } from 'element-plus'; -import WxMaterialSelect from '#/views/mp/components/wx-material-select'; -import WxNews from '#/views/mp/components/wx-news'; -import WxReplySelect from '#/views/mp/components/wx-reply'; +import WxMaterialSelect from '#/views/mp/modules/wx-material-select'; +import WxNews from '#/views/mp/modules/wx-news'; +import WxReplySelect from '#/views/mp/modules/wx-reply'; -import menuOptions from '../components/menuOptions'; +import menuOptions from './menuOptions'; const props = defineProps<{ accountId: number; @@ -51,7 +51,8 @@ watch(menu, () => { }); // ======================== 菜单编辑(素材选择) ======================== -const selectMaterial = (item: any) => { +/** 选择素材 */ +function selectMaterial(item: any) { const articleId = item.articleId; const articles = item.content.newsItem; // 提示,针对多图文 @@ -71,12 +72,13 @@ const selectMaterial = (item: any) => { url: article.url, }); }); -}; +} -const deleteMaterial = () => { +/** 删除素材 */ +function deleteMaterial() { delete menu.value.articleId; delete menu.value.replyArticles; -}; +} diff --git a/apps/web-ele/src/views/mp/menu/modules/menu-previewer.vue b/apps/web-ele/src/views/mp/menu/modules/menu-previewer.vue index 44ae9fc1d..ab1a37978 100644 --- a/apps/web-ele/src/views/mp/menu/modules/menu-previewer.vue +++ b/apps/web-ele/src/views/mp/menu/modules/menu-previewer.vue @@ -1,5 +1,5 @@ diff --git a/apps/web-ele/src/views/mp/menu/components/menuOptions.ts b/apps/web-ele/src/views/mp/menu/modules/menuOptions.ts similarity index 100% rename from apps/web-ele/src/views/mp/menu/components/menuOptions.ts rename to apps/web-ele/src/views/mp/menu/modules/menuOptions.ts diff --git a/apps/web-ele/src/views/mp/menu/components/types.ts b/apps/web-ele/src/views/mp/menu/modules/types.ts similarity index 100% rename from apps/web-ele/src/views/mp/menu/components/types.ts rename to apps/web-ele/src/views/mp/menu/modules/types.ts diff --git a/apps/web-ele/src/views/mp/components/wx-account-select/index.ts b/apps/web-ele/src/views/mp/modules/wx-account-select/index.ts similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-account-select/index.ts rename to apps/web-ele/src/views/mp/modules/wx-account-select/index.ts diff --git a/apps/web-ele/src/views/mp/components/wx-account-select/main.vue b/apps/web-ele/src/views/mp/modules/wx-account-select/main.vue similarity index 94% rename from apps/web-ele/src/views/mp/components/wx-account-select/main.vue rename to apps/web-ele/src/views/mp/modules/wx-account-select/main.vue index e2c1b552e..d154b892f 100644 --- a/apps/web-ele/src/views/mp/components/wx-account-select/main.vue +++ b/apps/web-ele/src/views/mp/modules/wx-account-select/main.vue @@ -26,7 +26,8 @@ const account: MpAccountApi.AccountSimple = reactive({ const accountList = ref([]); -const handleQuery = async () => { +/** 查询公众号列表 */ +async function handleQuery() { accountList.value = await getSimpleAccountList(); if (accountList.value.length === 0) { message.error('未配置公众号,请在【公众号管理 -> 账号管理】菜单,进行配置'); @@ -43,9 +44,10 @@ const handleQuery = async () => { emit('change', account.id, account.name); } } -}; +} -const onChanged = (id?: number) => { +/** 公众号变化 */ +function onChanged(id?: number) { const found = accountList.value.find( (v: MpAccountApi.AccountSimple) => v.id === id, ); @@ -53,7 +55,7 @@ const onChanged = (id?: number) => { account.name = found.name; emit('change', account.id, account.name); } -}; +} /** 初始化 */ onMounted(() => { diff --git a/apps/web-ele/src/views/mp/components/wx-location/index.ts b/apps/web-ele/src/views/mp/modules/wx-location/index.ts similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-location/index.ts rename to apps/web-ele/src/views/mp/modules/wx-location/index.ts diff --git a/apps/web-ele/src/views/mp/components/wx-location/main.vue b/apps/web-ele/src/views/mp/modules/wx-location/main.vue similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-location/main.vue rename to apps/web-ele/src/views/mp/modules/wx-location/main.vue diff --git a/apps/web-ele/src/views/mp/components/wx-material-select/index.ts b/apps/web-ele/src/views/mp/modules/wx-material-select/index.ts similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-material-select/index.ts rename to apps/web-ele/src/views/mp/modules/wx-material-select/index.ts diff --git a/apps/web-ele/src/views/mp/components/wx-material-select/main.vue b/apps/web-ele/src/views/mp/modules/wx-material-select/main.vue similarity index 93% rename from apps/web-ele/src/views/mp/components/wx-material-select/main.vue rename to apps/web-ele/src/views/mp/modules/wx-material-select/main.vue index 467636110..727132162 100644 --- a/apps/web-ele/src/views/mp/components/wx-material-select/main.vue +++ b/apps/web-ele/src/views/mp/modules/wx-material-select/main.vue @@ -12,9 +12,9 @@ import { formatTime } from '@vben/utils'; import * as MpDraftApi from '#/api/mp/draft'; import * as MpFreePublishApi from '#/api/mp/freePublish'; import * as MpMaterialApi from '#/api/mp/material'; -import WxNews from '#/views/mp/components/wx-news'; -import WxVideoPlayer from '#/views/mp/components/wx-video-play'; -import WxVoicePlayer from '#/views/mp/components/wx-voice-play'; +import WxNews from '#/views/mp/modules/wx-news'; +import WxVideoPlayer from '#/views/mp/modules/wx-video-play'; +import WxVoicePlayer from '#/views/mp/modules/wx-voice-play'; import { NewsType } from './types'; @@ -46,11 +46,13 @@ const queryParams = reactive({ accountId: props.accountId, }); -const selectMaterialFun = (item: any) => { +/** 选择素材 */ +function selectMaterialFun(item: any) { emit('selectMaterial', item); -}; +} -const getPage = async () => { +/** 获取分页数据 */ +async function getPage() { loading.value = true; try { if (props.type === 'news' && props.newsType === NewsType.Published) { @@ -66,18 +68,20 @@ const getPage = async () => { } finally { loading.value = false; } -}; +} -const getMaterialPageFun = async () => { +/** 获取素材分页 */ +async function getMaterialPageFun() { const data = await MpMaterialApi.getMaterialPage({ ...queryParams, type: props.type, }); list.value = data.list; total.value = data.total; -}; +} -const getFreePublishPageFun = async () => { +/** 获取已发布图文分页 */ +async function getFreePublishPageFun() { const data = await MpFreePublishApi.getFreePublishPage(queryParams); data.list.forEach((item: any) => { const articles = item.content.newsItem; @@ -87,9 +91,10 @@ const getFreePublishPageFun = async () => { }); list.value = data.list; total.value = data.total; -}; +} -const getDraftPageFun = async () => { +/** 获取草稿图文分页 */ +async function getDraftPageFun() { const data = await MpDraftApi.getDraftPage(queryParams); data.list.forEach((draft: any) => { const articles = draft.content.newsItem; @@ -99,7 +104,7 @@ const getDraftPageFun = async () => { }); list.value = data.list; total.value = data.total; -}; +} onMounted(async () => { getPage(); diff --git a/apps/web-ele/src/views/mp/components/wx-material-select/types.ts b/apps/web-ele/src/views/mp/modules/wx-material-select/types.ts similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-material-select/types.ts rename to apps/web-ele/src/views/mp/modules/wx-material-select/types.ts diff --git a/apps/web-ele/src/views/mp/components/wx-msg/card.scss b/apps/web-ele/src/views/mp/modules/wx-msg/card.scss similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-msg/card.scss rename to apps/web-ele/src/views/mp/modules/wx-msg/card.scss diff --git a/apps/web-ele/src/views/mp/components/wx-msg/comment.scss b/apps/web-ele/src/views/mp/modules/wx-msg/comment.scss similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-msg/comment.scss rename to apps/web-ele/src/views/mp/modules/wx-msg/comment.scss diff --git a/apps/web-ele/src/views/mp/components/wx-msg/components/Msg.vue b/apps/web-ele/src/views/mp/modules/wx-msg/components/Msg.vue similarity index 87% rename from apps/web-ele/src/views/mp/components/wx-msg/components/Msg.vue rename to apps/web-ele/src/views/mp/modules/wx-msg/components/Msg.vue index 8daa0fd51..d814eb2b4 100644 --- a/apps/web-ele/src/views/mp/components/wx-msg/components/Msg.vue +++ b/apps/web-ele/src/views/mp/modules/wx-msg/components/Msg.vue @@ -1,11 +1,11 @@ diff --git a/apps/web-ele/src/views/mp/components/wx-msg/types.ts b/apps/web-ele/src/views/mp/modules/wx-msg/types.ts similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-msg/types.ts rename to apps/web-ele/src/views/mp/modules/wx-msg/types.ts diff --git a/apps/web-ele/src/views/mp/components/wx-music/index.ts b/apps/web-ele/src/views/mp/modules/wx-music/index.ts similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-music/index.ts rename to apps/web-ele/src/views/mp/modules/wx-music/index.ts diff --git a/apps/web-ele/src/views/mp/components/wx-music/main.vue b/apps/web-ele/src/views/mp/modules/wx-music/main.vue similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-music/main.vue rename to apps/web-ele/src/views/mp/modules/wx-music/main.vue diff --git a/apps/web-ele/src/views/mp/components/wx-news/index.ts b/apps/web-ele/src/views/mp/modules/wx-news/index.ts similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-news/index.ts rename to apps/web-ele/src/views/mp/modules/wx-news/index.ts diff --git a/apps/web-ele/src/views/mp/components/wx-news/main.vue b/apps/web-ele/src/views/mp/modules/wx-news/main.vue similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-news/main.vue rename to apps/web-ele/src/views/mp/modules/wx-news/main.vue diff --git a/apps/web-ele/src/views/mp/components/wx-reply/components/TabImage.vue b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabImage.vue similarity index 74% rename from apps/web-ele/src/views/mp/components/wx-reply/components/TabImage.vue rename to apps/web-ele/src/views/mp/modules/wx-reply/components/TabImage.vue index 073934088..17ac2f9d9 100644 --- a/apps/web-ele/src/views/mp/components/wx-reply/components/TabImage.vue +++ b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabImage.vue @@ -5,15 +5,20 @@ import type { Reply } from './types'; import { computed, reactive, ref } from 'vue'; -// import { getAccessToken } from '#/utils/auth'; +import { IconifyIcon } from '@vben/icons'; import { useAccessStore } from '@vben/stores'; -import { ElMessage } from 'element-plus'; +import { + ElButton, + ElCol, + ElDialog, + ElMessage, + ElRow, + ElUpload, +} from 'element-plus'; -// import WxMaterialSelect from '#/views/mp/components/wx-material-select'; import { UploadType, useBeforeUpload } from '#/views/mp/hooks/useUpload'; - -// 设置上传的请求头部 +import WxMaterialSelect from '#/views/mp/modules/wx-material-select'; const props = defineProps<{ modelValue: Reply; @@ -41,10 +46,13 @@ const uploadData = reactive({ introduction: '', }); -const beforeImageUpload = (rawFile: UploadRawFile) => - useBeforeUpload(UploadType.Image, 2)(rawFile); +/** 图片上传前校验 */ +function beforeImageUpload(rawFile: UploadRawFile) { + return useBeforeUpload(UploadType.Image, 2)(rawFile); +} -const onUploadSuccess = (res: any) => { +/** 上传成功 */ +function onUploadSuccess(res: any) { if (res.code !== 0) { message.error(`上传出错:${res.msg}`); return false; @@ -57,22 +65,24 @@ const onUploadSuccess = (res: any) => { // 上传好的文件,本质是个素材,所以可以进行选中 selectMaterial(res.data); -}; +} -const onDelete = () => { +/** 删除图片 */ +function onDelete() { reply.value.mediaId = null; reply.value.url = null; reply.value.name = null; -}; +} -const selectMaterial = (item: any) => { +/** 选择素材 */ +function selectMaterial(item: any) { showDialog.value = false; // reply.value.type = 'image' reply.value.mediaId = item.mediaId; reply.value.url = item.url; reply.value.name = item.name; -}; +} @@ -81,20 +91,20 @@ const selectMaterial = (item: any) => { {{ reply.name }} - - - - - + + + + + - + - - - 素材库选择 - - + + 素材库选择 + + { :account-id="reply.accountId" @select-material="selectMaterial" /> - - + + - - + { :before-upload="beforeImageUpload" :on-success="onUploadSuccess" > - 上传图片 + 上传图片 @@ -128,9 +138,9 @@ const selectMaterial = (item: any) => { - - - + + + diff --git a/apps/web-ele/src/views/mp/components/wx-reply/components/TabMusic.vue b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabMusic.vue similarity index 64% rename from apps/web-ele/src/views/mp/components/wx-reply/components/TabMusic.vue rename to apps/web-ele/src/views/mp/modules/wx-reply/components/TabMusic.vue index fe74ea779..9bc05e3c2 100644 --- a/apps/web-ele/src/views/mp/components/wx-reply/components/TabMusic.vue +++ b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabMusic.vue @@ -5,13 +5,22 @@ import type { Reply } from './types'; import { computed, reactive, ref } from 'vue'; +import { IconifyIcon } from '@vben/icons'; import { useAccessStore } from '@vben/stores'; -import { ElMessage } from 'element-plus'; +import { + ElButton, + ElCol, + ElDialog, + ElInput, + ElMessage, + ElRow, + ElUpload, +} from 'element-plus'; -// import { getAccessToken } from '@/utils/auth' -import WxMaterialSelect from '#/views/mp/components/wx-material-select'; import { UploadType, useBeforeUpload } from '#/views/mp/hooks/useUpload'; +// import { getAccessToken } from '@/utils/auth' +import WxMaterialSelect from '#/views/mp/modules/wx-material-select'; // 设置上传的请求头部 @@ -41,10 +50,13 @@ const uploadData = reactive({ introduction: '', }); -const beforeImageUpload = (rawFile: UploadRawFile) => - useBeforeUpload(UploadType.Image, 2)(rawFile); +/** 图片上传前校验 */ +function beforeImageUpload(rawFile: UploadRawFile) { + return useBeforeUpload(UploadType.Image, 2)(rawFile); +} -const onUploadSuccess = (res: any) => { +/** 上传成功 */ +function onUploadSuccess(res: any) { if (res.code !== 0) { message.error(`上传出错:${res.msg}`); return false; @@ -57,33 +69,34 @@ const onUploadSuccess = (res: any) => { // 上传好的文件,本质是个素材,所以可以进行选中 selectMaterial(res.data); -}; +} -const selectMaterial = (item: any) => { +/** 选择素材 */ +function selectMaterial(item: any) { showDialog.value = false; reply.value.thumbMediaId = item.mediaId; reply.value.thumbMediaUrl = item.url; -}; +} - - - - - + + + + + - - - + + + - { :on-success="onUploadSuccess" > - 本地上传 + 本地上传 - 素材库选择 - - + + - - - - + + + { :account-id="reply.accountId" @select-material="selectMaterial" /> - - - - + + + + - - - + + + - + - + diff --git a/apps/web-ele/src/views/mp/components/wx-reply/components/TabNews.vue b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabNews.vue similarity index 59% rename from apps/web-ele/src/views/mp/components/wx-reply/components/TabNews.vue rename to apps/web-ele/src/views/mp/modules/wx-reply/components/TabNews.vue index 85ede8813..2dd102909 100644 --- a/apps/web-ele/src/views/mp/components/wx-reply/components/TabNews.vue +++ b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabNews.vue @@ -1,10 +1,16 @@ - + - - - - - + + + + + - - - - + + + + {{ newsType === NewsType.Published ? '选择已发布图文' : '选择草稿箱图文' }} - - - - - - + + + + + { :news-type="newsType" @select-material="selectMaterial" /> - - + + diff --git a/apps/web-ele/src/views/mp/components/wx-reply/components/TabText.vue b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabText.vue similarity index 91% rename from apps/web-ele/src/views/mp/components/wx-reply/components/TabText.vue rename to apps/web-ele/src/views/mp/modules/wx-reply/components/TabText.vue index a7e389db0..06ab29eb5 100644 --- a/apps/web-ele/src/views/mp/components/wx-reply/components/TabText.vue +++ b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabText.vue @@ -1,6 +1,8 @@ - - useBeforeUpload(UploadType.Video, 10)(rawFile); +/** 视频上传前校验 */ +function beforeVideoUpload(rawFile: UploadRawFile) { + return useBeforeUpload(UploadType.Video, 10)(rawFile); +} -const onUploadSuccess = (res: any) => { +/** 上传成功 */ +function onUploadSuccess(res: any) { if (res.code !== 0) { message.error(`上传出错:${res.msg}`); return false; @@ -55,10 +67,10 @@ const onUploadSuccess = (res: any) => { uploadData.introduction = ''; selectMaterial(res.data); -}; +} /** 选择素材后设置 */ -const selectMaterial = (item: any) => { +function selectMaterial(item: any) { showDialog.value = false; reply.value.mediaId = item.mediaId; @@ -72,33 +84,33 @@ const selectMaterial = (item: any) => { if (item.introduction) { reply.value.description = item.introduction || ''; } -}; +} - - + - - + - - - + + + - - - 素材库选择 - - + + 素材库选择 + + { :account-id="reply.accountId" @select-material="selectMaterial" /> - - + + - - + { :before-upload="beforeVideoUpload" :on-success="onUploadSuccess" > - - 新建视频 - - - - - - + + 新建视频 + + + + + + diff --git a/apps/web-ele/src/views/mp/components/wx-reply/components/TabVoice.vue b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabVoice.vue similarity index 71% rename from apps/web-ele/src/views/mp/components/wx-reply/components/TabVoice.vue rename to apps/web-ele/src/views/mp/modules/wx-reply/components/TabVoice.vue index 9467120c6..a66fa6eeb 100644 --- a/apps/web-ele/src/views/mp/components/wx-reply/components/TabVoice.vue +++ b/apps/web-ele/src/views/mp/modules/wx-reply/components/TabVoice.vue @@ -5,13 +5,21 @@ import type { Reply } from './types'; import { computed, reactive, ref } from 'vue'; +import { IconifyIcon } from '@vben/icons'; import { useAccessStore } from '@vben/stores'; -import { ElMessage } from 'element-plus'; +import { + ElButton, + ElCol, + ElDialog, + ElMessage, + ElRow, + ElUpload, +} from 'element-plus'; -import WxMaterialSelect from '#/views/mp/components/wx-material-select'; -import WxVoicePlayer from '#/views/mp/components/wx-voice-play'; import { UploadType, useBeforeUpload } from '#/views/mp/hooks/useUpload'; +import WxMaterialSelect from '#/views/mp/modules/wx-material-select'; +import WxVoicePlayer from '#/views/mp/modules/wx-voice-play'; // 设置上传的请求头部 @@ -41,10 +49,13 @@ const uploadData = reactive({ introduction: '', }); -const beforeVoiceUpload = (rawFile: UploadRawFile) => - useBeforeUpload(UploadType.Voice, 10)(rawFile); +/** 语音上传前校验 */ +function beforeVoiceUpload(rawFile: UploadRawFile) { + return useBeforeUpload(UploadType.Voice, 10)(rawFile); +} -const onUploadSuccess = (res: any) => { +/** 上传成功 */ +function onUploadSuccess(res: any) { if (res.code !== 0) { message.error(`上传出错:${res.msg}`); return false; @@ -57,43 +68,45 @@ const onUploadSuccess = (res: any) => { // 上传好的文件,本质是个素材,所以可以进行选中 selectMaterial(res.data); -}; +} -const onDelete = () => { +/** 删除语音 */ +function onDelete() { reply.value.mediaId = null; reply.value.url = null; reply.value.name = null; -}; +} -const selectMaterial = (item: Reply) => { +/** 选择素材 */ +function selectMaterial(item: Reply) { showDialog.value = false; // reply.value.type = ReplyType.Voice reply.value.mediaId = item.mediaId; reply.value.url = item.url; reply.value.name = item.name; -}; +} {{ reply.name }} - + - - - - - - + + + + + + - + - - - 素材库选择 - - + + 素材库选择 + + { :account-id="reply.accountId" @select-material="selectMaterial" /> - - + + - - + { :before-upload="beforeVoiceUpload" :on-success="onUploadSuccess" > - 点击上传 + 点击上传 格式支持 mp3/wma/wav/amr,文件大小不超过 2M,播放长度不超过 60s - - - + + + diff --git a/apps/web-ele/src/views/mp/components/wx-reply/components/types.ts b/apps/web-ele/src/views/mp/modules/wx-reply/components/types.ts similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-reply/components/types.ts rename to apps/web-ele/src/views/mp/modules/wx-reply/components/types.ts diff --git a/apps/web-ele/src/views/mp/components/wx-reply/index.ts b/apps/web-ele/src/views/mp/modules/wx-reply/index.ts similarity index 100% rename from apps/web-ele/src/views/mp/components/wx-reply/index.ts rename to apps/web-ele/src/views/mp/modules/wx-reply/index.ts diff --git a/apps/web-ele/src/views/mp/components/wx-reply/main.vue b/apps/web-ele/src/views/mp/modules/wx-reply/main.vue similarity index 80% rename from apps/web-ele/src/views/mp/components/wx-reply/main.vue rename to apps/web-ele/src/views/mp/modules/wx-reply/main.vue index d3be2557a..fd440563e 100644 --- a/apps/web-ele/src/views/mp/components/wx-reply/main.vue +++ b/apps/web-ele/src/views/mp/modules/wx-reply/main.vue @@ -12,6 +12,10 @@ import type { Reply } from './components/types'; import { computed, ref, unref, watch } from 'vue'; +import { IconifyIcon } from '@vben/icons'; + +import { ElRow, ElTabPane, ElTabs } from 'element-plus'; + import TabImage from './components/TabImage.vue'; import TabMusic from './components/TabMusic.vue'; import TabNews from './components/TabNews.vue'; @@ -70,9 +74,9 @@ watch( ); /** 清除除了`type`, `accountId`的字段 */ -const clear = () => { +function clear() { reply.value = createEmptyReply(reply); -}; +} defineExpose({ clear, @@ -80,57 +84,57 @@ defineExpose({ - + - + - 文本 + 文本 - + - + - - 图片 - + + 图片 + - + - + - 语音 + 语音 - + - + - 视频 + 视频 - + - + - 图文 + 图文 - + - + - 音乐 + 音乐 - - + +
{{ reply.name }}