From 3f041adb12f0df95856c70c6fc677377ceefd117 Mon Sep 17 00:00:00 2001 From: colin Date: Tue, 22 Apr 2025 12:00:43 +0800 Subject: [PATCH] feat(vben5): add text-template modal --- .../@abp/text-templating/package.json | 1 + .../definitions/TemplateDefinitionModal.vue | 289 ++++++++++++++++++ .../definitions/TemplateDefinitionTable.vue | 20 +- 3 files changed, 307 insertions(+), 3 deletions(-) create mode 100644 apps/vben5/packages/@abp/text-templating/src/components/definitions/TemplateDefinitionModal.vue diff --git a/apps/vben5/packages/@abp/text-templating/package.json b/apps/vben5/packages/@abp/text-templating/package.json index b39bba55e..ea42ea6cb 100644 --- a/apps/vben5/packages/@abp/text-templating/package.json +++ b/apps/vben5/packages/@abp/text-templating/package.json @@ -21,6 +21,7 @@ }, "dependencies": { "@abp/core": "workspace:*", + "@abp/localization": "workspace:*", "@abp/request": "workspace:*", "@abp/saas": "workspace:*", "@abp/ui": "workspace:*", diff --git a/apps/vben5/packages/@abp/text-templating/src/components/definitions/TemplateDefinitionModal.vue b/apps/vben5/packages/@abp/text-templating/src/components/definitions/TemplateDefinitionModal.vue new file mode 100644 index 000000000..1c7506d7c --- /dev/null +++ b/apps/vben5/packages/@abp/text-templating/src/components/definitions/TemplateDefinitionModal.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/apps/vben5/packages/@abp/text-templating/src/components/definitions/TemplateDefinitionTable.vue b/apps/vben5/packages/@abp/text-templating/src/components/definitions/TemplateDefinitionTable.vue index c27b692e9..91c887875 100644 --- a/apps/vben5/packages/@abp/text-templating/src/components/definitions/TemplateDefinitionTable.vue +++ b/apps/vben5/packages/@abp/text-templating/src/components/definitions/TemplateDefinitionTable.vue @@ -6,9 +6,10 @@ import type { VbenFormProps } from '@vben/common-ui'; import type { TextTemplateDefinitionDto } from '../../types/definitions'; -import { h, onMounted, reactive, ref } from 'vue'; +import { defineAsyncComponent, h, onMounted, reactive, ref } from 'vue'; import { useAccess } from '@vben/access'; +import { useVbenModal } from '@vben/common-ui'; import { $t } from '@vben/locales'; import { useLocalization, useLocalizationSerializer } from '@abp/core'; @@ -153,6 +154,12 @@ const [Grid, gridApi] = useVbenVxeGrid({ gridOptions, }); +const [TemplateDefinitionModal, modalApi] = useVbenModal({ + connectedComponent: defineAsyncComponent( + () => import('./TemplateDefinitionModal.vue'), + ), +}); + async function onGet(input?: Record) { try { gridApi.setLoading(true); @@ -192,9 +199,15 @@ function onPageChange() { }); } -function onCreate() {} +function onCreate() { + modalApi.setData({}); + modalApi.open(); +} -function onUpdate(_row: TextTemplateDefinitionDto) {} +function onUpdate(row: TextTemplateDefinitionDto) { + modalApi.setData(row); + modalApi.open(); +} function onMenuClick(_row: TextTemplateDefinitionDto, info: MenuInfo) { switch (info.key) { @@ -288,6 +301,7 @@ onMounted(onGet); +