From 499951f9da5566933aee0488f56a54b3b94a5d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=81=8C=E7=B3=96=E5=8C=85=E5=AD=90?= Date: Sat, 21 Mar 2026 01:06:54 +0800 Subject: [PATCH] =?UTF-8?q?v1=E6=94=B9=E4=B8=BAv2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Home.vue | 2 +- src/views/Login.vue | 2 +- src/views/api/Hitokoto.vue | 8 ++++---- src/views/api/Music.vue | 12 ++++++------ src/views/api/PhotoWall.vue | 6 +++--- src/views/api/SourceImage.vue | 10 +++++----- src/views/system/Article.vue | 14 +++++++------- src/views/system/Statistics.vue | 4 ++-- src/views/system/SystemConfig.vue | 6 +++--- src/views/system/SystemConfigAdd.vue | 2 +- src/views/system/SystemRole.vue | 6 +++--- src/views/system/SystemUser.vue | 10 +++++----- 12 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/views/Home.vue b/src/views/Home.vue index 9bc0075..358c250 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -90,7 +90,7 @@ if (defaultActiveMenuKey.value) { if (!store.state.loginInfo.token) { router.push('/login') } else { - http.post<{token: string}, any>('/api/v1/common/verifyToken', {token: store.state.loginInfo.token}).then(data => { + http.post<{token: string}, any>('/api/v2/common/verifyToken', {token: store.state.loginInfo.token}).then(data => { if (data.status) { store.commit('login', {token: data.newToken || store.state.loginInfo.token, userInfo: data.userInfo}) } else { diff --git a/src/views/Login.vue b/src/views/Login.vue index 349515e..e1c5563 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -81,7 +81,7 @@ async function login() { loginForm.value?.validate(async (valid: boolean) => { if (!valid) return loading.value = true - const data = await http.post('/api/v1/common/login', userInfo).finally(() => { + const data = await http.post('/api/v2/common/login', userInfo).finally(() => { loading.value = false }) if (data.token) { diff --git a/src/views/api/Hitokoto.vue b/src/views/api/Hitokoto.vue index b503786..227146c 100644 --- a/src/views/api/Hitokoto.vue +++ b/src/views/api/Hitokoto.vue @@ -101,7 +101,7 @@ let selectedData: string[] = [] async function loadData() { loading.value = true - const data = await http.get('/api/v1/hitokoto/list', {params: search}) + const data = await http.get('/api/v2/hitokoto/list', {params: search}) selectedData = [] loading.value = false total.value = data.total @@ -113,7 +113,7 @@ async function save() { addForm.value?.hitokotoForm?.validate(async (valid: boolean) => { if (!valid) return modalLoading.value = true - const data = await http.post('/api/v1/hitokoto/save', formData) + const data = await http.post('/api/v2/hitokoto/save', formData) modalLoading.value = false addModal.value = false ElMessage.success(data.message) @@ -127,7 +127,7 @@ function deleteAll() { return } ElMessageBox.confirm(`是否确认删除选中的${selectedData.length}条数据?`, '确认删除', {type: 'warning'}).then(async () => { - const data = await http.delete('/api/v1/hitokoto/delete', {params: {_ids: selectedData}}) + const data = await http.delete('/api/v2/hitokoto/delete', {params: {_ids: selectedData}}) ElMessage.success(data.message) loadData() }).catch(() => {}) @@ -142,7 +142,7 @@ function findTypeText(value: string): string | null { // created loadData() -http.get('/api/v1/common/config/hitokoto_type').then(data => { +http.get('/api/v2/common/config/hitokoto_type').then(data => { typeList.value = data }) diff --git a/src/views/api/Music.vue b/src/views/api/Music.vue index 27d1d22..7f0158c 100644 --- a/src/views/api/Music.vue +++ b/src/views/api/Music.vue @@ -212,7 +212,7 @@ let selectedIds: string[] = [] async function loadData() { loading.value = true - const data = await http.get('/api/v1/music/list', {params: search}) + const data = await http.get('/api/v2/music/list', {params: search}) selectedIds = [] loading.value = false total.value = data.total @@ -229,7 +229,7 @@ function findMusicLib(value: string): string | null { } async function playMusic() { try { - const data = await http.get('/api/v1/music/list/all', {params: selectedIds.length ? {ids: selectedIds} : search}) + const data = await http.get('/api/v2/music/list/all', {params: selectedIds.length ? {ids: selectedIds} : search}) musicList.value = data.map((item: MusicModel, index: number) => { const musicItem: MusicPlayerItem = { id: index, @@ -273,7 +273,7 @@ async function updateLyric(row: MusicModel) { currentRow.value = { ...row } modifyLyricModal.value = true if (row.lyric_id) { - const data = (await http.get('/api/v1/music/lyric/get', {params: {lyricId: row.lyric_id}})) + const data = (await http.get('/api/v2/music/lyric/get', {params: {lyricId: row.lyric_id}})) data.cloud_id = data.cloud_id ? data.cloud_id.toString() : null lyricFormData.value = data } else { @@ -284,7 +284,7 @@ async function saveLyric() { lyricForm.value?.validate(async (valid: boolean) => { if (!valid) return modalLoading.value = true - const data = await http.post(`/api/v1/music/lyric/save?musicId=${currentRow.value ? currentRow.value._id : ''}`, lyricFormData.value) + const data = await http.post(`/api/v2/music/lyric/save?musicId=${currentRow.value ? currentRow.value._id : ''}`, lyricFormData.value) modalLoading.value = false modifyLyricModal.value = false ElMessage.success(data.message) @@ -356,11 +356,11 @@ function musicPlay() { } // created -http.get('/api/v1/music/listLibs').then(data => { +http.get('/api/v2/music/listLibs').then(data => { musicLibs.value = data loadData() }) -http.get('/api/v1/music/listExts').then(data => { +http.get('/api/v2/music/listExts').then(data => { exts.value = data }) \ No newline at end of file diff --git a/src/views/api/PhotoWall.vue b/src/views/api/PhotoWall.vue index ded1f37..56904c7 100644 --- a/src/views/api/PhotoWall.vue +++ b/src/views/api/PhotoWall.vue @@ -113,7 +113,7 @@ let selectedData: string[] = [] async function loadData() { loading.value = true - const data = await http.get('/api/v1/photowall/list', {params: search}) + const data = await http.get('/api/v2/photoWall/list', {params: search}) selectedData = [] loading.value = false total.value = data.total @@ -127,7 +127,7 @@ function deleteAll() { return } ElMessageBox.confirm(`是否确认删除选中的${selectedData.length}条数据?`, '确认删除', {type: 'warning'}).then(async () => { - await http.delete('/api/v1/photowall/delete', {params: {_ids: selectedData}}) + await http.delete('/api/v2/photoWall/delete', {params: {_ids: selectedData}}) ElMessage.success('删除成功') loadData() }).catch(() => {}) @@ -158,7 +158,7 @@ function uploadError(error: Error) { } async function preview(row: PhotoWallModel) { const previewHeight = Math.floor(row.height * (500 / row.width)) - const pictureCdn = await http.get('/api/v1/common/config/picture_cdn') + const pictureCdn = await http.get('/api/v2/common/config/picture_cdn') ElMessageBox({ title: '图片预览', message: h('img', { style: `width:500px;height:${previewHeight}px;`, src: `${pictureCdn}/${row.name}` }, ''), diff --git a/src/views/api/SourceImage.vue b/src/views/api/SourceImage.vue index 263b2d1..e4b59ef 100644 --- a/src/views/api/SourceImage.vue +++ b/src/views/api/SourceImage.vue @@ -108,7 +108,7 @@ let selectedData: string[] = [] async function loadData(): Promise { loading.value = true - const data = await http.get('/api/v1/source-image/list', {params: search}) + const data = await http.get('/api/v2/source-image/list', {params: search}) selectedData = [] loading.value = false total.value = data.total @@ -122,7 +122,7 @@ function deleteAll(): void { return } ElMessageBox.confirm(`是否确认删除选中的${selectedData.length}条数据?`, '确认删除', {type: 'warning'}).then(async () => { - await http.delete('/api/v1/source-image/delete', {params: {_ids: selectedData}}) + await http.delete('/api/v2/source-image/delete', {params: {_ids: selectedData}}) ElMessage.success('删除成功') loadData() }).catch(() => {}) @@ -154,7 +154,7 @@ function uploadError(error: Error): void { function preview(row: SourceImageModel): void { ElMessageBox({ title: '图片预览', - message: h('img', { style: `width:500px`, src: `/api/v1/common/randomBg?id=${row._id}` }, ''), + message: h('img', { style: `width:500px`, src: `/api/v2/common/randomBg?id=${row._id}` }, ''), showCancelButton: false, confirmButtonText: '关闭', customStyle: {width: '530px', maxWidth: 'unset'} @@ -169,11 +169,11 @@ function modifyTags(item: SourceImageModel): void { modifyModal.value = true } async function tarnsferChange(newTargetKeys: string[], direction: 'right' | 'left', moveKeys: string[]) { - await http.post('/api/v1/source-image/updateLabel', {id: curId.value, labels: newTargetKeys}) + await http.post('/api/v2/source-image/updateLabel', {id: curId.value, labels: newTargetKeys}) } // created -http.get('/api/v1/common/config/image_label').then(data => { +http.get('/api/v2/common/config/image_label').then(data => { labelList.value.push(...data) loadData() }) diff --git a/src/views/system/Article.vue b/src/views/system/Article.vue index c442eaf..86bbc84 100644 --- a/src/views/system/Article.vue +++ b/src/views/system/Article.vue @@ -161,7 +161,7 @@ let selectedData: string[] = [] async function loadData() { loading.value = true - const data = await http.get('/api/v1/article/list', {params: search}) + const data = await http.get('/api/v2/article/list', {params: search}) selectedData = [] loading.value = false total.value = data.total @@ -175,7 +175,7 @@ function splitWord() { return } ElMessageBox.confirm(`是否确认对选中的${selectedData.length}篇文章执行分词处理?`, '操作确认', {type: 'info'}).then(async () => { - const data = await http.put<{_ids: string[]}, any>('/api/v1/article/splitWord', {_ids: selectedData}) + const data = await http.put<{_ids: string[]}, any>('/api/v2/article/splitWord', {_ids: selectedData}) if (data.status) { ElMessage.success(data.message) } else { @@ -185,7 +185,7 @@ function splitWord() { } function pullArticles() { ElMessageBox.confirm('确认拉取全部文章?', '操作确认', {type: 'info'}).then(async () => { - const data = await http.put('/api/v1/article/pull') + const data = await http.put('/api/v2/article/pull') if (data.status) { ElMessage.success(data.message) loadData() @@ -220,7 +220,7 @@ const treeProps = { isLeaf: 'isLeaf', } async function loadTreeData(node: Node, resolve: Function) { - const childItems: TreeNodeSource[] = await http.get('/api/v1/article/tree', {params: {deep: node.level, parent: node.data.name}}) + const childItems: TreeNodeSource[] = await http.get('/api/v2/article/tree', {params: {deep: node.level, parent: node.data.name}}) resolve(childItems.map((childItem): TreeNodeData => { const treeNode: TreeNodeData = { name: childItem._id, @@ -233,7 +233,7 @@ async function loadTreeData(node: Node, resolve: Function) { } async function articlePreview(node: TreeNodeData) { if (!node.isLeaf) return - const mdText = await http.get('/api/v1/article/markdown', {params: {id: node.id}}) + const mdText = await http.get('/api/v2/article/markdown', {params: {id: node.id}}) markdownPreview.show = true const markdownHtml = new hyperdown().makeHtml(mdText) markdownPreview.content = markdownHtml.replace(/(?<=
]*?>)[\s\S]*?(?=<\/code><\/pre>)/gi, (content: string) => {
@@ -244,10 +244,10 @@ async function articlePreview(node: TreeNodeData) {
 
 // created
 loadData()
-http.get('/api/v1/article/listCategories').then(data => {
+http.get('/api/v2/article/listCategories').then(data => {
   categories.value = data
 })
-http.get('/api/v1/article/listTags').then(data => {
+http.get('/api/v2/article/listTags').then(data => {
   tags.value = data
 })
 
diff --git a/src/views/system/Statistics.vue b/src/views/system/Statistics.vue
index 5f9984d..b2f0f70 100644
--- a/src/views/system/Statistics.vue
+++ b/src/views/system/Statistics.vue
@@ -370,7 +370,7 @@ onMounted(async () => {
   timelineWordsChartLoading.value = true
 
   // 加载基础统计数据
-  const articleData = await http.get<{params:{type:string}}, any>('/api/v1/article/statistics', {params: {type: 'normal'}})
+  const articleData = await http.get<{params:{type:string}}, any>('/api/v2/article/statistics', {params: {type: 'normal'}})
 
   // 更新统计卡片
   totalArticles.value = articleData.categories.reduce((sum: number, item: any) => sum + item.cnt, 0)
@@ -397,7 +397,7 @@ onMounted(async () => {
   publishDatesChartLoading.value = false
 
   // 时间轴词汇统计
-  const timelineData = await http.get<{params:{type:string}}, any>('/api/v1/article/statistics', {params: {type: 'timelineWords'}})
+  const timelineData = await http.get<{params:{type:string}}, any>('/api/v2/article/statistics', {params: {type: 'timelineWords'}})
 
   if (timelineData.timelineWords.length > 0 && timelineData.timelineWords[0].keys.length > 0) {
     topKeyword.value = timelineData.timelineWords[0].keys[0].key
diff --git a/src/views/system/SystemConfig.vue b/src/views/system/SystemConfig.vue
index 6904c86..a0aac2e 100644
--- a/src/views/system/SystemConfig.vue
+++ b/src/views/system/SystemConfig.vue
@@ -85,7 +85,7 @@ function reset() {
 
 async function loadData() {
   loading.value = true
-  systemConfigData.value = await http.get('/api/v1/system/config/list', {params: search.value})
+  systemConfigData.value = await http.get('/api/v2/system/config/list', {params: search.value})
   loading.value = false
 }
 
@@ -112,7 +112,7 @@ async function save() {
   addForm.value?.configForm?.validate(async (valid: boolean) => {
     if (!valid) return
     modalLoading.value = true
-    const data = await http.post('/api/v1/system/config/save', formData.value)
+    const data = await http.post('/api/v2/system/config/save', formData.value)
     modalLoading.value = false
     addModal.value = false
     ElMessage.success(data.message)
@@ -122,7 +122,7 @@ async function save() {
 
 function remove(row: SystemConfigModel) {
   ElMessageBox.confirm(`是否确认删除 ${row.name} 配置项?`, '确认删除', {type: 'warning'}).then(async () => {
-    const data = await http.delete<{params: {id: string}}, any>('/api/v1/system/config/delete', {params: {id: row._id}})
+    const data = await http.delete<{params: {id: string}}, any>('/api/v2/system/config/delete', {params: {id: row._id}})
     if(data.status) {
       ElMessage.success(data.message)
       loadData()
diff --git a/src/views/system/SystemConfigAdd.vue b/src/views/system/SystemConfigAdd.vue
index d8bacfd..246ac4e 100644
--- a/src/views/system/SystemConfigAdd.vue
+++ b/src/views/system/SystemConfigAdd.vue
@@ -35,7 +35,7 @@ const ruleValidate = computed(() => ({
   name: [
     { required: true, message: '请输入配置项名称', trigger: 'blur' },
     { validator: (rule: object, value: string, callback: Function) => {
-        http.get('/api/v1/system/config/exists', {params: {name: value, id: props.formData._id}}).then(data => {
+        http.get('/api/v2/system/config/exists', {params: {name: value, id: props.formData._id}}).then(data => {
           if(data.data.exists) {
             callback(new Error('配置项名称已存在'))
           } else {
diff --git a/src/views/system/SystemRole.vue b/src/views/system/SystemRole.vue
index ee0b66f..56dfe53 100644
--- a/src/views/system/SystemRole.vue
+++ b/src/views/system/SystemRole.vue
@@ -140,7 +140,7 @@ const roleForm = ref()
 
 async function loadData() {
   loading.value = true
-  const data = await http.get<{params: SystemRolePage}, any>('/api/v1/system/role/list', {params: search})
+  const data = await http.get<{params: SystemRolePage}, any>('/api/v2/system/role/list', {params: search})
   loading.value = false
   total.value = data.total
   systemRoleData.value = data.data
@@ -195,7 +195,7 @@ function update(row: SystemRoleModel) {
 
 function remove(row: SystemRoleModel) {
   ElMessageBox.confirm(`是否确认删除 ${row.name} 角色?`, '确认删除', {type: 'warning'}).then(async () => {
-    const data = await http.delete<{params: {id: string}}, any>('/api/v1/system/role/delete', {params: {id: row._id}})
+    const data = await http.delete<{params: {id: string}}, any>('/api/v2/system/role/delete', {params: {id: row._id}})
     if(data.status) {
       ElMessage.success(data.message)
       loadData()
@@ -209,7 +209,7 @@ async function save() {
   roleForm.value?.validate(async (valid: boolean) => {
     if (!valid) return
     modalLoading.value = true
-    const data = await http.post('/api/v1/system/role/save', formData)
+    const data = await http.post('/api/v2/system/role/save', formData)
     modalLoading.value = false
     addModal.value = false
     ElMessage.success(data.message)
diff --git a/src/views/system/SystemUser.vue b/src/views/system/SystemUser.vue
index e203d71..06f1dff 100644
--- a/src/views/system/SystemUser.vue
+++ b/src/views/system/SystemUser.vue
@@ -110,7 +110,7 @@ const ruleValidate = computed(() => ({
   username: [
     { required: true, message: '请输入用户名', trigger: 'blur' },
     { validator: async (rule: object, value: string, callback: Function) => {
-        const data = await http.get('/api/v1/system/user/exists', {params: {username: value, id: formData._id}})
+        const data = await http.get('/api/v2/system/user/exists', {params: {username: value, id: formData._id}})
         if(data.data.exists) {
           callback(new Error('用户名已存在'))
         } else {
@@ -128,7 +128,7 @@ const ruleValidate = computed(() => ({
 
 async function loadData() {
   loading.value = true
-  const data = await http.get<{params: SystemUserPage}, any>('/api/v1/system/user/list', {params: search})
+  const data = await http.get<{params: SystemUserPage}, any>('/api/v2/system/user/list', {params: search})
   loading.value = false
   total.value = data.total
   systemUserData.value = data.data
@@ -164,7 +164,7 @@ async function save() {
   userForm.value?.validate(async (valid: boolean) => {
     if (!valid) return
     modalLoading.value = true
-    const data = await http.post('/api/v1/system/user/save', formData)
+    const data = await http.post('/api/v2/system/user/save', formData)
     modalLoading.value = false
     addModal.value = false
     ElMessage.success(data.message)
@@ -174,7 +174,7 @@ async function save() {
 
 function remove(row: SystemUserModel) {
   ElMessageBox.confirm(`是否确认删除 ${row.username} 用户?`, '确认删除', {type: 'warning'}).then(async () => {
-    const data = await http.delete<{params: {id: string}}, any>('/api/v1/system/user/delete', {params: {id: row._id}})
+    const data = await http.delete<{params: {id: string}}, any>('/api/v2/system/user/delete', {params: {id: row._id}})
     if(data.status) {
       ElMessage.success(data.message)
       loadData()
@@ -191,7 +191,7 @@ function clearValidate() {
 }
 
 loadData()
-http.get('/api/v1/system/role/listAll').then(data => {
+http.get('/api/v2/system/role/listAll').then(data => {
   roles.value = data
 })
 
\ No newline at end of file