From b0991a8daf0369c12aa654270ce262250c29d68e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C=40lihai=E2=80=9D?= <“2322873900@qq.com”> Date: Sat, 4 Sep 2021 10:43:52 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E5=88=9D=E5=A7=8B=E5=8C=96popover?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devui/popover/index.ts | 19 +++++++++++++++++++ devui/popover/src/popover-directive.ts | 13 +++++++++++++ devui/popover/src/popover-types.ts | 9 +++++++++ devui/popover/src/popover.scss | 3 +++ devui/popover/src/popover.tsx | 18 ++++++++++++++++++ 5 files changed, 62 insertions(+) create mode 100644 devui/popover/index.ts create mode 100644 devui/popover/src/popover-directive.ts create mode 100644 devui/popover/src/popover-types.ts create mode 100644 devui/popover/src/popover.scss create mode 100644 devui/popover/src/popover.tsx diff --git a/devui/popover/index.ts b/devui/popover/index.ts new file mode 100644 index 00000000..ac7d51d2 --- /dev/null +++ b/devui/popover/index.ts @@ -0,0 +1,19 @@ +import type { App } from 'vue' +import Popover from './src/popover' +import PopoverDirective from './src/popover-directive' + +Popover.install = function (app: App): void { + app.component(Popover.name, Popover) +} + +export { Popover, PopoverDirective } + +export default { + title: 'Popover 悬浮提示', + category: '反馈', + status: '开发中', // TODO: 组件若开发完成则填入"已完成",并删除该注释 + install(app: App): void { + app.use(Popover as any) + app.directive('dPopover', PopoverDirective) + } +} diff --git a/devui/popover/src/popover-directive.ts b/devui/popover/src/popover-directive.ts new file mode 100644 index 00000000..af4665aa --- /dev/null +++ b/devui/popover/src/popover-directive.ts @@ -0,0 +1,13 @@ +// can export function. +export default { + created(): void { + console.log('初始化'); + + }, + // beforeMount() { }, + // mounted() { }, + // beforeUpdate() { }, + // updated() { }, + // beforeUnmount() { }, + // unmounted() { } +} diff --git a/devui/popover/src/popover-types.ts b/devui/popover/src/popover-types.ts new file mode 100644 index 00000000..94fda413 --- /dev/null +++ b/devui/popover/src/popover-types.ts @@ -0,0 +1,9 @@ +import type { PropType, ExtractPropTypes } from 'vue' + +export const popoverProps = { + /* test: { + type: Object as PropType<{ xxx: xxx }> + } */ +} as const + +export type PopoverProps = ExtractPropTypes diff --git a/devui/popover/src/popover.scss b/devui/popover/src/popover.scss new file mode 100644 index 00000000..a2c73aa4 --- /dev/null +++ b/devui/popover/src/popover.scss @@ -0,0 +1,3 @@ +.d-popover { + // +} diff --git a/devui/popover/src/popover.tsx b/devui/popover/src/popover.tsx new file mode 100644 index 00000000..19a8b0eb --- /dev/null +++ b/devui/popover/src/popover.tsx @@ -0,0 +1,18 @@ +import './popover.scss' + +import { defineComponent } from 'vue' +import { popoverProps, PopoverProps } from './popover-types' + +export default defineComponent({ + name: 'DPopover', + props: popoverProps, + emits: [], + setup(props: PopoverProps, ctx) { + return {} + }, + render() { + const {} = this + + return
+ } +}) -- Gitee From 198d76e98f54b4ae66d119b0799789c87a4ab03e Mon Sep 17 00:00:00 2001 From: CatsAndMice Date: Sat, 4 Sep 2021 20:53:57 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat(popover):=20=E6=B7=BB=E5=8A=A0popover?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E4=B8=ADprops=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devui/popover/src/popover-types.ts | 31 ++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/devui/popover/src/popover-types.ts b/devui/popover/src/popover-types.ts index 94fda413..3c0ec92e 100644 --- a/devui/popover/src/popover-types.ts +++ b/devui/popover/src/popover-types.ts @@ -1,9 +1,32 @@ -import type { PropType, ExtractPropTypes } from 'vue' +import type { PropType, ExtractPropTypes, VNode } from 'vue' export const popoverProps = { - /* test: { - type: Object as PropType<{ xxx: xxx }> - } */ + visible: { + type: Boolean, + default: false + }, + content: { + type: [String, Object as PropType<() => VNode>], + default: '' + }, + + trigger: { + type: String, + default: 'click', + validator: function (value: string) { + return ['click', 'hover'].includes(value); + } + }, + controlled: { + type: Boolean, + default: false + }, + + popType: { + type: String, + default: 'default' + } + } as const export type PopoverProps = ExtractPropTypes -- Gitee From af1972bd95a5cbb1a9fffbc5ba7a7d8e34f4ca18 Mon Sep 17 00:00:00 2001 From: CatsAndMice Date: Sun, 5 Sep 2021 12:30:26 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20popover=E5=B1=9E=E6=80=A7content?= =?UTF-8?q?=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devui/popover/index.ts | 2 +- devui/popover/src/directive.ts | 6 +++++ devui/popover/src/popover-directive.ts | 13 ----------- devui/popover/src/popover.tsx | 22 ++++++++++++------- .../src/{popover-types.ts => types.ts} | 13 ++++------- sites/.vitepress/config/sidebar.ts | 2 +- sites/components/popover/index.md | 22 +++++++++++++++++++ 7 files changed, 48 insertions(+), 32 deletions(-) create mode 100644 devui/popover/src/directive.ts delete mode 100644 devui/popover/src/popover-directive.ts rename devui/popover/src/{popover-types.ts => types.ts} (59%) create mode 100644 sites/components/popover/index.md diff --git a/devui/popover/index.ts b/devui/popover/index.ts index ac7d51d2..d7535941 100644 --- a/devui/popover/index.ts +++ b/devui/popover/index.ts @@ -1,6 +1,6 @@ import type { App } from 'vue' import Popover from './src/popover' -import PopoverDirective from './src/popover-directive' +import PopoverDirective from './src/directive' Popover.install = function (app: App): void { app.component(Popover.name, Popover) diff --git a/devui/popover/src/directive.ts b/devui/popover/src/directive.ts new file mode 100644 index 00000000..57b17196 --- /dev/null +++ b/devui/popover/src/directive.ts @@ -0,0 +1,6 @@ +import { createComponent, unmountComponent } from '../../shared/scripts/component'; +export default { + beforeMount(el, bind, vnode) { + console.log(el, bind, vnode); + }, +} diff --git a/devui/popover/src/popover-directive.ts b/devui/popover/src/popover-directive.ts deleted file mode 100644 index af4665aa..00000000 --- a/devui/popover/src/popover-directive.ts +++ /dev/null @@ -1,13 +0,0 @@ -// can export function. -export default { - created(): void { - console.log('初始化'); - - }, - // beforeMount() { }, - // mounted() { }, - // beforeUpdate() { }, - // updated() { }, - // beforeUnmount() { }, - // unmounted() { } -} diff --git a/devui/popover/src/popover.tsx b/devui/popover/src/popover.tsx index 19a8b0eb..a7070af9 100644 --- a/devui/popover/src/popover.tsx +++ b/devui/popover/src/popover.tsx @@ -1,18 +1,24 @@ import './popover.scss' - import { defineComponent } from 'vue' -import { popoverProps, PopoverProps } from './popover-types' - +import PropsPopover from './types'; export default defineComponent({ name: 'DPopover', - props: popoverProps, - emits: [], - setup(props: PopoverProps, ctx) { + props: { + ...PropsPopover + }, + setup(props, ctx) { return {} }, + render() { - const {} = this + const { content, $slots } = this; + return ( +
+
+ {$slots.content?.() || content} +
- return
+
+ ) } }) diff --git a/devui/popover/src/popover-types.ts b/devui/popover/src/types.ts similarity index 59% rename from devui/popover/src/popover-types.ts rename to devui/popover/src/types.ts index 3c0ec92e..3caf83be 100644 --- a/devui/popover/src/popover-types.ts +++ b/devui/popover/src/types.ts @@ -1,12 +1,10 @@ -import type { PropType, ExtractPropTypes, VNode } from 'vue' - -export const popoverProps = { +export default { visible: { type: Boolean, default: false }, content: { - type: [String, Object as PropType<() => VNode>], + type: String, default: '' }, @@ -22,11 +20,8 @@ export const popoverProps = { default: false }, - popType: { + propType: { type: String, default: 'default' } - -} as const - -export type PopoverProps = ExtractPropTypes +} diff --git a/sites/.vitepress/config/sidebar.ts b/sites/.vitepress/config/sidebar.ts index 7c9f0f76..90940f5c 100644 --- a/sites/.vitepress/config/sidebar.ts +++ b/sites/.vitepress/config/sidebar.ts @@ -37,7 +37,7 @@ const sidebar = { { text: 'Loading 加载提示', link: '/components/loading/', status: '已完成' }, { text: 'Mention 提及', link: '/components/mention/' }, { text: 'Modal 模态弹窗', link: '/components/modal/' }, - { text: 'Popover 悬浮提示', link: '/components/popover/' }, + { text: 'Popover 悬浮提示', link: '/components/popover/',status:"开发中" }, { text: 'ReadTip 阅读提示', link: '/components/read-tip/' }, { text: 'Toast 全局通知', link: '/components/toast/', status: '已完成' }, { text: 'Tooltip 提示', link: '/components/tooltip/' }, diff --git a/sites/components/popover/index.md b/sites/components/popover/index.md new file mode 100644 index 00000000..caa53fa7 --- /dev/null +++ b/sites/components/popover/index.md @@ -0,0 +1,22 @@ +:::demo + +```vue +