Browse Source

feat: 代码生成支持导入功能

冷冷 9 months ago
parent
commit
c4d425e07d
3 changed files with 47 additions and 3 deletions
  1. 16 0
      multiple/主子Contoller.java
  2. 16 0
      single/Controller.java
  3. 15 3
      single/表格.vue

+ 16 - 0
multiple/主子Contoller.java

@@ -195,4 +195,20 @@ public class ${ClassName}Controller {
     #end    public List<${ClassName}Entity> export(${ClassName}Entity ${className},${pk.attrType}[] ids) {
         return ${className}Service.list(Wrappers.lambdaQuery(${className}).in(ArrayUtil.isNotEmpty(ids), ${ClassName}Entity::$str.getProperty($pk.attrName), ids));
     }
+
+    /**
+     * 导入excel 表
+     * @param ${className}List 对象实体列表
+     * @param bindingResult 错误信息列表
+     * @return ok fail
+     */
+    @PostMapping("/import")
+    #if($isSpringBoot3)
+    @HasPermission("${moduleName}_${functionName}_export")
+    #else
+    @PreAuthorize("@pms.hasPermission('${moduleName}_${functionName}_export')" )
+    #end
+    public R import(@RequestExcel List<DemoEntity> ${className}List, BindingResult bindingResult) {
+        return R.ok( ${className}Service.saveBatch(${className}List));
+    }
 }

+ 16 - 0
single/Controller.java

@@ -181,4 +181,20 @@ public class ${ClassName}Controller {
     public List<${ClassName}Entity> export(${ClassName}Entity ${className},${pk.attrType}[] ids) {
         return ${className}Service.list(Wrappers.lambdaQuery(${className}).in(ArrayUtil.isNotEmpty(ids), ${ClassName}Entity::$str.getProperty($pk.attrName), ids));
     }
+
+    /**
+     * 导入excel 表
+     * @param ${className}List 对象实体列表
+     * @param bindingResult 错误信息列表
+     * @return ok fail
+     */
+    @PostMapping("/import")
+    #if($isSpringBoot3)
+    @HasPermission("${moduleName}_${functionName}_export")
+    #else
+    @PreAuthorize("@pms.hasPermission('${moduleName}_${functionName}_export')" )
+    #end
+    public R import(@RequestExcel List<DemoEntity> ${className}List, BindingResult bindingResult) {
+        return R.ok( ${className}Service.saveBatch(${className}List));
+    }
 }

+ 15 - 3
single/表格.vue

@@ -42,9 +42,9 @@
 #end
           <el-form-item>
             <el-button icon="search" type="primary" @click="getDataList">
-              查询
+              查 
             </el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+            <el-button icon="Refresh" @click="resetQuery">重 置</el-button>
           </el-form-item>
         </el-form>
       </el-row>
@@ -55,9 +55,12 @@
             v-auth="'${moduleName}_${functionName}_add'">
             新 增
           </el-button>
+          <el-button plain icon="upload-filled" type="primary" class="ml10" @click="excelUploadRef.show()" v-auth="'sys_user_add'">
+						导 入
+					</el-button>
           <el-button plain :disabled="multiple" icon="Delete" type="primary"
             v-auth="'${moduleName}_${functionName}_del'" @click="handleDelete(selectObjs)">
-            删除
+            删 
           </el-button>
           <right-toolbar v-model:showSearch="showSearch" :export="'${moduleName}_${functionName}_export'"
                 @exportExcel="exportExcel" class="ml10 mr20" style="float: right;"
@@ -95,6 +98,14 @@
     <!-- 编辑、新增  -->
     <form-dialog ref="formDialogRef" @refresh="getDataList(false)" />
 
+    <!-- 导入excel -->
+    <upload-excel
+			ref="excelUploadRef"
+			title="导入"
+			url="/${moduleName}/${functionName}/import"
+			temp-url="/${moduleName}/${functionName}/export.xlsx?$pk.attrName=-1"
+			@refreshDataList="getDataList"
+		/>
   </div>
 </template>
 
@@ -124,6 +135,7 @@ const { $dict.format($fieldDict) } = useDict($dict.quotation($fieldDict))
 #end
 // 定义变量内容
 const formDialogRef = ref()
+const excelUploadRef = ref();
 // 搜索变量
 const queryRef = ref()
 const showSearch = ref(true)