From 07f3134f796cb751d0f468db29c3e8132bcdace0 Mon Sep 17 00:00:00 2001 From: yeuimu <2197651308@qq.com> Date: Fri, 28 Aug 2026 13:28:37 +0800 Subject: [PATCH] feat(admin): product family management tab --- apps/admin/src/components.d.ts | 7 + .../views/product-family/AutoGroupDialog.vue | 91 +++++ .../product-family/CustomMemberDialog.vue | 143 ++++++++ .../product-family/FamilyDetailDrawer.vue | 326 ++++++++++++++++++ .../src/views/product-family/FamilyView.vue | 188 ++++++++++ .../product-family/PriceOverridePanel.vue | 196 +++++++++++ .../ProductManagementView.vue | 4 +- 7 files changed, 954 insertions(+), 1 deletion(-) create mode 100644 apps/admin/src/views/product-family/AutoGroupDialog.vue create mode 100644 apps/admin/src/views/product-family/CustomMemberDialog.vue create mode 100644 apps/admin/src/views/product-family/FamilyDetailDrawer.vue create mode 100644 apps/admin/src/views/product-family/FamilyView.vue create mode 100644 apps/admin/src/views/product-family/PriceOverridePanel.vue diff --git a/apps/admin/src/components.d.ts b/apps/admin/src/components.d.ts index e39958f..1a61ff8 100644 --- a/apps/admin/src/components.d.ts +++ b/apps/admin/src/components.d.ts @@ -13,17 +13,22 @@ declare module 'vue' { export interface GlobalComponents { ElAlert: typeof import('element-plus/es')['ElAlert'] ElAside: typeof import('element-plus/es')['ElAside'] + ElBadge: typeof import('element-plus/es')['ElBadge'] ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb'] ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem'] ElButton: typeof import('element-plus/es')['ElButton'] ElCascader: typeof import('element-plus/es')['ElCascader'] ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] + ElCol: typeof import('element-plus/es')['ElCol'] + ElCollapse: typeof import('element-plus/es')['ElCollapse'] + ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElColorPicker: typeof import('element-plus/es')['ElColorPicker'] ElContainer: typeof import('element-plus/es')['ElContainer'] ElDescriptions: typeof import('element-plus/es')['ElDescriptions'] ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem'] ElDialog: typeof import('element-plus/es')['ElDialog'] + ElDrawer: typeof import('element-plus/es')['ElDrawer'] ElDropdown: typeof import('element-plus/es')['ElDropdown'] ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem'] ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu'] @@ -41,10 +46,12 @@ declare module 'vue' { ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] ElOption: typeof import('element-plus/es')['ElOption'] ElOptionGroup: typeof import('element-plus/es')['ElOptionGroup'] + ElPagination: typeof import('element-plus/es')['ElPagination'] ElPopover: typeof import('element-plus/es')['ElPopover'] ElRadio: typeof import('element-plus/es')['ElRadio'] ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] + ElRow: typeof import('element-plus/es')['ElRow'] ElSelect: typeof import('element-plus/es')['ElSelect'] ElSwitch: typeof import('element-plus/es')['ElSwitch'] ElTable: typeof import('element-plus/es')['ElTable'] diff --git a/apps/admin/src/views/product-family/AutoGroupDialog.vue b/apps/admin/src/views/product-family/AutoGroupDialog.vue new file mode 100644 index 0000000..69fc070 --- /dev/null +++ b/apps/admin/src/views/product-family/AutoGroupDialog.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/apps/admin/src/views/product-family/CustomMemberDialog.vue b/apps/admin/src/views/product-family/CustomMemberDialog.vue new file mode 100644 index 0000000..8eab76e --- /dev/null +++ b/apps/admin/src/views/product-family/CustomMemberDialog.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/apps/admin/src/views/product-family/FamilyDetailDrawer.vue b/apps/admin/src/views/product-family/FamilyDetailDrawer.vue new file mode 100644 index 0000000..65b7af1 --- /dev/null +++ b/apps/admin/src/views/product-family/FamilyDetailDrawer.vue @@ -0,0 +1,326 @@ + + + + + diff --git a/apps/admin/src/views/product-family/FamilyView.vue b/apps/admin/src/views/product-family/FamilyView.vue new file mode 100644 index 0000000..3ba046d --- /dev/null +++ b/apps/admin/src/views/product-family/FamilyView.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/apps/admin/src/views/product-family/PriceOverridePanel.vue b/apps/admin/src/views/product-family/PriceOverridePanel.vue new file mode 100644 index 0000000..7a195f6 --- /dev/null +++ b/apps/admin/src/views/product-family/PriceOverridePanel.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/apps/admin/src/views/product-management/ProductManagementView.vue b/apps/admin/src/views/product-management/ProductManagementView.vue index 591d719..c4f1185 100644 --- a/apps/admin/src/views/product-management/ProductManagementView.vue +++ b/apps/admin/src/views/product-management/ProductManagementView.vue @@ -1,15 +1,17 @@