diff --git a/build/optimize.ts b/build/optimize.ts new file mode 100644 index 0000000000..b021da6a87 --- /dev/null +++ b/build/optimize.ts @@ -0,0 +1,40 @@ +/** + * 此文件作用于 `vite.config.ts` 的 `optimizeDeps.include` 依赖预构建配置项 + * 依赖预构建,`vite` 启动时会将下面 include 里的模块,编译成 esm 格式并缓存到 node_modules/.vite 文件夹,页面加载到对应模块时如果浏览器有缓存就读取浏览器缓存,如果没有会读取本地缓存并按需加载 + * 尤其当您禁用浏览器缓存时(这种情况只应该发生在调试阶段)必须将对应模块加入到 include里,否则会遇到开发环境切换页面卡顿的问题(vite 会认为它是一个新的依赖包会重新加载并强制刷新页面),因为它既无法使用浏览器缓存,又没有在本地 node_modules/.vite 里缓存 + * 温馨提示:如果您使用的第三方库是全局引入,也就是引入到 src/main.ts 文件里,就不需要再添加到 include 里了,因为 vite 会自动将它们缓存到 node_modules/.vite + */ +export const include = [ + "xlsx", + "dayjs", + "pinia", + "swiper", + "lodash", + "intro.js", + "vue-i18n", + "lodash-es", + "cropperjs", + "jsbarcode", + "sortablejs", + "swiper/vue", + "@vueuse/core", + "vue3-danmaku", + "v-contextmenu", + "vue-pdf-embed", + "lodash-unified", + "china-area-data", + "@faker-js/faker", + "vue-json-pretty", + "@logicflow/core", + "@pureadmin/utils", + "@howdyjs/mouse-menu", + "@logicflow/extension", + "@amap/amap-jsapi-loader", + "el-table-infinite-scroll", + "@wangeditor/editor-for-vue", + "xgplayer/dist/simple_player", + "xgplayer/es/controls/volume", + "vuedraggable/src/vuedraggable", + "xgplayer/es/controls/screenShot", + "xgplayer/es/controls/playbackRate" +]; diff --git a/package.json b/package.json index c591aed0e4..4107d372b7 100644 --- a/package.json +++ b/package.json @@ -43,13 +43,13 @@ "@wangeditor/editor": "^5.1.21", "@wangeditor/editor-for-vue": "^5.1.12", "animate.css": "^4.1.1", - "axios": "^1.1.3", + "axios": "^1.2.0", "china-area-data": "^5.0.1", "cropperjs": "^1.5.12", - "dayjs": "^1.11.5", + "dayjs": "^1.11.6", "echarts": "^5.4.0", "el-table-infinite-scroll": "^3.0.1", - "element-plus": "^2.2.22", + "element-plus": "^2.2.25", "element-resize-detector": "^1.2.4", "intro.js": "^6.0.0", "js-cookie": "^3.0.1", @@ -61,10 +61,9 @@ "mockjs": "^1.1.0", "nprogress": "^0.2.0", "path": "^0.12.7", - "pinia": "^2.0.24", + "pinia": "^2.0.26", "qrcode": "^1.5.1", "qs": "^6.11.0", - "resize-observer-polyfill": "^1.5.1", "responsive-storage": "^2.1.0", "sortablejs": "^1.15.0", "swiper": "^8.4.4", @@ -79,7 +78,7 @@ "vue-virtual-scroller": "^2.0.0-alpha.1", "vue3-danmaku": "^1.0.0", "vuedraggable": "^4.1.0", - "vxe-table": "^4.3.5", + "vxe-table": "^4.3.6", "xe-utils": "^3.5.7", "xgplayer": "^2.32.1", "xlsx": "^0.18.5" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43086f1274..432ba870cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,15 +48,15 @@ specifiers: "@wangeditor/editor-for-vue": ^5.1.12 animate.css: ^4.1.1 autoprefixer: ^10.4.13 - axios: ^1.1.3 + axios: ^1.2.0 china-area-data: ^5.0.1 cloc: ^2.10.0 cropperjs: ^1.5.12 cssnano: ^5.1.14 - dayjs: ^1.11.5 + dayjs: ^1.11.6 echarts: ^5.4.0 el-table-infinite-scroll: ^3.0.1 - element-plus: ^2.2.22 + element-plus: ^2.2.25 element-resize-detector: ^1.2.4 eslint: ^8.8.0 eslint-plugin-prettier: ^4.0.0 @@ -75,7 +75,7 @@ specifiers: nprogress: ^0.2.0 path: ^0.12.7 picocolors: ^1.0.0 - pinia: ^2.0.24 + pinia: ^2.0.26 postcss: ^8.4.18 postcss-html: ^1.5.0 postcss-import: ^15.0.0 @@ -84,7 +84,6 @@ specifiers: pretty-quick: 3.1.1 qrcode: ^1.5.1 qs: ^6.11.0 - resize-observer-polyfill: ^1.5.1 responsive-storage: ^2.1.0 rimraf: 3.0.2 rollup-plugin-visualizer: ^5.8.3 @@ -122,7 +121,7 @@ specifiers: vue-virtual-scroller: ^2.0.0-alpha.1 vue3-danmaku: ^1.0.0 vuedraggable: ^4.1.0 - vxe-table: ^4.3.5 + vxe-table: ^4.3.6 xe-utils: ^3.5.7 xgplayer: ^2.32.1 xlsx: ^0.18.5 @@ -134,21 +133,21 @@ dependencies: "@logicflow/core": 1.1.31 "@logicflow/extension": 1.1.31 "@pureadmin/components": 1.1.0_vue@3.2.45 - "@pureadmin/descriptions": 1.1.1_element-plus@2.2.22 - "@pureadmin/table": 1.8.0_element-plus@2.2.22 + "@pureadmin/descriptions": 1.1.1_element-plus@2.2.25 + "@pureadmin/table": 1.8.0_element-plus@2.2.25 "@pureadmin/utils": 1.6.7_aotapuqn7htzdjltsyimavekky "@vueuse/core": 9.5.0_vue@3.2.45 "@vueuse/motion": 2.0.0-beta.12_vue@3.2.45 "@wangeditor/editor": 5.1.23 "@wangeditor/editor-for-vue": 5.1.12_3apfu3xbp6awzuex7ed3sbrv6y animate.css: 4.1.1 - axios: 1.1.3 + axios: 1.2.0 china-area-data: 5.0.1 cropperjs: 1.5.12 dayjs: 1.11.6 echarts: 5.4.0 el-table-infinite-scroll: 3.0.1 - element-plus: 2.2.22_vue@3.2.45 + element-plus: 2.2.25_vue@3.2.45 element-resize-detector: 1.2.4 intro.js: 6.0.0 js-cookie: 3.0.1 @@ -160,10 +159,9 @@ dependencies: mockjs: 1.1.0 nprogress: 0.2.0 path: 0.12.7 - pinia: 2.0.24_mgnvym7yiazkylwwogi5r767ue + pinia: 2.0.26_mgnvym7yiazkylwwogi5r767ue qrcode: 1.5.1 qs: 6.11.0 - resize-observer-polyfill: 1.5.1 responsive-storage: 2.1.0 sortablejs: 1.15.0 swiper: 8.4.4 @@ -178,7 +176,7 @@ dependencies: vue-virtual-scroller: 2.0.0-beta.3_vue@3.2.45 vue3-danmaku: 1.0.0_vue@3.2.45 vuedraggable: 4.1.0_vue@3.2.45 - vxe-table: 4.3.5_vue@3.2.45+xe-utils@3.5.7 + vxe-table: 4.3.6_vue@3.2.45+xe-utils@3.5.7 xe-utils: 3.5.7 xgplayer: 2.32.2 xlsx: 0.18.5 @@ -1382,7 +1380,7 @@ packages: vue: 3.2.45 dev: false - /@pureadmin/descriptions/1.1.1_element-plus@2.2.22: + /@pureadmin/descriptions/1.1.1_element-plus@2.2.25: resolution: { integrity: sha512-4BHLKomLU/LxGs5EUA+h+aKNrJEkhrU6+QE8VoWfJZ8VTU6ddvFLT/Pi4WuO5CWNXM9ZjqvHLFFVwEPlKntqtg== @@ -1391,11 +1389,11 @@ packages: element-plus: ^2.0.0 dependencies: "@element-plus/icons-vue": 2.0.10_vue@3.2.45 - element-plus: 2.2.22_vue@3.2.45 + element-plus: 2.2.25_vue@3.2.45 vue: 3.2.45 dev: false - /@pureadmin/table/1.8.0_element-plus@2.2.22: + /@pureadmin/table/1.8.0_element-plus@2.2.25: resolution: { integrity: sha512-hNXoU6HzAxUg/4KpG2rQbmr8EDdh+1XzP0Og0jqtgfj1uW5o5KWfx1101O/ReYVQ1EdnFsc44YLe0HZkyyMJDQ== @@ -1403,7 +1401,7 @@ packages: peerDependencies: element-plus: ^2.0.0 dependencies: - element-plus: 2.2.22_vue@3.2.45 + element-plus: 2.2.25_vue@3.2.45 vue: 3.2.45 dev: false @@ -2951,10 +2949,10 @@ packages: postcss-value-parser: 4.2.0 dev: true - /axios/1.1.3: + /axios/1.2.0: resolution: { - integrity: sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== + integrity: sha512-zT7wZyNYu3N5Bu0wuZ6QccIf93Qk1eV8LOewxgjOZFd2DenOs98cJ7+Y6703d0wkaXGY6/nZd4EweJaHz9uzQw== } dependencies: follow-redirects: 1.15.2 @@ -4035,7 +4033,7 @@ packages: } dependencies: core-js: 3.26.1 - element-plus: 2.2.22_vue@3.2.45 + element-plus: 2.2.25_vue@3.2.45 vue: 3.2.45 transitivePeerDependencies: - "@vue/composition-api" @@ -4048,10 +4046,10 @@ packages: } dev: true - /element-plus/2.2.22_vue@3.2.45: + /element-plus/2.2.25_vue@3.2.45: resolution: { - integrity: sha512-gg2g2WOMNpWf0wGesymUvTV0VZDF/4khQKroSNeCV/vWJ/cqssPYdtqfGxTiFRt/f+JpyFkV7O1mo0yzMCzrBg== + integrity: sha512-HC8CWY31e6pPyBpgqI0QnWkBgs0vRzdYnEw3mpdM/NlKfp0PtNFX7NESQLomqoIulH5ftL09hjQmJNvZBQpthQ== } peerDependencies: vue: ^3.2.0 @@ -6788,10 +6786,10 @@ packages: engines: { node: ">=0.10.0" } dev: true - /pinia/2.0.24_mgnvym7yiazkylwwogi5r767ue: + /pinia/2.0.26_mgnvym7yiazkylwwogi5r767ue: resolution: { - integrity: sha512-DDLd4Iphyc+6PYYYbx7jkb6WP9gecgu9bz9huyB5rb7CdJI3DhzYiZI+/Ih8MLewRrP9DSpslF/BgSNrJtZU7A== + integrity: sha512-tSxZNUcMGxQOvKZRjPKXxd2+/2NZhRF/CoYVE/+K6uE/Z3v1Oi4fcQFpxu5nMB1dCchjXUZ+lz0tBxV5ntwmQQ== } peerDependencies: "@vue/composition-api": ^1.4.0 @@ -7621,13 +7619,6 @@ packages: } dev: false - /resize-observer-polyfill/1.5.1: - resolution: - { - integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== - } - dev: false - /resolve-from/4.0.0: resolution: { @@ -9226,10 +9217,10 @@ packages: vue: 3.2.45 dev: false - /vxe-table/4.3.5_vue@3.2.45+xe-utils@3.5.7: + /vxe-table/4.3.6_vue@3.2.45+xe-utils@3.5.7: resolution: { - integrity: sha512-JEvGAs7SBN1rWn5f2tkoRiXd/rAT7RfnDTTlFsHsTtASiUTKNTISI2WBsVeLkkNRTs0SXh6FgrYsIPO2soSBXA== + integrity: sha512-SZ+ocVoOFc1PSzvpz6q5n7YvWvPSXUV+raet0zaSbQy3g8Dj7jKNlFbcsSoWZm8Uys9ufAQxeqYO5rRwOB2m7A== } peerDependencies: vue: ^3.2.28 diff --git a/public/serverConfig.json b/public/serverConfig.json index 4f5cb59489..cddbe1bb08 100644 --- a/public/serverConfig.json +++ b/public/serverConfig.json @@ -16,7 +16,7 @@ "EpThemeColor": "#409EFF", "ShowLogo": true, "ShowModel": "smart", - "MenuArrowIconNoTransition": false, + "MenuArrowIconNoTransition": true, "MapConfigure": { "amapKey": "97b3248d1553172e81f168cf94ea667e", "options": { diff --git a/src/components/ReIcon/src/iconifyIconOffline.ts b/src/components/ReIcon/src/iconifyIconOffline.ts index 390674cca9..66c2ab71cd 100644 --- a/src/components/ReIcon/src/iconifyIconOffline.ts +++ b/src/components/ReIcon/src/iconifyIconOffline.ts @@ -79,6 +79,7 @@ import ArrowUpLine from "@iconify-icons/ri/arrow-up-line"; import ArrowDownLine from "@iconify-icons/ri/arrow-down-line"; import Bookmark2Line from "@iconify-icons/ri/bookmark-2-line"; import AddFill from "@iconify-icons/ri/add-circle-line"; +import AddLine from "@iconify-icons/ri/add-line"; import ListCheck from "@iconify-icons/ri/list-check"; import More2Fill from "@iconify-icons/ri/more-2-fill"; import Database from "@iconify-icons/ri/database-2-line"; @@ -114,6 +115,7 @@ addIcon("arrow-up-line", ArrowUpLine); addIcon("arrow-down-line", ArrowDownLine); addIcon("bookmark-2-line", Bookmark2Line); addIcon("add", AddFill); +addIcon("add-line", AddLine); addIcon("list-check", ListCheck); addIcon("more-vertical", More2Fill); addIcon("database", Database); diff --git a/src/views/pure-table/high/echarts/index.vue b/src/views/pure-table/high/echarts/index.vue index 6c9fa24a17..057a6ce956 100644 --- a/src/views/pure-table/high/echarts/index.vue +++ b/src/views/pure-table/high/echarts/index.vue @@ -7,7 +7,7 @@ const { columns, dataList } = useColumns(); diff --git a/src/views/pure-table/high/edit/columns.tsx b/src/views/pure-table/high/edit/columns.tsx index a1c91c9679..d29a8581e2 100644 --- a/src/views/pure-table/high/edit/columns.tsx +++ b/src/views/pure-table/high/edit/columns.tsx @@ -46,7 +46,7 @@ export function useColumns() { // class="flex-bc" flex-bc 代表 flex justify-between items-center 具体看 src/style/tailwind.css 文件 cellRenderer: ({ row, index }) => (
(activeIndex.value = index)} onMouseleave={() => onMouseleave(index)} > diff --git a/vite.config.ts b/vite.config.ts index d5d41179d8..b4c6435f2f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -2,6 +2,7 @@ import dayjs from "dayjs"; import { resolve } from "path"; import pkg from "./package.json"; import { warpperEnv } from "./build"; +import { include } from "./build/optimize"; import { getPluginsList } from "./build/plugins"; import { UserConfigExport, ConfigEnv, loadEnv } from "vite"; @@ -47,45 +48,7 @@ export default ({ command, mode }: ConfigEnv): UserConfigExport => { plugins: getPluginsList(command, VITE_CDN, VITE_COMPRESSION), // https://cn.vitejs.dev/config/dep-optimization-options.html#dep-optimization-options optimizeDeps: { - /** - * 依赖预构建,vite启动时会将下面 include 里的模块,编译成 esm 格式并缓存到 node_modules/.vite 文件夹,页面加载到对应模块时如果浏览器有缓存就读取浏览器缓存,如果没有会读取本地缓存并按需加载 - * 尤其当您禁用浏览器缓存时(这种情况只应该发生在调试阶段)必须将对应模块加入到 include里,否则会遇到开发环境切换页面卡顿的问题(vite 会认为它是一个新的依赖包会重新加载并强制刷新页面),因为它既无法使用浏览器缓存,又没有在本地 node_modules/.vite 里缓存 - * 温馨提示:如果您使用的第三方库是全局引入,也就是引入到 src/main.ts 文件里,就不需要再添加到 include 里了,因为 vite 会自动将它们缓存到 node_modules/.vite - */ - include: [ - "xlsx", - "dayjs", - "pinia", - "swiper", - "intro.js", - "vue-i18n", - "lodash", - "lodash-es", - "cropperjs", - "jsbarcode", - "sortablejs", - "swiper/vue", - "@vueuse/core", - "vue3-danmaku", - "v-contextmenu", - "vue-pdf-embed", - "lodash-unified", - "china-area-data", - "@faker-js/faker", - "vue-json-pretty", - "@logicflow/core", - "@pureadmin/utils", - "@howdyjs/mouse-menu", - "@logicflow/extension", - "@amap/amap-jsapi-loader", - "el-table-infinite-scroll", - "@wangeditor/editor-for-vue", - "xgplayer/dist/simple_player", - "xgplayer/es/controls/volume", - "vuedraggable/src/vuedraggable", - "xgplayer/es/controls/screenShot", - "xgplayer/es/controls/playbackRate" - ], + include, exclude: ["@pureadmin/theme/dist/browser-utils"] }, build: {