diff --git a/packages/devui-vue/devui/modal/index.ts b/packages/devui-vue/devui/modal/index.ts index 8fed115609..54d40b84cc 100644 --- a/packages/devui-vue/devui/modal/index.ts +++ b/packages/devui-vue/devui/modal/index.ts @@ -1,21 +1,22 @@ -import type { App } from 'vue' -import Modal from './src/modal' -import { ModalService } from './src/services/modal-service' -import { DialogService } from './src/services/dialog-service' -import { inBrowser } from '../shared/util/common-var' +import type { App } from 'vue'; +import Modal from './src/modal'; +import Header from './src/header'; +import Body from './src/body'; +import Footer from './src/footer'; +import { ModalService } from './src/services/modal-service'; +import { inBrowser } from '../shared/util/common-var'; -Modal.install = function(app: App): void { - app.component(Modal.name, Modal) -} - -export { Modal } +export { Modal }; export default { title: 'Modal 弹窗', category: '反馈', status: '100%', install(app: App): void { - app.use(Modal as any) + app.component(Modal.name, Modal); + app.component(Header.name, Header); + app.component(Body.name, Body); + app.component(Footer.name, Footer); if (!inBrowser) { return; @@ -25,10 +26,9 @@ export default { if (!anchorsContainer) { anchorsContainer = document.createElement('div'); anchorsContainer.setAttribute('id', 'd-modal-anchors-container'); - document.body.appendChild(anchorsContainer); + document.body.appendChild(anchorsContainer); } // 新增 modalService app.provide(ModalService.token, new ModalService(anchorsContainer)); - app.provide(DialogService.token, new DialogService(anchorsContainer)); - } -} + }, +}; diff --git a/packages/devui-vue/devui/modal/src/body.tsx b/packages/devui-vue/devui/modal/src/body.tsx new file mode 100644 index 0000000000..0f2c9636a5 --- /dev/null +++ b/packages/devui-vue/devui/modal/src/body.tsx @@ -0,0 +1,8 @@ +import { defineComponent } from 'vue'; + +export default defineComponent({ + name: 'DModalBody', + setup(props, { slots }) { + return () =>