diff --git a/publish/changeLog.md b/publish/changeLog.md index e6bc4d59..f433f359 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -8,6 +8,7 @@ - 添加歌曲到“我的列表”时,若按住`ctrl`键(Mac对应`Command`),则不会自动关闭添加窗口,这对想要将同一首(一批)歌曲添加到多个列表时会很有用 - 支持mg源逐字歌词的播放,感谢 @mozbugbox 提供的帮助 - 添加歌曲列表更新操作的二次确认 +- 添加导入文件错误时的指引提示 ### 修复 diff --git a/src/lang/en-us.json b/src/lang/en-us.json index 35d050d7..a2e18bca 100644 --- a/src/lang/en-us.json +++ b/src/lang/en-us.json @@ -95,6 +95,11 @@ "list_add__title_first_add": "Add", "list_add__title_first_move": "Move", "list_add__title_last": "to...", + "list_import_tip__alldata": "Import failed, this is an all data backup file, you need to go here to import: \nSettings -> Backup and Restore -> All Data -> Import", + "list_import_tip__playlist": "Import failed, this is a list backup file, you need to go here to import: \nSettings -> Backup and Restore -> Import List", + "list_import_tip__playlist_part": "The import failed, this is a single-list file, you need to go here to import: \nMy List -> Right-click on any list name -> Select Import in the pop-up menu", + "list_import_tip__setting": "Import failed, this is a settings backup file, you need to go here to import: \nSettings -> Backup and Restore -> Partial Data -> Settings Import", + "list_import_tip__unknown": "Import failed, unknown file type, please try to upgrade to the latest version and try again", "list_sort_modal_by_album": "Album name", "list_sort_modal_by_down": "Descending", "list_sort_modal_by_field": "Sort field", diff --git a/src/lang/zh-cn.json b/src/lang/zh-cn.json index 0dd444bd..89bae3bb 100644 --- a/src/lang/zh-cn.json +++ b/src/lang/zh-cn.json @@ -95,6 +95,11 @@ "list_add__title_first_add": "添加", "list_add__title_first_move": "移动", "list_add__title_last": "到...", + "list_import_tip__alldata": "导入失败,这是一个所有数据备份文件,你需要去这里导入:\n设置 -> 备份与恢复 -> 所有数据 -> 导入", + "list_import_tip__playlist": "导入失败,这是一个列表备份文件,你需要去这里导入:\n设置 -> 备份与恢复 -> 部分数据 -> 导入列表", + "list_import_tip__playlist_part": "导入失败,这是一个单列表文件,你需要去这里导入:\n我的列表 -> 右击任意一个列表名 -> 在弹出的菜单中选择导入", + "list_import_tip__setting": "导入失败,这是一个设置备份文件,你需要去这里导入:\n设置 -> 备份与恢复 -> 部分数据 -> 设置导入", + "list_import_tip__unknown": "导入失败,未知的文件类型,请尝试升级到最新版本后再试", "list_sort_modal_by_album": "专辑名", "list_sort_modal_by_down": "降序", "list_sort_modal_by_field": "排序字段", diff --git a/src/lang/zh-tw.json b/src/lang/zh-tw.json index 8640b371..2b488dc8 100644 --- a/src/lang/zh-tw.json +++ b/src/lang/zh-tw.json @@ -95,6 +95,11 @@ "list_add__title_first_add": "添加", "list_add__title_first_move": "移動", "list_add__title_last": "到...", + "list_import_tip__alldata": "導入失敗,這是一個所有數據備份文件,你需要去這裡導入:\n設置 -> 備份與恢復 -> 所有數據 -> 導入", + "list_import_tip__playlist": "導入失敗,這是一個列表備份文件,你需要去這裡導入:\n設置 -> 備份與恢復 -> 部分數據 -> 導入列表", + "list_import_tip__playlist_part": "導入失敗,這是一個單列表文件,你需要去這裡導入:\n我的列表 -> 右擊任意一個列表名 -> 在彈出的菜單中選擇導入", + "list_import_tip__setting": "導入失敗,這是一個設置備份文件,你需要去這裡導入:\n設置 -> 備份與恢復 -> 部分數據 -> 設置導入", + "list_import_tip__unknown": "導入失敗,未知的文件類型,請嘗試升級到最新版本後再試", "list_sort_modal_by_album": "專輯名", "list_sort_modal_by_down": "降序", "list_sort_modal_by_field": "排序字段", diff --git a/src/renderer/utils/compositions/useImportTip.js b/src/renderer/utils/compositions/useImportTip.js new file mode 100644 index 00000000..b15e208f --- /dev/null +++ b/src/renderer/utils/compositions/useImportTip.js @@ -0,0 +1,35 @@ +import { useI18n } from '@renderer/utils/vueTools' +import { dialog } from '@renderer/plugins/Dialog' + +export default () => { + const { t } = useI18n() + + + return (type) => { + let message + switch (type) { + case 'defautlList': + case 'playList': + message = t('list_import_tip__playlist') + break + case 'setting': + message = t('list_import_tip__setting') + break + case 'allData': + message = t('list_import_tip__alldata') + break + case 'playListPart': + message = t('list_import_tip__playlist_part') + break + + default: + message = t('list_import_tip__unknown') + break + } + + dialog({ + message, + confirmButtonText: t('ok'), + }) + } +} diff --git a/src/renderer/views/list/components/MyLists.vue b/src/renderer/views/list/components/MyLists.vue index a762b519..983187d0 100644 --- a/src/renderer/views/list/components/MyLists.vue +++ b/src/renderer/views/list/components/MyLists.vue @@ -60,6 +60,7 @@ import { getList } from '@renderer/core/share/utils' import useDarg from '@renderer/utils/compositions/useDrag' import { getListUpdateInfo } from '@renderer/utils/data' import useSyncSourceList from '@renderer/utils/compositions/useSyncSourceList' +import useImportTip from '@renderer/utils/compositions/useImportTip' export default { name: 'MyLists', @@ -78,6 +79,7 @@ export default { const dom_lists_list = ref(null) const lists = computed(() => [defaultList, loveList, ...userLists]) const setUserListPosition = useCommit('list', 'setUserListPosition') + const showImportTip = useImportTip() const syncSourceList = useSyncSourceList() @@ -100,6 +102,7 @@ export default { dom_lists_list, setDisabledSort: setDisabled, syncSourceList, + showImportTip, } }, emits: ['show-menu'], @@ -455,7 +458,7 @@ export default { } catch (error) { return } - if (listData.type !== 'playListPart') return + if (listData.type !== 'playListPart') return this.showImportTip(listData.type) const targetList = this.lists.find(l => l.id == listData.data.id) if (targetList) { const confirm = await this.$dialog.confirm({ diff --git a/src/renderer/views/setting/components/SettingBackup.vue b/src/renderer/views/setting/components/SettingBackup.vue index efb4af6b..6b6e7a3b 100644 --- a/src/renderer/views/setting/components/SettingBackup.vue +++ b/src/renderer/views/setting/components/SettingBackup.vue @@ -39,6 +39,7 @@ import { getList } from '@renderer/core/share/utils' import path from 'path' import { dialog } from '@renderer/plugins/Dialog' import iconv from 'iconv-lite' +import useImportTip from '@renderer/utils/compositions/useImportTip' export default { name: 'SettingUpdate', @@ -48,6 +49,7 @@ export default { const settingVersion = useRefGetter('settingVersion') const setSettingVersion = useCommit('setSettingVersion') const setList = useCommit('list', 'setList') + const showImportTip = useImportTip() const handleUpdateSetting = (config) => { currentStting.value = JSON.parse(JSON.stringify(config)) @@ -66,7 +68,7 @@ export default { } catch (error) { return } - if (allData.type !== 'allData') return + if (allData.type !== 'allData') return showImportTip(allData.type) // 兼容0.6.2及以前版本的列表数据 if (allData.defaultList) return setList({ id: 'default', list: allData.defaultList.list, name: '试听列表' }) @@ -145,7 +147,7 @@ export default { } catch (error) { return } - if (settingData.type !== 'setting') return + if (settingData.type !== 'setting') return showImportTip(settingData.type) const { version: settingVersion, setting } = mergeSetting(settingData.data) setting.isAgreePact = false refreshSetting(setting, settingVersion) @@ -202,7 +204,7 @@ export default { // 兼容0.6.2及以前版本的列表数据 if (listData.type === 'defautlList') return setList({ id: 'default', list: listData.data.list, name: '试听列表' }) - if (listData.type !== 'playList') return + if (listData.type !== 'playList') return showImportTip(listData.type) for (const list of listData.data) { setList(list)