From d81111226e7a2321533e06075f059756183f394b Mon Sep 17 00:00:00 2001 From: yanghao05 Date: Fri, 18 Apr 2025 15:03:20 +0800 Subject: [PATCH] feat: restore postcreate.js --- frontend/admin/src/api/mediaService.js | 4 ++ frontend/admin/src/pages/PostCreatePage.vue | 70 ++------------------- frontend/wechat/src/api/client.js | 5 -- 3 files changed, 10 insertions(+), 69 deletions(-) diff --git a/frontend/admin/src/api/mediaService.js b/frontend/admin/src/api/mediaService.js index 1c311cb..3ed4070 100644 --- a/frontend/admin/src/api/mediaService.js +++ b/frontend/admin/src/api/mediaService.js @@ -20,4 +20,8 @@ export const mediaService = { uploadedSuccess(data) { return httpClient.post('/admin/uploads/post-uploaded-action', data); }, + + getMediaPreviewUrl(id) { + return `${httpClient.defaults.baseURL}/admin/medias/${id}`; + }, }; \ No newline at end of file diff --git a/frontend/admin/src/pages/PostCreatePage.vue b/frontend/admin/src/pages/PostCreatePage.vue index dc5ed63..b419c0c 100644 --- a/frontend/admin/src/pages/PostCreatePage.vue +++ b/frontend/admin/src/pages/PostCreatePage.vue @@ -30,7 +30,6 @@ const post = reactive({ selectedMedia: [], medias: [], status: 0, - head_image: null, // Add head image field }); // Validation state @@ -38,8 +37,7 @@ const errors = reactive({ title: '', introduction: '', selectedMedia: '', - discount: '', - head_image: '', // Add head image error field + discount: '' }); // Media selection dialog state @@ -48,7 +46,6 @@ const selectedMediaItems = ref([]); const mediaLoading = ref(false); const mediaGlobalFilter = ref(''); const mediaItems = ref([]); -const isHeadImageSelection = ref(false); // Track if we're selecting head image // Add pagination state for media dialog const mediaFirst = ref(0); @@ -66,18 +63,8 @@ const statusOptions = [ { label: '草稿', value: 0 } ]; -// Open media selection dialog for head image -const openHeadImageDialog = () => { - isHeadImageSelection.value = true; - mediaDialogVisible.value = true; - mediaCurrentPage.value = 1; - mediaFirst.value = 0; - loadMediaItems(); -}; - // Open media selection dialog const openMediaDialog = () => { - isHeadImageSelection.value = false; mediaDialogVisible.value = true; mediaCurrentPage.value = 1; mediaFirst.value = 0; @@ -112,16 +99,10 @@ const onMediaPage = (event) => { // Confirm media selection const confirmMediaSelection = () => { - if (isHeadImageSelection.value) { - if (selectedMediaItems.value.length) { - post.head_image = selectedMediaItems.value[0]; - errors.head_image = ''; - } - } else if (selectedMediaItems.value.length) { + if (selectedMediaItems.value.length) { post.selectedMedia = [...selectedMediaItems.value]; errors.selectedMedia = ''; } - selectedMediaItems.value = []; mediaDialogVisible.value = false; }; @@ -138,11 +119,6 @@ const removeMedia = (media) => { } }; -// Remove head image -const removeHeadImage = () => { - post.head_image = null; -}; - // Save the post const savePost = async () => { // Reset errors @@ -173,19 +149,13 @@ const savePost = async () => { valid = false; } - if (!post.head_image) { - errors.head_image = '请选择封面图片'; - valid = false; - } - if (!valid) { toast.add({ severity: 'error', summary: '表单错误', detail: '请检查表单中的错误并修正', life: 3000 }); return; } try { - post.medias = post.selectedMedia.map(media => media.id); - post.head_image_id = post.head_image.id; // Add head image ID to submission + post.medias = post.selectedMedia.map(media => media.id) const resp = await postService.createPost(post); console.log(resp) @@ -259,34 +229,6 @@ const formatFileSize = (bytes) => {
- -
- -
-
- -

请选择封面图片

-
-
-
- -
- {{ post.head_image.name }} -
-
-
-
-
-
-
-
@@ -374,15 +316,15 @@ const formatFileSize = (bytes) => {
- +
diff --git a/frontend/wechat/src/api/client.js b/frontend/wechat/src/api/client.js index adbb79f..8231b3b 100644 --- a/frontend/wechat/src/api/client.js +++ b/frontend/wechat/src/api/client.js @@ -1,4 +1,3 @@ -import { useAuthStore } from '@/stores/auth'; import axios from 'axios'; // Create axios instance with default config @@ -13,10 +12,6 @@ const client = axios.create({ // Request interceptor client.interceptors.request.use( config => { - const authStore = useAuthStore(); - if (authStore.isAuthenticated && authStore.token) { - config.headers.Authorization = `Bearer ${authStore.token}`; - } return config; }, error => {