diff --git a/snowy-admin-web/src/components/DragModal/index.vue b/snowy-admin-web/src/components/DragModal/index.vue
new file mode 100644
index 00000000..2b20d2a4
--- /dev/null
+++ b/snowy-admin-web/src/components/DragModal/index.vue
@@ -0,0 +1,247 @@
+
+
+
+
+
+
+
+
+
diff --git a/snowy-admin-web/src/components/DragModal/props.js b/snowy-admin-web/src/components/DragModal/props.js
new file mode 100644
index 00000000..74705023
--- /dev/null
+++ b/snowy-admin-web/src/components/DragModal/props.js
@@ -0,0 +1,30 @@
+export default {
+ props: [
+ 'afterClose', // Modal 完全关闭后的回调 function 无
+ 'bodyStyle', // Modal body 样式 object {}
+ 'cancelText', // 取消按钮文字 string| slot 取消
+ 'centered', // 垂直居中展示 Modal Boolean false
+ 'closable', // 是否显示右上角的关闭按钮 boolean true
+ 'closeIcon', // 自定义关闭图标 VNode | slot - 1.5.0
+ 'confirmLoading', // 确定按钮 loading boolean 无
+ 'destroyOnClose', // 关闭时销毁 Modal 里的子元素 boolean false
+ // 'footer', // 底部内容,当不需要默认底部按钮时,可以设为 :footer="null" string|slot 确定取消按钮
+ 'forceRender', // 强制渲染 Modal boolean false
+ 'getContainer', // 指定 Modal 挂载的 HTML 节点 (instance): HTMLElement () => document.body
+ 'keyboard', // 是否支持键盘 esc 关闭 boolean true
+ 'mask', // 是否展示遮罩 Boolean true
+ 'maskClosable', // 点击蒙层是否允许关闭 boolean true
+ 'maskStyle', // 遮罩样式 object {}
+ 'okText', // 确认按钮文字 string|slot 确定
+ 'okType', // 确认按钮类型 string primary
+ 'okButtonProps', // ok 按钮 props, 遵循 jsx规范 {props: ButtonProps, on: {}} -
+ 'cancelButtonProps', // cancel 按钮 props, 遵循 jsx规范 {props: ButtonProps, on: {}} -
+ 'title', // 标题 string|slot 无
+ 'visible', // (v-model) 对话框是否可见 boolean 无
+ 'width', // 宽度 string|number 520
+ 'wrapClassName', // 对话框外层容器的类名 string -
+ 'zIndex', // 设置 Modal 的 z-index Number 1000
+ 'dialogStyle', // 可用于设置浮层的样式,调整浮层位置等 object - 1.6.1
+ 'dialogClass' // 可用于设置浮层的类名 string
+ ]
+}
diff --git a/snowy-admin-web/src/components/XnFormContainer/index.vue b/snowy-admin-web/src/components/XnFormContainer/index.vue
index d9f1c0e2..4c015d1c 100644
--- a/snowy-admin-web/src/components/XnFormContainer/index.vue
+++ b/snowy-admin-web/src/components/XnFormContainer/index.vue
@@ -1,9 +1,9 @@
-
+
-
+
@@ -14,6 +14,7 @@
diff --git a/snowy-admin-web/src/layout/components/userbar.vue b/snowy-admin-web/src/layout/components/userbar.vue
index 5b8c7007..0259f490 100644
--- a/snowy-admin-web/src/layout/components/userbar.vue
+++ b/snowy-admin-web/src/layout/components/userbar.vue
@@ -59,7 +59,6 @@
:closable="false"
:footer="null"
:width="600"
- style="overflow: hidden"
destroyOnClose
dialogClass="searchModal"
:bodyStyle="{ maxHeight: '520px', overflow: 'auto', padding: '14px' }"
diff --git a/snowy-admin-web/src/snowy.js b/snowy-admin-web/src/snowy.js
index a6362124..5fe268ed 100644
--- a/snowy-admin-web/src/snowy.js
+++ b/snowy-admin-web/src/snowy.js
@@ -9,6 +9,7 @@ import hljsCommon from 'highlight.js/lib/common'
import hljsVuePlugin from '@highlightjs/vue-plugin'
import STable from './components/Table/index.vue'
import Ellipsis from './components/Ellipsis/index.vue'
+import DragModal from './components/DragModal/index.vue'
export default {
install(app) {
@@ -20,6 +21,7 @@ export default {
// 注册常用组件
app.component('STable', STable)
app.component('Ellipsis', Ellipsis)
+ app.component('DragModal', DragModal)
// 统一注册antdv图标
for (const icon in antdvIcons) {