diff --git a/src/components/Page/src/PageWrapper.vue b/src/components/Page/src/PageWrapper.vue
index b4c5bd7e7c5b73960526f4021910261728984798..e6efee50c4c964e78318f3a6c5595b907918ba97 100644
--- a/src/components/Page/src/PageWrapper.vue
+++ b/src/components/Page/src/PageWrapper.vue
@@ -37,20 +37,15 @@
:collapsedWidth="0"
:collapsible="true"
:trigger="null"
- :width="sidebarWidth"
+ :width="getSidebarWidth"
:breakpoint="sidebarBreakpoint"
@breakpoint="onBreakpoint"
>
-
-
+
@@ -82,11 +77,11 @@
import { PageHeader } from 'ant-design-vue';
import { useContentHeight } from '/@/hooks/web/useContentHeight';
import { PageWrapperFixedHeightKey } from '..';
- import { Icon } from '/@/components/Icon';
+ import { Resizer } from '/@/components/Resizer';
export default defineComponent({
name: 'PageWrapper',
- components: { PageFooter, PageHeader, Icon },
+ components: { PageFooter, PageHeader, Resizer },
inheritAttrs: false,
props: {
title: propTypes.string,
@@ -112,12 +107,17 @@
const footerRef = ref(null);
const { prefixCls } = useDesign('page-wrapper');
const sidebar = !!slots.sidebar;
+ const offsetXmoved = ref(0);
provide(
PageWrapperFixedHeightKey,
computed(() => props.fixedHeight),
);
+ const getSidebarWidth = computed(() => {
+ return props.sidebarWidth + offsetXmoved.value;
+ });
+
const getIsContentFullHeight = computed(() => {
return props.contentFullHeight || sidebar;
});
@@ -238,6 +238,10 @@
function onBreakpoint(broken: boolean) {
if (broken) collapsed.value = true;
}
+ function onSiderMove(_event, offsetX: number) {
+ //向右移动是负数
+ offsetXmoved.value = offsetXmoved.value - offsetX;
+ }
return {
getContentStyle,
@@ -252,8 +256,10 @@
omit,
getContentClass,
getSidebarContentStyle,
+ getSidebarWidth,
sidebar,
collapsed,
+ onSiderMove,
onBreakpoint,
};
},
@@ -321,7 +327,7 @@
&-content {
// margin: 15px 0 0 15px;
- margin-right: 15px;
+ // margin-right: 15px;
height: calc(100% - 29px);
}
diff --git a/src/components/Resizer/Resizer.vue b/src/components/Resizer/Resizer.vue
new file mode 100644
index 0000000000000000000000000000000000000000..c70990269477f3f4a1cdfe7a83e3bfe74d97acb2
--- /dev/null
+++ b/src/components/Resizer/Resizer.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/Resizer/index.ts b/src/components/Resizer/index.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e67e7085ea6decfa49e9916dd45cd71f29d31ff0
--- /dev/null
+++ b/src/components/Resizer/index.ts
@@ -0,0 +1,4 @@
+import { withInstall } from '/@/utils/index';
+import resizer from './src/Resizer.vue';
+
+export const Resizer = withInstall(resizer);
\ No newline at end of file