From 514a9a32b3adbd4a7f82a7cc4f9aa53c8d1fe8a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=98=89=E6=B3=BD?= <136064@qq.com> Date: Sat, 25 Nov 2023 21:14:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9view=E4=B8=BA=E6=8A=BD?= =?UTF-8?q?=E5=B1=89=E5=B1=95=E7=A4=BA=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E7=A1=AE=E8=AE=A4=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hggen/views/curd_generate_web_view.go | 27 ++-- .../generate/default/curd/source.sql.template | 2 +- .../default/curd/web.index.vue.template | 31 +++-- .../default/curd/web.view.vue.template | 119 +++++++++++++++--- 4 files changed, 140 insertions(+), 39 deletions(-) diff --git a/server/internal/library/hggen/views/curd_generate_web_view.go b/server/internal/library/hggen/views/curd_generate_web_view.go index 1d9166a..fabe1fd 100644 --- a/server/internal/library/hggen/views/curd_generate_web_view.go +++ b/server/internal/library/hggen/views/curd_generate_web_view.go @@ -9,6 +9,7 @@ import ( "bytes" "context" "fmt" + "github.com/gogf/gf/v2/frame/g" ) @@ -21,18 +22,18 @@ func (l *gCurd) webViewTplData(ctx context.Context, in *CurdPreviewInput) (data func (l *gCurd) generateWebViewItem(ctx context.Context, in *CurdPreviewInput) string { buffer := bytes.NewBuffer(nil) for _, field := range in.masterFields { - if !field.IsEdit { - continue - } + // if !field.IsEdit { + // continue + // } var ( - defaultComponent = fmt.Sprintf("\n \n {{ formValue.%s }}\n ", field.Dc, field.TsName) + defaultComponent = fmt.Sprintf("
\n
%s:
\n
{{ params.%s }}
\n
", field.Dc, field.TsName) component string ) switch field.FormMode { case FormModeInputTextarea, FormModeInputEditor: - component = fmt.Sprintf("\n \n ", field.Dc, field.TsName) + component = fmt.Sprintf("
\n
%s:
\n
\n \n
\n
", field.Dc, field.TsName) case FormModeInputDynamic: component = defaultComponent @@ -44,28 +45,28 @@ func (l *gCurd) generateWebViewItem(ctx context.Context, in *CurdPreviewInput) s component = defaultComponent case FormModeRadio, FormModeSelect: - component = fmt.Sprintf("\n {{ getOptionLabel(options.%s, formValue?.%s) }}\n ", field.Dc, in.options.dictMap[field.TsName], field.TsName, in.options.dictMap[field.TsName], field.TsName) + component = fmt.Sprintf("
\n
%s:
\n
\n {{ getOptionLabel(options.%s, params?.%s) }}\n
\n
", field.Dc, in.options.dictMap[field.TsName], field.TsName, in.options.dictMap[field.TsName], field.TsName) case FormModeCheckbox, FormModeSelectMultiple: - component = fmt.Sprintf("\n \n ", field.Dc, field.TsName, in.options.dictMap[field.TsName], in.options.dictMap[field.TsName]) + component = fmt.Sprintf("
\n
%s:
\n
\n \n
\n
", field.Dc, field.TsName, in.options.dictMap[field.TsName], in.options.dictMap[field.TsName]) case FormModeUploadImage: - component = fmt.Sprintf("\n \n ", field.Dc, field.TsName) + component = fmt.Sprintf("
\n
%s:
\n
\n \n
\n
", field.Dc, field.TsName) case FormModeUploadImages: - component = fmt.Sprintf("\n \n \n \n \n \n \n \n \n ", field.Dc, field.TsName) + component = fmt.Sprintf("
\n
%s:
\n
\n \n \n \n \n \n \n \n
\n
", field.Dc, field.TsName) case FormModeUploadFile: - component = fmt.Sprintf("\n \n \n
\n
\n
\n {{ getFileExt(formValue.%s) }}\n
\n
\n
\n \n
", field.Dc, field.TsName, field.TsName, field.TsName) + component = fmt.Sprintf("
\n
%s:
\n
\n
\n
\n
\n {{\n getFileExt(params.attachfile)\n }}\n
\n
\n
\n
\n
", field.TsName, field.TsName) case FormModeUploadFiles: - component = fmt.Sprintf("\n \n
\n \n \n
\n
\n {{\n getFileExt(item)\n }}\n
\n
\n
\n \n \n
", field.Dc, field.TsName) + component = fmt.Sprintf("
\n
%s:
\n
\n
\n \n \n
\n
\n {{\n getFileExt(item)\n }}\n
\n
\n
\n \n
\n
\n ", field.Dc, field.TsName) case FormModeSwitch: - component = fmt.Sprintf("\n ", field.Dc, field.TsName) + component = fmt.Sprintf("
\n
%s:
\n
\n \n
\n
", field.Dc, field.TsName) case FormModeRate: - component = fmt.Sprintf("", field.Dc, field.TsName) + component = fmt.Sprintf("
\n
%s:
\n
\n \n
\n
", field.Dc, field.TsName) default: component = defaultComponent diff --git a/server/resource/generate/default/curd/source.sql.template b/server/resource/generate/default/curd/source.sql.template index c94b001..f37d6a8 100644 --- a/server/resource/generate/default/curd/source.sql.template +++ b/server/resource/generate/default/curd/source.sql.template @@ -37,7 +37,7 @@ INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type SET @listId = LAST_INSERT_ID(); @{ if or (eq .options.Step.HasView true) (eq .options.Step.HasEdit true) } -- 详情 -INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @dirId, '@{.tableComment}详情', '@{.varName | LcFirst}View', 'view/:id?', '', '2', '', '/@{.apiPrefix}/view', '', '/@{.componentPrefix}/view', '0', '@{.varName | LcFirst}Index', '0', '0', '', '0', '1', '0', '2', '', '20', '', '1', @now, @now); +INSERT INTO `@{.menuTable}` (`id`, `pid`, `title`, `name`, `path`, `icon`, `type`, `redirect`, `permissions`, `permission_name`, `component`, `always_show`, `active_menu`, `is_root`, `is_frame`, `frame_src`, `keep_alive`, `hidden`, `affix`, `level`, `tree`, `sort`, `remark`, `status`, `created_at`, `updated_at`) VALUES (NULL, @listId, '@{.tableComment}详情', '@{.varName | LcFirst}View', 'view/:id?', '', '3', '', '/@{.apiPrefix}/view', '', '/@{.componentPrefix}/view', '0', '@{.varName | LcFirst}Index', '0', '0', '', '0', '1', '0', '2', '', '20', '', '1', @now, @now); @{end} -- 菜单按钮 diff --git a/server/resource/generate/default/curd/web.index.vue.template b/server/resource/generate/default/curd/web.index.vue.template index 8fc6782..865d6b2 100644 --- a/server/resource/generate/default/curd/web.index.vue.template +++ b/server/resource/generate/default/curd/web.index.vue.template @@ -2,7 +2,7 @@
- +
@@ -26,7 +26,6 @@ :row-key="(row) => row.id" ref="actionRef" :actionColumn="actionColumn" - :checked-row-keys="checkedIds" @update:checked-row-keys="onCheckedRow" :scroll-x="1090" :resizeHeightOffset="-10000" @@ -82,6 +81,7 @@ :showModal="showModal" :formParams="formParams" />@{end} +@{ if eq .options.Step.HasView true } @{end}
@@ -97,6 +97,8 @@ @{ if or (eq .options.Step.HasView true) (eq .options.Step.HasEdit true) } import { useRouter } from 'vue-router';@{end} import { getOptionLabel } from '@/utils/hotgo'; @{ if eq .options.Step.HasEdit true } import Edit from './edit.vue';@{end} +@{ if eq .options.Step.HasView true } import View from './view.vue';@{end} + const { hasPermission } = usePermission(); @{ if or (eq .options.Step.HasView true) (eq .options.Step.HasEdit true) } const router = useRouter();@{end} const actionRef = ref(); @@ -106,6 +108,7 @@ const batchDeleteDisabled = ref(true); const checkedIds = ref([]); const showModal = ref(false); + const showView = ref(false); const formParams = ref(); const actionColumn = reactive({ @@ -189,7 +192,12 @@ } @{ if eq .options.Step.HasView true } function handleView(record: Recordable) { - router.push({ name: '@{.varName | LcFirst}View', params: { id: record.@{.pk.TsName} } }); + showView.value = true; + formParams.value = newState(record as State); + } + + function updateShowView(value) { + showView.value = value; }@{end} @{ if eq .options.Step.HasEdit true } function handleEdit(record: Recordable) { @@ -223,8 +231,6 @@ negativeText: '取消', onPositiveClick: () => { Delete({ id: checkedIds.value }).then((_res) => { - batchDeleteDisabled.value = true; - checkedIds.value = []; message.success('删除成功'); reloadTable(); }); @@ -236,8 +242,19 @@ }@{end} @{ if eq .options.Step.HasExport true } function handleExport() { - message.loading('正在导出列表...', { duration: 1200 }); - Export(searchFormRef.value?.formModel); + dialog.warning({ + title: '警告', + content: '是否确定执行此操作?', + positiveText: '确定', + negativeText: '取消', + onPositiveClick: () => { + message.loading('正在导出列表...', { duration: 1200 }); + Export(searchFormRef.value?.formModel); + }, + onNegativeClick: () => { + // message.error('取消'); + }, + }); }@{end} @{ if eq .options.Step.HasStatus true } function handleStatus(record: Recordable, status: number) { diff --git a/server/resource/generate/default/curd/web.view.vue.template b/server/resource/generate/default/curd/web.view.vue.template index 24928dd..c97287c 100644 --- a/server/resource/generate/default/curd/web.view.vue.template +++ b/server/resource/generate/default/curd/web.view.vue.template @@ -1,29 +1,35 @@ - +