若依 3.0
This commit is contained in:
		
							
								
								
									
										114
									
								
								ruoyi-generator/src/main/resources/vm/java/controller.java.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								ruoyi-generator/src/main/resources/vm/java/controller.java.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,114 @@ | ||||
| package ${packageName}.controller; | ||||
|  | ||||
| import java.util.List; | ||||
| import org.springframework.security.access.prepost.PreAuthorize; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.GetMapping; | ||||
| import org.springframework.web.bind.annotation.PostMapping; | ||||
| import org.springframework.web.bind.annotation.PutMapping; | ||||
| import org.springframework.web.bind.annotation.DeleteMapping; | ||||
| import org.springframework.web.bind.annotation.PathVariable; | ||||
| import org.springframework.web.bind.annotation.RequestBody; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
| import com.ruoyi.common.annotation.Log; | ||||
| import com.ruoyi.common.core.controller.BaseController; | ||||
| import com.ruoyi.common.core.domain.AjaxResult; | ||||
| import com.ruoyi.common.enums.BusinessType; | ||||
| import ${packageName}.domain.${ClassName}; | ||||
| import ${packageName}.service.I${ClassName}Service; | ||||
| import com.ruoyi.common.utils.poi.ExcelUtil; | ||||
| #if($table.crud) | ||||
| import com.ruoyi.common.core.page.TableDataInfo; | ||||
| #elseif($table.tree) | ||||
| #end | ||||
|  | ||||
| /** | ||||
|  * ${functionName}Controller | ||||
|  *  | ||||
|  * @author ${author} | ||||
|  * @date ${datetime} | ||||
|  */ | ||||
| @RestController | ||||
| @RequestMapping("/${moduleName}/${businessName}") | ||||
| public class ${ClassName}Controller extends BaseController | ||||
| { | ||||
|     @Autowired | ||||
|     private I${ClassName}Service ${className}Service; | ||||
|  | ||||
|     /** | ||||
|      * 查询${functionName}列表 | ||||
|      */ | ||||
|     @PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')") | ||||
|     @GetMapping("/list") | ||||
| #if($table.crud) | ||||
|     public TableDataInfo list(${ClassName} ${className}) | ||||
|     { | ||||
|         startPage(); | ||||
|         List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); | ||||
|         return getDataTable(list); | ||||
|     } | ||||
| #elseif($table.tree) | ||||
|     public AjaxResult list(${ClassName} ${className}) | ||||
|     { | ||||
|         List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); | ||||
|         return AjaxResult.success(list); | ||||
|     } | ||||
| #end | ||||
|  | ||||
|     /** | ||||
|      * 导出${functionName}列表 | ||||
|      */ | ||||
|     @PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')") | ||||
|     @Log(title = "${functionName}", businessType = BusinessType.EXPORT) | ||||
|     @GetMapping("/export") | ||||
|     public AjaxResult export(${ClassName} ${className}) | ||||
|     { | ||||
|         List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); | ||||
|         ExcelUtil<${ClassName}> util = new ExcelUtil<${ClassName}>(${ClassName}.class); | ||||
|         return util.exportExcel(list, "${businessName}"); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 获取${functionName}详细信息 | ||||
|      */ | ||||
|     @PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')") | ||||
|     @GetMapping(value = "/{${pkColumn.javaField}}") | ||||
|     public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField}) | ||||
|     { | ||||
|         return AjaxResult.success(${className}Service.select${ClassName}ById(${pkColumn.javaField})); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 新增${functionName} | ||||
|      */ | ||||
|     @PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')") | ||||
|     @Log(title = "${functionName}", businessType = BusinessType.INSERT) | ||||
|     @PostMapping | ||||
|     public AjaxResult add(@RequestBody ${ClassName} ${className}) | ||||
|     { | ||||
|         return toAjax(${className}Service.insert${ClassName}(${className})); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 修改${functionName} | ||||
|      */ | ||||
|     @PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')") | ||||
|     @Log(title = "${functionName}", businessType = BusinessType.UPDATE) | ||||
|     @PutMapping | ||||
|     public AjaxResult edit(@RequestBody ${ClassName} ${className}) | ||||
|     { | ||||
|         return toAjax(${className}Service.update${ClassName}(${className})); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 删除${functionName} | ||||
|      */ | ||||
|     @PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')") | ||||
|     @Log(title = "${functionName}", businessType = BusinessType.DELETE) | ||||
| 	@DeleteMapping("/{${pkColumn.javaField}s}") | ||||
|     public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s) | ||||
|     { | ||||
|         return toAjax(${className}Service.delete${ClassName}ByIds(${pkColumn.javaField}s)); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										85
									
								
								ruoyi-generator/src/main/resources/vm/java/domain.java.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								ruoyi-generator/src/main/resources/vm/java/domain.java.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,85 @@ | ||||
| package ${packageName}.domain; | ||||
|  | ||||
| #foreach ($import in $importList) | ||||
| import ${import}; | ||||
| #end | ||||
| import org.apache.commons.lang3.builder.ToStringBuilder; | ||||
| import org.apache.commons.lang3.builder.ToStringStyle; | ||||
| import com.ruoyi.common.annotation.Excel; | ||||
| #if($table.crud) | ||||
| import com.ruoyi.common.core.domain.BaseEntity; | ||||
| #elseif($table.tree) | ||||
| import com.ruoyi.common.core.domain.TreeEntity; | ||||
| #end | ||||
|  | ||||
| /** | ||||
|  * ${functionName}对象 ${tableName} | ||||
|  *  | ||||
|  * @author ${author} | ||||
|  * @date ${datetime} | ||||
|  */ | ||||
| #if($table.crud) | ||||
| #set($Entity="BaseEntity") | ||||
| #elseif($table.tree) | ||||
| #set($Entity="TreeEntity") | ||||
| #end | ||||
| public class ${ClassName} extends ${Entity} | ||||
| { | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
| #foreach ($column in $columns) | ||||
| #if(!$table.isSuperColumn($column.javaField)) | ||||
|     /** $column.columnComment */ | ||||
| #if($column.list) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #if($parentheseIndex != -1) | ||||
|     @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") | ||||
| #elseif($column.javaType == 'Date') | ||||
|     @JsonFormat(pattern = "yyyy-MM-dd") | ||||
|     @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd") | ||||
| #else | ||||
|     @Excel(name = "${comment}") | ||||
| #end | ||||
| #end | ||||
|     private $column.javaType $column.javaField; | ||||
|  | ||||
| #end | ||||
| #end | ||||
| #foreach ($column in $columns) | ||||
| #if(!$table.isSuperColumn($column.javaField)) | ||||
| #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) | ||||
| #set($AttrName=$column.javaField) | ||||
| #else | ||||
| #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | ||||
| #end | ||||
|     public void set${AttrName}($column.javaType $column.javaField)  | ||||
|     { | ||||
|         this.$column.javaField = $column.javaField; | ||||
|     } | ||||
|  | ||||
|     public $column.javaType get${AttrName}()  | ||||
|     { | ||||
|         return $column.javaField; | ||||
|     } | ||||
| #end | ||||
| #end | ||||
|  | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) | ||||
| #foreach ($column in $columns) | ||||
| #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]")) | ||||
| #set($AttrName=$column.javaField) | ||||
| #else | ||||
| #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | ||||
| #end | ||||
|             .append("${column.javaField}", get${AttrName}()) | ||||
| #end | ||||
|             .toString(); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										61
									
								
								ruoyi-generator/src/main/resources/vm/java/mapper.java.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								ruoyi-generator/src/main/resources/vm/java/mapper.java.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | ||||
| package ${packageName}.mapper; | ||||
|  | ||||
| import java.util.List; | ||||
| import ${packageName}.domain.${ClassName}; | ||||
|  | ||||
| /** | ||||
|  * ${functionName}Mapper接口 | ||||
|  *  | ||||
|  * @author ${author} | ||||
|  * @date ${datetime} | ||||
|  */ | ||||
| public interface ${ClassName}Mapper  | ||||
| { | ||||
|     /** | ||||
|      * 查询${functionName} | ||||
|      *  | ||||
|      * @param ${pkColumn.javaField} ${functionName}ID | ||||
|      * @return ${functionName} | ||||
|      */ | ||||
|     public ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); | ||||
|  | ||||
|     /** | ||||
|      * 查询${functionName}列表 | ||||
|      *  | ||||
|      * @param ${className} ${functionName} | ||||
|      * @return ${functionName}集合 | ||||
|      */ | ||||
|     public List<${ClassName}> select${ClassName}List(${ClassName} ${className}); | ||||
|  | ||||
|     /** | ||||
|      * 新增${functionName} | ||||
|      *  | ||||
|      * @param ${className} ${functionName} | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int insert${ClassName}(${ClassName} ${className}); | ||||
|  | ||||
|     /** | ||||
|      * 修改${functionName} | ||||
|      *  | ||||
|      * @param ${className} ${functionName} | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int update${ClassName}(${ClassName} ${className}); | ||||
|  | ||||
|     /** | ||||
|      * 删除${functionName} | ||||
|      *  | ||||
|      * @param ${pkColumn.javaField} ${functionName}ID | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); | ||||
|  | ||||
|     /** | ||||
|      * 批量删除${functionName} | ||||
|      *  | ||||
|      * @param ${pkColumn.javaField}s 需要删除的数据ID | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int delete${ClassName}ByIds(${pkColumn.javaType}[] ${pkColumn.javaField}s); | ||||
| } | ||||
							
								
								
									
										61
									
								
								ruoyi-generator/src/main/resources/vm/java/service.java.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								ruoyi-generator/src/main/resources/vm/java/service.java.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | ||||
| package ${packageName}.service; | ||||
|  | ||||
| import java.util.List; | ||||
| import ${packageName}.domain.${ClassName}; | ||||
|  | ||||
| /** | ||||
|  * ${functionName}Service接口 | ||||
|  *  | ||||
|  * @author ${author} | ||||
|  * @date ${datetime} | ||||
|  */ | ||||
| public interface I${ClassName}Service  | ||||
| { | ||||
|     /** | ||||
|      * 查询${functionName} | ||||
|      *  | ||||
|      * @param ${pkColumn.javaField} ${functionName}ID | ||||
|      * @return ${functionName} | ||||
|      */ | ||||
|     public ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); | ||||
|  | ||||
|     /** | ||||
|      * 查询${functionName}列表 | ||||
|      *  | ||||
|      * @param ${className} ${functionName} | ||||
|      * @return ${functionName}集合 | ||||
|      */ | ||||
|     public List<${ClassName}> select${ClassName}List(${ClassName} ${className}); | ||||
|  | ||||
|     /** | ||||
|      * 新增${functionName} | ||||
|      *  | ||||
|      * @param ${className} ${functionName} | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int insert${ClassName}(${ClassName} ${className}); | ||||
|  | ||||
|     /** | ||||
|      * 修改${functionName} | ||||
|      *  | ||||
|      * @param ${className} ${functionName} | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int update${ClassName}(${ClassName} ${className}); | ||||
|  | ||||
|     /** | ||||
|      * 批量删除${functionName} | ||||
|      *  | ||||
|      * @param ${pkColumn.javaField}s 需要删除的${functionName}ID | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int delete${ClassName}ByIds(${pkColumn.javaType}[] ${pkColumn.javaField}s); | ||||
|  | ||||
|     /** | ||||
|      * 删除${functionName}信息 | ||||
|      *  | ||||
|      * @param ${pkColumn.javaField} ${functionName}ID | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}); | ||||
| } | ||||
							
								
								
									
										109
									
								
								ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,109 @@ | ||||
| package ${packageName}.service.impl; | ||||
|  | ||||
| import java.util.List; | ||||
| #foreach ($column in $columns) | ||||
| #if($column.javaField == 'createTime' || $column.javaField == 'updateTime') | ||||
| import com.ruoyi.common.utils.DateUtils; | ||||
| #break | ||||
| #end | ||||
| #end | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | ||||
| import ${packageName}.mapper.${ClassName}Mapper; | ||||
| import ${packageName}.domain.${ClassName}; | ||||
| import ${packageName}.service.I${ClassName}Service; | ||||
|  | ||||
| /** | ||||
|  * ${functionName}Service业务层处理 | ||||
|  *  | ||||
|  * @author ${author} | ||||
|  * @date ${datetime} | ||||
|  */ | ||||
| @Service | ||||
| public class ${ClassName}ServiceImpl implements I${ClassName}Service  | ||||
| { | ||||
|     @Autowired | ||||
|     private ${ClassName}Mapper ${className}Mapper; | ||||
|  | ||||
|     /** | ||||
|      * 查询${functionName} | ||||
|      *  | ||||
|      * @param ${pkColumn.javaField} ${functionName}ID | ||||
|      * @return ${functionName} | ||||
|      */ | ||||
|     @Override | ||||
|     public ${ClassName} select${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}) | ||||
|     { | ||||
|         return ${className}Mapper.select${ClassName}ById(${pkColumn.javaField}); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 查询${functionName}列表 | ||||
|      *  | ||||
|      * @param ${className} ${functionName} | ||||
|      * @return ${functionName} | ||||
|      */ | ||||
|     @Override | ||||
|     public List<${ClassName}> select${ClassName}List(${ClassName} ${className}) | ||||
|     { | ||||
|         return ${className}Mapper.select${ClassName}List(${className}); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 新增${functionName} | ||||
|      *  | ||||
|      * @param ${className} ${functionName} | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     @Override | ||||
|     public int insert${ClassName}(${ClassName} ${className}) | ||||
|     { | ||||
| #foreach ($column in $columns) | ||||
| #if($column.javaField == 'createTime') | ||||
|         ${className}.setCreateTime(DateUtils.getNowDate()); | ||||
| #end | ||||
| #end | ||||
|         return ${className}Mapper.insert${ClassName}(${className}); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 修改${functionName} | ||||
|      *  | ||||
|      * @param ${className} ${functionName} | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     @Override | ||||
|     public int update${ClassName}(${ClassName} ${className}) | ||||
|     { | ||||
| #foreach ($column in $columns) | ||||
| #if($column.javaField == 'updateTime') | ||||
|         ${className}.setUpdateTime(DateUtils.getNowDate()); | ||||
| #end | ||||
| #end | ||||
|         return ${className}Mapper.update${ClassName}(${className}); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 批量删除${functionName} | ||||
|      *  | ||||
|      * @param ${pkColumn.javaField}s 需要删除的${functionName}ID | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     @Override | ||||
|     public int delete${ClassName}ByIds(${pkColumn.javaType}[] ${pkColumn.javaField}s) | ||||
|     { | ||||
|         return ${className}Mapper.delete${ClassName}ByIds(${pkColumn.javaField}s); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 删除${functionName}信息 | ||||
|      *  | ||||
|      * @param ${pkColumn.javaField} ${functionName}ID | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     @Override | ||||
|     public int delete${ClassName}ById(${pkColumn.javaType} ${pkColumn.javaField}) | ||||
|     { | ||||
|         return ${className}Mapper.delete${ClassName}ById(${pkColumn.javaField}); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										53
									
								
								ruoyi-generator/src/main/resources/vm/js/api.js.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								ruoyi-generator/src/main/resources/vm/js/api.js.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| import request from '@/utils/request' | ||||
|  | ||||
| // 查询${functionName}列表 | ||||
| export function list${BusinessName}(query) { | ||||
|   return request({ | ||||
|     url: '/${moduleName}/${businessName}/list', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 查询${functionName}详细 | ||||
| export function get${BusinessName}(${pkColumn.javaField}) { | ||||
|   return request({ | ||||
|     url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 新增${functionName} | ||||
| export function add${BusinessName}(data) { | ||||
|   return request({ | ||||
|     url: '/${moduleName}/${businessName}', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 修改${functionName} | ||||
| export function update${BusinessName}(data) { | ||||
|   return request({ | ||||
|     url: '/${moduleName}/${businessName}', | ||||
|     method: 'put', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 删除${functionName} | ||||
| export function del${BusinessName}(${pkColumn.javaField}) { | ||||
|   return request({ | ||||
|     url: '/${moduleName}/${businessName}/' + ${pkColumn.javaField}, | ||||
|     method: 'delete' | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 导出${functionName} | ||||
| export function export${BusinessName}(query) { | ||||
|   return request({ | ||||
|     url: '/${moduleName}/${businessName}/export', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										22
									
								
								ruoyi-generator/src/main/resources/vm/sql/sql.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								ruoyi-generator/src/main/resources/vm/sql/sql.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| -- 菜单 SQL | ||||
| insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) | ||||
| values('${functionName}', '3', '1', '${businessName}', '${moduleName}/${businessName}/index', 1, 'C', '0', '0', '${permissionPrefix}:list', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '${functionName}菜单'); | ||||
|  | ||||
| -- 按钮父菜单ID | ||||
| SELECT @parentId := LAST_INSERT_ID(); | ||||
|  | ||||
| -- 按钮 SQL | ||||
| insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) | ||||
| values('${functionName}查询', @parentId, '1',  '#', '', 1,  'F', '0',  '0', '${permissionPrefix}:query',        '#', 'admin', '2018-03-01', 'ry', '2018-03-01', ''); | ||||
|  | ||||
| insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) | ||||
| values('${functionName}新增', @parentId, '2',  '#', '', 1,  'F', '0',  '0', '${permissionPrefix}:add',          '#', 'admin', '2018-03-01', 'ry', '2018-03-01', ''); | ||||
|  | ||||
| insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) | ||||
| values('${functionName}修改', @parentId, '3',  '#', '', 1,  'F', '0',  '0', '${permissionPrefix}:edit',         '#', 'admin', '2018-03-01', 'ry', '2018-03-01', ''); | ||||
|  | ||||
| insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) | ||||
| values('${functionName}删除', @parentId, '4',  '#', '', 1,  'F', '0',  '0', '${permissionPrefix}:remove',       '#', 'admin', '2018-03-01', 'ry', '2018-03-01', ''); | ||||
|  | ||||
| insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) | ||||
| values('${functionName}导出', @parentId, '5',  '#', '', 1,  'F', '0',  '0', '${permissionPrefix}:export',       '#', 'admin', '2018-03-01', 'ry', '2018-03-01', ''); | ||||
							
								
								
									
										407
									
								
								ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										407
									
								
								ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,407 @@ | ||||
| <template> | ||||
|   <div class="app-container"> | ||||
|     <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> | ||||
| #foreach($column in $columns) | ||||
| #if($column.query) | ||||
| #set($dictType=$column.dictType) | ||||
| #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #if($column.htmlType == "input") | ||||
|       <el-form-item label="${comment}" prop="${column.javaField}"> | ||||
|         <el-input | ||||
|           v-model="queryParams.${column.javaField}" | ||||
|           placeholder="请输入${comment}" | ||||
|           clearable | ||||
|           size="small" | ||||
|           @keyup.enter.native="handleQuery" | ||||
|         /> | ||||
|       </el-form-item> | ||||
| #elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType) | ||||
|       <el-form-item label="${comment}" prop="${column.javaField}"> | ||||
|         <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable size="small"> | ||||
|           <el-option | ||||
|             v-for="dict in ${column.javaField}Options" | ||||
|             :key="dict.dictValue" | ||||
|             :label="dict.dictLabel" | ||||
|             :value="dict.dictValue" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
| #elseif(($column.htmlType == "select" || $column.htmlType == "radio") && $dictType) | ||||
|       <el-form-item label="${comment}" prop="${column.javaField}"> | ||||
|         <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable size="small"> | ||||
|           <el-option label="请选择字典生成" value="" /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
| #elseif($column.htmlType == "datetime") | ||||
|       <el-form-item label="${comment}" prop="${column.javaField}"> | ||||
|         <el-date-picker clearable size="small" style="width: 200px" | ||||
|           v-model="queryParams.${column.javaField}" | ||||
|           type="date" | ||||
|           value-format="yyyy-MM-dd" | ||||
|           placeholder="选择${comment}"> | ||||
|         </el-date-picker> | ||||
|       </el-form-item> | ||||
| #end | ||||
| #end | ||||
| #end | ||||
|       <el-form-item> | ||||
|         <el-button | ||||
|           class="filter-item" | ||||
|           type="primary" | ||||
|           icon="el-icon-search" | ||||
|           size="mini" | ||||
|           @click="handleQuery" | ||||
|         >搜索</el-button> | ||||
|         <el-button | ||||
|           class="filter-item" | ||||
|           type="primary" | ||||
|           icon="el-icon-plus" | ||||
|           size="mini" | ||||
|           @click="handleAdd" | ||||
|           v-hasPermi="['${moduleName}:${businessName}:add']" | ||||
|         >新增</el-button> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|  | ||||
|     <el-table | ||||
|       v-loading="loading" | ||||
|       :data="${businessName}List" | ||||
|       row-key="${treeCode}" | ||||
|       default-expand-all | ||||
|       :tree-props="{children: 'children', hasChildren: 'hasChildren'}" | ||||
|     > | ||||
| #foreach($column in $columns) | ||||
| #set($javaField=$column.javaField) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #if($column.pk) | ||||
| #elseif($column.list && $column.htmlType == "datetime") | ||||
|       <el-table-column label="${comment}" align="center" prop="${javaField}" width="180"> | ||||
|         <template slot-scope="scope"> | ||||
|           <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span> | ||||
|         </template> | ||||
|       </el-table-column> | ||||
| #elseif($column.list && "" != $column.dictType) | ||||
|       <el-table-column label="${comment}" align="center" prop="${javaField}" :formatter="${javaField}Format" /> | ||||
| #elseif($column.list && "" != $javaField) | ||||
|       <el-table-column label="${comment}" align="center" prop="${javaField}" /> | ||||
| #end | ||||
| #end | ||||
|       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||
|         <template slot-scope="scope"> | ||||
|           <el-button | ||||
|             size="mini" | ||||
|             type="text" | ||||
|             icon="el-icon-edit" | ||||
|             @click="handleUpdate(scope.row)" | ||||
|             v-hasPermi="['${moduleName}:${businessName}:edit']" | ||||
|           >修改</el-button> | ||||
|           <el-button | ||||
|             size="mini" | ||||
|             type="text" | ||||
|             icon="el-icon-delete" | ||||
|             @click="handleDelete(scope.row)" | ||||
|             v-hasPermi="['${moduleName}:${businessName}:remove']" | ||||
|           >删除</el-button> | ||||
|         </template> | ||||
|       </el-table-column> | ||||
|     </el-table> | ||||
|  | ||||
|     <!-- 添加或修改${functionName}对话框 --> | ||||
|     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> | ||||
|       <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | ||||
| #foreach($column in $columns) | ||||
| #set($field=$column.javaField) | ||||
| #if($column.insert && !$column.pk) | ||||
| #if(($column.usableColumn) || (!$column.superColumn)) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #set($dictType=$column.dictType) | ||||
| #if("" != $treeParentCode && $column.javaField == $treeParentCode) | ||||
|         <el-form-item label="${comment}" prop="${treeParentCode}"> | ||||
|           <treeselect v-model="form.${treeParentCode}" :options="${businessName}Options" :normalizer="normalizer" placeholder="请选择${comment}" /> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "input") | ||||
|         <el-form-item label="${comment}" prop="${field}"> | ||||
|           <el-input v-model="form.${field}" placeholder="请输入${comment}" /> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "select" && "" != $dictType) | ||||
|         <el-form-item label="${comment}"> | ||||
|           <el-select v-model="form.${field}" placeholder="请选择${comment}"> | ||||
|             <el-option | ||||
|               v-for="dict in ${field}Options" | ||||
|               :key="dict.dictValue" | ||||
|               :label="dict.dictLabel" | ||||
|               #if($column.javaType == "Integer" || $column.javaType == "Long"):value="parseInt(dict.dictValue)"#else:value="dict.dictValue"#end | ||||
|  | ||||
|             ></el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "select" && $dictType) | ||||
|         <el-form-item label="${comment}"> | ||||
|           <el-select v-model="form.${field}" placeholder="请选择${comment}"> | ||||
|             <el-option label="请选择字典生成" value="" /> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "radio" && "" != $dictType) | ||||
|         <el-form-item label="${comment}"> | ||||
|           <el-radio-group v-model="form.${field}"> | ||||
|             <el-radio | ||||
|               v-for="dict in ${field}Options" | ||||
|               :key="dict.dictValue" | ||||
|               #if($column.javaType == "Integer" || $column.javaType == "Long"):label="parseInt(dict.dictValue)"#else:label="dict.dictValue"#end | ||||
|  | ||||
|             >{{dict.dictLabel}}</el-radio> | ||||
|           </el-radio-group> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "radio" && $dictType) | ||||
|         <el-form-item label="${comment}"> | ||||
|           <el-radio-group v-model="form.${field}"> | ||||
|             <el-radio label="1">请选择字典生成</el-radio> | ||||
|           </el-radio-group> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "datetime") | ||||
|         <el-form-item label="${comment}" prop="${field}"> | ||||
|           <el-date-picker clearable size="small" style="width: 200px" | ||||
|             v-model="form.${field}" | ||||
|             type="date" | ||||
|             value-format="yyyy-MM-dd" | ||||
|             placeholder="选择${comment}"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "textarea") | ||||
|         <el-form-item label="${comment}" prop="${field}"> | ||||
|           <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" /> | ||||
|         </el-form-item> | ||||
| #end | ||||
| #end | ||||
| #end | ||||
| #end | ||||
|       </el-form> | ||||
|       <div slot="footer" class="dialog-footer"> | ||||
|         <el-button type="primary" @click="submitForm">确 定</el-button> | ||||
|         <el-button @click="cancel">取 消</el-button> | ||||
|       </div> | ||||
|     </el-dialog> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}"; | ||||
| import Treeselect from "@riophae/vue-treeselect"; | ||||
| import "@riophae/vue-treeselect/dist/vue-treeselect.css"; | ||||
|  | ||||
| export default { | ||||
|   name: "${BusinessName}", | ||||
|   components: { Treeselect }, | ||||
|   data() { | ||||
|     return { | ||||
|       // 遮罩层 | ||||
|       loading: true, | ||||
|       // ${functionName}表格数据 | ||||
|       ${businessName}List: [], | ||||
|       // ${functionName}树选项 | ||||
|       ${businessName}Options: [], | ||||
|       // 弹出层标题 | ||||
|       title: "", | ||||
|       // 是否显示弹出层 | ||||
|       open: false, | ||||
| #foreach ($column in $columns) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #if(${column.dictType} != '') | ||||
|       // $comment字典 | ||||
|       ${column.javaField}Options: [], | ||||
| #end | ||||
| #end | ||||
|       // 查询参数 | ||||
|       queryParams: { | ||||
| #foreach ($column in $columns) | ||||
| #if($column.query) | ||||
|         $column.javaField: undefined#if($velocityCount != $columns.size()),#end | ||||
|  | ||||
| #end | ||||
| #end | ||||
|       }, | ||||
|       // 表单参数 | ||||
|       form: {}, | ||||
|       // 表单校验 | ||||
|       rules: { | ||||
| #foreach ($column in $columns) | ||||
| #if($column.required) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #set($comment=$column.columnComment) | ||||
|         $column.javaField: [ | ||||
|           { required: true, message: "$comment不能为空", trigger: "blur" } | ||||
|         ]#if($velocityCount != $columns.size()),#end | ||||
|  | ||||
| #end | ||||
| #end | ||||
|       } | ||||
|     }; | ||||
|   }, | ||||
|   created() { | ||||
|     this.getList(); | ||||
| #foreach ($column in $columns) | ||||
| #if(${column.dictType} != '') | ||||
|     this.getDicts("${column.dictType}").then(response => { | ||||
|       this.${column.javaField}Options = response.data; | ||||
|     }); | ||||
| #end | ||||
| #end | ||||
|   }, | ||||
|   methods: { | ||||
|     /** 查询${functionName}列表 */ | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       list${BusinessName}(this.queryParams).then(response => { | ||||
|         this.${businessName}List = this.handleTree(response.data, "${treeCode}", "${treeParentCode}"); | ||||
|         this.loading = false; | ||||
|       }); | ||||
|     }, | ||||
|     /** 转换${functionName}数据结构 */ | ||||
|     normalizer(node) { | ||||
|       if (node.children && !node.children.length) { | ||||
|         delete node.children; | ||||
|       } | ||||
|       return { | ||||
|         id: node.${treeCode}, | ||||
|         label: node.${treeName}, | ||||
|         children: node.children | ||||
|       }; | ||||
|     }, | ||||
| 	/** 查询部门下拉树结构 */ | ||||
|     getTreeselect() { | ||||
|       list${BusinessName}().then(response => { | ||||
|         this.${businessName}Options = []; | ||||
|         const data = { ${treeCode}: 0, ${treeName}: '顶级节点', children: [] }; | ||||
|         data.children = this.handleTree(response.data, "${treeCode}", "${treeParentCode}"); | ||||
|         this.${businessName}Options.push(data); | ||||
|       }); | ||||
|     }, | ||||
| #foreach ($column in $columns) | ||||
| #if(${column.dictType} != '') | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
|     // $comment字典翻译 | ||||
|     ${column.javaField}Format(row, column) { | ||||
|       return this.selectDictLabel(this.${column.javaField}Options, row.${column.javaField}); | ||||
|     }, | ||||
| #end | ||||
| #end | ||||
|     // 取消按钮 | ||||
|     cancel() { | ||||
|       this.open = false; | ||||
|       this.reset(); | ||||
|     }, | ||||
|     // 表单重置 | ||||
|     reset() { | ||||
|       this.form = { | ||||
| #foreach ($column in $columns) | ||||
| #if($column.htmlType == "radio") | ||||
|         $column.javaField: "0"#if($velocityCount != $columns.size()),#end | ||||
|  | ||||
| #else | ||||
|         $column.javaField: undefined#if($velocityCount != $columns.size()),#end | ||||
|  | ||||
| #end | ||||
| #end | ||||
|       }; | ||||
|       this.resetForm("form"); | ||||
|     }, | ||||
|     /** 搜索按钮操作 */ | ||||
|     handleQuery() { | ||||
|       this.getList(); | ||||
|     }, | ||||
|     /** 重置按钮操作 */ | ||||
|     resetQuery() { | ||||
|       this.resetForm("queryForm"); | ||||
|       this.handleQuery(); | ||||
|     }, | ||||
|     /** 新增按钮操作 */ | ||||
|     handleAdd() { | ||||
|       this.reset(); | ||||
| 	  this.getTreeselect(); | ||||
|       this.open = true; | ||||
|       this.title = "添加${functionName}"; | ||||
|     }, | ||||
|     /** 修改按钮操作 */ | ||||
|     handleUpdate(row) { | ||||
|       this.reset(); | ||||
| 	  this.getTreeselect(); | ||||
|       if (row != undefined) { | ||||
|         this.form.${treeParentCode} = row.${treeCode}; | ||||
|       } | ||||
|       get${BusinessName}(row.${pkColumn.javaField}).then(response => { | ||||
|         this.form = response.data; | ||||
|         this.open = true; | ||||
|         this.title = "修改${functionName}"; | ||||
|       }); | ||||
|     }, | ||||
|     /** 提交按钮 */ | ||||
|     submitForm: function() { | ||||
|       this.#[[$]]#refs["form"].validate(valid => { | ||||
|         if (valid) { | ||||
|           if (this.form.${pkColumn.javaField} != undefined) { | ||||
|             update${BusinessName}(this.form).then(response => { | ||||
|               if (response.code === 200) { | ||||
|                 this.msgSuccess("修改成功"); | ||||
|                 this.open = false; | ||||
|                 this.getList(); | ||||
|               } | ||||
|             }); | ||||
|           } else { | ||||
|             add${BusinessName}(this.form).then(response => { | ||||
|               if (response.code === 200) { | ||||
|                 this.msgSuccess("新增成功"); | ||||
|                 this.open = false; | ||||
|                 this.getList(); | ||||
|               } | ||||
|             }); | ||||
|           } | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|     /** 删除按钮操作 */ | ||||
|     handleDelete(row) { | ||||
|       this.$confirm('是否确认删除${functionName}编号为"' + row.${pkColumn.javaField} + '"的数据项?', "警告", { | ||||
|           confirmButtonText: "确定", | ||||
|           cancelButtonText: "取消", | ||||
|           type: "warning" | ||||
|         }).then(function() { | ||||
|           return del${BusinessName}(row.${pkColumn.javaField}); | ||||
|         }).then(() => { | ||||
|           this.getList(); | ||||
|           this.msgSuccess("删除成功"); | ||||
|         }).catch(function() {}); | ||||
|     } | ||||
|   } | ||||
| }; | ||||
| </script> | ||||
							
								
								
									
										438
									
								
								ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										438
									
								
								ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,438 @@ | ||||
| <template> | ||||
|   <div class="app-container"> | ||||
|     <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> | ||||
| #foreach($column in $columns) | ||||
| #if($column.query) | ||||
| #set($dictType=$column.dictType) | ||||
| #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #if($column.htmlType == "input") | ||||
|       <el-form-item label="${comment}" prop="${column.javaField}"> | ||||
|         <el-input | ||||
|           v-model="queryParams.${column.javaField}" | ||||
|           placeholder="请输入${comment}" | ||||
|           clearable | ||||
|           size="small" | ||||
|           @keyup.enter.native="handleQuery" | ||||
|         /> | ||||
|       </el-form-item> | ||||
| #elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType) | ||||
|       <el-form-item label="${comment}" prop="${column.javaField}"> | ||||
|         <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable size="small"> | ||||
|           <el-option | ||||
|             v-for="dict in ${column.javaField}Options" | ||||
|             :key="dict.dictValue" | ||||
|             :label="dict.dictLabel" | ||||
|             :value="dict.dictValue" | ||||
|           /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
| #elseif(($column.htmlType == "select" || $column.htmlType == "radio") && $dictType) | ||||
|       <el-form-item label="${comment}" prop="${column.javaField}"> | ||||
|         <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable size="small"> | ||||
|           <el-option label="请选择字典生成" value="" /> | ||||
|         </el-select> | ||||
|       </el-form-item> | ||||
| #elseif($column.htmlType == "datetime") | ||||
|       <el-form-item label="${comment}" prop="${column.javaField}"> | ||||
|         <el-date-picker clearable size="small" style="width: 200px" | ||||
|           v-model="queryParams.${column.javaField}" | ||||
|           type="date" | ||||
|           value-format="yyyy-MM-dd" | ||||
|           placeholder="选择${comment}"> | ||||
|         </el-date-picker> | ||||
|       </el-form-item> | ||||
| #end | ||||
| #end | ||||
| #end | ||||
|       <el-form-item> | ||||
|         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | ||||
|         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|  | ||||
|     <el-row :gutter="10" class="mb8"> | ||||
|       <el-col :span="1.5"> | ||||
|         <el-button | ||||
|           type="primary" | ||||
|           icon="el-icon-plus" | ||||
|           size="mini" | ||||
|           @click="handleAdd" | ||||
|           v-hasPermi="['${moduleName}:${businessName}:add']" | ||||
|         >新增</el-button> | ||||
|       </el-col> | ||||
|       <el-col :span="1.5"> | ||||
|         <el-button | ||||
|           type="success" | ||||
|           icon="el-icon-edit" | ||||
|           size="mini" | ||||
|           :disabled="single" | ||||
|           @click="handleUpdate" | ||||
|           v-hasPermi="['${moduleName}:${businessName}:edit']" | ||||
|         >修改</el-button> | ||||
|       </el-col> | ||||
|       <el-col :span="1.5"> | ||||
|         <el-button | ||||
|           type="danger" | ||||
|           icon="el-icon-delete" | ||||
|           size="mini" | ||||
|           :disabled="multiple" | ||||
|           @click="handleDelete" | ||||
|           v-hasPermi="['${moduleName}:${businessName}:remove']" | ||||
|         >删除</el-button> | ||||
|       </el-col> | ||||
|       <el-col :span="1.5"> | ||||
|         <el-button | ||||
|           type="warning" | ||||
|           icon="el-icon-download" | ||||
|           size="mini" | ||||
|           @click="handleExport" | ||||
|           v-hasPermi="['${moduleName}:${businessName}:export']" | ||||
|         >导出</el-button> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|  | ||||
|     <el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange"> | ||||
|       <el-table-column type="selection" width="55" align="center" /> | ||||
| #foreach($column in $columns) | ||||
| #set($javaField=$column.javaField) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #if($column.pk) | ||||
|       <el-table-column label="${comment}" align="center" prop="${javaField}" /> | ||||
| #elseif($column.list && $column.htmlType == "datetime") | ||||
|       <el-table-column label="${comment}" align="center" prop="${javaField}" width="180"> | ||||
|         <template slot-scope="scope"> | ||||
|           <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span> | ||||
|         </template> | ||||
|       </el-table-column> | ||||
| #elseif($column.list && "" != $column.dictType) | ||||
|       <el-table-column label="${comment}" align="center" prop="${javaField}" :formatter="${javaField}Format" /> | ||||
| #elseif($column.list && "" != $javaField) | ||||
|       <el-table-column label="${comment}" align="center" prop="${javaField}" /> | ||||
| #end | ||||
| #end | ||||
|       <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | ||||
|         <template slot-scope="scope"> | ||||
|           <el-button | ||||
|             size="mini" | ||||
|             type="text" | ||||
|             icon="el-icon-edit" | ||||
|             @click="handleUpdate(scope.row)" | ||||
|             v-hasPermi="['${moduleName}:${businessName}:edit']" | ||||
|           >修改</el-button> | ||||
|           <el-button | ||||
|             size="mini" | ||||
|             type="text" | ||||
|             icon="el-icon-delete" | ||||
|             @click="handleDelete(scope.row)" | ||||
|             v-hasPermi="['${moduleName}:${businessName}:remove']" | ||||
|           >删除</el-button> | ||||
|         </template> | ||||
|       </el-table-column> | ||||
|     </el-table> | ||||
|      | ||||
|     <pagination | ||||
|       v-show="total>0" | ||||
|       :total="total" | ||||
|       :page.sync="queryParams.pageNum" | ||||
|       :limit.sync="queryParams.pageSize" | ||||
|       @pagination="getList" | ||||
|     /> | ||||
|  | ||||
|     <!-- 添加或修改${functionName}对话框 --> | ||||
|     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> | ||||
|       <el-form ref="form" :model="form" :rules="rules" label-width="80px"> | ||||
| #foreach($column in $columns) | ||||
| #set($field=$column.javaField) | ||||
| #if($column.insert && !$column.pk) | ||||
| #if(($column.usableColumn) || (!$column.superColumn)) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #set($dictType=$column.dictType) | ||||
| #if($column.htmlType == "input") | ||||
|         <el-form-item label="${comment}" prop="${field}"> | ||||
|           <el-input v-model="form.${field}" placeholder="请输入${comment}" /> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "select" && "" != $dictType) | ||||
|         <el-form-item label="${comment}"> | ||||
|           <el-select v-model="form.${field}" placeholder="请选择${comment}"> | ||||
|             <el-option | ||||
|               v-for="dict in ${field}Options" | ||||
|               :key="dict.dictValue" | ||||
|               :label="dict.dictLabel" | ||||
|               #if($column.javaType == "Integer" || $column.javaType == "Long"):value="parseInt(dict.dictValue)"#else:value="dict.dictValue"#end | ||||
|  | ||||
|             ></el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "select" && $dictType) | ||||
|         <el-form-item label="${comment}"> | ||||
|           <el-select v-model="form.${field}" placeholder="请选择${comment}"> | ||||
|             <el-option label="请选择字典生成" value="" /> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "radio" && "" != $dictType) | ||||
|         <el-form-item label="${comment}"> | ||||
|           <el-radio-group v-model="form.${field}"> | ||||
|             <el-radio | ||||
|               v-for="dict in ${field}Options" | ||||
|               :key="dict.dictValue" | ||||
|               #if($column.javaType == "Integer" || $column.javaType == "Long"):label="parseInt(dict.dictValue)"#else:label="dict.dictValue"#end | ||||
|  | ||||
|             >{{dict.dictLabel}}</el-radio> | ||||
|           </el-radio-group> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "radio" && $dictType) | ||||
|         <el-form-item label="${comment}"> | ||||
|           <el-radio-group v-model="form.${field}"> | ||||
|             <el-radio label="1">请选择字典生成</el-radio> | ||||
|           </el-radio-group> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "datetime") | ||||
|         <el-form-item label="${comment}" prop="${field}"> | ||||
|           <el-date-picker clearable size="small" style="width: 200px" | ||||
|             v-model="form.${field}" | ||||
|             type="date" | ||||
|             value-format="yyyy-MM-dd" | ||||
|             placeholder="选择${comment}"> | ||||
|           </el-date-picker> | ||||
|         </el-form-item> | ||||
| #elseif($column.htmlType == "textarea") | ||||
|         <el-form-item label="${comment}" prop="${field}"> | ||||
|           <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" /> | ||||
|         </el-form-item> | ||||
| #end | ||||
| #end | ||||
| #end | ||||
| #end | ||||
|       </el-form> | ||||
|       <div slot="footer" class="dialog-footer"> | ||||
|         <el-button type="primary" @click="submitForm">确 定</el-button> | ||||
|         <el-button @click="cancel">取 消</el-button> | ||||
|       </div> | ||||
|     </el-dialog> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName}, export${BusinessName} } from "@/api/${moduleName}/${businessName}"; | ||||
|  | ||||
| export default { | ||||
|   name: "${BusinessName}", | ||||
|   data() { | ||||
|     return { | ||||
|       // 遮罩层 | ||||
|       loading: true, | ||||
|       // 选中数组 | ||||
|       ids: [], | ||||
|       // 非单个禁用 | ||||
|       single: true, | ||||
|       // 非多个禁用 | ||||
|       multiple: true, | ||||
|       // 总条数 | ||||
|       total: 0, | ||||
|       // ${functionName}表格数据 | ||||
|       ${businessName}List: [], | ||||
|       // 弹出层标题 | ||||
|       title: "", | ||||
|       // 是否显示弹出层 | ||||
|       open: false, | ||||
| #foreach ($column in $columns) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #if(${column.dictType} != '') | ||||
|       // $comment字典 | ||||
|       ${column.javaField}Options: [], | ||||
| #end | ||||
| #end | ||||
|       // 查询参数 | ||||
|       queryParams: { | ||||
|         pageNum: 1, | ||||
|         pageSize: 10, | ||||
| #foreach ($column in $columns) | ||||
| #if($column.query) | ||||
|         $column.javaField: undefined#if($velocityCount != $columns.size()),#end | ||||
|  | ||||
| #end | ||||
| #end | ||||
|       }, | ||||
|       // 表单参数 | ||||
|       form: {}, | ||||
|       // 表单校验 | ||||
|       rules: { | ||||
| #foreach ($column in $columns) | ||||
| #if($column.required) | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
| #set($comment=$column.columnComment) | ||||
|         $column.javaField: [ | ||||
|           { required: true, message: "$comment不能为空", trigger: "blur" } | ||||
|         ]#if($velocityCount != $columns.size()),#end | ||||
|  | ||||
| #end | ||||
| #end | ||||
|       } | ||||
|     }; | ||||
|   }, | ||||
|   created() { | ||||
|     this.getList(); | ||||
| #foreach ($column in $columns) | ||||
| #if(${column.dictType} != '') | ||||
|     this.getDicts("${column.dictType}").then(response => { | ||||
|       this.${column.javaField}Options = response.data; | ||||
|     }); | ||||
| #end | ||||
| #end | ||||
|   }, | ||||
|   methods: { | ||||
|     /** 查询${functionName}列表 */ | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       list${BusinessName}(this.queryParams).then(response => { | ||||
|         this.${businessName}List = response.rows; | ||||
|         this.total = response.total; | ||||
|         this.loading = false; | ||||
|       }); | ||||
|     }, | ||||
| #foreach ($column in $columns) | ||||
| #if(${column.dictType} != '') | ||||
| #set($parentheseIndex=$column.columnComment.indexOf("(")) | ||||
| #if($parentheseIndex != -1) | ||||
| #set($comment=$column.columnComment.substring(0, $parentheseIndex)) | ||||
| #else | ||||
| #set($comment=$column.columnComment) | ||||
| #end | ||||
|     // $comment字典翻译 | ||||
|     ${column.javaField}Format(row, column) { | ||||
|       return this.selectDictLabel(this.${column.javaField}Options, row.${column.javaField}); | ||||
|     }, | ||||
| #end | ||||
| #end | ||||
|     // 取消按钮 | ||||
|     cancel() { | ||||
|       this.open = false; | ||||
|       this.reset(); | ||||
|     }, | ||||
|     // 表单重置 | ||||
|     reset() { | ||||
|       this.form = { | ||||
| #foreach ($column in $columns) | ||||
| #if($column.htmlType == "radio") | ||||
|         $column.javaField: "0"#if($velocityCount != $columns.size()),#end | ||||
|  | ||||
| #else | ||||
|         $column.javaField: undefined#if($velocityCount != $columns.size()),#end | ||||
|  | ||||
| #end | ||||
| #end | ||||
|       }; | ||||
|       this.resetForm("form"); | ||||
|     }, | ||||
|     /** 搜索按钮操作 */ | ||||
|     handleQuery() { | ||||
|       this.queryParams.pageNum = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     /** 重置按钮操作 */ | ||||
|     resetQuery() { | ||||
|       this.resetForm("queryForm"); | ||||
|       this.handleQuery(); | ||||
|     }, | ||||
|     // 多选框选中数据 | ||||
|     handleSelectionChange(selection) { | ||||
|       this.ids = selection.map(item => item.${pkColumn.javaField}) | ||||
|       this.single = selection.length!=1 | ||||
|       this.multiple = !selection.length | ||||
|     }, | ||||
|     /** 新增按钮操作 */ | ||||
|     handleAdd() { | ||||
|       this.reset(); | ||||
|       this.open = true; | ||||
|       this.title = "添加${functionName}"; | ||||
|     }, | ||||
|     /** 修改按钮操作 */ | ||||
|     handleUpdate(row) { | ||||
|       this.reset(); | ||||
|       const ${pkColumn.javaField} = row.${pkColumn.javaField} || this.ids | ||||
|       get${BusinessName}(${pkColumn.javaField}).then(response => { | ||||
|         this.form = response.data; | ||||
|         this.open = true; | ||||
|         this.title = "修改${functionName}"; | ||||
|       }); | ||||
|     }, | ||||
|     /** 提交按钮 */ | ||||
|     submitForm: function() { | ||||
|       this.#[[$]]#refs["form"].validate(valid => { | ||||
|         if (valid) { | ||||
|           if (this.form.${pkColumn.javaField} != undefined) { | ||||
|             update${BusinessName}(this.form).then(response => { | ||||
|               if (response.code === 200) { | ||||
|                 this.msgSuccess("修改成功"); | ||||
|                 this.open = false; | ||||
|                 this.getList(); | ||||
|               } | ||||
|             }); | ||||
|           } else { | ||||
|             add${BusinessName}(this.form).then(response => { | ||||
|               if (response.code === 200) { | ||||
|                 this.msgSuccess("新增成功"); | ||||
|                 this.open = false; | ||||
|                 this.getList(); | ||||
|               } | ||||
|             }); | ||||
|           } | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|     /** 删除按钮操作 */ | ||||
|     handleDelete(row) { | ||||
|       const ${pkColumn.javaField}s = row.${pkColumn.javaField} || this.ids; | ||||
|       this.$confirm('是否确认删除${functionName}编号为"' + ${pkColumn.javaField}s + '"的数据项?', "警告", { | ||||
|           confirmButtonText: "确定", | ||||
|           cancelButtonText: "取消", | ||||
|           type: "warning" | ||||
|         }).then(function() { | ||||
|           return del${BusinessName}(${pkColumn.javaField}s); | ||||
|         }).then(() => { | ||||
|           this.getList(); | ||||
|           this.msgSuccess("删除成功"); | ||||
|         }).catch(function() {}); | ||||
|     }, | ||||
|     /** 导出按钮操作 */ | ||||
|     handleExport() { | ||||
|       const queryParams = this.queryParams; | ||||
|       this.$confirm('是否确认导出所有${functionName}数据项?', "警告", { | ||||
|           confirmButtonText: "确定", | ||||
|           cancelButtonText: "取消", | ||||
|           type: "warning" | ||||
|         }).then(function() { | ||||
|           return export${BusinessName}(queryParams); | ||||
|         }).then(response => { | ||||
|           this.download(response.msg); | ||||
|         }).catch(function() {}); | ||||
|     } | ||||
|   } | ||||
| }; | ||||
| </script> | ||||
							
								
								
									
										95
									
								
								ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,95 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" ?> | ||||
| <!DOCTYPE mapper | ||||
| PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||||
| "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||||
| <mapper namespace="${packageName}.mapper.${ClassName}Mapper"> | ||||
|      | ||||
|     <resultMap type="${ClassName}" id="${ClassName}Result"> | ||||
| #foreach ($column in $columns) | ||||
|         <result property="${column.javaField}"    column="${column.columnName}"    /> | ||||
| #end | ||||
|     </resultMap> | ||||
|  | ||||
|     <sql id="select${ClassName}Vo"> | ||||
|         select#foreach($column in $columns) $column.columnName#if($velocityCount != $columns.size()),#end#end from ${tableName} | ||||
|     </sql> | ||||
|  | ||||
|     <select id="select${ClassName}List" parameterType="${ClassName}" resultMap="${ClassName}Result"> | ||||
|         <include refid="select${ClassName}Vo"/> | ||||
|         <where>   | ||||
| #foreach($column in $columns) | ||||
| #set($queryType=$column.queryType) | ||||
| #set($javaField=$column.javaField) | ||||
| #set($javaType=$column.javaType) | ||||
| #set($columnName=$column.columnName) | ||||
| #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) | ||||
| #if($column.query) | ||||
| #if($column.queryType == "EQ") | ||||
|             <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName = #{$javaField}</if> | ||||
| #elseif($queryType == "NE") | ||||
|             <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName != #{$javaField}</if> | ||||
| #elseif($queryType == "GT") | ||||
|             <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName > #{$javaField}</if> | ||||
| #elseif($queryType == "GTE") | ||||
|             <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName >= #{$javaField}</if> | ||||
| #elseif($queryType == "LT") | ||||
|             <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName < #{$javaField}</if> | ||||
| #elseif($queryType == "LTE") | ||||
|             <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName <= #{$javaField}</if> | ||||
| #elseif($queryType == "LIKE") | ||||
|             <if test="$javaField != null #if($javaType == 'String' ) and $javaField.trim() != ''#end"> and $columnName like concat('%', #{$javaField}, '%')</if> | ||||
| #elseif($queryType == "BETWEEN") | ||||
|             <if test="params.begin$AttrName != null and params.begin$AttrName != '' and params.end$AttrName != null and params.end$AttrName != ''"> and $columnName between #{params.begin$AttrName} and #{params.end$AttrName}</if> | ||||
| #end | ||||
| #end | ||||
| #end | ||||
|         </where> | ||||
|     </select> | ||||
|      | ||||
|     <select id="select${ClassName}ById" parameterType="${pkColumn.javaType}" resultMap="${ClassName}Result"> | ||||
|         <include refid="select${ClassName}Vo"/> | ||||
|         where ${pkColumn.columnName} = #{${pkColumn.javaField}} | ||||
|     </select> | ||||
|          | ||||
|     <insert id="insert${ClassName}" parameterType="${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end> | ||||
|         insert into ${tableName} | ||||
|         <trim prefix="(" suffix=")" suffixOverrides=","> | ||||
| #foreach($column in $columns) | ||||
| #if($column.columnName != $pkColumn.columnName || !$pkColumn.increment) | ||||
|             <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName,</if> | ||||
| #end | ||||
| #end | ||||
|          </trim> | ||||
|         <trim prefix="values (" suffix=")" suffixOverrides=","> | ||||
| #foreach($column in $columns) | ||||
| #if($column.columnName != $pkColumn.columnName || !$pkColumn.increment) | ||||
|             <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">#{$column.javaField},</if> | ||||
| #end | ||||
| #end | ||||
|          </trim> | ||||
|     </insert> | ||||
|  | ||||
|     <update id="update${ClassName}" parameterType="${ClassName}"> | ||||
|         update ${tableName} | ||||
|         <trim prefix="SET" suffixOverrides=","> | ||||
| #foreach($column in $columns) | ||||
| #if($column.columnName != $pkColumn.columnName) | ||||
|             <if test="$column.javaField != null#if($column.javaType == 'String' && $column.required) and $column.javaField != ''#end">$column.columnName = #{$column.javaField},</if> | ||||
| #end | ||||
| #end | ||||
|         </trim> | ||||
|         where ${pkColumn.columnName} = #{${pkColumn.javaField}} | ||||
|     </update> | ||||
|  | ||||
|     <delete id="delete${ClassName}ById" parameterType="${pkColumn.javaType}"> | ||||
|         delete from ${tableName} where ${pkColumn.columnName} = #{${pkColumn.javaField}} | ||||
|     </delete> | ||||
|  | ||||
|     <delete id="delete${ClassName}ByIds" parameterType="String"> | ||||
|         delete from ${tableName} where ${pkColumn.columnName} in  | ||||
|         <foreach item="${pkColumn.javaField}" collection="array" open="(" separator="," close=")"> | ||||
|             #{${pkColumn.javaField}} | ||||
|         </foreach> | ||||
|     </delete> | ||||
|      | ||||
| </mapper> | ||||
		Reference in New Issue
	
	Block a user