From ad2e2e80cbf3a8a9c26970ffb8df82ddc7cd9fe2 Mon Sep 17 00:00:00 2001 From: Vladimir Zagainov Date: Thu, 19 Jun 2025 16:42:34 +0300 Subject: [PATCH] feat(modpack): added curseforge importer --- src/views/admin/ModpacksView.vue | 23 ++++++++++++++--------- vite.config.d.ts | 2 ++ vite.config.js | 20 ++++++++++++++++++++ 3 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 vite.config.d.ts create mode 100644 vite.config.js diff --git a/src/views/admin/ModpacksView.vue b/src/views/admin/ModpacksView.vue index 4cdd6d3..feb1f00 100644 --- a/src/views/admin/ModpacksView.vue +++ b/src/views/admin/ModpacksView.vue @@ -5,6 +5,15 @@

Импорт нового модпака

+
+ + +
+
@@ -45,6 +54,7 @@ const form = reactive({ displayName: "", mcVersion: "", file: null as File | null, + importerType: "simple", // Тип импортера по умолчанию }); const isLoading = ref(false); @@ -73,6 +83,8 @@ const handleImport = async () => { formData.append("displayName", form.displayName); formData.append("mcVersion", form.mcVersion); formData.append("file", form.file); + formData.append("importerType", form.importerType); + formData.append("importMethod", "file"); // Пока поддерживаем только импорт файла try { const response = await apiClient.post("/admin/modpacks/import", formData, { @@ -97,22 +109,19 @@ const handleImport = async () => { border: 1px solid #ddd; border-radius: 8px; } - .import-form .form-group { margin-bottom: 1rem; } - .import-form label { display: block; margin-bottom: 0.5rem; } - -.import-form input { +.import-form input, +.import-form select { width: 100%; padding: 0.5rem; box-sizing: border-box; } - .error-message, .success-message { margin-top: 1rem; @@ -120,19 +129,16 @@ const handleImport = async () => { border-radius: 4px; text-align: center; } - .error-message { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; } - .success-message { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; } - button { padding: 0.75rem 1.5rem; background-color: #42b983; @@ -141,7 +147,6 @@ button { border-radius: 4px; cursor: pointer; } - button:disabled { background-color: #ccc; } diff --git a/vite.config.d.ts b/vite.config.d.ts new file mode 100644 index 0000000..340562a --- /dev/null +++ b/vite.config.d.ts @@ -0,0 +1,2 @@ +declare const _default: import("vite").UserConfig; +export default _default; diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..76f72e5 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,20 @@ +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import { URL, fileURLToPath } from "node:url"; +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", import.meta.url)), + }, + }, + server: { + proxy: { + "^/api|/authserver|/sessionserver": { + target: "http://localhost:8080", + changeOrigin: true, + }, + }, + }, +});