diff --git a/package.json b/package.json index 0ff9095c6..6da891c39 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "deep-chat": "^2.2.2", "echarts": "^6.0.0", "el-table-infinite-scroll": "^3.0.7", - "element-plus": "^2.11.4", + "element-plus": "^2.11.7", "highlight.js": "^11.11.1", "intro.js": "^7.2.0", "js-cookie": "^3.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a57ae581f..a799c207b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,10 +25,10 @@ importers: version: 1.2.28 '@pureadmin/descriptions': specifier: ^1.2.1 - version: 1.2.1(echarts@6.0.0)(element-plus@2.11.4(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3) + version: 1.2.1(echarts@6.0.0)(element-plus@2.11.7(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3) '@pureadmin/table': specifier: ^3.3.0 - version: 3.3.0(element-plus@2.11.4(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3) + version: 3.3.0(element-plus@2.11.7(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3) '@pureadmin/utils': specifier: ^2.6.2 version: 2.6.2(echarts@6.0.0)(vue@3.5.22(typescript@5.9.3)) @@ -84,8 +84,8 @@ importers: specifier: ^3.0.7 version: 3.0.7(typescript@5.9.3) element-plus: - specifier: ^2.11.4 - version: 2.11.4(vue@3.5.22(typescript@5.9.3)) + specifier: ^2.11.7 + version: 2.11.7(vue@3.5.22(typescript@5.9.3)) highlight.js: specifier: ^11.11.1 version: 11.11.1 @@ -124,7 +124,7 @@ importers: version: 3.27.0 plus-pro-components: specifier: ^0.1.29 - version: 0.1.29(element-plus@2.11.4(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) + version: 0.1.29(element-plus@2.11.7(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) qrcode: specifier: ^1.5.4 version: 1.5.4 @@ -2842,8 +2842,8 @@ packages: electron-to-chromium@1.5.234: resolution: {integrity: sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==} - element-plus@2.11.4: - resolution: {integrity: sha512-sLq+Ypd0cIVilv8wGGMEGvzRVBBsRpJjnAS5PsI/1JU1COZXqzH3N1UYMUc/HCdvdjf6dfrBy80Sj7KcACsT7w==} + element-plus@2.11.7: + resolution: {integrity: sha512-Bh47wuzsqaNBNDkbtlOlZER1cGcOB8GsXp/+C9b95MOrk0wvoHUV4NKKK7xMkfYNFYdYysQ752oMhnExgAL6+g==} peerDependencies: vue: ^3.2.0 @@ -2929,9 +2929,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -6793,19 +6790,19 @@ snapshots: '@popperjs/core@2.11.8': {} - '@pureadmin/descriptions@1.2.1(echarts@6.0.0)(element-plus@2.11.4(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3)': + '@pureadmin/descriptions@1.2.1(echarts@6.0.0)(element-plus@2.11.7(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3)': dependencies: '@element-plus/icons-vue': 2.3.2(vue@3.5.22(typescript@5.9.3)) '@pureadmin/utils': 2.6.2(echarts@6.0.0)(vue@3.5.22(typescript@5.9.3)) - element-plus: 2.11.4(vue@3.5.22(typescript@5.9.3)) + element-plus: 2.11.7(vue@3.5.22(typescript@5.9.3)) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - echarts - typescript - '@pureadmin/table@3.3.0(element-plus@2.11.4(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3)': + '@pureadmin/table@3.3.0(element-plus@2.11.7(vue@3.5.22(typescript@5.9.3)))(typescript@5.9.3)': dependencies: - element-plus: 2.11.4(vue@3.5.22(typescript@5.9.3)) + element-plus: 2.11.7(vue@3.5.22(typescript@5.9.3)) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - typescript @@ -8277,7 +8274,7 @@ snapshots: el-table-infinite-scroll@3.0.7(typescript@5.9.3): dependencies: core-js: 3.46.0 - element-plus: 2.11.4(vue@3.5.22(typescript@5.9.3)) + element-plus: 2.11.7(vue@3.5.22(typescript@5.9.3)) vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - '@vue/composition-api' @@ -8285,7 +8282,7 @@ snapshots: electron-to-chromium@1.5.234: {} - element-plus@2.11.4(vue@3.5.22(typescript@5.9.3)): + element-plus@2.11.7(vue@3.5.22(typescript@5.9.3)): dependencies: '@ctrl/tinycolor': 3.6.1 '@element-plus/icons-vue': 2.3.2(vue@3.5.22(typescript@5.9.3)) @@ -8296,7 +8293,6 @@ snapshots: '@vueuse/core': 9.13.0(vue@3.5.22(typescript@5.9.3)) async-validator: 4.2.5 dayjs: 1.11.18 - escape-html: 1.0.3 lodash: 4.17.21 lodash-es: 4.17.21 lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) @@ -8430,8 +8426,6 @@ snapshots: escalade@3.2.0: {} - escape-html@1.0.3: {} - escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} @@ -9991,10 +9985,10 @@ snapshots: exsolve: 1.0.7 pathe: 2.0.3 - plus-pro-components@0.1.29(element-plus@2.11.4(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): + plus-pro-components@0.1.29(element-plus@2.11.7(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)): dependencies: '@element-plus/icons-vue': 2.3.2(vue@3.5.22(typescript@5.9.3)) - element-plus: 2.11.4(vue@3.5.22(typescript@5.9.3)) + element-plus: 2.11.7(vue@3.5.22(typescript@5.9.3)) lodash-es: 4.17.21 sortablejs: 1.15.6 vue: 3.5.22(typescript@5.9.3) diff --git a/src/components/ReDialog/type.ts b/src/components/ReDialog/type.ts index 7efbe2018..3d14ba9d1 100644 --- a/src/components/ReDialog/type.ts +++ b/src/components/ReDialog/type.ts @@ -35,8 +35,20 @@ type DialogProps = { top?: string; /** 是否需要遮罩层,默认 `true` */ modal?: boolean; + /** 是否允许穿透遮罩层,默认 `false`。使用时需将 `modal` 属性设置为 `false` */ + modalPenetrable?: boolean; + /** 遮罩的自定义类名 */ + modalClass?: string; + /** `header` 部分的自定义 `class` 名 */ + headerClass?: string; + /** `body` 部分的自定义 `class` 名 */ + bodyClass?: string; + /** `footer` 部分的自定义 `class` 名 */ + footerClass?: string; /** `Dialog` 自身是否插入至 `body` 元素上。嵌套的 `Dialog` 必须指定该属性并赋值为 `true`,默认 `false` */ appendToBody?: boolean; + /** `Dialog` 挂载到哪个 `DOM` 元素,该属性会覆盖 `append-to-body` 属性,默认 `body` */ + appendTo?: string | HTMLElement; /** 是否在 `Dialog` 出现时将 `body` 滚动锁定,默认 `true` */ lockScroll?: boolean; /** `Dialog` 的自定义类名 */ @@ -57,12 +69,22 @@ type DialogProps = { beforeClose?: (done: DoneFn) => void; /** 为 `Dialog` 启用可拖拽功能,默认 `false` */ draggable?: boolean; + /** 拖动范围可以超出可视区,默认 `false` */ + overflow?: boolean; /** 是否让 `Dialog` 的 `header` 和 `footer` 部分居中排列,默认 `false` */ center?: boolean; /** 是否水平垂直对齐对话框,默认 `false` */ alignCenter?: boolean; /** 当关闭 `Dialog` 时,销毁其中的元素,默认 `false` */ destroyOnClose?: boolean; + /** 自定义关闭图标,默认 `Close` */ + closeIcon?: string | Component; + /** 和原生的 `CSS` 的 `z-index` 相同,改变 `z` 轴的顺序 */ + zIndex?: number; + /** `header` 的 `aria-level` 属性 */ + headerAriaLevel?: string; + /** 对话框动画的自定义过渡配置。可以是一个字符串(过渡名称),也可以是一个包含 `Vue` 过渡属性的对象,默认 `dialog-fade` */ + transition?: string | object; }; //element-plus.org/zh-CN/component/popconfirm.html#attributes diff --git a/src/style/sidebar.scss b/src/style/sidebar.scss index ec35ef231..e2b44109f 100644 --- a/src/style/sidebar.scss +++ b/src/style/sidebar.scss @@ -172,10 +172,6 @@ .is-active > .el-sub-menu__title, .is-active.submenu-title-noDropdown { color: var(--pure-theme-sub-menu-active-text) !important; - - i { - color: var(--pure-theme-sub-menu-active-text) !important; - } } .is-active { @@ -271,10 +267,6 @@ .is-active > .el-sub-menu__title, .is-active.submenu-title-noDropdown { color: var(--pure-theme-sub-menu-active-text) !important; - - i { - color: var(--pure-theme-sub-menu-active-text) !important; - } } /* 子菜单中还有子菜单 */ @@ -375,10 +367,6 @@ .is-active > .el-sub-menu__title, .is-active.submenu-title-noDropdown { color: var(--pure-theme-sub-menu-active-text) !important; - - i { - color: var(--pure-theme-sub-menu-active-text) !important; - } } .nest-menu .el-sub-menu > .el-sub-menu__title, @@ -542,10 +530,6 @@ .is-active > .el-sub-menu__title, .is-active.submenu-title-noDropdown { color: var(--pure-theme-sub-menu-active-text) !important; - - i { - color: var(--pure-theme-sub-menu-active-text) !important; - } } .is-active { diff --git a/src/views/components/dialog/index.vue b/src/views/components/dialog/index.vue index c9c0dd467..749f91c7c 100644 --- a/src/views/components/dialog/index.vue +++ b/src/views/components/dialog/index.vue @@ -463,6 +463,16 @@ function onSureBtnLoading() { } }); } + +// 自定义动画 +function onTransitionClick(title, transition) { + addDialog({ + width: "30%", + title, + transition, + contentRenderer: () =>
{JSON.stringify(transition)}
+ }); +} @@ -551,5 +561,112 @@ function onSureBtnLoading() { 点击底部确定按钮可开启按钮动画 +