From 66540b5e561cf467ca53f133afea346a4c7a4775 Mon Sep 17 00:00:00 2001
From: LiuHao <liuhaoai545@gmail.com>
Date: 星期一, 17 七月 2023 22:15:06 +0800
Subject: [PATCH] update 修改代码生成模版,日期范围统一采用addDateRange方法

---
 ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm      |   34 ++++++++++-------
 ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm |   39 +++++++++++--------
 ruoyi-modules/ruoyi-generator/src/main/resources/vm/ts/types.ts.vm        |    7 +++
 3 files changed, 49 insertions(+), 31 deletions(-)

diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/ts/types.ts.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/ts/types.ts.vm
index c67454b..06e4000 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/ts/types.ts.vm
+++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/ts/types.ts.vm
@@ -29,6 +29,10 @@
 }
 
 export interface ${BusinessName}Query #if(!${treeCode})extends PageQuery #end{
+  /**
+   * 鏃ユ湡鑼冨洿鍙傛暟
+   */
+  params?: any;
 #foreach ($column in $columns)
 #if($column.query)
   /**
@@ -42,3 +46,6 @@
 #end
 #end
 }
+
+
+
diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
index 2eeecd3..ac55c0c 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
+++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
@@ -46,7 +46,7 @@
 #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
           <el-form-item label="${comment}" style="width: 308px">
             <el-date-picker
-                v-model="daterange${AttrName}"
+                v-model="dateRange${AttrName}"
                 value-format="YYYY-MM-DD HH:mm:ss"
                 type="daterange"
                 range-separator="-"
@@ -268,9 +268,6 @@
 <script setup name="${BusinessName}" lang="ts">
 import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
 import { ${BusinessName}VO, ${BusinessName}Query, ${BusinessName}Form } from '@/api/${moduleName}/${businessName}/types';
-import { ComponentInternalInstance } from 'vue';
-import { ElForm, ElTable } from 'element-plus';
-
 
 type ${BusinessName}Option = {
   ${treeCode}: number;
@@ -292,9 +289,9 @@
 const isExpandAll = ref(true);
 const loading = ref(false);
 
-const queryFormRef = ref(ElForm);
-const ${businessName}FormRef = ref(ElForm);
-const ${businessName}TableRef = ref(ElTable)
+const queryFormRef = ref<ElFormInstance>();
+const ${businessName}FormRef = ref<ElFormInstance>();
+const ${businessName}TableRef = ref<ElTableInstance>()
 
 const dialog = reactive<DialogOption>({
     visible: false,
@@ -304,7 +301,7 @@
 #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([]);
+const dateRange${AttrName} = ref<[DateModelType, DateModelType]>(['', '']);
 #end
 #end
 
@@ -325,9 +322,20 @@
   queryParams: {
 #foreach ($column in $columns)
 #if($column.query)
+    #if($column.htmlType != "datetime" || $column.queryType != "BETWEEN")
     $column.javaField: undefined#if($foreach.count != $columns.size()),#end
+    #end
 #end
 #end
+    params: {
+      #foreach ($column in $columns)
+      #if($column.query)
+      #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
+      $column.javaField: undefined#if($foreach.count != $columns.size()),#end
+      #end
+      #end
+      #end
+    }
   },
   rules: {
 #foreach ($column in $columns)
@@ -362,10 +370,7 @@
 #foreach ($column in $columns)
 #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
 #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-  if (null != daterange${AttrName} && '' != daterange${AttrName}) {
-    queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0];
-    queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1];
-  }
+  proxy?.addDateRange(queryParams.value, dateRange${AttrName}.value, '${AttrName}');
 #end
 #end
   const res = await list${BusinessName}(queryParams.value);
@@ -394,7 +399,7 @@
 // 琛ㄥ崟閲嶇疆
 const reset = () => {
   form.value = {...initFormData}
-  ${businessName}FormRef.value.resetFields();
+  ${businessName}FormRef.value?.resetFields();
 }
 
 /** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -407,10 +412,10 @@
 #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 = [];
+  dateRange${AttrName}.value = ['', ''];
 #end
 #end
-  queryFormRef.value.resetFields();
+  queryFormRef.value?.resetFields();
   handleQuery();
 }
 
@@ -438,7 +443,7 @@
 /** 灞曞紑/鎶樺彔鎿嶄綔 */
 const toggleExpandAll = (data: ${BusinessName}VO[], status: boolean) => {
   data.forEach((item) => {
-    ${businessName}TableRef.value.toggleRowExpansion(item, status)
+    ${businessName}TableRef.value?.toggleRowExpansion(item, status)
     if (item.children && item.children.length > 0) toggleExpandAll(item.children, status)
   })
 }
@@ -467,7 +472,7 @@
 
 /** 鎻愪氦鎸夐挳 */
 const submitForm = () => {
-  ${businessName}FormRef.value.validate(async (valid: boolean) => {
+  ${businessName}FormRef.value?.validate(async (valid: boolean) => {
     if (valid) {
       buttonLoading.value = true;
 #foreach ($column in $columns)
diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
index 81784c8..5af7118 100644
--- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
+++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
@@ -46,7 +46,7 @@
 #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
           <el-form-item label="${comment}" style="width: 308px">
             <el-date-picker
-                v-model="daterange${AttrName}"
+                v-model="dateRange${AttrName}"
                 value-format="YYYY-MM-DD HH:mm:ss"
                 type="daterange"
                 range-separator="-"
@@ -260,8 +260,6 @@
 <script setup name="${BusinessName}" lang="ts">
 import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from '@/api/${moduleName}/${businessName}';
 import { ${BusinessName}VO, ${BusinessName}Query, ${BusinessName}Form } from '@/api/${moduleName}/${businessName}/types';
-import { ComponentInternalInstance } from 'vue';
-import { ElForm } from 'element-plus';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 #if(${dicts} != '')
@@ -280,12 +278,12 @@
 #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([]);
+const dateRange${AttrName} = ref<[DateModelType, DateModelType]>(['', '']);
 #end
 #end
 
-const queryFormRef = ref(ElForm);
-const ${businessName}FormRef = ref(ElForm);
+const queryFormRef = ref<ElFormInstance>();
+const ${businessName}FormRef = ref<ElFormInstance>();
 
 const dialog = reactive<DialogOption>({
   visible: false,
@@ -310,9 +308,20 @@
     pageSize: 10,
 #foreach ($column in $columns)
 #if($column.query)
+    #if($column.htmlType != "datetime" || $column.queryType != "BETWEEN")
     $column.javaField: undefined#if($foreach.count != $columns.size()),#end
+    #end
 #end
 #end
+    params: {
+    #foreach ($column in $columns)
+    #if($column.query)
+        #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
+      $column.javaField: undefined#if($foreach.count != $columns.size()),#end
+        #end
+    #end
+    #end
+    }
   },
   rules: {
 #foreach ($column in $columns)
@@ -347,10 +356,7 @@
 #foreach ($column in $columns)
 #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
 #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-  if (null != daterange${AttrName} && '' != daterange${AttrName}) {
-    queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0];
-    queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1];
-  }
+  proxy?.addDateRange(queryParams.value, dateRange${AttrName}.value, '${AttrName}');
 #end
 #end
   const res = await list${BusinessName}(queryParams.value);
@@ -368,7 +374,7 @@
 /** 琛ㄥ崟閲嶇疆 */
 const reset = () => {
   form.value = {...initFormData};
-  ${businessName}FormRef.value.resetFields();
+  ${businessName}FormRef.value?.resetFields();
 }
 
 /** 鎼滅储鎸夐挳鎿嶄綔 */
@@ -382,10 +388,10 @@
 #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 = [];
+  dateRange${AttrName}.value = ['', ''];
 #end
 #end
-  queryFormRef.value.resetFields();
+  queryFormRef.value?.resetFields();
   handleQuery();
 }
 
@@ -426,7 +432,7 @@
 
 /** 鎻愪氦鎸夐挳 */
 const submitForm = () => {
-  ${businessName}FormRef.value.validate(async (valid: boolean) => {
+  ${businessName}FormRef.value?.validate(async (valid: boolean) => {
     if (valid) {
       buttonLoading.value = true;
       #foreach ($column in $columns)

--
Gitblit v1.9.3