refactor: remove default_install_dir, Update uses built-in default path

This commit is contained in:
Trae AI
2026-06-18 22:09:18 +08:00
parent a0c817571a
commit f77cb0cb05
5 changed files with 1 additions and 60 deletions
-1
View File
@@ -229,7 +229,6 @@ type Version struct {
EntryFile string `gorm:"size:255" json:"entry_file"` EntryFile string `gorm:"size:255" json:"entry_file"`
EntryFiles string `gorm:"type:text" json:"entry_files"` // JSON数组,可启动的入口文件 EntryFiles string `gorm:"type:text" json:"entry_files"` // JSON数组,可启动的入口文件
DesktopShortcutFiles string `gorm:"type:text" json:"desktop_shortcut_files"` // JSON数组,需要创建桌面快捷方式的文件 DesktopShortcutFiles string `gorm:"type:text" json:"desktop_shortcut_files"` // JSON数组,需要创建桌面快捷方式的文件
DefaultInstallDir string `gorm:"size:500" json:"default_install_dir"` // 默认安装目录
UpdateStrategy string `gorm:"size:20;default:optional" json:"update_strategy"` UpdateStrategy string `gorm:"size:20;default:optional" json:"update_strategy"`
UpdateType string `gorm:"size:20;default:full" json:"update_type"` UpdateType string `gorm:"size:20;default:full" json:"update_type"`
UpdateMethod string `gorm:"size:20;default:auto" json:"update_method"` UpdateMethod string `gorm:"size:20;default:auto" json:"update_method"`
@@ -256,7 +256,6 @@ func handleGetVersionByID(c *gin.Context) {
"entry_file": version.EntryFile, "entry_file": version.EntryFile,
"entry_files": version.EntryFiles, "entry_files": version.EntryFiles,
"desktop_shortcut_files": version.DesktopShortcutFiles, "desktop_shortcut_files": version.DesktopShortcutFiles,
"default_install_dir": version.DefaultInstallDir,
"full_package_path": version.FullPackagePath, "full_package_path": version.FullPackagePath,
"full_package_size": version.FullPackageSize, "full_package_size": version.FullPackageSize,
"full_package_hash": version.FullPackageHash, "full_package_hash": version.FullPackageHash,
@@ -275,7 +274,6 @@ type CreateVersionRequest struct {
EntryFile string `json:"entry_file"` EntryFile string `json:"entry_file"`
EntryFiles string `json:"entry_files"` EntryFiles string `json:"entry_files"`
DesktopShortcutFiles string `json:"desktop_shortcut_files"` DesktopShortcutFiles string `json:"desktop_shortcut_files"`
DefaultInstallDir string `json:"default_install_dir"`
UpdateStrategy string `json:"update_strategy"` UpdateStrategy string `json:"update_strategy"`
UpdateType string `json:"update_type"` UpdateType string `json:"update_type"`
UpdateMethod string `json:"update_method"` UpdateMethod string `json:"update_method"`
@@ -330,7 +328,6 @@ func handleCreateVersionGlobal(c *gin.Context) {
EntryFile: req.EntryFile, EntryFile: req.EntryFile,
EntryFiles: req.EntryFiles, EntryFiles: req.EntryFiles,
DesktopShortcutFiles: req.DesktopShortcutFiles, DesktopShortcutFiles: req.DesktopShortcutFiles,
DefaultInstallDir: req.DefaultInstallDir,
UpdateStrategy: req.UpdateStrategy, UpdateStrategy: req.UpdateStrategy,
UpdateType: req.UpdateType, UpdateType: req.UpdateType,
UpdateMethod: req.UpdateMethod, UpdateMethod: req.UpdateMethod,
@@ -475,7 +472,6 @@ type UpdateVersionRequest struct {
EntryFile string `json:"entry_file"` EntryFile string `json:"entry_file"`
EntryFiles string `json:"entry_files"` EntryFiles string `json:"entry_files"`
DesktopShortcutFiles string `json:"desktop_shortcut_files"` DesktopShortcutFiles string `json:"desktop_shortcut_files"`
DefaultInstallDir string `json:"default_install_dir"`
UpdateStrategy string `json:"update_strategy"` UpdateStrategy string `json:"update_strategy"`
UpdateType string `json:"update_type"` UpdateType string `json:"update_type"`
UpdateMethod string `json:"update_method"` UpdateMethod string `json:"update_method"`
@@ -543,7 +539,6 @@ func handleUpdateVersionGlobal(c *gin.Context) {
updates["entry_file"] = req.EntryFile updates["entry_file"] = req.EntryFile
updates["entry_files"] = req.EntryFiles updates["entry_files"] = req.EntryFiles
updates["desktop_shortcut_files"] = req.DesktopShortcutFiles updates["desktop_shortcut_files"] = req.DesktopShortcutFiles
updates["default_install_dir"] = req.DefaultInstallDir
if req.UpdateStrategy != "" { if req.UpdateStrategy != "" {
updates["update_strategy"] = req.UpdateStrategy updates["update_strategy"] = req.UpdateStrategy
} }
+1 -2
View File
@@ -122,8 +122,7 @@ func handleAppCheckUpdate(c *gin.Context) {
"entry_file": latestVersion.EntryFile, "entry_file": latestVersion.EntryFile,
"entry_files": latestVersion.EntryFiles, "entry_files": latestVersion.EntryFiles,
"desktop_shortcut_files": latestVersion.DesktopShortcutFiles, "desktop_shortcut_files": latestVersion.DesktopShortcutFiles,
"default_install_dir": latestVersion.DefaultInstallDir, "update_notes": latestVersion.Description,
"update_notes": latestVersion.Description,
"update_strategy": latestVersion.UpdateStrategy, "update_strategy": latestVersion.UpdateStrategy,
"update_type": latestVersion.UpdateType, "update_type": latestVersion.UpdateType,
"update_method": latestVersion.UpdateMethod, "update_method": latestVersion.UpdateMethod,
@@ -55,7 +55,6 @@ const formData = ref({
entry_file: '', entry_file: '',
entry_files: [] as string[], entry_files: [] as string[],
desktop_shortcut_files: [] as string[], desktop_shortcut_files: [] as string[],
default_install_dir: '',
file: null as File | null, file: null as File | null,
base_version_id: '' as string, base_version_id: '' as string,
}) })
@@ -67,16 +66,6 @@ const selectedApplication = computed(() => {
return applications.value.find(app => String(app.id) === formData.value.application_id) return applications.value.find(app => String(app.id) === formData.value.application_id)
}) })
// 当应用选择变化时,自动设置默认安装目录
watch(
() => selectedApplication.value,
(app) => {
if (app && !formData.value.default_install_dir) {
formData.value.default_install_dir = `C:\\Program Files\\${app.name}`
}
}
)
const baseVersionFiles = ref<VersionFileInfo[]>([]) const baseVersionFiles = ref<VersionFileInfo[]>([])
const mergedFiles = computed(() => { const mergedFiles = computed(() => {
@@ -155,7 +144,6 @@ async function fetchVersion() {
formData.value.changelog = ver.changelog || '' formData.value.changelog = ver.changelog || ''
formData.value.entry_file = ver.entry_file || '' formData.value.entry_file = ver.entry_file || ''
formData.value.base_version_id = ver.base_version_id ? String(ver.base_version_id) : '' formData.value.base_version_id = ver.base_version_id ? String(ver.base_version_id) : ''
formData.value.default_install_dir = ver.default_install_dir || ''
// 解析 entry_files JSON // 解析 entry_files JSON
try { try {
formData.value.entry_files = ver.entry_files ? JSON.parse(ver.entry_files) : [] formData.value.entry_files = ver.entry_files ? JSON.parse(ver.entry_files) : []
@@ -379,7 +367,6 @@ async function handleSubmit() {
entry_file: formData.value.entry_file, entry_file: formData.value.entry_file,
entry_files: JSON.stringify(formData.value.entry_files), entry_files: JSON.stringify(formData.value.entry_files),
desktop_shortcut_files: JSON.stringify(formData.value.desktop_shortcut_files), desktop_shortcut_files: JSON.stringify(formData.value.desktop_shortcut_files),
default_install_dir: formData.value.default_install_dir,
} }
// 如果是补丁版本,添加基础版本ID // 如果是补丁版本,添加基础版本ID
@@ -692,20 +679,6 @@ onMounted(() => {
</div> </div>
</div> </div>
<!-- 安装选项 -->
<div class="space-y-4 rounded-lg border p-4">
<h4 class="font-medium">{{ t('admin.versions.createForm.installOptions') }}</h4>
<div class="space-y-2">
<UiLabel class="text-sm">{{ t('admin.versions.createForm.defaultInstallDir') }}</UiLabel>
<UiInput
v-model="formData.default_install_dir"
:placeholder="t('admin.versions.createForm.defaultInstallDirPlaceholder')"
:disabled="saving"
/>
</div>
</div>
<div class="flex items-center justify-between rounded-lg border p-4"> <div class="flex items-center justify-between rounded-lg border p-4">
<div class="space-y-0.5"> <div class="space-y-0.5">
<UiLabel class="text-base"> <UiLabel class="text-base">
@@ -54,7 +54,6 @@ const formData = ref({
entry_file: '', entry_file: '',
entry_files: [] as string[], entry_files: [] as string[],
desktop_shortcut_files: [] as string[], desktop_shortcut_files: [] as string[],
default_install_dir: '',
file: null as File | null, file: null as File | null,
base_version_id: '' as string, base_version_id: '' as string,
}) })
@@ -66,16 +65,6 @@ const selectedApplication = computed(() => {
return applications.value.find(app => String(app.id) === formData.value.application_id) return applications.value.find(app => String(app.id) === formData.value.application_id)
}) })
// 当应用选择变化时,自动设置默认安装目录
watch(
() => selectedApplication.value,
(app) => {
if (app && !formData.value.default_install_dir) {
formData.value.default_install_dir = `C:\\Program Files\\${app.name}`
}
}
)
const baseVersionFiles = ref<VersionFileInfo[]>([]) const baseVersionFiles = ref<VersionFileInfo[]>([])
const mergedFiles = computed(() => { const mergedFiles = computed(() => {
@@ -346,7 +335,6 @@ async function handleSubmit() {
entry_file: formData.value.entry_file, entry_file: formData.value.entry_file,
entry_files: JSON.stringify(formData.value.entry_files), entry_files: JSON.stringify(formData.value.entry_files),
desktop_shortcut_files: JSON.stringify(formData.value.desktop_shortcut_files), desktop_shortcut_files: JSON.stringify(formData.value.desktop_shortcut_files),
default_install_dir: formData.value.default_install_dir,
file_path: uploadedData.value.file_path, file_path: uploadedData.value.file_path,
file_size: uploadedData.value.file_size, file_size: uploadedData.value.file_size,
file_hash: uploadedData.value.file_hash, file_hash: uploadedData.value.file_hash,
@@ -614,19 +602,6 @@ onMounted(() => {
</div> </div>
<!-- 安装选项 --> <!-- 安装选项 -->
<div class="space-y-4 rounded-lg border p-4">
<h4 class="font-medium">{{ t('admin.versions.createForm.installOptions') }}</h4>
<div class="space-y-2">
<UiLabel class="text-sm">{{ t('admin.versions.createForm.defaultInstallDir') }}</UiLabel>
<UiInput
v-model="formData.default_install_dir"
:placeholder="t('admin.versions.createForm.defaultInstallDirPlaceholder')"
:disabled="saving"
/>
</div>
</div>
<div class="flex items-center justify-between rounded-lg border p-4"> <div class="flex items-center justify-between rounded-lg border p-4">
<div class="space-y-0.5"> <div class="space-y-0.5">
<UiLabel class="text-base"> <UiLabel class="text-base">