From 0626b65c74890886a36a77a618223a7ef6a57b49 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Tue, 13 Jan 2026 19:40:17 +0800 Subject: [PATCH] =?UTF-8?q?refactor(components):=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=BA=9F=E5=BC=83=E7=9A=84Description=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=B9=B6=E6=94=B9=E7=94=A8=E5=8E=9F=E7=94=9Fantd=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除已废弃的Description组件及其相关类型定义和hook,替换为直接使用antd原生Descriptions组件 更新user-reset-pwd-modal和user-info-modal使用新的实现方式 --- .../src/components/description/index.ts | 3 - .../description/src/description.vue | 205 ------------------ .../src/components/description/src/typing.ts | 48 ---- .../description/src/useDescription.ts | 47 ---- .../src/views/system/user/user-info-modal.vue | 133 ++++++------ .../system/user/user-reset-pwd-modal.vue | 29 +-- 6 files changed, 86 insertions(+), 379 deletions(-) delete mode 100644 apps/web-antd/src/components/description/index.ts delete mode 100644 apps/web-antd/src/components/description/src/description.vue delete mode 100644 apps/web-antd/src/components/description/src/typing.ts delete mode 100644 apps/web-antd/src/components/description/src/useDescription.ts diff --git a/apps/web-antd/src/components/description/index.ts b/apps/web-antd/src/components/description/index.ts deleted file mode 100644 index 46a851f1..00000000 --- a/apps/web-antd/src/components/description/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export { default as Description } from './src/description.vue'; -export * from './src/typing'; -export { useDescription } from './src/useDescription'; diff --git a/apps/web-antd/src/components/description/src/description.vue b/apps/web-antd/src/components/description/src/description.vue deleted file mode 100644 index 669a0164..00000000 --- a/apps/web-antd/src/components/description/src/description.vue +++ /dev/null @@ -1,205 +0,0 @@ - diff --git a/apps/web-antd/src/components/description/src/typing.ts b/apps/web-antd/src/components/description/src/typing.ts deleted file mode 100644 index bb3376c9..00000000 --- a/apps/web-antd/src/components/description/src/typing.ts +++ /dev/null @@ -1,48 +0,0 @@ -import type { DescriptionsProps } from 'antdv-next/es/descriptions'; -import type { JSX } from 'vue/jsx-runtime'; - -import type { CSSProperties, VNode } from 'vue'; - -import type { Recordable } from '@vben/types'; - -export interface DescItem { - labelMinWidth?: number; - contentMinWidth?: number; - labelStyle?: CSSProperties; - field: string; - label: JSX.Element | string | VNode; - // Merge column - span?: number; - show?: (...arg: any) => boolean; - // render - render?: ( - val: any, - data: Recordable, - ) => Element | JSX.Element | number | string | undefined | VNode; -} - -export interface DescriptionProps extends DescriptionsProps { - // Whether to include the collapse component - useCollapse?: boolean; - /** - * item configuration - * @type DescItem - */ - schema: DescItem[]; - /** - * 数据 - * @type object - */ - data: Recordable; -} - -export interface DescInstance { - setDescProps(descProps: Partial, delay?: boolean): void; -} - -export type Register = (descInstance: DescInstance) => void; - -/** - * @description: - */ -export type UseDescReturnType = [Register, DescInstance]; diff --git a/apps/web-antd/src/components/description/src/useDescription.ts b/apps/web-antd/src/components/description/src/useDescription.ts deleted file mode 100644 index 6c5584a7..00000000 --- a/apps/web-antd/src/components/description/src/useDescription.ts +++ /dev/null @@ -1,47 +0,0 @@ -import type { - DescInstance, - DescriptionProps, - UseDescReturnType, -} from './typing'; - -import { getCurrentInstance, ref, unref } from 'vue'; - -/** - * @deprecated 使用antd原生组件替代 下个版本将会移除 - */ -export function useDescription( - props?: Partial, -): UseDescReturnType { - if (!getCurrentInstance()) { - throw new Error( - 'useDescription() can only be used inside setup() or functional components!', - ); - } - const desc = ref(null); - const loaded = ref(false); - - function register(instance: DescInstance) { - // if (unref(loaded) && import.meta.env.PROD) { - // return; - // } - desc.value = instance; - props && instance.setDescProps(props); - loaded.value = true; - } - - const methods: DescInstance = { - setDescProps: ( - descProps: Partial, - delay = false, - ): void => { - if (!delay) { - unref(desc)?.setDescProps(descProps); - return; - } - // 奇怪的问题 在modal中需要setTimeout才会生效 - setTimeout(() => unref(desc)?.setDescProps(descProps)); - }, - }; - - return [register, methods]; -} diff --git a/apps/web-antd/src/views/system/user/user-info-modal.vue b/apps/web-antd/src/views/system/user/user-info-modal.vue index 6cffddb2..ac74874c 100644 --- a/apps/web-antd/src/views/system/user/user-info-modal.vue +++ b/apps/web-antd/src/views/system/user/user-info-modal.vue @@ -1,4 +1,6 @@ - diff --git a/apps/web-antd/src/views/system/user/user-reset-pwd-modal.vue b/apps/web-antd/src/views/system/user/user-reset-pwd-modal.vue index 02783522..ff2ec06b 100644 --- a/apps/web-antd/src/views/system/user/user-reset-pwd-modal.vue +++ b/apps/web-antd/src/views/system/user/user-reset-pwd-modal.vue @@ -1,11 +1,13 @@