diff --git a/apps/vben5/packages/@abp/webhooks/package.json b/apps/vben5/packages/@abp/webhooks/package.json index e3a3f9a72..54f439f47 100644 --- a/apps/vben5/packages/@abp/webhooks/package.json +++ b/apps/vben5/packages/@abp/webhooks/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "@abp/core": "workspace:*", + "@abp/features": "workspace:*", "@abp/request": "workspace:*", "@abp/ui": "workspace:*", "@ant-design/icons-vue": "catalog:", diff --git a/apps/vben5/packages/@abp/webhooks/src/components/definitions/groups/WebhookGroupDefinitionTable.vue b/apps/vben5/packages/@abp/webhooks/src/components/definitions/groups/WebhookGroupDefinitionTable.vue index 8eb3443c2..20dc6a10c 100644 --- a/apps/vben5/packages/@abp/webhooks/src/components/definitions/groups/WebhookGroupDefinitionTable.vue +++ b/apps/vben5/packages/@abp/webhooks/src/components/definitions/groups/WebhookGroupDefinitionTable.vue @@ -108,6 +108,11 @@ const [WebhookGroupDefinitionModal, groupModalApi] = useVbenModal({ () => import('./WebhookGroupDefinitionModal.vue'), ), }); +const [WebhookDefinitionModal, defineModalApi] = useVbenModal({ + connectedComponent: defineAsyncComponent( + () => import('../webhooks/WebhookDefinitionModal.vue'), + ), +}); const [Grid, gridApi] = useVbenVxeGrid({ formOptions, @@ -164,9 +169,13 @@ function onUpdate(row: WebhookGroupDefinitionDto) { groupModalApi.open(); } -function onMenuClick(_row: WebhookGroupDefinitionDto, info: MenuInfo) { +function onMenuClick(row: WebhookGroupDefinitionDto, info: MenuInfo) { switch (info.key) { - case 'permissions': { + case 'webhooks': { + defineModalApi.setData({ + groupName: row.name, + }); + defineModalApi.open(); break; } } @@ -243,6 +252,7 @@ onMounted(onGet); + diff --git a/apps/vben5/packages/@abp/webhooks/src/components/definitions/webhooks/WebhookDefinitionModal.vue b/apps/vben5/packages/@abp/webhooks/src/components/definitions/webhooks/WebhookDefinitionModal.vue new file mode 100644 index 000000000..1496b80bb --- /dev/null +++ b/apps/vben5/packages/@abp/webhooks/src/components/definitions/webhooks/WebhookDefinitionModal.vue @@ -0,0 +1,357 @@ + + + + + diff --git a/apps/vben5/packages/@abp/webhooks/src/components/definitions/webhooks/WebhookDefinitionTable.vue b/apps/vben5/packages/@abp/webhooks/src/components/definitions/webhooks/WebhookDefinitionTable.vue index 0120ef14e..e25660be3 100644 --- a/apps/vben5/packages/@abp/webhooks/src/components/definitions/webhooks/WebhookDefinitionTable.vue +++ b/apps/vben5/packages/@abp/webhooks/src/components/definitions/webhooks/WebhookDefinitionTable.vue @@ -6,8 +6,9 @@ import type { VbenFormProps } from '@vben/common-ui'; import type { WebhookDefinitionDto } from '../../../types/definitions'; import type { WebhookGroupDefinitionDto } from '../../../types/groups'; -import { h, onMounted, reactive, ref } from 'vue'; +import { defineAsyncComponent, h, onMounted, reactive, ref } from 'vue'; +import { useVbenModal } from '@vben/common-ui'; import { $t } from '@vben/locales'; import { @@ -158,9 +159,9 @@ const subGridColumns: VxeGridProps['columns'] = [ }, { align: 'left', - field: 'features', + field: 'requiredFeatures', minWidth: 150, - slots: { default: 'features' }, + slots: { default: 'requiredFeatures' }, title: $t('WebhooksManagement.DisplayName:RequiredFeatures'), }, { @@ -186,6 +187,12 @@ const [GroupGrid, gridApi] = useVbenVxeGrid({ gridOptions, }); +const [WebhookDefinitionModal, groupModalApi] = useVbenModal({ + connectedComponent: defineAsyncComponent( + () => import('./WebhookDefinitionModal.vue'), + ), +}); + async function onGet(input?: Record) { try { gridApi.setLoading(true); @@ -241,9 +248,15 @@ function onPageChange() { }); } -function onCreate() {} +function onCreate() { + groupModalApi.setData({}); + groupModalApi.open(); +} -function onUpdate(_row: WebhookDefinitionDto) {} +function onUpdate(row: WebhookDefinitionDto) { + groupModalApi.setData(row); + groupModalApi.open(); +} function onDelete(row: WebhookDefinitionDto) { Modal.confirm({ @@ -289,9 +302,9 @@ onMounted(onGet); -