From d5a4b04b3b0adc867cd9678bf9c06a513cba89cb Mon Sep 17 00:00:00 2001 From: chenyuan <1154693969@qq.com> Date: Tue, 17 Dec 2024 11:54:41 +0800 Subject: [PATCH] =?UTF-8?q?remove=20=E5=85=AC=E4=BC=97=E5=8F=B7=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mp/account/index.ts | 46 -- src/api/mp/autoReply/index.ts | 39 -- src/api/mp/draft/index.ts | 35 -- src/api/mp/freePublish/index.ts | 23 - src/api/mp/material/index.ts | 16 - src/api/mp/menu/index.ts | 26 -- src/api/mp/message/index.ts | 17 - src/api/mp/statistics/index.ts | 33 -- src/api/mp/tag/index.ts | 60 --- src/api/mp/user/index.ts | 31 -- src/views/mp/account/AccountForm.vue | 160 ------- src/views/mp/account/index.vue | 195 --------- .../mp/autoReply/components/ReplyForm.vue | 80 ---- .../mp/autoReply/components/ReplyTable.vue | 115 ----- src/views/mp/autoReply/components/types.ts | 7 - src/views/mp/autoReply/index.vue | 241 ----------- .../mp/components/wx-account-select/index.ts | 3 - .../mp/components/wx-account-select/main.vue | 58 --- src/views/mp/components/wx-location/index.ts | 3 - src/views/mp/components/wx-location/main.vue | 73 ---- .../mp/components/wx-material-select/index.ts | 6 - .../mp/components/wx-material-select/main.vue | 279 ------------ .../mp/components/wx-material-select/types.ts | 11 - src/views/mp/components/wx-msg/card.scss | 116 ----- src/views/mp/components/wx-msg/comment.scss | 126 ------ .../mp/components/wx-msg/components/Msg.vue | 69 --- .../components/wx-msg/components/MsgEvent.vue | 49 --- .../components/wx-msg/components/MsgList.vue | 62 --- src/views/mp/components/wx-msg/index.ts | 6 - src/views/mp/components/wx-msg/main.vue | 192 --------- src/views/mp/components/wx-msg/types.ts | 17 - src/views/mp/components/wx-music/index.ts | 3 - src/views/mp/components/wx-music/main.vue | 62 --- src/views/mp/components/wx-news/index.ts | 3 - src/views/mp/components/wx-news/main.vue | 119 ------ .../wx-reply/components/TabImage.vue | 171 -------- .../wx-reply/components/TabMusic.vue | 116 ----- .../wx-reply/components/TabNews.vue | 76 ---- .../wx-reply/components/TabText.vue | 22 - .../wx-reply/components/TabVideo.vue | 128 ------ .../wx-reply/components/TabVoice.vue | 160 ------- .../components/wx-reply/components/types.ts | 54 --- src/views/mp/components/wx-reply/index.ts | 7 - src/views/mp/components/wx-reply/main.vue | 208 --------- .../mp/components/wx-video-play/index.ts | 3 - .../mp/components/wx-video-play/main.vue | 73 ---- .../mp/components/wx-voice-play/index.ts | 3 - .../mp/components/wx-voice-play/main.vue | 105 ----- src/views/mp/draft/components/CoverSelect.vue | 166 -------- src/views/mp/draft/components/DraftTable.vue | 87 ---- src/views/mp/draft/components/NewsForm.vue | 304 ------------- src/views/mp/draft/components/index.ts | 7 - src/views/mp/draft/components/types.ts | 40 -- src/views/mp/draft/editor-config.ts | 75 ---- src/views/mp/draft/index.vue | 202 --------- src/views/mp/draft/mock.js | 151 ------- src/views/mp/freePublish/index.vue | 336 --------------- src/views/mp/hooks/useUpload.ts | 50 --- .../mp/material/components/ImageTable.vue | 83 ---- .../mp/material/components/UploadFile.vue | 77 ---- .../mp/material/components/UploadVideo.vue | 129 ------ .../mp/material/components/VideoTable.vue | 59 --- .../mp/material/components/VoiceTable.vue | 51 --- src/views/mp/material/components/upload.ts | 32 -- src/views/mp/material/index.vue | 159 ------- src/views/mp/menu/assets/iphone_backImg.png | Bin 34272 -> 0 bytes src/views/mp/menu/assets/menu_foot.png | Bin 1348 -> 0 bytes src/views/mp/menu/assets/menu_head.png | Bin 12673 -> 0 bytes src/views/mp/menu/components/MenuEditor.vue | 244 ----------- .../mp/menu/components/MenuPreviewer.vue | 226 ---------- src/views/mp/menu/components/menuOptions.ts | 42 -- src/views/mp/menu/components/types.ts | 73 ---- src/views/mp/menu/index.vue | 401 ------------------ src/views/mp/message/MessageTable.vue | 145 ------- src/views/mp/message/index.vue | 152 ------- src/views/mp/statistics/index.vue | 349 --------------- src/views/mp/tag/TagForm.vue | 98 ----- src/views/mp/tag/index.vue | 154 ------- src/views/mp/user/UserForm.vue | 102 ----- src/views/mp/user/index.vue | 181 -------- 80 files changed, 7682 deletions(-) delete mode 100644 src/api/mp/account/index.ts delete mode 100644 src/api/mp/autoReply/index.ts delete mode 100644 src/api/mp/draft/index.ts delete mode 100644 src/api/mp/freePublish/index.ts delete mode 100644 src/api/mp/material/index.ts delete mode 100644 src/api/mp/menu/index.ts delete mode 100644 src/api/mp/message/index.ts delete mode 100644 src/api/mp/statistics/index.ts delete mode 100644 src/api/mp/tag/index.ts delete mode 100644 src/api/mp/user/index.ts delete mode 100644 src/views/mp/account/AccountForm.vue delete mode 100644 src/views/mp/account/index.vue delete mode 100644 src/views/mp/autoReply/components/ReplyForm.vue delete mode 100644 src/views/mp/autoReply/components/ReplyTable.vue delete mode 100644 src/views/mp/autoReply/components/types.ts delete mode 100644 src/views/mp/autoReply/index.vue delete mode 100644 src/views/mp/components/wx-account-select/index.ts delete mode 100644 src/views/mp/components/wx-account-select/main.vue delete mode 100644 src/views/mp/components/wx-location/index.ts delete mode 100644 src/views/mp/components/wx-location/main.vue delete mode 100644 src/views/mp/components/wx-material-select/index.ts delete mode 100644 src/views/mp/components/wx-material-select/main.vue delete mode 100644 src/views/mp/components/wx-material-select/types.ts delete mode 100644 src/views/mp/components/wx-msg/card.scss delete mode 100644 src/views/mp/components/wx-msg/comment.scss delete mode 100644 src/views/mp/components/wx-msg/components/Msg.vue delete mode 100644 src/views/mp/components/wx-msg/components/MsgEvent.vue delete mode 100644 src/views/mp/components/wx-msg/components/MsgList.vue delete mode 100644 src/views/mp/components/wx-msg/index.ts delete mode 100644 src/views/mp/components/wx-msg/main.vue delete mode 100644 src/views/mp/components/wx-msg/types.ts delete mode 100644 src/views/mp/components/wx-music/index.ts delete mode 100644 src/views/mp/components/wx-music/main.vue delete mode 100644 src/views/mp/components/wx-news/index.ts delete mode 100644 src/views/mp/components/wx-news/main.vue delete mode 100644 src/views/mp/components/wx-reply/components/TabImage.vue delete mode 100644 src/views/mp/components/wx-reply/components/TabMusic.vue delete mode 100644 src/views/mp/components/wx-reply/components/TabNews.vue delete mode 100644 src/views/mp/components/wx-reply/components/TabText.vue delete mode 100644 src/views/mp/components/wx-reply/components/TabVideo.vue delete mode 100644 src/views/mp/components/wx-reply/components/TabVoice.vue delete mode 100644 src/views/mp/components/wx-reply/components/types.ts delete mode 100644 src/views/mp/components/wx-reply/index.ts delete mode 100644 src/views/mp/components/wx-reply/main.vue delete mode 100644 src/views/mp/components/wx-video-play/index.ts delete mode 100644 src/views/mp/components/wx-video-play/main.vue delete mode 100644 src/views/mp/components/wx-voice-play/index.ts delete mode 100644 src/views/mp/components/wx-voice-play/main.vue delete mode 100644 src/views/mp/draft/components/CoverSelect.vue delete mode 100644 src/views/mp/draft/components/DraftTable.vue delete mode 100644 src/views/mp/draft/components/NewsForm.vue delete mode 100644 src/views/mp/draft/components/index.ts delete mode 100644 src/views/mp/draft/components/types.ts delete mode 100644 src/views/mp/draft/editor-config.ts delete mode 100644 src/views/mp/draft/index.vue delete mode 100644 src/views/mp/draft/mock.js delete mode 100644 src/views/mp/freePublish/index.vue delete mode 100644 src/views/mp/hooks/useUpload.ts delete mode 100644 src/views/mp/material/components/ImageTable.vue delete mode 100644 src/views/mp/material/components/UploadFile.vue delete mode 100644 src/views/mp/material/components/UploadVideo.vue delete mode 100644 src/views/mp/material/components/VideoTable.vue delete mode 100644 src/views/mp/material/components/VoiceTable.vue delete mode 100644 src/views/mp/material/components/upload.ts delete mode 100644 src/views/mp/material/index.vue delete mode 100644 src/views/mp/menu/assets/iphone_backImg.png delete mode 100644 src/views/mp/menu/assets/menu_foot.png delete mode 100644 src/views/mp/menu/assets/menu_head.png delete mode 100644 src/views/mp/menu/components/MenuEditor.vue delete mode 100644 src/views/mp/menu/components/MenuPreviewer.vue delete mode 100644 src/views/mp/menu/components/menuOptions.ts delete mode 100644 src/views/mp/menu/components/types.ts delete mode 100644 src/views/mp/menu/index.vue delete mode 100644 src/views/mp/message/MessageTable.vue delete mode 100644 src/views/mp/message/index.vue delete mode 100644 src/views/mp/statistics/index.vue delete mode 100644 src/views/mp/tag/TagForm.vue delete mode 100644 src/views/mp/tag/index.vue delete mode 100644 src/views/mp/user/UserForm.vue delete mode 100644 src/views/mp/user/index.vue diff --git a/src/api/mp/account/index.ts b/src/api/mp/account/index.ts deleted file mode 100644 index e973cda3..00000000 --- a/src/api/mp/account/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import request from '@/config/axios' - -export interface AccountVO { - id: number - name: string -} - -// 创建公众号账号 -export const createAccount = async (data) => { - return await request.post({ url: '/mp/account/create', data }) -} - -// 更新公众号账号 -export const updateAccount = async (data) => { - return request.put({ url: '/mp/account/update', data: data }) -} - -// 删除公众号账号 -export const deleteAccount = async (id) => { - return request.delete({ url: '/mp/account/delete?id=' + id, method: 'delete' }) -} - -// 获得公众号账号 -export const getAccount = async (id) => { - return request.get({ url: '/mp/account/get?id=' + id }) -} - -// 获得公众号账号分页 -export const getAccountPage = async (query) => { - return request.get({ url: '/mp/account/page', params: query }) -} - -// 获取公众号账号精简信息列表 -export const getSimpleAccountList = async () => { - return request.get({ url: '/mp/account/list-all-simple' }) -} - -// 生成公众号二维码 -export const generateAccountQrCode = async (id) => { - return request.put({ url: '/mp/account/generate-qr-code?id=' + id }) -} - -// 清空公众号 API 配额 -export const clearAccountQuota = async (id) => { - return request.put({ url: '/mp/account/clear-quota?id=' + id }) -} diff --git a/src/api/mp/autoReply/index.ts b/src/api/mp/autoReply/index.ts deleted file mode 100644 index 5045e6d5..00000000 --- a/src/api/mp/autoReply/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import request from '@/config/axios' - -// 创建公众号的自动回复 -export const createAutoReply = (data) => { - return request.post({ - url: '/mp/auto-reply/create', - data: data - }) -} - -// 更新公众号的自动回复 -export const updateAutoReply = (data) => { - return request.put({ - url: '/mp/auto-reply/update', - data: data - }) -} - -// 删除公众号的自动回复 -export const deleteAutoReply = (id) => { - return request.delete({ - url: '/mp/auto-reply/delete?id=' + id - }) -} - -// 获得公众号的自动回复 -export const getAutoReply = (id) => { - return request.get({ - url: '/mp/auto-reply/get?id=' + id - }) -} - -// 获得公众号的自动回复分页 -export const getAutoReplyPage = (query) => { - return request.get({ - url: '/mp/auto-reply/page', - params: query - }) -} diff --git a/src/api/mp/draft/index.ts b/src/api/mp/draft/index.ts deleted file mode 100644 index ce6a4431..00000000 --- a/src/api/mp/draft/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号草稿分页 -export const getDraftPage = (query) => { - return request.get({ - url: '/mp/draft/page', - params: query - }) -} - -// 创建公众号草稿 -export const createDraft = (accountId, articles) => { - return request.post({ - url: '/mp/draft/create?accountId=' + accountId, - data: { - articles - } - }) -} - -// 更新公众号草稿 -export const updateDraft = (accountId, mediaId, articles) => { - return request.put({ - url: '/mp/draft/update?accountId=' + accountId + '&mediaId=' + mediaId, - method: 'put', - data: articles - }) -} - -// 删除公众号草稿 -export const deleteDraft = (accountId, mediaId) => { - return request.delete({ - url: '/mp/draft/delete?accountId=' + accountId + '&mediaId=' + mediaId - }) -} diff --git a/src/api/mp/freePublish/index.ts b/src/api/mp/freePublish/index.ts deleted file mode 100644 index beef0262..00000000 --- a/src/api/mp/freePublish/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号素材分页 -export const getFreePublishPage = (query) => { - return request.get({ - url: '/mp/free-publish/page', - params: query - }) -} - -// 删除公众号素材 -export const deleteFreePublish = (accountId, articleId) => { - return request.delete({ - url: '/mp/free-publish/delete?accountId=' + accountId + '&articleId=' + articleId - }) -} - -// 发布公众号素材 -export const submitFreePublish = (accountId, mediaId) => { - return request.post({ - url: '/mp/free-publish/submit?accountId=' + accountId + '&mediaId=' + mediaId - }) -} diff --git a/src/api/mp/material/index.ts b/src/api/mp/material/index.ts deleted file mode 100644 index fcc37abe..00000000 --- a/src/api/mp/material/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号素材分页 -export const getMaterialPage = (query) => { - return request.get({ - url: '/mp/material/page', - params: query - }) -} - -// 删除公众号永久素材 -export const deletePermanentMaterial = (id) => { - return request.delete({ - url: '/mp/material/delete-permanent?id=' + id - }) -} diff --git a/src/api/mp/menu/index.ts b/src/api/mp/menu/index.ts deleted file mode 100644 index cc78647c..00000000 --- a/src/api/mp/menu/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号菜单列表 -export const getMenuList = (accountId) => { - return request.get({ - url: '/mp/menu/list?accountId=' + accountId - }) -} - -// 保存公众号菜单 -export const saveMenu = (accountId, menus) => { - return request.post({ - url: '/mp/menu/save', - data: { - accountId, - menus - } - }) -} - -// 删除公众号菜单 -export const deleteMenu = (accountId) => { - return request.delete({ - url: '/mp/menu/delete?accountId=' + accountId - }) -} diff --git a/src/api/mp/message/index.ts b/src/api/mp/message/index.ts deleted file mode 100644 index ad9b95dd..00000000 --- a/src/api/mp/message/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import request from '@/config/axios' - -// 获得公众号消息分页 -export const getMessagePage = (query: PageParam) => { - return request.get({ - url: '/mp/message/page', - params: query - }) -} - -// 给粉丝发送消息 -export const sendMessage = (data) => { - return request.post({ - url: '/mp/message/send', - data: data - }) -} diff --git a/src/api/mp/statistics/index.ts b/src/api/mp/statistics/index.ts deleted file mode 100644 index 72cae601..00000000 --- a/src/api/mp/statistics/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -import request from '@/config/axios' - -// 获取消息发送概况数据 -export const getUpstreamMessage = (query) => { - return request.get({ - url: '/mp/statistics/upstream-message', - params: query - }) -} - -// 用户增减数据 -export const getUserSummary = (query) => { - return request.get({ - url: '/mp/statistics/user-summary', - params: query - }) -} - -// 获得用户累计数据 -export const getUserCumulate = (query) => { - return request.get({ - url: '/mp/statistics/user-cumulate', - params: query - }) -} - -// 获得接口分析数据 -export const getInterfaceSummary = (query) => { - return request.get({ - url: '/mp/statistics/interface-summary', - params: query - }) -} diff --git a/src/api/mp/tag/index.ts b/src/api/mp/tag/index.ts deleted file mode 100644 index 50183a51..00000000 --- a/src/api/mp/tag/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import request from '@/config/axios' - -export interface TagVO { - id?: number - name: string - accountId: number - createTime: Date -} - -// 创建公众号标签 -export const createTag = (data: TagVO) => { - return request.post({ - url: '/mp/tag/create', - data: data - }) -} - -// 更新公众号标签 -export const updateTag = (data: TagVO) => { - return request.put({ - url: '/mp/tag/update', - data: data - }) -} - -// 删除公众号标签 -export const deleteTag = (id: number) => { - return request.delete({ - url: '/mp/tag/delete?id=' + id - }) -} - -// 获得公众号标签 -export const getTag = (id: number) => { - return request.get({ - url: '/mp/tag/get?id=' + id - }) -} - -// 获得公众号标签分页 -export const getTagPage = (query: PageParam) => { - return request.get({ - url: '/mp/tag/page', - params: query - }) -} - -// 获取公众号标签精简信息列表 -export const getSimpleTagList = () => { - return request.get({ - url: '/mp/tag/list-all-simple' - }) -} - -// 同步公众号标签 -export const syncTag = (accountId: number) => { - return request.post({ - url: '/mp/tag/sync?accountId=' + accountId - }) -} diff --git a/src/api/mp/user/index.ts b/src/api/mp/user/index.ts deleted file mode 100644 index b89acc7d..00000000 --- a/src/api/mp/user/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import request from '@/config/axios' - -// 更新公众号粉丝 -export const updateUser = (data) => { - return request.put({ - url: '/mp/user/update', - data: data - }) -} - -// 获得公众号粉丝 -export const getUser = (id) => { - return request.get({ - url: '/mp/user/get?id=' + id - }) -} - -// 获得公众号粉丝分页 -export const getUserPage = (query) => { - return request.get({ - url: '/mp/user/page', - params: query - }) -} - -// 同步公众号粉丝 -export const syncUser = (accountId) => { - return request.post({ - url: '/mp/user/sync?accountId=' + accountId - }) -} diff --git a/src/views/mp/account/AccountForm.vue b/src/views/mp/account/AccountForm.vue deleted file mode 100644 index c721013c..00000000 --- a/src/views/mp/account/AccountForm.vue +++ /dev/null @@ -1,160 +0,0 @@ - - diff --git a/src/views/mp/account/index.vue b/src/views/mp/account/index.vue deleted file mode 100644 index 65517070..00000000 --- a/src/views/mp/account/index.vue +++ /dev/null @@ -1,195 +0,0 @@ - - diff --git a/src/views/mp/autoReply/components/ReplyForm.vue b/src/views/mp/autoReply/components/ReplyForm.vue deleted file mode 100644 index 1c9dee49..00000000 --- a/src/views/mp/autoReply/components/ReplyForm.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - - diff --git a/src/views/mp/autoReply/components/ReplyTable.vue b/src/views/mp/autoReply/components/ReplyTable.vue deleted file mode 100644 index 2abe9f24..00000000 --- a/src/views/mp/autoReply/components/ReplyTable.vue +++ /dev/null @@ -1,115 +0,0 @@ - - diff --git a/src/views/mp/autoReply/components/types.ts b/src/views/mp/autoReply/components/types.ts deleted file mode 100644 index 68bc5c94..00000000 --- a/src/views/mp/autoReply/components/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -// 消息类型(Follow: 关注时回复;Message: 消息回复;Keyword: 关键词回复) -// 作为 tab.name,enum 的数字不能随意修改,与 api 参数相关 -export enum MsgType { - Follow = 1, - Message = 2, - Keyword = 3 -} diff --git a/src/views/mp/autoReply/index.vue b/src/views/mp/autoReply/index.vue deleted file mode 100644 index 0b006470..00000000 --- a/src/views/mp/autoReply/index.vue +++ /dev/null @@ -1,241 +0,0 @@ - - diff --git a/src/views/mp/components/wx-account-select/index.ts b/src/views/mp/components/wx-account-select/index.ts deleted file mode 100644 index 97556b2f..00000000 --- a/src/views/mp/components/wx-account-select/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import WxAccountSelect from './main.vue' - -export default WxAccountSelect diff --git a/src/views/mp/components/wx-account-select/main.vue b/src/views/mp/components/wx-account-select/main.vue deleted file mode 100644 index 4df4cbe7..00000000 --- a/src/views/mp/components/wx-account-select/main.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - diff --git a/src/views/mp/components/wx-location/index.ts b/src/views/mp/components/wx-location/index.ts deleted file mode 100644 index 14ba8644..00000000 --- a/src/views/mp/components/wx-location/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import WxLocation from './main.vue' - -export default WxLocation diff --git a/src/views/mp/components/wx-location/main.vue b/src/views/mp/components/wx-location/main.vue deleted file mode 100644 index 0b68d49d..00000000 --- a/src/views/mp/components/wx-location/main.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - - diff --git a/src/views/mp/components/wx-material-select/index.ts b/src/views/mp/components/wx-material-select/index.ts deleted file mode 100644 index eeda31d5..00000000 --- a/src/views/mp/components/wx-material-select/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import WxMaterialSelect from './main.vue' -import { NewsType, MaterialType } from './types' - -export { NewsType, MaterialType } - -export default WxMaterialSelect diff --git a/src/views/mp/components/wx-material-select/main.vue b/src/views/mp/components/wx-material-select/main.vue deleted file mode 100644 index aad25ea8..00000000 --- a/src/views/mp/components/wx-material-select/main.vue +++ /dev/null @@ -1,279 +0,0 @@ - - - - - diff --git a/src/views/mp/components/wx-material-select/types.ts b/src/views/mp/components/wx-material-select/types.ts deleted file mode 100644 index d4add1d5..00000000 --- a/src/views/mp/components/wx-material-select/types.ts +++ /dev/null @@ -1,11 +0,0 @@ -export enum NewsType { - Draft = '2', - Published = '1' -} - -export enum MaterialType { - Image = 'image', - Voice = 'voice', - Video = 'video', - News = 'news' -} diff --git a/src/views/mp/components/wx-msg/card.scss b/src/views/mp/components/wx-msg/card.scss deleted file mode 100644 index 7fbbe802..00000000 --- a/src/views/mp/components/wx-msg/card.scss +++ /dev/null @@ -1,116 +0,0 @@ -.avue-card { - &__item { - margin-bottom: 16px; - border: 1px solid #e8e8e8; - background-color: #fff; - box-sizing: border-box; - color: rgba(0, 0, 0, 0.65); - font-size: 14px; - font-variant: tabular-nums; - line-height: 1.5; - list-style: none; - font-feature-settings: 'tnum'; - cursor: pointer; - height: 200px; - - &:hover { - border-color: rgba(0, 0, 0, 0.09); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.09); - } - - &--add { - border: 1px dashed #000; - width: 100%; - color: rgba(0, 0, 0, 0.45); - background-color: #fff; - border-color: #d9d9d9; - border-radius: 2px; - display: flex; - align-items: center; - justify-content: center; - font-size: 16px; - - i { - margin-right: 10px; - } - - &:hover { - color: #40a9ff; - background-color: #fff; - border-color: #40a9ff; - } - } - } - - &__body { - display: flex; - padding: 24px; - } - - &__detail { - flex: 1; - } - - &__avatar { - width: 48px; - height: 48px; - border-radius: 48px; - overflow: hidden; - margin-right: 12px; - - img { - width: 100%; - height: 100%; - } - } - - &__title { - color: rgba(0, 0, 0, 0.85); - margin-bottom: 12px; - font-size: 16px; - - &:hover { - color: #1890ff; - } - } - - &__info { - color: rgba(0, 0, 0, 0.45); - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 3; - overflow: hidden; - height: 64px; - } - - &__menu { - display: flex; - justify-content: space-around; - height: 50px; - background: #f7f9fa; - color: rgba(0, 0, 0, 0.45); - text-align: center; - line-height: 50px; - - &:hover { - color: #1890ff; - } - } -} - -/** joolun 额外加的 */ -.avue-comment__main { - flex: unset !important; - border-radius: 5px !important; - margin: 0 8px !important; -} - -.avue-comment__header { - border-top-left-radius: 5px; - border-top-right-radius: 5px; -} - -.avue-comment__body { - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; -} diff --git a/src/views/mp/components/wx-msg/comment.scss b/src/views/mp/components/wx-msg/comment.scss deleted file mode 100644 index 7812c2a3..00000000 --- a/src/views/mp/components/wx-msg/comment.scss +++ /dev/null @@ -1,126 +0,0 @@ -/* 来自 https://github.com/nmxiaowei/avue/blob/master/styles/src/element-ui/comment.scss */ -.avue-comment { - margin-bottom: 30px; - display: flex; - align-items: flex-start; - - &--reverse { - flex-direction: row-reverse; - - .avue-comment__main { - &:before, - &:after { - left: auto; - right: -8px; - border-width: 8px 0 8px 8px; - } - - &:before { - border-left-color: #dedede; - } - - &:after { - border-left-color: #f8f8f8; - margin-right: 1px; - margin-left: auto; - } - } - } - - &__avatar { - width: 48px; - height: 48px; - border-radius: 50%; - border: 1px solid transparent; - box-sizing: border-box; - vertical-align: middle; - } - - &__header { - padding: 5px 15px; - background: #f8f8f8; - border-bottom: 1px solid #eee; - display: flex; - align-items: center; - justify-content: space-between; - } - - &__author { - font-weight: 700; - font-size: 14px; - color: #999; - } - - &__main { - flex: 1; - margin: 0 20px; - position: relative; - border: 1px solid #dedede; - border-radius: 2px; - - &:before, - &:after { - position: absolute; - top: 10px; - left: -8px; - right: 100%; - width: 0; - height: 0; - display: block; - content: ' '; - border-color: transparent; - border-style: solid solid outset; - border-width: 8px 8px 8px 0; - pointer-events: none; - } - - &:before { - border-right-color: #dedede; - z-index: 1; - } - - &:after { - border-right-color: #f8f8f8; - margin-left: 1px; - z-index: 2; - } - } - - &__body { - padding: 15px; - overflow: hidden; - background: #fff; - font-family: - Segoe UI, - Lucida Grande, - Helvetica, - Arial, - Microsoft YaHei, - FreeSans, - Arimo, - Droid Sans, - wenquanyi micro hei, - Hiragino Sans GB, - Hiragino Sans GB W3, - FontAwesome, - sans-serif; - color: #333; - font-size: 14px; - } - - blockquote { - margin: 0; - font-family: - Georgia, - Times New Roman, - Times, - Kai, - Kaiti SC, - KaiTi, - BiauKai, - FontAwesome, - serif; - padding: 1px 0 1px 15px; - border-left: 4px solid #ddd; - } -} diff --git a/src/views/mp/components/wx-msg/components/Msg.vue b/src/views/mp/components/wx-msg/components/Msg.vue deleted file mode 100644 index c35e268e..00000000 --- a/src/views/mp/components/wx-msg/components/Msg.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - - - diff --git a/src/views/mp/components/wx-msg/components/MsgEvent.vue b/src/views/mp/components/wx-msg/components/MsgEvent.vue deleted file mode 100644 index 77beda48..00000000 --- a/src/views/mp/components/wx-msg/components/MsgEvent.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - diff --git a/src/views/mp/components/wx-msg/components/MsgList.vue b/src/views/mp/components/wx-msg/components/MsgList.vue deleted file mode 100644 index ce7063b2..00000000 --- a/src/views/mp/components/wx-msg/components/MsgList.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - diff --git a/src/views/mp/components/wx-msg/index.ts b/src/views/mp/components/wx-msg/index.ts deleted file mode 100644 index fd9eddd7..00000000 --- a/src/views/mp/components/wx-msg/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import WxMsg from './main.vue' -import { MsgType } from './types' - -export { MsgType } - -export default WxMsg diff --git a/src/views/mp/components/wx-msg/main.vue b/src/views/mp/components/wx-msg/main.vue deleted file mode 100644 index 8b7cc3a2..00000000 --- a/src/views/mp/components/wx-msg/main.vue +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - diff --git a/src/views/mp/components/wx-msg/types.ts b/src/views/mp/components/wx-msg/types.ts deleted file mode 100644 index 38a0ff86..00000000 --- a/src/views/mp/components/wx-msg/types.ts +++ /dev/null @@ -1,17 +0,0 @@ -export enum MsgType { - Event = 'event', - Text = 'text', - Voice = 'voice', - Image = 'image', - Video = 'video', - Link = 'link', - Location = 'location', - Music = 'music', - News = 'news' -} - -export interface User { - nickname: string - avatar: string - accountId: number -} diff --git a/src/views/mp/components/wx-music/index.ts b/src/views/mp/components/wx-music/index.ts deleted file mode 100644 index c4211261..00000000 --- a/src/views/mp/components/wx-music/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import WxMusic from './main.vue' - -export default WxMusic diff --git a/src/views/mp/components/wx-music/main.vue b/src/views/mp/components/wx-music/main.vue deleted file mode 100644 index 6b44f449..00000000 --- a/src/views/mp/components/wx-music/main.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - diff --git a/src/views/mp/components/wx-news/index.ts b/src/views/mp/components/wx-news/index.ts deleted file mode 100644 index e68f4d5d..00000000 --- a/src/views/mp/components/wx-news/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import WxNews from './main.vue' - -export default WxNews diff --git a/src/views/mp/components/wx-news/main.vue b/src/views/mp/components/wx-news/main.vue deleted file mode 100644 index 154291b3..00000000 --- a/src/views/mp/components/wx-news/main.vue +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - diff --git a/src/views/mp/components/wx-reply/components/TabImage.vue b/src/views/mp/components/wx-reply/components/TabImage.vue deleted file mode 100644 index 6dbfeed6..00000000 --- a/src/views/mp/components/wx-reply/components/TabImage.vue +++ /dev/null @@ -1,171 +0,0 @@ - - - - - diff --git a/src/views/mp/components/wx-reply/components/TabMusic.vue b/src/views/mp/components/wx-reply/components/TabMusic.vue deleted file mode 100644 index 6421d244..00000000 --- a/src/views/mp/components/wx-reply/components/TabMusic.vue +++ /dev/null @@ -1,116 +0,0 @@ - - - diff --git a/src/views/mp/components/wx-reply/components/TabNews.vue b/src/views/mp/components/wx-reply/components/TabNews.vue deleted file mode 100644 index 565b1fba..00000000 --- a/src/views/mp/components/wx-reply/components/TabNews.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/src/views/mp/components/wx-reply/components/TabText.vue b/src/views/mp/components/wx-reply/components/TabText.vue deleted file mode 100644 index 307e48f4..00000000 --- a/src/views/mp/components/wx-reply/components/TabText.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - diff --git a/src/views/mp/components/wx-reply/components/TabVideo.vue b/src/views/mp/components/wx-reply/components/TabVideo.vue deleted file mode 100644 index adb8fa37..00000000 --- a/src/views/mp/components/wx-reply/components/TabVideo.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - - - diff --git a/src/views/mp/components/wx-reply/components/TabVoice.vue b/src/views/mp/components/wx-reply/components/TabVoice.vue deleted file mode 100644 index 5dbe9a00..00000000 --- a/src/views/mp/components/wx-reply/components/TabVoice.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - diff --git a/src/views/mp/components/wx-reply/components/types.ts b/src/views/mp/components/wx-reply/components/types.ts deleted file mode 100644 index 3e07d6e5..00000000 --- a/src/views/mp/components/wx-reply/components/types.ts +++ /dev/null @@ -1,54 +0,0 @@ -enum ReplyType { - News = 'news', - Image = 'image', - Voice = 'voice', - Video = 'video', - Music = 'music', - Text = 'text' -} - -interface _Reply { - accountId: number - type: ReplyType - name?: string | null - content?: string | null - mediaId?: string | null - url?: string | null - title?: string | null - description?: string | null - thumbMediaId?: string | null - thumbMediaUrl?: string | null - musicUrl?: string | null - hqMusicUrl?: string | null - introduction?: string | null - articles?: any[] -} - -type Reply = _Reply //Partial<_Reply> - -enum NewsType { - Published = '1', - Draft = '2' -} - -/** 利用旧的reply[accountId, type]初始化新的Reply */ -const createEmptyReply = (old: Reply | Ref): Reply => { - return { - accountId: unref(old).accountId, - type: unref(old).type, - name: null, - content: null, - mediaId: null, - url: null, - title: null, - description: null, - thumbMediaId: null, - thumbMediaUrl: null, - musicUrl: null, - hqMusicUrl: null, - introduction: null, - articles: [] - } -} - -export { Reply, NewsType, ReplyType, createEmptyReply } diff --git a/src/views/mp/components/wx-reply/index.ts b/src/views/mp/components/wx-reply/index.ts deleted file mode 100644 index d1da217e..00000000 --- a/src/views/mp/components/wx-reply/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Reply, NewsType, ReplyType, createEmptyReply } from './components/types' - -import WxReplySelect from './main.vue' - -export type { Reply } -export { createEmptyReply, NewsType, ReplyType } -export default WxReplySelect diff --git a/src/views/mp/components/wx-reply/main.vue b/src/views/mp/components/wx-reply/main.vue deleted file mode 100644 index 2c9d5f21..00000000 --- a/src/views/mp/components/wx-reply/main.vue +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - diff --git a/src/views/mp/components/wx-video-play/index.ts b/src/views/mp/components/wx-video-play/index.ts deleted file mode 100644 index 91e00efa..00000000 --- a/src/views/mp/components/wx-video-play/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import WxVideoPlayer from './main.vue' - -export default WxVideoPlayer diff --git a/src/views/mp/components/wx-video-play/main.vue b/src/views/mp/components/wx-video-play/main.vue deleted file mode 100644 index d544bbea..00000000 --- a/src/views/mp/components/wx-video-play/main.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - - diff --git a/src/views/mp/components/wx-voice-play/index.ts b/src/views/mp/components/wx-voice-play/index.ts deleted file mode 100644 index 9eb78e02..00000000 --- a/src/views/mp/components/wx-voice-play/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import WxVoicePlayer from './main.vue' - -export default WxVoicePlayer diff --git a/src/views/mp/components/wx-voice-play/main.vue b/src/views/mp/components/wx-voice-play/main.vue deleted file mode 100644 index fe7f0cab..00000000 --- a/src/views/mp/components/wx-voice-play/main.vue +++ /dev/null @@ -1,105 +0,0 @@ - - - - - diff --git a/src/views/mp/draft/components/CoverSelect.vue b/src/views/mp/draft/components/CoverSelect.vue deleted file mode 100644 index 499f1a64..00000000 --- a/src/views/mp/draft/components/CoverSelect.vue +++ /dev/null @@ -1,166 +0,0 @@ - - - - - diff --git a/src/views/mp/draft/components/DraftTable.vue b/src/views/mp/draft/components/DraftTable.vue deleted file mode 100644 index bb512d88..00000000 --- a/src/views/mp/draft/components/DraftTable.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - - - diff --git a/src/views/mp/draft/components/NewsForm.vue b/src/views/mp/draft/components/NewsForm.vue deleted file mode 100644 index 9b1e4745..00000000 --- a/src/views/mp/draft/components/NewsForm.vue +++ /dev/null @@ -1,304 +0,0 @@ - - - - - diff --git a/src/views/mp/draft/components/index.ts b/src/views/mp/draft/components/index.ts deleted file mode 100644 index 51e843d3..00000000 --- a/src/views/mp/draft/components/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { Article, NewsItem, NewsItemList } from './types' -import { createEmptyNewsItem } from './types' -import DraftTable from './DraftTable.vue' -import NewsForm from './NewsForm.vue' - -export { DraftTable, NewsForm, createEmptyNewsItem } -export type { Article, NewsItem, NewsItemList } diff --git a/src/views/mp/draft/components/types.ts b/src/views/mp/draft/components/types.ts deleted file mode 100644 index a8cf00c3..00000000 --- a/src/views/mp/draft/components/types.ts +++ /dev/null @@ -1,40 +0,0 @@ -interface NewsItem { - title: string - thumbMediaId: string - author: string - digest: string - showCoverPic: string - content: string - contentSourceUrl: string - needOpenComment: string - onlyFansCanComment: string - thumbUrl: string -} - -interface NewsItemList { - newsItem: NewsItem[] -} - -interface Article { - mediaId: string - content: NewsItemList - updateTime: number -} - -const createEmptyNewsItem = (): NewsItem => { - return { - title: '', - thumbMediaId: '', - author: '', - digest: '', - showCoverPic: '', - content: '', - contentSourceUrl: '', - needOpenComment: '', - onlyFansCanComment: '', - thumbUrl: '' - } -} - -export type { Article, NewsItem, NewsItemList } -export { createEmptyNewsItem } diff --git a/src/views/mp/draft/editor-config.ts b/src/views/mp/draft/editor-config.ts deleted file mode 100644 index f109d954..00000000 --- a/src/views/mp/draft/editor-config.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { IEditorConfig } from '@wangeditor/editor' -import { getAccessToken, getTenantId } from '@/utils/auth' - -const message = useMessage() - -type InsertFnType = (url: string, alt: string, href: string) => void - -export const createEditorConfig = ( - server: string, - accountId: number | undefined -): Partial => { - return { - MENU_CONF: { - ['uploadImage']: { - server, - // 单个文件的最大体积限制,默认为 2M - maxFileSize: 5 * 1024 * 1024, - // 最多可上传几个文件,默认为 100 - maxNumberOfFiles: 10, - // 选择文件时的类型限制,默认为 ['image/*'] 。如不想限制,则设置为 [] - allowedFileTypes: ['image/*'], - - // 自定义上传参数,例如传递验证的 token 等。参数会被添加到 formData 中,一起上传到服务端。 - meta: { - accountId: accountId, - type: 'image' - }, - // 将 meta 拼接到 url 参数中,默认 false - metaWithUrl: true, - - // 自定义增加 http header - headers: { - Accept: '*', - Authorization: 'Bearer ' + getAccessToken(), - 'tenantId': getTenantId() - }, - - // 跨域是否传递 cookie ,默认为 false - withCredentials: true, - - // 超时时间,默认为 10 秒 - timeout: 5 * 1000, // 5 秒 - - // form-data fieldName,后端接口参数名称,默认值wangeditor-uploaded-image - fieldName: 'file', - - // 上传之前触发 - onBeforeUpload(file: File) { - console.log(file) - return file - }, - // 上传进度的回调函数 - onProgress(progress: number) { - // progress 是 0-100 的数字 - console.log('progress', progress) - }, - onSuccess(file: File, res: any) { - console.log('onSuccess', file, res) - }, - onFailed(file: File, res: any) { - message.alertError(res.message) - console.log('onFailed', file, res) - }, - onError(file: File, err: any, res: any) { - message.alertError(err.message) - console.error('onError', file, err, res) - }, - // 自定义插入图片 - customInsert(res: any, insertFn: InsertFnType) { - insertFn(res.data.url, 'image', res.data.url) - } - } - } - } -} diff --git a/src/views/mp/draft/index.vue b/src/views/mp/draft/index.vue deleted file mode 100644 index db24596a..00000000 --- a/src/views/mp/draft/index.vue +++ /dev/null @@ -1,202 +0,0 @@ - - - - - diff --git a/src/views/mp/draft/mock.js b/src/views/mp/draft/mock.js deleted file mode 100644 index e8493f6c..00000000 --- a/src/views/mp/draft/mock.js +++ /dev/null @@ -1,151 +0,0 @@ -export default { - list: [ - { - mediaId: 'r6ryvl6LrxBU0miaST4Y-q-G9pdsmZw0OYG4FzHQkKfpLfEwIH51wy2bxisx8PvW', - content: { - newsItem: [ - { - title: '我是标题(OOO)', - author: '我是作者', - digest: '我是摘要', - content: '我是内容', - contentSourceUrl: 'https://www.iocoder.cn', - thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn', - showCoverPic: 0, - needOpenComment: 0, - onlyFansCanComment: 0, - url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9XaFphcmtJVFh3VEc4Q1MxQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuN2QxTE56SFBCYXc2RE9NcUxIeS1CQjJuUHhTWjBlN2VOeGRpRi1fZUhwN1FNQjdrQV9yRU9EU0hibHREZmZoVW5acnZrN3ZjaWsxejR3RGpKczBzTHFIM0dFNFZWVkpBc0dWWlAzUEhlVmpnfn4%3D&chksm=1f6354802814dd969ef83c0f3babe555c614270b30bc383beaf7ffd13b0257f0fe5ced9af694#rd', - thumbUrl: - 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png' - }, - { - title: '我是标题(XXX)', - author: '我是作者', - digest: '我是摘要', - content: '我是内容', - contentSourceUrl: 'https://www.iocoder.cn', - thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn', - showCoverPic: 0, - needOpenComment: 0, - onlyFansCanComment: 0, - url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9yTlYwOEs1clpwcE5OUEhCQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuN0NSMjFqN3N1aUZMbFNVLTZHN2ZDME9qOGp2THk2RFNlSTlKZ3Y1czFVZDdQQm5IeUg3dEppSUtpQUh5SExOOTRkT3dHNUdBdHdWSWlOendlREV3dS1jUEVQbFpiVTZmVW5iRWhZcGdkNTFRfn4%3D&chksm=1f6354802814dd96a403151cd44c7da4eecf0e475d25423e46ecd795b513bafd829a75daef9b#rd', - thumbUrl: - 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png' - } - ] - }, - updateTime: 1673655730 - }, - { - mediaId: 'r6ryvl6LrxBU0miaST4Y-jGpXnO73ihN0lsNXknCRQHapp2xgHMRxHKG50LituFe', - content: { - newsItem: [ - { - title: '我是标题(修改)', - author: '我是作者', - digest: '我是摘要', - content: '我是内容', - contentSourceUrl: 'https://www.iocoder.cn', - thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn', - showCoverPic: 0, - needOpenComment: 0, - onlyFansCanComment: 0, - url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl95WVFXYndIZnZJd0t5cjgvQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuN1dlNURPbWswbEF4RDd5dVJTdjQ4cm9Cc0Q1TWhpMUh6SE1hVEE3ZHljaHhlZjZYSGF5N2JNSHpDTlh6ajNZbkpGTGpTcUQ4M3NMdW41ZUpXNFZZQ1VKbVlaMVp5ekxEV1czREdsY1dOYTZnfn4%3D&chksm=1f6354be2814dda8e6238037c2ebd52b1c8e80e93249a861ad80e4d40e5ca7207233475ca689#rd', - thumbUrl: - 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png' - } - ] - }, - updateTime: 1673655584 - }, - { - mediaId: 'r6ryvl6LrxBU0miaST4Y-v5SrbNCPpD6M_p3TmSrYwTjKogs-0DMJgmjMyNZPeMO', - content: { - newsItem: [ - { - title: '1321', - author: '3232', - digest: '1333', - content: '

444

', - contentSourceUrl: 'http://www.iocoder.cn', - thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-tlQmcl3RdC-Jcgns6IQtf7zenGy3b86WLT7GzUcrb1T', - showCoverPic: 0, - needOpenComment: 0, - onlyFansCanComment: 0, - url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9jelJiaDAzbmdpSkJOZ2M2QWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNDNXVVc2ZDRYeTY0Zm1weXR6dE9vQWh1TzEwbEpUVnRfVzJyaGFDNXBkZ0ZXM2JFOTNaRHNhOHRUeFdEanhMeS01X01kMUNWQ1BpRER3cjYwTl9pMnpFLUJhZXFucVVfM1pDUXlTUEl1S25nfn4%3D&chksm=1f6354bc2814ddaa56a90ad5bc3d078601c8d1589ba01827a8170587bc830ff9747b5f59c3a0#rd', - thumbUrl: - 'http://mmbiz.qpic.cn/mmbiz_png/btUmCVHwbJUoicwBiacjVeQbu6QxgBVrukfSJXz509boa21SpH8OVHAqXCJiaiaAaHQJNxwwsa0gHRXVr0G5EZYamw/0?wx_fmt=png' - } - ] - }, - updateTime: 1673628969 - }, - { - mediaId: 'r6ryvl6LrxBU0miaST4Y-vdWrisK5EZbk4Y3tzh8P0PG0eEUbnQrh0BcsEb3WNP0', - content: { - newsItem: [ - { - title: 'tudou', - author: 'haha', - digest: '312', - content: '

132312

', - contentSourceUrl: 'http://www.iocoder.cn', - thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG', - showCoverPic: 0, - needOpenComment: 0, - onlyFansCanComment: 0, - url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9qdkJ1ZjBoUmg2Uk9TS3RlQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNVg2aTJsaC1fMkU2eXNacUplN3VDTTZFZkhtMjhuTUZvWkxsNDBRSXExY2tiVXRHb09TaHgtREhzY3doZ0JYeC1TSTZ5eWZldXJsOWtfbV8yMi1aYkcyZ2pOY0haM0Ntb3VSWEtxUGVFRlNBfn4%3D&chksm=1f6354ba2814ddacf0184b24d310483641ef190b1faac098c285eb416c70017e2f54decfa1af#rd', - thumbUrl: - 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pgFtUNLu1foMSAMkoOsrQrTZ8EtTMssBLfTtzP0dfjG.png' - } - ] - }, - updateTime: 1673628760 - }, - { - mediaId: 'r6ryvl6LrxBU0miaST4Y-u9kTIm1DhWZDdXyxsxUVv2Z5DAB99IPxkIRTUUD206k', - content: { - newsItem: [ - { - title: '12', - author: '333', - digest: '123', - content: '123', - contentSourceUrl: 'https://www.iocoder.cn', - thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8', - showCoverPic: 0, - needOpenComment: 0, - onlyFansCanComment: 0, - url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9qVVhpSDZUaFJWTzBBWWRVQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNWRnTDJWYmF2NER0clV1bThmQ0xUR3hqQnJkZ3BJSUNmNDJmc0lCZ1dadkVnZ3Z5bkN4YWtVUjhoaWZWYzZURUR4NnpMd0Y4Z3U5aUdib0lkMzI4Rjg3SG9JX2FycTMxbUctOHplaTlQVVhnfn4%3D&chksm=1f6354b62814dda076c778af33f06580165d8aa81f7798d55cfabb1886b5c74d9b2124a3535c#rd', - thumbUrl: - 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-jVixJGgnBnkBPRbuVptOW0CHYuQFyiOVNtamctS8xU8.jpg' - } - ] - }, - updateTime: 1673626494 - }, - { - mediaId: 'r6ryvl6LrxBU0miaST4Y-sO24upobaENDmeByfBTfaozB3aOqSMAV0lGy-UkHXE7', - content: { - newsItem: [ - { - title: '我是标题', - author: '我是作者', - digest: '我是摘要', - content: '我是内容', - contentSourceUrl: 'https://www.iocoder.cn', - thumbMediaId: 'r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn', - showCoverPic: 0, - needOpenComment: 0, - onlyFansCanComment: 0, - url: 'http://mp.weixin.qq.com/s?__biz=MzA3NjM4MzQzOQ==&tempkey=MTIxMl9LT2dqRnpMNUpsR0hjYWtBQWwxQ3R5R0JGTXBDM1Q0N2ZFQm8zeUphOFlwNEpXSWxTYm9RQnJ6cHVuNGNmazZTdlE5WkxvU0tfX2V5cjV2WjJiR0xjQUhyREFSZWo2eWNrUW9EYVh6ZkpWRXBLR3FmTEV6YldBMno3Q2ZvVXBSdzlaVDc3aFhndEpQWUwzWmFMUWt0YVVURE1VZ1FsQTdPMlRtc3JBfn4%3D&chksm=1f6354aa2814ddbcc2637382f963a8742993ac38ebcebe6e3411df5ac82ac7bbdb391be6494a#rd', - thumbUrl: - 'http://test.yudao.iocoder.cn/r6ryvl6LrxBU0miaST4Y-pIcmK-zAAId-9TGgy-DrSLhjVuWbuT3ZBjk9K1yQ0Dn.png' - } - ] - }, - updateTime: 1673534279 - } - ], - total: 6 -} diff --git a/src/views/mp/freePublish/index.vue b/src/views/mp/freePublish/index.vue deleted file mode 100644 index 2ed8ae77..00000000 --- a/src/views/mp/freePublish/index.vue +++ /dev/null @@ -1,336 +0,0 @@ - - - - diff --git a/src/views/mp/hooks/useUpload.ts b/src/views/mp/hooks/useUpload.ts deleted file mode 100644 index b0e70531..00000000 --- a/src/views/mp/hooks/useUpload.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { UploadRawFile } from 'element-plus' - -const message = useMessage() // 消息 - -enum UploadType { - Image = 'image', - Voice = 'voice', - Video = 'video' -} - -const useBeforeUpload = (type: UploadType, maxSizeMB: number) => { - const fn = (rawFile: UploadRawFile): boolean => { - let allowTypes: string[] = [] - let name = '' - - switch (type) { - case UploadType.Image: - allowTypes = ['image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/jpg'] - maxSizeMB = 2 - name = '图片' - break - case UploadType.Voice: - allowTypes = ['audio/mp3', 'audio/mpeg', 'audio/wma', 'audio/wav', 'audio/amr'] - maxSizeMB = 2 - name = '语音' - break - case UploadType.Video: - allowTypes = ['video/mp4'] - maxSizeMB = 10 - name = '视频' - break - } - // 格式不正确 - if (!allowTypes.includes(rawFile.type)) { - message.error(`上传${name}格式不对!`) - return false - } - // 大小不正确 - if (rawFile.size / 1024 / 1024 > maxSizeMB) { - message.error(`上传${name}大小不能超过${maxSizeMB}M!`) - return false - } - - return true - } - - return fn -} - -export { UploadType, useBeforeUpload } diff --git a/src/views/mp/material/components/ImageTable.vue b/src/views/mp/material/components/ImageTable.vue deleted file mode 100644 index 52c608f6..00000000 --- a/src/views/mp/material/components/ImageTable.vue +++ /dev/null @@ -1,83 +0,0 @@ - - - - - diff --git a/src/views/mp/material/components/UploadFile.vue b/src/views/mp/material/components/UploadFile.vue deleted file mode 100644 index 276a798c..00000000 --- a/src/views/mp/material/components/UploadFile.vue +++ /dev/null @@ -1,77 +0,0 @@ - - - - diff --git a/src/views/mp/material/components/UploadVideo.vue b/src/views/mp/material/components/UploadVideo.vue deleted file mode 100644 index 0eda1cef..00000000 --- a/src/views/mp/material/components/UploadVideo.vue +++ /dev/null @@ -1,129 +0,0 @@ - - - diff --git a/src/views/mp/material/components/VideoTable.vue b/src/views/mp/material/components/VideoTable.vue deleted file mode 100644 index cbaa9024..00000000 --- a/src/views/mp/material/components/VideoTable.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - diff --git a/src/views/mp/material/components/VoiceTable.vue b/src/views/mp/material/components/VoiceTable.vue deleted file mode 100644 index 76fab7af..00000000 --- a/src/views/mp/material/components/VoiceTable.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/src/views/mp/material/components/upload.ts b/src/views/mp/material/components/upload.ts deleted file mode 100644 index e732fe70..00000000 --- a/src/views/mp/material/components/upload.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type { UploadProps, UploadRawFile } from 'element-plus' -import { getAccessToken } from '@/utils/auth' -import { UploadType, useBeforeUpload } from '@/views/mp/hooks/useUpload' - -const HEADERS = { Authorization: 'Bearer ' + getAccessToken() } // 请求头 -const UPLOAD_URL = import.meta.env.VITE_BASE_URL + '/admin-api/mp/material/upload-permanent' // 上传地址 - -interface UploadData { - type: UploadType - title: string - introduction: string - accountId: number -} - -const beforeImageUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) => - useBeforeUpload(UploadType.Image, 2)(rawFile) - -const beforeVoiceUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) => - useBeforeUpload(UploadType.Voice, 2)(rawFile) - -const beforeVideoUpload: UploadProps['beforeUpload'] = (rawFile: UploadRawFile) => - useBeforeUpload(UploadType.Video, 10)(rawFile) - -export { - HEADERS, - UPLOAD_URL, - UploadType, - UploadData, - beforeImageUpload, - beforeVoiceUpload, - beforeVideoUpload -} diff --git a/src/views/mp/material/index.vue b/src/views/mp/material/index.vue deleted file mode 100644 index de060429..00000000 --- a/src/views/mp/material/index.vue +++ /dev/null @@ -1,159 +0,0 @@ - - diff --git a/src/views/mp/menu/assets/iphone_backImg.png b/src/views/mp/menu/assets/iphone_backImg.png deleted file mode 100644 index bb09591a7912730aab07287e0bb2bc4e3383abc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34272 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 n1Y$yl2Y%)kp^j~lTlnWvqUJ7=Y>Ul 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 X!lw4y|2_Uwf${mHs$8XvQQ-do;aw2N diff --git a/src/views/mp/menu/components/MenuEditor.vue b/src/views/mp/menu/components/MenuEditor.vue deleted file mode 100644 index 5df1785c..00000000 --- a/src/views/mp/menu/components/MenuEditor.vue +++ /dev/null @@ -1,244 +0,0 @@ - - - - - diff --git a/src/views/mp/menu/components/MenuPreviewer.vue b/src/views/mp/menu/components/MenuPreviewer.vue deleted file mode 100644 index 93a19800..00000000 --- a/src/views/mp/menu/components/MenuPreviewer.vue +++ /dev/null @@ -1,226 +0,0 @@ - - - - - diff --git a/src/views/mp/menu/components/menuOptions.ts b/src/views/mp/menu/components/menuOptions.ts deleted file mode 100644 index d86dd789..00000000 --- a/src/views/mp/menu/components/menuOptions.ts +++ /dev/null @@ -1,42 +0,0 @@ -export default [ - { - value: 'view', - label: '跳转网页' - }, - { - value: 'miniprogram', - label: '跳转小程序' - }, - { - value: 'click', - label: '点击回复' - }, - { - value: 'article_view_limited', - label: '跳转图文消息' - }, - { - value: 'scancode_push', - label: '扫码直接返回结果' - }, - { - value: 'scancode_waitmsg', - label: '扫码回复' - }, - { - value: 'pic_sysphoto', - label: '系统拍照发图' - }, - { - value: 'pic_photo_or_album', - label: '拍照或者相册' - }, - { - value: 'pic_weixin', - label: '微信相册' - }, - { - value: 'location_select', - label: '选择地理位置' - } -] diff --git a/src/views/mp/menu/components/types.ts b/src/views/mp/menu/components/types.ts deleted file mode 100644 index b9f76597..00000000 --- a/src/views/mp/menu/components/types.ts +++ /dev/null @@ -1,73 +0,0 @@ -export interface Replay { - title: string - description: string - picUrl: string - url: string -} - -export type MenuType = - | '' - | 'click' - | 'view' - | 'scancode_waitmsg' - | 'scancode_push' - | 'pic_sysphoto' - | 'pic_photo_or_album' - | 'pic_weixin' - | 'location_select' - | 'article_view_limited' - -interface _RawMenu { - // db - id: number - parentId: number - accountId: number - appId: string - createTime: number - - // mp-native - name: string - menuKey: string - type: MenuType - url: string - miniProgramAppId: string - miniProgramPagePath: string - articleId: string - replyMessageType: string - replyContent: string - replyMediaId: string - replyMediaUrl: string - replyThumbMediaId: string - replyThumbMediaUrl: string - replyTitle: string - replyDescription: string - replyArticles: Replay - replyMusicUrl: string - replyHqMusicUrl: string -} - -export type RawMenu = Partial<_RawMenu> - -interface _Reply { - type: string - accountId: number - content: string - mediaId: string - url: string - thumbMediaId: string - thumbMediaUrl: string - title: string - description: string - articles: null | Replay[] - musicUrl: string - hqMusicUrl: string -} - -export type Reply = Partial<_Reply> - -interface _Menu extends RawMenu { - children: _Menu[] - reply: Reply -} - -export type Menu = Partial<_Menu> diff --git a/src/views/mp/menu/index.vue b/src/views/mp/menu/index.vue deleted file mode 100644 index 8cc8f586..00000000 --- a/src/views/mp/menu/index.vue +++ /dev/null @@ -1,401 +0,0 @@ - - - - - - - - diff --git a/src/views/mp/message/MessageTable.vue b/src/views/mp/message/MessageTable.vue deleted file mode 100644 index ebc3d749..00000000 --- a/src/views/mp/message/MessageTable.vue +++ /dev/null @@ -1,145 +0,0 @@ - - - diff --git a/src/views/mp/message/index.vue b/src/views/mp/message/index.vue deleted file mode 100644 index adceec56..00000000 --- a/src/views/mp/message/index.vue +++ /dev/null @@ -1,152 +0,0 @@ - - diff --git a/src/views/mp/statistics/index.vue b/src/views/mp/statistics/index.vue deleted file mode 100644 index d36de0a2..00000000 --- a/src/views/mp/statistics/index.vue +++ /dev/null @@ -1,349 +0,0 @@ - - - diff --git a/src/views/mp/tag/TagForm.vue b/src/views/mp/tag/TagForm.vue deleted file mode 100644 index 9a85bec9..00000000 --- a/src/views/mp/tag/TagForm.vue +++ /dev/null @@ -1,98 +0,0 @@ - - diff --git a/src/views/mp/tag/index.vue b/src/views/mp/tag/index.vue deleted file mode 100644 index df76ce98..00000000 --- a/src/views/mp/tag/index.vue +++ /dev/null @@ -1,154 +0,0 @@ - - diff --git a/src/views/mp/user/UserForm.vue b/src/views/mp/user/UserForm.vue deleted file mode 100644 index 818fdd83..00000000 --- a/src/views/mp/user/UserForm.vue +++ /dev/null @@ -1,102 +0,0 @@ - - diff --git a/src/views/mp/user/index.vue b/src/views/mp/user/index.vue deleted file mode 100644 index 6147351a..00000000 --- a/src/views/mp/user/index.vue +++ /dev/null @@ -1,181 +0,0 @@ - -