From 983b393d3e0def52c47c3f1aba496054a7071cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Fri, 17 Apr 2026 15:46:40 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E6=8A=BD=E5=87=BA=E4=B8=80=E4=BA=9B=E5=B8=B8=E7=94=A8?= =?UTF-8?q?hooks=E7=BB=84=E4=BB=B6=E7=AE=80=E5=8C=96=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/vm/vue/index-tree.vue.vm | 46 +++++++++---------- .../src/main/resources/vm/vue/index.vue.vm | 27 ++++++----- 2 files changed, 36 insertions(+), 37 deletions(-) diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm index 36db7dda9..ca5fade8f 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index-tree.vue.vm @@ -297,13 +297,17 @@ import { add${BusinessName}, del${BusinessName}, get${BusinessName}, list${Busin import { ${BusinessName}Form, ${BusinessName}Query, ${BusinessName}VO } from '@/api/${moduleName}/${businessName}/types'; import { useLoading } from '@/hooks/async/useLoading'; import { useFormDialog } from '@/hooks/dialog/useFormDialog'; +#if($needAddDateRange) +import { useDateRangeQuery } from '@/hooks/form/useDateRangeQuery'; +#end import { useSearchReset } from '@/hooks/form/useSearchReset'; import { useSearchToggle } from '@/hooks/form/useSearchToggle'; +import { useTreeTableExpand } from '@/hooks/tree/useTreeTableExpand'; #if(${dicts} != '') import { useDict } from '@/utils/dict'; #end import modal from '@/plugins/modal'; -import { handleTree#if($needAddDateRange), addDateRange#end } from '@/utils/ruoyi'; +import { handleTree } from '@/utils/ruoyi'; #if(${dicts} != '') #set($dictsNoSymbol=$dicts.replace("'", "")) @@ -320,17 +324,24 @@ const ${businessName}List = ref<${BusinessName}VO[]>([]); const ${businessName}Options = ref<${BusinessName}Option[]>([]); const buttonLoading = ref(false); const { showSearch } = useSearchToggle(); -const isExpandAll = ref(true); const { loading, setLoading, withLoading } = useLoading(); const queryFormRef = ref(); const ${businessName}FormRef = ref(); const ${businessName}TableRef = ref(); +const { isExpandAll, handleToggleExpandAll } = useTreeTableExpand<${BusinessName}VO>({ + tableRef: ${businessName}TableRef, + data: ${businessName}List +}); #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -const dateRange${AttrName} = ref<[DateModelType, DateModelType]>(['', '']); +const { + dateRange: dateRange${AttrName}, + applyDateRange: apply${AttrName}DateRange, + resetDateRange: reset${AttrName}DateRange +} = useDateRangeQuery('${AttrName}'); #end #end @@ -395,19 +406,18 @@ const { dialog, resetForm: reset, openDialog, showDialog, closeDialog } = useFor /** 查询${functionName}列表 */ const getList = async () => { await withLoading(async () => { -#foreach ($column in $columns) -#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") - queryParams.value.params = {}; -#break -#end -#end +#if($needAddDateRange) + let params = queryParams.value; #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) - addDateRange(queryParams.value, dateRange${AttrName}.value, '${AttrName}'); + params = apply${AttrName}DateRange(params); #end #end + const res = await list${BusinessName}(params); +#else const res = await list${BusinessName}(queryParams.value); +#end const data = handleTree<${BusinessName}VO>(res.data, '${treeCode}', '${treeParentCode}'); if (data) { ${businessName}List.value = data; @@ -442,7 +452,7 @@ const { resetQuery } = useSearchReset({ #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) - dateRange${AttrName}.value = ['', '']; + reset${AttrName}DateRange(); #end #end }, @@ -462,20 +472,6 @@ const handleAdd = (row?: ${BusinessName}VO) => { } }; -/** 展开/折叠操作 */ -const handleToggleExpandAll = () => { - isExpandAll.value = !isExpandAll.value; - toggleExpandAll(${businessName}List.value, isExpandAll.value); -}; - -/** 展开/折叠操作 */ -const toggleExpandAll = (data: ${BusinessName}VO[], status: boolean) => { - data.forEach(item => { - ${businessName}TableRef.value?.toggleRowExpansion(item, status); - if (item.children && item.children.length > 0) toggleExpandAll(item.children, status); - }); -}; - /** 修改按钮操作 */ const handleUpdate = async (row: ${BusinessName}VO) => { reset(); diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm index dece59c71..ff3051187 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/vue/index.vue.vm @@ -259,15 +259,15 @@ import { add${BusinessName}, del${BusinessName}, get${BusinessName}, list${Busin import { ${BusinessName}Form, ${BusinessName}Query, ${BusinessName}VO } from '@/api/${moduleName}/${businessName}/types'; import { useLoading } from '@/hooks/async/useLoading'; import { useFormDialog } from '@/hooks/dialog/useFormDialog'; +#if($needAddDateRange) +import { useDateRangeQuery } from '@/hooks/form/useDateRangeQuery'; +#end import { useSearchReset } from '@/hooks/form/useSearchReset'; import { useSearchToggle } from '@/hooks/form/useSearchToggle'; import { useTableSelection } from '@/hooks/table/useTableSelection'; #if(${dicts} != '') import { useDict } from '@/utils/dict'; #end -#if($needAddDateRange) -import { addDateRange } from '@/utils/ruoyi'; -#end import modal from '@/plugins/modal'; import { download as requestDownload } from '@/utils/request'; @@ -284,7 +284,11 @@ const total = ref(0); #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) -const dateRange${AttrName} = ref<[DateModelType, DateModelType]>(['', '']); +const { + dateRange: dateRange${AttrName}, + applyDateRange: apply${AttrName}DateRange, + resetDateRange: reset${AttrName}DateRange +} = useDateRangeQuery('${AttrName}'); #end #end @@ -354,19 +358,18 @@ const { dialog, resetForm: reset, openDialog, showDialog, closeDialog } = useFor /** 查询${functionName}列表 */ const getList = async () => { await withLoading(async () => { -#foreach ($column in $columns) -#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") - queryParams.value.params = {}; -#break -#end -#end +#if($needAddDateRange) + let params = queryParams.value; #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) - addDateRange(queryParams.value, dateRange${AttrName}.value, '${AttrName}'); + params = apply${AttrName}DateRange(params); #end #end + const res = await list${BusinessName}(params); +#else const res = await list${BusinessName}(queryParams.value); +#end ${businessName}List.value = res.data?.rows; total.value = res.data?.total; }); @@ -394,7 +397,7 @@ const { resetQuery } = useSearchReset({ #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) - dateRange${AttrName}.value = ['', '']; + reset${AttrName}DateRange(); #end #end },