diff --git a/CHANGELOG.md b/CHANGELOG.md index 82dc3730..d21979e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,57 @@ +## 5.2.0 + +一些破坏性更新,请谨慎更新。 + +## Feats + +- 更新 `vue` 版本至 `3.5.16` +- 更新 `vite` 版本至 `6.3.5` +- `RTablePro` 组件相关 + - `runTableRequest` 方法现在支持传递 `reset` 参数,配置是否重置分页请求 + - `runTableRequest` 方法新增 `excludeParams` 配置项,允许排除指定的请求参数 + - `onTablePaginationUpdate` 方法参数返回值由返回函数改为直接返回值 + - 新增 `paginationPrefix` 配置项,允许自定义分页器前缀,在国际化需求可能会有用 + - 新增 `flexAutoHeight` 配置项,默认关闭,允许配置表格是否自动继承高度,但是要结合 `css flex` 属性使用 + +> 如果你是使用 `NFlex` 组件结合 `RTablePro` 或者 `RTable` 组件使用,需要配置 `Flex` 组件的 `vertical` 属性,并且设置 `class` 为 `flex-vertical`,即可便捷实现该效果。否则你需要设置 `css flex` 相关属性(可以参考 Demo2)的示例。 + +```tsx +import { RTablePro } from '@/components' +import { NFlex } from 'naive-ui' + +const Demo1 = () => { + return ( + + + + ) +} + +const Demo2 = () => { + return ( +
+ +
+ ) +} +``` + +- 新增 `getDateByNaiveDatePicker` 方法,便捷获取 `naive-ui` 的 `DatePicker` 组件的日期值 +- `Recordable` 类型新增 `symbol`, `number` 类型作为 `key` 支持 +- `RCollapse` 组件相关 + - 默认配置 `responsive` 配置项为 `screen` 响应模式 + - 默认配置 `cols` 配置项为 `4 xs:1 s:2 m:2 l:4 xl:4 2xl:6`,虽然目前的预设已经足够使用,但你也可以高度自定义需求 +- `types` 包 + - 新增 `GlobalDataTableColumns` 类型,用于声明全局 `DataTableColumns` 类型 + - 新增 `GlobalRecordable` 类型,用于声明全局 `Recordable` 类型 + +## Fixes + +- 修复 `RTablePro` 组件 `print` 方法打印内容错误的问题 + ## 5.1.0 ## Feats diff --git a/package.json b/package.json index 40f32bf6..14f7d1f6 100755 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "pinia": "^2.3.0", "pinia-plugin-persistedstate": "^4.2.0", "print-js": "^1.6.0", - "vue": "^3.5.13", + "vue": "^3.5.16", "vue-demi": "0.14.10", "vue-hooks-plus": "2.2.3", "vue-i18n": "^9.13.1", @@ -97,7 +97,7 @@ "typescript": "5.6.3", "unplugin-auto-import": "19.0.0", "unplugin-vue-components": "0.28.0", - "vite": "6.3.3", + "vite": "6.3.5", "vite-bundle-analyzer": "0.16.0", "vite-plugin-cdn2": "1.1.0", "vite-plugin-ejs": "1.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 30e6139f..522db9a6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,31 +52,31 @@ importers: version: 1.1.0 naive-ui: specifier: ^2.41.0 - version: 2.41.0(vue@3.5.13(typescript@5.6.3)) + version: 2.41.0(vue@3.5.16(typescript@5.6.3)) pinia: specifier: ^2.3.0 - version: 2.3.0(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)) + version: 2.3.0(typescript@5.6.3)(vue@3.5.16(typescript@5.6.3)) pinia-plugin-persistedstate: specifier: ^4.2.0 - version: 4.2.0(pinia@2.3.0(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)))(rollup@4.40.0) + version: 4.2.0(pinia@2.3.0(typescript@5.6.3)(vue@3.5.16(typescript@5.6.3)))(rollup@4.40.0) print-js: specifier: ^1.6.0 version: 1.6.0 vue: - specifier: ^3.5.13 - version: 3.5.13(typescript@5.6.3) + specifier: ^3.5.16 + version: 3.5.16(typescript@5.6.3) vue-demi: specifier: 0.14.10 - version: 0.14.10(vue@3.5.13(typescript@5.6.3)) + version: 0.14.10(vue@3.5.16(typescript@5.6.3)) vue-hooks-plus: specifier: 2.2.3 - version: 2.2.3(vue@3.5.13(typescript@5.6.3)) + version: 2.2.3(vue@3.5.16(typescript@5.6.3)) vue-i18n: specifier: ^9.13.1 - version: 9.13.1(vue@3.5.13(typescript@5.6.3)) + version: 9.13.1(vue@3.5.16(typescript@5.6.3)) vue-router: specifier: ^4.4.0 - version: 4.4.0(vue@3.5.13(typescript@5.6.3)) + version: 4.4.0(vue@3.5.16(typescript@5.6.3)) vue3-next-qrcode: specifier: 2.0.10 version: 2.0.10(typescript@5.6.3) @@ -86,7 +86,7 @@ importers: version: 0.0.15 '@ant-design/icons-vue': specifier: 7.0.1 - version: 7.0.1(vue@3.5.13(typescript@5.6.3)) + version: 7.0.1(vue@3.5.16(typescript@5.6.3)) '@commitlint/cli': specifier: 19.3.0 version: 19.3.0(@types/node@22.5.5)(typescript@5.6.3) @@ -98,7 +98,7 @@ importers: version: 1.10.27 '@intlify/unplugin-vue-i18n': specifier: 4.0.0 - version: 4.0.0(rollup@4.40.0)(vue-i18n@9.13.1(vue@3.5.13(typescript@5.6.3)))(webpack-sources@3.2.3) + version: 4.0.0(rollup@4.40.0)(vue-i18n@9.13.1(vue@3.5.16(typescript@5.6.3)))(webpack-sources@3.2.3) '@types/crypto-js': specifier: 4.2.2 version: 4.2.2 @@ -122,10 +122,10 @@ importers: version: 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.6.3) '@vitejs/plugin-vue': specifier: 5.2.1 - version: 5.2.1(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1))(vue@3.5.16(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: 4.1.1 - version: 4.1.1(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.3)) + version: 4.1.1(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1))(vue@3.5.16(typescript@5.6.3)) '@vitest/ui': specifier: 2.1.8 version: 2.1.8(vitest@2.1.8) @@ -194,10 +194,10 @@ importers: version: 19.0.0(@nuxt/kit@3.15.0(rollup@4.40.0))(@vueuse/core@12.4.0(typescript@5.6.3))(rollup@4.40.0) unplugin-vue-components: specifier: 0.28.0 - version: 0.28.0(@babel/parser@7.26.3)(@nuxt/kit@3.15.0(rollup@4.40.0))(rollup@4.40.0)(vue@3.5.13(typescript@5.6.3)) + version: 0.28.0(@babel/parser@7.27.5)(@nuxt/kit@3.15.0(rollup@4.40.0))(rollup@4.40.0)(vue@3.5.16(typescript@5.6.3)) vite: - specifier: 6.3.3 - version: 6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) + specifier: 6.3.5 + version: 6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) vite-bundle-analyzer: specifier: 0.16.0 version: 0.16.0 @@ -206,22 +206,22 @@ importers: version: 1.1.0(rollup@4.40.0) vite-plugin-ejs: specifier: 1.7.0 - version: 1.7.0(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) + version: 1.7.0(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) vite-plugin-eslint: specifier: 1.8.1 - version: 1.8.1(eslint@9.18.0(jiti@2.4.2))(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) + version: 1.8.1(eslint@9.18.0(jiti@2.4.2))(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) vite-plugin-inspect: specifier: 0.8.4 - version: 0.8.4(@nuxt/kit@3.15.0(rollup@4.40.0))(rollup@4.40.0)(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) + version: 0.8.4(@nuxt/kit@3.15.0(rollup@4.40.0))(rollup@4.40.0)(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) vite-plugin-mock-dev-server: specifier: 1.8.3 - version: 1.8.3(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) + version: 1.8.3(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) vite-plugin-svg-icons: specifier: 2.0.1 - version: 2.0.1(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) + version: 2.0.1(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)) vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.5.13(typescript@5.6.3)) + version: 5.1.0(vue@3.5.16(typescript@5.6.3)) vitest: specifier: 2.1.8 version: 2.1.8(@types/node@22.5.5)(@vitest/ui@2.1.8)(happy-dom@16.6.0)(sass@1.83.4) @@ -375,6 +375,10 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} @@ -383,6 +387,10 @@ packages: resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.24.7': resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} @@ -413,6 +421,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.27.5': + resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-syntax-jsx@7.25.9': resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} @@ -467,6 +480,10 @@ packages: resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.3': + resolution: {integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==} + engines: {node: '>=6.9.0'} + '@commitlint/cli@19.3.0': resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==} engines: {node: '>=v18'} @@ -1123,131 +1140,66 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.36.0': - resolution: {integrity: sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.40.0': resolution: {integrity: sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.36.0': - resolution: {integrity: sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.40.0': resolution: {integrity: sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.36.0': - resolution: {integrity: sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.40.0': resolution: {integrity: sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.36.0': - resolution: {integrity: sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.40.0': resolution: {integrity: sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.36.0': - resolution: {integrity: sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==} - cpu: [arm64] - os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.40.0': resolution: {integrity: sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.36.0': - resolution: {integrity: sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-freebsd-x64@4.40.0': resolution: {integrity: sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.36.0': - resolution: {integrity: sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.40.0': resolution: {integrity: sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.36.0': - resolution: {integrity: sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.40.0': resolution: {integrity: sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.36.0': - resolution: {integrity: sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.40.0': resolution: {integrity: sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.36.0': - resolution: {integrity: sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.40.0': resolution: {integrity: sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.36.0': - resolution: {integrity: sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==} - cpu: [loong64] - os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.40.0': resolution: {integrity: sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': - resolution: {integrity: sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': resolution: {integrity: sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.36.0': - resolution: {integrity: sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.40.0': resolution: {integrity: sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==} cpu: [riscv64] @@ -1258,61 +1210,31 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.36.0': - resolution: {integrity: sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.40.0': resolution: {integrity: sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.36.0': - resolution: {integrity: sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.40.0': resolution: {integrity: sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.36.0': - resolution: {integrity: sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.40.0': resolution: {integrity: sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.36.0': - resolution: {integrity: sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.40.0': resolution: {integrity: sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.36.0': - resolution: {integrity: sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.40.0': resolution: {integrity: sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.36.0': - resolution: {integrity: sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.40.0': resolution: {integrity: sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==} cpu: [x64] @@ -1568,15 +1490,27 @@ packages: '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + '@vue/compiler-core@3.5.16': + resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==} + '@vue/compiler-dom@3.5.13': resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + '@vue/compiler-dom@3.5.16': + resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==} + '@vue/compiler-sfc@3.5.13': resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + '@vue/compiler-sfc@3.5.16': + resolution: {integrity: sha512-rQR6VSFNpiinDy/DVUE0vHoIDUF++6p910cgcZoaAUm3POxgNOOdS/xgoll3rNdKYTYPnnbARDCZOyZ+QSe6Pw==} + '@vue/compiler-ssr@3.5.13': resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + '@vue/compiler-ssr@3.5.16': + resolution: {integrity: sha512-d2V7kfxbdsjrDSGlJE7my1ZzCXViEcqN6w14DOsDrUCHEA6vbnVCpRFfrc4ryCP/lCKzX2eS1YtnLE/BuC9f/A==} + '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -1614,23 +1548,26 @@ packages: typescript: optional: true - '@vue/reactivity@3.5.13': - resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + '@vue/reactivity@3.5.16': + resolution: {integrity: sha512-FG5Q5ee/kxhIm1p2bykPpPwqiUBV3kFySsHEQha5BJvjXdZTUfmya7wP7zC39dFuZAcf/PD5S4Lni55vGLMhvA==} - '@vue/runtime-core@3.5.13': - resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + '@vue/runtime-core@3.5.16': + resolution: {integrity: sha512-bw5Ykq6+JFHYxrQa7Tjr+VSzw7Dj4ldR/udyBZbq73fCdJmyy5MPIFR9IX/M5Qs+TtTjuyUTCnmK3lWWwpAcFQ==} - '@vue/runtime-dom@3.5.13': - resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + '@vue/runtime-dom@3.5.16': + resolution: {integrity: sha512-T1qqYJsG2xMGhImRUV9y/RseB9d0eCYZQ4CWca9ztCuiPj/XWNNN+lkNBuzVbia5z4/cgxdL28NoQCvC0Xcfww==} - '@vue/server-renderer@3.5.13': - resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + '@vue/server-renderer@3.5.16': + resolution: {integrity: sha512-BrX0qLiv/WugguGsnQUJiYOE0Fe5mZTwi6b7X/ybGB0vfrPH9z0gD/Y6WOR1sGCgX4gc25L1RYS5eYQKDMoNIg==} peerDependencies: - vue: 3.5.13 + vue: 3.5.16 '@vue/shared@3.5.13': resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + '@vue/shared@3.5.16': + resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} + '@vue/test-utils@2.4.6': resolution: {integrity: sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==} @@ -3749,6 +3686,10 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.4: + resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} + engines: {node: ^10 || ^12 || >=14} + posthtml-parser@0.2.1: resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} @@ -3901,11 +3842,6 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - rollup@4.36.0: - resolution: {integrity: sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.40.0: resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -4031,10 +3967,6 @@ packages: resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} engines: {node: '>=0.10.0'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -4490,8 +4422,8 @@ packages: peerDependencies: vue: '>=3.2.13' - vite@5.4.18: - resolution: {integrity: sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==} + vite@5.4.19: + resolution: {integrity: sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -4521,8 +4453,8 @@ packages: terser: optional: true - vite@6.3.3: - resolution: {integrity: sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw==} + vite@6.3.5: + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -4639,8 +4571,8 @@ packages: vue3-next-qrcode@2.0.10: resolution: {integrity: sha512-YwdQ1YjbHzcUsA7Vj5ziQLoX7oQZGWDZNaAadLu7EZzV9UU8Dd2IXAxGobF7dIHamgz5mPiOgH1Xb3qO8bCGDA==} - vue@3.5.13: - resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + vue@3.5.16: + resolution: {integrity: sha512-rjOV2ecxMd5SiAmof2xzh2WxntRcigkX/He4YFJ6WdRvVUrbt6DxC1Iujh10XLl8xCDRDtGKMeO3D+pRQ1PP9w==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -4786,11 +4718,11 @@ snapshots: '@ant-design/icons-svg@4.4.2': {} - '@ant-design/icons-vue@7.0.1(vue@3.5.13(typescript@5.6.3))': + '@ant-design/icons-vue@7.0.1(vue@3.5.16(typescript@5.6.3))': dependencies: '@ant-design/colors': 6.0.0 '@ant-design/icons-svg': 4.4.2 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) '@antfu/utils@0.7.10': {} @@ -4990,10 +4922,14 @@ snapshots: '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.24.7': {} '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-option@7.24.7': {} '@babel/helper-validator-option@7.25.9': {} @@ -5023,6 +4959,10 @@ snapshots: dependencies: '@babel/types': 7.26.3 + '@babel/parser@7.27.5': + dependencies: + '@babel/types': 7.27.3 + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -5106,6 +5046,11 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.27.3': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@commitlint/cli@19.3.0(@types/node@22.5.5)(typescript@5.6.3)': dependencies: '@commitlint/format': 19.3.0 @@ -5221,9 +5166,9 @@ snapshots: dependencies: css-render: 0.15.14 - '@css-render/vue3-ssr@0.15.14(vue@3.5.13(typescript@5.6.3))': + '@css-render/vue3-ssr@0.15.14(vue@3.5.16(typescript@5.6.3))': dependencies: - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) '@ctrl/tinycolor@3.6.1': {} @@ -5432,7 +5377,7 @@ snapshots: '@interactjs/types@1.10.27': {} - '@intlify/bundle-utils@8.0.0(vue-i18n@9.13.1(vue@3.5.13(typescript@5.6.3)))': + '@intlify/bundle-utils@8.0.0(vue-i18n@9.13.1(vue@3.5.16(typescript@5.6.3)))': dependencies: '@intlify/message-compiler': 9.13.1 '@intlify/shared': 9.13.1 @@ -5444,7 +5389,7 @@ snapshots: source-map-js: 1.2.1 yaml-eslint-parser: 1.2.2 optionalDependencies: - vue-i18n: 9.13.1(vue@3.5.13(typescript@5.6.3)) + vue-i18n: 9.13.1(vue@3.5.16(typescript@5.6.3)) '@intlify/core-base@9.13.1': dependencies: @@ -5454,13 +5399,13 @@ snapshots: '@intlify/message-compiler@9.13.1': dependencies: '@intlify/shared': 9.13.1 - source-map-js: 1.2.0 + source-map-js: 1.2.1 '@intlify/shared@9.13.1': {} - '@intlify/unplugin-vue-i18n@4.0.0(rollup@4.40.0)(vue-i18n@9.13.1(vue@3.5.13(typescript@5.6.3)))(webpack-sources@3.2.3)': + '@intlify/unplugin-vue-i18n@4.0.0(rollup@4.40.0)(vue-i18n@9.13.1(vue@3.5.16(typescript@5.6.3)))(webpack-sources@3.2.3)': dependencies: - '@intlify/bundle-utils': 8.0.0(vue-i18n@9.13.1(vue@3.5.13(typescript@5.6.3))) + '@intlify/bundle-utils': 8.0.0(vue-i18n@9.13.1(vue@3.5.16(typescript@5.6.3))) '@intlify/shared': 9.13.1 '@rollup/pluginutils': 5.1.2(rollup@4.40.0) '@vue/compiler-sfc': 3.5.13 @@ -5473,7 +5418,7 @@ snapshots: source-map-js: 1.2.1 unplugin: 1.14.1(webpack-sources@3.2.3) optionalDependencies: - vue-i18n: 9.13.1(vue@3.5.13(typescript@5.6.3)) + vue-i18n: 9.13.1(vue@3.5.16(typescript@5.6.3)) transitivePeerDependencies: - rollup - supports-color @@ -5690,120 +5635,63 @@ snapshots: optionalDependencies: rollup: 4.40.0 - '@rollup/rollup-android-arm-eabi@4.36.0': - optional: true - '@rollup/rollup-android-arm-eabi@4.40.0': optional: true - '@rollup/rollup-android-arm64@4.36.0': - optional: true - '@rollup/rollup-android-arm64@4.40.0': optional: true - '@rollup/rollup-darwin-arm64@4.36.0': - optional: true - '@rollup/rollup-darwin-arm64@4.40.0': optional: true - '@rollup/rollup-darwin-x64@4.36.0': - optional: true - '@rollup/rollup-darwin-x64@4.40.0': optional: true - '@rollup/rollup-freebsd-arm64@4.36.0': - optional: true - '@rollup/rollup-freebsd-arm64@4.40.0': optional: true - '@rollup/rollup-freebsd-x64@4.36.0': - optional: true - '@rollup/rollup-freebsd-x64@4.40.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.36.0': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.40.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.36.0': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.40.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.40.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.36.0': - optional: true - '@rollup/rollup-linux-arm64-musl@4.40.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.40.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.40.0': optional: true '@rollup/rollup-linux-riscv64-musl@4.40.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.40.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.36.0': - optional: true - '@rollup/rollup-linux-x64-gnu@4.40.0': optional: true - '@rollup/rollup-linux-x64-musl@4.36.0': - optional: true - '@rollup/rollup-linux-x64-musl@4.40.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.36.0': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.40.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.36.0': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.40.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.36.0': - optional: true - '@rollup/rollup-win32-x64-msvc@4.40.0': optional: true @@ -6035,20 +5923,20 @@ snapshots: '@typescript-eslint/types': 8.20.0 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-vue-jsx@4.1.1(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue-jsx@4.1.1(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1))(vue@3.5.16(typescript@5.6.3))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-typescript': 7.25.9(@babel/core@7.26.0) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) - vite: 6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) - vue: 3.5.13(typescript@5.6.3) + vite: 6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) + vue: 3.5.16(typescript@5.6.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1))(vue@3.5.16(typescript@5.6.3))': dependencies: - vite: 6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) - vue: 3.5.13(typescript@5.6.3) + vite: 6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) + vue: 3.5.16(typescript@5.6.3) '@vitest/expect@2.1.8': dependencies: @@ -6057,13 +5945,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@5.4.18(@types/node@22.5.5)(sass@1.83.4))': + '@vitest/mocker@2.1.8(vite@5.4.19(@types/node@22.5.5)(sass@1.83.4))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.18(@types/node@22.5.5)(sass@1.83.4) + vite: 5.4.19(@types/node@22.5.5)(sass@1.83.4) '@vitest/pretty-format@2.1.8': dependencies: @@ -6151,11 +6039,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.16': + dependencies: + '@babel/parser': 7.27.5 + '@vue/shared': 3.5.16 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.13': dependencies: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 + '@vue/compiler-dom@3.5.16': + dependencies: + '@vue/compiler-core': 3.5.16 + '@vue/shared': 3.5.16 + '@vue/compiler-sfc@3.5.13': dependencies: '@babel/parser': 7.26.2 @@ -6168,11 +6069,28 @@ snapshots: postcss: 8.5.1 source-map-js: 1.2.1 + '@vue/compiler-sfc@3.5.16': + dependencies: + '@babel/parser': 7.27.5 + '@vue/compiler-core': 3.5.16 + '@vue/compiler-dom': 3.5.16 + '@vue/compiler-ssr': 3.5.16 + '@vue/shared': 3.5.16 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.4 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.13': dependencies: '@vue/compiler-dom': 3.5.13 '@vue/shared': 3.5.13 + '@vue/compiler-ssr@3.5.16': + dependencies: + '@vue/compiler-dom': 3.5.16 + '@vue/shared': 3.5.16 + '@vue/compiler-vue2@2.7.16': dependencies: de-indent: 1.0.2 @@ -6218,30 +6136,32 @@ snapshots: optionalDependencies: typescript: 5.6.3 - '@vue/reactivity@3.5.13': + '@vue/reactivity@3.5.16': dependencies: - '@vue/shared': 3.5.13 + '@vue/shared': 3.5.16 - '@vue/runtime-core@3.5.13': + '@vue/runtime-core@3.5.16': dependencies: - '@vue/reactivity': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': 3.5.16 + '@vue/shared': 3.5.16 - '@vue/runtime-dom@3.5.13': + '@vue/runtime-dom@3.5.16': dependencies: - '@vue/reactivity': 3.5.13 - '@vue/runtime-core': 3.5.13 - '@vue/shared': 3.5.13 + '@vue/reactivity': 3.5.16 + '@vue/runtime-core': 3.5.16 + '@vue/shared': 3.5.16 csstype: 3.1.3 - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.6.3))': + '@vue/server-renderer@3.5.16(vue@3.5.16(typescript@5.6.3))': dependencies: - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.6.3) + '@vue/compiler-ssr': 3.5.16 + '@vue/shared': 3.5.16 + vue: 3.5.16(typescript@5.6.3) '@vue/shared@3.5.13': {} + '@vue/shared@3.5.16': {} + '@vue/test-utils@2.4.6': dependencies: js-beautify: 1.15.1 @@ -6252,7 +6172,7 @@ snapshots: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 12.4.0 '@vueuse/shared': 12.4.0(typescript@5.6.3) - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) transitivePeerDependencies: - typescript @@ -6260,7 +6180,7 @@ snapshots: '@vueuse/shared@12.4.0(typescript@5.6.3)': dependencies: - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) transitivePeerDependencies: - typescript @@ -7217,7 +7137,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 esutils@2.0.3: {} @@ -8118,10 +8038,10 @@ snapshots: arrify: 2.0.1 minimatch: 3.1.2 - naive-ui@2.41.0(vue@3.5.13(typescript@5.6.3)): + naive-ui@2.41.0(vue@3.5.16(typescript@5.6.3)): dependencies: '@css-render/plugin-bem': 0.15.14(css-render@0.15.14) - '@css-render/vue3-ssr': 0.15.14(vue@3.5.13(typescript@5.6.3)) + '@css-render/vue3-ssr': 0.15.14(vue@3.5.16(typescript@5.6.3)) '@types/katex': 0.16.7 '@types/lodash': 4.17.13 '@types/lodash-es': 4.17.12 @@ -8136,10 +8056,10 @@ snapshots: lodash-es: 4.17.21 seemly: 0.3.9 treemate: 0.3.11 - vdirs: 0.1.8(vue@3.5.13(typescript@5.6.3)) - vooks: 0.2.12(vue@3.5.13(typescript@5.6.3)) - vue: 3.5.13(typescript@5.6.3) - vueuc: 0.4.64(vue@3.5.13(typescript@5.6.3)) + vdirs: 0.1.8(vue@3.5.16(typescript@5.6.3)) + vooks: 0.2.12(vue@3.5.16(typescript@5.6.3)) + vue: 3.5.16(typescript@5.6.3) + vueuc: 0.4.64(vue@3.5.16(typescript@5.6.3)) nanoid@3.3.11: {} @@ -8317,24 +8237,24 @@ snapshots: pidtree@0.6.0: {} - pinia-plugin-persistedstate@4.2.0(pinia@2.3.0(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)))(rollup@4.40.0): + pinia-plugin-persistedstate@4.2.0(pinia@2.3.0(typescript@5.6.3)(vue@3.5.16(typescript@5.6.3)))(rollup@4.40.0): dependencies: '@nuxt/kit': 3.15.0(rollup@4.40.0) deep-pick-omit: 1.2.1 defu: 6.1.4 destr: 2.0.3 optionalDependencies: - pinia: 2.3.0(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)) + pinia: 2.3.0(typescript@5.6.3)(vue@3.5.16(typescript@5.6.3)) transitivePeerDependencies: - magicast - rollup - supports-color - pinia@2.3.0(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)): + pinia@2.3.0(typescript@5.6.3)(vue@3.5.16(typescript@5.6.3)): dependencies: '@vue/devtools-api': 6.6.3 - vue: 3.5.13(typescript@5.6.3) - vue-demi: 0.14.10(vue@3.5.13(typescript@5.6.3)) + vue: 3.5.16(typescript@5.6.3) + vue-demi: 0.14.10(vue@3.5.16(typescript@5.6.3)) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -8398,6 +8318,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.4: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + posthtml-parser@0.2.1: dependencies: htmlparser2: 3.10.1 @@ -8534,31 +8460,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.36.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.36.0 - '@rollup/rollup-android-arm64': 4.36.0 - '@rollup/rollup-darwin-arm64': 4.36.0 - '@rollup/rollup-darwin-x64': 4.36.0 - '@rollup/rollup-freebsd-arm64': 4.36.0 - '@rollup/rollup-freebsd-x64': 4.36.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.36.0 - '@rollup/rollup-linux-arm-musleabihf': 4.36.0 - '@rollup/rollup-linux-arm64-gnu': 4.36.0 - '@rollup/rollup-linux-arm64-musl': 4.36.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.36.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.36.0 - '@rollup/rollup-linux-riscv64-gnu': 4.36.0 - '@rollup/rollup-linux-s390x-gnu': 4.36.0 - '@rollup/rollup-linux-x64-gnu': 4.36.0 - '@rollup/rollup-linux-x64-musl': 4.36.0 - '@rollup/rollup-win32-arm64-msvc': 4.36.0 - '@rollup/rollup-win32-ia32-msvc': 4.36.0 - '@rollup/rollup-win32-x64-msvc': 4.36.0 - fsevents: 2.3.3 - rollup@4.40.0: dependencies: '@types/estree': 1.0.7 @@ -8727,8 +8628,6 @@ snapshots: transitivePeerDependencies: - supports-color - source-map-js@1.2.0: {} - source-map-js@1.2.1: {} source-map-resolve@0.5.3: @@ -9064,7 +8963,7 @@ snapshots: transitivePeerDependencies: - rollup - unplugin-vue-components@0.28.0(@babel/parser@7.26.3)(@nuxt/kit@3.15.0(rollup@4.40.0))(rollup@4.40.0)(vue@3.5.13(typescript@5.6.3)): + unplugin-vue-components@0.28.0(@babel/parser@7.27.5)(@nuxt/kit@3.15.0(rollup@4.40.0))(rollup@4.40.0)(vue@3.5.16(typescript@5.6.3)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.4(rollup@4.40.0) @@ -9076,9 +8975,9 @@ snapshots: minimatch: 9.0.5 mlly: 1.7.3 unplugin: 2.1.0 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) optionalDependencies: - '@babel/parser': 7.26.3 + '@babel/parser': 7.27.5 '@nuxt/kit': 3.15.0(rollup@4.40.0) transitivePeerDependencies: - rollup @@ -9152,10 +9051,10 @@ snapshots: vary@1.1.2: {} - vdirs@0.1.8(vue@3.5.13(typescript@5.6.3)): + vdirs@0.1.8(vue@3.5.16(typescript@5.6.3)): dependencies: evtd: 0.2.4 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) vite-bundle-analyzer@0.16.0: {} @@ -9165,7 +9064,7 @@ snapshots: debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.18(@types/node@22.5.5)(sass@1.83.4) + vite: 5.4.19(@types/node@22.5.5)(sass@1.83.4) transitivePeerDependencies: - '@types/node' - less @@ -9189,20 +9088,20 @@ snapshots: - rollup - supports-color - vite-plugin-ejs@1.7.0(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): + vite-plugin-ejs@1.7.0(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): dependencies: ejs: 3.1.9 - vite: 6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) - vite-plugin-eslint@1.8.1(eslint@9.18.0(jiti@2.4.2))(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): + vite-plugin-eslint@1.8.1(eslint@9.18.0(jiti@2.4.2))(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): dependencies: '@rollup/pluginutils': 4.2.1 '@types/eslint': 8.56.6 eslint: 9.18.0(jiti@2.4.2) rollup: 2.79.1 - vite: 6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) - vite-plugin-inspect@0.8.4(@nuxt/kit@3.15.0(rollup@4.40.0))(rollup@4.40.0)(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): + vite-plugin-inspect@0.8.4(@nuxt/kit@3.15.0(rollup@4.40.0))(rollup@4.40.0)(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.4(rollup@4.40.0) @@ -9213,14 +9112,14 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.1.1 sirv: 2.0.4 - vite: 6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) optionalDependencies: '@nuxt/kit': 3.15.0(rollup@4.40.0) transitivePeerDependencies: - rollup - supports-color - vite-plugin-mock-dev-server@1.8.3(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): + vite-plugin-mock-dev-server@1.8.3(esbuild@0.25.2)(rollup@4.40.0)(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): dependencies: '@pengzhanbo/utils': 1.2.0 '@rollup/pluginutils': 5.1.4(rollup@4.40.0) @@ -9237,7 +9136,7 @@ snapshots: mime-types: 2.1.35 path-to-regexp: 6.3.0 picocolors: 1.1.1 - vite: 6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) ws: 8.18.0 optionalDependencies: esbuild: 0.25.2 @@ -9247,7 +9146,7 @@ snapshots: - supports-color - utf-8-validate - vite-plugin-svg-icons@2.0.1(vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): + vite-plugin-svg-icons@2.0.1(vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1)): dependencies: '@types/svgo': 2.6.4 cors: 2.8.5 @@ -9257,26 +9156,26 @@ snapshots: pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) + vite: 6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1) transitivePeerDependencies: - supports-color - vite-svg-loader@5.1.0(vue@3.5.13(typescript@5.6.3)): + vite-svg-loader@5.1.0(vue@3.5.16(typescript@5.6.3)): dependencies: svgo: 3.3.2 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) - vite@5.4.18(@types/node@22.5.5)(sass@1.83.4): + vite@5.4.19(@types/node@22.5.5)(sass@1.83.4): dependencies: esbuild: 0.21.5 postcss: 8.5.1 - rollup: 4.36.0 + rollup: 4.40.0 optionalDependencies: '@types/node': 22.5.5 fsevents: 2.3.3 sass: 1.83.4 - vite@6.3.3(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1): + vite@6.3.5(@types/node@22.5.5)(jiti@2.4.2)(sass@1.83.4)(yaml@2.6.1): dependencies: esbuild: 0.25.2 fdir: 6.4.4(picomatch@4.0.2) @@ -9294,7 +9193,7 @@ snapshots: vitest@2.1.8(@types/node@22.5.5)(@vitest/ui@2.1.8)(happy-dom@16.6.0)(sass@1.83.4): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.18(@types/node@22.5.5)(sass@1.83.4)) + '@vitest/mocker': 2.1.8(vite@5.4.19(@types/node@22.5.5)(sass@1.83.4)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -9310,7 +9209,7 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.18(@types/node@22.5.5)(sass@1.83.4) + vite: 5.4.19(@types/node@22.5.5)(sass@1.83.4) vite-node: 2.1.8(@types/node@22.5.5)(sass@1.83.4) why-is-node-running: 2.3.0 optionalDependencies: @@ -9328,18 +9227,18 @@ snapshots: - supports-color - terser - vooks@0.2.12(vue@3.5.13(typescript@5.6.3)): + vooks@0.2.12(vue@3.5.16(typescript@5.6.3)): dependencies: evtd: 0.2.4 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) vscode-uri@3.0.8: {} vue-component-type-helpers@2.0.13: {} - vue-demi@0.14.10(vue@3.5.13(typescript@5.6.3)): + vue-demi@0.14.10(vue@3.5.16(typescript@5.6.3)): dependencies: - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) vue-eslint-parser@9.4.3(eslint@9.18.0(jiti@2.4.2)): dependencies: @@ -9354,7 +9253,7 @@ snapshots: transitivePeerDependencies: - supports-color - vue-hooks-plus@2.2.3(vue@3.5.13(typescript@5.6.3)): + vue-hooks-plus@2.2.3(vue@3.5.16(typescript@5.6.3)): dependencies: '@types/js-cookie': 3.0.6 '@vue/devtools-api': 6.6.4 @@ -9363,19 +9262,19 @@ snapshots: qs: 6.14.0 query-string: 7.1.3 screenfull: 5.2.0 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) - vue-i18n@9.13.1(vue@3.5.13(typescript@5.6.3)): + vue-i18n@9.13.1(vue@3.5.16(typescript@5.6.3)): dependencies: '@intlify/core-base': 9.13.1 '@intlify/shared': 9.13.1 '@vue/devtools-api': 6.6.1 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) - vue-router@4.4.0(vue@3.5.13(typescript@5.6.3)): + vue-router@4.4.0(vue@3.5.16(typescript@5.6.3)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) vue-tsc@2.2.0(typescript@5.6.3): dependencies: @@ -9386,30 +9285,30 @@ snapshots: vue3-next-qrcode@2.0.10(typescript@5.6.3): dependencies: js-binary-schema-parser: 2.0.3 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.16(typescript@5.6.3) transitivePeerDependencies: - typescript - vue@3.5.13(typescript@5.6.3): + vue@3.5.16(typescript@5.6.3): dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-sfc': 3.5.13 - '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.6.3)) - '@vue/shared': 3.5.13 + '@vue/compiler-dom': 3.5.16 + '@vue/compiler-sfc': 3.5.16 + '@vue/runtime-dom': 3.5.16 + '@vue/server-renderer': 3.5.16(vue@3.5.16(typescript@5.6.3)) + '@vue/shared': 3.5.16 optionalDependencies: typescript: 5.6.3 - vueuc@0.4.64(vue@3.5.13(typescript@5.6.3)): + vueuc@0.4.64(vue@3.5.16(typescript@5.6.3)): dependencies: - '@css-render/vue3-ssr': 0.15.14(vue@3.5.13(typescript@5.6.3)) + '@css-render/vue3-ssr': 0.15.14(vue@3.5.16(typescript@5.6.3)) '@juggle/resize-observer': 3.4.0 css-render: 0.15.14 evtd: 0.2.4 seemly: 0.3.9 - vdirs: 0.1.8(vue@3.5.13(typescript@5.6.3)) - vooks: 0.2.12(vue@3.5.13(typescript@5.6.3)) - vue: 3.5.13(typescript@5.6.3) + vdirs: 0.1.8(vue@3.5.16(typescript@5.6.3)) + vooks: 0.2.12(vue@3.5.16(typescript@5.6.3)) + vue: 3.5.16(typescript@5.6.3) webidl-conversions@7.0.0: {} diff --git a/src/components/base/RTable/src/Table.tsx b/src/components/base/RTable/src/Table.tsx index 1f72d6be..06a50b69 100644 --- a/src/components/base/RTable/src/Table.tsx +++ b/src/components/base/RTable/src/Table.tsx @@ -78,6 +78,19 @@ export default defineComponent({ return headerStyle }) + // 如果启用了 flexAutoHeight 属性,则自动继承高度 + const flexAutoHeightStyle = computed(() => { + const { flexAutoHeight } = props + + if (!flexAutoHeight) { + return null + } + + return { + height: '100%', + flex: 1, + } + }) /** * @@ -249,6 +262,7 @@ export default defineComponent({ wrapperRef, propsPopselectValue, cardHeaderStyle, + flexAutoHeightStyle, } }, render() { @@ -262,6 +276,7 @@ export default defineComponent({ privateReactive, propsPopselectValue, cardHeaderStyle, + flexAutoHeightStyle, } = this const { class: className, ...restAttrs } = $attrs const { tool, combineRowProps, contextMenuSelect } = this @@ -273,6 +288,8 @@ export default defineComponent({ title, tableFlexHeight, cardProps, + flexAutoHeight, + flexHeight, ...restProps } = $props const { headerStyle, ...restCardProps } = cardProps ?? {} @@ -287,7 +304,8 @@ export default defineComponent({ ref="wrapperRef" bordered={wrapperBordered} class={className} - style={cardHeaderStyle} + // flexAutoHeight 具有更高的优先级 + style={Object.assign({}, cardHeaderStyle, flexAutoHeightStyle)} > {{ default: () => ( @@ -298,12 +316,14 @@ export default defineComponent({ }} {...(restProps as DataTableProps)} {...propsPopselectValue} + flexHeight={flexAutoHeight ? true : flexHeight} rowProps={combineRowProps.bind(this)} size={privateReactive.size} ref="rTableInst" style={{ - height: - tableFlexHeight !== null && tableFlexHeight !== void 0 + height: flexAutoHeight + ? '100%' + : tableFlexHeight !== null && tableFlexHeight !== void 0 ? completeSize(tableFlexHeight) : null, }} diff --git a/src/components/base/RTable/src/hooks/useTable.ts b/src/components/base/RTable/src/hooks/useTable.ts index f3be398f..a0fc6ef0 100644 --- a/src/components/base/RTable/src/hooks/useTable.ts +++ b/src/components/base/RTable/src/hooks/useTable.ts @@ -42,12 +42,12 @@ import type { PrintDomOptions } from '@/utils' */ const useTable = () => { const tableRef = shallowRef() - let extra = {} as TableProvider + const extraRef = shallowRef({} as TableProvider) const register: UseTableRegister = (inst, extraInfo) => { if (inst) { tableRef.value = inst - extra = extraInfo + extraRef.value = extraInfo } } @@ -140,7 +140,7 @@ const useTable = () => { * 打印表格。 */ const print = (options?: PrintDomOptions) => { - const { uuidWrapper } = extra + const { uuidWrapper } = extraRef.value ?? {} if (uuidWrapper) { const tableWrapperElement = document.getElementById(uuidWrapper) @@ -165,6 +165,7 @@ const useTable = () => { sort, print, filter, + config: extraRef, }, ] as const } diff --git a/src/components/base/RTable/src/props.ts b/src/components/base/RTable/src/props.ts index 2c84316e..b2ceca37 100644 --- a/src/components/base/RTable/src/props.ts +++ b/src/components/base/RTable/src/props.ts @@ -238,6 +238,17 @@ const props = { type: [Function, Array] as PropType>, default: null, }, + /** + * + * @description + * 是否自动继承高度。 + * + * @default false + */ + flexAutoHeight: { + type: Boolean, + default: false, + }, } as const export default props diff --git a/src/components/base/RTable/src/types.ts b/src/components/base/RTable/src/types.ts index 168cc763..b5b4aa40 100644 --- a/src/components/base/RTable/src/types.ts +++ b/src/components/base/RTable/src/types.ts @@ -54,6 +54,7 @@ export interface RTableInst extends Omit { * 打印表格。 */ print: (options?: PrintDomOptions) => void + config: TableProvider } export type OverridesTableColumn = C | DataTableColumn diff --git a/src/components/pro/RCollapse/Collapse.tsx b/src/components/pro/RCollapse/Collapse.tsx index 7538d01f..bdd32718 100644 --- a/src/components/pro/RCollapse/Collapse.tsx +++ b/src/components/pro/RCollapse/Collapse.tsx @@ -3,6 +3,8 @@ import { RCollapseGrid, RForm } from '@/components' import formProps from '../../base/RForm/src/props' import collapseGridProps from '../../base/RCollapseGrid/src/props' +import type { GridProps } from 'naive-ui' + /** * * @description @@ -18,13 +20,17 @@ export default defineComponent({ default: true, }, cols: { - type: Number, - default: 4, + type: [Number, String] as PropType, + default: '4 xs:1 s:2 m:2 l:4 xl:4 2xl:6', }, bordered: { type: Boolean, default: true, }, + responsive: { + type: String as PropType, + default: 'screen', + }, }), render() { const { $slots, $props } = this diff --git a/src/components/pro/RTablePro/src/TablePro.tsx b/src/components/pro/RTablePro/src/TablePro.tsx index 9a2b640b..00d72980 100644 --- a/src/components/pro/RTablePro/src/TablePro.tsx +++ b/src/components/pro/RTablePro/src/TablePro.tsx @@ -1,9 +1,10 @@ -import { RTable } from '@/components' +import { RTable } from '../../../base/RTable' import props from './props' -import { useTable } from '@/components' +import useTable from '../../../base/RTable/src/hooks/useTable' import { call, removeDuplicateKeys } from '@/utils' import { usePagination } from '@/hooks' +import { omit } from 'lodash-es' import type { TablePagination, TableRequestConfig, TableProInst } from './types' @@ -11,20 +12,7 @@ export default defineComponent({ name: 'RTablePro', props, setup(props) { - const [ - register, - { - clearFilters, - clearSorter, - downloadCsv, - filters, - page, - scrollTo, - sort, - print, - filter, - }, - ] = useTable() + const [register, tableFns] = useTable() const [ paginationRef, { @@ -36,16 +24,20 @@ export default defineComponent({ getItemCount, }, ] = usePagination(void 0, { - prefix: (info) => `共 ${info.itemCount} 条`, + prefix: props.paginationPrefix, }) const tableRequestRef = computed(() => props.request) // 获取最新 statistics 和 pagination 值 const update = (): TablePagination => { + const page = getPage() + const pageSize = getPageSize() + const itemCount = getItemCount() + return { - getItemCount, - getPage, - getPageSize, + page, + pageSize, + itemCount, } } @@ -62,7 +54,7 @@ export default defineComponent({ const combineRequestParams = (extraConfig?: TableRequestConfig) => { const config = Object.assign({}, props.requestConfig, extraConfig) - const { formatRangeTime } = config + const { formatRangeTime, excludeParams } = config let params = config.params || {} // 转换时间范围,该功能仅支持 NDatePicker range 模式参数 @@ -87,6 +79,11 @@ export default defineComponent({ params = removeDuplicateKeys(params) + // 排除指定的请求参数 + if (excludeParams) { + params = omit(params, excludeParams) + } + const requestParams = Object.assign({}, params, { page: getPage(), pageSize: getPageSize(), @@ -95,29 +92,27 @@ export default defineComponent({ return requestParams } - // 会重置 pagination 的请求 - const runResetPaginationRequest = (extraConfig?: TableRequestConfig) => { - resetPagination() + // 会重置 pagination 的请求,默认会重置 + const runResetPaginationRequest = ( + extraConfig?: TableRequestConfig, + reset = true, + ) => { + if (reset) { + resetPagination() + } const requestParams = combineRequestParams(extraConfig) tableRequestRef.value?.(requestParams) } - // 不会重置 pagination 的请求 - const runRequest = (extraConfig?: TableRequestConfig) => { - const requestParams = combineRequestParams(extraConfig) - - tableRequestRef.value?.(requestParams) - } - watchEffect(() => { setItemCount(props.paginationCount) setCallback(() => { const { manual } = props if (!manual) { - runRequest() + runResetPaginationRequest(void 0, false) } emitTableUpdate() @@ -129,21 +124,12 @@ export default defineComponent({ if (onRegister) { call(onRegister, { + ...tableFns, getTablePagination: update, runTableRequest: runResetPaginationRequest, - clearFilters, - clearSorter, - downloadCsv, - filters, - page, - scrollTo, - sort, - print, - filter, - getCurrentTableRequestParams: - combineRequestParams as TableProInst['getCurrentTableRequestParams'], + getCurrentTableRequestParams: combineRequestParams, resetTablePagination: resetPagination, - }) + } as unknown as TableProInst) } }) diff --git a/src/components/pro/RTablePro/src/hooks/useTablePro.ts b/src/components/pro/RTablePro/src/hooks/useTablePro.ts index 2a3499b6..4437db30 100644 --- a/src/components/pro/RTablePro/src/hooks/useTablePro.ts +++ b/src/components/pro/RTablePro/src/hooks/useTablePro.ts @@ -1,3 +1,5 @@ +import { printDom } from '@/utils' + import type { Recordable } from '@/types' import type { TableProInst, TableRequestConfig } from '../types' import type { @@ -48,6 +50,9 @@ export const useTablePro = () => { getTableProInstance().getTablePagination.call(null) /** + * + * @param extraConfig 额外请求合并配置项 + * @param reset 是否重置分页请求 * * @description * 手动触发表格请求,用于手动刷新表格。 @@ -57,9 +62,13 @@ export const useTablePro = () => { * 允许手动配置 TableRequestConfig 参数,会自动合并 props tableRequestConfig 配置。 * 并且,运行该函数会重置 pagination 为初始状态。 */ - const runTableRequest = ( - extraConfig?: TableRequestConfig, - ) => getTableProInstance().runTableRequest.call(null, extraConfig) + const runTableRequest = < + T extends Recordable, + ExcludeParams extends keyof T = keyof T, + >( + extraConfig?: TableRequestConfig, + reset?: boolean, + ) => getTableProInstance().runTableRequest.call(null, extraConfig, reset) /** * @@ -80,6 +89,8 @@ export const useTablePro = () => { const clearSorter = () => getTableProInstance().clearSorter.call(null) /** + * + * @param options 下载 CSV 配置项 * * @description * 下载 CSV。 @@ -90,6 +101,8 @@ export const useTablePro = () => { getTableProInstance().downloadCsv.call(null, options) /** + * + * @param filters 过滤器状态配置 * * @description * 设定表格当前的过滤器。 @@ -100,6 +113,8 @@ export const useTablePro = () => { getTableProInstance().filters.call(null, filters) /** + * + * @param page 页数 * * @description * 手动设置 page。 @@ -109,6 +124,8 @@ export const useTablePro = () => { const page = (page: number) => getTableProInstance().page.call(null, page) /** + * + * @param options 滚动配置项 * * @description * 滚动内容。 @@ -120,6 +137,9 @@ export const useTablePro = () => { getTableProInstance().scrollTo(options as any) /** + * + * @param columnKey 列键 + * @param order 排序顺序 * * @description * 设定表格的过滤状态。 @@ -130,28 +150,44 @@ export const useTablePro = () => { getTableProInstance().sort.call(null, columnKey, order) /** + * + * @param options 打印选项 * * @description * 打印表格。 */ - const print = (options?: PrintDomOptions) => - getTableProInstance().print.call(null, options) + const print = (options?: PrintDomOptions) => { + const { config } = getTableProInstance() + const { uuidWrapper } = config ?? {} + + if (uuidWrapper) { + const tableWrapperElement = document.getElementById(uuidWrapper) + + printDom(tableWrapperElement, options) + } + } /** * * @param extraConfig 额外请求合并配置项 + * @param excludeParams 排除的请求参数 * * @description * 获取当前内部表格请求参数。 */ - const getCurrentTableRequestParams = ( - extraConfig?: TableRequestConfig, + const getCurrentTableRequestParams = < + T extends Recordable, + ExcludeParams extends keyof T = keyof T, + >( + extraConfig?: TableRequestConfig, ): T & Recordable => // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore getTableProInstance().getCurrentTableRequestParams.call(null, extraConfig) /** + * + * @param extraConfig 额外请求合并配置项 * * @description * 重置表格分页。 diff --git a/src/components/pro/RTablePro/src/props.ts b/src/components/pro/RTablePro/src/props.ts index 0e83bd2a..1ff24de2 100644 --- a/src/components/pro/RTablePro/src/props.ts +++ b/src/components/pro/RTablePro/src/props.ts @@ -2,7 +2,12 @@ import { tableProps } from '@/components' import { omit } from 'lodash-es' import type { PropType } from 'vue' -import type { TableProInst, TablePagination, TableRequestConfig } from './types' +import type { + TableProInst, + TablePagination, + TableRequestConfig, + PaginationPrefix, +} from './types' import type { AnyFC } from '@/types' const props = { @@ -70,11 +75,10 @@ const props = { * 请求函数的参数。 * 该属性用于配置请求函数的参数。 * - * @default {} + * @default undefined */ requestConfig: { type: Object as PropType, - default: () => ({}), }, /** * @@ -101,6 +105,19 @@ const props = { type: Boolean, default: true, }, + /** + * + * @description + * 分页器前缀。 + * 自定义配置分页器前缀。 + * + * @default (info) => `共 ${info.itemCount} 条` + */ + paginationPrefix: { + type: Function as PropType, + default: (info: Parameters>[0]) => + `共 ${info.itemCount} 条`, + }, } export default props diff --git a/src/components/pro/RTablePro/src/types.ts b/src/components/pro/RTablePro/src/types.ts index f81f693a..55f1f7fa 100644 --- a/src/components/pro/RTablePro/src/types.ts +++ b/src/components/pro/RTablePro/src/types.ts @@ -1,5 +1,5 @@ import type { TableProps, RTableInst } from '@/components' -import type { UsePaginationReturn } from '@/hooks' +import type { UsePaginationOptions } from '@/hooks' import type { Recordable } from '@/types' export type FormatRangeTime = { @@ -22,12 +22,18 @@ export type FormatRangeTime = { * @description * Pagination 分页配置。 */ -export type TablePagination = Pick< - UsePaginationReturn[1], - 'getItemCount' | 'getPage' | 'getPageSize' -> +export interface TablePagination { + page: number + pageSize: number + itemCount: number +} -export interface TableRequestConfig { +export type PaginationPrefix = UsePaginationOptions['prefix'] + +export interface TableRequestConfig< + Params = Recordable, + ExcludeParams extends keyof Params = keyof Params, +> { /** * * @description @@ -45,6 +51,14 @@ export interface TableRequestConfig { * @default undefined */ formatRangeTime?: FormatRangeTime[] + /** + * + * @description + * 排除的请求参数,该字段用于排除请求参数。 + * + * @default undefined + */ + excludeParams?: ExcludeParams[] } export type TableProProps = Omit @@ -54,28 +68,67 @@ export interface TableProInst extends Omit { * * @description * 获取 pagination 更新值。 + * + * @example + * const [register, { getTablePagination }] = useTablePro() + * + * // 获取当前 pagination 的值 + * const pagination = getTablePagination() */ getTablePagination: () => TablePagination /** + * + * @param extraConfig 额外请求合并配置项 + * @param reset 是否重置分页请求 * * @description * 手动触发表格请求,用于手动刷新表格。 + * + * @example + * const [register, { runTableRequest }] = useTablePro() + * + * // 重置分页请求 + * runTableRequest(void 0, true) + * runTableRequest() + * // 不重置分页请求 + * runTableRequest(void 0, false) */ - runTableRequest: (extraConfig?: TableRequestConfig) => void + runTableRequest: < + T extends Recordable, + ExcludeParams extends keyof T = keyof T, + >( + extraConfig?: TableRequestConfig, + reset?: boolean, + ) => void /** * * @param extraConfig 额外请求合并配置项 * * @description * 获取当前内部表格请求参数。 + * + * @example + * const [register, { getCurrentTableRequestParams }] = useTablePro() + * + * // 获取当前内部表格请求参数 + * const params = getCurrentTableRequestParams() */ - getCurrentTableRequestParams: ( - extraConfig?: TableRequestConfig, - ) => TableRequestConfig['params'] & Recordable + getCurrentTableRequestParams: < + T extends Recordable, + ExcludeParams extends keyof T = keyof T, + >( + extraConfig?: TableRequestConfig, + ) => TableRequestConfig['params'] & Recordable /** * * @description * 重置表格分页。 + * + * @example + * const [register, { resetTablePagination }] = useTablePro() + * + * // 重置表格分页为初始化状态,即第 1 页,每页 10 条数据 + * resetTablePagination() */ resetTablePagination: () => void } diff --git a/src/layout/index.scss b/src/layout/index.scss index e764cea9..126260dc 100644 --- a/src/layout/index.scss +++ b/src/layout/index.scss @@ -8,7 +8,7 @@ & .r-layout-full__viewer-content { height: var(--layout-content-height); - padding: 16px; + padding: 8px 16px; & .n-scrollbar-container { height: 100%; diff --git a/src/locales/lang/en-US/menu.json b/src/locales/lang/en-US/menu.json index 79a47f48..8ef9d153 100644 --- a/src/locales/lang/en-US/menu.json +++ b/src/locales/lang/en-US/menu.json @@ -9,8 +9,10 @@ "Doc": "Doc", "DocLocal": "Doc (China)", "DocLocalInside": "Doc(inside)", + "DraggableCard": "Draggable Card", "Echart": "Chart", "Error": "Error Page", + "Flow": "Flow", "Form": "Form", "Mock": "Mock", "Modal": "Modal", @@ -26,9 +28,8 @@ "Segment": "Segment", "SvgIcon": "SVG Icon", "Table": "Table", - "TemplateHooks": "Template Api", - "scrollReveal": "Scroll Reveal", + "TableAutoHeight": "Table Auto Height", "TablePro": "Table Pro", - "Flow": "Flow", - "DraggableCard": "Draggable Card" + "TemplateHooks": "Template Api", + "scrollReveal": "Scroll Reveal" } diff --git a/src/locales/lang/zh-CN/menu.json b/src/locales/lang/zh-CN/menu.json index 7d5538f1..51e2a30b 100644 --- a/src/locales/lang/zh-CN/menu.json +++ b/src/locales/lang/zh-CN/menu.json @@ -9,8 +9,10 @@ "Doc": "文档", "DocLocal": "文档 (加速地址)", "DocLocalInside": "文档(内嵌)", + "DraggableCard": "拖拽卡片", "Echart": "可视化", "Error": "错误页", + "Flow": "流程图", "Form": "表单", "Mock": "Mock 数据", "Modal": "模态框", @@ -26,9 +28,8 @@ "Segment": "分段器", "SvgIcon": "SVG 图标", "Table": "表格", - "TemplateHooks": "模板内置 Api", - "scrollReveal": "滚动动画", + "TableAutoHeight": "自适应高度表格", "TablePro": "高级表格", - "Flow": "流程图", - "DraggableCard": "拖拽卡片" + "TemplateHooks": "模板内置 Api", + "scrollReveal": "滚动动画" } diff --git a/src/router/modules/demo/table-auto-height.ts b/src/router/modules/demo/table-auto-height.ts new file mode 100644 index 00000000..65113a83 --- /dev/null +++ b/src/router/modules/demo/table-auto-height.ts @@ -0,0 +1,20 @@ +import { t } from '@/hooks/web/useI18n' +import { LAYOUT } from '@/router/constant' + +import type { AppRouteRecordRaw } from '@/router/types' + +const axios: AppRouteRecordRaw = { + path: '/table-auto-height', + name: 'RTableAutoHeight', + component: () => import('@/views/demo/table-auto-height'), + meta: { + i18nKey: t('menu.TableAutoHeight'), + icon: 'other', + order: 3, + extra: { + label: 'new', + }, + }, +} + +export default axios diff --git a/src/styles/naive.scss b/src/styles/naive.scss index 59ddfc38..b72ceee2 100644 --- a/src/styles/naive.scss +++ b/src/styles/naive.scss @@ -40,3 +40,7 @@ .n-input-number { width: 100%; } + +.n-flex.flex-vertical { + height: 100%; +} diff --git a/src/types/global.d.ts b/src/types/global.d.ts index 484bbf1c..5aa78349 100644 --- a/src/types/global.d.ts +++ b/src/types/global.d.ts @@ -7,8 +7,10 @@ import type { DialogApi, LoadingBarApi, NotificationApi, + DataTableColumns, } from 'naive-ui' import type { NativeElements, ReservedProps, VNode } from 'vue' +import type { Recordable } from './modules/helper' export declare global { declare interface UnknownObjectKey { @@ -69,4 +71,8 @@ export declare global { msCrypto: Crypto } + + declare interface GlobalDataTableColumns extends DataTableColumns {} + + declare type GlobalRecordable = Recordable } diff --git a/src/types/modules/helper.ts b/src/types/modules/helper.ts index fd858838..e51ed519 100644 --- a/src/types/modules/helper.ts +++ b/src/types/modules/helper.ts @@ -1,5 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ +type RecordKey = string | number | symbol + /** * * @description @@ -47,8 +49,10 @@ export type ConditionalPick = Pick< * * @example * const A: Recordable = { a: 1, b: [] } + * const B : Recordable = { 1: '1', b: '2' } + * const C : Recordable = { [Symbol('a')]: 'a' } */ -export type Recordable = Record +export type Recordable = Record /** * diff --git a/src/utils/get-date-by-naive-date-picker.ts b/src/utils/get-date-by-naive-date-picker.ts new file mode 100644 index 00000000..fd5e7433 --- /dev/null +++ b/src/utils/get-date-by-naive-date-picker.ts @@ -0,0 +1,40 @@ +type ValueType = number | [number, number] | null + +export function getDateByNaiveDatePicker< + T extends ValueType = ValueType, + V extends boolean = boolean, +>( + value: T, + isRange: V, +): V extends true ? (T extends null ? [null, null] : T) : T + +/** + * + * @param value date value + * @param isRange date picker type props is range type + * + * @description + * 辅助获取 naive date picker 组件获取 value 的方法。 + * + * 如果使用 BDatePicker 组件启用的 type 模式为 range,则需要设置第二个参数为 true,否则设置为 false。 + * + * @example + * // s1: null, e1: null + * const [s1, e1] = getDateByNaiveDatePicker(null, true) + * // s2: null + * const s2 = getDateByNaiveDatePicker(null, false) + * // s3: new Date().getTime() + * const s3 = getDateByNaiveDatePicker(new Date().getTime(), false) + * // s4: new Date().getTime(), e4: new Date().getTime() + * const [s4, e4] = getDateByNaiveDatePicker( + * [new Date().getTime(), new Date().getTime()], + * true, + * ) + */ +export function getDateByNaiveDatePicker(value: ValueType, isRange: boolean) { + if (value === null) { + return isRange ? [null, null] : null + } + + return value +} diff --git a/src/utils/index.ts b/src/utils/index.ts index 3f515f6d..6710d566 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -11,3 +11,4 @@ export * from './c' export { positionSelectedMenuItem } export { updateObjectValue } from './update-object-value' export { removeDuplicateKeys } from './remove-duplicate-keys' +export { getDateByNaiveDatePicker } from './get-date-by-naive-date-picker' diff --git a/src/views/demo/table-auto-height.tsx b/src/views/demo/table-auto-height.tsx new file mode 100644 index 00000000..6ecf797b --- /dev/null +++ b/src/views/demo/table-auto-height.tsx @@ -0,0 +1,223 @@ +import { RTablePro, RCollapse } from '@/components' +import { + NFlex, + NFormItemGi, + NInput, + NSelect, + NDatePicker, + NButton, + NTag, + NSwitch, +} from 'naive-ui' + +import dayjs from 'dayjs' +import { uuid } from '@/utils' +import Mock from 'mockjs' +import { useDayjs } from '@/hooks' + +type RowData = { + key: number | string + name: string + age: number + address: string + tags: string[] + remark: string + status: string + statusText: string + signTimeEnd: number + signTimeStart: number +} + +export default defineComponent({ + name: 'TableAutoHeight', + setup() { + const { format } = useDayjs() + + const baseColumns = ref>([ + { + type: 'selection', + }, + { + title: 'Name', + key: 'name', + }, + { + title: 'Sign Status', + key: 'statusText', + }, + { + title: 'Sign Time', + key: 'signTimeStart', + render: (row: RowData) => + format(row.signTimeStart) + ' ~ ' + format(row.signTimeEnd), + }, + { + title: 'Age', + key: 'age', + }, + { + title: 'Address', + key: 'address', + }, + { + title: 'Tags', + key: 'tags', + render: (row: RowData) => { + const tags = row.tags.map((tagKey) => { + return ( + + {tagKey} + + ) + }) + + return tags + }, + }, + { + title: 'Remark', + key: 'remark', + }, + ]) + const mockPersonList = ref( + (() => { + const length = 30 + const list: RowData[] = [] + const time = dayjs().valueOf() + + for (let i = 0; i < length; i++) { + list.push({ + key: uuid(), + name: Mock.Random.cname(), + age: i + 20, + address: Mock.Random.city(), + tags: ['nice', 'developer'], + remark: '我是一条很长很长的备注', + status: i % 2 === 0 ? 'success' : 'error', + statusText: i % 2 === 0 ? '在线' : '离线', + signTimeStart: dayjs(time) + .add(i * 2, 'year') + .valueOf(), + signTimeEnd: dayjs(time) + .add(i + 5, 'day') + .valueOf(), + }) + } + + return list + })(), + ) + const switchRef = ref({ + footer: false, + action: false, + flexAutoHeight: true, + }) + + return { + mockPersonList, + baseColumns, + switchRef, + } + }, + render() { + const { mockPersonList, baseColumns, switchRef } = this + + return ( + + + {{ + default: () => ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ), + action: () => ( + + 查询 + + ), + }} + + + + + 流体高度 + + + + + + 底部区域插槽 + + + + + + 操作区域插槽 + + + + + } + > + {{ + tableFooter: () => + switchRef.footer + ? '表格的底部内容区域插槽,有时候你可能会用上' + : null, + tableAction: () => + switchRef.action + ? '表格的操作区域内容插槽,有时候可能会用上' + : null, + }} + + + ) + }, +})