diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 99f21c9ab..a793646e6 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,7 @@ { "recommendations": [ "christian-kohler.path-intellisense", + "warmthsea.vscode-custom-code-color", "vscode-icons-team.vscode-icons", "davidanson.vscode-markdownlint", "ms-azuretools.vscode-docker", diff --git a/.vscode/settings.json b/.vscode/settings.json index 9752f8985..b5aefceb4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -31,11 +31,18 @@ "i18n-ally.keystyle": "nested", "i18n-ally.sortKeys": true, "i18n-ally.namespace": true, - "i18n-ally.enabledParsers": ["yaml", "js"], + "i18n-ally.enabledParsers": [ + "yaml", + "js" + ], "i18n-ally.sourceLanguage": "en", "i18n-ally.displayLanguage": "zh-CN", - "i18n-ally.enabledFrameworks": ["vue"], - "iconify.excludes": ["el"], + "i18n-ally.enabledFrameworks": [ + "vue" + ], + "iconify.excludes": [ + "el" + ], "vsmqtt.brokerProfiles": [ { "name": "broker.emqx.io", @@ -43,5 +50,14 @@ "port": 1883, "clientId": "vsmqtt_client_db34" } - ] -} + ], + "vscodeCustomCodeColor.highlightValue": [ + "v-loading", + "v-auth", + "v-copy", + "v-longpress", + "v-optimize", + "v-ripple" + ], + "vscodeCustomCodeColor.highlightValueColor": "#b392f0", +} \ No newline at end of file diff --git a/CHANGELOG.en_US.md b/CHANGELOG.en_US.md index 1f223de68..385164b42 100644 --- a/CHANGELOG.en_US.md +++ b/CHANGELOG.en_US.md @@ -1,3 +1,13 @@ +# 5.7.0 (2024-06-04) + +### 🎫 Feat + +- Add Google style tabs + +### 🐞 Bug fixes + +- Fixed the issue where the text exceeds and is not hidden after the menu is folded in Firefox browser + # 5.6.0 (2024-05-14) ### ✔️ Refactor diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f223de68..385164b42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +# 5.7.0 (2024-06-04) + +### 🎫 Feat + +- Add Google style tabs + +### 🐞 Bug fixes + +- Fixed the issue where the text exceeds and is not hidden after the menu is folded in Firefox browser + # 5.6.0 (2024-05-14) ### ✔️ Refactor diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index a75670815..63bd83be3 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -1,3 +1,13 @@ +# 5.7.0 (2024-06-04) + +### 🎫 Feat + +- 添加谷歌风格的页签 + +### 🐞 Bug fixes + +- 修复在火狐浏览器中菜单折叠后,文字超出未隐藏的问题 + # 5.6.0 (2024-05-14) ### ✔️ Refactor diff --git a/README.en-US.md b/README.en-US.md index d4a87307e..8bf831f7e 100644 --- a/README.en-US.md +++ b/README.en-US.md @@ -10,11 +10,9 @@ `vue-pure-admin` is an open source, free and out-of-the-box middle and backend management system template. Completely adopts `ECMAScript` module (`ESM`) specifications to write and organize code, using the latest `Vue3`, `Vite`, `Element-Plus`, `TypeScript`, `Pinia`, `Tailwindcss` and other mainstream technologies develop -## Sponsors +## R&D philosophy - +Seek innovation in stability and see the future in technology ## Thin version (offering non-internationalized and internationalized versions) @@ -184,6 +182,7 @@ Thank you very much for your in-depth understanding of the source code and your | [WitMiao](https://github.com/WitMiao) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=WitMiao) | | [QFifteen](https://github.com/QFifteen) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=QFifteen) | | [edgexie](https://github.com/edgexie) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=edgexie) | +| [way-jm](https://github.com/way-jm) | [code](https://github.com/pure-admin/vue-pure-admin/commits?author=way-jm) | ## Git Contribution submission specification diff --git a/README.md b/README.md index 7bff517f1..e8ade06d6 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,9 @@ `vue-pure-admin` 是一款开源免费且开箱即用的中后台管理系统模版。完全采用 `ECMAScript` 模块(`ESM`)规范来编写和组织代码,使用了最新的 `Vue3`、 `Vite`、`Element-Plus`、`TypeScript`、`Pinia`、`Tailwindcss` 等主流技术开发 -## 赞助商 +## 研发理念 - +稳定中求创新,技术中见未来 ## 精简版本(实际项目开发请用精简版本,提供 `非国际化` 、`国际化` 两个版本选择) @@ -189,6 +187,7 @@ docker run -dp 8080:80 --name pure-admin vue-pure-admin | [WitMiao](https://github.com/WitMiao) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=WitMiao) | | [QFifteen](https://github.com/QFifteen) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=QFifteen) | | [edgexie](https://github.com/edgexie) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=edgexie) | +| [way-jm](https://github.com/way-jm) | [代码](https://github.com/pure-admin/vue-pure-admin/commits?author=way-jm) | ## `Git` 贡献提交规范 diff --git a/locales/en.yaml b/locales/en.yaml index 37b95a940..d02f36f93 100644 --- a/locales/en.yaml +++ b/locales/en.yaml @@ -53,6 +53,8 @@ panel: pureTagsStyleSmartTip: Smart tags add fun and brilliance pureTagsStyleCard: Card pureTagsStyleCardTip: Card tags for efficient browsing + pureTagsStyleChrome: Chrome + pureTagsStyleChromeTip: Chrome style is classic and elegant pureInterfaceDisplay: Interface Display pureGreyModel: Grey Model pureWeakModel: Weak Model diff --git a/locales/zh-CN.yaml b/locales/zh-CN.yaml index 0412b0ff8..6ce420969 100644 --- a/locales/zh-CN.yaml +++ b/locales/zh-CN.yaml @@ -53,6 +53,8 @@ panel: pureTagsStyleSmartTip: 灵动标签,添趣生辉 pureTagsStyleCard: 卡片 pureTagsStyleCardTip: 卡片标签,高效浏览 + pureTagsStyleChrome: 谷歌 + pureTagsStyleChromeTip: 谷歌风格,经典美观 pureInterfaceDisplay: 界面显示 pureGreyModel: 灰色模式 pureWeakModel: 色弱模式 diff --git a/package.json b/package.json index 762735f32..831ef3416 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vue-pure-admin", - "version": "5.6.0", + "version": "5.7.0", "private": true, "type": "module", "scripts": { @@ -56,9 +56,9 @@ "@pureadmin/table": "^3.1.2", "@pureadmin/utils": "^2.4.7", "@vue-flow/background": "^1.3.0", - "@vue-flow/core": "^1.33.8", + "@vue-flow/core": "^1.34.0", "@vueuse/core": "^10.10.0", - "@vueuse/motion": "^2.1.0", + "@vueuse/motion": "^2.2.0", "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^5.1.12", "@zxcvbn-ts/core": "^3.0.4", @@ -68,7 +68,7 @@ "cropperjs": "^1.6.2", "dayjs": "^1.11.11", "echarts": "^5.5.0", - "el-table-infinite-scroll": "^3.0.3", + "el-table-infinite-scroll": "^3.0.5", "element-plus": "^2.7.3", "intro.js": "^7.2.0", "js-cookie": "^3.0.5", @@ -80,13 +80,13 @@ "nprogress": "^0.2.0", "path": "^0.12.7", "pinia": "^2.1.7", - "pinyin-pro": "^3.21.0", - "plus-pro-components": "^0.1.6", + "pinyin-pro": "^3.21.1", + "plus-pro-components": "^0.1.7", "qrcode": "^1.5.3", "qs": "^6.12.1", "responsive-storage": "^2.2.0", "sortablejs": "^1.15.2", - "swiper": "^11.1.3", + "swiper": "^11.1.4", "typeit": "^8.8.3", "v-contextmenu": "^3.2.0", "v3-infinite-loading": "^1.3.1", @@ -94,7 +94,7 @@ "vue": "^3.4.27", "vue-i18n": "^9.13.1", "vue-json-pretty": "^2.4.0", - "vue-pdf-embed": "^2.0.3", + "vue-pdf-embed": "^2.0.4", "vue-router": "^4.3.2", "vue-tippy": "^6.4.1", "vue-types": "^5.1.2", @@ -123,7 +123,7 @@ "@types/gradient-string": "^1.1.6", "@types/intro.js": "^5.1.5", "@types/js-cookie": "^3.0.6", - "@types/node": "^20.12.12", + "@types/node": "^20.12.13", "@types/nprogress": "^0.2.3", "@types/qrcode": "^1.5.5", "@types/qs": "^6.9.15", @@ -151,8 +151,8 @@ "prettier": "^3.2.5", "rimraf": "^5.0.7", "rollup-plugin-visualizer": "^5.12.0", - "sass": "^1.77.2", - "stylelint": "^16.6.0", + "sass": "^1.77.4", + "stylelint": "^16.6.1", "stylelint-config-recess-order": "^5.0.1", "stylelint-config-recommended-vue": "^1.5.0", "stylelint-config-standard-scss": "^13.1.0", @@ -160,7 +160,7 @@ "svgo": "^3.3.2", "tailwindcss": "^3.4.3", "typescript": "^5.4.5", - "vite": "^5.2.11", + "vite": "^5.2.12", "vite-plugin-cdn-import": "^1.0.1", "vite-plugin-compression": "^0.5.1", "vite-plugin-fake-server": "^2.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e03441d0d..ff0bb63f5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,16 +34,16 @@ importers: version: 2.4.7(echarts@5.5.0)(vue@3.4.27(typescript@5.4.5)) '@vue-flow/background': specifier: ^1.3.0 - version: 1.3.0(@vue-flow/core@1.33.8(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + version: 1.3.0(@vue-flow/core@1.34.0(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) '@vue-flow/core': - specifier: ^1.33.8 - version: 1.33.8(vue@3.4.27(typescript@5.4.5)) + specifier: ^1.34.0 + version: 1.34.0(vue@3.4.27(typescript@5.4.5)) '@vueuse/core': specifier: ^10.10.0 version: 10.10.0(vue@3.4.27(typescript@5.4.5)) '@vueuse/motion': - specifier: ^2.1.0 - version: 2.1.0(rollup@4.18.0)(vue@3.4.27(typescript@5.4.5)) + specifier: ^2.2.0 + version: 2.2.0(rollup@4.18.0)(vue@3.4.27(typescript@5.4.5)) '@wangeditor/editor': specifier: ^5.1.23 version: 5.1.23 @@ -72,8 +72,8 @@ importers: specifier: ^5.5.0 version: 5.5.0 el-table-infinite-scroll: - specifier: ^3.0.3 - version: 3.0.3(typescript@5.4.5) + specifier: ^3.0.5 + version: 3.0.5(typescript@5.4.5) element-plus: specifier: ^2.7.3 version: 2.7.3(vue@3.4.27(typescript@5.4.5)) @@ -108,11 +108,11 @@ importers: specifier: ^2.1.7 version: 2.1.7(typescript@5.4.5)(vue@3.4.27(typescript@5.4.5)) pinyin-pro: - specifier: ^3.21.0 - version: 3.21.0 + specifier: ^3.21.1 + version: 3.21.1 plus-pro-components: - specifier: ^0.1.6 - version: 0.1.6(element-plus@2.7.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) + specifier: ^0.1.7 + version: 0.1.7(element-plus@2.7.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)) qrcode: specifier: ^1.5.3 version: 1.5.3 @@ -126,8 +126,8 @@ importers: specifier: ^1.15.2 version: 1.15.2 swiper: - specifier: ^11.1.3 - version: 11.1.3 + specifier: ^11.1.4 + version: 11.1.4 typeit: specifier: ^8.8.3 version: 8.8.3 @@ -150,8 +150,8 @@ importers: specifier: ^2.4.0 version: 2.4.0(vue@3.4.27(typescript@5.4.5)) vue-pdf-embed: - specifier: ^2.0.3 - version: 2.0.3(vue@3.4.27(typescript@5.4.5)) + specifier: ^2.0.4 + version: 2.0.4(vue@3.4.27(typescript@5.4.5)) vue-router: specifier: ^4.3.2 version: 4.3.2(vue@3.4.27(typescript@5.4.5)) @@ -191,7 +191,7 @@ importers: devDependencies: '@commitlint/cli': specifier: ^19.3.0 - version: 19.3.0(@types/node@20.12.12)(typescript@5.4.5) + version: 19.3.0(@types/node@20.12.13)(typescript@5.4.5) '@commitlint/config-conventional': specifier: ^19.2.2 version: 19.2.2 @@ -232,8 +232,8 @@ importers: specifier: ^3.0.6 version: 3.0.6 '@types/node': - specifier: ^20.12.12 - version: 20.12.12 + specifier: ^20.12.13 + version: 20.12.13 '@types/nprogress': specifier: ^0.2.3 version: 0.2.3 @@ -254,10 +254,10 @@ importers: version: 7.11.0(eslint@9.3.0)(typescript@5.4.5) '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4))(vue@3.4.27(typescript@5.4.5)) '@vitejs/plugin-vue-jsx': specifier: ^3.1.0 - version: 3.1.0(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2))(vue@3.4.27(typescript@5.4.5)) + version: 3.1.0(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4))(vue@3.4.27(typescript@5.4.5)) autoprefixer: specifier: ^10.4.19 version: 10.4.19(postcss@8.4.38) @@ -316,23 +316,23 @@ importers: specifier: ^5.12.0 version: 5.12.0(rollup@4.18.0) sass: - specifier: ^1.77.2 - version: 1.77.2 + specifier: ^1.77.4 + version: 1.77.4 stylelint: - specifier: ^16.6.0 - version: 16.6.0(typescript@5.4.5) + specifier: ^16.6.1 + version: 16.6.1(typescript@5.4.5) stylelint-config-recess-order: specifier: ^5.0.1 - version: 5.0.1(stylelint@16.6.0(typescript@5.4.5)) + version: 5.0.1(stylelint@16.6.1(typescript@5.4.5)) stylelint-config-recommended-vue: specifier: ^1.5.0 - version: 1.5.0(postcss-html@1.7.0)(stylelint@16.6.0(typescript@5.4.5)) + version: 1.5.0(postcss-html@1.7.0)(stylelint@16.6.1(typescript@5.4.5)) stylelint-config-standard-scss: specifier: ^13.1.0 - version: 13.1.0(postcss@8.4.38)(stylelint@16.6.0(typescript@5.4.5)) + version: 13.1.0(postcss@8.4.38)(stylelint@16.6.1(typescript@5.4.5)) stylelint-prettier: specifier: ^5.0.0 - version: 5.0.0(prettier@3.2.5)(stylelint@16.6.0(typescript@5.4.5)) + version: 5.0.0(prettier@3.2.5)(stylelint@16.6.1(typescript@5.4.5)) svgo: specifier: ^3.3.2 version: 3.3.2 @@ -343,14 +343,14 @@ importers: specifier: ^5.4.5 version: 5.4.5 vite: - specifier: ^5.2.11 - version: 5.2.11(@types/node@20.12.12)(sass@1.77.2) + specifier: ^5.2.12 + version: 5.2.12(@types/node@20.12.13)(sass@1.77.4) vite-plugin-cdn-import: specifier: ^1.0.1 - version: 1.0.1(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)) + version: 1.0.1(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4)) vite-plugin-compression: specifier: ^0.5.1 - version: 0.5.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)) + version: 0.5.1(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4)) vite-plugin-fake-server: specifier: ^2.1.1 version: 2.1.1 @@ -1431,8 +1431,8 @@ packages: '@types/mousetrap@1.6.15': resolution: {integrity: sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw==} - '@types/node@20.12.12': - resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} + '@types/node@20.12.13': + resolution: {integrity: sha512-gBGeanV41c1L171rR7wjbMiEpEI/l5XFQdLLfhr/REwpgDy/4U8y89+i8kRiLzDyZdOkXh+cRaTetUnCYutoXA==} '@types/nprogress@0.2.3': resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} @@ -1577,8 +1577,8 @@ packages: '@vue-flow/core': ^1.23.0 vue: ^3.3.0 - '@vue-flow/core@1.33.8': - resolution: {integrity: sha512-dwHRtMrp9Wje4b0mmZiU00VSWcPFnOAn+g/x6WBHpVhW4KCv3ckHsfZF3p1ApjKJYv/w4lntsN+cJmkIz7dJqw==} + '@vue-flow/core@1.34.0': + resolution: {integrity: sha512-g00ZxAMmIziFG16FeuE9WEsELNlABzFvv835tXJwCM1b5HAjbzh/d8iFtl6OkuCGfBeTgpo/PrqzU7nmLQpY2w==} peerDependencies: vue: ^3.3.0 @@ -1664,8 +1664,8 @@ packages: '@vueuse/metadata@9.13.0': resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} - '@vueuse/motion@2.1.0': - resolution: {integrity: sha512-n8RtzTQa22kt2OPOQxjHteD+3rnjoAqCd6xiYdQMgFW4HcYMSdemiKcUwRx+hVUFe0zOyLDaTrySYVcHb5HgHA==} + '@vueuse/motion@2.2.0': + resolution: {integrity: sha512-aD92e9X9Dz/VyZ+0F4cQxtBxa1cnzfodhf2+q19Pm6CfSvdeqi1m4csxYrH+j5n6y/sJ7oFmawxMBV8Y9KvL4g==} peerDependencies: vue: '>=3.0.0' @@ -1879,6 +1879,7 @@ packages: are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} + deprecated: This package is no longer supported. arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -2031,8 +2032,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001623: - resolution: {integrity: sha512-X/XhAVKlpIxWPpgRTnlgZssJrF0m6YtRA0QDWgsBNT12uZM6LPRydR7ip405Y3t1LamD8cP2TZFEDZFBf5ApcA==} + caniuse-lite@1.0.30001625: + resolution: {integrity: sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==} canvas@2.11.2: resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} @@ -2539,11 +2540,11 @@ packages: echarts@5.5.0: resolution: {integrity: sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==} - el-table-infinite-scroll@3.0.3: - resolution: {integrity: sha512-cmMHg4MxrNOV2dFziV3ISRo+rM/3tAH8TE3wWMGKd4ucjvk21Bfb6MJfPuNAicLOkq4fYZm+J+mr0NmDPnvolQ==} + el-table-infinite-scroll@3.0.5: + resolution: {integrity: sha512-EivKTK8jGxN1A+o3sZ0zWAd8vIrhQv7W+n04cwYKi9gpbiUqIonoW/EFs81wE/vtjvXj8DEAfzxmTH0JRI8PYQ==} - electron-to-chromium@1.4.783: - resolution: {integrity: sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==} + electron-to-chromium@1.4.787: + resolution: {integrity: sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ==} element-plus@2.1.4: resolution: {integrity: sha512-pcwgDbKUrzyWbixYB/zIbLPLBQ/NPGPJnGXJ+jYozUSthPW4SuriaUGJKgbAE6PDBAtw3IodiT2E2GbiaZLxww==} @@ -2796,6 +2797,10 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} + file-entry-cache@9.0.0: + resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==} + engines: {node: '>=18'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -2816,6 +2821,10 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} + flat-cache@5.0.0: + resolution: {integrity: sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==} + engines: {node: '>=18'} + flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -2876,6 +2885,7 @@ packages: gauge@3.0.2: resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} engines: {node: '>=10'} + deprecated: This package is no longer supported. gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -3951,9 +3961,9 @@ packages: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} - path2d-polyfill@2.0.1: - resolution: {integrity: sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==} - engines: {node: '>=8'} + path2d@0.2.0: + resolution: {integrity: sha512-KdPAykQX6kmLSOO6Jpu2KNcCED7CKjmaBNGGNuctOsG0hgYO1OdYQaan6cYXJiG0WmXOwZZPILPBimu5QAIw3A==} + engines: {node: '>=6'} path@0.12.7: resolution: {integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==} @@ -3961,8 +3971,8 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pdfjs-dist@3.11.174: - resolution: {integrity: sha512-TdTZPf1trZ8/UFu5Cx/GXB7GZM30LT+wWUNfsi6Bq8ePLnb+woNKtDymI2mxZYBpMbonNFqKmiz684DIfnd8dA==} + pdfjs-dist@4.3.136: + resolution: {integrity: sha512-gzfnt1qc4yA+U46golPGYtU4WM2ssqP2MvFjKga8GEKOrEnzRPrA/9jogLLPYHiA3sGBPJ+p7BdAq+ytmw3jEg==} engines: {node: '>=18'} perfect-debounce@1.0.0: @@ -3996,8 +4006,8 @@ packages: typescript: optional: true - pinyin-pro@3.21.0: - resolution: {integrity: sha512-3vhDqWbfjLcJAdLQGECtu8nsKI3bJva1AuqaG+c7Lgvs93Dvuqg8OhvanarrQ7QDGcg/k+aLnoSIf3VWIyjiUw==} + pinyin-pro@3.21.1: + resolution: {integrity: sha512-7Dhveh/6q5rA53a4gJWM5U19Ygkvz/pOoUdw7chE5bD+7cRCvpguRhxyO2WX6UWAFj80n2wHuyoZMh1V25VTbQ==} pirates@4.0.6: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} @@ -4010,8 +4020,8 @@ packages: pkg-types@1.1.1: resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} - plus-pro-components@0.1.6: - resolution: {integrity: sha512-JHN3cOKqZFBV0Gtt/9tsPNx2QPGhFe8rrwKhXZSRYBWWSJvZjtTJNvmItZ2ALFY0pdsuI5hJmsnzPj2CIrqnag==} + plus-pro-components@0.1.7: + resolution: {integrity: sha512-RZ9w5Fpc3y9oZiBf8dw8Kmm4/aXaNEJALYm7KEKUxIP9bft0teOc2kDjkxPQPMZDlkLI/fk/ffCzPfO8eTBL6Q==} peerDependencies: element-plus: ^2.3.4 vue: ^3.2.0 @@ -4607,8 +4617,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.77.2: - resolution: {integrity: sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==} + sass@1.77.4: + resolution: {integrity: sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==} engines: {node: '>=14.0.0'} hasBin: true @@ -4894,8 +4904,8 @@ packages: peerDependencies: stylelint: ^16.0.2 - stylelint@16.6.0: - resolution: {integrity: sha512-vjWYlDEgOS3Z/IcXagQwi8PFJyPro1DxBYOnTML1PAqnrYUHs8owleGStv20sgt0OhW8r9zZm6MK7IT2+l2B6A==} + stylelint@16.6.1: + resolution: {integrity: sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q==} engines: {node: '>=18.12.0'} hasBin: true @@ -4941,8 +4951,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - swiper@11.1.3: - resolution: {integrity: sha512-80MSxonyTxrGcaWj9YgvvhD8OG0B9/9IVZP33vhIEvyWvmKjnQDBieO+29wKvMx285sAtvZyrWBdkxaw6+D3aw==} + swiper@11.1.4: + resolution: {integrity: sha512-1n7kbYJB2dFEpUHRFszq7gys/ofIBrMNibwTiMvPHwneKND/t9kImnHt6CfGPScMHgI+dWMbGTycCKGMoOO1KA==} engines: {node: '>= 4.7.0'} symbol-tree@3.2.4: @@ -5065,8 +5075,8 @@ packages: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + type@2.7.3: + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -5186,8 +5196,8 @@ packages: peerDependencies: vue: '>=3.2.13' - vite@5.2.11: - resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} + vite@5.2.12: + resolution: {integrity: sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5214,8 +5224,8 @@ packages: terser: optional: true - vue-demi@0.14.7: - resolution: {integrity: sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==} + vue-demi@0.14.8: + resolution: {integrity: sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==} engines: {node: '>=12'} hasBin: true peerDependencies: @@ -5248,8 +5258,8 @@ packages: peerDependencies: vue: ^3.0.0 - vue-pdf-embed@2.0.3: - resolution: {integrity: sha512-3kSBUBen/ZUezWtbby9J8FhmS8u3cgPoogeFZMge33keelJqZbUC3PvpJi5CDnrCLVuty/gtvSill+GQPnXDow==} + vue-pdf-embed@2.0.4: + resolution: {integrity: sha512-TO/sM+Ljvtbdnxsjvln7PAX6hJ+DuNXiDwrh93JDH1QUY+e37NijYJS2R4BYdLJR/hKj2evt1os85YNW6TxDCw==} peerDependencies: vue: ^3.3.0 @@ -5810,11 +5820,11 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@commitlint/cli@19.3.0(@types/node@20.12.12)(typescript@5.4.5)': + '@commitlint/cli@19.3.0(@types/node@20.12.13)(typescript@5.4.5)': dependencies: '@commitlint/format': 19.3.0 '@commitlint/lint': 19.2.2 - '@commitlint/load': 19.2.0(@types/node@20.12.12)(typescript@5.4.5) + '@commitlint/load': 19.2.0(@types/node@20.12.13)(typescript@5.4.5) '@commitlint/read': 19.2.1 '@commitlint/types': 19.0.3 execa: 8.0.1 @@ -5861,7 +5871,7 @@ snapshots: '@commitlint/rules': 19.0.3 '@commitlint/types': 19.0.3 - '@commitlint/load@19.2.0(@types/node@20.12.12)(typescript@5.4.5)': + '@commitlint/load@19.2.0(@types/node@20.12.13)(typescript@5.4.5)': dependencies: '@commitlint/config-validator': 19.0.3 '@commitlint/execute-rule': 19.0.0 @@ -5869,7 +5879,7 @@ snapshots: '@commitlint/types': 19.0.3 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@5.4.5) - cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) + cosmiconfig-typescript-loader: 5.0.0(@types/node@20.12.13)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -6231,7 +6241,7 @@ snapshots: '@jest/console@27.5.1': dependencies: '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -6244,7 +6254,7 @@ snapshots: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -6278,14 +6288,14 @@ snapshots: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 jest-mock: 27.5.1 '@jest/fake-timers@27.5.1': dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 20.12.12 + '@types/node': 20.12.13 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -6303,7 +6313,7 @@ snapshots: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -6372,7 +6382,7 @@ snapshots: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.12.12 + '@types/node': 20.12.13 '@types/yargs': 16.0.9 chalk: 4.1.2 @@ -6620,7 +6630,7 @@ snapshots: '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 20.12.12 + '@types/node': 20.12.13 '@types/dagre@0.7.52': {} @@ -6630,7 +6640,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 20.12.12 + '@types/node': 20.12.13 '@types/gradient-string@1.1.6': dependencies: @@ -6658,7 +6668,7 @@ snapshots: '@types/mousetrap@1.6.15': {} - '@types/node@20.12.12': + '@types/node@20.12.13': dependencies: undici-types: 5.26.5 @@ -6668,7 +6678,7 @@ snapshots: '@types/qrcode@1.5.5': dependencies: - '@types/node': 20.12.12 + '@types/node': 20.12.13 '@types/qs@6.9.15': {} @@ -6802,19 +6812,19 @@ snapshots: '@uppy/utils': 4.1.3 nanoid: 3.3.7 - '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4))(vue@3.4.27(typescript@5.4.5))': dependencies: '@babel/core': 7.24.6 '@babel/plugin-transform-typescript': 7.24.6(@babel/core@7.24.6) '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.6) - vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2) + vite: 5.2.12(@types/node@20.12.13)(sass@1.77.4) vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4))(vue@3.4.27(typescript@5.4.5))': dependencies: - vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2) + vite: 5.2.12(@types/node@20.12.13)(sass@1.77.4) vue: 3.4.27(typescript@5.4.5) '@volar/language-core@1.11.1': @@ -6830,12 +6840,12 @@ snapshots: '@volar/language-core': 1.11.1 path-browserify: 1.0.1 - '@vue-flow/background@1.3.0(@vue-flow/core@1.33.8(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))': + '@vue-flow/background@1.3.0(@vue-flow/core@1.34.0(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5))': dependencies: - '@vue-flow/core': 1.33.8(vue@3.4.27(typescript@5.4.5)) + '@vue-flow/core': 1.34.0(vue@3.4.27(typescript@5.4.5)) vue: 3.4.27(typescript@5.4.5) - '@vue-flow/core@1.33.8(vue@3.4.27(typescript@5.4.5))': + '@vue-flow/core@1.34.0(vue@3.4.27(typescript@5.4.5))': dependencies: '@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5)) d3-drag: 3.0.0 @@ -6948,7 +6958,7 @@ snapshots: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 10.10.0 '@vueuse/shared': 10.10.0(vue@3.4.27(typescript@5.4.5)) - vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -6958,7 +6968,7 @@ snapshots: '@types/web-bluetooth': 0.0.14 '@vueuse/metadata': 8.9.4 '@vueuse/shared': 8.9.4(vue@3.4.27(typescript@5.4.5)) - vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) optionalDependencies: vue: 3.4.27(typescript@5.4.5) @@ -6967,7 +6977,7 @@ snapshots: '@types/web-bluetooth': 0.0.16 '@vueuse/metadata': 9.13.0 '@vueuse/shared': 9.13.0(vue@3.4.27(typescript@5.4.5)) - vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -6978,7 +6988,7 @@ snapshots: '@vueuse/metadata@9.13.0': {} - '@vueuse/motion@2.1.0(rollup@4.18.0)(vue@3.4.27(typescript@5.4.5))': + '@vueuse/motion@2.2.0(rollup@4.18.0)(vue@3.4.27(typescript@5.4.5))': dependencies: '@vueuse/core': 10.10.0(vue@3.4.27(typescript@5.4.5)) '@vueuse/shared': 10.10.0(vue@3.4.27(typescript@5.4.5)) @@ -6996,20 +7006,20 @@ snapshots: '@vueuse/shared@10.10.0(vue@3.4.27(typescript@5.4.5))': dependencies: - vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue '@vueuse/shared@8.9.4(vue@3.4.27(typescript@5.4.5))': dependencies: - vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) optionalDependencies: vue: 3.4.27(typescript@5.4.5) '@vueuse/shared@9.13.0(vue@3.4.27(typescript@5.4.5))': dependencies: - vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -7249,7 +7259,7 @@ snapshots: autoprefixer@10.4.19(postcss@8.4.38): dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001623 + caniuse-lite: 1.0.30001625 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 @@ -7368,8 +7378,8 @@ snapshots: browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001623 - electron-to-chromium: 1.4.783 + caniuse-lite: 1.0.30001625 + electron-to-chromium: 1.4.787 node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.0) @@ -7428,11 +7438,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001623 + caniuse-lite: 1.0.30001625 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001623: {} + caniuse-lite@1.0.30001625: {} canvas@2.11.2: dependencies: @@ -7616,9 +7626,9 @@ snapshots: core-js@3.37.1: {} - cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.12)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): + cosmiconfig-typescript-loader@5.0.0(@types/node@20.12.13)(cosmiconfig@9.0.0(typescript@5.4.5))(typescript@5.4.5): dependencies: - '@types/node': 20.12.12 + '@types/node': 20.12.13 cosmiconfig: 9.0.0(typescript@5.4.5) jiti: 1.21.0 typescript: 5.4.5 @@ -7840,7 +7850,7 @@ snapshots: d@1.0.2: dependencies: es5-ext: 0.10.64 - type: 2.7.2 + type: 2.7.3 dagre@0.8.5: dependencies: @@ -7987,7 +7997,7 @@ snapshots: tslib: 2.3.0 zrender: 5.5.0 - el-table-infinite-scroll@3.0.3(typescript@5.4.5): + el-table-infinite-scroll@3.0.5(typescript@5.4.5): dependencies: core-js: 3.37.1 element-plus: 2.7.3(vue@3.4.27(typescript@5.4.5)) @@ -7996,7 +8006,7 @@ snapshots: - '@vue/composition-api' - typescript - electron-to-chromium@1.4.783: {} + electron-to-chromium@1.4.787: {} element-plus@2.1.4(@types/lodash-es@4.17.12)(vue@3.4.27(typescript@5.4.5)): dependencies: @@ -8248,7 +8258,7 @@ snapshots: d: 1.0.2 es5-ext: 0.10.64 event-emitter: 0.3.5 - type: 2.7.2 + type: 2.7.3 espree@10.0.1: dependencies: @@ -8326,7 +8336,7 @@ snapshots: ext@1.7.0: dependencies: - type: 2.7.2 + type: 2.7.3 fast-deep-equal@3.1.3: {} @@ -8358,6 +8368,10 @@ snapshots: dependencies: flat-cache: 4.0.1 + file-entry-cache@9.0.0: + dependencies: + flat-cache: 5.0.0 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -8383,6 +8397,11 @@ snapshots: flatted: 3.3.1 keyv: 4.5.4 + flat-cache@5.0.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + flatted@3.3.1: {} follow-redirects@1.15.6: {} @@ -8814,7 +8833,7 @@ snapshots: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -8910,7 +8929,7 @@ snapshots: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0(canvas@2.11.2) @@ -8925,7 +8944,7 @@ snapshots: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -8935,7 +8954,7 @@ snapshots: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.9 - '@types/node': 20.12.12 + '@types/node': 20.12.13 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8954,7 +8973,7 @@ snapshots: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -8997,7 +9016,7 @@ snapshots: jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): optionalDependencies: @@ -9033,7 +9052,7 @@ snapshots: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.11 @@ -9084,7 +9103,7 @@ snapshots: jest-serializer@27.5.1: dependencies: - '@types/node': 20.12.12 + '@types/node': 20.12.13 graceful-fs: 4.2.11 jest-snapshot@27.5.1: @@ -9117,7 +9136,7 @@ snapshots: jest-util@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -9136,7 +9155,7 @@ snapshots: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.12.12 + '@types/node': 20.12.13 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -9144,7 +9163,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 20.12.12 + '@types/node': 20.12.13 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -9717,7 +9736,7 @@ snapshots: path-type@5.0.0: optional: true - path2d-polyfill@2.0.1: + path2d@0.2.0: optional: true path@0.12.7: @@ -9727,10 +9746,10 @@ snapshots: pathe@1.1.2: {} - pdfjs-dist@3.11.174: + pdfjs-dist@4.3.136: optionalDependencies: canvas: 2.11.2 - path2d-polyfill: 2.0.1 + path2d: 0.2.0 transitivePeerDependencies: - encoding - supports-color @@ -9750,11 +9769,11 @@ snapshots: dependencies: '@vue/devtools-api': 6.6.1 vue: 3.4.27(typescript@5.4.5) - vue-demi: 0.14.7(vue@3.4.27(typescript@5.4.5)) + vue-demi: 0.14.8(vue@3.4.27(typescript@5.4.5)) optionalDependencies: typescript: 5.4.5 - pinyin-pro@3.21.0: {} + pinyin-pro@3.21.1: {} pirates@4.0.6: {} @@ -9768,7 +9787,7 @@ snapshots: mlly: 1.7.0 pathe: 1.1.2 - plus-pro-components@0.1.6(element-plus@2.7.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): + plus-pro-components@0.1.7(element-plus@2.7.3(vue@3.4.27(typescript@5.4.5)))(vue@3.4.27(typescript@5.4.5)): dependencies: '@element-plus/icons-vue': 2.3.1(vue@3.4.27(typescript@5.4.5)) element-plus: 2.7.3(vue@3.4.27(typescript@5.4.5)) @@ -10324,7 +10343,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.77.2: + sass@1.77.4: dependencies: chokidar: 3.6.0 immutable: 4.3.6 @@ -10534,72 +10553,72 @@ snapshots: postcss: 8.4.38 postcss-selector-parser: 6.1.0 - stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@16.6.0(typescript@5.4.5)): + stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@16.6.1(typescript@5.4.5)): dependencies: postcss-html: 1.7.0 - stylelint: 16.6.0(typescript@5.4.5) + stylelint: 16.6.1(typescript@5.4.5) - stylelint-config-recess-order@5.0.1(stylelint@16.6.0(typescript@5.4.5)): + stylelint-config-recess-order@5.0.1(stylelint@16.6.1(typescript@5.4.5)): dependencies: - stylelint: 16.6.0(typescript@5.4.5) - stylelint-order: 6.0.4(stylelint@16.6.0(typescript@5.4.5)) + stylelint: 16.6.1(typescript@5.4.5) + stylelint-order: 6.0.4(stylelint@16.6.1(typescript@5.4.5)) - stylelint-config-recommended-scss@14.0.0(postcss@8.4.38)(stylelint@16.6.0(typescript@5.4.5)): + stylelint-config-recommended-scss@14.0.0(postcss@8.4.38)(stylelint@16.6.1(typescript@5.4.5)): dependencies: postcss-scss: 4.0.9(postcss@8.4.38) - stylelint: 16.6.0(typescript@5.4.5) - stylelint-config-recommended: 14.0.0(stylelint@16.6.0(typescript@5.4.5)) - stylelint-scss: 6.3.0(stylelint@16.6.0(typescript@5.4.5)) + stylelint: 16.6.1(typescript@5.4.5) + stylelint-config-recommended: 14.0.0(stylelint@16.6.1(typescript@5.4.5)) + stylelint-scss: 6.3.0(stylelint@16.6.1(typescript@5.4.5)) optionalDependencies: postcss: 8.4.38 - stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@16.6.0(typescript@5.4.5)): + stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@16.6.1(typescript@5.4.5)): dependencies: postcss-html: 1.7.0 semver: 7.6.2 - stylelint: 16.6.0(typescript@5.4.5) - stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@16.6.0(typescript@5.4.5)) - stylelint-config-recommended: 14.0.0(stylelint@16.6.0(typescript@5.4.5)) + stylelint: 16.6.1(typescript@5.4.5) + stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@16.6.1(typescript@5.4.5)) + stylelint-config-recommended: 14.0.0(stylelint@16.6.1(typescript@5.4.5)) - stylelint-config-recommended@14.0.0(stylelint@16.6.0(typescript@5.4.5)): + stylelint-config-recommended@14.0.0(stylelint@16.6.1(typescript@5.4.5)): dependencies: - stylelint: 16.6.0(typescript@5.4.5) + stylelint: 16.6.1(typescript@5.4.5) - stylelint-config-standard-scss@13.1.0(postcss@8.4.38)(stylelint@16.6.0(typescript@5.4.5)): + stylelint-config-standard-scss@13.1.0(postcss@8.4.38)(stylelint@16.6.1(typescript@5.4.5)): dependencies: - stylelint: 16.6.0(typescript@5.4.5) - stylelint-config-recommended-scss: 14.0.0(postcss@8.4.38)(stylelint@16.6.0(typescript@5.4.5)) - stylelint-config-standard: 36.0.0(stylelint@16.6.0(typescript@5.4.5)) + stylelint: 16.6.1(typescript@5.4.5) + stylelint-config-recommended-scss: 14.0.0(postcss@8.4.38)(stylelint@16.6.1(typescript@5.4.5)) + stylelint-config-standard: 36.0.0(stylelint@16.6.1(typescript@5.4.5)) optionalDependencies: postcss: 8.4.38 - stylelint-config-standard@36.0.0(stylelint@16.6.0(typescript@5.4.5)): + stylelint-config-standard@36.0.0(stylelint@16.6.1(typescript@5.4.5)): dependencies: - stylelint: 16.6.0(typescript@5.4.5) - stylelint-config-recommended: 14.0.0(stylelint@16.6.0(typescript@5.4.5)) + stylelint: 16.6.1(typescript@5.4.5) + stylelint-config-recommended: 14.0.0(stylelint@16.6.1(typescript@5.4.5)) - stylelint-order@6.0.4(stylelint@16.6.0(typescript@5.4.5)): + stylelint-order@6.0.4(stylelint@16.6.1(typescript@5.4.5)): dependencies: postcss: 8.4.38 postcss-sorting: 8.0.2(postcss@8.4.38) - stylelint: 16.6.0(typescript@5.4.5) + stylelint: 16.6.1(typescript@5.4.5) - stylelint-prettier@5.0.0(prettier@3.2.5)(stylelint@16.6.0(typescript@5.4.5)): + stylelint-prettier@5.0.0(prettier@3.2.5)(stylelint@16.6.1(typescript@5.4.5)): dependencies: prettier: 3.2.5 prettier-linter-helpers: 1.0.0 - stylelint: 16.6.0(typescript@5.4.5) + stylelint: 16.6.1(typescript@5.4.5) - stylelint-scss@6.3.0(stylelint@16.6.0(typescript@5.4.5)): + stylelint-scss@6.3.0(stylelint@16.6.1(typescript@5.4.5)): dependencies: known-css-properties: 0.30.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.1 postcss-selector-parser: 6.1.0 postcss-value-parser: 4.2.0 - stylelint: 16.6.0(typescript@5.4.5) + stylelint: 16.6.1(typescript@5.4.5) - stylelint@16.6.0(typescript@5.4.5): + stylelint@16.6.1(typescript@5.4.5): dependencies: '@csstools/css-parser-algorithms': 2.6.3(@csstools/css-tokenizer@2.3.1) '@csstools/css-tokenizer': 2.3.1 @@ -10614,7 +10633,7 @@ snapshots: debug: 4.3.4 fast-glob: 3.3.2 fastest-levenshtein: 1.0.16 - file-entry-cache: 8.0.0 + file-entry-cache: 9.0.0 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 @@ -10700,7 +10719,7 @@ snapshots: csso: 5.0.5 picocolors: 1.0.1 - swiper@11.1.3: {} + swiper@11.1.4: {} symbol-tree@3.2.4: {} @@ -10840,7 +10859,7 @@ snapshots: type-fest@2.19.0: {} - type@2.7.2: {} + type@2.7.3: {} typedarray-to-buffer@3.1.5: dependencies: @@ -10953,30 +10972,30 @@ snapshots: transitivePeerDependencies: - debug - vite-plugin-cdn-import@1.0.1(rollup@4.18.0)(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)): + vite-plugin-cdn-import@1.0.1(rollup@4.18.0)(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4)): dependencies: rollup-plugin-external-globals: 0.10.0(rollup@4.18.0) - vite-plugin-externals: 0.6.2(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)) + vite-plugin-externals: 0.6.2(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4)) transitivePeerDependencies: - rollup - vite - vite-plugin-compression@0.5.1(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)): + vite-plugin-compression@0.5.1(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4)): dependencies: chalk: 4.1.2 debug: 4.3.4 fs-extra: 10.1.0 - vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2) + vite: 5.2.12(@types/node@20.12.13)(sass@1.77.4) transitivePeerDependencies: - supports-color - vite-plugin-externals@0.6.2(vite@5.2.11(@types/node@20.12.12)(sass@1.77.2)): + vite-plugin-externals@0.6.2(vite@5.2.12(@types/node@20.12.13)(sass@1.77.4)): dependencies: acorn: 8.11.3 es-module-lexer: 0.4.1 fs-extra: 10.1.0 magic-string: 0.25.9 - vite: 5.2.11(@types/node@20.12.12)(sass@1.77.2) + vite: 5.2.12(@types/node@20.12.13)(sass@1.77.4) vite-plugin-fake-server@2.1.1: dependencies: @@ -11010,17 +11029,17 @@ snapshots: svgo: 3.3.2 vue: 3.4.27(typescript@5.4.5) - vite@5.2.11(@types/node@20.12.12)(sass@1.77.2): + vite@5.2.12(@types/node@20.12.13)(sass@1.77.4): dependencies: esbuild: 0.20.2 postcss: 8.4.38 rollup: 4.18.0 optionalDependencies: - '@types/node': 20.12.12 + '@types/node': 20.12.13 fsevents: 2.3.3 - sass: 1.77.2 + sass: 1.77.4 - vue-demi@0.14.7(vue@3.4.27(typescript@5.4.5)): + vue-demi@0.14.8(vue@3.4.27(typescript@5.4.5)): dependencies: vue: 3.4.27(typescript@5.4.5) @@ -11052,9 +11071,9 @@ snapshots: dependencies: vue: 3.4.27(typescript@5.4.5) - vue-pdf-embed@2.0.3(vue@3.4.27(typescript@5.4.5)): + vue-pdf-embed@2.0.4(vue@3.4.27(typescript@5.4.5)): dependencies: - pdfjs-dist: 3.11.174 + pdfjs-dist: 4.3.136 vue: 3.4.27(typescript@5.4.5) transitivePeerDependencies: - encoding diff --git a/public/platform-config.json b/public/platform-config.json index ecc459b86..dbd8bb48b 100644 --- a/public/platform-config.json +++ b/public/platform-config.json @@ -1,5 +1,5 @@ { - "Version": "5.6.0", + "Version": "5.7.0", "Title": "PureAdmin", "FixedHeader": true, "HiddenSideBar": false, diff --git a/public/sponsors/aitools.svg b/public/sponsors/aitools.svg deleted file mode 100644 index 9110b2431..000000000 --- a/public/sponsors/aitools.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/directives/auth/index.ts b/src/directives/auth/index.ts index a7a4f2216..2fc649047 100644 --- a/src/directives/auth/index.ts +++ b/src/directives/auth/index.ts @@ -2,7 +2,7 @@ import { hasAuth } from "@/router/utils"; import type { Directive, DirectiveBinding } from "vue"; export const auth: Directive = { - mounted(el: HTMLElement, binding: DirectiveBinding) { + mounted(el: HTMLElement, binding: DirectiveBinding>) { const { value } = binding; if (value) { !hasAuth(value) && el.parentNode?.removeChild(el); diff --git a/src/directives/copy/index.ts b/src/directives/copy/index.ts index 8e9783381..b71fa1901 100644 --- a/src/directives/copy/index.ts +++ b/src/directives/copy/index.ts @@ -3,13 +3,13 @@ import { useEventListener } from "@vueuse/core"; import { copyTextToClipboard } from "@pureadmin/utils"; import type { Directive, DirectiveBinding } from "vue"; -interface CopyEl extends HTMLElement { +export interface CopyEl extends HTMLElement { copyValue: string; } /** 文本复制指令(默认双击复制) */ export const copy: Directive = { - mounted(el: CopyEl, binding: DirectiveBinding) { + mounted(el: CopyEl, binding: DirectiveBinding) { const { value } = binding; if (value) { el.copyValue = value; diff --git a/src/directives/longpress/index.ts b/src/directives/longpress/index.ts index 544278448..4eec6a22b 100644 --- a/src/directives/longpress/index.ts +++ b/src/directives/longpress/index.ts @@ -3,7 +3,7 @@ import type { Directive, DirectiveBinding } from "vue"; import { subBefore, subAfter, isFunction } from "@pureadmin/utils"; export const longpress: Directive = { - mounted(el: HTMLElement, binding: DirectiveBinding) { + mounted(el: HTMLElement, binding: DirectiveBinding) { const cb = binding.value; if (cb && isFunction(cb)) { let timer = null; diff --git a/src/directives/optimize/index.ts b/src/directives/optimize/index.ts index 395eb456c..7b92538d1 100644 --- a/src/directives/optimize/index.ts +++ b/src/directives/optimize/index.ts @@ -8,9 +8,22 @@ import { import { useEventListener } from "@vueuse/core"; import type { Directive, DirectiveBinding } from "vue"; +export interface OptimizeOptions { + /** 事件名 */ + event: string; + /** 事件触发的方法 */ + fn: (...params: any) => any; + /** 是否立即执行 */ + immediate?: boolean; + /** 防抖或节流的延迟时间(防抖默认:`200`毫秒、节流默认:`1000`毫秒) */ + timeout?: number; + /** 传递的参数 */ + params?: any; +} + /** 防抖(v-optimize或v-optimize:debounce)、节流(v-optimize:throttle)指令 */ export const optimize: Directive = { - mounted(el: HTMLElement, binding: DirectiveBinding) { + mounted(el: HTMLElement, binding: DirectiveBinding) { const { value } = binding; const optimizeType = binding.arg ?? "debounce"; const type = ["debounce", "throttle"].find(t => t === optimizeType); diff --git a/src/directives/ripple/index.ts b/src/directives/ripple/index.ts index 06ff25f26..3fd94d9cf 100644 --- a/src/directives/ripple/index.ts +++ b/src/directives/ripple/index.ts @@ -2,8 +2,10 @@ import "./index.scss"; import { isObject } from "@pureadmin/utils"; import type { Directive, DirectiveBinding } from "vue"; -interface RippleOptions { +export interface RippleOptions { + /** 自定义`ripple`颜色,支持`tailwindcss` */ class?: string; + /** 是否从中心扩散 */ center?: boolean; circle?: boolean; } @@ -220,13 +222,6 @@ function updated(el: HTMLElement, binding: RippleDirectiveBinding) { updateRipple(el, binding, wasEnabled); } -/** - * @description 指令 v-ripple - * @use 用法如下 - * 1. v-ripple 代表启用基本的 ripple 功能 - * 2. v-ripple="{ class: 'text-red' }" 代表自定义 ripple 颜色,支持 tailwindcss,生效样式是 color - * 3. v-ripple.center 代表从中心扩散 - */ export const Ripple: Directive = { mounted, unmounted, diff --git a/src/layout/components/lay-content/index.vue b/src/layout/components/lay-content/index.vue index 56bdd136c..5810d665b 100644 --- a/src/layout/components/lay-content/index.vue +++ b/src/layout/components/lay-content/index.vue @@ -2,6 +2,7 @@ import { useI18n } from "vue-i18n"; import LayFrame from "../lay-frame/index.vue"; import LayFooter from "../lay-footer/index.vue"; +import { useTags } from "@/layout/hooks/useTag"; import { useGlobal, isNumber } from "@pureadmin/utils"; import BackTopIcon from "@/assets/svg/back_top.svg?component"; import { h, computed, Transition, defineComponent } from "vue"; @@ -12,6 +13,7 @@ const props = defineProps({ }); const { t } = useI18n(); +const { showModel } = useTags(); const { $storage, $config } = useGlobal(); const isKeepAlive = computed(() => { @@ -51,9 +53,17 @@ const getMainWidth = computed(() => { const getSectionStyle = computed(() => { return [ hideTabs.value && layout ? "padding-top: 48px;" : "", - !hideTabs.value && layout ? "padding-top: 81px;" : "", + !hideTabs.value && layout + ? showModel.value == "chrome" + ? "padding-top: 85px;" + : "padding-top: 81px;" + : "", hideTabs.value && !layout.value ? "padding-top: 48px;" : "", - !hideTabs.value && !layout.value ? "padding-top: 81px;" : "", + !hideTabs.value && !layout.value + ? showModel.value == "chrome" + ? "padding-top: 85px;" + : "padding-top: 81px;" + : "", props.fixedHeader ? "" : `padding-top: 0;${ diff --git a/src/layout/components/lay-setting/index.vue b/src/layout/components/lay-setting/index.vue index b4c8b7fa0..18aacf256 100644 --- a/src/layout/components/lay-setting/index.vue +++ b/src/layout/components/lay-setting/index.vue @@ -232,6 +232,11 @@ const markOptions = computed>(() => { label: t("panel.pureTagsStyleCard"), tip: t("panel.pureTagsStyleCardTip"), value: "card" + }, + { + label: t("panel.pureTagsStyleChrome"), + tip: t("panel.pureTagsStyleChromeTip"), + value: "chrome" } ]; }); @@ -442,7 +447,7 @@ onUnmounted(() => removeMatchMedia); diff --git a/src/layout/components/lay-tag/components/TagChrome.vue b/src/layout/components/lay-tag/components/TagChrome.vue new file mode 100644 index 000000000..137365b46 --- /dev/null +++ b/src/layout/components/lay-tag/components/TagChrome.vue @@ -0,0 +1,33 @@ + diff --git a/src/layout/components/lay-tag/index.scss b/src/layout/components/lay-tag/index.scss index cc122dd2e..b88121690 100644 --- a/src/layout/components/lay-tag/index.scss +++ b/src/layout/components/lay-tag/index.scss @@ -41,6 +41,13 @@ padding-right: 24px; } + &.chrome-item { + padding-right: 0; + padding-left: 0; + margin-right: -18px; + box-shadow: none; + } + .el-icon-close { position: absolute; top: 50%; @@ -76,6 +83,14 @@ overflow: hidden; white-space: nowrap; + &.chrome-scroll-container { + padding-top: 4px; + + .fixed-tag { + padding: 0 !important; + } + } + .tab { position: relative; float: left; @@ -89,6 +104,12 @@ &:nth-child(1) { padding: 0 12px; } + + &.chrome-item { + &:nth-child(1) { + padding: 0; + } + } } .fixed-tag { @@ -173,9 +194,29 @@ color: #fff; box-shadow: 0 0 0.7px #888; + .chrome-tab { + z-index: 10; + } + + .chrome-tab__bg { + color: var(--el-color-primary-light-9) !important; + } + .tag-title { color: var(--el-color-primary) !important; } + + .chrome-close-btn { + color: var(--el-color-primary); + + &:hover { + background-color: var(--el-color-primary); + } + } + + .chrome-tab-divider { + opacity: 0; + } } .arrow-left, @@ -262,3 +303,69 @@ background: var(--el-color-primary); animation: schedule-out-width 200ms ease-in; } + +/* 谷歌风格的页签 */ +.chrome-tab { + position: relative; + display: inline-flex; + gap: 16px; + align-items: center; + justify-content: center; + padding: 0 24px; + white-space: nowrap; + cursor: pointer; + + .tag-title { + padding: 0; + } + + .chrome-tab-divider { + position: absolute; + right: 7px; + width: 1px; + height: 14px; + background-color: #2b2d2f; + } + + &:hover { + z-index: 10; + + .chrome-tab__bg { + color: #dee1e6; + } + + .tag-title { + color: #1f1f1f; + } + + .chrome-tab-divider { + opacity: 0; + } + } + + .chrome-tab__bg { + position: absolute; + top: 0; + left: 0; + z-index: -10; + width: 100%; + height: 100%; + color: transparent; + pointer-events: none; + } + + .chrome-close-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 16px; + height: 16px; + color: #666; + border-radius: 50%; + + &:hover { + color: white; + background-color: #b1b3b8; + } + } +} diff --git a/src/layout/components/lay-tag/index.vue b/src/layout/components/lay-tag/index.vue index fa74ee935..373ceea44 100644 --- a/src/layout/components/lay-tag/index.vue +++ b/src/layout/components/lay-tag/index.vue @@ -5,6 +5,7 @@ import { RouteConfigs } from "../../types"; import { useTags } from "../../hooks/useTag"; import { routerArrays } from "@/layout/types"; import { onClickOutside } from "@vueuse/core"; +import TagChrome from "./components/TagChrome.vue"; import { handleAliveRoute, getTopMenu } from "@/router/utils"; import { useSettingStoreHook } from "@/store/modules/settings"; import { useMultiTagsStoreHook } from "@/store/modules/multiTags"; @@ -565,6 +566,7 @@ onBeforeUnmount(() => {
@@ -575,6 +577,7 @@ onBeforeUnmount(() => { :class="[ 'scroll-item is-closable', linkIsActive(item), + showModel === 'chrome' && 'chrome-item', !isAllEmpty(item?.meta?.fixedTag) && 'fixed-tag' ]" @contextmenu.prevent="openMenu(item, $event)" @@ -582,28 +585,46 @@ onBeforeUnmount(() => { @mouseleave.prevent="onMouseleave(index)" @click="tagOnClick(item)" > - - {{ transformI18n(item.meta.title) }} - - - - - + +
+
+ +
+ + {{ transformI18n(item.meta.title) }} + + + + + +
diff --git a/src/style/dark.scss b/src/style/dark.scss index 7c3cb65cb..74fe07474 100644 --- a/src/style/dark.scss +++ b/src/style/dark.scss @@ -115,6 +115,22 @@ html.dark { background-color: rgb(255 255 255 / 12%); } } + + .chrome-tab { + .tag-title { + color: #666; + } + + &:hover { + .chrome-tab__bg { + color: #333; + } + + .tag-title { + color: #adadad; + } + } + } } } diff --git a/types/directives.d.ts b/types/directives.d.ts new file mode 100644 index 000000000..87256982f --- /dev/null +++ b/types/directives.d.ts @@ -0,0 +1,26 @@ +import type { Directive } from "vue"; +import type { CopyEl, OptimizeOptions, RippleOptions } from "@/directives"; + +declare module "vue" { + export interface ComponentCustomProperties { + /** `Loading` 动画加载指令,具体看:https://element-plus.org/zh-CN/component/loading.html#%E6%8C%87%E4%BB%A4 */ + vLoading: Directive; + /** 按钮权限指令 */ + vAuth: Directive>; + /** 文本复制指令(默认双击复制) */ + vCopy: Directive; + /** 长按指令 */ + vLongpress: Directive; + /** 防抖、节流指令 */ + vOptimize: Directive; + /** + * `v-ripple`指令,用法如下: + * 1. `v-ripple`代表启用基本的`ripple`功能 + * 2. `v-ripple="{ class: 'text-red' }"`代表自定义`ripple`颜色,支持`tailwindcss`,生效样式是`color` + * 3. `v-ripple.center`代表从中心扩散 + */ + vRipple: Directive; + } +} + +export {};