From 0d51dd5e2aa32126b1a4746e8512ff9e817b9054 Mon Sep 17 00:00:00 2001 From: hyql Date: Sat, 11 Jul 2026 10:39:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20AddCoachView=E6=94=B9=E7=94=A8axios?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=20FormData?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AddCoachView.vue | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/views/AddCoachView.vue b/src/views/AddCoachView.vue index 4a2bda1..99fc415 100644 --- a/src/views/AddCoachView.vue +++ b/src/views/AddCoachView.vue @@ -4,6 +4,7 @@ import { reactive, ref } from 'vue' import { useRouter } from 'vue-router' import { add } from '../mock/coach.js' import { Plus } from '@element-plus/icons-vue' +import axios from 'axios' const router = useRouter() const formRef = ref(null) @@ -11,7 +12,7 @@ const formRef = ref(null) const coach = reactive({ name: " ", sex: 1, - avatar: "", + file: "", remark: "" }) const rules = { @@ -23,19 +24,27 @@ const rules = { const addHandler = async () => { await formRef.value.validate() - add(coach) - - ElMessage({ type: "success", message: `教练 "${coach.name}" 添加成功` }) - + const fd = new FormData() + for (const key of Object.keys(coach)) { + fd.append(key, coach[key]) + } + const response = await axios.post("/api/coach", fd) + if (response.status === 200) { // 如果axios请求成功拿到了结果 + const { code, msg, data } = response.data + if (code === 200) { + ElMessage({ type: "success", message: `教练 "${coach.name}" 添加成功` }) + router.replace("/coach") + } else { + ElMessage({ type: "error", message: msg }) + } + } else { + ElMessage({ type: "error", message: response.statusText }) + } router.replace("/coach") } const uploadChangeHandler = (file, fileList) => { if (fileList.length > 1) { fileList.shift() } - const reader = new FileReader() - reader.onload = e => { - coach.avatar = e.target.result - } - reader.readAsDataURL(file.raw) + coach.file = file.raw }