From 0df5a921a3522cf28d475a5aee2f3b6eaadb397c Mon Sep 17 00:00:00 2001 From: devin Date: Mon, 27 Mar 2023 17:28:29 +0800 Subject: [PATCH 01/15] =?UTF-8?q?popup=E5=A2=9E=E5=8A=A0hover-click?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/popup/__demo__/PopupTarget.vue | 18 ++++++++++++++++-- .../opendesign/src/components/popup/popup.ts | 13 +++++++++++++ .../opendesign/src/components/popup/types.ts | 2 +- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/packages/opendesign/src/components/popup/__demo__/PopupTarget.vue b/packages/opendesign/src/components/popup/__demo__/PopupTarget.vue index dd4ea8de..0faba770 100644 --- a/packages/opendesign/src/components/popup/__demo__/PopupTarget.vue +++ b/packages/opendesign/src/components/popup/__demo__/PopupTarget.vue @@ -8,8 +8,16 @@ const content = 'this is popup content';

Popup Target

- - + + + + + + + + + + diff --git a/packages/opendesign/src/components/popup/popup.ts b/packages/opendesign/src/components/popup/popup.ts index 268a52d5..74505c60 100644 --- a/packages/opendesign/src/components/popup/popup.ts +++ b/packages/opendesign/src/components/popup/popup.ts @@ -440,6 +440,19 @@ export function bindTrigger( }; listeners.push(removeFn); }, + 'hover-click': () => { + el?.addEventListener('mouseover', enterFn); + outClick.addListener(el, hideFn, (e: MouseEvent) => { + return !!popupRef.value?.contains(e.target as HTMLElement); + }); + const removeFn = () => { + el?.removeEventListener('mouseover', enterFn); + }; + listeners.push(removeFn); + listeners.push(() => { + outClick.removeListener(el, hideFn); + }); + }, click: () => { el?.addEventListener('click', toggleFn); diff --git a/packages/opendesign/src/components/popup/types.ts b/packages/opendesign/src/components/popup/types.ts index 63cf4470..ef7c184b 100644 --- a/packages/opendesign/src/components/popup/types.ts +++ b/packages/opendesign/src/components/popup/types.ts @@ -2,7 +2,7 @@ import { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'; export type PopupPositionT = 'top' | 'tl' | 'tr' | 'bottom' | 'bl' | 'br' | 'left' | 'lt' | 'lb' | 'right' | 'rt' | 'rb'; -export type PopupTriggerT = 'hover' | 'click' | 'focus' | 'contextmenu' | 'none'; +export type PopupTriggerT = 'hover' | 'click' | 'focus' | 'contextmenu' | 'none' | 'hover-click'; export const popupProps = { /** -- Gitee From 9c18a30f99b5e38669d840065a4d1fab935872e5 Mon Sep 17 00:00:00 2001 From: devin Date: Mon, 27 Mar 2023 17:28:36 +0800 Subject: [PATCH 02/15] =?UTF-8?q?textarea=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/textarea/OTextarea.vue | 2 +- .../textarea/__demo__/TextareaBasic.vue | 2 +- .../src/components/textarea/style/index.scss | 1 + .../src/components/textarea/types.ts | 22 +++++++++---------- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/packages/opendesign/src/components/textarea/OTextarea.vue b/packages/opendesign/src/components/textarea/OTextarea.vue index de7bd065..afc57b02 100644 --- a/packages/opendesign/src/components/textarea/OTextarea.vue +++ b/packages/opendesign/src/components/textarea/OTextarea.vue @@ -178,7 +178,7 @@ const onMirrorResize = (en: ResizeObserverEntry) => { resize: resizeValue, height: textareaHeight + 'px', }" - :maxlength="props.inputOnOutLimit ? '' : props.maxLength" + :maxlength="props.inputOnOutlimit ? '' : props.maxLength" :rows="props.rows" :cols="props.cols" @focus="onFocus" diff --git a/packages/opendesign/src/components/textarea/__demo__/TextareaBasic.vue b/packages/opendesign/src/components/textarea/__demo__/TextareaBasic.vue index 72574e31..67b3b5d8 100644 --- a/packages/opendesign/src/components/textarea/__demo__/TextareaBasic.vue +++ b/packages/opendesign/src/components/textarea/__demo__/TextareaBasic.vue @@ -99,7 +99,7 @@ const printEvent = (event: string, val?: string | number) => {
input-out-limit:超出长度时不能输入
- +

Clearable

diff --git a/packages/opendesign/src/components/textarea/style/index.scss b/packages/opendesign/src/components/textarea/style/index.scss index b1bd1ffe..ed12ebca 100644 --- a/packages/opendesign/src/components/textarea/style/index.scss +++ b/packages/opendesign/src/components/textarea/style/index.scss @@ -41,6 +41,7 @@ background-color: transparent; display: inline-flex; width: 100%; + height: 100%; line-height: inherit; min-height: calc(var(--textarea-text-height) + var(--textarea-padding-v) * 2); diff --git a/packages/opendesign/src/components/textarea/types.ts b/packages/opendesign/src/components/textarea/types.ts index 7877ba2e..b57b18a4 100644 --- a/packages/opendesign/src/components/textarea/types.ts +++ b/packages/opendesign/src/components/textarea/types.ts @@ -1,7 +1,7 @@ import { ExtractPropTypes, PropType } from 'vue'; import type { SizeT, RoundT, VariantT } from '../_shared/global'; -export type ResizeT = 'both' | 'horizontal'| 'h' | 'vertical' | 'v' | 'none'; +export type ResizeT = 'both' | 'horizontal' | 'h' | 'vertical' | 'v' | 'none'; export const textareaProps = { /** * 下拉框的值 @@ -27,28 +27,28 @@ export const textareaProps = { * 圆角值 */ round: { - type: String as PropType + type: String as PropType, }, /** * 颜色类型 */ color: { type: String as PropType<'normal' | 'success' | 'warning' | 'danger'>, - default: 'normal' + default: 'normal', }, /** * 按钮类型:ColorT */ variant: { type: String as PropType, - default: 'outline' + default: 'outline', }, /** * 提示文本 */ placeholder: { type: String, - default: '' + default: '', }, /** * 是否禁用 @@ -67,7 +67,7 @@ export const textareaProps = { */ clearable: { type: Boolean, - default: true + default: true, }, /** * 是否自动增加宽度 @@ -80,21 +80,21 @@ export const textareaProps = { */ resize: { type: String as PropType, - default: 'vertical' + default: 'vertical', }, /** * 显示的行数 */ rows: { type: Number, - default: 3 + default: undefined, }, /** * 显示的行数 */ cols: { type: Number, - default: 20 + default: undefined, }, /** * 最大字符长度 @@ -105,9 +105,9 @@ export const textareaProps = { /** * 超过最大字符长度时是否允许输入 */ - inputOnOutLimit: { + inputOnOutlimit: { type: Boolean, - default: true + default: true, }, /** * 是否自动计算高度 -- Gitee From 1b29cf9502460d1c77157304a24850ae67284d70 Mon Sep 17 00:00:00 2001 From: devin Date: Mon, 27 Mar 2023 17:34:45 +0800 Subject: [PATCH 03/15] fix --- packages/opendesign/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/opendesign/package.json b/packages/opendesign/package.json index 96b2b10c..579881af 100644 --- a/packages/opendesign/package.json +++ b/packages/opendesign/package.json @@ -1,6 +1,6 @@ { "name": "@opensig/opendesign", - "version": "0.0.14", + "version": "0.0.15", "main": "lib/index.js", "module": "es/index.mjs", "types": "es/index.d.ts", -- Gitee From 37ddec8920db5be9daff6616d5e2c918c80eafa2 Mon Sep 17 00:00:00 2001 From: devin Date: Mon, 27 Mar 2023 18:12:22 +0800 Subject: [PATCH 04/15] =?UTF-8?q?popup=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/popup/OPopup.vue | 1 + .../components/popup/__demo__/PopupTarget.vue | 6 +- .../opendesign/src/components/popup/popup.ts | 89 +++++++++++-------- .../opendesign/src/components/popup/types.ts | 9 +- 4 files changed, 68 insertions(+), 37 deletions(-) diff --git a/packages/opendesign/src/components/popup/OPopup.vue b/packages/opendesign/src/components/popup/OPopup.vue index 82b50585..35fb8966 100644 --- a/packages/opendesign/src/components/popup/OPopup.vue +++ b/packages/opendesign/src/components/popup/OPopup.vue @@ -104,6 +104,7 @@ const bindTargetEvent = (el: HTMLElement | null) => { triggerListener = bindTrigger(el, popupRef, triggers, { updateFn: updateVisible, hoverDelay: props.hoverDelay, + autoHide: props.autoHide, }); if (props.hideWhenTargetInvisible) { diff --git a/packages/opendesign/src/components/popup/__demo__/PopupTarget.vue b/packages/opendesign/src/components/popup/__demo__/PopupTarget.vue index 0faba770..248c1fea 100644 --- a/packages/opendesign/src/components/popup/__demo__/PopupTarget.vue +++ b/packages/opendesign/src/components/popup/__demo__/PopupTarget.vue @@ -15,10 +15,14 @@ const content = 'this is popup content'; - + + + + +