diff --git a/packages/opendesign/package.json b/packages/opendesign/package.json index 240bbf60cf76b1d1a8b2c7a65d41da57c2933ebd..b1357eb0012e792934a2f822e3023a97dd51e2c1 100644 --- a/packages/opendesign/package.json +++ b/packages/opendesign/package.json @@ -1,6 +1,6 @@ { "name": "@opensig/opendesign", - "version": "0.0.1", + "version": "0.0.2", "main": "lib/index.js", "module": "es/index.js", "types": "es/index.d.ts", @@ -37,4 +37,4 @@ "lodash-es": "^4.17.21", "resize-observer-polyfill": "^1.5.1" } -} \ No newline at end of file +} diff --git a/packages/opendesign/src/components/breadcrumb/provide.ts b/packages/opendesign/src/components/breadcrumb/provide.ts index 8917c07fad290e2ea0075413265b314cb5de3ee7..961ee72ab84453939efdb124834ceedf831af62e 100644 --- a/packages/opendesign/src/components/breadcrumb/provide.ts +++ b/packages/opendesign/src/components/breadcrumb/provide.ts @@ -1,6 +1,6 @@ import { InjectionKey, Ref } from 'vue'; -interface BreadcrumbInjectT { +export interface BreadcrumbInjectT { separator: Ref; } diff --git a/packages/opendesign/src/components/index.scss b/packages/opendesign/src/components/index.scss index a95050352737114d9aacb457df49dff96634b37a..1866051310bba2460ef2bef08967013189dd1e27 100644 --- a/packages/opendesign/src/components/index.scss +++ b/packages/opendesign/src/components/index.scss @@ -1,5 +1,25 @@ -@use './style/index.scss'; -@use './button/style/index.scss'; -@use './switch/style/index.scss'; -@use './radio/style/index.scss'; -@use './radio-group/style/index.scss'; +@use './style/index.scss' as *; + +@use './button/style//index.scss' as *; +@use './switch/style//index.scss' as *; +@use './link/style//index.scss' as *; +@use './popup/style//index.scss' as *; +@use './popover/style//index.scss' as *; +@use './input/style//index.scss' as *; +@use './input-number/style//index.scss' as *; +@use './textarea/style//index.scss' as *; +@use './select/style//index.scss' as *; +@use './tabs/style//index.scss' as *; +@use './table/style//index.scss' as *; +@use './pagination/style//index.scss' as *; +@use './radio/style//index.scss' as *; +@use './radio-group/style//index.scss' as *; +@use './checkbox/style//index.scss' as *; +@use './checkbox-group/style//index.scss' as *; +@use './rate/style//index.scss' as *; +@use './tag/style//index.scss' as *; +@use './badge/style//index.scss' as *; +@use './divider/style//index.scss' as *; +@use './form/style//index.scss' as *; +@use './menu/style//index.scss' as *; +@use './breadcrumb/style//index.scss' as *; diff --git a/packages/opendesign/src/components/pagination/OPagination.vue b/packages/opendesign/src/components/pagination/OPagination.vue index 1b1c19107370d8c36fe01d32a14dcc5986c2f591..0437f149f73eb692467025edbf4669be9a62e05e 100644 --- a/packages/opendesign/src/components/pagination/OPagination.vue +++ b/packages/opendesign/src/components/pagination/OPagination.vue @@ -106,9 +106,7 @@ const pageSizeChange = (val: string | number) => { }); }; -defineExpose<{ - pageCount: Ref; -}>({ +defineExpose({ pageCount: totalPage, }); diff --git a/packages/opendesign/src/components/popup/OPopup.vue b/packages/opendesign/src/components/popup/OPopup.vue index 6a301e8c7f6b7c966ede2dd2b7debcd627dc449f..a4c0719accc2f5d8f7d01581e7ca14140643e0a5 100644 --- a/packages/opendesign/src/components/popup/OPopup.vue +++ b/packages/opendesign/src/components/popup/OPopup.vue @@ -129,21 +129,23 @@ const clearVisibleTimer = () => { }; // 更新可见状态,支持延迟更新 -const updateVisible = (isVisible: boolean, delay?: number) => { - if (isVisible === visible.value && visibleTimer === 0) { +const updateVisible = (isVisible?: boolean, delay?: number) => { + const v = isVisible === undefined ? !visible.value : isVisible; + + if (v === visible.value && visibleTimer === 0) { return; } const update = () => { - if (visible.value === isVisible) { + if (visible.value === v) { return; } // 设置popup是否显示,不需要手动触发计算位置,显示时会触发resize,计算位置 - visible.value = isVisible; - emits('update:visible', isVisible); - emits('change', isVisible); + visible.value = v; + emits('update:visible', v); + emits('change', v); - if (isVisible) { + if (v) { toMount.value = true; if (props.hideWhenTargetInvisible && targetEl) { diff --git a/packages/opendesign/src/components/popup/popup.ts b/packages/opendesign/src/components/popup/popup.ts index 0477a936753057961941618ef74fccb00d6320f1..1d55400575c2f664b27a0a4bfd6adae33ab385f4 100644 --- a/packages/opendesign/src/components/popup/popup.ts +++ b/packages/opendesign/src/components/popup/popup.ts @@ -397,7 +397,7 @@ export function bindTrigger( updateFn, hoverDelay = 100 }: { - updateFn: (isVisible: boolean, delay?: number) => void, + updateFn: (isVisible?: boolean, delay?: number) => void, hoverDelay?: number } ) { @@ -413,6 +413,9 @@ export function bindTrigger( const hideFn = () => { updateFn(false); }; + const toggleFn = () => { + updateFn(); + }; const enterFn = () => { updateFn(true, hoverDelay); @@ -432,14 +435,14 @@ export function bindTrigger( listeners.push(removeFn); }, click: () => { - el?.addEventListener('click', showFn); + el?.addEventListener('click', toggleFn); addOutClickListener(el, hideFn, (e: MouseEvent) => { return !!popupRef.value?.contains(e.target as HTMLElement); }); listeners.push(() => { - el?.removeEventListener('click', showFn); + el?.removeEventListener('click', toggleFn); }); listeners.push(() => { removeOutClickListener(el, hideFn); diff --git a/packages/opendesign/src/components/table/table.ts b/packages/opendesign/src/components/table/table.ts index d5d1e8586a0091342f44537f6c96a0c22a1053e7..7490179f4c4c6c0e0a2e2b44cb987df62a7d207e 100644 --- a/packages/opendesign/src/components/table/table.ts +++ b/packages/opendesign/src/components/table/table.ts @@ -1,6 +1,6 @@ import { Ref } from 'vue'; import { isArray, isFunction, isString } from '../_shared/is'; -import { TableColumnT, TableRowT, CellSpanT } from './types'; +import { TableColumnT, TableRowT, CellSpanT, TableCellT } from './types'; export function getColumnData(columns?: string[] | TableColumnT[]): TableColumnT[] { if (!isArray(columns)) { @@ -29,13 +29,7 @@ function getSkipCell(rowIndex: number, columnIndex: number, span: { rowspan?: nu } return skip; } -interface CellT { - value: any, - key: string | number, - colspan?: number, - rowspan?: number, - last?: boolean -} + export function getBodyData(columnData: Ref, bodyData?: TableRowT[], cellSpan?: CellSpanT) { if (!bodyData) { @@ -60,7 +54,7 @@ export function getBodyData(columnData: Ref, bodyData?: TableRow if (isFunction(cellSpan)) { span = cellSpan(r, c); } - const cell: CellT = { + const cell: TableCellT = { value: row[col.key], key: col.key }; diff --git a/packages/opendesign/src/components/table/types.ts b/packages/opendesign/src/components/table/types.ts index 95ef99cc6d92d87d7ac92bd14c69b7179917f4b7..84c4f71f8b6c17238cccec51fe49466d560007d8 100644 --- a/packages/opendesign/src/components/table/types.ts +++ b/packages/opendesign/src/components/table/types.ts @@ -11,6 +11,14 @@ export interface TableRowT { [key: string]: any; } +export interface TableCellT { + value: any, + key: string | number, + colspan?: number, + rowspan?: number, + last?: boolean +} + export type ColumnKeysT = Array; export type CellSpanT = (rowIndex: number, columnIndex: number) => { rowspan?: number; colspan?: number } | undefined; diff --git a/packages/opendesign/tsconfig.json b/packages/opendesign/tsconfig.json index 68a292fda65adb17e9c860b182a5845d85703327..5c33eb7254523c62a8eefa8351fad1ff344cdb14 100644 --- a/packages/opendesign/tsconfig.json +++ b/packages/opendesign/tsconfig.json @@ -16,6 +16,11 @@ "skipLibCheck": true, "noEmit": true, "baseUrl": "./", + "paths": { + "resize-observer-polyfill": [ + "node_modules/resize-observer-polyfill" + ] + } }, "include": [ "src/**/*.ts",