From fd0783a50f397c8c1b6abc20483006a1d2cb0ee4 Mon Sep 17 00:00:00 2001 From: xlsea Date: Sat, 10 May 2025 19:32:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=A0=91=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/template/index-tree.vue.vm | 23 +- docs/template/index.vue.vm | 4 +- src/components/custom/user-select.vue | 2 +- src/hooks/common/tree-table.ts | 6 +- src/locales/langs/en-us.ts | 3 +- src/locales/langs/zh-cn.ts | 3 +- src/router/elegant/imports.ts | 1 + src/router/elegant/routes.ts | 9 + src/router/elegant/transform.ts | 1 + src/service/api/demo/demo.ts | 8 +- src/typings/elegant-router.d.ts | 2 + src/views/demo/demo/index.vue | 16 +- .../demo/demo/modules/demo-operate-drawer.vue | 4 +- src/views/demo/tree/index.vue | 237 ++++++++++++++++++ .../demo/tree/modules/tree-operate-drawer.vue | 156 ++++++++++++ src/views/demo/tree/modules/tree-search.vue | 88 +++++++ src/views/system/dept/index.vue | 7 +- .../gen/modules/gen-table-operate-drawer.vue | 69 ++++- 18 files changed, 601 insertions(+), 38 deletions(-) create mode 100644 src/views/demo/tree/index.vue create mode 100644 src/views/demo/tree/modules/tree-operate-drawer.vue create mode 100644 src/views/demo/tree/modules/tree-search.vue diff --git a/docs/template/index-tree.vue.vm b/docs/template/index-tree.vue.vm index cc3149f8..e4d28f4a 100644 --- a/docs/template/index-tree.vue.vm +++ b/docs/template/index-tree.vue.vm @@ -6,6 +6,7 @@ import { fetchBatchDelete${BusinessName}, fetchGet${BusinessName}List } from '@/ import { useAppStore } from '@/store/modules/app'; import { useAuth } from '@/hooks/business/auth'; import { useTreeTable, useTreeTableOperate } from '@/hooks/common/tree-table'; +import { useDownload } from '@/hooks/business/download'; import { $t } from '@/locales'; import ButtonIcon from '@/components/custom/button-icon.vue'; import ${BusinessName}OperateDrawer from './modules/${business__name}-operate-drawer.vue'; @@ -45,7 +46,7 @@ const { #end params: {} }, - idField: #foreach($column in $columns)#if($column.isPk == '1')$column.javaField#end#end!, + idField: '#foreach($column in $columns)#if($column.isPk == '1')$column.javaField#end#end', columns: () => [ { type: 'selection', @@ -93,7 +94,7 @@ const { type="primary" icon="material-symbols:drive-file-rename-outline-outline" tooltipContent={$t('common.edit')} - onClick={() => edit(row.#foreach($column in $columns)#if($column.isPk == '1')$column.javaField#end#end!)} + onClick={() => edit(row)} /> ); }; @@ -148,19 +149,23 @@ async function handleDelete(#foreach($column in $columns)#if($column.isPk == '1' onDeleted(); } -async function edit(row: TableDataWithIndex) { +function edit(row: TableDataWithIndex) { handleEdit(row); } -async function addInRow(row: TableDataWithIndex) { +function addInRow(row: TableDataWithIndex) { editingData.value = jsonClone(row); handleAdd(); } + +function handleExport() { + download('/${moduleName}/${businessName}/export', searchParams, `${functionName}_#[[${new Date().getTime()}]]#.xlsx`); +}