From 6c57e77969f50e685034840daa39ff70e3f4a5c1 Mon Sep 17 00:00:00 2001 From: alger Date: Wed, 27 Dec 2023 14:40:22 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=88=20perf:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=AF=BC=E5=85=A5=EF=BC=8C=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + app.js | 6 +- auto-imports.d.ts | 70 ++++++++++++++++++++++ components.d.ts | 36 ++++++++++++ package.json | 10 ++-- public/icon/iconfont.css | 10 +++- public/icon/iconfont.js | 2 +- public/icon/iconfont.json | 7 +++ public/icon/iconfont.ttf | Bin 16172 -> 16316 bytes public/icon/iconfont.woff | Bin 10088 -> 10148 bytes public/icon/iconfont.woff2 | Bin 8652 -> 8752 bytes src/App.vue | 1 - src/components/MusicList.vue | 3 +- src/components/RecommendSinger.vue | 2 +- src/components/RecommendSonglist.vue | 3 +- src/components/common/MPop.vue | 83 +++++++++++++-------------- src/components/common/PlayBottom.vue | 1 - src/hooks/MusicHook.ts | 1 - src/layout/AppLayout.vue | 3 - src/layout/components/lrcFull.vue | 2 - src/main.ts | 38 ++++++------ src/utils/index.ts | 3 - src/views/home/index.vue | 1 - src/views/list/index.vue | 4 +- src/views/login/index.vue | 3 +- src/views/search/index.vue | 2 +- src/views/user/index.vue | 2 +- tsconfig.json | 67 +++++++++++---------- vite.config.ts | 35 ++++++++++- 29 files changed, 268 insertions(+), 128 deletions(-) create mode 100644 auto-imports.d.ts create mode 100644 components.d.ts diff --git a/.gitignore b/.gitignore index c2bbf93..8af6673 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ dist dist-ssr *.local dist_electron +.idea pnpm-lock.yaml package-lock.json diff --git a/app.js b/app.js index a8de65a..4190b18 100644 --- a/app.js +++ b/app.js @@ -4,8 +4,8 @@ const path = require('path') let mainWin = null function createWindow() { mainWin = new BrowserWindow({ - width: 1280, - height: 900, + width: 1200, + height: 780, frame: false, webPreferences: { nodeIntegration: true, @@ -13,7 +13,7 @@ function createWindow() { }, }) const win = mainWin - win.setMinimumSize(1280, 900) + win.setMinimumSize(1200, 780) if (process.env.NODE_ENV === 'development') { win.webContents.openDevTools({ mode: 'detach' }) win.loadURL('http://localhost:4678/') diff --git a/auto-imports.d.ts b/auto-imports.d.ts new file mode 100644 index 0000000..7007359 --- /dev/null +++ b/auto-imports.d.ts @@ -0,0 +1,70 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// noinspection JSUnusedGlobalSymbols +// Generated by unplugin-auto-import +export {} +declare global { + const EffectScope: typeof import('vue')['EffectScope'] + const computed: typeof import('vue')['computed'] + const createApp: typeof import('vue')['createApp'] + const customRef: typeof import('vue')['customRef'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const effectScope: typeof import('vue')['effectScope'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const inject: typeof import('vue')['inject'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const provide: typeof import('vue')['provide'] + const reactive: typeof import('vue')['reactive'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const toRaw: typeof import('vue')['toRaw'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] + const triggerRef: typeof import('vue')['triggerRef'] + const unref: typeof import('vue')['unref'] + const useAttrs: typeof import('vue')['useAttrs'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVars: typeof import('vue')['useCssVars'] + const useDialog: typeof import('naive-ui')['useDialog'] + const useLoadingBar: typeof import('naive-ui')['useLoadingBar'] + const useMessage: typeof import('naive-ui')['useMessage'] + const useNotification: typeof import('naive-ui')['useNotification'] + const useSlots: typeof import('vue')['useSlots'] + const watch: typeof import('vue')['watch'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] +} +// for type re-export +declare global { + // @ts-ignore + export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' + import('vue') +} diff --git a/components.d.ts b/components.d.ts new file mode 100644 index 0000000..fbd8c9f --- /dev/null +++ b/components.d.ts @@ -0,0 +1,36 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +declare module 'vue' { + export interface GlobalComponents { + MPop: typeof import('./src/components/common/MPop.vue')['default'] + MusicList: typeof import('./src/components/MusicList.vue')['default'] + NAvatar: typeof import('naive-ui')['NAvatar'] + NButton: typeof import('naive-ui')['NButton'] + NConfigProvider: typeof import('naive-ui')['NConfigProvider'] + NDialogProvider: typeof import('naive-ui')['NDialogProvider'] + NDrawer: typeof import('naive-ui')['NDrawer'] + NDropdown: typeof import('naive-ui')['NDropdown'] + NEllipsis: typeof import('naive-ui')['NEllipsis'] + NImage: typeof import('naive-ui')['NImage'] + NInput: typeof import('naive-ui')['NInput'] + NLayout: typeof import('naive-ui')['NLayout'] + NMessageProvider: typeof import('naive-ui')['NMessageProvider'] + NPopover: typeof import('naive-ui')['NPopover'] + NScrollbar: typeof import('naive-ui')['NScrollbar'] + NSlider: typeof import('naive-ui')['NSlider'] + NTooltip: typeof import('naive-ui')['NTooltip'] + PlayBottom: typeof import('./src/components/common/PlayBottom.vue')['default'] + PlaylistType: typeof import('./src/components/PlaylistType.vue')['default'] + RecommendAlbum: typeof import('./src/components/RecommendAlbum.vue')['default'] + RecommendSinger: typeof import('./src/components/RecommendSinger.vue')['default'] + RecommendSonglist: typeof import('./src/components/RecommendSonglist.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + SongItem: typeof import('./src/components/common/SongItem.vue')['default'] + } +} diff --git a/package.json b/package.json index 7d709e0..ff9ad87 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "alger-music", - "version": "1.1.0", + "version": "1.2.0", "description": "这是一个用于音乐播放的应用程序。", "author": "Alger ", "main": "app.js", @@ -24,7 +24,8 @@ "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.4", "vue": "^3.3.4", "vue-router": "^4.2.4", - "vuex": "^4.1.0" + "vuex": "^4.1.0", + "naive-ui": "^2.34.4" }, "devDependencies": { "@sicons/antd": "^0.10.0", @@ -33,11 +34,12 @@ "@vue/compiler-sfc": "^3.3.4", "electron": "^28.0.0", "electron-builder": "^24.9.1", - "naive-ui": "^2.34.4", "typescript": "^4.3.2", "vfonts": "^0.1.0", "vite": "^4.4.7", "vite-plugin-vue-devtools": "1.0.0-beta.5", - "vue-tsc": "^0.0.24" + "vue-tsc": "^0.0.24", + "unplugin-auto-import": "^0.17.2", + "unplugin-vue-components": "^0.26.0" } } diff --git a/public/icon/iconfont.css b/public/icon/iconfont.css index a469ad5..3f90c64 100644 --- a/public/icon/iconfont.css +++ b/public/icon/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 2685283 */ - src: url('iconfont.woff2?t=1702897818159') format('woff2'), - url('iconfont.woff?t=1702897818159') format('woff'), - url('iconfont.ttf?t=1702897818159') format('truetype'); + src: url('iconfont.woff2?t=1703643214551') format('woff2'), + url('iconfont.woff?t=1703643214551') format('woff'), + url('iconfont.ttf?t=1703643214551') format('truetype'); } .iconfont { @@ -13,6 +13,10 @@ -moz-osx-font-smoothing: grayscale; } +.icon-list:before { + content: "\e603"; +} + .icon-maxsize:before { content: "\e692"; } diff --git a/public/icon/iconfont.js b/public/icon/iconfont.js index 408275a..d905a33 100644 --- a/public/icon/iconfont.js +++ b/public/icon/iconfont.js @@ -1 +1 @@ -window._iconfont_svg_string_2685283='',function(a){var c=(c=document.getElementsByTagName("script"))[c.length-1],l=c.getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var o,i,t,h,s,d=function(c,l){l.parentNode.insertBefore(c,l)};if(l&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}o=function(){var c,l=document.createElement("div");l.innerHTML=a._iconfont_svg_string_2685283,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?d(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),o()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(t=o,h=a.document,s=!1,e(),h.onreadystatechange=function(){"complete"==h.readyState&&(h.onreadystatechange=null,p())})}function p(){s||(s=!0,t())}function e(){try{h.documentElement.doScroll("left")}catch(c){return void setTimeout(e,50)}p()}}(window); \ No newline at end of file +window._iconfont_svg_string_2685283='',function(a){var c=(c=document.getElementsByTagName("script"))[c.length-1],l=c.getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var o,i,t,h,s,d=function(c,l){l.parentNode.insertBefore(c,l)};if(l&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}o=function(){var c,l=document.createElement("div");l.innerHTML=a._iconfont_svg_string_2685283,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?d(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),o()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(t=o,h=a.document,s=!1,e(),h.onreadystatechange=function(){"complete"==h.readyState&&(h.onreadystatechange=null,p())})}function p(){s||(s=!0,t())}function e(){try{h.documentElement.doScroll("left")}catch(c){return void setTimeout(e,50)}p()}}(window); \ No newline at end of file diff --git a/public/icon/iconfont.json b/public/icon/iconfont.json index 9d04061..42adf90 100644 --- a/public/icon/iconfont.json +++ b/public/icon/iconfont.json @@ -5,6 +5,13 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "1111849", + "name": "list", + "font_class": "list", + "unicode": "e603", + "unicode_decimal": 58883 + }, { "icon_id": "1306794", "name": "maxsize", diff --git a/public/icon/iconfont.ttf b/public/icon/iconfont.ttf index 0b1b37aa38a91e4cfc0304a698b14e37df5c01c9..cef8b1df8563991eb8770066a147aab93c73424b 100644 GIT binary patch delta 1554 zcma)+U2IfE7>3{Tv)ldY{&aV{T~{n^*{xP9ma2+jgsQ^PxlcC;Tk_aT5Qq-U5N zbw4}buwEg#;n9hMaaI6pk;F&#zBKgyjkm}6d<#3@7#%ve&)SAEV;Qzv#)d|B#y>8e z1$sL<=B|Bv_eUm<_Bdj*= z9FOe)Z0+Tx&kf8qTl3Zl+b#cTCp(sEeXy>>snt5EA&$HR*ZPY89z+Q~gv2QqoU7h5 z7_XHHXnD0(4#Siw+)g=;<9urdb#OUe06~rxMm-{kB8E5`kU$bCG$M^A_&FONR-qZI z(Sp_l+OP&W>c(j?Wv@mJJOO`U$z)KxZNS z26_y6!a%nnPa5bu#%bD0qna zi2=P-en1p#qJC#!o?~Irz>G&VWMJ;2${bU83Q(=DLI3+$VUj5*QJG{44+*M#nZo0O z>S}|Y6kffU#`pNeDp_aj?RLfKbf%nZZofO}%lHO;uldAZ@?WeQsQW0835*9$2QCHe zU|Vo&@Ko?}=<(1@XeC?-e^B4-)mI{ukxF!HbUL~i%f`lHpU0!|`G%7XeC}AVp2knpZu89mOi4$SE-u&CS;P`mNnl!nr*0%OS&-&Kx zbjt7iU;W7PN;aR*IvZ@2TaEwL?PK{uE?3B}e3>ug`CB>92D>nKD)?TvHBeq#d_7=2 R26trl{)xGB#RIm5e*j<3PLTir delta 1395 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𝔙(0)0y93gfj^*#K{M2BkZ-onO12$1 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 delta 9462 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 diff --git a/public/icon/iconfont.woff2 b/public/icon/iconfont.woff2 index 1226cdbdfdc84de09a6dcd00655081813198c5d7..6ffb14060b36f42dc8ac8b7068bcf127991e5cac 100644 GIT binary patch literal 8752 zcmV-0BG27-Pew8T0RR9103t8|3jhEB06)9{03qK10RR9100000000000000000000 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 eAjoQoEvX~oE&SRDLv11HDm$ import { darkTheme } from 'naive-ui' -import { ref, computed } from 'vue' import { useStore } from 'vuex' const audio = ref(null) diff --git a/src/components/MusicList.vue b/src/components/MusicList.vue index 38f36d9..08eb5ea 100644 --- a/src/components/MusicList.vue +++ b/src/components/MusicList.vue @@ -18,7 +18,6 @@ diff --git a/src/components/common/MPop.vue b/src/components/common/MPop.vue index 52fe4f8..fa8fdf0 100644 --- a/src/components/common/MPop.vue +++ b/src/components/common/MPop.vue @@ -1,43 +1,42 @@ - - - - - \ No newline at end of file diff --git a/src/components/common/PlayBottom.vue b/src/components/common/PlayBottom.vue index 4cb1a03..c98a781 100644 --- a/src/components/common/PlayBottom.vue +++ b/src/components/common/PlayBottom.vue @@ -3,7 +3,6 @@ diff --git a/src/views/user/index.vue b/src/views/user/index.vue index cba6093..2976b85 100644 --- a/src/views/user/index.vue +++ b/src/views/user/index.vue @@ -64,7 +64,7 @@ const formatDetail = computed(() => (detail: any) => { const handlePlay = (item: any) => { const tracks = recordList.value || [] const musicIndex = (tracks.findIndex((music: any) => music.id == item.id) || 0) - store.commit('setPlayList', tracks.slice(musicIndex)) + store.commit('setPlayList', tracks) } diff --git a/tsconfig.json b/tsconfig.json index b39aac2..1812fd7 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,32 +1,37 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "moduleResolution": "node", - "strict": true, - "jsx": "preserve", - "sourceMap": true, - "skipLibCheck": true, - "resolveJsonModule": true, - "esModuleInterop": true, - "lib": [ - "esnext", - "dom" - ], - "baseUrl": "./", - "paths": { - "@": [ - "src" - ], - "@/*": [ - "src/*" - ], - } - }, - "include": [ - "src/**/*.ts", - "src/**/*.d.ts", - "src/**/*.tsx", - "src/**/*.vue" - ] +{ + "compilerOptions": { + "target": "esnext", + "module": "esnext", + "moduleResolution": "node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "skipLibCheck": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "types": [ + "naive-ui/volar", + "./auto-imports.d.ts", + "./components.d.ts" + ], + "lib": [ + "esnext", + "dom" + ], + "baseUrl": "./", + "paths": { + "@": [ + "src" + ], + "@/*": [ + "src/*" + ], + } + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue" + ] } \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 488c893..2341b94 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -2,10 +2,32 @@ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import path from 'path' import VueDevTools from 'vite-plugin-vue-devtools' +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' +import { NaiveUiResolver } from 'unplugin-vue-components/resolvers' // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue(), VueDevTools()], + plugins: [ + vue(), + VueDevTools(), + AutoImport({ + imports: [ + 'vue', + { + 'naive-ui': [ + 'useDialog', + 'useMessage', + 'useNotification', + 'useLoadingBar', + ], + }, + ], + }), + Components({ + resolvers: [NaiveUiResolver()], + }), + ], base: './', resolve: { alias: { @@ -36,4 +58,15 @@ export default defineConfig({ }, }, }, + build: { + rollupOptions: { + output: { + manualChunks: { + vendor: ['vue', 'axios'], + naiveui: ['naive-ui'], + lodash: ['lodash'], + }, + }, + }, + }, })