diff --git a/src/components/EllipsisText/index.ts b/src/components/EllipsisText/index.ts new file mode 100644 index 00000000..35f9fd13 --- /dev/null +++ b/src/components/EllipsisText/index.ts @@ -0,0 +1,4 @@ +import { withInstall } from '@/utils'; +import ellipsisText from './src/EllipsisText.vue'; + +export const EllipsisText = withInstall(ellipsisText); diff --git a/src/components/EllipsisText/src/EllipsisText.vue b/src/components/EllipsisText/src/EllipsisText.vue new file mode 100644 index 00000000..9cd5de53 --- /dev/null +++ b/src/components/EllipsisText/src/EllipsisText.vue @@ -0,0 +1,133 @@ + + + + diff --git a/src/components/EllipsisText/src/Tooltip.vue b/src/components/EllipsisText/src/Tooltip.vue new file mode 100644 index 00000000..01d8ad58 --- /dev/null +++ b/src/components/EllipsisText/src/Tooltip.vue @@ -0,0 +1,158 @@ + + + + diff --git a/src/components/EllipsisText/src/_utils.ts b/src/components/EllipsisText/src/_utils.ts new file mode 100644 index 00000000..8e6a1e4c --- /dev/null +++ b/src/components/EllipsisText/src/_utils.ts @@ -0,0 +1,40 @@ +// cancelAnimationFrame +export const cancelAnimationFrame = window.cancelAnimationFrame; +// 使用 requestAnimationFrame 模拟 setTimeout 和 setInterval +export function rafTimeout(fn: Function, delay = 0, interval = false): object { + const requestAnimationFrame = + typeof window !== 'undefined' ? window.requestAnimationFrame : () => {}; + let start: any = null; + function timeElapse(timestamp: number) { + /* + timestamp参数:与performance.now()的返回值相同,它表示requestAnimationFrame() 开始去执行回调函数的时刻 + */ + if (!start) { + start = timestamp; + } + const elapsed = timestamp - start; + if (elapsed >= delay) { + fn(); // 执行目标函数func + if (interval) { + // 使用间歇调用 + start = null; + raf.id = requestAnimationFrame(timeElapse); + } + } else { + raf.id = requestAnimationFrame(timeElapse); + } + } + const raf = { + // 引用类型保存,方便获取 requestAnimationFrame()方法返回的 ID. + id: requestAnimationFrame(timeElapse), + }; + return raf; +} +// 用于取消 rafTimeout 函数 +export function cancelRaf(raf: { id: number }): void { + const cancelAnimationFrame = + typeof window !== 'undefined' ? window.cancelAnimationFrame : () => {}; + if (raf && raf.id) { + cancelAnimationFrame(raf.id); + } +} diff --git a/src/components/Form/src/components/ApiTreeSelect.vue b/src/components/Form/src/components/ApiTreeSelect.vue index ab9c18e5..4a33a54b 100644 --- a/src/components/Form/src/components/ApiTreeSelect.vue +++ b/src/components/Form/src/components/ApiTreeSelect.vue @@ -1,5 +1,10 @@