Browse Source

class文件删除

liangpeile 1 year ago
parent
commit
d57887e8d1
100 changed files with 0 additions and 17469 deletions
  1. 0 180
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai
  2. 0 87
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai
  3. 0 17
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai
  4. 0 5
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml
  5. 0 19
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai
  6. 0 426
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei
  7. 0 267
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei
  8. 0 70
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei
  9. 0 93
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal__Style#Drawer.vuei
  10. 0 218
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei
  11. 0 61
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi
  12. 0 354
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi
  13. 0 58
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei
  14. 0 280
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai
  15. 0 76
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai
  16. 0 17
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai
  17. 0 5
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml
  18. 0 105
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai
  19. 0 84
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai
  20. 0 397
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei
  21. 0 562
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei
  22. 0 65
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei
  23. 0 235
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai
  24. 0 84
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai
  25. 0 22
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai
  26. 0 15
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml
  27. 0 201
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai
  28. 0 523
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei
  29. 0 246
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei
  30. 0 272
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei
  31. 0 82
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi
  32. 0 354
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi
  33. 0 87
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei
  34. 0 306
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai
  35. 0 75
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai
  36. 0 17
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai
  37. 0 5
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml
  38. 0 56
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai
  39. 0 445
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei
  40. 0 212
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei
  41. 0 236
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei
  42. 0 113
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi
  43. 0 601
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi
  44. 0 58
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei
  45. 0 275
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai
  46. 0 75
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai
  47. 0 17
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai
  48. 0 5
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml
  49. 0 105
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai
  50. 0 84
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai
  51. 0 504
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei
  52. 0 545
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei
  53. 0 62
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei
  54. 0 244
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei
  55. 0 80
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi
  56. 0 763
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi
  57. 0 179
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei
  58. 0 280
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai
  59. 0 75
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai
  60. 0 17
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai
  61. 0 5
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml
  62. 0 105
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai
  63. 0 84
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai
  64. 0 397
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei
  65. 0 568
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei
  66. 0 65
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei
  67. 0 218
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei
  68. 0 72
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi
  69. 0 700
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi
  70. 0 179
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei
  71. 0 271
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai
  72. 0 75
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai
  73. 0 17
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai
  74. 0 5
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml
  75. 0 105
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai
  76. 0 84
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai
  77. 0 351
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei
  78. 0 510
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei
  79. 0 62
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei
  80. 0 218
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei
  81. 0 72
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi
  82. 0 700
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi
  83. 0 183
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei
  84. 0 167
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai
  85. 0 53
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai
  86. 0 17
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai
  87. 0 5
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml
  88. 0 19
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai
  89. 0 93
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue-app/${entityName}Form.vuei
  90. 0 44
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue-app/${entityName}List.vuei
  91. 0 173
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei
  92. 0 130
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei
  93. 0 150
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal__Style#Drawer.vuei
  94. 0 152
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei
  95. 0 65
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi
  96. 0 62
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi
  97. 0 56
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue3/modules/${entityName}Modal.vuei
  98. 0 170
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one2/java/${bussiPackage}/${entityPackage}/controller/${entityPackage}/${entityName}Controller.javai
  99. 0 49
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one2/java/${bussiPackage}/${entityPackage}/entity/${entityPackage}/${entityName}.javai
  100. 0 17
      medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one2/java/${bussiPackage}/${entityPackage}/mapper/${entityPackage}/${entityName}Mapper.javai

+ 0 - 180
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai

@@ -1,180 +0,0 @@
-package ${bussiPackage}.${entityPackage}.controller;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.jeecg.common.system.base.controller.JeecgController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-<#assign bpm_flag=false>
-<#list originalColumns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-</#list>
-
- /**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Api(tags="${tableVo.ftlDescription}")
-@RestController
-@RequestMapping("/${entityPackage}/${entityName?uncap_first}")
-@Slf4j
-public class ${entityName}Controller extends JeecgController<${entityName}, I${entityName}Service> {
-	@Autowired
-	private I${entityName}Service ${entityName?uncap_first}Service;
-	
-	/**
-	 * 分页列表查询
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	//@AutoLog(value = "${tableVo.ftlDescription}-分页列表查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-分页列表查询", notes="${tableVo.ftlDescription}-分页列表查询")
-	@GetMapping(value = "/list")
-	public Result<IPage<${entityName}>> queryPageList(${entityName} ${entityName?uncap_first},
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-		Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize);
-		IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-	
-	/**
-	 *   添加
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-添加")
-	@ApiOperation(value="${tableVo.ftlDescription}-添加", notes="${tableVo.ftlDescription}-添加")
-	@PostMapping(value = "/add")
-	public Result<String> add(@RequestBody ${entityName} ${entityName?uncap_first}) {
-	    <#if bpm_flag>
-        ${entityName?uncap_first}.setBpmStatus("1");
-	    </#if>
-		${entityName?uncap_first}Service.save(${entityName?uncap_first});
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 *  编辑
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-编辑")
-	@ApiOperation(value="${tableVo.ftlDescription}-编辑", notes="${tableVo.ftlDescription}-编辑")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<String> edit(@RequestBody ${entityName} ${entityName?uncap_first}) {
-		${entityName?uncap_first}Service.updateById(${entityName?uncap_first});
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 *   通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id删除", notes="${tableVo.ftlDescription}-通过id删除")
-	@DeleteMapping(value = "/delete")
-	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-		${entityName?uncap_first}Service.removeById(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-批量删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-批量删除", notes="${tableVo.ftlDescription}-批量删除")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.${entityName?uncap_first}Service.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	//@AutoLog(value = "${tableVo.ftlDescription}-通过id查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id查询", notes="${tableVo.ftlDescription}-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<${entityName}> queryById(@RequestParam(name="id",required=true) String id) {
-		${entityName} ${entityName?uncap_first} = ${entityName?uncap_first}Service.getById(id);
-		if(${entityName?uncap_first}==null) {
-			return Result.error("未找到对应数据",null);
-		}
-		return Result.OK(${entityName?uncap_first});
-	}
-
-    /**
-    * 导出excel
-    *
-    * @param request
-    * @param ${entityName?uncap_first}
-    */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) {
-        return super.exportXls(request, ${entityName?uncap_first}, ${entityName}.class, "${tableVo.ftlDescription}");
-    }
-
-    /**
-      * 通过excel导入数据
-    *
-    * @param request
-    * @param response
-    * @return
-    */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, ${entityName}.class);
-    }
-
-}

+ 0 - 87
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai

@@ -1,87 +0,0 @@
-package ${bussiPackage}.${entityPackage}.entity;
-
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Data
-@TableName("${tableName}")
-@Accessors(chain = true)
-@EqualsAndHashCode(callSuper = false)
-@ApiModel(value="${tableName}对象", description="${tableVo.ftlDescription}")
-public class ${entityName} implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    <#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-      </#if>
-    <#elseif po.classType=='sel_tree'>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText?split(",")[2]}", dicCode = "${po.dictText?split(",")[0]}"'>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	@TableId(type = IdType.ASSIGN_ID)
-	<#else>
-  		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-  		</#if>
-      <#if list_field_dictCode?length gt 1>
-	@Dict(${list_field_dictCode?substring(2)})
-      </#if>
-  		<#--  <#if po.classType!='popup'>
-  			<#if po.dictTable?default("")?trim?length gt 1>
-  	@Dict(dicCode="${po.dictField}",dicText="${po.dictText}",dictTable="${po.dictTable}")
-  			<#elseif po.dictField?default("")?trim?length gt 1>
-  	@Dict(dicCode="${po.dictField}")
-  			</#if>
-  		</#if>-->
-    </#if>
-    <#include "/common/blob.ftl">
-	</#list>
-}

+ 0 - 17
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai

@@ -1,17 +0,0 @@
-package ${bussiPackage}.${entityPackage}.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
-
-}

+ 0 - 5
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml

@@ -1,5 +0,0 @@
-<?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="${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper">
-
-</mapper>

+ 0 - 19
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai

@@ -1,19 +0,0 @@
-package ${bussiPackage}.${entityPackage}.service.impl;
-
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-import org.springframework.stereotype.Service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Service
-public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements I${entityName}Service {
-
-}

+ 0 - 426
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei

@@ -1,426 +0,0 @@
-<template>
-  <a-card :bordered="false">
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-<#assign query_field_no=0>
-<#assign query_flag=false>
-<#assign list_need_dict=false>
-<#assign list_need_category=false>
-<#assign list_need_pca=false>
-<#assign list_need_switch=false>
-<#assign bpm_flag=false>
-
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#if query_field_no==2>
-          <template v-if="toggleSearchStatus">
-	</#if>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-	<#if po.queryMode=='single'>
-          <#if query_field_no gt 1>  </#if><a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-            <#if po.classType=='sel_search'>
-              <#if query_field_no gt 1>  </#if><j-search-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dict="${po.dictTable},${po.dictText},${po.dictField}"/>
-            <#elseif po.classType=='sel_user'>
-              <#if query_field_no gt 1>  </#if><j-select-user-by-dep placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='switch'>
-              <#if query_field_no gt 1>  </#if><j-switch placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" <#if po.dictField!= 'is_open'>:options="${po.dictField}"</#if> query></j-switch>
-            <#elseif po.classType=='sel_depart'>
-              <#if query_field_no gt 1>  </#if><j-select-depart placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='list_multi'>
-              <#if query_field_no gt 1>  </#if><j-multi-select-tag placeholder="请选择${po.filedComment}" dictCode="${query_field_dictCode?default("")}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='cat_tree'>
-              <#if query_field_no gt 1>  </#if><j-category-select placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" pcode="${po.dictField?default("")}"/>
-			<#elseif po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-            <#elseif po.classType=='pca'>
-              <#if query_field_no gt 1>  </#if><j-area-linkage type="cascader" v-model="queryParam.${po.fieldName}" placeholder="请选择省市区"/>
-            <#elseif po.classType=='popup'>
-              <#if query_field_no gt 1>  </#if><j-popup placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" code="${po.dictTable}" org-fields="${po.dictField}" dest-fields="${po.dictText}" :field="getPopupField('${po.dictText}')" :multi="${po.extendParams.popupMulti?c}"/>
-			<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-			<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-			<#if po.dictTable?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictTable},${po.dictText},${po.dictField}"/>
-			<#elseif po.dictField?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictField}"/>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	<#else>
-          <#if query_field_no gt 1>  </#if><a-col :xl="10" :lg="11" :md="12" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-			<#if po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最小值" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></a-input>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最大值" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	</#if>
-<#assign query_field_no=query_field_no+1>
-</#if>
-<#if !list_need_dict && po.fieldShowType!='popup' && po.dictField?default("")?trim?length gt 1>
-<#assign list_need_dict=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-<#if po.classType=='switch'>
-<#assign list_need_switch=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-<#t>
-<#if query_field_no gt 2>
-          </template>
-</#if>
-<#if query_flag>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-          </a-col>
-</#if>
-        </a-row>
-      </a-form>
-    </div>
-    <!-- 查询区域-END -->
-
-    <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('${tableVo.ftlDescription}')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
-      </a-upload>
-      <!-- 高级查询区域 -->
-      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </a-dropdown>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        <#if tableVo.extendParams.scroll=='1'>
-        :scroll="{x:true}"
-        </#if>
-        bordered
-        rowKey="id"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        class="j-table-force-nowrap"
-        @change="handleTableChange">
-
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-          <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <#if list_need_pca>
-        <template slot="pcaSlot" slot-scope="text">
-          <div>{{ getPcaText(text) }}</div>
-        </template>
-        </#if>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
-            下载
-          </a-button>
-        </template>
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a @click="handleDetail(record)">详情</a>
-              </a-menu-item>
-              <#if bpm_flag>
-              <a-menu-item v-if="record.bpmStatus === '1'">
-                <a @click="startProcess(record)">发起流程</a>
-              </a-menu-item>
-              </#if>
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-      </a-table>
-    </div>
-
-    <${Format.humpToShortbar(entityName)}-modal ref="modalForm" @ok="modalFormOk"></${Format.humpToShortbar(entityName)}-modal>
-  </a-card>
-</template>
-
-<script>
-
-  import '@/assets/less/TableExpand.less'
-  import { mixinDevice } from '@/utils/mixin'
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import ${entityName}Modal from './modules/${entityName}Modal'
-  <#if bpm_flag>
-  import { postAction } from '@/api/manage'
-  </#if>
-  <#if list_need_category>
-  import { loadCategoryData } from '@/api/api'
-  </#if>
-  <#if list_need_dict>
-  import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
-  </#if>
-  <#if list_need_pca>
-  import Area from '@/components/_util/Area'
-  </#if>
-
-  export default {
-    name: '${entityName}List',
-    mixins:[JeecgListMixin, mixinDevice],
-    components: {
-      ${entityName}Modal
-    },
-    data () {
-      return {
-        description: '${tableVo.ftlDescription}管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key:'rowIndex',
-            width:60,
-            align:"center",
-            customRender:function (t,r,index) {
-              return parseInt(index)+1;
-            }
-          },
-    <#assign showColNum=0>
-	<#list columns as po>
-	<#if po.isShowList =='Y' && po.fieldName !='id'>
-	<#assign showColNum=showColNum+1>
-          {
-            title:'${po.filedComment}',
-            align:"center",
-            <#if po.sort=='Y'>
-            sorter: true,
-            </#if>
-            <#if po.classType=='date'>
-            dataIndex: '${po.fieldName}',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
-            }
-            <#elseif po.fieldDbType=='Blob'>
-            dataIndex: '${po.fieldName}String'
-            <#elseif po.classType=='umeditor'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'htmlSlot'}
-            <#elseif po.classType=='pca'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'pcaSlot'}
-            <#elseif po.classType=='file'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'fileSlot'}
-            <#elseif po.classType=='image'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'imgSlot'}
-            <#elseif po.classType=='switch'>
-            dataIndex: '${po.fieldName}',
-            customRender: (text) => (text ? filterMultiDictText(this.dictOptions['${po.fieldName}'], text) : ''),
-            <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-            dataIndex: '${po.fieldName}_dictText'
-            <#elseif po.classType=='cat_tree'>
-            <#if list_need_category>
-            dataIndex: '${po.fieldName}',
-            customRender: (text) => (text ? filterMultiDictText(this.dictOptions['${po.fieldName}'], text) : '')
-            <#else>
-            dataIndex: '${po.fieldName}',
-            customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-            </#if>
-			<#else>
-            dataIndex: '${po.fieldName}'
-			</#if>
-          },
-     </#if>
-     </#list>
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            <#if tableVo.extendParams.scroll=='1'>
-            fixed:"right",
-            width:147,
-            </#if>
-            scopedSlots: { customRender: 'action' }
-          }
-        ],
-        url: {
-          list: "/${entityPackage}/${entityName?uncap_first}/list",
-          delete: "/${entityPackage}/${entityName?uncap_first}/delete",
-          deleteBatch: "/${entityPackage}/${entityName?uncap_first}/deleteBatch",
-          exportXlsUrl: "/${entityPackage}/${entityName?uncap_first}/exportXls",
-          importExcelUrl: "${entityPackage}/${entityName?uncap_first}/importExcel",
-          <#if bpm_flag>startProcess: '/act/process/extActProcess/startMutilProcess'</#if>
-        },
-        <#if bpm_flag>
-        //代码生成后需手动设置流程编码
-        flowCode: 'dev_${tableName}_001',
-        </#if>
-        dictOptions:{},
-        <#if list_need_pca>
-        pcaData:'',
-        </#if>
-        superFieldList:[],
-      }
-    },
-    created() {
-    <#if list_need_pca>
-      this.pcaData = new Area()
-    </#if>
-    <#if list_need_switch>
-    <#list columns as po>
-    <#if po.classType=='switch'>
-      <#assign switch_extend_arr=['Y','N']>
-      <#if po.dictField?default("")?contains("[")>
-        <#assign switch_extend_arr=po.dictField?eval>
-      </#if>
-      <#list switch_extend_arr as a>
-       <#if a_index == 0>
-       <#assign switch_extend_arr1=a>
-       <#else>
-       <#assign switch_extend_arr2=a>
-       </#if>
-      </#list>
-      this.$set(this.dictOptions, '${po.fieldName}', [{text:'是',value:'${switch_extend_arr1}'},{text:'否',value:'${switch_extend_arr2}'}])
-    </#if>
-    </#list>
-    </#if>
-    this.getSuperFieldList();
-    },
-    computed: {
-      importExcelUrl: function(){
-        <#noparse>return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;</#noparse>
-      },
-    },
-    methods: {
-    <#if list_need_pca>
-      getPcaText(code){
-        return this.pcaData.getText(code);
-      },
-    </#if>
-      <#if bpm_flag>
-      startProcess(record){
-        this.$confirm({
-          title:'提示',
-          content:'确认提交流程吗?',
-          onOk:()=>{
-            let params = {
-              flowCode: this.flowCode,
-              id: record.id,
-              formUrl: '${entityPackage}/modules/${entityName}Form',
-              formUrlMobile: ''
-            }
-            postAction(this.url.startProcess, params).then(res=>{
-              if(res.success){
-                this.$message.success(res.message);
-                this.loadData();
-                this.onClearSelected();
-              }else{
-                this.$message.warning(res.message);
-              }
-            }).catch((e)=>{
-              this.$message.warning('不识别的请求!');
-            })
-          }
-        })
-      },
-      </#if>
-      initDictConfig(){
-      <#list columns as po>
-      <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-        <#if po.classType=='cat_tree' && list_need_category==true>
-        loadCategoryData({code:'${po.dictField?default("")}'}).then((res) => {
-          if (res.success) {
-            this.$set(this.dictOptions, '${po.fieldName}', res.result)
-          }
-        })
-        </#if>
-      </#if>
-      </#list>
-      },
-      getSuperFieldList(){
-        <#include "/common/utils.ftl">
-        let fieldList=[];
-         <#list columns as po>
-        fieldList.push(${superQueryFieldList(po)})
-         </#list>
-        this.superFieldList = fieldList
-      }
-    }
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less';
-</style>

+ 0 - 267
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei

@@ -1,267 +0,0 @@
-<#--<#include "../../../../../../../common/utils.ftl">-->
-<#include "/common/utils.ftl">
-<template>
-  <a-spin :spinning="confirmLoading">
-    <j-form-container :disabled="formDisabled">
-      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
-        <a-row>
-<#assign form_popup = false>
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#assign form_span = 24>
-<#if tableVo.fieldRowNum==2>
-<#assign form_span = 12>
-<#elseif tableVo.fieldRowNum==3>
-<#assign form_span = 8>
-<#elseif tableVo.fieldRowNum==4>
-<#assign form_span = 6>
-</#if>
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y' && po.fieldName != 'id'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-          <a-col :span="${form_span}">
-            <a-form-model-item label="${po.filedComment}" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${autoStringSuffixForModel(po)}">
-	<#if po.classType =='date'>
-              <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}"  style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='datetime'>
-              <j-date placeholder="请选择${po.filedComment}"  v-model="model.${po.fieldName}" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='time'>
-              <j-time placeholder="请选择${po.filedComment}"  v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='popup'>
-	    <#assign form_popup=true>
-              <j-popup
-                v-model="model.${po.fieldName}"
-                field="${po.fieldName}"
-                org-fields="${po.dictField}"
-                dest-fields="${Format.underlineToHump(po.dictText)}"
-                code="${po.dictTable}"
-                :multi="${po.extendParams.popupMulti?c}"
-                @input="popupCallback"
-                <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.classType =='sel_depart'>
-              <j-select-depart v-model="model.${po.fieldName}" multi <#if po.readonly=='Y'>disabled</#if> />
-<#elseif po.classType =='switch'>
-              <j-switch v-model="model.${po.fieldName}" <#if po.dictField != 'is_open'>:options="${po.dictField}"</#if> <#if po.readonly=='Y'>disabled</#if>></j-switch>
-	<#elseif po.classType =='pca'>
-             <j-area-linkage type="cascader" v-model="model.${po.fieldName}" placeholder="请输入省市区" <#if po.readonly=='Y'>disabled</#if> />
-	<#elseif po.classType =='markdown'>
-              <j-markdown-editor v-model="model.${autoStringSuffixForModel(po)}" id="${po.fieldName}"></j-markdown-editor>
-    <#elseif po.classType =='password'>
-              <a-input-password v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='sel_user'>
-              <j-select-user-by-dep v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='textarea'>
-              <a-textarea v-model="model.${autoStringSuffixForModel(po)}" rows="4" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list' || po.classType=='radio'>
-              <j-dict-select-tag type="${po.classType}" v-model="model.${po.fieldName}" dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-              <j-multi-select-tag type="${po.classType}" v-model="model.${po.fieldName}" dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='sel_search'>
-              <j-search-select-tag v-model="model.${po.fieldName}" dict="${form_field_dictCode}" <#if po.readonly=='Y'>disabled</#if> />
-    <#elseif po.classType=='cat_tree'>
-    	<#assign form_cat_tree = true>
-              <j-category-select v-model="model.${po.fieldName}" pcode="${po.dictField?default("")}" placeholder="请选择${po.filedComment}" <#if po.dictText?default("")?trim?length gt 1>back="${dashedToCamel(po.dictText)}" @change="handleCategoryChange"</#if> <#if po.readonly=='Y'>disabled</#if>/>
-    	<#if po.dictText?default("")?trim?length gt 1>
-    	<#assign form_cat_back = "${po.dictText}">
-    	</#if>
-	<#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-              <a-input-number v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='file'>
-              <j-upload v-model="model.${po.fieldName}"  <#if po.readonly=='Y'>disabled</#if> <#if po.uploadnum??>:number=${po.uploadnum}</#if>></j-upload>
-	<#elseif po.classType=='image'>
-              <j-image-upload isMultiple <#if po.uploadnum??>:number=${po.uploadnum}</#if> v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>></j-image-upload>
-	<#elseif po.classType=='umeditor'>
-              <j-editor v-model="model.${autoStringSuffixForModel(po)}" <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.fieldDbType=='Blob'>
-              <a-input v-model="model.${autoStringSuffixForModel(po)}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>></a-input>
-		<#elseif po.classType == 'sel_tree'>
-  	          <j-tree-select
-                ref="treeSelect"
-                placeholder="请选择${po.filedComment}"
-                v-model="model.${po.fieldName}"
-                <#if po.dictText??>
-                <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-                dict="${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}"
-                <#elseif po.dictText?split(',')[1]??>
-                pidField="${po.dictText?split(',')[1]}"
-                <#elseif po.dictText?split(',')[3]??>
-                hasChildField="${po.dictText?split(',')[3]}"
-                </#if>
-                </#if>
-                pidValue="${po.dictField}"
-                <#if po.readonly=='Y'>disabled</#if>>
-              </j-tree-select>
-	<#else>
-              <a-input v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if> ></a-input>
-    </#if>
-            </a-form-model-item>
-          </a-col>
-</#if>
-</#list>
-      <#if bpm_flag>
-          <a-col v-if="showFlowSubmitButton" :span="24" style="width: 100%;text-align: center;">
-            <a-button icon="check" style="width: 126px" type="primary" @click="submitForm">提 交</a-button>
-          </a-col>
-     </#if>
-        </a-row>
-      </a-form-model>
-    </j-form-container>
-  </a-spin>
-</template>
-
-<script>
-
-  import { httpAction, getAction } from '@/api/manage'
-  import { validateDuplicateValue } from '@/utils/util'
-
-  export default {
-    name: '${entityName}Form',
-    components: {
-    },
-    props: {
-     <#if bpm_flag>
-      //流程表单data
-      formData: {
-        type: Object,
-        default: ()=>{},
-        required: false
-      },
-      //表单模式:true流程表单 false普通表单
-      formBpm: {
-        type: Boolean,
-        default: false,
-        required: false
-      },
-       </#if>
-      //表单禁用
-      disabled: {
-        type: Boolean,
-        default: false,
-        required: false
-      }
-    },
-    data () {
-      return {
-        model:{
-            <#include "/common/init/initValue.ftl">
-         },
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-        confirmLoading: false,
-        <#include "/common/validatorRulesTemplate/main.ftl">
-        url: {
-          add: "/${entityPackage}/${entityName?uncap_first}/add",
-          edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-          queryById: "/${entityPackage}/${entityName?uncap_first}/queryById"
-        }
-      }
-    },
-    computed: {
-      formDisabled(){
-       <#if bpm_flag>
-        if(this.formBpm===true){
-          if(this.formData.disabled===false){
-            return false
-          }
-          return true
-        }
-        </#if>
-        return this.disabled
-      },
-       <#if bpm_flag>
-      showFlowSubmitButton(){
-        if(this.formBpm===true){
-          if(this.formData.disabled===false){
-            return true
-          }
-        }
-        return false
-      }
-     </#if>
-    },
-    created () {
-       //备份model原始值
-      this.modelDefault = JSON.parse(JSON.stringify(this.model));
-      <#if bpm_flag>
-      //如果是流程中表单,则需要加载流程表单data
-      this.showFlowData();
-      </#if>
-    },
-    methods: {
-      add () {
-        this.edit(this.modelDefault);
-      },
-      edit (record) {
-        this.model = Object.assign({}, record);
-        this.visible = true;
-      },
-        <#if bpm_flag>
-      //渲染流程表单数据
-      showFlowData(){
-        if(this.formBpm === true){
-          let params = {id:this.formData.dataId};
-          getAction(this.url.queryById,params).then((res)=>{
-            if(res.success){
-              this.edit (res.result);
-            }
-          });
-        }
-      },
-       </#if>
-      submitForm () {
-        const that = this;
-        // 触发表单验证
-        this.$refs.form.validate(valid => {
-          if (valid) {
-            that.confirmLoading = true;
-            let httpurl = '';
-            let method = '';
-            if(!this.model.id){
-              httpurl+=this.url.add;
-              method = 'post';
-            }else{
-              httpurl+=this.url.edit;
-               method = 'put';
-            }
-            httpAction(httpurl,this.model,method).then((res)=>{
-              if(res.success){
-                that.$message.success(res.message);
-                that.$emit('ok');
-              }else{
-                that.$message.warning(res.message);
-              }
-            }).finally(() => {
-              that.confirmLoading = false;
-            })
-          }
-         
-        })
-      },
-       <#if form_popup>
-      popupCallback(value,row){
-         this.model = Object.assign(this.model, row);
-      },
-       </#if>
-      <#if form_cat_tree>
-      handleCategoryChange(value,backObj){
-         this.model = Object.assign(this.model, backObj);
-      }
-      </#if>
-    }
-  }
-</script>

+ 0 - 70
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei

@@ -1,70 +0,0 @@
-<#--<#include "../../../../../../../common/utils.ftl">-->
-<#include "/common/utils.ftl">
-<#assign modal_width = 800>
-<#if tableVo.fieldRowNum==2>
-  <#assign modal_width = 896>
-<#elseif tableVo.fieldRowNum==3>
-  <#assign modal_width = 1024>
-<#elseif tableVo.fieldRowNum==4>
-  <#assign modal_width = 1280>
-</#if>
-<template>
-  <j-modal
-    :title="title"
-    :width="width"
-    :visible="visible"
-    switchFullscreen
-    @ok="handleOk"
-    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
-    @cancel="handleCancel"
-    cancelText="关闭">
-    <${Format.humpToShortbar(entityName)}-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></${Format.humpToShortbar(entityName)}-form>
-  </j-modal>
-</template>
-
-<script>
-
-  import ${entityName}Form from './${entityName}Form'
-  export default {
-    name: '${entityName}Modal',
-    components: {
-      ${entityName}Form
-    },
-    data () {
-      return {
-        title:'',
-        width:${modal_width},
-        visible: false,
-        disableSubmit: false
-      }
-    },
-    methods: {
-      add () {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.add();
-        })
-      },
-      edit (record) {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.edit(record);
-        })
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-      },
-      handleOk () {
-        this.$refs.realForm.submitForm();
-      },
-      submitCallback(){
-        this.$emit('ok');
-        this.visible = false;
-      },
-      handleCancel () {
-        this.close()
-      }
-    }
-  }
-</script>

+ 0 - 93
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal__Style#Drawer.vuei

@@ -1,93 +0,0 @@
-<#include "/common/utils.ftl">
-<#assign modal_width = 800>
-<#if tableVo.fieldRowNum==2>
-  <#assign modal_width = 896>
-<#elseif tableVo.fieldRowNum==3>
-  <#assign modal_width = 1024>
-<#elseif tableVo.fieldRowNum==4>
-  <#assign modal_width = 1280>
-</#if>
-<template>
-  <a-drawer
-    :title="title"
-    :width="width"
-    placement="right"
-    :closable="false"
-    @close="close"
-    destroyOnClose
-    :visible="visible">
-    <${Format.humpToShortbar(entityName)}-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></${Format.humpToShortbar(entityName)}-form>
-    <div class="drawer-footer">
-      <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
-      <a-button v-if="!disableSubmit"  @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button>
-    </div>
-  </a-drawer>
-</template>
-
-<script>
-
-  import ${entityName}Form from './${entityName}Form'
-
-  export default {
-    name: '${entityName}Modal',
-    components: {
-      ${entityName}Form
-    },
-    data () {
-      return {
-        title:"操作",
-        width:${modal_width},
-        visible: false,
-        disableSubmit: false
-      }
-    },
-    methods: {
-      add () {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.add();
-        })
-      },
-      edit (record) {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.edit(record);
-        });
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-      },
-      submitCallback(){
-        this.$emit('ok');
-        this.visible = false;
-      },
-      handleOk () {
-        this.$refs.realForm.submitForm();
-      },
-      handleCancel () {
-        this.close()
-      }
-    }
-  }
-</script>
-
-<style lang="less" scoped>
-/** Button按钮间距 */
-  .ant-btn {
-    margin-left: 30px;
-    margin-bottom: 30px;
-    float: right;
-  }
-  .drawer-footer{
-    position: absolute;
-    bottom: -8px;
-    width: 100%;
-    border-top: 1px solid #e8e8e8;
-    padding: 10px 16px;
-    text-align: right;
-    left: 0;
-    background: #fff;
-    border-radius: 0 0 2px 2px;
-  }
-</style>

+ 0 - 218
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei

@@ -1,218 +0,0 @@
-<template>
-  <div>
-<#assign list_need_category=false>
-<#assign list_need_pca=false>
-<#assign bpm_flag=false>
-
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-    <!--引用表格-->
-   <BasicTable @register="registerTable" :rowSelection="rowSelection">
-     <!--插槽:table标题-->
-      <template #tableTitle>
-          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
-          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-          <a-dropdown v-if="checkedKeys.length > 0">
-              <template #overlay>
-                <a-menu>
-                  <a-menu-item key="1" @click="batchHandleDelete">
-                    <Icon icon="ant-design:delete-outlined"></Icon>
-                    删除
-                  </a-menu-item>
-                </a-menu>
-              </template>
-              <a-button>批量操作
-                <Icon icon="mdi:chevron-down"></Icon>
-              </a-button>
-        </a-dropdown>
-      </template>
-       <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
-      </template>
-      <!--字段回显插槽-->
-      <template #htmlSlot="{text}">
-         <div v-html="text"></div>
-      </template>
-      <template #fileSlot="{text}">
-         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
-      </template>
-    </BasicTable>
-    <!-- 表单区域 -->
-    <${entityName}Modal @register="registerModal" @success="handleSuccess"></${entityName}Modal>
-  </div>
-</template>
-
-<script lang="ts" name="${entityPackage}-${entityName?uncap_first}" setup>
-  import {ref, computed, unref} from 'vue';
-  import {BasicTable, useTable, TableAction} from '/@/components/Table';
-  import {useModal} from '/@/components/Modal';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import ${entityName}Modal from './components/${entityName}Modal.vue'
-  import {columns, searchFormSchema} from './${entityName?uncap_first}.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './${entityName?uncap_first}.api';
-  <#if list_need_category>
-  import { loadCategoryData } from '/@/api/common/api'
-  import { getAuthCache, setAuthCache } from '/@/utils/auth';
-  import { DB_DICT_DATA_KEY } from '/@/enums/cacheEnum';
-  </#if>
-  const checkedKeys = ref<Array<string | number>>([]);
-  //注册model
-  const [registerModal, {openModal}] = useModal();
-  //注册table数据
-  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
-      tableProps:{
-           title: '${tableVo.ftlDescription}',
-           api: list,
-           columns,
-           canResize:false,
-           formConfig: {
-              labelWidth: 120,
-              schemas: searchFormSchema,
-              autoSubmitOnEnter:true,
-              showAdvancedButton:true,
-              fieldMapToTime: [
-              <#list columns as po>
-              <#if po.isQuery=='Y'>
-              <#if po.queryMode!='single'>
-              <#if po.classType=='date'>
-                 ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD'],
-              <#elseif po.classType=='datetime'>
-                 ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD HH:mm:ss'],
-              </#if>
-              </#if>
-              </#if>
-              </#list>
-              ],
-            },
-           actionColumn: {
-               width: 120,
-            },
-      },
-       exportConfig: {
-            name:"${tableVo.ftlDescription}",
-            url: getExportUrl,
-          },
-          importConfig: {
-            url: getImportUrl
-          },
-  })
-
-  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-
-   /**
-    * 新增事件
-    */
-  function handleAdd() {
-     openModal(true, {
-       isUpdate: false,
-       showFooter: true,
-     });
-  }
-   /**
-    * 编辑事件
-    */
-  function handleEdit(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: true,
-     });
-   }
-   /**
-    * 详情
-   */
-  function handleDetail(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: false,
-     });
-   }
-   /**
-    * 删除事件
-    */
-  async function handleDelete(record) {
-     await deleteOne({id: record.id}, reload);
-   }
-   /**
-    * 批量删除事件
-    */
-  async function batchHandleDelete() {
-     await batchDelete({ids: checkedKeys.value}, reload);
-   }
-   /**
-    * 成功回调
-    */
-  function handleSuccess() {
-      reload();
-   }
-   /**
-      * 操作栏
-      */
-  function getTableAction(record){
-       return [
-         {
-           label: '编辑',
-           onClick: handleEdit.bind(null, record),
-         }
-       ]
-   }
-     /**
-        * 下拉操作栏
-        */
-  function getDropDownAction(record){
-      return [
-           {
-             label: '详情',
-             onClick: handleDetail.bind(null, record),
-           }, {
-             label: '删除',
-             popConfirm: {
-               title: '是否确认删除',
-               confirm: handleDelete.bind(null, record),
-             }
-           }
-      ]
-   }
-    <#if list_need_category>
-   /**
-    * 初始化字典配置
-   */
-    function initDictConfig(){
-     <#list columns as po>
-     <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-       <#if po.classType=='cat_tree' && list_need_category==true>
-       loadCategoryData({code:'${po.dictField?default("")}'}).then((res) => {
-         if (res) {
-             let allDictDate = getAuthCache(DB_DICT_DATA_KEY);
-             if(!allDictDate['${po.dictField?default("")}']){
-               Object.assign(allDictDate,{'${po.dictField?default("")}':res})
-             }
-             setAuthCache(DB_DICT_DATA_KEY,allDictDate)
-         }
-       })
-       </#if>
-     </#if>
-     </#list>
-   }
-   initDictConfig();
-    </#if>
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 61
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi

@@ -1,61 +0,0 @@
-import {defHttp} from '/@/utils/http/axios';
-import {Modal} from 'ant-design-vue';
-
-enum Api {
-  list = '/${entityPackage}/${entityName?uncap_first}/list',
-  save='/${entityPackage}/${entityName?uncap_first}/add',
-  edit='/${entityPackage}/${entityName?uncap_first}/edit',
-  deleteOne = '/${entityPackage}/${entityName?uncap_first}/delete',
-  deleteBatch = '/${entityPackage}/${entityName?uncap_first}/deleteBatch',
-  importExcel = '/${entityPackage}/${entityName?uncap_first}/importExcel',
-  exportXls = '/${entityPackage}/${entityName?uncap_first}/exportXls',
-}
-/**
- * 导出api
- * @param params
- */
-export const getExportUrl = Api.exportXls;
-/**
- * 导入api
- */
-export const getImportUrl = Api.importExcel;
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-
-/**
- * 删除单个
- */
-export const deleteOne = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- */
-export const batchDelete = (params, handleSuccess) => {
-  Modal.confirm({
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- */
-export const saveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
-}

+ 0 - 354
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi

@@ -1,354 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-//列表数据
-export const columns: BasicColumn[] = [
- <#list columns as po>
-   <#if po.isShowList =='Y' && po.fieldName !='id'>
-   {
-    title: '${po.filedComment}',
-    align:"center",
-    <#if po.sort=='Y'>
-    sorter: true,
-   </#if>
-    <#if po.classType=='date'>
-    dataIndex: '${po.fieldName}',
-    customRender:({text}) =>{
-      return !text?"":(text.length>10?text.substr(0,10):text)
-    },
-    <#elseif po.fieldDbType=='Blob'>
-    dataIndex: '${po.fieldName}String'
-    <#elseif po.classType=='umeditor'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'htmlSlot' },
-    <#elseif po.classType=='pca'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'pcaSlot' },//TODO 未翻译
-   <#elseif po.classType=='file'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'fileSlot' },
-   <#elseif po.classType=='image'>
-    dataIndex: '${po.fieldName}',
-    customRender:render.renderAvatar,
-   <#elseif po.classType=='switch'>
-    dataIndex: '${po.fieldName}',
-<#assign switch_extend_arr=['Y','N']>
-<#if po.dictField?default("")?contains("[")>
-<#assign switch_extend_arr=po.dictField?eval>
-</#if>
-<#list switch_extend_arr as a>
-<#if a_index == 0>
-<#assign switch_extend_arr1=a>
-<#else>
-<#assign switch_extend_arr2=a>
-</#if>
-</#list>
-    customRender:({text}) => {
-       return  render.renderSwitch(text, [{text:'是',value:'${switch_extend_arr1}'},{text:'否',value:'${switch_extend_arr2}'}])
-     },
-   <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-    dataIndex: '${po.fieldName}_dictText'
-   <#elseif po.classType=='cat_tree'>
-    dataIndex: '${po.fieldName}',
-    <#if po.dictText?default("")?trim?length == 0>
-    customRender:({text}) => {
-       return  render.renderCategoryTree(text,'${po.dictField?default("")}')
-   },
-   <#else>
-    customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-   </#if>
-   <#else>
-    dataIndex: '${po.fieldName}'
-   </#if>
-   },
-   </#if>
- </#list>
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-<#if po.queryMode=='single'>
-	{
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='sel_search'>
-      component: 'JSearchSelect',
-      componentProps:{
-         dict:"${po.dictTable},${po.dictText},${po.dictField}"
-      },
-<#elseif po.classType=='sel_user'>
-      component: 'JSelectUserByDept',
-<#elseif po.classType=='switch'>
-      component: 'JSwitch',
-      componentProps:{
-           <#if po.dictField != 'is_open'>
-           options:"${po.dictField}"
-           </#if>
-       },
- <#elseif po.classType=='sel_depart'>
-      component: 'JSelectDept',
- <#elseif po.classType=='list_multi'>
-      component: 'JMultiSelectTag',//暂无该组件
-      componentProps:{
-          dictCode:"query_field_dictCode?default("")"
-      },
- <#elseif po.classType=='cat_tree'>
-      component: 'JCategorySelect',
-      componentProps:{
-          pcode:"${po.dictField?default("")}",//back和事件未添加,暂时有问题
-      },
-<#elseif po.classType=='date'>
-      component: 'DatePicker',
-<#elseif po.classType=='datetime'>
-      component: 'DatePicker',
-      componentProps: {
-         showTime:true
-       },
-<#elseif po.classType=='pca'>
-      component: 'JAreaLinkage',
-<#elseif po.classType=='popup'>
-      component: 'JPopup',
-      componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:"${po.dictField}",
-             multi:${po.extendParams.popupMulti?c},
-         }
-     },
-<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-      component: 'JDictSelectTag',
-      componentProps:{
-       <#if po.dictTable?default("")?trim?length gt 1>
-          dictCode:"${po.dictTable},${po.dictText},${po.dictField}"
-       <#elseif po.dictField?default("")?trim?length gt 1>
-          dictCode:"${po.dictField}"
-        </#if>
-      },
-<#else>
-      component: 'Input',
-</#if>
-      colProps: {span: 6},
- 	},
-<#else>
-     {
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='date'>
-      component: 'RangePicker',
-<#elseif po.classType=='datetime'>
-      component: 'RangePicker',
-      componentProps: {
-          showTime:true
-      },
-<#else>
-      component: 'Input', //TODO 范围查询
-</#if>
-      colProps: {span: 6},
-	},
-</#if>
-</#if>
-</#list>
-<#-- 结束循环 -->
-];
-//表单数据
-export const formSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list columns as po><#rt/>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];

+ 0 - 58
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/one/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei

@@ -1,58 +0,0 @@
-<template>
-  <BasicModal v-bind="$attrs" @register="registerModal" :title="title" @ok="handleSubmit">
-      <BasicForm @register="registerForm"/>
-  </BasicModal>
-</template>
-
-<script lang="ts" setup>
-    import {ref, computed, unref} from 'vue';
-    import {BasicModal, useModalInner} from '/@/components/Modal';
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import {formSchema} from '../${entityName?uncap_first}.data';
-    import {saveOrUpdate} from '../${entityName?uncap_first}.api';
-    // Emits声明
-    const emit = defineEmits(['register','success']);
-    const isUpdate = ref(true);
-    //表单配置
-    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
-        labelWidth: 150,
-        schemas: formSchema,
-        showActionButtonGroup: false,
-    });
-    //表单赋值
-    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
-        //重置表单
-        await resetFields();
-        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
-        isUpdate.value = !!data?.isUpdate;
-        if (unref(isUpdate)) {
-            //表单赋值
-            await setFieldsValue({
-                ...data.record,
-            });
-        }
-        // 隐藏底部时禁用整个表单
-       setProps({ disabled: !data?.showFooter })
-    });
-    //设置标题
-    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
-    //表单提交事件
-    async function handleSubmit(v) {
-        try {
-            let values = await validate();
-            setModalProps({confirmLoading: true});
-            //提交表单
-            await saveOrUpdate(values, isUpdate.value);
-            //关闭弹窗
-            closeModal();
-            //刷新列表
-            emit('success');
-        } finally {
-            setModalProps({confirmLoading: false});
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 280
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai

@@ -1,280 +0,0 @@
-package ${bussiPackage}.${entityPackage}.controller;
-
-import java.io.UnsupportedEncodingException;
-import java.io.IOException;
-import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.jeecg.common.system.vo.LoginUser;
-import org.apache.shiro.SecurityUtils;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.vo.${entityName}Page;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.service.I${sub.entityName}Service;
-</#list>
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-<#assign bpm_flag=false>
-<#list originalColumns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-</#list>
-
- /**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Api(tags="${tableVo.ftlDescription}")
-@RestController
-@RequestMapping("/${entityPackage}/${entityName?uncap_first}")
-@Slf4j
-public class ${entityName}Controller {
-	@Autowired
-	private I${entityName}Service ${entityName?uncap_first}Service;
-	<#list subTables as sub>
-	@Autowired
-	private I${sub.entityName}Service ${sub.entityName?uncap_first}Service;
-	</#list>
-	
-	/**
-	 * 分页列表查询
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-分页列表查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-分页列表查询", notes="${tableVo.ftlDescription}-分页列表查询")
-	@GetMapping(value = "/list")
-	public Result<?> queryPageList(${entityName} ${entityName?uncap_first},
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-		Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize);
-		IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-	
-	/**
-	 *   添加
-	 *
-	 * @param ${entityName?uncap_first}Page
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-添加")
-	@ApiOperation(value="${tableVo.ftlDescription}-添加", notes="${tableVo.ftlDescription}-添加")
-	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody ${entityName}Page ${entityName?uncap_first}Page) {
-		${entityName} ${entityName?uncap_first} = new ${entityName}();
-		BeanUtils.copyProperties(${entityName?uncap_first}Page, ${entityName?uncap_first});
-		<#if bpm_flag>
-        ${entityName?uncap_first}.setBpmStatus("1");
-        </#if>
-		${entityName?uncap_first}Service.saveMain(${entityName?uncap_first}, <#list subTables as sub>${entityName?uncap_first}Page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 *  编辑
-	 *
-	 * @param ${entityName?uncap_first}Page
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-编辑")
-	@ApiOperation(value="${tableVo.ftlDescription}-编辑", notes="${tableVo.ftlDescription}-编辑")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody ${entityName}Page ${entityName?uncap_first}Page) {
-		${entityName} ${entityName?uncap_first} = new ${entityName}();
-		BeanUtils.copyProperties(${entityName?uncap_first}Page, ${entityName?uncap_first});
-		${entityName} ${entityName?uncap_first}Entity = ${entityName?uncap_first}Service.getById(${entityName?uncap_first}.getId());
-		if(${entityName?uncap_first}Entity==null) {
-			return Result.error("未找到对应数据");
-		}
-		${entityName?uncap_first}Service.updateMain(${entityName?uncap_first}, <#list subTables as sub>${entityName?uncap_first}Page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 *   通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id删除", notes="${tableVo.ftlDescription}-通过id删除")
-	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		${entityName?uncap_first}Service.delMain(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-批量删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-批量删除", notes="${tableVo.ftlDescription}-批量删除")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.${entityName?uncap_first}Service.delBatchMain(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id查询", notes="${tableVo.ftlDescription}-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
-		${entityName} ${entityName?uncap_first} = ${entityName?uncap_first}Service.getById(id);
-		if(${entityName?uncap_first}==null) {
-			return Result.error("未找到对应数据");
-		}
-		return Result.OK(${entityName?uncap_first});
-
-	}
-	
-	<#list subTables as sub>
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${sub.ftlDescription}通过主表ID查询")
-	@ApiOperation(value="${sub.ftlDescription}主表ID查询", notes="${sub.ftlDescription}-通主表ID查询")
-	@GetMapping(value = "/query${sub.entityName}ByMainId")
-	public Result<?> query${sub.entityName}ListByMainId(@RequestParam(name="id",required=true) String id) {
-		List<${sub.entityName}> ${sub.entityName?uncap_first}List = ${sub.entityName?uncap_first}Service.selectByMainId(id);
-		return Result.OK(${sub.entityName?uncap_first}List);
-	}
-	</#list>
-
-    /**
-    * 导出excel
-    *
-    * @param request
-    * @param ${entityName?uncap_first}
-    */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) {
-      // Step.1 组装查询条件查询数据
-      QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, request.getParameterMap());
-      LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-
-      //Step.2 获取导出数据
-      List<${entityName}> queryList = ${entityName?uncap_first}Service.list(queryWrapper);
-      // 过滤选中数据
-      String selections = request.getParameter("selections");
-      List<${entityName}> ${entityName?uncap_first}List = new ArrayList<${entityName}>();
-      if(oConvertUtils.isEmpty(selections)) {
-          ${entityName?uncap_first}List = queryList;
-      }else {
-          List<String> selectionList = Arrays.asList(selections.split(","));
-          ${entityName?uncap_first}List = queryList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
-      }
-
-      // Step.3 组装pageList
-      List<${entityName}Page> pageList = new ArrayList<${entityName}Page>();
-      for (${entityName} main : ${entityName?uncap_first}List) {
-          ${entityName}Page vo = new ${entityName}Page();
-          BeanUtils.copyProperties(main, vo);
-          <#list subTables as sub>
-          List<${sub.entityName}> ${sub.entityName?uncap_first}List = ${sub.entityName?uncap_first}Service.selectByMainId(main.getId());
-          vo.set${sub.entityName}List(${sub.entityName?uncap_first}List);
-          </#list>
-          pageList.add(vo);
-      }
-
-      // Step.4 AutoPoi 导出Excel
-      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-      mv.addObject(NormalExcelConstants.FILE_NAME, "${tableVo.ftlDescription}列表");
-      mv.addObject(NormalExcelConstants.CLASS, ${entityName}Page.class);
-      mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("${tableVo.ftlDescription}数据", "导出人:"+sysUser.getRealname(), "${tableVo.ftlDescription}"));
-      mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-      return mv;
-    }
-
-    /**
-    * 通过excel导入数据
-    *
-    * @param request
-    * @param response
-    * @return
-    */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-      Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-      for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-          MultipartFile file = entity.getValue();// 获取上传文件对象
-          ImportParams params = new ImportParams();
-          params.setTitleRows(2);
-          params.setHeadRows(1);
-          params.setNeedSave(true);
-          try {
-              List<${entityName}Page> list = ExcelImportUtil.importExcel(file.getInputStream(), ${entityName}Page.class, params);
-              for (${entityName}Page page : list) {
-                  ${entityName} po = new ${entityName}();
-                  BeanUtils.copyProperties(page, po);
-                  ${entityName?uncap_first}Service.saveMain(po, <#list subTables as sub>page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-              }
-              return Result.OK("文件导入成功!数据行数:" + list.size());
-          } catch (Exception e) {
-              log.error(e.getMessage(),e);
-              return Result.error("文件导入失败:"+e.getMessage());
-          } finally {
-              try {
-                  file.getInputStream().close();
-              } catch (IOException e) {
-                  e.printStackTrace();
-              }
-          }
-      }
-      return Result.OK("文件导入失败!");
-    }
-
-}

+ 0 - 76
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai

@@ -1,76 +0,0 @@
-package ${bussiPackage}.${entityPackage}.entity;
-
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@ApiModel(value="${tableName}对象", description="${tableVo.ftlDescription}")
-@Data
-@TableName("${tableName}")
-public class ${entityName} implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-<#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-    </#if>
-    <#elseif po.classType=='sel_tree'>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText?split(",")[2]}", dicCode = "${po.dictText?split(",")[0]}"'>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	@TableId(type = IdType.ASSIGN_ID)
-	<#else>
-		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-		</#if>
-      <#if list_field_dictCode?length gt 1>
-    @Dict(${list_field_dictCode?substring(2)})
-      </#if>
-	</#if>
-    <#-- 大字段转换 -->
-     <#include "/common/blob.ftl">
-	</#list>
-}

+ 0 - 17
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai

@@ -1,17 +0,0 @@
-package ${bussiPackage}.${entityPackage}.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
-
-}

+ 0 - 5
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml

@@ -1,5 +0,0 @@
-<?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="${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper">
-
-</mapper>

+ 0 - 105
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai

@@ -1,105 +0,0 @@
-package ${bussiPackage}.${entityPackage}.service.impl;
-
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.mapper.${sub.entityName}Mapper;
-</#list>
-import ${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import java.io.Serializable;
-import java.util.List;
-import java.util.Collection;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Service
-public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements I${entityName}Service {
-
-	@Autowired
-	private ${entityName}Mapper ${entityName?uncap_first}Mapper;
-	<#list subTables as sub>
-	@Autowired
-	private ${sub.entityName}Mapper ${sub.entityName?uncap_first}Mapper;
-	</#list>
-	
-	@Override
-	@Transactional
-	public void saveMain(${entityName} ${entityName?uncap_first}, <#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
-		${entityName?uncap_first}Mapper.insert(${entityName?uncap_first});
-		<#list subTables as sub>
-		if(${sub.entityName?uncap_first}List!=null && ${sub.entityName?uncap_first}List.size()>0) {
-			for(${sub.entityName} entity:${sub.entityName?uncap_first}List) {
-				<#list sub.foreignKeys as key>
-				//外键设置
-				<#if key?lower_case?index_of("${primaryKeyField}")!=-1>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${primaryKeyField?cap_first}());
-				<#else>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${key}());
-				</#if>
-				</#list>
-				${sub.entityName?uncap_first}Mapper.insert(entity);
-			}
-		}
-		</#list>
-	}
-
-	@Override
-	@Transactional
-	public void updateMain(${entityName} ${entityName?uncap_first},<#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
-		${entityName?uncap_first}Mapper.updateById(${entityName?uncap_first});
-		
-		//1.先删除子表数据
-		<#list subTables as sub>
-		${sub.entityName?uncap_first}Mapper.deleteByMainId(${entityName?uncap_first}.getId());
-		</#list>
-		
-		//2.子表数据重新插入
-		<#list subTables as sub>
-		if(${sub.entityName?uncap_first}List!=null && ${sub.entityName?uncap_first}List.size()>0) {
-			for(${sub.entityName} entity:${sub.entityName?uncap_first}List) {
-				<#list sub.foreignKeys as key>
-				//外键设置
-				<#if key?lower_case?index_of("${primaryKeyField}")!=-1>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${primaryKeyField?cap_first}());
-				<#else>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${key}());
-				</#if>
-				</#list>
-				${sub.entityName?uncap_first}Mapper.insert(entity);
-			}
-		}
-		</#list>
-	}
-
-	@Override
-	@Transactional
-	public void delMain(String id) {
-		<#list subTables as sub>
-		${sub.entityName?uncap_first}Mapper.deleteByMainId(id);
-		</#list>
-		${entityName?uncap_first}Mapper.deleteById(id);
-	}
-
-	@Override
-	@Transactional
-	public void delBatchMain(Collection<? extends Serializable> idList) {
-		for(Serializable id:idList) {
-			<#list subTables as sub>
-			${sub.entityName?uncap_first}Mapper.deleteByMainId(id.toString());
-			</#list>
-			${entityName?uncap_first}Mapper.deleteById(id);
-		}
-	}
-	
-}

+ 0 - 84
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai

@@ -1,84 +0,0 @@
-package ${bussiPackage}.${entityPackage}.vo;
-
-import java.util.List;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-import lombok.Data;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecgframework.poi.excel.annotation.ExcelEntity;
-import org.jeecgframework.poi.excel.annotation.ExcelCollection;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Data
-@ApiModel(value="${tableName}Page对象", description="${tableVo.ftlDescription}")
-public class ${entityName}Page {
-
-	<#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-      </#if>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	<#else>
-		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-		</#if>
-        <#if list_field_dictCode?length gt 1>
-    @Dict(${list_field_dictCode?substring(2)})
-        </#if>
-	</#if>
-	@ApiModelProperty(value = "${po.filedComment}")
-	<#if po.fieldDbType=='Blob'>
-    private java.lang.String ${po.fieldName}String;
-    <#else>
-    private ${po.fieldType} ${po.fieldName};
-    </#if>
-	</#list>
-
-	<#list subTables as sub>
-	@ExcelCollection(name="${sub.ftlDescription}")
-	@ApiModelProperty(value = "${sub.ftlDescription}")
-	private List<${sub.entityName}> ${sub.entityName?uncap_first}List;
-	</#list>
-
-}

+ 0 - 397
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei

@@ -1,397 +0,0 @@
-<template>
-  <a-card :bordered="false">
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-<#assign query_field_no=0>
-<#assign query_flag=false>
-<#assign list_need_dict=false>
-<#assign list_need_category=false>
-<#assign list_need_pca=false>
-<#assign bpm_flag=false>
-
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#if query_field_no==2>
-          <template v-if="toggleSearchStatus">
-	</#if>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-	<#if po.queryMode=='single'>
-          <#if query_field_no gt 1>  </#if><a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-            <#if po.classType=='sel_search'>
-              <#if query_field_no gt 1>  </#if><j-search-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dict="${po.dictTable},${po.dictText},${po.dictField}"/>
-            <#elseif po.classType=='sel_user'>
-              <#if query_field_no gt 1>  </#if><j-select-user-by-dep placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='sel_depart'>
-              <#if query_field_no gt 1>  </#if><j-select-depart placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='list_multi'>
-              <#if query_field_no gt 1>  </#if><j-multi-select-tag placeholder="请选择${po.filedComment}" dictCode="${query_field_dictCode?default("")}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='cat_tree'>
-              <#if query_field_no gt 1>  </#if><j-category-select placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" pcode="${po.dictField?default("")}"/>
-			<#elseif po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-            <#elseif po.classType=='pca'>
-              <#if query_field_no gt 1>  </#if><j-area-linkage type="cascader" v-model="queryParam.${po.fieldName}" placeholder="请选择省市区"/>
-            <#elseif po.classType=='popup'>
-              <#if query_field_no gt 1>  </#if><j-popup placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" code="${po.dictTable}" org-fields="${po.dictField}" dest-fields="${po.dictText}" :field="getPopupField('${po.dictText}')" :multi="${po.extendParams.popupMulti?c}"/>
-			<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-			<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-			<#if po.dictTable?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictTable},${po.dictText},${po.dictField}"/>
-			<#elseif po.dictField?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictField}"/>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	<#else>
-          <#if query_field_no gt 1>  </#if><a-col :xl="10" :lg="11" :md="12" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-			<#if po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最小值" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></a-input>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最大值" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	</#if>
-<#assign query_field_no=query_field_no+1>
-</#if>
-<#if !list_need_dict && po.fieldShowType!='popup' && po.dictField?default("")?trim?length gt 1>
-<#assign list_need_dict=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-<#t>
-<#if query_field_no gt 2>
-          </template>
-</#if>
-<#if query_flag>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-          </a-col>
-</#if>
-        </a-row>
-      </a-form>
-    </div>
-    <!-- 查询区域-END -->
-    
-    <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('${tableVo.ftlDescription}')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
-      </a-upload>
-      <!-- 高级查询区域 -->
-      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </a-dropdown>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        class="j-table-force-nowrap"
-        :scroll="{x:true}"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        @change="handleTableChange">
-
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-          <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
-            下载
-          </a-button>
-        </template>
-        <#if list_need_pca>
-        <template slot="pcaSlot" slot-scope="text">
-          <div>{{ getPcaText(text) }}</div>
-        </template>
-        </#if>
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a @click="handleDetail(record)">详情</a>
-              </a-menu-item>
-              <#if bpm_flag>
-                <a-menu-item v-if="record.bpmStatus === '1'">
-                <a @click="startProcess(record)">发起流程</a>
-              </a-menu-item>
-              </#if>
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-      </a-table>
-    </div>
-
-    <${Format.humpToShortbar(entityName)}-modal ref="modalForm" @ok="modalFormOk"/>
-  </a-card>
-</template>
-
-<script>
-
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import ${entityName}Modal from './modules/${entityName}Modal'
-  <#if list_need_category>
-  import { loadCategoryData } from '@/api/api'
-  </#if>
-  <#if list_need_dict>
-  import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
-  </#if>
-  <#if list_need_pca>
-  import Area from '@/components/_util/Area'
-  </#if>
-  import '@/assets/less/TableExpand.less'
-  <#if bpm_flag>
-  import { postAction } from '@/api/manage'
-  </#if>
-
-  export default {
-    name: "${entityName}List",
-    mixins:[JeecgListMixin],
-    components: {
-      ${entityName}Modal
-    },
-    data () {
-      return {
-        description: '${tableVo.ftlDescription}管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key:'rowIndex',
-            width:60,
-            align:"center",
-            customRender:function (t,r,index) {
-              return parseInt(index)+1;
-            }
-          },
-    <#assign showColNum=0>
-	<#list columns as po>
-	<#if po.isShowList =='Y'>
-	<#assign showColNum=showColNum+1>
-          {
-            title:'${po.filedComment}',
-            align:"center",
-            <#if po.sort=='Y'>
-            sorter: true,
-            </#if>
-            <#if po.classType=='date'>
-            dataIndex: '${po.fieldName}',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
-            }
-            <#elseif po.fieldDbType=='Blob'>
-            dataIndex: '${po.fieldName}String'
-            <#elseif po.classType=='umeditor'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'htmlSlot'}
-            <#elseif po.classType=='file'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'fileSlot'}
-            <#elseif po.classType=='pca'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'pcaSlot'}
-            <#elseif po.classType=='image'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'imgSlot'}
-            <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-            dataIndex: '${po.fieldName}_dictText'
-            <#elseif po.classType=='cat_tree'>
-            <#if list_need_category>
-            dataIndex: '${po.fieldName}',
-            customRender: (text) => (text ? filterMultiDictText(this.dictOptions['${po.fieldName}'], text) : '')
-            <#else>
-            dataIndex: '${po.fieldName}',
-            customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-            </#if>
-            <#elseif po.classType=='switch'>
-            dataIndex: '${po.fieldName}',
-            <#if po.dictField != 'is_open'>
-            customRender: (text) => (!text ? "" : (text == ${po.dictField}[0] ? "是" : "否"))
-            <#else>
-            customRender: (text) => (!text ? "" : (text == "Y" ? "是" : "否"))
-            </#if>
-			<#else>
-            dataIndex: '${po.fieldName}'
-			</#if>
-          },
-     </#if>
-     </#list>
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' },
-          }
-        ],
-        url: {
-          list: "/${entityPackage}/${entityName?uncap_first}/list",
-          delete: "/${entityPackage}/${entityName?uncap_first}/delete",
-          deleteBatch: "/${entityPackage}/${entityName?uncap_first}/deleteBatch",
-          exportXlsUrl: "/${entityPackage}/${entityName?uncap_first}/exportXls",
-          importExcelUrl: "${entityPackage}/${entityName?uncap_first}/importExcel",
-          <#if bpm_flag>startProcess: '/act/process/extActProcess/startMutilProcess'</#if>
-        },
-        <#if bpm_flag>
-        flowCode: 'dev_${tableName}_001',
-        </#if>
-        dictOptions:{},
-        superFieldList:[],
-      }
-    },
-    created() {
-      <#if list_need_pca>
-      this.pcaData = new Area()
-      </#if>
-      this.getSuperFieldList();
-    },
-    computed: {
-      importExcelUrl: function(){
-        <#noparse>return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;</#noparse>
-      }
-    },
-    methods: {
-      <#if list_need_pca>
-      getPcaText(code){
-        return this.pcaData.getText(code);
-      },
-      </#if>
-      initDictConfig(){
-      <#list columns as po>
-      <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-        <#if po.classType=='cat_tree' && list_need_category==true>
-        loadCategoryData({code:"${po.dictField?default('')}"}).then((res) => {
-          if (res.success) {
-            this.$set(this.dictOptions, '${po.fieldName}', res.result)
-          }
-        })
-        </#if>
-      </#if>  
-      </#list>
-      },
-      <#if bpm_flag>
-      startProcess(record){
-        this.$confirm({
-          title:'提示',
-          content:'确认提交流程吗?',
-          onOk:()=>{
-            let params = {
-              flowCode: this.flowCode,
-              id: record.id,
-              formUrl: '${entityPackage}/modules/${entityName}Form',
-              formUrlMobile: ''
-            }
-            postAction(this.url.startProcess, params).then(res=>{
-              if(res.success){
-                this.$message.success(res.message);
-                this.loadData();
-                this.onClearSelected();
-              }else{
-                this.$message.warning(res.message);
-              }
-            }).catch((e)=>{
-              this.$message.warning('不识别的请求!');
-            })
-          }
-        })
-      },
-      </#if>
-      getSuperFieldList(){
-        <#include "/common/utils.ftl">
-        let fieldList=[];
-         <#list columns as po>
-         fieldList.push(${superQueryFieldList(po)})
-         </#list>
-        this.superFieldList = fieldList
-      }
-    }
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less';
-</style>

+ 0 - 562
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei

@@ -1,562 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-  <a-spin :spinning="confirmLoading">
-    <j-form-container :disabled="formDisabled">
-      <!-- 主表单区域 -->
-      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
-        <a-row>
-<#assign form_popup = false>
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#assign form_span = 24>
-<#if tableVo.fieldRowNum==2>
-    <#assign form_span = 12>
-<#elseif tableVo.fieldRowNum==3>
-    <#assign form_span = 8>
-<#elseif tableVo.fieldRowNum==4>
-    <#assign form_span = 6>
-</#if>
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y' && po.fieldName != 'id'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-          <a-col :span="${form_span}" >
-            <a-form-model-item label="${po.filedComment}" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${autoStringSuffixForModel(po)}">
-	<#if po.classType =='date'>
-              <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='datetime'>
-              <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='time'>
-               <j-time placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='popup'>
-	      <#assign form_popup=true>
-              <j-popup
-                v-model="model.${po.fieldName}"
-                 field="${po.fieldName}"
-                org-fields="${po.dictField}"
-                dest-fields="${Format.underlineToHump(po.dictText)}"
-                code="${po.dictTable}"
-                :multi="${po.extendParams.popupMulti?c}"
-                @input="popupCallback"
-                <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.classType =='sel_depart'>
-              <j-select-depart v-model="model.${po.fieldName}" multi <#if po.readonly=='Y'>disabled</#if>/>
-<#elseif po.classType =='switch'>
-              <j-switch v-model="model.${po.fieldName}" <#if po.dictField != 'is_open'>:options="${po.dictField}"</#if> <#if po.readonly=='Y'>disabled</#if>></j-switch>
-	<#elseif po.classType =='pca'>
-		      <j-area-linkage type="cascader" v-model="model.${po.fieldName}" placeholder="请输入省市区" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='markdown'>
-	          <j-markdown-editor v-model="model.${autoStringSuffixForModel(po)}" id="${po.fieldName}"></j-markdown-editor>
-    <#elseif po.classType =='password'>
-	          <a-input-password v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='sel_user'>
-              <j-select-user-by-dep v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='textarea'>
-              <a-textarea v-model="model.${autoStringSuffixForModel(po)}" rows="4" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list' || po.classType=='radio'>
-              <j-dict-select-tag type="${po.classType}" v-model="model.${po.fieldName}" dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-              <j-multi-select-tag type="${po.classType}" v-model="model.${po.fieldName}" dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='sel_search'>
-              <j-search-select-tag v-model="model.${po.fieldName}" dict="${form_field_dictCode}" <#if po.readonly=='Y'>disabled</#if> />
-    <#elseif po.classType=='cat_tree'>
-         <#assign form_cat_tree = true>
-              <j-category-select v-model="model.${po.fieldName}" pcode="${po.dictField?default("")}" placeholder="请选择${po.filedComment}" <#if po.dictText?default("")?trim?length gt 1>back="${dashedToCamel(po.dictText)}" @change="handleCategoryChange"</#if> <#if po.readonly=='Y'>disabled</#if>/>
-    	<#if po.dictText?default("")?trim?length gt 1>
-    	<#assign form_cat_back = "${po.dictText}">
-    	</#if>
-	<#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-              <a-input-number v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='file'>
-              <j-upload v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if> <#if po.uploadnum??>:number=${po.uploadnum}</#if>></j-upload>
-	<#elseif po.classType=='image'>
-              <j-image-upload isMultiple <#if po.uploadnum??>:number=${po.uploadnum}</#if> v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>></j-image-upload>
-	<#elseif po.classType=='umeditor'>
-              <j-editor v-model="model.${autoStringSuffixForModel(po)}" <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.fieldDbType=='Blob'>
-              <a-input v-model="model.${autoStringSuffixForModel(po)}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>></a-input>
-		<#elseif po.classType == 'sel_tree'>
-  	          <j-tree-select
-                ref="treeSelect"
-                placeholder="请选择${po.filedComment}"
-                v-model="model.${po.fieldName}"
-                <#if po.dictText??>
-                <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-                dict="${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}"
-                <#elseif po.dictText?split(',')[1]??>
-                pidField="${po.dictText?split(',')[1]}"
-                <#elseif po.dictText?split(',')[3]??>
-                hasChildField="${po.dictText?split(',')[3]}"
-                </#if>
-                </#if>
-                pidValue="${po.dictField}"
-                <#if po.readonly=='Y'>disabled</#if>>
-              </j-tree-select>
-	<#else>
-              <a-input v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>></a-input>
-    </#if>
-            </a-form-model-item>
-          </a-col>
-</#if>
-</#list>
-        </a-row>
-      </a-form-model>
-    </j-form-container>
-      <!-- 子表单区域 -->
-    <a-tabs v-model="activeKey" @change="handleChangeTabs">
-<#list subTables as sub><#rt/>
-  <#if sub.foreignRelationType =='1'>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-        <${Format.humpToShortbar(sub.entityName)}-form ref="${sub.entityName?uncap_first}Form" @validateError="validateError" :disabled="formDisabled"></${Format.humpToShortbar(sub.entityName)}-form>
-      </a-tab-pane>
-      
-  <#else>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-        <j-editable-table
-          :ref="refKeys[${sub_index}]"
-          :loading="${sub.entityName?uncap_first}Table.loading"
-          :columns="${sub.entityName?uncap_first}Table.columns"
-          :dataSource="${sub.entityName?uncap_first}Table.dataSource"
-          :maxHeight="300"
-          :disabled="formDisabled"
-          :rowNumber="true"
-          :rowSelection="true"
-          :actionButton="true"/>
-      </a-tab-pane>
-  </#if>
-</#list>
-    </a-tabs>
-    <#if bpm_flag>
-    <a-row v-if="showFlowSubmitButton" style="text-align: center;width: 100%;margin-top: 16px;"><a-button icon="check" style="width: 126px" type="primary" @click="handleOk">提 交</a-button></a-row>
-     </#if>
-  </a-spin>
-</template>
-
-<script>
-
-  import { getAction } from '@/api/manage'
-  import { FormTypes,getRefPromise,VALIDATE_NO_PASSED } from '@/utils/JEditableTableUtil'
-  import { JEditableTableModelMixin } from '@/mixins/JEditableTableModelMixin'
-  import { validateDuplicateValue } from '@/utils/util'
-  <#list subTables as sub>
-  <#if sub.foreignRelationType =='1'>
-  import ${sub.entityName}Form from './${sub.entityName}Form.vue'
-  </#if>
-  </#list>
-
-  export default {
-    name: '${entityName}Form',
-    mixins: [JEditableTableModelMixin],
-    components: {
-    <#list subTables as sub>
-    <#if sub.foreignRelationType =='1'>
-      ${sub.entityName}Form,
-    </#if>
-    </#list>
-    },
-    data() {
-      return {
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-        model:{
-        <#include "/common/init/initValue.ftl">
-        },
-        // 新增时子表默认添加几行空数据
-        addDefaultRowNum: 1,
-        <#include "/common/validatorRulesTemplate/main.ftl">
-        refKeys: [<#list subTables as sub>'${sub.entityName?uncap_first}', </#list>],
-        <#assign hasOne2Many = false>
-        tableKeys:[<#list subTables as sub><#if sub.foreignRelationType =='0'>'${sub.entityName?uncap_first}', <#assign hasOne2Many = true></#if></#list>],
-        activeKey: '${subTables[0].entityName?uncap_first}',
-<#list subTables as sub><#rt/>
-        // ${sub.ftlDescription}
-        ${sub.entityName?uncap_first}Table: {
-          loading: false,
-          dataSource: [],
-          columns: [
-<#if sub.foreignRelationType =='0'>
-<#assign popupBackFields = "">
-
-<#-- 循环子表的列 开始 -->
-<#list sub.colums as col><#rt/>
-<#if col.isShow =='Y'>
-    <#if col.filedComment !='外键' >
-            {
-              title: '${col.filedComment}',
-              key: '${autoStringSuffixForModel(col)}',
-      <#if col.classType =='date'>
-              type: FormTypes.date,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='datetime'>
-              type: FormTypes.datetime,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif "int,decimal,double,"?contains(col.classType)>
-              type: FormTypes.inputNumber,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='list' || col.classType =='radio'>
-              type: FormTypes.select,
-              <#if col.dictTable?default("")?trim?length gt 1>
-              dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-              <#else>
-              dictCode:"${col.dictField}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='list_multi' || col.classType =='checkbox'>
-              type: FormTypes.list_multi,
-              <#if col.dictTable?default("")?trim?length gt 1>
-              dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-              <#else>
-              dictCode:"${col.dictField}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='switch'>
-              type: FormTypes.checkbox,
-              <#if col.dictField == 'is_open'>
-              customValue: ['Y', 'N'],
-              <#else>
-              customValue: ${col.dictField},
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='sel_search'>
-              type: FormTypes.sel_search,
-              <#if col.dictTable?default("")?trim?length gt 1>
-              dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-              <#else>
-              dictCode:"${col.dictField}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-        <#elseif col.classType =='sel_depart'>
-              type: FormTypes.sel_depart,
-              <#if col.extendParams.multiSelect?default(true) == false>
-              multi: false,
-              </#if>
-              <#if col.extendParams.store?default("")?trim?length gt 1>
-              store: "${col.extendParams.store}",
-              </#if>
-              <#if col.extendParams.text?default("")?trim?length gt 1>
-              text: "${col.extendParams.text}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-        <#elseif col.classType =='sel_user'>
-              type: FormTypes.sel_user,
-              <#if col.extendParams.multiSelect?default(true) == false>
-              multi: false,
-              </#if>
-              <#if col.extendParams.store?default("")?trim?length gt 1>
-              store: "${col.extendParams.store}",
-              </#if>
-              <#if col.extendParams.text?default("")?trim?length gt 1>
-              text: "${col.extendParams.text}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled: true,
-              </#if>
-      <#elseif col.classType =='image'>
-              type: FormTypes.image,
-              token:true,
-              responseName:"message",
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-              <#if col.uploadnum??>
-              number: ${col.uploadnum},
-              </#if>
-      <#elseif col.classType =='file'>
-              type: FormTypes.file,
-              token:true,
-              responseName:"message",
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-              <#if col.uploadnum??>
-              number: ${col.uploadnum},
-              </#if>
-      <#elseif col.classType =='popup'>
-        <#if popupBackFields?length gt 0>
-            <#assign popupBackFields = "${popupBackFields}"+","+"${col.dictText}">
-        <#else>
-            <#assign popupBackFields = "${col.dictText}">
-        </#if>
-              type: FormTypes.popup,
-              popupCode:"${col.dictTable}",
-              destFields:"${Format.underlineToHump(col.dictText)}",
-              orgFields:"${col.dictField}",
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.fieldDbType=='int' || col.fieldDbType=='double' || col.fieldDbType=='BigDecimal'>
-              type: FormTypes.inputNumber,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#else>
-              type: FormTypes.input,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      </#if>
-      <#if col.classType =='list_multi' || col.classType =='checkbox'>
-              width:"250px",
-      <#else>
-              width:"200px",
-      </#if>
-      <#if col.classType =='file'>
-              placeholder: '请选择文件',
-      <#else>
-              placeholder: '请输入${'$'}{title}',
-      </#if>
-      <#if col.defaultVal??>
-        <#if col.fieldDbType=="BigDecimal" || col.fieldDbType=="double" || col.fieldDbType=="int">
-              defaultValue:${col.defaultVal},
-              <#else>
-              defaultValue:"${col.defaultVal}",
-        </#if>
-      <#else>
-              defaultValue:'',
-      </#if>
-      <#-- 子表的校验 -->
-      <#assign subFieldValidType = col.fieldValidType!''>
-      <#-- 非空校验 -->
-      <#if col.nullable == 'N' || subFieldValidType == '*'>
-              validateRules: [{ required: true, message: '${'$'}{title}不能为空' }],
-      <#-- 其他情况下,只要有值就被认为是正则校验 -->
-      <#elseif subFieldValidType?length gt 0>
-        <#assign subMessage = '格式不正确'>
-        <#if subFieldValidType == 'only' >
-          <#assign subMessage = '不能重复'>
-        </#if>
-              validateRules: [{ pattern: "${subFieldValidType}", message: "${'$'}{title}${subMessage}" }],
-      </#if>
-            },
-    </#if>
-</#if>
-</#list>
-<#-- 循环子表的列 结束 -->
-
-<#-- 处理popup的隐藏列 -->
-<#if popupBackFields?length gt 0>
-<#list popupBackFields?split(",") as item>
-<#if item?length gt 0>
-<#assign tempItemFlag = true>
-
-<#list sub.colums as col>
-<#if col.isShow =='Y' && col.fieldName == item>
-<#assign tempItemFlag = false>
-</#if>
-</#list>
-<#if tempItemFlag>
-            {
-              title: '${item}',
-              key: '${item}',
-              type:"hidden"
-            },
-</#if>
-</#if>
-</#list>
-</#if>
-</#if>
-          ]
-        },
-</#list>
-        url: {
-          add: "/${entityPackage}/${entityName?uncap_first}/add",
-          edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-          queryById: "/${entityPackage}/${entityName?uncap_first}/queryById",
-<#list subTables as sub><#rt/>
-          ${sub.entityName?uncap_first}: {
-            list: '/${entityPackage}/${entityName?uncap_first}/query${sub.entityName}ByMainId'
-          },
-</#list>
-        }
-      }
-    },
-    props: {
-    <#if bpm_flag>
-      //流程表单data
-      formData: {
-        type: Object,
-        default: ()=>{},
-        required: false
-      },
-      //表单模式:false流程表单 true普通表单
-      formBpm: {
-        type: Boolean,
-        default: false,
-        required: false
-      },
-       </#if>
-      //表单禁用
-      disabled: {
-        type: Boolean,
-        default: false,
-        required: false
-      }
-    },
-    computed: {
-      formDisabled(){
-       <#if bpm_flag>
-        if(this.formBpm===true){
-          if(this.formData.disabled===false){
-            return false
-          }
-          return true
-        }
-         </#if>
-        return this.disabled
-      },
-       <#if bpm_flag>
-      showFlowSubmitButton(){
-        if(this.formBpm===true){
-          if(this.formData.disabled===false){
-            return true
-          }
-        }
-        return false
-      }
-        </#if>
-    },
-    created () {
-     <#if bpm_flag>
-      //如果是流程中表单,则需要加载流程表单data
-      this.showFlowData();
-       </#if>
-    },
-    methods: {
-      addBefore(){
-<#list subTables as sub><#rt/>
-  <#if sub.foreignRelationType =='1'>
-        this.$refs.${sub.entityName?uncap_first}Form.clearFormData()
-  <#else>
-        this.${sub.entityName?uncap_first}Table.dataSource=[]
-  </#if>
-</#list>
-      },
-      getAllTable() {
-        <#if hasOne2Many==true>
-        let values = this.tableKeys.map(key => getRefPromise(this, key))
-        return Promise.all(values)
-        <#else>
-        return new Promise(resolve => {
-          resolve([]);
-        })
-        </#if>
-      },
-      /** 调用完edit()方法之后会自动调用此方法 */
-      editAfter() {
-        this.$nextTick(() => {
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='1'>
-          this.$refs.${sub.entityName?uncap_first}Form.initFormData(this.url.${sub.entityName?uncap_first}.list,this.model.id)
-</#if>
-</#list>         
-        })
-        // 加载子表数据
-        if (this.model.id) {
-          let params = { id: this.model.id }
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='0'>
-          this.requestSubTableData(this.url.${sub.entityName?uncap_first}.list, params, this.${sub.entityName?uncap_first}Table)
-</#if>
-</#list>
-        }
-      },
-      //校验所有一对一子表表单
-      validateSubForm(allValues){
-          return new Promise((resolve,reject)=>{
-            Promise.all([
-        <#list subTables as sub><#rt/>
-          <#if sub.foreignRelationType =='1'>
-                this.$refs.${sub.entityName?uncap_first}Form.validate(${sub_index}),
-          </#if>
-        </#list>
-            ]).then(() => {
-              resolve(allValues)
-            }).catch(e => {
-              if (e.error === VALIDATE_NO_PASSED) {
-                // 如果有未通过表单验证的子表,就自动跳转到它所在的tab
-                this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
-              } else {
-                console.error(e)
-              }
-            })
-          })
-      },
-      /** 整理成formData */
-      classifyIntoFormData(allValues) {
-        let main = Object.assign(this.model, allValues.formValue)
-        return {
-          ...main, // 展开
-<#assign subManyIndex = 0>
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='0'>
-          ${sub.entityName?uncap_first}List: allValues.tablesValue[${subManyIndex}].values,
-          <#assign subManyIndex = subManyIndex+1>
-<#else>
-          ${sub.entityName?uncap_first}List: this.$refs.${sub.entityName?uncap_first}Form.getFormData(),
-</#if>
-</#list>
-        }
-      },
-        <#if bpm_flag>
-      //渲染流程表单数据
-      showFlowData(){
-        if(this.formBpm === true){
-          let params = {id:this.formData.dataId};
-          getAction(this.url.queryById,params).then((res)=>{
-            if(res.success){
-              this.edit (res.result);
-            }
-          })
-        }
-      },
-        </#if>
-      validateError(msg){
-        this.$message.error(msg)
-      },
-    <#if form_popup>
-     popupCallback(value,row){
-       this.model = Object.assign(this.model, row);
-     },
-    </#if>
-   <#if form_cat_tree>
-     handleCategoryChange(value,backObj){
-      this.model = Object.assign(this.model, backObj);
-      }
-   </#if>
-
-    }
-  }
-</script>
-
-<style scoped>
-</style>

+ 0 - 65
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei

@@ -1,65 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-  <j-modal
-    :title="title"
-    :width="1200"
-    :visible="visible"
-    :maskClosable="false"
-    switchFullscreen
-    @ok="handleOk"
-    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
-    @cancel="handleCancel">
-    <${Format.humpToShortbar(entityName)}-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"/>
-  </j-modal>
-</template>
-
-<script>
-
-  import ${entityName}Form from './${entityName}Form'
-
-  export default {
-    name: '${entityName}Modal',
-    components: {
-      ${entityName}Form
-    },
-    data() {
-      return {
-        title:'',
-        width:800,
-        visible: false,
-        disableSubmit: false
-      }
-    },
-    methods:{
-      add () {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.add();
-        })
-      },
-      edit (record) {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.edit(record);
-        })
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-      },
-      handleOk () {
-        this.$refs.realForm.handleOk();
-      },
-      submitCallback(){
-        this.$emit('ok');
-        this.visible = false;
-      },
-      handleCancel () {
-        this.close()
-      }
-    }
-  }
-</script>
-
-<style scoped>
-</style>

+ 0 - 235
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai

@@ -1,235 +0,0 @@
-package ${bussiPackage}.${entityPackage}.controller;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.jeecg.common.system.base.controller.JeecgController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-
- /**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-<#assign pidFieldName = "">
-<#list originalColumns as po>
-<#if po.fieldDbName == tableVo.extendParams.pidField>
-<#assign pidFieldName = po.fieldName>
-</#if>
-</#list>
-@Api(tags="${tableVo.ftlDescription}")
-@RestController
-@RequestMapping("/${entityPackage}/${entityName?uncap_first}")
-@Slf4j
-public class ${entityName}Controller extends JeecgController<${entityName}, I${entityName}Service>{
-	@Autowired
-	private I${entityName}Service ${entityName?uncap_first}Service;
-	
-	/**
-	 * 分页列表查询
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-分页列表查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-分页列表查询", notes="${tableVo.ftlDescription}-分页列表查询")
-	@GetMapping(value = "/rootList")
-	public Result<?> queryPageList(${entityName} ${entityName?uncap_first},
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		String hasQuery = req.getParameter("hasQuery");
-        if(hasQuery != null && "true".equals(hasQuery)){
-            QueryWrapper<${entityName}> queryWrapper =  QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-            List<${entityName}> list = ${entityName?uncap_first}Service.queryTreeListNoPage(queryWrapper);
-            IPage<${entityName}> pageList = new Page<>(1, 10, list.size());
-            pageList.setRecords(list);
-            return Result.OK(pageList);
-        }else{
-            String parentId = ${entityName?uncap_first}.get${pidFieldName?cap_first}();
-            if (oConvertUtils.isEmpty(parentId)) {
-                parentId = "0";
-            }
-            ${entityName?uncap_first}.set${pidFieldName?cap_first}(null);
-            QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-            // 使用 eq 防止模糊查询
-            queryWrapper.eq("${Format.humpToUnderline(pidFieldName)}", parentId);
-            Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize);
-            IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper);
-            return Result.OK(pageList);
-        }
-	}
-
-	 /**
-      * 获取子数据
-      * @param ${entityName?uncap_first}
-      * @param req
-      * @return
-      */
-	@AutoLog(value = "${tableVo.ftlDescription}-获取子数据")
-	@ApiOperation(value="${tableVo.ftlDescription}-获取子数据", notes="${tableVo.ftlDescription}-获取子数据")
-	@GetMapping(value = "/childList")
-	public Result<?> queryPageList(${entityName} ${entityName?uncap_first},HttpServletRequest req) {
-		QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-		List<${entityName}> list = ${entityName?uncap_first}Service.list(queryWrapper);
-		IPage<${entityName}> pageList = new Page<>(1, 10, list.size());
-        pageList.setRecords(list);
-		return Result.OK(pageList);
-	}
-
-    /**
-      * 批量查询子节点
-      * @param parentIds 父ID(多个采用半角逗号分割)
-      * @return 返回 IPage
-      * @param parentIds
-      * @return
-      */
-	@AutoLog(value = "${tableVo.ftlDescription}-批量获取子数据")
-    @ApiOperation(value="${tableVo.ftlDescription}-批量获取子数据", notes="${tableVo.ftlDescription}-批量获取子数据")
-    @GetMapping("/getChildListBatch")
-    public Result getChildListBatch(@RequestParam("parentIds") String parentIds) {
-        try {
-            QueryWrapper<${entityName}> queryWrapper = new QueryWrapper<>();
-            List<String> parentIdList = Arrays.asList(parentIds.split(","));
-            queryWrapper.in("${Format.humpToUnderline(pidFieldName)}", parentIdList);
-            List<${entityName}> list = ${entityName?uncap_first}Service.list(queryWrapper);
-            IPage<${entityName}> pageList = new Page<>(1, 10, list.size());
-            pageList.setRecords(list);
-            return Result.OK(pageList);
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            return Result.error("批量查询子节点失败:" + e.getMessage());
-        }
-    }
-	
-	/**
-	 *   添加
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-添加")
-	@ApiOperation(value="${tableVo.ftlDescription}-添加", notes="${tableVo.ftlDescription}-添加")
-	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody ${entityName} ${entityName?uncap_first}) {
-		${entityName?uncap_first}Service.add${entityName}(${entityName?uncap_first});
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 *  编辑
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-编辑")
-	@ApiOperation(value="${tableVo.ftlDescription}-编辑", notes="${tableVo.ftlDescription}-编辑")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody ${entityName} ${entityName?uncap_first}) {
-		${entityName?uncap_first}Service.update${entityName}(${entityName?uncap_first});
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 *   通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id删除", notes="${tableVo.ftlDescription}-通过id删除")
-	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		${entityName?uncap_first}Service.delete${entityName}(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-批量删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-批量删除", notes="${tableVo.ftlDescription}-批量删除")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.${entityName?uncap_first}Service.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id查询", notes="${tableVo.ftlDescription}-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
-		${entityName} ${entityName?uncap_first} = ${entityName?uncap_first}Service.getById(id);
-		if(${entityName?uncap_first}==null) {
-			return Result.error("未找到对应数据");
-		}
-		return Result.OK(${entityName?uncap_first});
-	}
-
-    /**
-    * 导出excel
-    *
-    * @param request
-    * @param ${entityName?uncap_first}
-    */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) {
-		return super.exportXls(request, ${entityName?uncap_first}, ${entityName}.class, "${tableVo.ftlDescription}");
-    }
-
-    /**
-      * 通过excel导入数据
-    *
-    * @param request
-    * @param response
-    * @return
-    */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-		return super.importExcel(request, response, ${entityName}.class);
-    }
-
-}

+ 0 - 84
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai

@@ -1,84 +0,0 @@
-package ${bussiPackage}.${entityPackage}.entity;
-
-import java.io.Serializable;
-import java.util.Date;
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import java.io.UnsupportedEncodingException;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Data
-@TableName("${tableName}")
-@ApiModel(value="${tableName}对象", description="${tableVo.ftlDescription}")
-public class ${entityName} implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-<#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-	<#-- 生成字典Code -->
-	<#assign list_field_dictCode="">
-	<#if po.classType='sel_user'>
-		<#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-	<#elseif po.classType='sel_depart'>
-		<#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-	<#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-		<#if po.dictTable?default("")?trim?length gt 1>
-			<#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-		<#elseif po.dictField?default("")?trim?length gt 1>
-			<#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-	</#if>
-	<#elseif po.classType=='sel_tree'>
-		<#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText?split(",")[2]}", dicCode = "${po.dictText?split(",")[0]}"'>
-	</#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	@TableId(type = IdType.ASSIGN_ID)
-	<#else>
-  		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-  		</#if>
-  		<#--  <#if po.classType!='popup'>
-  			<#if po.dictTable?default("")?trim?length gt 1>
-  	@Dict(dicCode="${po.dictField}",dicText="${po.dictText}",dictTable="${po.dictTable}")
-  			<#elseif po.dictField?default("")?trim?length gt 1>
-  	@Dict(dicCode="${po.dictField}")
-  			</#if>
-  		</#if>-->
-		<#if list_field_dictCode?length gt 1>
-	@Dict(${list_field_dictCode?substring(2)})
-		</#if>
-    </#if>
-	<#-- 大字段转换 -->
-	<#include "/common/blob.ftl">
-	</#list>
-}

+ 0 - 22
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai

@@ -1,22 +0,0 @@
-package ${bussiPackage}.${entityPackage}.mapper;
-
-import org.apache.ibatis.annotations.Param;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
-
-	/**
-	 * 编辑节点状态
-	 * @param id
-	 * @param status
-	 */
-	void updateTreeNodeStatus(@Param("id") String id,@Param("status") String status);
-
-}

+ 0 - 15
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml

@@ -1,15 +0,0 @@
-<#assign hasChildrenField = "">
-<#list originalColumns as po>
-<#if po.fieldDbName == tableVo.extendParams.hasChildren>
-<#assign hasChildrenField = po.fieldName>
-</#if>
-</#list>
-<?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="${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper">
-
-	<update id="updateTreeNodeStatus" parameterType="java.lang.String">
-		update ${tableName} set ${Format.humpToUnderline(hasChildrenField)} = ${r'#'}{status} where id = ${r'#'}{id}
-	</update>
-
-</mapper>

+ 0 - 201
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai

@@ -1,201 +0,0 @@
-package ${bussiPackage}.${entityPackage}.service.impl;
-
-import org.jeecg.common.exception.JeecgBootException;
-import org.jeecg.common.util.oConvertUtils;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-<#assign pidFieldName = "">
-<#assign hasChildrenField = "">
-<#list originalColumns as po>
-<#if po.fieldDbName == tableVo.extendParams.pidField>
-<#assign pidFieldName = po.fieldName>
-</#if>
-<#if po.fieldDbName == tableVo.extendParams.hasChildren>
-<#assign hasChildrenField = po.fieldName>
-</#if>
-</#list>
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Service
-public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements I${entityName}Service {
-
-	@Override
-	public void add${entityName}(${entityName} ${entityName?uncap_first}) {
-	   //新增时设置hasChild为0
-	    ${entityName?uncap_first}.set${hasChildrenField?cap_first}(I${entityName}Service.NOCHILD);
-		if(oConvertUtils.isEmpty(${entityName?uncap_first}.get${pidFieldName?cap_first}())){
-			${entityName?uncap_first}.set${pidFieldName?cap_first}(I${entityName}Service.ROOT_PID_VALUE);
-		}else{
-			//如果当前节点父ID不为空 则设置父节点的hasChildren 为1
-			${entityName} parent = baseMapper.selectById(${entityName?uncap_first}.get${pidFieldName?cap_first}());
-			if(parent!=null && !"1".equals(parent.get${hasChildrenField?cap_first}())){
-				parent.set${hasChildrenField?cap_first}("1");
-				baseMapper.updateById(parent);
-			}
-		}
-		baseMapper.insert(${entityName?uncap_first});
-	}
-	
-	@Override
-	public void update${entityName}(${entityName} ${entityName?uncap_first}) {
-		${entityName} entity = this.getById(${entityName?uncap_first}.getId());
-		if(entity==null) {
-			throw new JeecgBootException("未找到对应实体");
-		}
-		String old_pid = entity.get${pidFieldName?cap_first}();
-		String new_pid = ${entityName?uncap_first}.get${pidFieldName?cap_first}();
-		if(!old_pid.equals(new_pid)) {
-			updateOldParentNode(old_pid);
-			if(oConvertUtils.isEmpty(new_pid)){
-				${entityName?uncap_first}.set${pidFieldName?cap_first}(I${entityName}Service.ROOT_PID_VALUE);
-			}
-			if(!I${entityName}Service.ROOT_PID_VALUE.equals(${entityName?uncap_first}.get${pidFieldName?cap_first}())) {
-				baseMapper.updateTreeNodeStatus(${entityName?uncap_first}.get${pidFieldName?cap_first}(), I${entityName}Service.HASCHILD);
-			}
-		}
-		baseMapper.updateById(${entityName?uncap_first});
-	}
-	
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public void delete${entityName}(String id) throws JeecgBootException {
-		//查询选中节点下所有子节点一并删除
-        id = this.queryTreeChildIds(id);
-        if(id.indexOf(",")>0) {
-            StringBuffer sb = new StringBuffer();
-            String[] idArr = id.split(",");
-            for (String idVal : idArr) {
-                if(idVal != null){
-                    ${entityName} ${entityName?uncap_first} = this.getById(idVal);
-                    String pidVal = ${entityName?uncap_first}.get${pidFieldName?cap_first}();
-                    //查询此节点上一级是否还有其他子节点
-                    List<${entityName}> dataList = baseMapper.selectList(new QueryWrapper<${entityName}>().eq("${tableVo.extendParams.pidField}", pidVal).notIn("id",Arrays.asList(idArr)));
-                    if((dataList == null || dataList.size()==0) && !Arrays.asList(idArr).contains(pidVal)
-                            && !sb.toString().contains(pidVal)){
-                        //如果当前节点原本有子节点 现在木有了,更新状态
-                        sb.append(pidVal).append(",");
-                    }
-                }
-            }
-            //批量删除节点
-            baseMapper.deleteBatchIds(Arrays.asList(idArr));
-            //修改已无子节点的标识
-            String[] pidArr = sb.toString().split(",");
-            for(String pid : pidArr){
-                this.updateOldParentNode(pid);
-            }
-        }else{
-            ${entityName} ${entityName?uncap_first} = this.getById(id);
-            if(${entityName?uncap_first}==null) {
-                throw new JeecgBootException("未找到对应实体");
-            }
-            updateOldParentNode(${entityName?uncap_first}.get${pidFieldName?cap_first}());
-            baseMapper.deleteById(id);
-        }
-	}
-	
-	@Override
-    public List<${entityName}> queryTreeListNoPage(QueryWrapper<${entityName}> queryWrapper) {
-        List<${entityName}> dataList = baseMapper.selectList(queryWrapper);
-        List<${entityName}> mapList = new ArrayList<>();
-        for(${entityName} data : dataList){
-            String pidVal = data.get${pidFieldName?cap_first}();
-            //递归查询子节点的根节点
-            if(pidVal != null && !"0".equals(pidVal)){
-                ${entityName} rootVal = this.getTreeRoot(pidVal);
-                if(rootVal != null && !mapList.contains(rootVal)){
-                    mapList.add(rootVal);
-                }
-            }else{
-                if(!mapList.contains(data)){
-                    mapList.add(data);
-                }
-            }
-        }
-        return mapList;
-    }
-	
-	/**
-	 * 根据所传pid查询旧的父级节点的子节点并修改相应状态值
-	 * @param pid
-	 */
-	private void updateOldParentNode(String pid) {
-		if(!I${entityName}Service.ROOT_PID_VALUE.equals(pid)) {
-			Integer count = baseMapper.selectCount(new QueryWrapper<${entityName}>().eq("${tableVo.extendParams.pidField}", pid));
-			if(count==null || count<=1) {
-				baseMapper.updateTreeNodeStatus(pid, I${entityName}Service.NOCHILD);
-			}
-		}
-	}
-
-	/**
-     * 递归查询节点的根节点
-     * @param pidVal
-     * @return
-     */
-    private ${entityName} getTreeRoot(String pidVal){
-        ${entityName} data =  baseMapper.selectById(pidVal);
-        if(data != null && !"0".equals(data.get${pidFieldName?cap_first}())){
-            return this.getTreeRoot(data.get${pidFieldName?cap_first}());
-        }else{
-            return data;
-        }
-    }
-
-    /**
-     * 根据id查询所有子节点id
-     * @param ids
-     * @return
-     */
-    private String queryTreeChildIds(String ids) {
-        //获取id数组
-        String[] idArr = ids.split(",");
-        StringBuffer sb = new StringBuffer();
-        for (String pidVal : idArr) {
-            if(pidVal != null){
-                if(!sb.toString().contains(pidVal)){
-                    if(sb.toString().length() > 0){
-                        sb.append(",");
-                    }
-                    sb.append(pidVal);
-                    this.getTreeChildIds(pidVal,sb);
-                }
-            }
-        }
-        return sb.toString();
-    }
-
-    /**
-     * 递归查询所有子节点
-     * @param pidVal
-     * @param sb
-     * @return
-     */
-    private StringBuffer getTreeChildIds(String pidVal,StringBuffer sb){
-        List<${entityName}> dataList = baseMapper.selectList(new QueryWrapper<${entityName}>().eq("${tableVo.extendParams.pidField}", pidVal));
-        if(dataList != null && dataList.size()>0){
-            for(${entityName} tree : dataList) {
-                if(!sb.toString().contains(tree.getId())){
-                    sb.append(",").append(tree.getId());
-                }
-                this.getTreeChildIds(tree.getId(),sb);
-            }
-        }
-        return sb;
-    }
-
-}

+ 0 - 523
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei

@@ -1,523 +0,0 @@
-<#assign pidFieldName = "">
-<#assign hasChildrenField = "">
-<#list originalColumns as po>
-<#if po.fieldDbName == tableVo.extendParams.pidField>
-<#assign pidFieldName = po.fieldName>
-</#if>
-<#if po.fieldDbName == tableVo.extendParams.hasChildren>
-<#assign hasChildrenField = po.fieldName>
-</#if>
-</#list>
-<template>
-  <a-card :bordered="false">
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-    <#assign query_field_no=0>
-    <#assign query_flag=false>
-    <#assign list_need_dict=false>
-    <#assign list_need_category=false>
-    <#assign list_need_pca=false>
-    <#assign bpm_flag=false>
-
-    <#-- 开始循环 -->
-    <#list columns as po>
-    <#if po.fieldDbName=='bpm_status'>
-      <#assign bpm_flag=true>
-    </#if>
-    <#if po.isQuery=='Y'>
-    <#assign query_flag=true>
-    	<#if query_field_no==2>
-              <template v-if="toggleSearchStatus">
-    	</#if>
-    	<#assign query_field_dictCode="">
-    	<#if po.dictTable?default("")?trim?length gt 1>
-    	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-        <#elseif po.dictField?default("")?trim?length gt 1>
-            <#assign query_field_dictCode="${po.dictField}">
-        </#if>
-    	<#if po.queryMode=='single'>
-          <#if query_field_no gt 1>  </#if><a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-            <#if po.classType=='sel_search'>
-              <#if query_field_no gt 1>  </#if><j-search-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dict="${po.dictTable},${po.dictText},${po.dictField}"/>
-            <#elseif po.classType=='sel_user'>
-              <#if query_field_no gt 1>  </#if><j-select-user-by-dep placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='switch'>
-              <#if query_field_no gt 1>  </#if><j-switch placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" <#if po.dictField!= 'is_open'>:options="${po.dictField}"</#if> query></j-switch>
-            <#elseif po.classType=='sel_depart'>
-              <#if query_field_no gt 1>  </#if><j-select-depart placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='list_multi'>
-              <#if query_field_no gt 1>  </#if><j-multi-select-tag placeholder="请选择${po.filedComment}" dictCode="${query_field_dictCode?default("")}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='cat_tree'>
-              <#if query_field_no gt 1>  </#if><j-category-select placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" pcode="${po.dictField?default("")}"/>
-            <#elseif po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-            <#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-            <#elseif po.classType=='pca'>
-              <#if query_field_no gt 1>  </#if><j-area-linkage type="cascader" v-model="queryParam.${po.fieldName}" placeholder="请选择省市区"/>
-            <#elseif po.classType=='popup'>
-              <#if query_field_no gt 1>  </#if><j-popup placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" code="${po.dictTable}" org-fields="${po.dictField}" dest-fields="${po.dictText}" :field="getPopupField('${po.dictText}')" :multi="${po.extendParams.popupMulti?c}"/>
-            <#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-            <#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-            <#if po.dictTable?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictTable},${po.dictText},${po.dictField}"/>
-            <#elseif po.dictField?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictField}"/>
-            <#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-            </#if>
-            <#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-            </#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-    <#else>
-          <#if query_field_no gt 1>  </#if><a-col :xl="10" :lg="11" :md="12" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-            <#if po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-            <#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-            <#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最小值" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></a-input>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最大值" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></a-input>
-            </#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-    	</#if>
-    <#assign query_field_no=query_field_no+1>
-    </#if>
-    <#if !list_need_dict && po.fieldShowType!='popup' && po.dictField?default("")?trim?length gt 1>
-    <#assign list_need_dict=true>
-    </#if>
-    <#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-    <#assign list_need_category=true>
-    </#if>
-    <#if po.classType=='pca'>
-    <#assign list_need_pca=true>
-    </#if>
-    </#list>
-    <#-- 结束循环 -->
-    <#t>
-    <#if query_field_no gt 2>
-              </template>
-    </#if>
-    <#if query_flag>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-          </a-col>
-    </#if>
-        </a-row>
-      </a-form>
-    </div>
-    <!-- 查询区域-END -->
-
-    <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('${tableVo.ftlDescription}')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
-      </a-upload>
-      <!-- 高级查询区域 -->
-      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </a-dropdown>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        rowKey="id"
-        class="j-table-force-nowrap"
-        :scroll="{x:true}"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :expandedRowKeys="expandedRowKeys"
-        @change="handleTableChange"
-        @expand="handleExpand"
-        v-bind="tableProps">
-
-        <template slot="imgSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-          <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
-            下载
-          </a-button>
-        </template>
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a @click="handleAddChild(record)">添加下级</a>
-              </a-menu-item>
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDeleteNode(record.id)" placement="topLeft">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-      </a-table>
-    </div>
-
-    <${entityName?uncap_first}-modal ref="modalForm" @ok="modalFormOk"></${entityName?uncap_first}-modal>
-  </a-card>
-</template>
-
-<script>
-
-  import { getAction, deleteAction } from '@/api/manage'
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import ${entityName}Modal from './modules/${entityName}Modal'
-  import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
-  import { filterObj } from '@/utils/util';
-  <#if list_need_category>
-  import { loadCategoryData } from '@/api/api'
-  </#if>
-  <#if list_need_pca>
-  import Area from '@/components/_util/Area'
-  </#if>
-
-  export default {
-    name: "${entityName}List",
-    mixins:[JeecgListMixin],
-    components: {
-      ${entityName}Modal
-    },
-    data () {
-      return {
-        description: '${tableVo.ftlDescription}管理页面',
-        // 表头
-        columns: [
-    <#list columns as po>
-    <#if po.fieldDbName==tableVo.extendParams.textField>
-          {
-            title:'${po.filedComment}',
-            align:"left",
-            dataIndex: '${po.fieldName}'
-          },
-    </#if>
-    </#list>
-	<#list columns as po>
-	<#if po.isShowList =='Y'>
-	<#if po.fieldDbName!=tableVo.extendParams.textField && po.fieldName!=pidFieldName>
-          {
-            title:'${po.filedComment}',
-            align:"left",
-            <#if po.sort=='Y'>
-            sorter: true,
-            </#if>
-            <#if po.classType=='date'>
-            dataIndex: '${po.fieldName}',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
-            }
-            <#elseif po.classType=='file'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'fileSlot'}
-            <#elseif po.fieldDbType=='Blob'>
-            dataIndex: '${po.fieldName}String'
-            <#elseif po.classType=='image'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'imgSlot'}
-            <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-            dataIndex: '${po.fieldName}_dictText'
-            <#elseif po.classType=='switch'>
-            dataIndex: '${po.fieldName}',
-            <#if po.dictField != 'is_open'>
-            customRender: (text) => (!text ? "" : (text == ${po.dictField}[0] ? "是" : "否"))
-            <#else>
-            customRender: (text) => (!text ? "" : (text == "Y" ? "是" : "否"))
-            </#if>
-            <#elseif po.classType=='cat_tree'>
-            <#if list_need_category>
-            dataIndex: '${po.fieldName}',
-            customRender: (text) => (text ? filterMultiDictText(this.dictOptions['${po.fieldName}'], text) : '')
-            <#else>
-            dataIndex: '${po.fieldName}',
-            customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-            </#if>
-			<#else>
-            dataIndex: '${po.fieldName}'
-			</#if>
-          },
-     </#if>
-     </#if>
-     </#list>
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' },
-          }
-        ],
-        url: {
-          list: "/${entityPackage}/${entityName?uncap_first}/rootList",
-          childList: "/${entityPackage}/${entityName?uncap_first}/childList",
-          getChildListBatch: "/${entityPackage}/${entityName?uncap_first}/getChildListBatch",
-          delete: "/${entityPackage}/${entityName?uncap_first}/delete",
-          deleteBatch: "/${entityPackage}/${entityName?uncap_first}/deleteBatch",
-          exportXlsUrl: "/${entityPackage}/${entityName?uncap_first}/exportXls",
-          importExcelUrl: "${entityPackage}/${entityName?uncap_first}/importExcel",
-        },
-        expandedRowKeys:[],
-        hasChildrenField:"${hasChildrenField}",
-        pidField:"${pidFieldName}",
-        dictOptions: {},
-        loadParent: false,
-        superFieldList:[],
-      }
-    },
-    created() {
-      this.getSuperFieldList();
-    },
-    computed: {
-      importExcelUrl(){
-        <#noparse>return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;</#noparse>
-      },
-      tableProps() {
-        let _this = this
-        return {
-          // 列表项是否可选择
-          rowSelection: {
-            selectedRowKeys: _this.selectedRowKeys,
-            onChange: (selectedRowKeys) => _this.selectedRowKeys = selectedRowKeys
-          }
-        }
-      }
-    },
-    methods: {
-      loadData(arg){
-        if(arg==1){
-          this.ipagination.current=1
-        }
-        this.loading = true
-        let params = this.getQueryParams()
-        params.hasQuery = 'true'
-        getAction(this.url.list,params).then(res=>{
-          if(res.success){
-            let result = res.result
-            if(Number(result.total)>0){
-              this.ipagination.total = Number(result.total)
-              this.dataSource = this.getDataByResult(res.result.records)
-              return this.loadDataByExpandedRows(this.dataSource)
-            }else{
-              this.ipagination.total=0
-              this.dataSource=[]
-            }
-          }else{
-            this.$message.warning(res.message)
-          }
-        }).finally(()=>{
-          this.loading = false
-        })
-      },
-      // 根据已展开的行查询数据(用于保存后刷新时异步加载子级的数据)
-      loadDataByExpandedRows(dataList) {
-        if (this.expandedRowKeys.length > 0) {
-          return getAction(this.url.getChildListBatch,{ parentIds: this.expandedRowKeys.join(',') }).then(res=>{
-            if (res.success && res.result.records.length>0) {
-              //已展开的数据批量子节点
-              let records = res.result.records
-              const listMap = new Map();
-              for (let item of records) {
-                let pid = item[this.pidField];
-                if (this.expandedRowKeys.join(',').includes(pid)) {
-                 let mapList = listMap.get(pid);
-                  if (mapList == null) {
-                    mapList = [];
-                  }
-                  mapList.push(item);
-                  listMap.set(pid, mapList);
-                }
-              }
-              let childrenMap = listMap;
-              let fn = (list) => {
-                if(list) {
-                  list.forEach(data => {
-                    if (this.expandedRowKeys.includes(data.id)) {
-                      data.children = this.getDataByResult(childrenMap.get(data.id))
-                      fn(data.children)
-                    }
-                  })
-                }
-              }
-              fn(dataList)
-            }
-          })
-        } else {
-          return Promise.resolve()
-        }
-      },
-      getQueryParams(arg) {
-        //获取查询条件
-        let sqp = {}
-        let param = {}
-        if(this.superQueryParams){
-          sqp['superQueryParams']=encodeURI(this.superQueryParams)
-          sqp['superQueryMatchType'] = this.superQueryMatchType
-        }
-        if(arg){
-          param = Object.assign(sqp, this.isorter ,this.filters);
-        }else{
-          param = Object.assign(sqp, this.queryParam, this.isorter ,this.filters);
-        }
-        if(JSON.stringify(this.queryParam) === "{}" || arg){
-          param.hasQuery = 'false'
-        }else{
-          param.hasQuery = 'true'
-        }
-        param.field = this.getQueryField();
-        param.pageNo = this.ipagination.current;
-        param.pageSize = this.ipagination.pageSize;
-        return filterObj(param);
-      },
-      searchReset() {
-        //重置
-        this.expandedRowKeys = []
-        this.queryParam = {}
-        this.loadData(1);
-      },
-      getDataByResult(result){
-        if(result){
-          return result.map(item=>{
-            //判断是否标记了带有子节点
-            if(item[this.hasChildrenField]=='1'){
-              let loadChild = { id: item.id+'_loadChild', name: 'loading...', isLoading: true }
-              item.children = [loadChild]
-            }
-            return item
-          })
-        }
-      },
-      handleExpand(expanded, record){
-        // 判断是否是展开状态
-        if (expanded) {
-          this.expandedRowKeys.push(record.id)
-          if (record.children.length>0 && record.children[0].isLoading === true) {
-            let params = this.getQueryParams(1);//查询条件
-            params[this.pidField] = record.id
-            params.hasQuery = 'false'
-            params.superQueryParams=""
-            getAction(this.url.childList,params).then((res)=>{
-              if(res.success){
-                if(res.result.records){
-                  record.children = this.getDataByResult(res.result.records)
-                  this.dataSource = [...this.dataSource]
-                }else{
-                  record.children=''
-                  record.hasChildrenField='0'
-                }
-              }else{
-                this.$message.warning(res.message)
-              }
-            })
-          }
-        }else{
-          let keyIndex = this.expandedRowKeys.indexOf(record.id)
-          if(keyIndex>=0){
-            this.expandedRowKeys.splice(keyIndex, 1);
-          }
-        }
-      },
-      handleAddChild(record){
-        this.loadParent = true
-        let obj = {}
-        obj[this.pidField] = record['id']
-        this.$refs.modalForm.add(obj);
-      },
-      handleDeleteNode(id) {
-        if(!this.url.delete){
-          this.$message.error("请设置url.delete属性!")
-          return
-        }
-        var that = this;
-        deleteAction(that.url.delete, {id: id}).then((res) => {
-          if (res.success) {
-             that.loadData(1)
-          } else {
-            that.$message.warning(res.message);
-          }
-        });
-      },
-      batchDel(){
-        if(this.selectedRowKeys.length<=0){
-          this.$message.warning('请选择一条记录!');
-          return false;
-        }else{
-          let ids = "";
-          let that = this;
-          that.selectedRowKeys.forEach(function(val) {
-            ids+=val+",";
-          });
-          that.$confirm({
-            title:"确认删除",
-            content:"是否删除选中数据?",
-            onOk: function(){
-              that.handleDeleteNode(ids)
-              that.onClearSelected();
-            }
-          });
-        }
-      },
-      getSuperFieldList(){
-        <#include "/common/utils.ftl">
-        let fieldList=[];
-         <#list columns as po>
-        fieldList.push(${superQueryFieldList(po)})
-         </#list>
-        this.superFieldList = fieldList
-      }
-    }
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less';
-</style>

+ 0 - 246
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei

@@ -1,246 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-  <j-modal
-    :title="title"
-    :width="width"
-    :visible="visible"
-    :confirmLoading="confirmLoading"
-    switchFullscreen
-    @ok="handleOk"
-    @cancel="handleCancel"
-    cancelText="关闭">
-    <a-spin :spinning="confirmLoading">
-      <a-form-model ref="form" :model="model" :rules="validatorRules">
-<#assign pidFieldName = "">
-<#assign form_popup = false>
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#list columns as po>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-        <a-form-model-item label="${po.filedComment}" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${autoStringSuffixForModel(po)}">
-	<#if po.fieldDbName == tableVo.extendParams.pidField>
-		<#assign pidFieldName = po.fieldName>
-          <j-tree-select
-            ref="treeSelect"
-            placeholder="请选择${po.filedComment}"
-            v-model="model.${po.fieldName}"
-            dict="${tableVo.tableName},${tableVo.extendParams.textField},id"
-            pidField="${tableVo.extendParams.pidField}"
-            pidValue="0"
-            hasChildField="${tableVo.extendParams.hasChildren}"
-            <#if po.readonly=='Y'>disabled</#if>>
-          </j-tree-select>
-	<#elseif po.classType =='date'>
-          <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='datetime'>
-          <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='time'>
-          <j-time placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='switch'>
-          <j-switch v-model="model.${po.fieldName}" <#if po.dictField != 'is_open'>:options="${po.dictField}"</#if>></j-switch>
-	<#elseif po.classType =='popup'>
-	     <#assign form_popup=true>
-          <j-popup
-            v-model="model.${po.fieldName}"
-            field="${po.fieldName}"
-            org-fields="${po.dictField}"
-            dest-fields="${Format.underlineToHump(po.dictText)}"
-            code="${po.dictTable}"
-            :multi="${po.extendParams.popupMulti?c}"
-            @input="popupCallback"
-            <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='sel_depart'>
-          <j-select-depart v-model="model.${po.fieldName}"  <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='sel_user'>
-          <j-select-user-by-dep v-model="model.${po.fieldName}"  <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='textarea'>
-          <a-textarea v-model="model.${autoStringSuffixForModel(po)}" rows="4" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list' || po.classType=='radio'>
-          <j-dict-select-tag type="${po.classType}" v-model="model.${po.fieldName}"  dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-          <j-multi-select-tag type="${po.classType}" v-model="model.${po.fieldName}"  dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-          <a-input-number v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='file'>
-          <j-upload v-model="model.${po.fieldName}"  <#if po.readonly=='Y'>disabled</#if> <#if po.uploadnum??>:number=${po.uploadnum}</#if>></j-upload>
-	<#elseif po.classType=='image'>
-          <j-image-upload isMultiple <#if po.uploadnum??>:number=${po.uploadnum}</#if> v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>></j-image-upload>
-  <#elseif po.classType=='sel_search'>
-          <j-search-select-tag v-model="model.${po.fieldName}" dict="${form_field_dictCode}" <#if po.readonly=='Y'>disabled</#if> />
-	<#elseif po.classType=='cat_tree'>
-      <#assign form_cat_tree = true>
-          <j-category-select v-model="model.${po.fieldName}" pcode="${po.dictField?default("")}" placeholder="请选择${po.filedComment}" <#if po.dictText?default("")?trim?length gt 1>back="${dashedToCamel(po.dictText)}" @change="handleCategoryChange"</#if> <#if po.readonly=='Y'>disabled</#if>/>
-      <#if po.dictText?default("")?trim?length gt 1>
-      <#assign form_cat_back = "${po.dictText}">
-      </#if>
-  <#elseif po.classType =='pca'>
-          <j-area-linkage type="cascader" v-model="model.${po.fieldName}" placeholder="请输入省市区" <#if po.readonly=='Y'>disabled</#if> />
-	<#elseif po.classType=='umeditor'>
-          <j-editor v-model="model.${autoStringSuffixForModel(po)}" <#if po.readonly=='Y'>disabled</#if>/>
-  <#elseif po.classType =='markdown'>
-          <j-markdown-editor v-model="model.${autoStringSuffixForModel(po)}" id="${po.fieldName}"></j-markdown-editor>
-	<#elseif po.classType == 'sel_tree'>
-	          <j-tree-select
-              ref="treeSelect"
-              placeholder="请选择${po.filedComment}"
-              v-model="model.${po.fieldName}"
-              <#if po.dictText??>
-              <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-              dict="${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}"
-              <#elseif po.dictText?split(',')[1]??>
-              pidField="${po.dictText?split(',')[1]}"
-              <#elseif po.dictText?split(',')[3]??>
-              hasChildField="${po.dictText?split(',')[3]}"
-              </#if>
-              </#if>
-              pidValue="${po.dictField}"
-              <#if po.readonly=='Y'>disabled</#if>>
-            </j-tree-select>
-	<#else>
-          <a-input v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>></a-input>
-    </#if>
-        </a-form-model-item>
-</#if>
-</#list>    
-        
-      </a-form-model>
-    </a-spin>
-  </j-modal>
-</template>
-
-<script>
-
-  import { httpAction } from '@/api/manage'
-  import { validateDuplicateValue } from '@/utils/util'
-  export default {
-    name: "${entityName}Modal",
-    components: { 
-    },
-    data () {
-      return {
-        title:"操作",
-        width:800,
-        visible: false,
-        model:{
-           <#include "/common/init/initValue.ftl">
-         },
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-
-        confirmLoading: false,
-        <#include "/common/validatorRulesTemplate/main.ftl">
-        url: {
-          add: "/${entityPackage}/${entityName?uncap_first}/add",
-          edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-        },
-        expandedRowKeys:[],
-        pidField:"${pidFieldName}"
-     
-      }
-    },
-    created () {
-       //备份model原始值
-       this.modelDefault = JSON.parse(JSON.stringify(this.model));
-    },
-    methods: {
-      add (obj) {
-        this.modelDefault.${pidFieldName}=''
-        this.edit(Object.assign(this.modelDefault , obj));
-      },
-      edit (record) {
-        this.model = Object.assign({}, record);
-        this.visible = true;
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-        this.$refs.form.clearValidate()
-      },
-      handleOk () {
-        const that = this;
-        // 触发表单验证
-       this.$refs.form.validate(valid => {
-          if (valid) {
-            that.confirmLoading = true;
-            let httpurl = '';
-            let method = '';
-            if(!this.model.id){
-              httpurl+=this.url.add;
-              method = 'post';
-            }else{
-              httpurl+=this.url.edit;
-               method = 'put';
-            }
-             if(this.model.id && this.model.id === this.model[this.pidField]){
-              that.$message.warning("父级节点不能选择自己");
-              that.confirmLoading = false;
-              return;
-            }
-            httpAction(httpurl,this.model,method).then((res)=>{
-              if(res.success){
-                that.$message.success(res.message);
-                this.$emit('ok');
-              }else{
-                that.$message.warning(res.message);
-              }
-            }).finally(() => {
-              that.confirmLoading = false;
-              that.close();
-            })
-          }else{
-             return false
-          }
-        })
-      },
-      handleCancel () {
-        this.close()
-      },
-      <#if form_popup>
-      popupCallback(value,row){
-         this.model = Object.assign(this.model, row);
-      },
-      </#if>
-      <#if form_cat_tree>
-      handleCategoryChange(value,backObj){
-        this.model = Object.assign(this.model, backObj);
-       },
-      </#if>
-      submitSuccess(formData,flag){
-        if(!formData.id){
-          let treeData = this.$refs.treeSelect.getCurrTreeData()
-          this.expandedRowKeys=[]
-          this.getExpandKeysByPid(formData[this.pidField],treeData,treeData)
-          this.$emit('ok',formData,this.expandedRowKeys.reverse());
-        }else{
-          this.$emit('ok',formData,flag);
-        }
-      },
-      getExpandKeysByPid(pid,arr,all){
-        if(pid && arr && arr.length>0){
-          for(let i=0;i<arr.length;i++){
-            if(arr[i].key==pid){
-              this.expandedRowKeys.push(arr[i].key)
-              this.getExpandKeysByPid(arr[i]['parentId'],all,all)
-            }else{
-              this.getExpandKeysByPid(pid,arr[i].children,all)
-            }
-          }
-        }
-      }
-      
-      
-    }
-  }
-</script>

+ 0 - 272
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei

@@ -1,272 +0,0 @@
-<template>
-  <div class="p-4">
-    <!--引用表格-->
-    <BasicTable @register="registerTable" :rowSelection="rowSelection" :expandedRowKeys="expandedRowKeys" @expand="handleExpand" @fetch-success="onFetchSuccess">
-      <!--插槽:table标题-->
-      <template #tableTitle>
-          <a-button type="primary" @click="handleCreate" preIcon="ant-design:plus-outlined"> 新增</a-button>
-          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-
-          <a-dropdown v-if="selectedRowKeys.length > 0">
-          <template #overlay>
-            <a-menu>
-              <a-menu-item key="1" @click="batchHandleDelete">
-                <Icon icon="ant-design:delete-outlined"></Icon>
-                删除
-              </a-menu-item>
-            </a-menu>
-          </template>
-          <a-button>批量操作
-            <Icon icon="ant-design:down-outlined"></Icon>
-          </a-button>
-        </a-dropdown>
-      </template>
-      <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)"/>
-      </template>
-    </BasicTable>
-    <!--字典弹窗-->
-    <${entityName}Modal @register="registerModal" @success="handleSuccess"/>
-  </div>
-</template>
-
-<script lang="ts" name="${entityPackage}-${entityName?uncap_first}" setup>
-  //ts语法
-  import {ref, computed, unref, toRaw, nextTick} from 'vue';
-  import {BasicTable, useTable, TableAction} from '/src/components/Table';
-  import {useModal} from '/src/components/Modal';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import ${entityName}Modal from './components/${entityName}Modal.vue';
-  import {columns} from './${entityName}.data';
-  import {list, delete${entityName}, batchDelete${entityName}, getExportUrl,getImportUrl, getChildList,getChildListBatch} from './${entityName}.api';
-
-  const expandedRowKeys = ref([]);
-  //字典model
-  const [registerModal, {openModal}] = useModal();
-   //注册table数据
-  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
-    tableProps:{
-         title: '${tableVo.ftlDescription}',
-         columns,
-         canResize:false,
-         actionColumn: {
-             width: 120,
-          },
-    },
-     exportConfig: {
-          name:"${tableVo.ftlDescription}",
-          url: getExportUrl,
-        },
-        importConfig: {
-          url: getImportUrl,
-          success: importSuccess
-        },
-    })
-
-  const [registerTable, {reload, collapseAll, updateTableDataRecord, findTableDataRecord,getDataSource},{ rowSelection, selectedRowKeys }] = tableContext
-
-  /**
-   * 新增事件
-   */
-  function handleCreate() {
-    openModal(true, {
-      isUpdate: false,
-    });
-  }
-
-  /**
-   * 编辑事件
-   */
-  async function handleEdit(record) {
-    openModal(true, {
-      record,
-      isUpdate: true,
-    });
-  }
-
-  /**
-   * 详情
-   */
-  async function handleDetail(record) {
-    openModal(true, {
-      record,
-      isUpdate: true,
-      hideFooter: true,
-    });
-  }
-
-  /**
-   * 删除事件
-   */
-  async function handleDelete(record) {
-    await delete${entityName}({id: record.id}, importSuccess);
-  }
-
-  /**
-   * 批量删除事件
-   */
-  async function batchHandleDelete() {
-    const ids = selectedRowKeys.value.filter(item => !item.includes('loading'))
-    await batchDelete${entityName}({ids: ids}, importSuccess);
-  }
-  /**
-   * 导入
-   */
-   function importSuccess() {
-    reload() && (expandedRowKeys.value = []);
-  }
-  /**
-   * 添加下级
-   */
-  function handleAddSub(record) {
-    openModal(true, {
-      record,
-      isUpdate: false,
-    });
-  }
-  /**
-   * 成功回调
-   */
-  async function handleSuccess({isUpdate, values, expandedArr}) {
-    if (isUpdate) {
-      //编辑回调
-      updateTableDataRecord(values.id, values);
-    } else {
-        if(!values['pid']){
-            //新增根节点
-            reload();
-        }else{
-            //新增子集
-            expandedRowKeys.value = [];
-            for (let key of unref(expandedArr)) {
-                await expandTreeNode(key)
-            }
-        }
-    }
-  }
-
-  /**
-   * 接口请求成功后回调
-   */
-  function onFetchSuccess(result) {
-      getDataByResult(result.items)&&loadDataByExpandedRows();
-  }
-  /**
-   * 根据已展开的行查询数据(用于保存后刷新时异步加载子级的数据)
-   */
-  async function loadDataByExpandedRows() {
-      if (unref(expandedRowKeys).length > 0) {
-          const res = await getChildListBatch({ parentIds: unref(expandedRowKeys).join(',')});
-          if (res.success && res.result.records.length>0) {
-              //已展开的数据批量子节点
-              let records = res.result.records
-              const listMap = new Map();
-              for (let item of records) {
-                  let pid = item['pid'];
-                  if (unref(expandedRowKeys).includes(pid)) {
-                      let mapList = listMap.get(pid);
-                      if (mapList == null) {
-                          mapList = [];
-                      }
-                      mapList.push(item);
-                      listMap.set(pid, mapList);
-                  }
-              }
-              let childrenMap = listMap;
-              let fn = (list) => {
-                  if(list) {
-                      list.forEach(data => {
-                          if (unref(expandedRowKeys).includes(data.id)) {
-                              data.children = getDataByResult(childrenMap.get(data.id))
-                              fn(data.children)
-                          }
-                      })
-                  }
-              };
-              fn(getDataSource())
-          }
-      }
-  }
-  /**
-   * 处理数据集
-   */
-  function getDataByResult(result){
-      if(result && result.length>0){
-          return result.map(item=>{
-              //判断是否标记了带有子节点
-              if(item["hasChild"]=='1'){
-                  let loadChild = { id: item.id+'_loadChild', name: 'loading...', isLoading: true }
-                  item.children = [loadChild]
-              }
-              return item
-          })
-      }
-  }
-  /**
-   *树节点展开合并
-   * */
-  async function handleExpand(expanded, record) {
-    // 判断是否是展开状态,展开状态(expanded)并且存在子集(children)并且未加载过(isLoading)的就去查询子节点数据
-    if (expanded) {
-       expandedRowKeys.value.push(record.id)
-      if (record.children.length > 0 && !!record.children[0].isLoading) {
-        let result = await getChildList({pid: record.id});
-        result=result.records?result.records:result;
-        if (result && result.length > 0) {
-          record.children = getDataByResult(result);
-        } else {
-          record.children = null
-          record.hasChild = '0'
-        }
-      }
-    } else {
-      let keyIndex = expandedRowKeys.value.indexOf(record.id)
-      if (keyIndex >= 0) {
-        expandedRowKeys.value.splice(keyIndex, 1);
-      }
-    }
-  }
-  /**
-   *操作表格后处理树节点展开合并
-   * */
-  async function expandTreeNode(key) {
-    let record = findTableDataRecord(key)
-    expandedRowKeys.value.push(key);
-      let result = await getChildList({pid: key});
-      if (result && result.length > 0) {
-          record.children = getDataByResult(result);
-      } else {
-          record.children = null
-          record.hasChild = '0'
-      }
-      updateTableDataRecord(key, record);
-  }
-  /**
-   * 操作栏
-   */
-  function getTableAction(record) {
-    return [
-      {
-        label: '编辑',
-        onClick: handleEdit.bind(null, record),
-      },
-      {
-        label: '删除',
-        popConfirm: {
-          title: '确定删除吗?',
-          confirm: handleDelete.bind(null, record),
-        },
-      },
-      {
-        label: '添加下级',
-        onClick: handleAddSub.bind(null, {pid: record.id}),
-      }
-    ]
-  }
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 82
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi

@@ -1,82 +0,0 @@
-import {defHttp} from "/@/utils/http/axios";
-import {Modal} from 'ant-design-vue';
-
-enum Api {
-  list = '/${entityPackage}/${entityName?uncap_first}/rootList',
-  save='/${entityPackage}/${entityName?uncap_first}/add',
-  edit='/${entityPackage}/${entityName?uncap_first}/edit',
-  delete${entityName} = '/sys/${entityName?uncap_first}/delete',
-  deleteBatch = '/${entityPackage}/${entityName?uncap_first}/deleteBatch',
-  importExcel = '/${entityPackage}/${entityName?uncap_first}/importExcel',
-  exportXls = '/${entityPackage}/${entityName?uncap_first}/exportXls',
-  loadTreeData = '/${entityPackage}/${entityName?uncap_first}/loadTreeRoot',
-  getChildList = '/${entityPackage}/${entityName?uncap_first}/childList',
-  getChildListBatch = '/${entityPackage}/${entityName?uncap_first}/getChildListBatch',
-}
-/**
- * 导出api
- * @param params
- */
-export const getExportUrl = Api.exportXls;
-/**
- * 导入api
- * @param params
- */
-export const getImportUrl = Api.importExcel;
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-/**
- * 删除
- */
-export const delete${entityName} = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.delete${entityName}, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- */
-export const batchDelete${entityName} = (params, handleSuccess) => {
-  Modal.confirm({
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- */
-export const saveOrUpdateDict = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
-}
-/**
- * 查询全部树形节点数据
- * @param params
- */
-export const loadTreeData = (params) =>
-  defHttp.get({url: Api.loadTreeData,params});
-/**
- * 查询子节点数据
- * @param params
- */
-export const getChildList = (params) =>
-  defHttp.get({url: Api.getChildList, params});
-/**
- * 批量查询子节点数据
- * @param params
- */
-export const getChildListBatch = (params) =>
-  defHttp.get({url: Api.getChildListBatch, params},{isTransformResponse:false});

+ 0 - 354
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi

@@ -1,354 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-//列表数据
-export const columns: BasicColumn[] = [
- <#list columns as po>
-   <#if po.isShowList =='Y' && po.fieldName !='id'>
-   {
-    title: '${po.filedComment}',
-    align:"center",
-    <#if po.sort=='Y'>
-    sorter: true,
-   </#if>
-    <#if po.classType=='date'>
-    dataIndex: '${po.fieldName}',
-    customRender:({text}) =>{
-      return !text?"":(text.length>10?text.substr(0,10):text)
-    },
-    <#elseif po.fieldDbType=='Blob'>
-    dataIndex: '${po.fieldName}String'
-    <#elseif po.classType=='umeditor'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'htmlSlot' },
-    <#elseif po.classType=='pca'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'pcaSlot' },//TODO 未翻译
-   <#elseif po.classType=='file'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'fileSlot' },
-   <#elseif po.classType=='image'>
-    dataIndex: '${po.fieldName}',
-    customRender:render.renderAvatar,
-   <#elseif po.classType=='switch'>
-    dataIndex: '${po.fieldName}',
-<#assign switch_extend_arr=['Y','N']>
-<#if po.dictField?default("")?contains("[")>
-<#assign switch_extend_arr=po.dictField?eval>
-</#if>
-<#list switch_extend_arr as a>
-<#if a_index == 0>
-<#assign switch_extend_arr1=a>
-<#else>
-<#assign switch_extend_arr2=a>
-</#if>
-</#list>
-    customRender:({text}) => {
-       return  render.renderSwitch(text, [{text:'是',value:'${switch_extend_arr1}'},{text:'否',value:'${switch_extend_arr2}'}])
-     },
-   <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-    dataIndex: '${po.fieldName}_dictText'
-   <#elseif po.classType=='cat_tree'>
-    dataIndex: '${po.fieldName}',
-    <#if po.dictText?default("")?trim?length == 0>
-    customRender:({text}) => {
-       return  render.renderCategoryTree(text,'${po.dictField?default("")}')
-   },
-   <#else>
-    customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-   </#if>
-   <#else>
-    dataIndex: '${po.fieldName}'
-   </#if>
-   },
-   </#if>
- </#list>
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-<#if po.queryMode=='single'>
-	{
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='sel_search'>
-      component: 'JSearchSelect',
-      componentProps:{
-         dict:"${po.dictTable},${po.dictText},${po.dictField}"
-      },
-<#elseif po.classType=='sel_user'>
-      component: 'JSelectUserByDept',
-<#elseif po.classType=='switch'>
-      component: 'JSwitch',
-      componentProps:{
-           <#if po.dictField != 'is_open'>
-           options:"${po.dictField}"
-           </#if>
-       },
- <#elseif po.classType=='sel_depart'>
-      component: 'JSelectDept',
- <#elseif po.classType=='list_multi'>
-      component: 'JMultiSelectTag',//暂无该组件
-      componentProps:{
-          dictCode:"query_field_dictCode?default("")"
-      },
- <#elseif po.classType=='cat_tree'>
-      component: 'JCategorySelect',
-      componentProps:{
-          pcode:"${po.dictField?default("")}",//back和事件未添加,暂时有问题
-      },
-<#elseif po.classType=='date'>
-      component: 'DatePicker',
-<#elseif po.classType=='datetime'>
-      component: 'DatePicker',
-      componentProps: {
-         showTime:true
-       },
-<#elseif po.classType=='pca'>
-      component: 'JAreaLinkage',
-<#elseif po.classType=='popup'>
-      component: 'JPopup',
-      componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:"${po.dictField}",
-             multi:${po.extendParams.popupMulti?c},
-         }
-     },
-<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-      component: 'JDictSelectTag',
-      componentProps:{
-       <#if po.dictTable?default("")?trim?length gt 1>
-          dictCode:"${po.dictTable},${po.dictText},${po.dictField}"
-       <#elseif po.dictField?default("")?trim?length gt 1>
-          dictCode:"${po.dictField}"
-        </#if>
-      },
-<#else>
-      component: 'Input',
-</#if>
-      colProps: {span: 6},
-     },
-<#else>
-     {
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='date'>
-      component: 'RangePicker',
-<#elseif po.classType=='datetime'>
-      component: 'RangePicker',
-      componentProps: {
-          showTime:true
-      },
-<#else>
-      component: 'Input', //TODO 范围查询
-</#if>
-      colProps: {span: 6},
-	},
-</#if>
-</#if>
-</#list>
-<#-- 结束循环 -->
-];
-//表单数据
-export const formSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list columns as po><#rt/>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];

+ 0 - 87
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/default/tree/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei

@@ -1,87 +0,0 @@
-<template>
-  <BasicModal v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit">
-    <BasicForm @register="registerForm"/>
-  </BasicModal>
-</template>
-<script lang="ts" setup>
-  import {ref, computed, unref} from 'vue';
-  import {BasicModal, useModalInner} from '/src/components/Modal';
-  import {BasicForm, useForm} from '/src/components/Form';
-  import {formSchema} from '../${entityName?uncap_first}.data';
-  import {loadTreeData, saveOrUpdateDict} from '../${entityName?uncap_first}.api';
-  // 获取emit
-  const emit = defineEmits(['register', 'success']);
-  const isUpdate = ref(true);
-  const expandedRowKeys = ref([]);
-  const treeData = ref([]);
-  //表单配置
-  const [registerForm, {resetFields, setFieldsValue, validate, updateSchema}] = useForm({
-    schemas: formSchema,
-    showActionButtonGroup: false,
-    labelCol: {
-      xs: { span: 24 },
-      sm: { span: 4 },
-    },
-    wrapperCol: {
-      xs: { span: 24 },
-      sm: { span: 18 },
-    },
-  });
-  //表单赋值
-  const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
-    //重置表单
-    await resetFields();
-    expandedRowKeys.value = [];
-    setModalProps({confirmLoading: false, minHeight: 80});
-    isUpdate.value = !!data?.isUpdate;
-    if (data?.record) {
-      //表单赋值
-      await setFieldsValue({
-        ...data.record,
-      });
-    }
-    //父级节点树信息
-    treeData.value = await loadTreeData({'async': false,'pcode':''});
-    updateSchema({
-      field: 'pid',
-      componentProps: {treeData},
-    });
-  });
-  //设置标题
-  const getTitle = computed(() => (!unref(isUpdate) ? '新增字典' : '编辑字典'));
-
-  /**
-   * 根据pid获取展开的节点
-   * @param pid
-   * @param arr
-   */
-  function getExpandKeysByPid(pid,arr){
-    if(pid && arr && arr.length>0){
-      for(let i=0;i<arr.length;i++){
-        if(arr[i].key==pid && unref(expandedRowKeys).indexOf(pid)<0){
-          expandedRowKeys.value.push(arr[i].key);
-          getExpandKeysByPid(arr[i]['parentId'],unref(treeData))
-        }else{
-          getExpandKeysByPid(pid,arr[i].children)
-        }
-      }
-    }
-  }
-  //表单提交事件
-  async function handleSubmit() {
-    try {
-      let values = await validate();
-      setModalProps({confirmLoading: true});
-      //提交表单
-      await saveOrUpdateDict(values, isUpdate.value);
-      //关闭弹窗
-      closeModal();
-      //展开的节点信息
-      await getExpandKeysByPid(values['pid'],unref(treeData))
-      //刷新列表(isUpdate:是否编辑;values:表单信息;expandedArr:展开的节点信息)
-      emit('success', {isUpdate: unref(isUpdate), values:{...values},expandedArr: unref(expandedRowKeys).reverse()});
-    } finally {
-      setModalProps({confirmLoading: false});
-    }
-  }
-</script>

+ 0 - 306
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai

@@ -1,306 +0,0 @@
-package ${bussiPackage}.${entityPackage}.controller;
-
-import org.jeecg.common.system.query.QueryGenerator;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.common.api.vo.Result;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.web.servlet.ModelAndView;
-import java.util.Arrays;
-import org.jeecg.common.util.oConvertUtils;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.service.I${sub.entityName}Service;
-</#list>
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.apache.shiro.SecurityUtils;
-import org.jeecg.common.system.vo.LoginUser;
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
- /**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Api(tags="${tableVo.ftlDescription}")
-@RestController
-@RequestMapping("/${entityPackage}/${entityName?uncap_first}")
-@Slf4j
-public class ${entityName}Controller extends JeecgController<${entityName}, I${entityName}Service> {
-
-	@Autowired
-	private I${entityName}Service ${entityName?uncap_first}Service;
-	<#list subTables as sub>
-
-	@Autowired
-	private I${sub.entityName}Service ${sub.entityName?uncap_first}Service;
-	</#list>
-
-
-	/*---------------------------------主表处理-begin-------------------------------------*/
-
-	/**
-	 * 分页列表查询
-	 * @param ${entityName?uncap_first}
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-分页列表查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-分页列表查询", notes="${tableVo.ftlDescription}-分页列表查询")
-	@GetMapping(value = "/list")
-	public Result<?> queryPageList(${entityName} ${entityName?uncap_first},
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-		Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize);
-		IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-
-	/**
-     *   添加
-     * @param ${entityName?uncap_first}
-     * @return
-     */
-    @AutoLog(value = "${tableVo.ftlDescription}-添加")
-    @ApiOperation(value="${tableVo.ftlDescription}-添加", notes="${tableVo.ftlDescription}-添加")
-    @PostMapping(value = "/add")
-    public Result<?> add(@RequestBody ${entityName} ${entityName?uncap_first}) {
-        ${entityName?uncap_first}Service.save(${entityName?uncap_first});
-        return Result.OK("添加成功!");
-    }
-
-    /**
-     *  编辑
-     * @param ${entityName?uncap_first}
-     * @return
-     */
-    @AutoLog(value = "${tableVo.ftlDescription}-编辑")
-    @ApiOperation(value="${tableVo.ftlDescription}-编辑", notes="${tableVo.ftlDescription}-编辑")
-    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-    public Result<?> edit(@RequestBody ${entityName} ${entityName?uncap_first}) {
-        ${entityName?uncap_first}Service.updateById(${entityName?uncap_first});
-        return Result.OK("编辑成功!");
-    }
-
-    /**
-     * 通过id删除
-     * @param id
-     * @return
-     */
-    @AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
-    @ApiOperation(value="${tableVo.ftlDescription}-通过id删除", notes="${tableVo.ftlDescription}-通过id删除")
-    @DeleteMapping(value = "/delete")
-    public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-        ${entityName?uncap_first}Service.delMain(id);
-        return Result.OK("删除成功!");
-    }
-
-    /**
-     * 批量删除
-     * @param ids
-     * @return
-     */
-    @AutoLog(value = "${tableVo.ftlDescription}-批量删除")
-    @ApiOperation(value="${tableVo.ftlDescription}-批量删除", notes="${tableVo.ftlDescription}-批量删除")
-    @DeleteMapping(value = "/deleteBatch")
-    public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-        this.${entityName?uncap_first}Service.delBatchMain(Arrays.asList(ids.split(",")));
-        return Result.OK("批量删除成功!");
-    }
-
-    /**
-     * 导出
-     * @return
-     */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) {
-        return super.exportXls(request, ${entityName?uncap_first}, ${entityName}.class, "${tableVo.ftlDescription}");
-    }
-
-    /**
-     * 导入
-     * @return
-     */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, ${entityName}.class);
-    }
-	/*---------------------------------主表处理-end-------------------------------------*/
-	
-	<#list subTables as sub>
-
-    /*--------------------------------子表处理-${sub.ftlDescription}-begin----------------------------------------------*/
-	/**
-	 * 通过主表ID查询
-	 * @return
-	 */
-	@AutoLog(value = "${sub.ftlDescription}-通过主表ID查询")
-	@ApiOperation(value="${sub.ftlDescription}-通过主表ID查询", notes="${sub.ftlDescription}-通过主表ID查询")
-	@GetMapping(value = "/list${sub.entityName}ByMainId")
-    public Result<?> list${sub.entityName}ByMainId(${sub.entityName} ${sub.entityName?uncap_first},
-                                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                    HttpServletRequest req) {
-        QueryWrapper<${sub.entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${sub.entityName?uncap_first}, req.getParameterMap());
-        Page<${sub.entityName}> page = new Page<${sub.entityName}>(pageNo, pageSize);
-        IPage<${sub.entityName}> pageList = ${sub.entityName?uncap_first}Service.page(page, queryWrapper);
-        return Result.OK(pageList);
-    }
-
-	/**
-	 * 添加
-	 * @param ${sub.entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${sub.ftlDescription}-添加")
-	@ApiOperation(value="${sub.ftlDescription}-添加", notes="${sub.ftlDescription}-添加")
-	@PostMapping(value = "/add${sub.entityName}")
-	public Result<?> add${sub.entityName}(@RequestBody ${sub.entityName} ${sub.entityName?uncap_first}) {
-		${sub.entityName?uncap_first}Service.save(${sub.entityName?uncap_first});
-		return Result.OK("添加成功!");
-	}
-
-    /**
-	 * 编辑
-	 * @param ${sub.entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${sub.ftlDescription}-编辑")
-	@ApiOperation(value="${sub.ftlDescription}-编辑", notes="${sub.ftlDescription}-编辑")
-	@RequestMapping(value = "/edit${sub.entityName}", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit${sub.entityName}(@RequestBody ${sub.entityName} ${sub.entityName?uncap_first}) {
-		${sub.entityName?uncap_first}Service.updateById(${sub.entityName?uncap_first});
-		return Result.OK("编辑成功!");
-	}
-
-	/**
-	 * 通过id删除
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${sub.ftlDescription}-通过id删除")
-	@ApiOperation(value="${sub.ftlDescription}-通过id删除", notes="${sub.ftlDescription}-通过id删除")
-	@DeleteMapping(value = "/delete${sub.entityName}")
-	public Result<?> delete${sub.entityName}(@RequestParam(name="id",required=true) String id) {
-		${sub.entityName?uncap_first}Service.removeById(id);
-		return Result.OK("删除成功!");
-	}
-
-	/**
-	 * 批量删除
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "${sub.ftlDescription}-批量删除")
-	@ApiOperation(value="${sub.ftlDescription}-批量删除", notes="${sub.ftlDescription}-批量删除")
-	@DeleteMapping(value = "/deleteBatch${sub.entityName}")
-	public Result<?> deleteBatch${sub.entityName}(@RequestParam(name="ids",required=true) String ids) {
-	    this.${sub.entityName?uncap_first}Service.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-
-    /**
-     * 导出
-     * @return
-     */
-    @RequestMapping(value = "/export${sub.entityName}")
-    public ModelAndView export${sub.entityName}(HttpServletRequest request, ${sub.entityName} ${sub.entityName?uncap_first}) {
-		 // Step.1 组装查询条件
-		 QueryWrapper<${sub.entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${sub.entityName?uncap_first}, request.getParameterMap());
-		 LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-
-		 // Step.2 获取导出数据
-		 List<${sub.entityName}> pageList = ${sub.entityName?uncap_first}Service.list(queryWrapper);
-		 List<${sub.entityName}> exportList = null;
-
-		 // 过滤选中数据
-		 String selections = request.getParameter("selections");
-		 if (oConvertUtils.isNotEmpty(selections)) {
-			 List<String> selectionList = Arrays.asList(selections.split(","));
-			 exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
-		 } else {
-			 exportList = pageList;
-		 }
-
-		 // Step.3 AutoPoi 导出Excel
-		 ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-		 mv.addObject(NormalExcelConstants.FILE_NAME, "${sub.ftlDescription}"); //此处设置的filename无效 ,前端会重更新设置一下
-		 mv.addObject(NormalExcelConstants.CLASS, ${sub.entityName}.class);
-		 mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("${sub.ftlDescription}报表", "导出人:" + sysUser.getRealname(), "${sub.ftlDescription}"));
-		 mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
-		 return mv;
-    }
-
-    /**
-     * 导入
-     * @return
-     */
-    @RequestMapping(value = "/import${sub.entityName}/{mainId}")
-    public Result<?> import${sub.entityName}(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) {
-		 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-		 Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-		 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-			 MultipartFile file = entity.getValue();// 获取上传文件对象
-			 ImportParams params = new ImportParams();
-			 params.setTitleRows(2);
-			 params.setHeadRows(1);
-			 params.setNeedSave(true);
-			 try {
-				 List<${sub.entityName}> list = ExcelImportUtil.importExcel(file.getInputStream(), ${sub.entityName}.class, params);
-				 for (${sub.entityName} temp : list) {
-					<#list sub.foreignKeys as key>
-                    temp.set${key?cap_first}(mainId);
-                    </#list>
-				 }
-				 long start = System.currentTimeMillis();
-				 ${sub.entityName?uncap_first}Service.saveBatch(list);
-				 log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
-				 return Result.OK("文件导入成功!数据行数:" + list.size());
-			 } catch (Exception e) {
-				 log.error(e.getMessage(), e);
-				 return Result.error("文件导入失败:" + e.getMessage());
-			 } finally {
-				 try {
-					 file.getInputStream().close();
-				 } catch (IOException e) {
-					 e.printStackTrace();
-				 }
-			 }
-		 }
-		 return Result.error("文件导入失败!");
-    }
-
-    /*--------------------------------子表处理-${sub.ftlDescription}-end----------------------------------------------*/
-	</#list>
-
-
-
-
-}

+ 0 - 75
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai

@@ -1,75 +0,0 @@
-package ${bussiPackage}.${entityPackage}.entity;
-
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Data
-@TableName("${tableName}")
-@ApiModel(value="${tableName}对象", description="${tableVo.ftlDescription}")
-public class ${entityName} implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    <#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-    </#if>
-    <#elseif po.classType=='sel_tree'>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText?split(",")[2]}", dicCode = "${po.dictText?split(",")[0]}"'>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	@TableId(type = IdType.ASSIGN_ID)
-	<#else>
-		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-    @Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-    </#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-    @Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-    @Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-    </#if>
-		</#if>
-        <#if list_field_dictCode?length gt 1>
-    @Dict(${list_field_dictCode?substring(2)})
-        </#if>
-	</#if>
-    <#include "/common/blob.ftl">
-	</#list>
-}

+ 0 - 17
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai

@@ -1,17 +0,0 @@
-package ${bussiPackage}.${entityPackage}.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
-
-}

+ 0 - 5
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml

@@ -1,5 +0,0 @@
-<?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="${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper">
-
-</mapper>

+ 0 - 56
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai

@@ -1,56 +0,0 @@
-package ${bussiPackage}.${entityPackage}.service.impl;
-
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.mapper.${sub.entityName}Mapper;
-</#list>
-import ${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import java.io.Serializable;
-import java.util.List;
-import java.util.Collection;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Service
-public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements I${entityName}Service {
-
-	@Autowired
-	private ${entityName}Mapper ${entityName?uncap_first}Mapper;
-	<#list subTables as sub>
-	@Autowired
-	private ${sub.entityName}Mapper ${sub.entityName?uncap_first}Mapper;
-	</#list>
-	
-	@Override
-	@Transactional
-	public void delMain(String id) {
-		<#list subTables as sub>
-		${sub.entityName?uncap_first}Mapper.deleteByMainId(id);
-		</#list>
-		${entityName?uncap_first}Mapper.deleteById(id);
-	}
-
-	@Override
-	@Transactional
-	public void delBatchMain(Collection<? extends Serializable> idList) {
-		for(Serializable id:idList) {
-			<#list subTables as sub>
-			${sub.entityName?uncap_first}Mapper.deleteByMainId(id.toString());
-			</#list>
-			${entityName?uncap_first}Mapper.deleteById(id);
-		}
-	}
-	
-}

+ 0 - 445
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei

@@ -1,445 +0,0 @@
-<template>
-  <a-card :bordered="false">
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-<#assign query_field_no=0>
-<#assign query_flag=false>
-<#assign list_need_dict=false>
-<#assign list_need_category=false>
-<#assign list_need_pca=false>
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#if query_field_no==2>
-          <template v-if="toggleSearchStatus">
-	</#if>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-	<#if po.queryMode=='single'>
-          <#if query_field_no gt 1>  </#if><a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-            <#if po.classType=='sel_search'>
-              <#if query_field_no gt 1>  </#if><j-search-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dict="${po.dictTable},${po.dictText},${po.dictField}"/>
-            <#elseif po.classType=='sel_user'>
-              <#if query_field_no gt 1>  </#if><j-select-user-by-dep placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='sel_depart'>
-              <#if query_field_no gt 1>  </#if><j-select-depart placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='list_multi'>
-              <#if query_field_no gt 1>  </#if><j-multi-select-tag placeholder="请选择${po.filedComment}" dictCode="${query_field_dictCode?default("")}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='cat_tree'>
-              <#if query_field_no gt 1>  </#if><j-category-select placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" pcode="${po.dictField?default("")}"/>
-			<#elseif po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-            <#elseif po.classType=='pca'>
-              <#if query_field_no gt 1>  </#if><j-area-linkage type="cascader" v-model="queryParam.${po.fieldName}" placeholder="请选择省市区"/>
-            <#elseif po.classType=='popup'>
-              <#if query_field_no gt 1>  </#if><j-popup placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" code="${po.dictTable}" org-fields="${po.dictField}" dest-fields="${po.dictText}" :field="getPopupField('${po.dictText}')" :multi="${po.extendParams.popupMulti?c}"/>
-			<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-			<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-			<#if po.dictTable?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictTable},${po.dictText},${po.dictField}"/>
-			<#elseif po.dictField?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictField}"/>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	<#else>
-          <#if query_field_no gt 1>  </#if><a-col :xl="10" :lg="11" :md="12" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-			<#if po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最小值" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></a-input>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最大值" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	</#if>
-<#assign query_field_no=query_field_no+1>
-</#if>
-<#if !list_need_dict && po.fieldShowType!='popup' && po.dictField?default("")?trim?length gt 1>
-<#assign list_need_dict=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-<#t>
-<#if query_field_no gt 2>
-          </template>
-</#if>
-<#if query_flag>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-          </a-col>
-</#if>
-        </a-row>
-      </a-form>
-    </div>
-    <!-- 查询区域-END -->
-    
-    <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('${tableVo.ftlDescription}')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
-      </a-upload>
-      <!-- 高级查询区域 -->
-      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        class="j-table-force-nowrap"
-        :scroll="{x:true}"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'radio'}"
-        :customRow="clickThenSelect"
-        @change="handleTableChange">
-
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-          <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
-            下载
-          </a-button>
-        </template>
-        <#if list_need_pca>
-        <template slot="pcaSlot" slot-scope="text">
-          <div>{{ getPcaText(text) }}</div>
-        </template>
-        </#if>
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-      </a-table>
-    </div>
-
-    <a-tabs defaultActiveKey="1">
-    <#assign sub_seq=1>
-    <#list subTables as sub>
-      <a-tab-pane tab="${sub.ftlDescription}" key="${sub_seq}" <#if sub_seq gt 1>forceRender</#if>>
-        <${sub.entityName}List :mainId="selectedMainId" />
-      </a-tab-pane>
-    <#assign sub_seq=sub_seq+1>
-    </#list>
-    </a-tabs>
-
-    <${entityName?uncap_first}-modal ref="modalForm" @ok="modalFormOk"></${entityName?uncap_first}-modal>
-  </a-card>
-</template>
-
-<script>
-
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import ${entityName}Modal from './modules/${entityName}Modal'
-  import { getAction } from '@/api/manage'
-  <#list subTables as sub>
-  import ${sub.entityName}List from './${sub.entityName}List'
-  </#list>
-  <#if list_need_category>
-  import { loadCategoryData } from '@/api/api'
-  </#if>
-  <#if list_need_dict>
-  import {initDictOptions,filterMultiDictText} from '@/components/dict/JDictSelectUtil'
-  </#if>
-  <#if list_need_pca>
-  import Area from '@/components/_util/Area'
-  </#if>
-  import '@/assets/less/TableExpand.less'
-
-  export default {
-    name: "${entityName}List",
-    mixins:[JeecgListMixin],
-    components: {
-      <#list subTables as sub>
-      ${sub.entityName}List,
-      </#list>
-      ${entityName}Modal
-    },
-    data () {
-      return {
-        description: '${tableVo.ftlDescription}管理页面',
-        // 表头
-        columns: [
-    <#assign showColNum=0>
-	<#list columns as po>
-	<#if po.isShowList =='Y'>
-	<#assign showColNum=showColNum+1>
-          {
-            title:'${po.filedComment}',
-            align:"center",
-            <#if po.sort=='Y'>
-            sorter: true,
-            </#if>
-            <#if po.classType=='date'>
-            dataIndex: '${po.fieldName}',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
-            }
-            <#elseif po.fieldDbType=='Blob'>
-            dataIndex: '${po.fieldName}String'
-            <#elseif po.classType=='umeditor'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'htmlSlot'}
-            <#elseif po.classType=='pca'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'pcaSlot'}
-            <#elseif po.classType=='file'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'fileSlot'}
-            <#elseif po.classType=='image'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'imgSlot'}
-			<#elseif po.classType=='sel_tree' || po.classType=='sel_search' || po.classType=='list_multi' || po.classType=='list' || po.classType=='radio' || po.classType=='checkbox' ||  po.classType=='sel_depart'>
-            dataIndex: '${po.fieldName}_dictText',
-            <#elseif po.classType=='switch'>
-            dataIndex: '${po.fieldName}',
-            <#if po.dictField != 'is_open'>
-            customRender: (text) => (!text ? "" : (text == ${po.dictField}[0] ? "是" : "否"))
-            <#else>
-            customRender: (text) => (!text ? "" : (text == "Y" ? "是" : "否"))
-            </#if>
-            <#elseif po.classType=='cat_tree'>
-            <#if list_need_category>
-            dataIndex: '${po.fieldName}',
-            customRender:(text)=>{
-              if(!text){
-                return ''
-              }else{
-                return filterMultiDictText(this.dictOptions['${po.fieldName}'], text+"")
-              }
-            }
-            <#else>
-            dataIndex: '${po.fieldName}',
-            customRender:(text,record)=>{
-              if(!text){
-                return ''
-              }else{
-                return record['${po.dictText}']
-              }
-            }
-            </#if>
-			<#else>
-            dataIndex: '${po.fieldName}'
-			</#if>
-          },
-     </#if>
-     </#list>
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' },
-          }
-        ],
-        url: {
-          list: "/${entityPackage}/${entityName?uncap_first}/list",
-          delete: "/${entityPackage}/${entityName?uncap_first}/delete",
-          deleteBatch: "/${entityPackage}/${entityName?uncap_first}/deleteBatch",
-          exportXlsUrl: "/${entityPackage}/${entityName?uncap_first}/exportXls",
-          importExcelUrl: "${entityPackage}/${entityName?uncap_first}/importExcel",
-        },
-        dictOptions:{
-         <#list columns as po>
-         <#if (po.isQuery=='Y' || po.isShowList=='Y')>
-         <#if  po.classType='sel_depart' || po.classType=='list_multi' || po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-         ${po.fieldName}:[],
-         </#if>
-         </#if>
-         </#list>
-        },
-        /* 分页参数 */
-        ipagination:{
-          current: 1,
-          pageSize: 5,
-          pageSizeOptions: ['5', '10', '50'],
-          showTotal: (total, range) => {
-            return range[0] + "-" + range[1] + " 共" + total + "条"
-          },
-          showQuickJumper: true,
-          showSizeChanger: true,
-          total: 0
-        },
-        selectedMainId:'',
-        superFieldList:[],
-      }
-    },
-    created() {
-      <#if list_need_pca>
-      this.pcaData = new Area()
-      </#if>
-      this.getSuperFieldList();
-    },
-    computed: {
-      importExcelUrl: function(){
-        <#noparse>return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;</#noparse>
-      }
-    },
-    methods: {
-      <#if list_need_pca>
-      getPcaText(code){
-        return this.pcaData.getText(code);
-      },
-      </#if>
-      initDictConfig(){
-      <#list columns as po>
-      <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-        <#if po.classType='sel_depart'>
-        initDictOptions('sys_depart,depart_name,id').then((res) => {
-          if (res.success) {
-            this.$set(this.dictOptions, '${po.fieldName}', res.result)
-          }
-        })
-        <#elseif po.classType=='cat_tree' && list_need_category==true>
-        loadCategoryData({code:"${po.dictField}"}).then((res) => {
-          if (res.success) {
-            this.$set(this.dictOptions, '${po.fieldName}', res.result)
-          }
-        })
-        <#elseif po.classType=='radio' || po.classType=='checkbox'>
-        	<#assign list_field_dictCode="">
-	        <#if po.dictTable?default("")?trim?length gt 1>
-				<#assign list_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-		    <#elseif po.dictField?default("")?trim?length gt 1>
-				<#assign list_field_dictCode="${po.dictField}">
-		    </#if>
-        initDictOptions('${list_field_dictCode}').then((res) => {
-          if (res.success) {
-            this.$set(this.dictOptions, '${po.fieldName}', res.result)
-          }
-        })
-        </#if>
-      </#if>  
-      </#list>
-      },
-      clickThenSelect(record) {
-        return {
-          on: {
-            click: () => {
-              this.onSelectChange(record.id.split(","), [record]);
-            }
-          }
-        }
-      },
-      onClearSelected() {
-        this.selectedRowKeys = [];
-        this.selectionRows = [];
-        this.selectedMainId=''
-      },
-      onSelectChange(selectedRowKeys, selectionRows) {
-        this.selectedMainId=selectedRowKeys[0]
-        this.selectedRowKeys = selectedRowKeys;
-        this.selectionRows = selectionRows;
-      },
-      loadData(arg) {
-        if(!this.url.list){
-          this.$message.error("请设置url.list属性!")
-          return
-        }
-        //加载数据 若传入参数1则加载第一页的内容
-        if (arg === 1) {
-          this.ipagination.current = 1;
-        }
-        this.onClearSelected()
-        var params = this.getQueryParams();//查询条件
-        this.loading = true;
-        getAction(this.url.list, params).then((res) => {
-          if (res.success) {
-            this.dataSource = res.result.records;
-            this.ipagination.total = res.result.total;
-          }
-          if(res.code===510){
-            this.$message.warning(res.message)
-          }
-          this.loading = false;
-        })
-      },
-      getSuperFieldList(){
-        <#include "/common/utils.ftl">
-        let fieldList=[];
-         <#list columns as po>
-        fieldList.push(${superQueryFieldList(po)})
-         </#list>
-        this.superFieldList = fieldList
-      }
-    }
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less'
-</style>

+ 0 - 212
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei

@@ -1,212 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-  <j-modal
-    :title="title"
-    :width="width"
-    :visible="visible"
-    :confirmLoading="confirmLoading"
-    switchFullscreen
-    @ok="handleOk"
-    @cancel="handleCancel"
-    cancelText="关闭">
-    <a-spin :spinning="confirmLoading">
-      <a-form-model ref="form" :model="model" :rules="validatorRules">
-        <a-row>
-<#assign form_popup = false>
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign form_span = 24>
-<#list columns as po>
-<#if po.isShow =='Y' && po.fieldName != 'id'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-          <a-col :span="${form_span}">
-            <a-form-model-item label="${po.filedComment}" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${autoStringSuffixForModel(po)}">
-	<#if po.classType =='date'>
-              <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='datetime'>
-              <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='time'>
-               <j-time placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='popup'>
-	      <#assign form_popup=true>
-              <j-popup
-                v-model="model.${po.fieldName}"
-               field="${po.fieldName}"
-                org-fields="${po.dictField}"
-                dest-fields="${Format.underlineToHump(po.dictText)}"
-                code="${po.dictTable}"
-                :multi="${po.extendParams.popupMulti?c}"
-                @input="popupCallback"
-                <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.classType =='sel_depart'>
-              <j-select-depart v-model="model.${po.fieldName}" multi <#if po.readonly=='Y'>disabled</#if>/>
-<#elseif po.classType =='switch'>
-              <j-switch v-model="model.${po.fieldName}" <#if po.dictField!= 'is_open'>:options="${po.dictField}"</#if> <#if po.readonly=='Y'>disabled</#if>></j-switch>
-	<#elseif po.classType =='pca'>
-		      <j-area-linkage type="cascader" v-model="model.${po.fieldName}" placeholder="请输入省市区" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='markdown'>
-	          <j-markdown-editor v-model="model.${autoStringSuffixForModel(po)}" id="${po.fieldName}"></j-markdown-editor>
-    <#elseif po.classType =='password'>
-	          <a-input-password v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='sel_user'>
-              <j-select-user-by-dep v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='textarea'>
-              <a-textarea v-model="model.${autoStringSuffixForModel(po)}" rows="4" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list' || po.classType=='radio'>
-              <j-dict-select-tag type="${po.classType}" v-model="model.${po.fieldName}" dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-              <j-multi-select-tag type="${po.classType}" v-model="model.${po.fieldName}" dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='sel_search'>
-              <j-search-select-tag v-model="model.${po.fieldName}" dict="${form_field_dictCode}" <#if po.readonly=='Y'>disabled</#if> />
-    <#elseif po.classType=='cat_tree'>
-    	<#assign form_cat_tree = true>
-              <j-category-select v-model="model.${po.fieldName}" pcode="${po.dictField?default("")}" placeholder="请选择${po.filedComment}" <#if po.dictText?default("")?trim?length gt 1>back="${dashedToCamel(po.dictText)}" @change="handleCategoryChange"</#if> <#if po.readonly=='Y'>disabled</#if>/>
-    	<#if po.dictText?default("")?trim?length gt 1>
-    	<#assign form_cat_back = "${po.dictText}">
-    	</#if>
-	<#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-              <a-input-number v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='file'>
-              <j-upload v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if> <#if po.uploadnum??>:number=${po.uploadnum}</#if>></j-upload>
-	<#elseif po.classType=='image'>
-              <j-image-upload isMultiple <#if po.uploadnum??>:number=${po.uploadnum}</#if> v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>></j-image-upload>
-	<#elseif po.classType=='umeditor'>
-              <j-editor v-model="model.${autoStringSuffixForModel(po)}" <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.fieldDbType=='Blob'>
-              <a-input v-model="model.${autoStringSuffixForModel(po)}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>></a-input>
-    <#elseif po.classType == 'sel_tree'>
-              <j-tree-select
-                ref="treeSelect"
-                placeholder="请选择${po.filedComment}"
-                v-model="model.${po.fieldName}"
-                <#if po.dictText??>
-                <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-                dict="${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}"
-                <#elseif po.dictText?split(',')[1]??>
-                pidField="${po.dictText?split(',')[1]}"
-                <#elseif po.dictText?split(',')[3]??>
-                hasChildField="${po.dictText?split(',')[3]}"
-                </#if>
-                </#if>
-                pidValue="${po.dictField}"
-                <#if po.readonly=='Y'>disabled</#if>>
-              </j-tree-select>
-	<#else>
-              <a-input v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>></a-input>
-    </#if>
-            </a-form-model-item>
-          </a-col>
-</#if>
-</#list>
-        </a-row>
-      </a-form-model>
-    </a-spin>
-  </j-modal>
-</template>
-
-<script>
-
-  import { httpAction } from '@/api/manage'
-  import { validateDuplicateValue } from '@/utils/util'
-
-  export default {
-    name: "${entityName}Modal",
-    components: { 
-    },
-    data () {
-      return {
-        title:"操作",
-        width:800,
-        visible: false,
-        model:{
-        <#include "/common/init/initValue.ftl">
-        },
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-
-        confirmLoading: false,
-        <#include "/common/validatorRulesTemplate/main.ftl">
-        url: {
-          add: "/${entityPackage}/${entityName?uncap_first}/add",
-          edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-        }
-     
-      }
-    },
-    created () {
-    //备份model原始值
-      this.modelDefault = JSON.parse(JSON.stringify(this.model));
-    },
-    methods: {
-      add () {
-        this.edit(this.modelDefault);
-      },
-      edit (record) {
-        this.model = Object.assign({}, record);
-        this.visible = true;
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-        this.$refs.form.clearValidate();
-      },
-      handleOk () {
-        const that = this;
-        // 触发表单验证
-        this.$refs.form.validate(valid => {
-          if (valid) {
-            that.confirmLoading = true;
-            let httpurl = '';
-            let method = '';
-            if(!this.model.id){
-              httpurl+=this.url.add;
-              method = 'post';
-            }else{
-              httpurl+=this.url.edit;
-               method = 'put';
-            }
-            httpAction(httpurl,this.model,method).then((res)=>{
-              if(res.success){
-                that.$message.success(res.message);
-                that.$emit('ok');
-              }else{
-                that.$message.warning(res.message);
-              }
-            }).finally(() => {
-              that.confirmLoading = false;
-              that.close();
-            })
-          }else{
-             return false
-          }
-        })
-      },
-      handleCancel () {
-        this.close()
-      },
-       <#if form_popup>
-      popupCallback(value,row){
-        this.model = Object.assign(this.model, row);
-      },
-       </#if>
-      <#if form_cat_tree>
-      handleCategoryChange(value,backObj){
-        this.model = Object.assign(backObj,this.model);
-      }
-      </#if>
-
-      
-    }
-  }
-</script>

+ 0 - 236
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei

@@ -1,236 +0,0 @@
-<template>
-  <div>
-<#assign list_need_category=false>
-<#assign list_need_pca=false>
-<#assign bpm_flag=false>
-
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-    <!--引用表格-->
-   <BasicTable @register="registerTable" :rowSelection="rowSelection">
-     <!--插槽:table标题-->
-      <template #tableTitle>
-          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
-          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-          <a-dropdown v-if="selectedRowKeys.length > 0">
-              <template #overlay>
-                <a-menu>
-                  <a-menu-item key="1" @click="batchHandleDelete">
-                    <Icon icon="ant-design:delete-outlined"></Icon>
-                    删除
-                  </a-menu-item>
-                </a-menu>
-              </template>
-              <a-button>批量操作
-                <Icon icon="mdi:chevron-down"></Icon>
-              </a-button>
-        </a-dropdown>
-      </template>
-       <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
-      </template>
-      <!--字段回显插槽-->
-      <template #htmlSlot="{text}">
-         <div v-html="text"></div>
-      </template>
-      <template #fileSlot="{text}">
-         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
-      </template>
-    </BasicTable>
-   <!--子表表格tab-->
-    <a-tabs defaultActiveKey="1">
-        <#assign sub_seq=1>
-        <#list subTables as sub>
-        <a-tab-pane tab="${sub.ftlDescription}" key="${sub_seq}" <#if sub_seq gt 1>forceRender</#if>>
-           <${sub.entityName}List/>
-        </a-tab-pane>
-        <#assign sub_seq=sub_seq+1>
-        </#list>
-     </a-tabs>
-    <!-- 表单区域 -->
-    <${entityName}Modal @register="registerModal" @success="handleSuccess"></${entityName}Modal>
-  </div>
-</template>
-
-<script lang="ts" name="${entityPackage}-${entityName?uncap_first}" setup>
-  import {ref, computed, unref,provide} from 'vue';
-  import {BasicTable, useTable, TableAction} from '/@/components/Table';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import {useModal} from '/@/components/Modal';
-  import ${entityName}Modal from './components/${entityName}Modal.vue'
-<#list subTables as sub>
-  import ${sub.entityName}List from './${sub.entityName}List.vue'
-</#list>
-  import {columns, searchFormSchema} from './${entityName?uncap_first}.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './${entityName?uncap_first}.api';
-  <#if list_need_category>
-  import { loadCategoryData } from '/@/api/common/api'
-  import { getAuthCache, setAuthCache } from '/@/utils/auth';
-  import { DB_DICT_DATA_KEY } from '/@/enums/cacheEnum';
-  </#if>
-  //注册model
-  const [registerModal, {openModal}] = useModal();
-   //注册table数据
-  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
-      tableProps:{
-           title: '${tableVo.ftlDescription}',
-           api: list,
-           columns,
-           canResize:false,
-           rowSelection: {type: 'radio'},
-           formConfig: {
-                schemas: searchFormSchema,
-                fieldMapToTime: [
-                <#list columns as po>
-                <#if po.isQuery=='Y'>
-                <#if po.queryMode!='single'>
-                <#if po.classType=='date'>
-                   ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD'],
-                <#elseif po.classType=='datetime'>
-                   ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD HH:mm:ss'],
-                </#if>
-                </#if>
-                </#if>
-                </#list>
-                ],
-            },
-            actionColumn: {
-               width: 120,
-            },
-            pagination:{
-                current: 1,
-                pageSize: 5,
-                pageSizeOptions: ['5', '10', '20'],
-            }
-        },
-        exportConfig: {
-            name:"${tableVo.ftlDescription}",
-            url: getExportUrl,
-        },
-        importConfig: {
-            url: getImportUrl
-        },
-    })
-
-  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-
-  const mainId = computed(() => (unref(selectedRowKeys).length > 0 ? unref(selectedRowKeys)[0] : ''));
-  //下发 mainId,子组件接收
-  provide('mainId', mainId);
-   /**
-    * 新增事件
-    */
-  function handleAdd() {
-     openModal(true, {
-       isUpdate: false,
-       showFooter: true,
-     });
-  }
-   /**
-    * 编辑事件
-    */
-  function handleEdit(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: true,
-     });
-   }
-   /**
-    * 详情
-   */
-  function handleDetail(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: false,
-     });
-   }
-   /**
-    * 删除事件
-    */
-  async function handleDelete(record) {
-     await deleteOne({id: record.id}, reload);
-   }
-   /**
-    * 批量删除事件
-    */
-  async function batchHandleDelete() {
-     await batchDelete({ids: selectedRowKeys.value}, reload);
-   }
-   /**
-    * 成功回调
-    */
-  function handleSuccess() {
-      reload();
-   }
-   /**
-      * 操作栏
-      */
-  function getTableAction(record){
-       return [
-         {
-           label: '编辑',
-           onClick: handleEdit.bind(null, record),
-         }
-       ]
-   }
-     /**
-        * 下拉操作栏
-        */
-  function getDropDownAction(record){
-      return [
-           {
-             label: '详情',
-             onClick: handleDetail.bind(null, record),
-           }, {
-             label: '删除',
-             popConfirm: {
-               title: '是否确认删除',
-               confirm: handleDelete.bind(null, record),
-             }
-           }
-      ]
-   }
-    <#if list_need_category>
-   /**
-    * 初始化字典配置
-   */
-    function initDictConfig(){
-     <#list columns as po>
-     <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-       <#if po.classType=='cat_tree' && list_need_category==true>
-       loadCategoryData({code:'${po.dictField?default("")}'}).then((res) => {
-         if (res) {
-             let allDictDate = getAuthCache(DB_DICT_DATA_KEY);
-             if(!allDictDate['${po.dictField?default("")}']){
-               Object.assign(allDictDate,{'${po.dictField?default("")}':res})
-             }
-             setAuthCache(DB_DICT_DATA_KEY,allDictDate)
-         }
-       })
-       </#if>
-     </#if>
-     </#list>
-   }
-   initDictConfig();
-    </#if>
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 113
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi

@@ -1,113 +0,0 @@
-import {defHttp} from '/@/utils/http/axios';
-import {Modal} from 'ant-design-vue';
-
-enum Api {
-  list = '/${entityPackage}/${entityName?uncap_first}/list',
-  save='/${entityPackage}/${entityName?uncap_first}/add',
-  edit='/${entityPackage}/${entityName?uncap_first}/edit',
-  deleteOne = '/${entityPackage}/${entityName?uncap_first}/delete',
-  deleteBatch = '/${entityPackage}/${entityName?uncap_first}/deleteBatch',
-  importExcel = '/${entityPackage}/${entityName?uncap_first}/importExcel',
-  exportXls = '/${entityPackage}/${entityName?uncap_first}/exportXls',
-<#list subTables as sub><#rt/>
-  ${sub.entityName?uncap_first}List = '/${entityPackage}/${entityName?uncap_first}/list${sub.entityName}ByMainId',
-  ${sub.entityName?uncap_first}Save='/${entityPackage}/${entityName?uncap_first}/add${sub.entityName}',
-  ${sub.entityName?uncap_first}Edit='/${entityPackage}/${entityName?uncap_first}/edit${sub.entityName}',
-  ${sub.entityName?uncap_first}Delete = '/${entityPackage}/${entityName?uncap_first}/delete${sub.entityName}',
-  ${sub.entityName?uncap_first}DeleteBatch = '/${entityPackage}/${entityName?uncap_first}/deleteBatch${sub.entityName}',
-  ${sub.entityName?uncap_first}ExportXlsUrl = '/${entityPackage}/${entityName?uncap_first}/export${sub.entityName}',
-  ${sub.entityName?uncap_first}ImportUrl = '/${entityPackage}/${entityName?uncap_first}/import${sub.entityName}',
-</#list>
-}
-/**
- * 导出api
- * @param params
- */
-export const getExportUrl = Api.exportXls;
-
-/**
- * 导入api
- */
-export const getImportUrl = Api.importExcel;
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-
-/**
- * 删除单个
- */
-export const deleteOne = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- */
-export const batchDelete = (params, handleSuccess) => {
-  Modal.confirm({
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- */
-export const saveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
-}
-<#list subTables as sub><#rt/>
-/**
- * 列表接口
- * @param params
- */
-export const ${sub.entityName?uncap_first}List = (params) =>
-  defHttp.get({url: Api.${sub.entityName?uncap_first}List, params});
-
-/**
- * 删除单个
- */
-export const ${sub.entityName?uncap_first}Delete = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.${sub.entityName?uncap_first}Delete, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- */
-export const ${sub.entityName?uncap_first}DeleteBatch = (params, handleSuccess) => {
-  Modal.confirm({
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.${sub.entityName?uncap_first}DeleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- */
-export const  ${sub.entityName?uncap_first}SaveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.${sub.entityName?uncap_first}Edit : Api.${sub.entityName?uncap_first}Save;
-  return defHttp.post({url: url, params});
-}
-</#list>

+ 0 - 601
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi

@@ -1,601 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-//列表数据
-export const columns: BasicColumn[] = [
- <#list columns as po>
-   <#if po.isShowList =='Y' && po.fieldName !='id'>
-   {
-    title: '${po.filedComment}',
-    align:"center",
-    <#if po.sort=='Y'>
-    sorter: true,
-   </#if>
-    <#if po.classType=='date'>
-    dataIndex: '${po.fieldName}',
-    customRender:({text}) =>{
-      return !text?"":(text.length>10?text.substr(0,10):text)
-    },
-    <#elseif po.fieldDbType=='Blob'>
-    dataIndex: '${po.fieldName}String'
-    <#elseif po.classType=='umeditor'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'htmlSlot' },
-    <#elseif po.classType=='pca'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'pcaSlot' },//TODO 未翻译
-   <#elseif po.classType=='file'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'fileSlot' },
-   <#elseif po.classType=='image'>
-    dataIndex: '${po.fieldName}',
-    customRender:render.renderAvatar,
-   <#elseif po.classType=='switch'>
-    dataIndex: '${po.fieldName}',
-<#assign switch_extend_arr=['Y','N']>
-<#if po.dictField?default("")?contains("[")>
-<#assign switch_extend_arr=po.dictField?eval>
-</#if>
-<#list switch_extend_arr as a>
-<#if a_index == 0>
-<#assign switch_extend_arr1=a>
-<#else>
-<#assign switch_extend_arr2=a>
-</#if>
-</#list>
-    customRender:({text}) => {
-       return  render.renderSwitch(text, [{text:'是',value:'${switch_extend_arr1}'},{text:'否',value:'${switch_extend_arr2}'}])
-     },
-   <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-    dataIndex: '${po.fieldName}_dictText'
-   <#elseif po.classType=='cat_tree'>
-    dataIndex: '${po.fieldName}',
-    <#if po.dictText?default("")?trim?length == 0>
-    customRender:({text}) => {
-       return  render.renderCategoryTree(text,'${po.dictField?default("")}')
-   },
-   <#else>
-    customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-   </#if>
-   <#else>
-    dataIndex: '${po.fieldName}'
-   </#if>
-   },
-   </#if>
- </#list>
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-<#if po.queryMode=='single'>
-	{
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='sel_search'>
-      component: 'JSearchSelect',
-      componentProps:{
-         dict:"${po.dictTable},${po.dictText},${po.dictField}"
-      },
-<#elseif po.classType=='sel_user'>
-      component: 'JSelectUserByDept',
-<#elseif po.classType=='switch'>
-      component: 'JSwitch',
-      componentProps:{
-           <#if po.dictField != 'is_open'>
-           options:"${po.dictField}"
-           </#if>
-       },
- <#elseif po.classType=='sel_depart'>
-      component: 'JSelectDept',
- <#elseif po.classType=='list_multi'>
-      component: 'JMultiSelectTag',//暂无该组件
-      componentProps:{
-          dictCode:"query_field_dictCode?default("")"
-      },
- <#elseif po.classType=='cat_tree'>
-      component: 'JCategorySelect',
-      componentProps:{
-          pcode:"${po.dictField?default("")}",//back和事件未添加,暂时有问题
-      },
-<#elseif po.classType=='date'>
-      component: 'DatePicker',
-<#elseif po.classType=='datetime'>
-      component: 'DatePicker',
-      componentProps: {
-         showTime:true
-       },
-<#elseif po.classType=='pca'>
-      component: 'JAreaLinkage',
-<#elseif po.classType=='popup'>
-      component: 'JPopup',
-      componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:"${po.dictField}",
-             multi:${po.extendParams.popupMulti?c},
-         }
-     },
-<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-      component: 'JDictSelectTag',
-      componentProps:{
-       <#if po.dictTable?default("")?trim?length gt 1>
-          dictCode:"${po.dictTable},${po.dictText},${po.dictField}"
-       <#elseif po.dictField?default("")?trim?length gt 1>
-          dictCode:"${po.dictField}"
-        </#if>
-      },
-<#else>
-      component: 'Input',
-</#if>
-      colProps: {span: 6},
- 	},
-<#else>
-     {
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='date'>
-      component: 'RangePicker',
-<#elseif po.classType=='datetime'>
-      component: 'RangePicker',
-      componentProps: {
-          showTime:true
-      },
-<#else>
-      component: 'Input', //TODO 范围查询
-</#if>
-      colProps: {span: 6},
-	},
-</#if>
-</#if>
-</#list>
-<#-- 结束循环 -->
-];
-
-//表单数据
-export const formSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list columns as po><#rt/>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];
-
-<#list subTables as sub>
-//子表列表数据
-export const ${sub.entityName?uncap_first}Columns: BasicColumn[] = [
- <#list sub.originalColumns as po>
-   <#if po.isShowList =='Y' && po.fieldName !='id'>
-   {
-    title: '${po.filedComment}',
-    align:"center",
-    <#if po.sort=='Y'>
-    sorter: true,
-   </#if>
-    <#if po.classType=='date'>
-    dataIndex: '${po.fieldName}',
-    customRender:({text}) =>{
-      return !text?"":(text.length>10?text.substr(0,10):text)
-    },
-    <#elseif po.fieldDbType=='Blob'>
-    dataIndex: '${po.fieldName}String'
-    <#elseif po.classType=='umeditor'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'htmlSlot' },
-    <#elseif po.classType=='pca'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'pcaSlot' },//TODO 未翻译
-   <#elseif po.classType=='file'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'fileSlot' },
-   <#elseif po.classType=='image'>
-    dataIndex: '${po.fieldName}',
-    customRender:render.renderAvatar,
-   <#elseif po.classType=='switch'>
-    dataIndex: '${po.fieldName}',
-<#assign switch_extend_arr=['Y','N']>
-<#if po.dictField?default("")?contains("[")>
-<#assign switch_extend_arr=po.dictField?eval>
-</#if>
-<#list switch_extend_arr as a>
-<#if a_index == 0>
-<#assign switch_extend_arr1=a>
-<#else>
-<#assign switch_extend_arr2=a>
-</#if>
-</#list>
-    customRender:({text}) => {
-       return  render.renderSwitch(text, [{text:'是',value:'${switch_extend_arr1}'},{text:'否',value:'${switch_extend_arr2}'}])
-     },
-   <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-    dataIndex: '${po.fieldName}_dictText'
-   <#elseif po.classType=='cat_tree'>
-    dataIndex: '${po.fieldName}',
-    <#if po.dictText?default("")?trim?length == 0>
-    customRender:({text}) => {
-       return  render.renderCategoryTree(text,'${po.dictField?default("")}')
-   },
-   <#else>
-    customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-   </#if>
-   <#else>
-    dataIndex: '${po.fieldName}'
-   </#if>
-   },
-   </#if>
- </#list>
-];
-//子表表单数据
-export const ${sub.entityName?uncap_first}FormSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list sub.originalColumns as po><#rt/>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];
-</#list>

+ 0 - 58
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/erp/onetomany/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei

@@ -1,58 +0,0 @@
-<template>
-  <BasicModal v-bind="$attrs" @register="registerModal" :title="title" @ok="handleSubmit">
-      <BasicForm @register="registerForm"/>
-  </BasicModal>
-</template>
-
-<script lang="ts" setup>
-    import {ref, computed, unref} from 'vue';
-    import {BasicModal, useModalInner} from '/@/components/Modal';
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import {formSchema} from '../${entityName?uncap_first}.data';
-    import {saveOrUpdate} from '../${entityName?uncap_first}.api';
-    // Emits声明
-    const emit = defineEmits(['register','success']);
-    const isUpdate = ref(true);
-    //表单配置
-    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
-        labelWidth: 150,
-        schemas: formSchema,
-        showActionButtonGroup: false,
-    });
-    //表单赋值
-    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
-        //重置表单
-        await resetFields();
-        setModalProps({confirmLoading: false,showCancelBtn:!!data?.showFooter,showOkBtn:!!data?.showFooter});
-        isUpdate.value = !!data?.isUpdate;
-        if (unref(isUpdate)) {
-            //表单赋值
-            await setFieldsValue({
-                ...data.record,
-            });
-        }
-        // 隐藏底部时禁用整个表单
-       setProps({ disabled: !data?.showFooter })
-    });
-    //设置标题
-    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
-    //表单提交事件
-    async function handleSubmit(v) {
-        try {
-            let values = await validate();
-            setModalProps({confirmLoading: true});
-            //提交表单
-            await saveOrUpdate(values, isUpdate.value);
-            //关闭弹窗
-            closeModal();
-            //刷新列表
-            emit('success');
-        } finally {
-            setModalProps({confirmLoading: false});
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 275
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai

@@ -1,275 +0,0 @@
-package ${bussiPackage}.${entityPackage}.controller;
-
-import java.io.UnsupportedEncodingException;
-import java.io.IOException;
-import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.jeecg.common.system.vo.LoginUser;
-import org.apache.shiro.SecurityUtils;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.vo.${entityName}Page;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.service.I${sub.entityName}Service;
-</#list>
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-
- /**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Api(tags="${tableVo.ftlDescription}")
-@RestController
-@RequestMapping("/${entityPackage}/${entityName?uncap_first}")
-@Slf4j
-public class ${entityName}Controller {
-	@Autowired
-	private I${entityName}Service ${entityName?uncap_first}Service;
-	<#list subTables as sub>
-	@Autowired
-	private I${sub.entityName}Service ${sub.entityName?uncap_first}Service;
-	</#list>
-	
-	/**
-	 * 分页列表查询
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-分页列表查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-分页列表查询", notes="${tableVo.ftlDescription}-分页列表查询")
-	@GetMapping(value = "/list")
-	public Result<?> queryPageList(${entityName} ${entityName?uncap_first},
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-		Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize);
-		IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-	
-	/**
-	 *   添加
-	 *
-	 * @param ${entityName?uncap_first}Page
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-添加")
-	@ApiOperation(value="${tableVo.ftlDescription}-添加", notes="${tableVo.ftlDescription}-添加")
-	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody ${entityName}Page ${entityName?uncap_first}Page) {
-		${entityName} ${entityName?uncap_first} = new ${entityName}();
-		BeanUtils.copyProperties(${entityName?uncap_first}Page, ${entityName?uncap_first});
-		${entityName?uncap_first}Service.saveMain(${entityName?uncap_first}, <#list subTables as sub>${entityName?uncap_first}Page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 *  编辑
-	 *
-	 * @param ${entityName?uncap_first}Page
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-编辑")
-	@ApiOperation(value="${tableVo.ftlDescription}-编辑", notes="${tableVo.ftlDescription}-编辑")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody ${entityName}Page ${entityName?uncap_first}Page) {
-		${entityName} ${entityName?uncap_first} = new ${entityName}();
-		BeanUtils.copyProperties(${entityName?uncap_first}Page, ${entityName?uncap_first});
-		${entityName} ${entityName?uncap_first}Entity = ${entityName?uncap_first}Service.getById(${entityName?uncap_first}.getId());
-		if(${entityName?uncap_first}Entity==null) {
-			return Result.error("未找到对应数据");
-		}
-		${entityName?uncap_first}Service.updateMain(${entityName?uncap_first}, <#list subTables as sub>${entityName?uncap_first}Page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 *   通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id删除", notes="${tableVo.ftlDescription}-通过id删除")
-	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		${entityName?uncap_first}Service.delMain(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-批量删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-批量删除", notes="${tableVo.ftlDescription}-批量删除")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.${entityName?uncap_first}Service.delBatchMain(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id查询", notes="${tableVo.ftlDescription}-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
-		${entityName} ${entityName?uncap_first} = ${entityName?uncap_first}Service.getById(id);
-		if(${entityName?uncap_first}==null) {
-			return Result.error("未找到对应数据");
-		}
-		return Result.OK(${entityName?uncap_first});
-
-	}
-	
-	<#list subTables as sub>
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${sub.ftlDescription}-通过主表ID查询")
-	@ApiOperation(value="${sub.ftlDescription}-通过主表ID查询", notes="${sub.ftlDescription}-通过主表ID查询")
-	@GetMapping(value = "/query${sub.entityName}ByMainId")
-	public Result<?> query${sub.entityName}ListByMainId(@RequestParam(name="id",required=true) String id) {
-		List<${sub.entityName}> ${sub.entityName?uncap_first}List = ${sub.entityName?uncap_first}Service.selectByMainId(id);
-		<#-- 包裹分页对象,用于翻译注解 -->
-		IPage <${sub.entityName}> page = new Page<>();
-		page.setRecords(${sub.entityName?uncap_first}List);
-		page.setTotal(${sub.entityName?uncap_first}List.size());
-		return Result.OK(page);
-	}
-	</#list>
-
-    /**
-    * 导出excel
-    *
-    * @param request
-    * @param ${entityName?uncap_first}
-    */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) {
-      // Step.1 组装查询条件查询数据
-      QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, request.getParameterMap());
-      LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-
-      //Step.2 获取导出数据
-      List<${entityName}> queryList = ${entityName?uncap_first}Service.list(queryWrapper);
-      // 过滤选中数据
-      String selections = request.getParameter("selections");
-      List<${entityName}> ${entityName?uncap_first}List = new ArrayList<${entityName}>();
-      if(oConvertUtils.isEmpty(selections)) {
-          ${entityName?uncap_first}List = queryList;
-      }else {
-          List<String> selectionList = Arrays.asList(selections.split(","));
-          ${entityName?uncap_first}List = queryList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
-      }
-
-      // Step.3 组装pageList
-      List<${entityName}Page> pageList = new ArrayList<${entityName}Page>();
-      for (${entityName} main : ${entityName?uncap_first}List) {
-          ${entityName}Page vo = new ${entityName}Page();
-          BeanUtils.copyProperties(main, vo);
-          <#list subTables as sub>
-          List<${sub.entityName}> ${sub.entityName?uncap_first}List = ${sub.entityName?uncap_first}Service.selectByMainId(main.getId());
-          vo.set${sub.entityName}List(${sub.entityName?uncap_first}List);
-          </#list>
-          pageList.add(vo);
-      }
-
-      // Step.4 AutoPoi 导出Excel
-      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-      mv.addObject(NormalExcelConstants.FILE_NAME, "${tableVo.ftlDescription}列表");
-      mv.addObject(NormalExcelConstants.CLASS, ${entityName}Page.class);
-      mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("${tableVo.ftlDescription}数据", "导出人:"+sysUser.getRealname(), "${tableVo.ftlDescription}"));
-      mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-      return mv;
-    }
-
-    /**
-    * 通过excel导入数据
-    *
-    * @param request
-    * @param response
-    * @return
-    */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-      Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-      for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-          MultipartFile file = entity.getValue();// 获取上传文件对象
-          ImportParams params = new ImportParams();
-          params.setTitleRows(2);
-          params.setHeadRows(1);
-          params.setNeedSave(true);
-          try {
-              List<${entityName}Page> list = ExcelImportUtil.importExcel(file.getInputStream(), ${entityName}Page.class, params);
-              for (${entityName}Page page : list) {
-                  ${entityName} po = new ${entityName}();
-                  BeanUtils.copyProperties(page, po);
-                  ${entityName?uncap_first}Service.saveMain(po, <#list subTables as sub>page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-              }
-              return Result.OK("文件导入成功!数据行数:" + list.size());
-          } catch (Exception e) {
-              log.error(e.getMessage(),e);
-              return Result.error("文件导入失败:"+e.getMessage());
-          } finally {
-              try {
-                  file.getInputStream().close();
-              } catch (IOException e) {
-                  e.printStackTrace();
-              }
-          }
-      }
-      return Result.OK("文件导入失败!");
-    }
-
-}

+ 0 - 75
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai

@@ -1,75 +0,0 @@
-package ${bussiPackage}.${entityPackage}.entity;
-
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@ApiModel(value="${tableName}对象", description="${tableVo.ftlDescription}")
-@Data
-@TableName("${tableName}")
-public class ${entityName} implements Serializable {
-    private static final long serialVersionUID = 1L;
-
- <#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-    </#if>
-    <#elseif po.classType=='sel_tree'>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText?split(",")[2]}", dicCode = "${po.dictText?split(",")[0]}"'>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	@TableId(type = IdType.ASSIGN_ID)
-	<#else>
-		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-		</#if>
-      <#if list_field_dictCode?length gt 1>
-    @Dict(${list_field_dictCode?substring(2)})
-      </#if>
-	</#if>
-    <#include "/common/blob.ftl">
-	</#list>
-}

+ 0 - 17
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai

@@ -1,17 +0,0 @@
-package ${bussiPackage}.${entityPackage}.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
-
-}

+ 0 - 5
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml

@@ -1,5 +0,0 @@
-<?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="${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper">
-
-</mapper>

+ 0 - 105
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai

@@ -1,105 +0,0 @@
-package ${bussiPackage}.${entityPackage}.service.impl;
-
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.mapper.${sub.entityName}Mapper;
-</#list>
-import ${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import java.io.Serializable;
-import java.util.List;
-import java.util.Collection;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Service
-public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements I${entityName}Service {
-
-	@Autowired
-	private ${entityName}Mapper ${entityName?uncap_first}Mapper;
-	<#list subTables as sub>
-	@Autowired
-	private ${sub.entityName}Mapper ${sub.entityName?uncap_first}Mapper;
-	</#list>
-	
-	@Override
-	@Transactional
-	public void saveMain(${entityName} ${entityName?uncap_first}, <#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
-		${entityName?uncap_first}Mapper.insert(${entityName?uncap_first});
-		<#list subTables as sub>
-		if(${sub.entityName?uncap_first}List!=null && ${sub.entityName?uncap_first}List.size()>0) {
-			for(${sub.entityName} entity:${sub.entityName?uncap_first}List) {
-				<#list sub.foreignKeys as key>
-				//外键设置
-				<#if key?lower_case?index_of("${primaryKeyField}")!=-1>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${primaryKeyField?cap_first}());
-				<#else>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${key}());
-				</#if>
-				</#list>
-				${sub.entityName?uncap_first}Mapper.insert(entity);
-			}
-		}
-		</#list>
-	}
-
-	@Override
-	@Transactional
-	public void updateMain(${entityName} ${entityName?uncap_first},<#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
-		${entityName?uncap_first}Mapper.updateById(${entityName?uncap_first});
-		
-		//1.先删除子表数据
-		<#list subTables as sub>
-		${sub.entityName?uncap_first}Mapper.deleteByMainId(${entityName?uncap_first}.getId());
-		</#list>
-		
-		//2.子表数据重新插入
-		<#list subTables as sub>
-		if(${sub.entityName?uncap_first}List!=null && ${sub.entityName?uncap_first}List.size()>0) {
-			for(${sub.entityName} entity:${sub.entityName?uncap_first}List) {
-				<#list sub.foreignKeys as key>
-				//外键设置
-				<#if key?lower_case?index_of("${primaryKeyField}")!=-1>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${primaryKeyField?cap_first}());
-				<#else>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${key}());
-				</#if>
-				</#list>
-				${sub.entityName?uncap_first}Mapper.insert(entity);
-			}
-		}
-		</#list>
-	}
-
-	@Override
-	@Transactional
-	public void delMain(String id) {
-		<#list subTables as sub>
-		${sub.entityName?uncap_first}Mapper.deleteByMainId(id);
-		</#list>
-		${entityName?uncap_first}Mapper.deleteById(id);
-	}
-
-	@Override
-	@Transactional
-	public void delBatchMain(Collection<? extends Serializable> idList) {
-		for(Serializable id:idList) {
-			<#list subTables as sub>
-			${sub.entityName?uncap_first}Mapper.deleteByMainId(id.toString());
-			</#list>
-			${entityName?uncap_first}Mapper.deleteById(id);
-		}
-	}
-	
-}

+ 0 - 84
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai

@@ -1,84 +0,0 @@
-package ${bussiPackage}.${entityPackage}.vo;
-
-import java.util.List;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-import lombok.Data;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecgframework.poi.excel.annotation.ExcelEntity;
-import org.jeecgframework.poi.excel.annotation.ExcelCollection;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Data
-@ApiModel(value="${tableName}Page对象", description="${tableVo.ftlDescription}")
-public class ${entityName}Page {
-
-<#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-      </#if>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	<#else>
-		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-	<#if list_field_dictCode?length gt 1>
-    @Dict(${list_field_dictCode?substring(2)})
-    </#if>
-		</#if>
-	</#if>
-	@ApiModelProperty(value = "${po.filedComment}")
-    <#if po.fieldDbType=='Blob'>
-    private java.lang.String ${po.fieldName}String;
-    <#else>
-    private ${po.fieldType} ${po.fieldName};
-    </#if>
-	</#list>
-	
-	<#list subTables as sub>
-	@ExcelCollection(name="${sub.ftlDescription}")
-	@ApiModelProperty(value = "${sub.ftlDescription}")
-	private List<${sub.entityName}> ${sub.entityName?uncap_first}List;
-	</#list>
-	
-}

+ 0 - 504
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei

@@ -1,504 +0,0 @@
-<#-- noinspection JSDuplicatedDeclaration,RequiredAttributes,NpmUsedModulesInstalled -->
-<#-- ** 引入全局工具方法 ** -->
-<#--<#include "/common/utils.ftl">-->
-<#include "../../../../../../common/utils.ftl">
-<#-- ** 定义全局使用的变量 ** -->
-<#-- 是否有查询条件 -->
-<#assign query_flag=false>
-<#-- 是否有下拉查询条件 -->
-<#assign query_field_select=false>
-<#-- 是否有日期查询条件 -->
-<#assign query_field_date=false>
-<#-- 是否有字典 -->
-<#assign list_need_dict=false>
-<#-- 是否有分类字典 -->
-<#assign list_need_category=false>
-<#-- 是否有省市区 -->
-<#assign list_need_pca=false>
-<#-- 是否有用户选择 -->
-<#assign query_sel_user=false>
-<#-- 是否有部门选择 -->
-<#assign query_sel_dep=false>
-<#-- 是否有下拉多选框 -->
-<#assign query_sel_multi=false>
-<#-- 是否有下拉搜索框 -->
-<#assign query_sel_search=false>
-<#-- 是否有省市区组件 -->
-<#assign query_field_pca=false>
-<#-- 是否有分类字典树 -->
-<#assign query_sel_cat=false>
-<template>
-  <a-card class="j-inner-table-wrapper" :bordered="false">
-
-    <!-- 查询区域 begin -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline">
-        <a-row :gutter="24">
-<#-- 查询区域 开始循环 -->
-<#assign query_field_index=0>
-<#list columns as po>
-  <#if po.isQuery=='Y'>
-  	<#assign query_field_dictCode="">
-    <#if po.dictTable?default("")?trim?length gt 1>
-      <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-      <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-    <#assign query_flag=true>
-    <#-- 定义组件可能会需要的属性 -->
-    <#assign attr_showTime="show-time date-format=\"YYYY-MM-DD HH:mm:ss\"">
-    <#assign indent="">
-    <#-- 将index>=2的查询条件隐藏起来 -->
-    <#if query_field_index==2>
-      <#-- 由于多了一层标签,所以需要多一层缩进 -->
-      <#assign indent="  ">
-          <template v-if="toggleSearchStatus">
-    </#if>
-          ${indent}<a-col :xl="6" :lg="7" :md="8" :sm="24">
-            ${indent}<a-form-item label="${po.filedComment}">
-    <#-- 普通查询 -->
-    <#if po.queryMode=='single'>
-      <#-- 日期组件 -->
-      <#if po.classType=='date'>
-        <#assign query_field_date=true>
-              ${indent}<j-date ${getVModel(po)} ${getPlaceholder(po,"请选择")}/>
-      <#-- 日期时间组件 -->
-      <#elseif po.classType=='datetime'>
-        <#assign query_field_date=true>
-              ${indent}<j-date ${getVModel(po)} ${getPlaceholder(po,"请选择")} ${attr_showTime}/>
-      <#-- 下拉组件 -->
-      <#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-        <#assign query_field_select=true>
-        <#-- 下拉或是单选,判断数据字典是表字典还是普通字典 -->
-        <#if (po.dictTable!"")?trim?length gt 1>
-          ${indent}<j-dict-select-tag ${getVModel(po)} ${getPlaceholder(po,"请选择")} dictCode="${po.dictTable},${po.dictText},${po.dictField}"/>
-        <#elseif (po.dictField!"")?trim?length gt 1>
-          ${indent}<j-dict-select-tag ${getVModel(po)} ${getPlaceholder(po,"请选择")} dictCode="${po.dictField}"/>
-        <#else>
-          ${indent}<a-input ${getVModel(po)} ${getPlaceholder(po,"请输入")}/>
-        </#if>
-      <#-- 用户选择组件 -->
-      <#elseif po.classType=='sel_user'>
-      <#assign query_sel_user=true>
-             ${indent}<j-select-user-by-dep placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-      <#-- 部门选择组件 -->
-      <#elseif po.classType=='sel_depart'>
-      <#assign query_sel_dep=true>
-             ${indent}<j-select-depart placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-      <#elseif po.classType=='list_multi'>
-      <#-- 下拉多选框组件 -->
-      <#assign query_sel_multi=true>
-             ${indent}<j-multi-select-tag placeholder="请选择${po.filedComment}" dictCode="${query_field_dictCode?default("")}" v-model="queryParam.${po.fieldName}"/>
-      <#-- popup组件 -->
-      <#elseif po.classType=='popup'>
-             ${indent}<j-popup placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" code="${po.dictTable}" org-fields="${po.dictField}" dest-fields="${po.dictText}" :field="getPopupField('${po.dictText}')" :multi="${po.extendParams.popupMulti?c}"/>
-      <#-- 下拉搜索框 -->
-     <#elseif po.classType=='sel_search'>
-     <#assign query_sel_search=true>
-             ${indent}<j-search-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dict="${po.dictTable},${po.dictText},${po.dictField}"/>
-     <#elseif po.classType=='pca'>
-     <#assign query_field_pca=true>
-             ${indent}<j-area-linkage type="cascader" v-model="queryParam.${po.fieldName}" placeholder="请选择省市区"/>
-     <#elseif po.classType=='cat_tree'>
-     <#assign query_sel_cat=true>
-             ${indent}<j-category-select placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" pcode="${po.dictField?default("")}"/>
-      <#-- 其他都归为输入框组件 -->
-      <#else>
-             ${indent}<a-input ${getVModel(po)} ${getPlaceholder(po,"请输入")}/>
-      </#if>
-    <#-- 范围查询 -->
-    <#else>
-      <#-- 范围日期组件 -->
-      <#if po.classType=='date'>
-        <#assign query_field_date=true>
-          ${indent}<j-date class="query-group-cust" ${getVModel(po, "_begin")} ${getPlaceholder(po, "请选择开始日期",false)}/>
-          ${indent}<span class="query-group-split-cust"></span>
-          ${indent}<j-date class="query-group-cust" ${getVModel(po, "_end")} ${getPlaceholder(po, "请选择结束日期",false)}/>
-      <#-- 范围日期时间组件 -->
-      <#elseif po.classType=='datetime'>
-        <#assign query_field_date=true>
-          ${indent}<j-date class="query-group-cust" ${getVModel(po, "_begin")} ${getPlaceholder(po, "请选择开始时间",false)} ${attr_showTime}/>
-          ${indent}<span class="query-group-split-cust"></span>
-          ${indent}<j-date class="query-group-cust" ${getVModel(po, "_end")} ${getPlaceholder(po, "请选择结束时间",false)} ${attr_showTime}/>
-      <#-- 其他都归为范围输入框组件 -->
-      <#else>
-          ${indent}<a-input class="query-group-cust" ${getVModel(po, "_begin")} ${getPlaceholder(po, "请输入最开始值",false)}/>
-          ${indent}<span class="query-group-split-cust"></span>
-          ${indent}<a-input class="query-group-cust" ${getVModel(po, "_end")} ${getPlaceholder(po, "请输入最结束值",false)}/>
-      </#if>
-    </#if>
-            ${indent}</a-form-item>
-          ${indent}</a-col>
-    <#assign query_field_index=query_field_index+1>
-  </#if>
-  <#-- 判断是否需要字典 -->
-  <#if !list_need_dict && po.fieldShowType != 'popup' && (po.dictField!"")?trim?length gt 1>
-    <#assign list_need_dict=true>
-  </#if>
-  <#-- 判断是否需要分类字典 -->
-  <#if po.classType == 'cat_tree' && (po.dictText!"")?trim?length == 0>
-    <#assign list_need_category=true>
-  </#if>
-   <#-- 判断是否需要省市区 -->
-  <#if po.classType=='pca'>
-  <#assign list_need_pca=true>
-  </#if>
-</#list>
-<#-- 查询区域-结束循环 -->
-<#if query_field_index gt 2>
-          </template>
-</#if>
-<#if query_flag>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span class="table-page-search-submitButtons table-operator">
-              <a-button type="primary" icon="search" @click="searchQuery">查询</a-button>
-              <a-button type="primary" icon="reload" @click="searchReset">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                <span>{{ toggleSearchStatus ? '收起' : '展开' }}</span>
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-          </a-col>
-</#if>
-        </a-row>
-      </a-form>
-    </div>
-    <!-- 查询区域 end -->
-
-    <!-- 操作按钮区域 begin -->
-    <div class="table-operator">
-      <a-button type="primary" icon="plus" @click="handleAdd">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('${tableVo.ftlDescription}')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
-      </a-upload>
-      <!-- 高级查询区域 -->
-      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel">
-            <a-icon type="delete"/>
-            <span>删除</span>
-          </a-menu-item>
-        </a-menu>
-        <a-button>
-          <span>批量操作</span>
-          <a-icon type="down"/>
-        </a-button>
-      </a-dropdown>
-    </div>
-    <!-- 操作按钮区域 end -->
-
-    <!-- table区域 begin -->
-    <div>
-
-      <a-alert type="info" showIcon style="margin-bottom: 16px;">
-        <template slot="message">
-          <span>已选择</span>
-          <a style="font-weight: 600;padding: 0 4px;">{{ selectedRowKeys.length }}</a>
-          <span>项</span>
-          <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-        </template>
-      </a-alert>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        class="j-table-force-nowrap"
-        :scroll="{x:true}"
-        :loading="loading"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :expandedRowKeys="expandedRowKeys"
-        :rowSelection="{selectedRowKeys, onChange: onSelectChange}"
-        @expand="handleExpand"
-        @change="handleTableChange"
-      >
-
-        <!-- 内嵌table区域 begin -->
-        <template slot="expandedRowRender" slot-scope="record">
-          <a-tabs tabPosition="top">
-<#list subTables as sub>
-            <a-tab-pane tab="${sub.ftlDescription}" key="${sub.entityName?uncap_first}" forceRender>
-  <#assign subTableCompName=camelToHorizontal("${sub.entityName?uncap_first}", "lower")/>
-              <${subTableCompName}-sub-table :record="record"/>
-            </a-tab-pane>
-</#list>
-          </a-tabs>
-        </template>
-        <!-- 内嵌table区域 end -->
-
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-
-        <template slot="imgSlot" slot-scope="text">
-          <div style="font-size: 12px;font-style: italic;">
-            <span v-if="!text">无图片</span>
-            <img v-else :src="getImgView(text)" alt="" style="max-width:80px;height:25px;"/>
-          </div>
-        </template>
-
-        <#if list_need_pca>
-        <template slot="pcaSlot" slot-scope="text">
-          <div>{{ getPcaText(text) }}</div>
-        </template>
-        </#if>
-
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            ghost
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)"
-          >
-            <span>下载</span>
-          </a-button>
-        </template>
-
-        <template slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-          <a-divider type="vertical"/>
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-
-        </template>
-
-      </a-table>
-    </div>
-    <!-- table区域 end -->
-
-    <!-- 表单区域 -->
-<#assign modalForm=camelToHorizontal("${entityName?uncap_first}", "lower")/>
-    <${modalForm}-modal ref="modalForm" @ok="modalFormOk"/>
-
-  </a-card>
-</template>
-
-<script>
-
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import ${entityName}Modal from './modules/${entityName}Modal'
-<#list subTables as sub>
-  import ${sub.entityName}SubTable from './subTables/${sub.entityName}SubTable'
-</#list>
-<#if query_field_select>
-  import JDictSelectTag from '@/components/dict/JDictSelectTag.vue'
-</#if>
-<#if query_field_date>
-  import JDate from '@/components/jeecg/JDate.vue'
-</#if>
-<#if list_need_dict>
-  import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
-</#if>
-<#if list_need_category>
-  import { loadCategoryData } from '@/api/api'
-</#if>
-<#if query_sel_user>
-  import JSelectUserByDep from '@/components/jeecgbiz/JSelectUserByDep'
-</#if>
-<#if query_sel_dep>
-  import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
-</#if>
-<#if query_sel_multi>
-  import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
-</#if>
-<#if query_sel_search>
-  import JSearchSelectTag from '@/components/dict/JSearchSelectTag'
-</#if>
-<#if query_field_pca>
-  import JAreaLinkage from '@comp/jeecg/JAreaLinkage'
-</#if>
-<#if query_sel_cat>
-  import JCategorySelect from '@comp/jeecg/JCategorySelect'
-</#if>
- <#if list_need_pca>
-  import Area from '@/components/_util/Area'
-  </#if>
-  import '@/assets/less/TableExpand.less'
-
-  export default {
-    name: '${entityName}List',
-    mixins: [JeecgListMixin],
-    components: {
-      ${entityName}Modal,
-<#list subTables as sub>
-      ${sub.entityName}SubTable,
-</#list>
-<#if query_field_date>
-      JDate,
-</#if>
-<#if query_field_select>
-      JDictSelectTag,
-</#if>
-<#if query_sel_user>
-      JSelectUserByDep,
-</#if>
-<#if query_sel_dep>
-      JSelectDepart,
-</#if>
-<#if query_sel_multi>
-      JMultiSelectTag,
-</#if>
-<#if query_sel_search>
-      JSearchSelectTag,
-</#if>
-<#if query_field_pca>
-      JAreaLinkage,
-</#if>
-<#if query_sel_cat>
-      JCategorySelect,
-</#if>
-    },
-    data() {
-      return {
-        description: '${tableVo.ftlDescription}列表管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            key: 'rowIndex',
-            width: 60,
-            align: 'center',
-            customRender: (t, r, index) => parseInt(index) + 1
-          },
-<#-- begin 遍历表头 -->
-<#list columns as po>
-  <#if po.isShowList == 'Y'>
-          {
-            title: '${po.filedComment}',
-            align: 'center',
-            <#if po.sort=='Y'>
-            sorter: true,
-            </#if>
-    <#if po.classType == 'date'>
-            dataIndex: '${po.fieldName}',
-    <#elseif po.fieldDbType=='Blob'>
-           dataIndex: '${po.fieldName}String'
-    <#elseif po.classType=='umeditor'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'htmlSlot'}
-    <#elseif po.classType=='pca'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'pcaSlot'}
-    <#elseif po.classType=='file'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'fileSlot'}
-    <#elseif po.classType=='image'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'imgSlot'}
-    <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-            dataIndex: '${po.fieldName}_dictText'
-    <#elseif po.classType=='cat_tree'>
-      <#if list_need_category>
-            dataIndex: '${po.fieldName}',
-            customRender: (text) => (text ? filterMultiDictText(this.dictOptions['${po.fieldName}'], text) : '')
-      <#else>
-            dataIndex: '${po.fieldName}',
-            customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-      </#if>
-    <#elseif po.classType=='switch'>
-            dataIndex: '${po.fieldName}',
-            <#if po.dictField != 'is_open'>
-            customRender: (text) => (!text ? "" : (text == ${po.dictField}[0] ? "是" : "否"))
-            <#else>
-            customRender: (text) => (!text ? "" : (text == "Y" ? "是" : "否"))
-            </#if>
-    <#else>
-            dataIndex: '${po.fieldName}',
-    </#if>
-          },
-  </#if>
-</#list>
-<#-- end 遍历表头 -->
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align: 'center',
-            width:147,
-            scopedSlots: { customRender: 'action' },
-          },
-        ],
-        // 字典选项
-        dictOptions: {},
-        // 展开的行test
-        expandedRowKeys: [],
-<#assign urlPrefix="/${entityPackage}/${entityName?uncap_first}">
-        url: {
-          list: '${urlPrefix}/list',
-          delete: '${urlPrefix}/delete',
-          deleteBatch: '${urlPrefix}/deleteBatch',
-          exportXlsUrl: '${urlPrefix}/exportXls',
-          importExcelUrl: '${urlPrefix}/importExcel',
-        },
-        <#if list_need_pca>
-        pcaData:'',
-        </#if>
-        superFieldList:[],
-      }
-    },
-    created() {
-      <#if list_need_pca>
-      this.pcaData = new Area()
-      </#if>
-      this.getSuperFieldList();
-    },
-    computed: {
-      importExcelUrl() {
-        return window._CONFIG['domianURL'] + this.url.importExcelUrl
-      }
-    },
-    methods: {
-     <#if list_need_pca>
-      getPcaText(code){
-        return this.pcaData.getText(code);
-      },
-     </#if>
-      initDictConfig() {
-<#list columns as po>
-  <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-    <#if po.classType=='cat_tree' && list_need_category==true>
-        loadCategoryData({ code: "${po.dictField?default('')}" }).then((res) => {
-          if (res.success) {
-            this.$set(this.dictOptions, '${po.fieldName}', res.result)
-          }
-        })
-    </#if>
-  </#if>
-</#list>
-      },
-
-      handleExpand(expanded, record) {
-        this.expandedRowKeys = []
-        if (expanded === true) {
-          this.expandedRowKeys.push(record.id)
-        }
-      },
-      getSuperFieldList(){
-        <#include "/common/utils.ftl">
-        let fieldList=[];
-         <#list columns as po>
-        fieldList.push(${superQueryFieldList(po)})
-         </#list>
-        this.superFieldList = fieldList
-      }
-    }
-  }
-</script>
-<style lang="less" scoped>
-  @import '~@assets/less/common.less';
-</style>

+ 0 - 545
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei

@@ -1,545 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-   <a-spin :spinning="confirmLoading">
-     <j-form-container :disabled="formDisabled">
-       <!-- 主表单区域 -->
-       <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
-         <a-row>
-<#assign form_popup = false>
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#assign form_span = 24>
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y' && po.fieldName != 'id'>
-<#assign form_field_dictCode="">
-  <#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-          <a-col :xs="24" :sm="12">
-            <a-form-model-item label="${po.filedComment}" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${autoStringSuffixForModel(po)}">
-	<#if po.classType =='date'>
-              <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='datetime'>
-              <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='time'>
-              <j-time placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='popup'>
-	    <#assign form_popup=true>
-              <j-popup
-                v-model="model.${po.fieldName}"
-                field="${po.fieldName}"
-                org-fields="${po.dictField}"
-                dest-fields="${Format.underlineToHump(po.dictText)}"
-                code="${po.dictTable}"
-                :multi="${po.extendParams.popupMulti?c}"
-                @input="popupCallback"
-                <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.classType =='sel_depart'>
-              <j-select-depart v-model="model.${po.fieldName}" multi <#if po.readonly=='Y'>disabled</#if>/>
-<#elseif po.classType =='switch'>
-              <j-switch v-model="model.${po.fieldName}" <#if po.dictField!= 'is_open'>:options="${po.dictField}"</#if> <#if po.readonly=='Y'>disabled</#if>></j-switch>
-	<#elseif po.classType =='pca'>
-		      <j-area-linkage type="cascader" v-model="model.${po.fieldName}" placeholder="请输入省市区" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='markdown'>
-	          <j-markdown-editor v-model="model.${autoStringSuffixForModel(po)}" id="${po.fieldName}"></j-markdown-editor>
-    <#elseif po.classType =='password'>
-	          <a-input-password v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='sel_user'>
-              <j-select-user-by-dep v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='textarea'>
-              <a-textarea v-decorator="[${autoStringSuffix(po)}${autoWriteRules(po)}]" rows="4" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list' || po.classType=='radio'>
-              <j-dict-select-tag type="${po.classType}" v-model="model.${po.fieldName}"  dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-              <j-multi-select-tag type="${po.classType}" v-model="model.${po.fieldName}"  dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='sel_search'>
-              <j-search-select-tag v-model="model.${po.fieldName}" dict="${form_field_dictCode}" <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.classType=='cat_tree'>
-    	<#assign form_cat_tree = true>
-              <j-category-select v-model="model.${po.fieldName}" pcode="${po.dictField?default("")}" placeholder="请选择${po.filedComment}" <#if po.dictText?default("")?trim?length gt 1>back="${dashedToCamel(po.dictText)}" @change="handleCategoryChange"</#if> <#if po.readonly=='Y'>disabled</#if>/>
-    	<#if po.dictText?default("")?trim?length gt 1>
-    	<#assign form_cat_back = "${po.dictText}">
-    	</#if>
-	<#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-              <a-input-number v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='file'>
-              <j-upload v-model="model.${po.fieldName}"  <#if po.readonly=='Y'>disabled</#if> <#if po.uploadnum??>:number=${po.uploadnum}</#if>></j-upload>
-	<#elseif po.classType=='image'>
-              <j-image-upload isMultiple <#if po.uploadnum??>:number=${po.uploadnum}</#if> v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>></j-image-upload>
-	<#elseif po.classType=='umeditor'>
-              <j-editor v-model="model.${autoStringSuffixForModel(po)}" <#if po.readonly=='Y'>disabled</#if>/>
-		<#elseif po.classType == 'sel_tree'>
-  	          <j-tree-select
-                ref="treeSelect"
-                placeholder="请选择${po.filedComment}"
-                v-model="model.${po.fieldName}"
-                <#if po.dictText??>
-                <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-                dict="${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}"
-                <#elseif po.dictText?split(',')[1]??>
-                pidField="${po.dictText?split(',')[1]}"
-                <#elseif po.dictText?split(',')[3]??>
-                hasChildField="${po.dictText?split(',')[3]}"
-                </#if>
-                </#if>
-                pidValue="${po.dictField}"
-                <#if po.readonly=='Y'>disabled</#if>>
-              </j-tree-select>
-	<#else>
-              <a-input v-model="model.${autoStringSuffixForModel(po)}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>></a-input>
-    </#if>
-            </a-form-model-item>
-          </a-col>
-</#if>
-</#list>
-        </a-row>
-      </a-form-model>
-     </j-form-container>
-      <!-- 子表单区域 -->
-      <a-tabs v-model="activeKey" @change="handleChangeTabs">
-<#list subTables as sub><#rt/>
-  <#if sub.foreignRelationType =='1'>
-        <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-          <${Format.humpToShortbar(sub.entityName)}-form ref="${sub.entityName?uncap_first}Form" @validateError="validateError" :disabled="formDisabled"></${Format.humpToShortbar(sub.entityName)}-form>
-        </a-tab-pane>
-
-  <#else>
-        <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-          <j-editable-table
-            :ref="refKeys[${sub_index}]"
-            :loading="${sub.entityName?uncap_first}Table.loading"
-            :columns="${sub.entityName?uncap_first}Table.columns"
-            :dataSource="${sub.entityName?uncap_first}Table.dataSource"
-            :maxHeight="300"
-            :disabled="formDisabled"
-            :rowNumber="true"
-            :rowSelection="true"
-            :actionButton="true"/>
-        </a-tab-pane>
-  </#if>
-</#list>
-      </a-tabs>
-       <#if bpm_flag>
-       <a-row v-if="showFlowSubmitButton" style="text-align: center;width: 100%;margin-top: 16px;"><a-button icon="check" style="width: 126px" type="primary" @click="handleOk">提 交</a-button></a-row>
-       </#if>
-    </a-spin>
-</template>
-
-<script>
-
-  import { FormTypes,getRefPromise,VALIDATE_NO_PASSED } from '@/utils/JEditableTableUtil'
-  import { JEditableTableModelMixin } from '@/mixins/JEditableTableModelMixin'
-  import { validateDuplicateValue } from '@/utils/util'
-  <#list subTables as sub>
-  <#if sub.foreignRelationType =='1'>
-  import ${sub.entityName}Form from './${sub.entityName}Form.vue'
-  </#if>
-  </#list>
-
-  export default {
-    name: '${entityName}Form',
-    mixins: [JEditableTableModelMixin],
-    components: {
-    <#list subTables as sub>
-    <#if sub.foreignRelationType =='1'>
-    ${sub.entityName}Form,
-    </#if>
-    </#list>
-    },
-    data() {
-      return {
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-        model:{
-        <#include "/common/init/initValue.ftl">
-        },
-         <#include "/common/validatorRulesTemplate/main.ftl">
-        // 新增时子表默认添加几行空数据
-        addDefaultRowNum: 1,
-        refKeys: [<#list subTables as sub>'${sub.entityName?uncap_first}', </#list>],
-        tableKeys:[<#list subTables as sub><#if sub.foreignRelationType =='0'>'${sub.entityName?uncap_first}', </#if></#list>],
-        activeKey: '${subTables[0].entityName?uncap_first}',
-<#list subTables as sub><#rt/>
-        // ${sub.ftlDescription}
-        ${sub.entityName?uncap_first}Table: {
-          loading: false,
-          dataSource: [],
-          columns: [
-<#if sub.foreignRelationType =='0'>
-<#assign popupBackFields = "">
-
-<#-- 循环子表的列 开始 -->
-<#list sub.colums as col><#rt/>
-<#if col.isShow =='Y'>
-    <#if col.filedComment !='外键' >
-            {
-              title: '${col.filedComment}',
-              key: '${autoStringSuffixForModel(col)}',
-      <#if col.classType =='date'>
-              type: FormTypes.date,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='datetime'>
-              type: FormTypes.datetime,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif "int,decimal,double,"?contains(col.classType)>
-              type: FormTypes.inputNumber,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='list' || col.classType =='radio'>
-              type: FormTypes.select,
-              <#if col.dictTable?default("")?trim?length gt 1>
-              dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-              <#else>
-              dictCode:"${col.dictField}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='list_multi' || col.classType =='checkbox'>
-              type: FormTypes.list_multi,
-              <#if col.dictTable?default("")?trim?length gt 1>
-              dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-              <#else>
-              dictCode:"${col.dictField}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='switch'>
-              type: FormTypes.checkbox,
-              <#if col.dictField == 'is_open'>
-              customValue: ['Y', 'N'],
-              <#else>
-              customValue: ${col.dictField},
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='sel_search'>
-              type: FormTypes.sel_search,
-              <#if col.dictTable?default("")?trim?length gt 1>
-              dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-              <#else>
-              dictCode:"${col.dictField}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-        <#elseif col.classType =='sel_depart'>
-              type: FormTypes.sel_depart,
-              <#if col.extendParams.multiSelect?default(true) == false>
-              multi: false,
-              </#if>
-              <#if col.extendParams.store?default("")?trim?length gt 1>
-              store: "${col.extendParams.store}",
-              </#if>
-              <#if col.extendParams.text?default("")?trim?length gt 1>
-              text: "${col.extendParams.text}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-        <#elseif col.classType =='sel_user'>
-              type: FormTypes.sel_user,
-              <#if col.extendParams.multiSelect?default(true) == false>
-              multi: false,
-              </#if>
-              <#if col.extendParams.store?default("")?trim?length gt 1>
-              store: "${col.extendParams.store}",
-              </#if>
-              <#if col.extendParams.text?default("")?trim?length gt 1>
-              text: "${col.extendParams.text}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled: true,
-              </#if>
-      <#elseif col.classType =='image'>
-              type: FormTypes.image,
-              token:true,
-              responseName:"message",
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-              <#if col.uploadnum??>
-              number: ${col.uploadnum},
-              </#if>
-      <#elseif col.classType =='file'>
-              type: FormTypes.file,
-              token:true,
-              responseName:"message",
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-              <#if col.uploadnum??>
-              number: ${col.uploadnum},
-              </#if>
-      <#elseif col.classType =='popup'>
-        <#if popupBackFields?length gt 0>
-            <#assign popupBackFields = "${popupBackFields}"+","+"${col.dictText}">
-        <#else>
-            <#assign popupBackFields = "${col.dictText}">
-        </#if>
-              type: FormTypes.popup,
-              popupCode:"${col.dictTable}",
-              destFields:"${col.dictText}",
-              orgFields:"${col.dictField}",
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#else>
-              type: FormTypes.input,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      </#if>
-      <#if col.classType =='list_multi' || col.classType =='checkbox'>
-              width:"250px",
-      <#else>
-              width:"200px",
-      </#if>
-      <#if col.classType =='file'>
-              placeholder: '请选择文件',
-      <#else>
-              placeholder: '请输入${'$'}{title}',
-      </#if>
-      <#if col.defaultVal??>
-        <#if col.fieldDbType=="BigDecimal" || col.fieldDbType=="double" || col.fieldDbType=="int">
-              defaultValue:${col.defaultVal},
-              <#else>
-              defaultValue:"${col.defaultVal}",
-        </#if>
-      <#else>
-              defaultValue:'',
-      </#if>
-      <#-- 子表的校验 -->
-      <#assign subFieldValidType = col.fieldValidType!''>
-      <#-- 非空校验 -->
-      <#if col.nullable == 'N' || subFieldValidType == '*'>
-              validateRules: [{ required: true, message: '${'$'}{title}不能为空' }],
-      <#-- 其他情况下,只要有值就被认为是正则校验 -->
-      <#elseif subFieldValidType?length gt 0>
-        <#assign subMessage = '格式不正确'>
-        <#if subFieldValidType == 'only' >
-          <#assign subMessage = '不能重复'>
-        </#if>
-              validateRules: [{ pattern: "${subFieldValidType}", message: "${'$'}{title}${subMessage}" }],
-      </#if>
-            },
-    </#if>
-</#if>
-</#list>
-<#-- 循环子表的列 结束 -->
-
-<#-- 处理popup的隐藏列 -->
-<#if popupBackFields?length gt 0>
-<#list popupBackFields?split(",") as item>
-<#if item?length gt 0>
-<#assign tempItemFlag = true>
-
-<#list sub.colums as col>
-<#if col.isShow =='Y' && col.fieldName == item>
-<#assign tempItemFlag = false>
-</#if>
-</#list>
-<#if tempItemFlag>
-            {
-              title: '${item}',
-              key: '${item}',
-              type:"hidden"
-            },
-</#if>
-</#if>
-</#list>
-</#if>
-</#if>
-          ]
-        },
-</#list>
-        url: {
-          add: "/${entityPackage}/${entityName?uncap_first}/add",
-          edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-<#list subTables as sub><#rt/>
-          ${sub.entityName?uncap_first}: {
-            list: '/${entityPackage}/${entityName?uncap_first}/query${sub.entityName}ByMainId'
-          },
-</#list>
-        }
-      }
-    },
-    props: {
-     <#if bpm_flag>
-      //流程表单data
-      formData: {
-        type: Object,
-        default: ()=>{},
-        required: false
-      },
-      //表单模式:false流程表单 true普通表单
-      formBpm: {
-        type: Boolean,
-        default: false,
-        required: false
-      },
-      </#if>
-      //表单禁用
-      disabled: {
-        type: Boolean,
-        default: false,
-        required: false
-      }
-    },
-    computed: {
-      formDisabled(){
-       <#if bpm_flag>
-        if(this.formBpm===true){
-          if(this.formData.disabled===false){
-            return false
-          }
-          return true
-        }
-         </#if>
-        return this.disabled
-      },
-       <#if bpm_flag>
-      showFlowSubmitButton(){
-        if(this.formBpm===true){
-          if(this.formData.disabled===false){
-            return true
-          }
-        }
-        return false
-      }
-       </#if>
-    },
-    created () {
-     <#if bpm_flag>
-      //如果是流程中表单,则需要加载流程表单data
-      this.showFlowData();
-       </#if>
-    },
-    methods: {
-     addBefore(){
-    <#list subTables as sub><#rt/>
-      <#if sub.foreignRelationType =='1'>
-            this.$refs.${sub.entityName?uncap_first}Form.clearFormData()
-      <#else>
-            this.${sub.entityName?uncap_first}Table.dataSource=[]
-      </#if>
-    </#list>
-      },
-      getAllTable() {
-        let values = this.tableKeys.map(key => getRefPromise(this, key))
-        return Promise.all(values)
-      },
-      /** 调用完edit()方法之后会自动调用此方法 */
-      editAfter() {
-        this.$nextTick(() => {
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='1'>
-          this.$refs.${sub.entityName?uncap_first}Form.initFormData(this.url.${sub.entityName?uncap_first}.list,this.model.id)
-</#if>
-</#list>
-        })
-        // 加载子表数据
-        if (this.model.id) {
-          let params = { id: this.model.id }
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='0'>
-          this.requestSubTableData(this.url.${sub.entityName?uncap_first}.list, params, this.${sub.entityName?uncap_first}Table)
-</#if>
-</#list>
-        }
-      },
-      //校验所有一对一子表表单
-    validateSubForm(allValues){
-        return new Promise((resolve,reject)=>{
-          Promise.all([
-      <#list subTables as sub><#rt/>
-        <#if sub.foreignRelationType =='1'>
-              this.$refs.${sub.entityName?uncap_first}Form.validate(${sub_index}),
-        </#if>
-      </#list>
-          ]).then(() => {
-            resolve(allValues)
-          }).catch(e => {
-            if (e.error === VALIDATE_NO_PASSED) {
-              // 如果有未通过表单验证的子表,就自动跳转到它所在的tab
-              this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
-            } else {
-              console.error(e)
-            }
-          })
-        })
-    },
-      /** 整理成formData */
-      classifyIntoFormData(allValues) {
-        let main = Object.assign(this.model, allValues.formValue)
-
-        return {
-          ...main, // 展开
-<#assign subManyIndex = 0>
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='0'>
-          ${sub.entityName?uncap_first}List: allValues.tablesValue[${subManyIndex}].values,
-<#assign subManyIndex = subManyIndex+1>
-<#else>
-          ${sub.entityName?uncap_first}List: this.$refs.${sub.entityName?uncap_first}Form.getFormData(),
-</#if>
-</#list>
-        }
-      },
-        <#if bpm_flag>
-      //渲染流程表单数据
-     showFlowData(){
-        if(this.formBpm === true){
-            let params = {id:this.formData.dataId};
-            getAction(this.url.queryById,params).then((res)=>{
-              if(res.success){
-                this.edit (res.result);
-              }
-            })
-         }
-      },
-       </#if>
-      validateError(msg){
-        this.$message.error(msg)
-      },
-     close() {
-        this.visible = false
-        this.$emit('close')
-        this.$refs.form.clearValidate();
-      },
-     <#if form_popup>
-     popupCallback(value,row){
-        this.model = Object.assign(this.model, row);
-     },
-    </#if>
-   <#if form_cat_tree>
-     handleCategoryChange(value,backObj){
-       this.model = Object.assign(this.model, backObj);
-      }
-   </#if>
-
-    }
-  }
-</script>
-
-<style scoped>
-</style>

+ 0 - 62
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei

@@ -1,62 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-  <j-modal
-    :title="title"
-    :width="1200"
-    :visible="visible"
-    :maskClosable="false"
-    switchFullscreen
-    @ok="handleOk"
-    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
-    @cancel="handleCancel">
-    <${Format.humpToShortbar(entityName)}-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"/>
-  </j-modal>
-</template>
-
-<script>
-  import ${entityName}Form from './${entityName}Form'
-  export default {
-    name: '${entityName}Modal',
-    components: {
-      ${entityName}Form
-    },
-    data() {
-      return {
-        title:'',
-        visible: false,
-        disableSubmit: false
-      }
-    },
-    methods:{
-      add () {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.add();
-        })
-      },
-      edit (record) {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.edit(record);
-        })
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-      },
-      handleOk () {
-        this.$refs.realForm.handleOk();
-      },
-      submitCallback(){
-        this.$emit('ok');
-        this.visible = false;
-      },
-      handleCancel () {
-        this.close()
-      }
-    }
-  }
-</script>
-
-<style scoped>
-</style>

+ 0 - 244
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei

@@ -1,244 +0,0 @@
-<#-- ** 引入全局工具方法 ** -->
-<#--<#include "/common/utils.ftl">-->
-<#include "../../../../../../common/utils.ftl">
-<template>
-  <div>
-<#assign list_need_category=false>
-<#assign list_need_pca=false>
-<#assign bpm_flag=false>
-
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-    <!--引用表格-->
-   <BasicTable @register="registerTable" :rowSelection="rowSelection" :expandedRowKeys="expandedRowKeys"  @expand="handleExpand">
-      <!-- 内嵌table区域 begin -->
-           <template #expandedRowRender="{record}">
-             <a-tabs tabPosition="top">
-   <#list subTables as sub>
-               <a-tab-pane tab="${sub.ftlDescription}" key="${sub.entityName?uncap_first}" forceRender>
-                  <${sub.entityName?uncap_first}SubTable :id="expandedRowKeys[0]"/>
-               </a-tab-pane>
-   </#list>
-             </a-tabs>
-           </template>
-     <!-- 内嵌table区域 end -->
-     <!--插槽:table标题-->
-      <template #tableTitle>
-          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
-          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-          <a-dropdown v-if="selectedRowKeys.length > 0">
-              <template #overlay>
-                <a-menu>
-                  <a-menu-item key="1" @click="batchHandleDelete">
-                    <Icon icon="ant-design:delete-outlined"></Icon>
-                    删除
-                  </a-menu-item>
-                </a-menu>
-              </template>
-              <a-button>批量操作
-                <Icon icon="mdi:chevron-down"></Icon>
-              </a-button>
-        </a-dropdown>
-      </template>
-       <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
-      </template>
-      <!--字段回显插槽-->
-      <template #htmlSlot="{text}">
-         <div v-html="text"></div>
-      </template>
-      <template #fileSlot="{text}">
-         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
-      </template>
-    </BasicTable>
-    <!-- 表单区域 -->
-    <${entityName}Modal @register="registerModal" @success="handleSuccess"></${entityName}Modal>
-  </div>
-</template>
-
-<script lang="ts" name="${entityPackage}-${entityName?uncap_first}" setup>
-  import {ref, computed, unref} from 'vue';
-  import {BasicTable, useTable, TableAction} from '/@/components/Table';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import {useModal} from '/@/components/Modal';
-  import ${entityName}Modal from './components/${entityName}Modal.vue'
-  <#list subTables as sub>
-  import ${sub.entityName}SubTable from './subTables/${sub.entityName}SubTable.vue'
-  </#list>
-  import {columns, searchFormSchema} from './${entityName?uncap_first}.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './${entityName?uncap_first}.api';
-  <#if list_need_category>
-  import { loadCategoryData } from '/@/api/common/api'
-  import { getAuthCache, setAuthCache } from '/@/utils/auth';
-  import { DB_DICT_DATA_KEY } from '/@/enums/cacheEnum';
-  </#if>
-   // 展开key
-  const expandedRowKeys = ref<any[]>([]);
-  //注册model
-  const [registerModal, {openModal}] = useModal();
-   //注册table数据
-  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
-      tableProps:{
-           title: '${tableVo.ftlDescription}',
-           api: list,
-           columns,
-           canResize:false,
-           formConfig: {
-                labelWidth: 120,
-                schemas: searchFormSchema,
-                autoSubmitOnEnter:true,
-                showAdvancedButton:true,
-                fieldMapToTime: [
-                <#list columns as po>
-                <#if po.isQuery=='Y'>
-                <#if po.queryMode!='single'>
-                <#if po.classType=='date'>
-                   ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD'],
-                <#elseif po.classType=='datetime'>
-                   ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD HH:mm:ss'],
-                </#if>
-                </#if>
-                </#if>
-                </#list>
-                ],
-            },
-            actionColumn: {
-               width: 120,
-            },
-        },
-        exportConfig: {
-            name:"${tableVo.ftlDescription}",
-            url: getExportUrl,
-        },
-        importConfig: {
-            url: getImportUrl
-        },
-    })
-
-  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-   /**
-     * 展开事件
-     * */
-   function handleExpand(expanded, record){
-        expandedRowKeys.value=[];
-        if (expanded === true) {
-           expandedRowKeys.value.push(record.id)
-        }
-    }
-   /**
-    * 新增事件
-    */
-  function handleAdd() {
-     openModal(true, {
-       isUpdate: false,
-       showFooter: true,
-     });
-  }
-   /**
-    * 编辑事件
-    */
-  function handleEdit(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: true,
-     });
-   }
-   /**
-    * 详情
-   */
-  function handleDetail(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: false,
-     });
-   }
-   /**
-    * 删除事件
-    */
-  async function handleDelete(record) {
-     await deleteOne({id: record.id}, reload);
-   }
-   /**
-    * 批量删除事件
-    */
-  async function batchHandleDelete() {
-     await batchDelete({ids: selectedRowKeys.value}, reload);
-   }
-   /**
-    * 成功回调
-    */
-  function handleSuccess() {
-      reload();
-   }
-   /**
-      * 操作栏
-      */
-  function getTableAction(record){
-       return [
-         {
-           label: '编辑',
-           onClick: handleEdit.bind(null, record),
-         }
-       ]
-   }
-     /**
-        * 下拉操作栏
-        */
-  function getDropDownAction(record){
-      return [
-           {
-             label: '详情',
-             onClick: handleDetail.bind(null, record),
-           }, {
-             label: '删除',
-             popConfirm: {
-               title: '是否确认删除',
-               confirm: handleDelete.bind(null, record),
-             }
-           }
-      ]
-   }
-    <#if list_need_category>
-   /**
-    * 初始化字典配置
-   */
-    function initDictConfig(){
-     <#list columns as po>
-     <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-       <#if po.classType=='cat_tree' && list_need_category==true>
-       loadCategoryData({code:'${po.dictField?default("")}'}).then((res) => {
-         if (res) {
-             let allDictDate = getAuthCache(DB_DICT_DATA_KEY);
-             if(!allDictDate['${po.dictField?default("")}']){
-               Object.assign(allDictDate,{'${po.dictField?default("")}':res})
-             }
-             setAuthCache(DB_DICT_DATA_KEY,allDictDate)
-         }
-       })
-       </#if>
-     </#if>
-     </#list>
-   }
-   initDictConfig();
-    </#if>
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 80
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi

@@ -1,80 +0,0 @@
-import {defHttp} from '/@/utils/http/axios';
-import {Modal} from 'ant-design-vue';
-
-enum Api {
-  list = '/${entityPackage}/${entityName?uncap_first}/list',
-  save='/${entityPackage}/${entityName?uncap_first}/add',
-  edit='/${entityPackage}/${entityName?uncap_first}/edit',
-  deleteOne = '/${entityPackage}/${entityName?uncap_first}/delete',
-  deleteBatch = '/${entityPackage}/${entityName?uncap_first}/deleteBatch',
-  importExcel = '/${entityPackage}/${entityName?uncap_first}/importExcel',
-  exportXls = '/${entityPackage}/${entityName?uncap_first}/exportXls',
-<#list subTables as sub><#rt/>
-  ${sub.entityName?uncap_first}List = '/${entityPackage}/${entityName?uncap_first}/query${sub.entityName}ByMainId',
-</#list>
-}
-/**
- * 导出api
- * @param params
- */
-export const getExportUrl = Api.exportXls;
-
-/**
- * 导入api
- */
-export const getImportUrl = Api.importExcel;
-<#list subTables as sub><#rt/>
-/**
- * 子表单查询接口
- * @param params
- */
-export const query${sub.entityName} = Api.${sub.entityName?uncap_first}List
-</#list>
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-
-/**
- * 删除单个
- */
-export const deleteOne = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- */
-export const batchDelete = (params, handleSuccess) => {
-  Modal.confirm({
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- */
-export const saveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
-}
-<#list subTables as sub><#rt/>
-/**
- * 子表列表接口
- * @param params
- */
-export const ${sub.entityName?uncap_first}List = (params) =>
-  defHttp.get({url: Api.${sub.entityName?uncap_first}List, params},{isTransformResponse:false});
-</#list>

+ 0 - 763
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi

@@ -1,763 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-import {JVxeTypes,JVxeColumn} from '/@/components/jeecg/JVxeTable/types'
-//列表数据
-export const columns: BasicColumn[] = [
- <#list columns as po>
-   <#if po.isShowList =='Y' && po.fieldName !='id'>
-   {
-    title: '${po.filedComment}',
-    align:"center",
-    <#if po.sort=='Y'>
-    sorter: true,
-   </#if>
-    <#if po.classType=='date'>
-    dataIndex: '${po.fieldName}',
-    customRender:({text}) =>{
-      return !text?"":(text.length>10?text.substr(0,10):text)
-    },
-    <#elseif po.fieldDbType=='Blob'>
-    dataIndex: '${po.fieldName}String'
-    <#elseif po.classType=='umeditor'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'htmlSlot' },
-    <#elseif po.classType=='pca'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'pcaSlot' },//TODO 未翻译
-   <#elseif po.classType=='file'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'fileSlot' },
-   <#elseif po.classType=='image'>
-    dataIndex: '${po.fieldName}',
-    customRender:render.renderAvatar,
-   <#elseif po.classType=='switch'>
-    dataIndex: '${po.fieldName}',
-<#assign switch_extend_arr=['Y','N']>
-<#if po.dictField?default("")?contains("[")>
-<#assign switch_extend_arr=po.dictField?eval>
-</#if>
-<#list switch_extend_arr as a>
-<#if a_index == 0>
-<#assign switch_extend_arr1=a>
-<#else>
-<#assign switch_extend_arr2=a>
-</#if>
-</#list>
-    customRender:({text}) => {
-       return  render.renderSwitch(text, [{text:'是',value:'${switch_extend_arr1}'},{text:'否',value:'${switch_extend_arr2}'}])
-     },
-   <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-    dataIndex: '${po.fieldName}_dictText'
-   <#elseif po.classType=='cat_tree'>
-    dataIndex: '${po.fieldName}',
-    <#if po.dictText?default("")?trim?length == 0>
-    customRender:({text}) => {
-       return  render.renderCategoryTree(text,'${po.dictField?default("")}')
-   },
-   <#else>
-    customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-   </#if>
-   <#else>
-    dataIndex: '${po.fieldName}'
-   </#if>
-   },
-   </#if>
- </#list>
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-<#if po.queryMode=='single'>
-	{
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='sel_search'>
-      component: 'JSearchSelect',
-      componentProps:{
-         dict:"${po.dictTable},${po.dictText},${po.dictField}"
-      },
-<#elseif po.classType=='sel_user'>
-      component: 'JSelectUserByDept',
-<#elseif po.classType=='switch'>
-      component: 'JSwitch',
-      componentProps:{
-           <#if po.dictField != 'is_open'>
-           options:"${po.dictField}"
-           </#if>
-       },
- <#elseif po.classType=='sel_depart'>
-      component: 'JSelectDept',
- <#elseif po.classType=='list_multi'>
-      component: 'JMultiSelectTag',//暂无该组件
-      componentProps:{
-          dictCode:"query_field_dictCode?default("")"
-      },
- <#elseif po.classType=='cat_tree'>
-      component: 'JCategorySelect',
-      componentProps:{
-          pcode:"${po.dictField?default("")}",//back和事件未添加,暂时有问题
-      },
-<#elseif po.classType=='date'>
-      component: 'DatePicker',
-<#elseif po.classType=='datetime'>
-      component: 'DatePicker',
-      componentProps: {
-         showTime:true
-       },
-<#elseif po.classType=='pca'>
-      component: 'JAreaLinkage',
-<#elseif po.classType=='popup'>
-      component: 'JPopup',
-      componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:"${po.dictField}",
-             multi:${po.extendParams.popupMulti?c},
-         }
-     },
-<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-      component: 'JDictSelectTag',
-      componentProps:{
-       <#if po.dictTable?default("")?trim?length gt 1>
-          dictCode:"${po.dictTable},${po.dictText},${po.dictField}"
-       <#elseif po.dictField?default("")?trim?length gt 1>
-          dictCode:"${po.dictField}"
-        </#if>
-      },
-<#else>
-      component: 'Input',
-</#if>
-      colProps: {span: 6},
- 	},
-<#else>
-     {
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='date'>
-      component: 'RangePicker',
-<#elseif po.classType=='datetime'>
-      component: 'RangePicker',
-      componentProps: {
-          showTime:true
-      },
-<#else>
-      component: 'Input', //TODO 范围查询
-</#if>
-      colProps: {span: 6},
-	},
-</#if>
-</#if>
-</#list>
-<#-- 结束循环 -->
-];
-//表单数据
-export const formSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list columns as po><#rt/>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];
-//子表单数据
-<#list subTables as sub>
-//子表列表数据
-export const ${sub.entityName?uncap_first}Columns: BasicColumn[] = [
- <#list sub.originalColumns as po>
-   <#if po.isShowList =='Y' && po.fieldName !='id'>
-   {
-    title: '${po.filedComment}',
-    align:"center",
-    <#if po.sort=='Y'>
-    sorter: true,
-   </#if>
-    <#if po.classType=='date'>
-    dataIndex: '${po.fieldName}',
-    customRender:({text}) =>{
-      return !text?"":(text.length>10?text.substr(0,10):text)
-    },
-    <#elseif po.fieldDbType=='Blob'>
-    dataIndex: '${po.fieldName}String'
-    <#elseif po.classType=='umeditor'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'htmlSlot' },
-    <#elseif po.classType=='pca'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'pcaSlot' },//TODO 未翻译
-   <#elseif po.classType=='file'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'fileSlot' },
-   <#elseif po.classType=='image'>
-    dataIndex: '${po.fieldName}',
-    customRender:render.renderAvatar,
-   <#elseif po.classType=='switch'>
-    dataIndex: '${po.fieldName}',
-<#assign switch_extend_arr=['Y','N']>
-<#if po.dictField?default("")?contains("[")>
-<#assign switch_extend_arr=po.dictField?eval>
-</#if>
-<#list switch_extend_arr as a>
-<#if a_index == 0>
-<#assign switch_extend_arr1=a>
-<#else>
-<#assign switch_extend_arr2=a>
-</#if>
-</#list>
-    customRender:({text}) => {
-       return  render.renderSwitch(text, [{text:'是',value:'${switch_extend_arr1}'},{text:'否',value:'${switch_extend_arr2}'}])
-     },
-   <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-    dataIndex: '${po.fieldName}_dictText'
-   <#elseif po.classType=='cat_tree'>
-    dataIndex: '${po.fieldName}',
-    <#if po.dictText?default("")?trim?length == 0>
-    customRender:({text}) => {
-       return  render.renderCategoryTree(text,'${po.dictField?default("")}')
-   },
-   <#else>
-    customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-   </#if>
-   <#else>
-    dataIndex: '${po.fieldName}'
-   </#if>
-   },
-   </#if>
- </#list>
-];
-<#if sub.foreignRelationType =='1'>
-export const ${sub.entityName?uncap_first}FormSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list sub.colums as po><#rt/>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];
-</#if>
-</#list>
-//子表表格配置
-<#list subTables as sub>
-<#if sub.foreignRelationType =='0'>
-export const ${sub.entityName?uncap_first}JVxeColumns: JVxeColumn[] = [
-<#assign popupBackFields = "">
-
-<#-- 循环子表的列 开始 -->
-<#list sub.colums as col><#rt/>
-<#if col.isShow =='Y'>
-<#if col.filedComment !='外键' >
-    {
-      title: '${col.filedComment}',
-      key: '${autoStringSuffixForModel(col)}',
-<#if col.classType =='date'>
-      type: JVxeTypes.date,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='datetime'>
-      type: JVxeTypes.datetime,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='textarea'>
-      type: JVxeTypes.textarea,
-       <#if col.readonly=='Y'>
-      disabled:true,
-       </#if>
-<#elseif "int,decimal,double,"?contains(col.classType)>
-      type: JVxeTypes.inputNumber,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='list' || col.classType =='radio'>
-      type: JVxeTypes.select,
-      options:[],
-      <#if col.dictTable?default("")?trim?length gt 1>
-      dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-      <#else>
-      dictCode:"${col.dictField}",
-      </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='list_multi' || col.classType =='checkbox'>
-      type: JVxeTypes.selectMultiple,
-      options:[],
-      <#if col.dictTable?default("")?trim?length gt 1>
-      dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-      <#else>
-      dictCode:"${col.dictField}",
-      </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='sel_search'>
-      type: JVxeTypes.selectSearch,
-      <#if col.dictTable?default("")?trim?length gt 1>
-      dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-      <#else>
-      dictCode:"${col.dictField}",
-      </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='image'>
-      type: JVxeTypes.image,
-      token:true,
-      responseName:"message",
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-      <#if col.uploadnum??>
-      number: ${col.uploadnum},
-      </#if>
-<#elseif col.classType =='file'>
-      type: JVxeTypes.file,
-      token:true,
-      responseName:"message",
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-      <#if col.uploadnum??>
-      number: ${col.uploadnum},
-      </#if>
-<#elseif col.classType =='switch'>
-      type: JVxeTypes.checkbox,
-       <#if col.dictField == 'is_open'>
-        customValue: ['Y', 'N'],
-        <#else>
-        customValue: ${col.dictField},
-        </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='popup'>
-<#if popupBackFields?length gt 0>
-    <#assign popupBackFields = "${popupBackFields}"+","+"${col.dictText}">
-<#else>
-    <#assign popupBackFields = "${col.dictText}">
-</#if>
-      type: JVxeTypes.popup,
-      popupCode:"${col.dictTable}",
-      field:"${col.dictField}",
-      orgFields:"${col.dictField}",
-      destFields:"${Format.underlineToHump(col.dictText)}",
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#else>
-       type: JVxeTypes.input,
-       <#if col.readonly=='Y'>
-       disabled:true,
-       </#if>
-</#if>
-<#if col.classType =='list_multi' || col.classType =='checkbox'>
-      width:"250px",
-<#else>
-      width:"200px",
-</#if>
-<#if col.classType =='file'>
-      placeholder: '请选择文件',
-<#else>
-      placeholder: '请输入${'$'}{title}',
-</#if>
-<#if col.defaultVal??>
-<#if col.fieldDbType=="BigDecimal" || col.fieldDbType=="double" || col.fieldDbType=="int">
-      defaultValue:${col.defaultVal},
-      <#else>
-      defaultValue:"${col.defaultVal}",
-</#if>
-<#else>
-      defaultValue:'',
-</#if>
-<#-- 子表的校验 -->
-<#assign subFieldValidType = col.fieldValidType!''>
-<#-- 非空校验 -->
-<#if col.nullable == 'N' || subFieldValidType == '*'>
-      validateRules: [{ required: true, message: '${'$'}{title}不能为空' }],
-<#-- 其他情况下,只要有值就被认为是正则校验 -->
-<#elseif subFieldValidType?length gt 0>
-<#assign subMessage = '格式不正确'>
-<#if subFieldValidType == 'only' >
-  <#assign subMessage = '不能重复'>
-</#if>
-      validateRules: [{ pattern: "${subFieldValidType}", message: "${'$'}{title}${subMessage}" }],
-</#if>
-    },
-</#if>
-</#if>
-</#list>
-<#-- 循环子表的列 结束 -->
-  ]
-</#if>
-</#list>

+ 0 - 179
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/inner-table/onetomany/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei

@@ -1,179 +0,0 @@
-<template>
-  <BasicModal v-bind="$attrs" @register="registerModal" :title="title" @ok="handleSubmit">
-      <BasicForm @register="registerForm" ref="formRef"/>
-  <!-- 子表单区域 -->
-    <a-tabs v-model:activeKey="activeKey" @change="handleChangeTabs">
-<#list subTables as sub><#rt/>
-  <#if sub.foreignRelationType =='1'>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-        <${sub.entityName}Form ref="${sub.entityName?uncap_first}Form"></${sub.entityName}Form>
-      </a-tab-pane>
-
-  <#else>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-        <JVxeTable
-          keep-source
-          resizable
-          :ref="refKeys[${sub_index}]"
-          :loading="${sub.entityName?uncap_first}Table.loading"
-          :columns="${sub.entityName?uncap_first}Table.columns"
-          :dataSource="${sub.entityName?uncap_first}Table.dataSource"
-          :maxHeight="300"
-          :rowNumber="true"
-          :rowSelection="true"
-          :toolbar="true"
-          />
-      </a-tab-pane>
-  </#if>
-</#list>
-    </a-tabs>
-  </BasicModal>
-</template>
-
-<script lang="ts" setup>
-    import {ref, computed, unref,reactive} from 'vue';
-    import {BasicModal, useModalInner} from '/@/components/Modal';
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import { JVxeTable } from '/@/components/jeecg/JVxeTable'
-    import { useJvxeMethod } from '/@/hooks/system/useJvxeMethods.ts'
-    <#list subTables as sub>
-      <#if sub.foreignRelationType =='1'>
-    import ${sub.entityName}Form from './${sub.entityName}Form.vue'
-      </#if>
-    </#list>
-    import {formSchema<#list subTables as sub><#if sub.foreignRelationType =='0'>,${sub.entityName?uncap_first}JVxeColumns</#if></#list>} from '../${entityName?uncap_first}.data';
-    import {saveOrUpdate<#list subTables as sub>,query${sub.entityName}</#list>} from '../${entityName?uncap_first}.api';
-    import { VALIDATE_FAILED } from '/@/utils/common/vxeUtils'
-    // Emits声明
-    const emit = defineEmits(['register','success']);
-    const isUpdate = ref(true);
-    const refKeys = ref([<#list subTables as sub>'${sub.entityName?uncap_first}', </#list>]);
-    <#assign hasOne2Many = false>
-    <#assign hasOne2One = false>
-    const activeKey = ref('${subTables[0].entityName?uncap_first}');
-<#list subTables as sub>
-<#if sub.foreignRelationType =='0'>
- <#assign hasOne2Many = true>
-    const ${sub.entityName?uncap_first} = ref();
-</#if>
-<#if sub.foreignRelationType =='1'>
- <#assign hasOne2One = true>
-    const ${sub.entityName?uncap_first}Form = ref();
-</#if>
-</#list>
-    const tableRefs = {<#list subTables as sub><#if sub.foreignRelationType =='0'>${sub.entityName?uncap_first}, <#assign hasOne2Many = true></#if></#list>};
-   <#list subTables as sub>
-   <#if sub.foreignRelationType =='0'>
-    const ${sub.entityName?uncap_first}Table = reactive({
-          loading: false,
-          dataSource: [],
-          columns:${sub.entityName?uncap_first}JVxeColumns
-    })
-    </#if>
-   </#list>
-    //表单配置
-    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
-        labelWidth: 150,
-        schemas: formSchema,
-        showActionButtonGroup: false,
-    });
-     //表单赋值
-    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
-        //重置表单
-        await reset();
-        setModalProps({confirmLoading: false,showCancelBtn:data?.showFooter,showOkBtn:data?.showFooter});
-        isUpdate.value = !!data?.isUpdate;
-        if (unref(isUpdate)) {
-            //表单赋值
-            await setFieldsValue({
-                ...data.record,
-            });
-            <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='1'>
-             ${sub.entityName?uncap_first}Form.value.initFormData(query${sub.entityName},data?.record?.id)
-            </#if>
-            </#list>
-            <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='0'>
-             requestSubTableData(query${sub.entityName}, {id:data?.record?.id}, ${sub.entityName?uncap_first}Table)
-            </#if>
-            </#list>
-        }
-        // 隐藏底部时禁用整个表单
-       setProps({ disabled: !data?.showFooter })
-    });
-    //方法配置
-    const [handleChangeTabs,handleSubmit,requestSubTableData,formRef] = useJvxeMethod(requestAddOrEdit,classifyIntoFormData,tableRefs,activeKey,refKeys<#if hasOne2One==true>,validateSubForm</#if>);
-
-    //设置标题
-    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
-
-    async function reset(){
-      await resetFields();
-      activeKey.value = ref('${subTables[0].entityName?uncap_first}');
-      <#list subTables as sub>
-        <#if sub.foreignRelationType =='0'>
-      ${sub.entityName?uncap_first}Table.dataSource = [];
-        </#if>
-        <#if sub.foreignRelationType =='1'>
-      ${sub.entityName?uncap_first}Form.value.resetFields();
-        </#if>
-      </#list>
-    }
-    function classifyIntoFormData(allValues) {
-         let main = Object.assign({}, allValues.formValue)
-         return {
-           ...main, // 展开
- <#assign subManyIndex = 0>
- <#list subTables as sub><#rt/>
- <#if sub.foreignRelationType =='0'>
-           ${sub.entityName?uncap_first}List: allValues.tablesValue[${subManyIndex}].tableData,
-           <#assign subManyIndex = subManyIndex+1>
- <#else>
-           ${sub.entityName?uncap_first}List: ${sub.entityName?uncap_first}Form.value.getFormData(),
- </#if>
- </#list>
-         }
-       }
-      <#if hasOne2One==true>
-     //校验所有一对一子表表单
-     function validateSubForm(allValues){
-         return new Promise((resolve,reject)=>{
-             Promise.all([
-             <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='1'>
-                  ${sub.entityName?uncap_first}Form.value.validateForm(${sub_index}),
-            </#if>
-          </#list>
-             ]).then(() => {
-                 resolve(allValues)
-             }).catch(e => {
-                 if (e.error === VALIDATE_FAILED) {
-                     // 如果有未通过表单验证的子表,就自动跳转到它所在的tab
-                     activeKey.value = e.index == null ? unref(activeKey) : refKeys.value[e.index]
-                 } else {
-                     console.error(e)
-                 }
-             })
-         })
-     }
-    </#if>
-    //表单提交事件
-    async function requestAddOrEdit(values) {
-        try {
-            setModalProps({confirmLoading: true});
-            //提交表单
-            await saveOrUpdate(values, isUpdate.value);
-            //关闭弹窗
-            closeModal();
-            //刷新列表
-            emit('success');
-        } finally {
-            setModalProps({confirmLoading: false});
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 280
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai

@@ -1,280 +0,0 @@
-package ${bussiPackage}.${entityPackage}.controller;
-
-import java.io.UnsupportedEncodingException;
-import java.io.IOException;
-import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.jeecg.common.system.vo.LoginUser;
-import org.apache.shiro.SecurityUtils;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.vo.${entityName}Page;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.service.I${sub.entityName}Service;
-</#list>
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-<#assign bpm_flag=false>
-<#list originalColumns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-</#list>
-
- /**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Api(tags="${tableVo.ftlDescription}")
-@RestController
-@RequestMapping("/${entityPackage}/${entityName?uncap_first}")
-@Slf4j
-public class ${entityName}Controller {
-	@Autowired
-	private I${entityName}Service ${entityName?uncap_first}Service;
-	<#list subTables as sub>
-	@Autowired
-	private I${sub.entityName}Service ${sub.entityName?uncap_first}Service;
-	</#list>
-	
-	/**
-	 * 分页列表查询
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-分页列表查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-分页列表查询", notes="${tableVo.ftlDescription}-分页列表查询")
-	@GetMapping(value = "/list")
-	public Result<?> queryPageList(${entityName} ${entityName?uncap_first},
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-		Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize);
-		IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-	
-	/**
-	 *   添加
-	 *
-	 * @param ${entityName?uncap_first}Page
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-添加")
-	@ApiOperation(value="${tableVo.ftlDescription}-添加", notes="${tableVo.ftlDescription}-添加")
-	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody ${entityName}Page ${entityName?uncap_first}Page) {
-		${entityName} ${entityName?uncap_first} = new ${entityName}();
-		BeanUtils.copyProperties(${entityName?uncap_first}Page, ${entityName?uncap_first});
-		<#if bpm_flag>
-        ${entityName?uncap_first}.setBpmStatus("1");
-        </#if>
-		${entityName?uncap_first}Service.saveMain(${entityName?uncap_first}, <#list subTables as sub>${entityName?uncap_first}Page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 *  编辑
-	 *
-	 * @param ${entityName?uncap_first}Page
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-编辑")
-	@ApiOperation(value="${tableVo.ftlDescription}-编辑", notes="${tableVo.ftlDescription}-编辑")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody ${entityName}Page ${entityName?uncap_first}Page) {
-		${entityName} ${entityName?uncap_first} = new ${entityName}();
-		BeanUtils.copyProperties(${entityName?uncap_first}Page, ${entityName?uncap_first});
-		${entityName} ${entityName?uncap_first}Entity = ${entityName?uncap_first}Service.getById(${entityName?uncap_first}.getId());
-		if(${entityName?uncap_first}Entity==null) {
-			return Result.error("未找到对应数据");
-		}
-		${entityName?uncap_first}Service.updateMain(${entityName?uncap_first}, <#list subTables as sub>${entityName?uncap_first}Page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 *   通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id删除", notes="${tableVo.ftlDescription}-通过id删除")
-	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		${entityName?uncap_first}Service.delMain(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-批量删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-批量删除", notes="${tableVo.ftlDescription}-批量删除")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.${entityName?uncap_first}Service.delBatchMain(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id查询", notes="${tableVo.ftlDescription}-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
-		${entityName} ${entityName?uncap_first} = ${entityName?uncap_first}Service.getById(id);
-		if(${entityName?uncap_first}==null) {
-			return Result.error("未找到对应数据");
-		}
-		return Result.OK(${entityName?uncap_first});
-
-	}
-	
-	<#list subTables as sub>
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${sub.ftlDescription}通过主表ID查询")
-	@ApiOperation(value="${sub.ftlDescription}主表ID查询", notes="${sub.ftlDescription}-通主表ID查询")
-	@GetMapping(value = "/query${sub.entityName}ByMainId")
-	public Result<?> query${sub.entityName}ListByMainId(@RequestParam(name="id",required=true) String id) {
-		List<${sub.entityName}> ${sub.entityName?uncap_first}List = ${sub.entityName?uncap_first}Service.selectByMainId(id);
-		return Result.OK(${sub.entityName?uncap_first}List);
-	}
-	</#list>
-
-    /**
-    * 导出excel
-    *
-    * @param request
-    * @param ${entityName?uncap_first}
-    */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) {
-      // Step.1 组装查询条件查询数据
-      QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, request.getParameterMap());
-      LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-
-      //Step.2 获取导出数据
-      List<${entityName}> queryList = ${entityName?uncap_first}Service.list(queryWrapper);
-      // 过滤选中数据
-      String selections = request.getParameter("selections");
-      List<${entityName}> ${entityName?uncap_first}List = new ArrayList<${entityName}>();
-      if(oConvertUtils.isEmpty(selections)) {
-          ${entityName?uncap_first}List = queryList;
-      }else {
-          List<String> selectionList = Arrays.asList(selections.split(","));
-          ${entityName?uncap_first}List = queryList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
-      }
-
-      // Step.3 组装pageList
-      List<${entityName}Page> pageList = new ArrayList<${entityName}Page>();
-      for (${entityName} main : ${entityName?uncap_first}List) {
-          ${entityName}Page vo = new ${entityName}Page();
-          BeanUtils.copyProperties(main, vo);
-          <#list subTables as sub>
-          List<${sub.entityName}> ${sub.entityName?uncap_first}List = ${sub.entityName?uncap_first}Service.selectByMainId(main.getId());
-          vo.set${sub.entityName}List(${sub.entityName?uncap_first}List);
-          </#list>
-          pageList.add(vo);
-      }
-
-      // Step.4 AutoPoi 导出Excel
-      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-      mv.addObject(NormalExcelConstants.FILE_NAME, "${tableVo.ftlDescription}列表");
-      mv.addObject(NormalExcelConstants.CLASS, ${entityName}Page.class);
-      mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("${tableVo.ftlDescription}数据", "导出人:"+sysUser.getRealname(), "${tableVo.ftlDescription}"));
-      mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-      return mv;
-    }
-
-    /**
-    * 通过excel导入数据
-    *
-    * @param request
-    * @param response
-    * @return
-    */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-      Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-      for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-          MultipartFile file = entity.getValue();// 获取上传文件对象
-          ImportParams params = new ImportParams();
-          params.setTitleRows(2);
-          params.setHeadRows(1);
-          params.setNeedSave(true);
-          try {
-              List<${entityName}Page> list = ExcelImportUtil.importExcel(file.getInputStream(), ${entityName}Page.class, params);
-              for (${entityName}Page page : list) {
-                  ${entityName} po = new ${entityName}();
-                  BeanUtils.copyProperties(page, po);
-                  ${entityName?uncap_first}Service.saveMain(po, <#list subTables as sub>page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-              }
-              return Result.OK("文件导入成功!数据行数:" + list.size());
-          } catch (Exception e) {
-              log.error(e.getMessage(),e);
-              return Result.error("文件导入失败:"+e.getMessage());
-          } finally {
-              try {
-                  file.getInputStream().close();
-              } catch (IOException e) {
-                  e.printStackTrace();
-              }
-          }
-      }
-      return Result.OK("文件导入失败!");
-    }
-
-}

+ 0 - 75
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai

@@ -1,75 +0,0 @@
-package ${bussiPackage}.${entityPackage}.entity;
-
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@ApiModel(value="${tableName}对象", description="${tableVo.ftlDescription}")
-@Data
-@TableName("${tableName}")
-public class ${entityName} implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-<#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-    </#if>
-    <#elseif po.classType=='sel_tree'>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText?split(",")[2]}", dicCode = "${po.dictText?split(",")[0]}"'>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	@TableId(type = IdType.ASSIGN_ID)
-	<#else>
-		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-		</#if>
-      <#if list_field_dictCode?length gt 1>
-    @Dict(${list_field_dictCode?substring(2)})
-      </#if>
-	</#if>
-    <#include "/common/blob.ftl">
-	</#list>
-}

+ 0 - 17
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai

@@ -1,17 +0,0 @@
-package ${bussiPackage}.${entityPackage}.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
-
-}

+ 0 - 5
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml

@@ -1,5 +0,0 @@
-<?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="${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper">
-
-</mapper>

+ 0 - 105
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai

@@ -1,105 +0,0 @@
-package ${bussiPackage}.${entityPackage}.service.impl;
-
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.mapper.${sub.entityName}Mapper;
-</#list>
-import ${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import java.io.Serializable;
-import java.util.List;
-import java.util.Collection;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Service
-public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements I${entityName}Service {
-
-	@Autowired
-	private ${entityName}Mapper ${entityName?uncap_first}Mapper;
-	<#list subTables as sub>
-	@Autowired
-	private ${sub.entityName}Mapper ${sub.entityName?uncap_first}Mapper;
-	</#list>
-	
-	@Override
-	@Transactional
-	public void saveMain(${entityName} ${entityName?uncap_first}, <#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
-		${entityName?uncap_first}Mapper.insert(${entityName?uncap_first});
-		<#list subTables as sub>
-		if(${sub.entityName?uncap_first}List!=null && ${sub.entityName?uncap_first}List.size()>0) {
-			for(${sub.entityName} entity:${sub.entityName?uncap_first}List) {
-				<#list sub.foreignKeys as key>
-				//外键设置
-				<#if key?lower_case?index_of("${primaryKeyField}")!=-1>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${primaryKeyField?cap_first}());
-				<#else>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${key}());
-				</#if>
-				</#list>
-				${sub.entityName?uncap_first}Mapper.insert(entity);
-			}
-		}
-		</#list>
-	}
-
-	@Override
-	@Transactional
-	public void updateMain(${entityName} ${entityName?uncap_first},<#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
-		${entityName?uncap_first}Mapper.updateById(${entityName?uncap_first});
-		
-		//1.先删除子表数据
-		<#list subTables as sub>
-		${sub.entityName?uncap_first}Mapper.deleteByMainId(${entityName?uncap_first}.getId());
-		</#list>
-		
-		//2.子表数据重新插入
-		<#list subTables as sub>
-		if(${sub.entityName?uncap_first}List!=null && ${sub.entityName?uncap_first}List.size()>0) {
-			for(${sub.entityName} entity:${sub.entityName?uncap_first}List) {
-				<#list sub.foreignKeys as key>
-				//外键设置
-				<#if key?lower_case?index_of("${primaryKeyField}")!=-1>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${primaryKeyField?cap_first}());
-				<#else>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${key}());
-				</#if>
-				</#list>
-				${sub.entityName?uncap_first}Mapper.insert(entity);
-			}
-		}
-		</#list>
-	}
-
-	@Override
-	@Transactional
-	public void delMain(String id) {
-		<#list subTables as sub>
-		${sub.entityName?uncap_first}Mapper.deleteByMainId(id);
-		</#list>
-		${entityName?uncap_first}Mapper.deleteById(id);
-	}
-
-	@Override
-	@Transactional
-	public void delBatchMain(Collection<? extends Serializable> idList) {
-		for(Serializable id:idList) {
-			<#list subTables as sub>
-			${sub.entityName?uncap_first}Mapper.deleteByMainId(id.toString());
-			</#list>
-			${entityName?uncap_first}Mapper.deleteById(id);
-		}
-	}
-	
-}

+ 0 - 84
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai

@@ -1,84 +0,0 @@
-package ${bussiPackage}.${entityPackage}.vo;
-
-import java.util.List;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-import lombok.Data;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecgframework.poi.excel.annotation.ExcelEntity;
-import org.jeecgframework.poi.excel.annotation.ExcelCollection;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Data
-@ApiModel(value="${tableName}Page对象", description="${tableVo.ftlDescription}")
-public class ${entityName}Page {
-
-	<#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-      </#if>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	<#else>
-		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-		</#if>
-        <#if list_field_dictCode?length gt 1>
-    @Dict(${list_field_dictCode?substring(2)})
-        </#if>
-	</#if>
-	@ApiModelProperty(value = "${po.filedComment}")
-    <#if po.fieldDbType=='Blob'>
-    private java.lang.String ${po.fieldName}String;
-    <#else>
-    private ${po.fieldType} ${po.fieldName};
-    </#if>
-	</#list>
-
-	<#list subTables as sub>
-	@ExcelCollection(name="${sub.ftlDescription}")
-	@ApiModelProperty(value = "${sub.ftlDescription}")
-	private List<${sub.entityName}> ${sub.entityName?uncap_first}List;
-	</#list>
-
-}

+ 0 - 397
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei

@@ -1,397 +0,0 @@
-<template>
-  <a-card :bordered="false">
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-<#assign query_field_no=0>
-<#assign list_need_dict=false>
-<#assign list_need_category=false>
-<#assign list_need_pca=false>
-<#assign query_flag=false>
-<#assign bpm_flag=false>
-
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#if query_field_no==2>
-          <template v-if="toggleSearchStatus">
-	</#if>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-	<#if po.queryMode=='single'>
-          <#if query_field_no gt 1>  </#if><a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-            <#if po.classType=='sel_search'>
-              <#if query_field_no gt 1>  </#if><j-search-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dict="${po.dictTable},${po.dictText},${po.dictField}"/>
-            <#elseif po.classType=='sel_user'>
-              <#if query_field_no gt 1>  </#if><j-select-user-by-dep placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='sel_depart'>
-              <#if query_field_no gt 1>  </#if><j-select-depart placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='list_multi'>
-              <#if query_field_no gt 1>  </#if><j-multi-select-tag placeholder="请选择${po.filedComment}" dictCode="${query_field_dictCode?default("")}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='cat_tree'>
-              <#if query_field_no gt 1>  </#if><j-category-select placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" pcode="${po.dictField?default("")}"/>
-			<#elseif po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-            <#elseif po.classType=='pca'>
-              <#if query_field_no gt 1>  </#if><j-area-linkage type="cascader" v-model="queryParam.${po.fieldName}" placeholder="请选择省市区"/>
-            <#elseif po.classType=='popup'>
-              <#if query_field_no gt 1>  </#if><j-popup placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" code="${po.dictTable}" org-fields="${po.dictField}" dest-fields="${po.dictText}" :field="getPopupField('${po.dictText}')" :multi="${po.extendParams.popupMulti?c}"/>
-			<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-			<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-			<#if po.dictTable?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictTable},${po.dictText},${po.dictField}"/>
-			<#elseif po.dictField?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictField}"/>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	<#else>
-          <#if query_field_no gt 1>  </#if><a-col :xl="10" :lg="11" :md="12" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-			<#if po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最小值" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></a-input>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最大值" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	</#if>
-<#assign query_field_no=query_field_no+1>
-</#if>
-<#if !list_need_dict && po.fieldShowType!='popup' && po.dictField?default("")?trim?length gt 1>
-<#assign list_need_dict=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-<#t>
-<#if query_field_no gt 2>
-          </template>
-</#if>
-<#if query_flag>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-          </a-col>
-</#if>
-        </a-row>
-      </a-form>
-    </div>
-    <!-- 查询区域-END -->
-    
-    <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('${tableVo.ftlDescription}')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
-      </a-upload>
-      <!-- 高级查询区域 -->
-      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </a-dropdown>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        class="j-table-force-nowrap"
-        :scroll="{x:true}"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        @change="handleTableChange">
-
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-          <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="downloadFile(text)">
-            下载
-          </a-button>
-        </template>
-        <#if list_need_pca>
-        <template slot="pcaSlot" slot-scope="text">
-          <div>{{ getPcaText(text) }}</div>
-        </template>
-        </#if>
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a @click="handleDetail(record)">详情</a>
-              </a-menu-item>
-              <#if bpm_flag>
-                <a-menu-item v-if="record.bpmStatus === '1'">
-                <a @click="startProcess(record)">发起流程</a>
-              </a-menu-item>
-              </#if>
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-      </a-table>
-    </div>
-
-    <${Format.humpToShortbar(entityName)}-modal ref="modalForm" @ok="modalFormOk"/>
-  </a-card>
-</template>
-
-<script>
-
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import ${entityName}Modal from './modules/${entityName}Modal'
-  <#if list_need_category>
-  import { loadCategoryData } from '@/api/api'
-  </#if>
-  <#if list_need_dict>
-  import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
-  </#if>
-  <#if list_need_pca>
-  import Area from '@/components/_util/Area'
-  </#if>
-  import '@/assets/less/TableExpand.less'
-  <#if bpm_flag>
-  import { postAction } from '@/api/manage'
-  </#if>
-
-  export default {
-    name: "${entityName}List",
-    mixins:[JeecgListMixin],
-    components: {
-      ${entityName}Modal
-    },
-    data () {
-      return {
-        description: '${tableVo.ftlDescription}管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key:'rowIndex',
-            width:60,
-            align:"center",
-            customRender:function (t,r,index) {
-              return parseInt(index)+1;
-            }
-          },
-    <#assign showColNum=0>
-	<#list columns as po>
-	<#if po.isShowList =='Y'>
-	<#assign showColNum=showColNum+1>
-          {
-            title:'${po.filedComment}',
-            align:"center",
-            <#if po.sort=='Y'>
-            sorter: true,
-            </#if>
-            <#if po.classType=='date'>
-            dataIndex: '${po.fieldName}',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
-            }
-            <#elseif po.fieldDbType=='Blob'>
-            dataIndex: '${po.fieldName}String'
-            <#elseif po.classType=='umeditor'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'htmlSlot'}
-            <#elseif po.classType=='file'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'fileSlot'}
-            <#elseif po.classType=='pca'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'pcaSlot'}
-            <#elseif po.classType=='image'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'imgSlot'}
-            <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-            dataIndex: '${po.fieldName}_dictText'
-            <#elseif po.classType=='cat_tree'>
-            <#if list_need_category>
-            dataIndex: '${po.fieldName}',
-            customRender: (text) => (text ? filterMultiDictText(this.dictOptions['${po.fieldName}'], text) : '')
-            <#else>
-            dataIndex: '${po.fieldName}',
-            customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-            </#if>
-            <#elseif po.classType=='switch'>
-            dataIndex: '${po.fieldName}',
-            <#if po.dictField != 'is_open'>
-            customRender: (text) => (!text ? "" : (text == ${po.dictField}[0] ? "是" : "否"))
-            <#else>
-            customRender: (text) => (!text ? "" : (text == "Y" ? "是" : "否"))
-            </#if>
-			<#else>
-            dataIndex: '${po.fieldName}'
-			</#if>
-          },
-     </#if>
-     </#list>
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' },
-          }
-        ],
-        url: {
-          list: "/${entityPackage}/${entityName?uncap_first}/list",
-          delete: "/${entityPackage}/${entityName?uncap_first}/delete",
-          deleteBatch: "/${entityPackage}/${entityName?uncap_first}/deleteBatch",
-          exportXlsUrl: "/${entityPackage}/${entityName?uncap_first}/exportXls",
-          importExcelUrl: "${entityPackage}/${entityName?uncap_first}/importExcel",
-          <#if bpm_flag>startProcess: '/act/process/extActProcess/startMutilProcess'</#if>
-        },
-        <#if bpm_flag>
-        flowCode: 'dev_${tableName}_001',
-        </#if>
-        dictOptions:{},
-        superFieldList:[],
-      }
-    },
-    created() {
-      <#if list_need_pca>
-      this.pcaData = new Area()
-      </#if>
-      this.getSuperFieldList();
-    },
-    computed: {
-      importExcelUrl: function(){
-        <#noparse>return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;</#noparse>
-      }
-    },
-    methods: {
-      <#if list_need_pca>
-      getPcaText(code){
-        return this.pcaData.getText(code);
-      },
-      </#if>
-      initDictConfig(){
-      <#list columns as po>
-      <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-        <#if po.classType=='cat_tree' && list_need_category==true>
-        loadCategoryData({code:"${po.dictField?default('')}"}).then((res) => {
-          if (res.success) {
-            this.$set(this.dictOptions, '${po.fieldName}', res.result)
-          }
-        })
-        </#if>
-      </#if>  
-      </#list>
-      },
-      <#if bpm_flag>
-      startProcess(record){
-        this.$confirm({
-          title:'提示',
-          content:'确认提交流程吗?',
-          onOk:()=>{
-            let params = {
-              flowCode: this.flowCode,
-              id: record.id,
-              formUrl: '${entityPackage}/modules/${entityName}Form',
-              formUrlMobile: ''
-            }
-            postAction(this.url.startProcess, params).then(res=>{
-              if(res.success){
-                this.$message.success(res.message);
-                this.loadData();
-                this.onClearSelected();
-              }else{
-                this.$message.warning(res.message);
-              }
-            }).catch((e)=>{
-              this.$message.warning('不识别的请求!');
-            })
-          }
-        })
-      },
-      </#if>
-      getSuperFieldList(){
-        <#include "/common/utils.ftl">
-        let fieldList=[];
-         <#list columns as po>
-        fieldList.push(${superQueryFieldList(po)})
-         </#list>
-        this.superFieldList = fieldList
-      }
-    }
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less';
-</style>

+ 0 - 568
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei

@@ -1,568 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-  <a-spin :spinning="confirmLoading">
-    <j-form-container :disabled="formDisabled">
-      <!-- 主表单区域 -->
-      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
-        <a-row>
-<#assign form_popup = false>
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#assign form_span = 24>
-<#if tableVo.fieldRowNum==2>
-    <#assign form_span = 12>
-<#elseif tableVo.fieldRowNum==3>
-    <#assign form_span = 8>
-<#elseif tableVo.fieldRowNum==4>
-    <#assign form_span = 6>
-</#if>
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y' && po.fieldName != 'id'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-          <a-col :span="${form_span}" >
-            <a-form-model-item label="${po.filedComment}" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${autoStringSuffixForModel(po)}">
-	<#if po.classType =='date'>
-              <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='datetime'>
-              <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='time'>
-             <j-time placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='popup'>
-	     <#assign form_popup=true>
-              <j-popup
-                v-model="model.${po.fieldName}"
-                field="${po.fieldName}"
-                org-fields="${po.dictField}"
-                dest-fields="${Format.underlineToHump(po.dictText)}"
-                code="${po.dictTable}"
-                :multi="${po.extendParams.popupMulti?c}"
-                @input="popupCallback"
-                <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.classType =='sel_depart'>
-              <j-select-depart v-model="model.${po.fieldName}" multi <#if po.readonly=='Y'>disabled</#if>/>
-<#elseif po.classType =='switch'>
-              <j-switch v-model="model.${po.fieldName}" <#if po.dictField != 'is_open'>:options="${po.dictField}"</#if> <#if po.readonly=='Y'>disabled</#if>></j-switch>
-	<#elseif po.classType =='pca'>
-		      <j-area-linkage type="cascader" v-model="model.${po.fieldName}" placeholder="请输入省市区" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='markdown'>
-	          <j-markdown-editor v-model="model.${autoStringSuffixForModel(po)}" id="${po.fieldName}"></j-markdown-editor>
-    <#elseif po.classType =='password'>
-	          <a-input-password v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='sel_user'>
-              <j-select-user-by-dep v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType =='textarea'>
-              <a-textarea v-model="model.${autoStringSuffixForModel(po)}" rows="4" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list' || po.classType=='radio'>
-              <j-dict-select-tag type="${po.classType}" v-model="model.${po.fieldName}" dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-              <j-multi-select-tag type="${po.classType}" v-model="model.${po.fieldName}" dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='sel_search'>
-              <j-search-select-tag v-model="model.${po.fieldName}" dict="${form_field_dictCode}" <#if po.readonly=='Y'>disabled</#if>/>
-    <#elseif po.classType=='cat_tree'>
-    	<#assign form_cat_tree = true>
-              <j-category-select v-model="model.${po.fieldName}" pcode="${po.dictField?default("")}" placeholder="请选择${po.filedComment}" <#if po.dictText?default("")?trim?length gt 1>back="${dashedToCamel(po.dictText)}" @change="handleCategoryChange"</#if> <#if po.readonly=='Y'>disabled</#if>/>
-    	<#if po.dictText?default("")?trim?length gt 1>
-    	<#assign form_cat_back = "${po.dictText}">
-    	</#if>
-	<#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-              <a-input-number v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-	<#elseif po.classType=='file'>
-              <j-upload v-model="model.${autoStringSuffixForModel(po)}" <#if po.readonly=='Y'>disabled</#if> <#if po.uploadnum??>:number=${po.uploadnum}</#if>></j-upload>
-	<#elseif po.classType=='image'>
-              <j-image-upload isMultiple <#if po.uploadnum??>:number=${po.uploadnum}</#if> v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>></j-image-upload>
-	<#elseif po.classType=='umeditor'>
-              <j-editor v-model="model.${autoStringSuffixForModel(po)}" <#if po.readonly=='Y'>disabled</#if>/>
-		<#elseif po.classType == 'sel_tree'>
-  	          <j-tree-select
-                ref="treeSelect"
-                placeholder="请选择${po.filedComment}"
-                v-model="model.${autoStringSuffixForModel(po)}"
-                <#if po.dictText??>
-                <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-                dict="${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}"
-                <#elseif po.dictText?split(',')[1]??>
-                pidField="${po.dictText?split(',')[1]}"
-                <#elseif po.dictText?split(',')[3]??>
-                hasChildField="${po.dictText?split(',')[3]}"
-                </#if>
-                </#if>
-                pidValue="${po.dictField}"
-                <#if po.readonly=='Y'>disabled</#if>>
-              </j-tree-select>
-	<#else>
-              <a-input v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>></a-input>
-    </#if>
-            </a-form-model-item>
-          </a-col>
-</#if>
-</#list>
-        </a-row>
-      </a-form-model>
-    </j-form-container>
-      <!-- 子表单区域 -->
-    <a-tabs v-model="activeKey" @change="handleChangeTabs">
-<#list subTables as sub><#rt/>
-  <#if sub.foreignRelationType =='1'>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-        <${Format.humpToShortbar(sub.entityName)}-form ref="${sub.entityName?uncap_first}Form" @validateError="validateError" :disabled="formDisabled"></${Format.humpToShortbar(sub.entityName)}-form>
-      </a-tab-pane>
-      
-  <#else>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-        <j-vxe-table
-          keep-source
-          :ref="refKeys[${sub_index}]"
-          :loading="${sub.entityName?uncap_first}Table.loading"
-          :columns="${sub.entityName?uncap_first}Table.columns"
-          :dataSource="${sub.entityName?uncap_first}Table.dataSource"
-          :maxHeight="300"
-          :disabled="formDisabled"
-          :rowNumber="true"
-          :rowSelection="true"
-          :toolbar="true"
-          />
-      </a-tab-pane>
-  </#if>
-</#list>
-    </a-tabs>
-    <#if bpm_flag>
-    <a-row v-if="showFlowSubmitButton" style="text-align: center;width: 100%;margin-top: 16px;"><a-button icon="check" style="width: 126px" type="primary" @click="handleOk">提 交</a-button></a-row>
-    </#if>
-  </a-spin>
-</template>
-
-<script>
-
-  import { getAction } from '@/api/manage'
-  import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
-  import { JVXETypes } from '@/components/jeecg/JVxeTable'
-  import { getRefPromise,VALIDATE_FAILED} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js'
-  import { validateDuplicateValue } from '@/utils/util'
-  import JFormContainer from '@/components/jeecg/JFormContainer'
-  <#list subTables as sub>
-  <#if sub.foreignRelationType =='1'>
-  import ${sub.entityName}Form from './${sub.entityName}Form.vue'
-  </#if>
-  </#list>
-
-  export default {
-    name: '${entityName}Form',
-    mixins: [JVxeTableModelMixin],
-    components: {
-      JFormContainer,
-    <#list subTables as sub>
-    <#if sub.foreignRelationType =='1'>
-      ${sub.entityName}Form,
-    </#if>
-    </#list>
-    },
-    data() {
-      return {
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-        model:{
-           <#include "/common/init/initValue.ftl">
-         },
-        // 新增时子表默认添加几行空数据
-        addDefaultRowNum: 1,
-        <#include "/common/validatorRulesTemplate/main.ftl">
-        refKeys: [<#list subTables as sub>'${sub.entityName?uncap_first}', </#list>],
-        <#assign hasOne2Many = false>
-        tableKeys:[<#list subTables as sub><#if sub.foreignRelationType =='0'>'${sub.entityName?uncap_first}', <#assign hasOne2Many = true></#if></#list>],
-        activeKey: '${subTables[0].entityName?uncap_first}',
-<#list subTables as sub><#rt/>
-        // ${sub.ftlDescription}
-        ${sub.entityName?uncap_first}Table: {
-          loading: false,
-          dataSource: [],
-          columns: [
-<#if sub.foreignRelationType =='0'>
-<#assign popupBackFields = "">
-
-<#-- 循环子表的列 开始 -->
-<#list sub.colums as col><#rt/>
-<#if col.isShow =='Y'>
-    <#if col.filedComment !='外键' >
-            {
-              title: '${col.filedComment}',
-              key: '${autoStringSuffixForModel(col)}',
-      <#if col.classType =='date'>
-              type: JVXETypes.date,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='datetime'>
-              type: JVXETypes.datetime,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-       <#elseif col.classType =='textarea'>
-               type: JVXETypes.textarea,
-               <#if col.readonly=='Y'>
-               disabled:true,
-               </#if>
-      <#elseif "int,decimal,double,"?contains(col.classType)>
-              type: JVXETypes.inputNumber,
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='list' || col.classType =='radio'>
-              type: JVXETypes.select,
-              options:[],
-              <#if col.dictTable?default("")?trim?length gt 1>
-              dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-              <#else>
-              dictCode:"${col.dictField}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='list_multi' || col.classType =='checkbox'>
-              type: JVXETypes.selectMultiple,
-              options:[],
-              <#if col.dictTable?default("")?trim?length gt 1>
-              dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-              <#else>
-              dictCode:"${col.dictField}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='sel_search'>
-              type: JVXETypes.selectSearch,
-              <#if col.dictTable?default("")?trim?length gt 1>
-              dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-              <#else>
-              dictCode:"${col.dictField}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='sel_depart'>
-              type: JVXETypes.departSelect,
-              <#if col.extendParams.multiSelect?default(true) == false>
-              multi: false,
-              </#if>
-              <#if col.extendParams.store?default("")?trim?length gt 1>
-              store: "${col.extendParams.store}",
-              </#if>
-              <#if col.extendParams.text?default("")?trim?length gt 1>
-              text: "${col.extendParams.text}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='sel_user'>
-              type: JVXETypes.userSelect,
-              <#if col.extendParams.multiSelect?default(true) == false>
-              multi: false,
-              </#if>
-              <#if col.extendParams.store?default("")?trim?length gt 1>
-              store: "${col.extendParams.store}",
-              </#if>
-              <#if col.extendParams.text?default("")?trim?length gt 1>
-              text: "${col.extendParams.text}",
-              </#if>
-              <#if col.readonly=='Y'>
-              disabled: true,
-              </#if>
-      <#elseif col.classType =='image'>
-              type: JVXETypes.image,
-              token:true,
-              responseName:"message",
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-              <#if col.uploadnum??>
-              number: ${col.uploadnum},
-              </#if>
-      <#elseif col.classType =='file'>
-              type: JVXETypes.file,
-              token:true,
-              responseName:"message",
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-              <#if col.uploadnum??>
-              number: ${col.uploadnum},
-              </#if>
-      <#elseif col.classType =='switch'>
-              type: JVXETypes.checkbox,
-               <#if col.dictField == 'is_open'>
-                customValue: ['Y', 'N'],
-                <#else>
-                customValue: ${col.dictField},
-                </#if>
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#elseif col.classType =='popup'>
-        <#if popupBackFields?length gt 0>
-            <#assign popupBackFields = "${popupBackFields}"+","+"${col.dictText}">
-        <#else>
-            <#assign popupBackFields = "${col.dictText}">
-        </#if>
-              type: JVXETypes.popup,
-              popupCode:"${col.dictTable}",
-              field:"${col.dictField}",
-              orgFields:"${col.dictField}",
-              destFields:"${Format.underlineToHump(col.dictText)}",
-              <#if col.readonly=='Y'>
-              disabled:true,
-              </#if>
-      <#else>
-               type: JVXETypes.input,
-               <#if col.readonly=='Y'>
-               disabled:true,
-               </#if>
-      </#if>
-      <#if col.classType =='list_multi' || col.classType =='checkbox'>
-              width:"250px",
-      <#else>
-              width:"200px",
-      </#if>
-      <#if col.classType =='file'>
-              placeholder: '请选择文件',
-      <#else>
-              placeholder: '请输入${'$'}{title}',
-      </#if>
-      <#if col.defaultVal??>
-        <#if col.fieldDbType=="BigDecimal" || col.fieldDbType=="double" || col.fieldDbType=="int">
-              defaultValue:${col.defaultVal},
-              <#else>
-              defaultValue:"${col.defaultVal}",
-        </#if>
-      <#else>
-              defaultValue:'',
-      </#if>
-      <#-- 子表的校验 -->
-      <#assign subFieldValidType = col.fieldValidType!''>
-      <#-- 非空校验 -->
-      <#if col.nullable == 'N' || subFieldValidType == '*'>
-              validateRules: [{ required: true, message: '${'$'}{title}不能为空' }],
-      <#-- 其他情况下,只要有值就被认为是正则校验 -->
-      <#elseif subFieldValidType?length gt 0>
-        <#assign subMessage = '格式不正确'>
-        <#if subFieldValidType == 'only' >
-          <#assign subMessage = '不能重复'>
-        </#if>
-              validateRules: [{ pattern: "${subFieldValidType}", message: "${'$'}{title}${subMessage}" }],
-      </#if>
-            },
-    </#if>
-</#if>
-</#list>
-<#-- 循环子表的列 结束 -->
-
-<#-- 处理popup的隐藏列 -->
-<#if popupBackFields?length gt 0>
-<#list popupBackFields?split(",") as item>
-<#if item?length gt 0>
-<#assign tempItemFlag = true>
-
-<#list sub.colums as col>
-<#if col.isShow =='Y' && col.fieldName == item>
-<#assign tempItemFlag = false>
-</#if>
-</#list>
-<#if tempItemFlag>
-            {
-              title: '${item}',
-              key: '${item}',
-              type:"hidden"
-            },
-</#if>
-</#if>
-</#list>
-</#if>
-</#if>
-          ]
-        },
-</#list>
-        url: {
-          add: "/${entityPackage}/${entityName?uncap_first}/add",
-          edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-          queryById: "/${entityPackage}/${entityName?uncap_first}/queryById",
-<#list subTables as sub><#rt/>
-          ${sub.entityName?uncap_first}: {
-            list: '/${entityPackage}/${entityName?uncap_first}/query${sub.entityName}ByMainId'
-          },
-</#list>
-        }
-      }
-    },
-    props: {
-    <#if bpm_flag>
-      //流程表单data
-      formData: {
-        type: Object,
-        default: ()=>{},
-        required: false
-      },
-      //表单模式:false流程表单 true普通表单
-      formBpm: {
-        type: Boolean,
-        default: false,
-        required: false
-      },
-      </#if>
-      //表单禁用
-      disabled: {
-        type: Boolean,
-        default: false,
-        required: false
-      }
-    },
-    computed: {
-      formDisabled(){
-         <#if bpm_flag>
-        if(this.formBpm===true){
-          if(this.formData.disabled===false){
-            return false
-          }
-          return true
-        }
-         </#if>
-        return this.disabled
-      },
-       <#if bpm_flag>
-      showFlowSubmitButton(){
-        if(this.formBpm===true){
-          if(this.formData.disabled===false){
-            return true
-          }
-        }
-        return false
-      }
-      </#if>
-    },
-    created () {
-     <#if bpm_flag>
-      //如果是流程中表单,则需要加载流程表单data
-      this.showFlowData();
-     </#if>
-    },
-    methods: {
-      addBefore(){
-<#list subTables as sub><#rt/>
-  <#if sub.foreignRelationType =='1'>
-        this.$refs.${sub.entityName?uncap_first}Form.clearFormData()
-  <#else>
-        this.${sub.entityName?uncap_first}Table.dataSource=[]
-  </#if>
-</#list>
-      },
-      getAllTable() {
-        <#if hasOne2Many==true>
-        let values = this.tableKeys.map(key => getRefPromise(this, key))
-        return Promise.all(values)
-        <#else>
-        return new Promise(resolve => {
-          resolve([]);
-        })
-        </#if>
-      },
-      /** 调用完edit()方法之后会自动调用此方法 */
-      editAfter() {
-        this.$nextTick(() => {
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='1'>
-          this.$refs.${sub.entityName?uncap_first}Form.initFormData(this.url.${sub.entityName?uncap_first}.list,this.model.id)
-</#if>
-</#list>         
-        })
-        // 加载子表数据
-        if (this.model.id) {
-          let params = { id: this.model.id }
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='0'>
-          this.requestSubTableData(this.url.${sub.entityName?uncap_first}.list, params, this.${sub.entityName?uncap_first}Table)
-</#if>
-</#list>
-        }
-      },
-      //校验所有一对一子表表单
-        validateSubForm(allValues){
-            return new Promise((resolve,reject)=>{
-              Promise.all([
-          <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='1'>
-                  this.$refs.${sub.entityName?uncap_first}Form.validate(${sub_index}),
-            </#if>
-          </#list>
-              ]).then(() => {
-                resolve(allValues)
-              }).catch(e => {
-                if (e.error === VALIDATE_FAILED) {
-                  // 如果有未通过表单验证的子表,就自动跳转到它所在的tab
-                  this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
-                } else {
-                  console.error(e)
-                }
-              })
-            })
-        },
-      /** 整理成formData */
-      classifyIntoFormData(allValues) {
-        let main = Object.assign(this.model, allValues.formValue)
-        return {
-          ...main, // 展开
-<#assign subManyIndex = 0>
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='0'>
-          ${sub.entityName?uncap_first}List: allValues.tablesValue[${subManyIndex}].tableData,
-          <#assign subManyIndex = subManyIndex+1>
-<#else>
-          ${sub.entityName?uncap_first}List: this.$refs.${sub.entityName?uncap_first}Form.getFormData(),
-</#if>
-</#list>
-        }
-      },
-      <#if bpm_flag>
-      //渲染流程表单数据
-      showFlowData(){
-        if(this.formBpm === true){
-          let params = {id:this.formData.dataId};
-          getAction(this.url.queryById,params).then((res)=>{
-            if(res.success){
-              this.edit (res.result);
-            }
-          })
-        }
-      },
-      </#if>
-      validateError(msg){
-        this.$message.error(msg)
-      },
-     <#if form_popup>
-     popupCallback(value,row){
-      this.model = Object.assign(this.model, row);
-     },
-    </#if>
-   <#if form_cat_tree>
-     handleCategoryChange(value,backObj){
-      this.model = Object.assign(this.model, backObj);
-      }
-   </#if>
-
-    }
-  }
-</script>
-
-<style scoped>
-</style>

+ 0 - 65
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei

@@ -1,65 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-  <j-modal
-    :title="title"
-    :width="1200"
-    :visible="visible"
-    :maskClosable="false"
-    switchFullscreen
-    @ok="handleOk"
-    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
-    @cancel="handleCancel">
-    <${Format.humpToShortbar(entityName)}-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"/>
-  </j-modal>
-</template>
-
-<script>
-
-  import ${entityName}Form from './${entityName}Form'
-
-  export default {
-    name: '${entityName}Modal',
-    components: {
-      ${entityName}Form
-    },
-    data() {
-      return {
-        title:'',
-        width:800,
-        visible: false,
-        disableSubmit: false
-      }
-    },
-    methods:{
-      add () {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.add();
-        })
-      },
-      edit (record) {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.edit(record);
-        })
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-      },
-      handleOk () {
-        this.$refs.realForm.handleOk();
-      },
-      submitCallback(){
-        this.$emit('ok');
-        this.visible = false;
-      },
-      handleCancel () {
-        this.close()
-      }
-    }
-  }
-</script>
-
-<style scoped>
-</style>

+ 0 - 218
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei

@@ -1,218 +0,0 @@
-<template>
-  <div>
-<#assign list_need_category=false>
-<#assign list_need_pca=false>
-<#assign bpm_flag=false>
-
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-    <!--引用表格-->
-   <BasicTable @register="registerTable" :rowSelection="rowSelection">
-     <!--插槽:table标题-->
-      <template #tableTitle>
-          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
-          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-          <a-dropdown v-if="checkedKeys.length > 0">
-              <template #overlay>
-                <a-menu>
-                  <a-menu-item key="1" @click="batchHandleDelete">
-                    <Icon icon="ant-design:delete-outlined"></Icon>
-                    删除
-                  </a-menu-item>
-                </a-menu>
-              </template>
-              <a-button>批量操作
-                <Icon icon="mdi:chevron-down"></Icon>
-              </a-button>
-        </a-dropdown>
-      </template>
-       <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
-      </template>
-      <!--字段回显插槽-->
-      <template #htmlSlot="{text}">
-         <div v-html="text"></div>
-      </template>
-      <template #fileSlot="{text}">
-         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
-      </template>
-    </BasicTable>
-    <!-- 表单区域 -->
-    <${entityName}Modal @register="registerModal" @success="handleSuccess"></${entityName}Modal>
-  </div>
-</template>
-
-<script lang="ts" name="${entityPackage}-${entityName?uncap_first}" setup>
-  import {ref, computed, unref} from 'vue';
-  import {BasicTable, useTable, TableAction} from '/@/components/Table';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import {useModal} from '/@/components/Modal';
-  import ${entityName}Modal from './components/${entityName}Modal.vue'
-  import {columns, searchFormSchema} from './${entityName?uncap_first}.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './${entityName?uncap_first}.api';
-  <#if list_need_category>
-  import { loadCategoryData } from '/@/api/common/api'
-  import { getAuthCache, setAuthCache } from '/@/utils/auth';
-  import { DB_DICT_DATA_KEY } from '/@/enums/cacheEnum';
-  </#if>
-  const checkedKeys = ref<Array<string | number>>([]);
-  //注册model
-  const [registerModal, {openModal}] = useModal();
-   //注册table数据
-  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
-      tableProps:{
-           title: '${tableVo.ftlDescription}',
-           api: list,
-           columns,
-           canResize:false,
-           formConfig: {
-                labelWidth: 120,
-                schemas: searchFormSchema,
-                autoSubmitOnEnter:true,
-                showAdvancedButton:true,
-                fieldMapToTime: [
-                <#list columns as po>
-                <#if po.isQuery=='Y'>
-                <#if po.queryMode!='single'>
-                <#if po.classType=='date'>
-                   ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD'],
-                <#elseif po.classType=='datetime'>
-                   ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD HH:mm:ss'],
-                </#if>
-                </#if>
-                </#if>
-                </#list>
-                ],
-            },
-            actionColumn: {
-               width: 120,
-            },
-        },
-        exportConfig: {
-            name:"${tableVo.ftlDescription}",
-            url: getExportUrl,
-        },
-        importConfig: {
-            url: getImportUrl
-        },
-    })
-
-  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-
-   /**
-    * 新增事件
-    */
-  function handleAdd() {
-     openModal(true, {
-       isUpdate: false,
-       showFooter: true,
-     });
-  }
-   /**
-    * 编辑事件
-    */
-  function handleEdit(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: true,
-     });
-   }
-   /**
-    * 详情
-   */
-  function handleDetail(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: false,
-     });
-   }
-   /**
-    * 删除事件
-    */
-  async function handleDelete(record) {
-     await deleteOne({id: record.id}, reload);
-   }
-   /**
-    * 批量删除事件
-    */
-  async function batchHandleDelete() {
-     await batchDelete({ids: checkedKeys.value}, reload);
-   }
-   /**
-    * 成功回调
-    */
-  function handleSuccess() {
-      reload();
-   }
-   /**
-      * 操作栏
-      */
-  function getTableAction(record){
-       return [
-         {
-           label: '编辑',
-           onClick: handleEdit.bind(null, record),
-         }
-       ]
-   }
-     /**
-        * 下拉操作栏
-        */
-  function getDropDownAction(record){
-      return [
-           {
-             label: '详情',
-             onClick: handleDetail.bind(null, record),
-           }, {
-             label: '删除',
-             popConfirm: {
-               title: '是否确认删除',
-               confirm: handleDelete.bind(null, record),
-             }
-           }
-      ]
-   }
-    <#if list_need_category>
-   /**
-    * 初始化字典配置
-   */
-    function initDictConfig(){
-     <#list columns as po>
-     <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-       <#if po.classType=='cat_tree' && list_need_category==true>
-       loadCategoryData({code:'${po.dictField?default("")}'}).then((res) => {
-         if (res) {
-             let allDictDate = getAuthCache(DB_DICT_DATA_KEY);
-             if(!allDictDate['${po.dictField?default("")}']){
-               Object.assign(allDictDate,{'${po.dictField?default("")}':res})
-             }
-             setAuthCache(DB_DICT_DATA_KEY,allDictDate)
-         }
-       })
-       </#if>
-     </#if>
-     </#list>
-   }
-   initDictConfig();
-    </#if>
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 72
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi

@@ -1,72 +0,0 @@
-import {defHttp} from '/@/utils/http/axios';
-import {Modal} from 'ant-design-vue';
-
-enum Api {
-  list = '/${entityPackage}/${entityName?uncap_first}/list',
-  save='/${entityPackage}/${entityName?uncap_first}/add',
-  edit='/${entityPackage}/${entityName?uncap_first}/edit',
-  deleteOne = '/${entityPackage}/${entityName?uncap_first}/delete',
-  deleteBatch = '/${entityPackage}/${entityName?uncap_first}/deleteBatch',
-  importExcel = '/${entityPackage}/${entityName?uncap_first}/importExcel',
-  exportXls = '/${entityPackage}/${entityName?uncap_first}/exportXls',
-<#list subTables as sub><#rt/>
-  ${sub.entityName?uncap_first}List = '/${entityPackage}/${entityName?uncap_first}/query${sub.entityName}ByMainId',
-</#list>
-}
-/**
- * 导出api
- * @param params
- */
-export const getExportUrl = Api.exportXls;
-
-/**
- * 导入api
- */
-export const getImportUrl = Api.importExcel;
-<#list subTables as sub><#rt/>
-/**
- * 查询子表数据
- * @param params
- */
-export const ${sub.entityName?uncap_first}List = Api.${sub.entityName?uncap_first}List;
-</#list>
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-
-/**
- * 删除单个
- */
-export const deleteOne = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- */
-export const batchDelete = (params, handleSuccess) => {
-  Modal.confirm({
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- */
-export const saveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
-}

+ 0 - 700
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi

@@ -1,700 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-import {JVxeTypes,JVxeColumn} from '/@/components/jeecg/JVxeTable/types'
-//列表数据
-export const columns: BasicColumn[] = [
- <#list columns as po>
-   <#if po.isShowList =='Y' && po.fieldName !='id'>
-   {
-    title: '${po.filedComment}',
-    align:"center",
-    <#if po.sort=='Y'>
-    sorter: true,
-   </#if>
-    <#if po.classType=='date'>
-    dataIndex: '${po.fieldName}',
-    customRender:({text}) =>{
-      return !text?"":(text.length>10?text.substr(0,10):text)
-    },
-    <#elseif po.fieldDbType=='Blob'>
-    dataIndex: '${po.fieldName}String'
-    <#elseif po.classType=='umeditor'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'htmlSlot' },
-    <#elseif po.classType=='pca'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'pcaSlot' },//TODO 未翻译
-   <#elseif po.classType=='file'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'fileSlot' },
-   <#elseif po.classType=='image'>
-    dataIndex: '${po.fieldName}',
-    customRender:render.renderAvatar,
-   <#elseif po.classType=='switch'>
-    dataIndex: '${po.fieldName}',
-<#assign switch_extend_arr=['Y','N']>
-<#if po.dictField?default("")?contains("[")>
-<#assign switch_extend_arr=po.dictField?eval>
-</#if>
-<#list switch_extend_arr as a>
-<#if a_index == 0>
-<#assign switch_extend_arr1=a>
-<#else>
-<#assign switch_extend_arr2=a>
-</#if>
-</#list>
-    customRender:({text}) => {
-       return  render.renderSwitch(text, [{text:'是',value:'${switch_extend_arr1}'},{text:'否',value:'${switch_extend_arr2}'}])
-     },
-   <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-    dataIndex: '${po.fieldName}_dictText'
-   <#elseif po.classType=='cat_tree'>
-    dataIndex: '${po.fieldName}',
-    <#if po.dictText?default("")?trim?length == 0>
-    customRender:({text}) => {
-       return  render.renderCategoryTree(text,'${po.dictField?default("")}')
-   },
-   <#else>
-    customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-   </#if>
-   <#else>
-    dataIndex: '${po.fieldName}'
-   </#if>
-   },
-   </#if>
- </#list>
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-<#if po.queryMode=='single'>
-	{
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='sel_search'>
-      component: 'JSearchSelect',
-      componentProps:{
-         dict:"${po.dictTable},${po.dictText},${po.dictField}"
-      },
-<#elseif po.classType=='sel_user'>
-      component: 'JSelectUserByDept',
-<#elseif po.classType=='switch'>
-      component: 'JSwitch',
-      componentProps:{
-           <#if po.dictField != 'is_open'>
-           options:"${po.dictField}"
-           </#if>
-       },
- <#elseif po.classType=='sel_depart'>
-      component: 'JSelectDept',
- <#elseif po.classType=='list_multi'>
-      component: 'JMultiSelectTag',//暂无该组件
-      componentProps:{
-          dictCode:"query_field_dictCode?default("")"
-      },
- <#elseif po.classType=='cat_tree'>
-      component: 'JCategorySelect',
-      componentProps:{
-          pcode:"${po.dictField?default("")}",//back和事件未添加,暂时有问题
-      },
-<#elseif po.classType=='date'>
-      component: 'DatePicker',
-<#elseif po.classType=='datetime'>
-      component: 'DatePicker',
-      componentProps: {
-         showTime:true
-       },
-<#elseif po.classType=='pca'>
-      component: 'JAreaLinkage',
-<#elseif po.classType=='popup'>
-      component: 'JPopup',
-      componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:"${po.dictField}",
-             multi:${po.extendParams.popupMulti?c},
-         }
-     },
-<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-      component: 'JDictSelectTag',
-      componentProps:{
-       <#if po.dictTable?default("")?trim?length gt 1>
-          dictCode:"${po.dictTable},${po.dictText},${po.dictField}"
-       <#elseif po.dictField?default("")?trim?length gt 1>
-          dictCode:"${po.dictField}"
-        </#if>
-      },
-<#else>
-      component: 'Input',
-</#if>
-      colProps: {span: 6},
- 	},
-<#else>
-     {
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='date'>
-      component: 'RangePicker',
-<#elseif po.classType=='datetime'>
-      component: 'RangePicker',
-      componentProps: {
-          showTime:true
-      },
-<#else>
-      component: 'Input', //TODO 范围查询
-</#if>
-      colProps: {span: 6},
-	},
-</#if>
-</#if>
-</#list>
-<#-- 结束循环 -->
-];
-//表单数据
-export const formSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list columns as po><#rt/>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];
-//子表单数据
-<#list subTables as sub>
-<#if sub.foreignRelationType =='1'>
-export const ${sub.entityName?uncap_first}FormSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list sub.colums as po><#rt/>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];
-</#if>
-</#list>
-//子表表格配置
-<#list subTables as sub>
-<#if sub.foreignRelationType =='0'>
-export const ${sub.entityName?uncap_first}Columns: JVxeColumn[] = [
-<#assign popupBackFields = "">
-
-<#-- 循环子表的列 开始 -->
-<#list sub.colums as col><#rt/>
-<#if col.isShow =='Y'>
-<#if col.filedComment !='外键' >
-    {
-      title: '${col.filedComment}',
-      key: '${autoStringSuffixForModel(col)}',
-<#if col.classType =='date'>
-      type: JVxeTypes.date,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='datetime'>
-      type: JVxeTypes.datetime,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='textarea'>
-      type: JVxeTypes.textarea,
-       <#if col.readonly=='Y'>
-      disabled:true,
-       </#if>
-<#elseif "int,decimal,double,"?contains(col.classType)>
-      type: JVxeTypes.inputNumber,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='list' || col.classType =='radio'>
-      type: JVxeTypes.select,
-      options:[],
-      <#if col.dictTable?default("")?trim?length gt 1>
-      dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-      <#else>
-      dictCode:"${col.dictField}",
-      </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='list_multi' || col.classType =='checkbox'>
-      type: JVxeTypes.selectMultiple,
-      options:[],
-      <#if col.dictTable?default("")?trim?length gt 1>
-      dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-      <#else>
-      dictCode:"${col.dictField}",
-      </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='sel_search'>
-      type: JVxeTypes.selectSearch,
-      <#if col.dictTable?default("")?trim?length gt 1>
-      dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-      <#else>
-      dictCode:"${col.dictField}",
-      </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='image'>
-      type: JVxeTypes.image,
-      token:true,
-      responseName:"message",
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-      <#if col.uploadnum??>
-      number: ${col.uploadnum},
-      </#if>
-<#elseif col.classType =='file'>
-      type: JVxeTypes.file,
-      token:true,
-      responseName:"message",
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-      <#if col.uploadnum??>
-      number: ${col.uploadnum},
-      </#if>
-<#elseif col.classType =='switch'>
-      type: JVxeTypes.checkbox,
-       <#if col.dictField == 'is_open'>
-        customValue: ['Y', 'N'],
-        <#else>
-        customValue: ${col.dictField},
-        </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='popup'>
-<#if popupBackFields?length gt 0>
-    <#assign popupBackFields = "${popupBackFields}"+","+"${col.dictText}">
-<#else>
-    <#assign popupBackFields = "${col.dictText}">
-</#if>
-      type: JVxeTypes.popup,
-      popupCode:"${col.dictTable}",
-      field:"${col.dictField}",
-      orgFields:"${col.dictField}",
-      destFields:"${Format.underlineToHump(col.dictText)}",
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#else>
-       type: JVxeTypes.input,
-       <#if col.readonly=='Y'>
-       disabled:true,
-       </#if>
-</#if>
-<#if col.classType =='list_multi' || col.classType =='checkbox'>
-      width:"250px",
-<#else>
-      width:"200px",
-</#if>
-<#if col.classType =='file'>
-      placeholder: '请选择文件',
-<#else>
-      placeholder: '请输入${'$'}{title}',
-</#if>
-<#if col.defaultVal??>
-<#if col.fieldDbType=="BigDecimal" || col.fieldDbType=="double" || col.fieldDbType=="int">
-      defaultValue:${col.defaultVal},
-      <#else>
-      defaultValue:"${col.defaultVal}",
-</#if>
-<#else>
-      defaultValue:'',
-</#if>
-<#-- 子表的校验 -->
-<#assign subFieldValidType = col.fieldValidType!''>
-<#-- 非空校验 -->
-<#if col.nullable == 'N' || subFieldValidType == '*'>
-      validateRules: [{ required: true, message: '${'$'}{title}不能为空' }],
-<#-- 其他情况下,只要有值就被认为是正则校验 -->
-<#elseif subFieldValidType?length gt 0>
-<#assign subMessage = '格式不正确'>
-<#if subFieldValidType == 'only' >
-  <#assign subMessage = '不能重复'>
-</#if>
-      validateRules: [{ pattern: "${subFieldValidType}", message: "${'$'}{title}${subMessage}" }],
-</#if>
-    },
-</#if>
-</#if>
-</#list>
-<#-- 循环子表的列 结束 -->
-  ]
-</#if>
-</#list>

+ 0 - 179
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/jvxe/onetomany/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei

@@ -1,179 +0,0 @@
-<template>
-  <BasicModal v-bind="$attrs" @register="registerModal" :title="title" @ok="handleSubmit">
-      <BasicForm @register="registerForm" ref="formRef"/>
-  <!-- 子表单区域 -->
-    <a-tabs v-model:activeKey="activeKey" @change="handleChangeTabs">
-<#list subTables as sub><#rt/>
-  <#if sub.foreignRelationType =='1'>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-        <${sub.entityName}Form ref="${sub.entityName?uncap_first}Form"></${sub.entityName}Form>
-      </a-tab-pane>
-
-  <#else>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index}]" :forceRender="true">
-        <JVxeTable
-          keep-source
-          resizable
-          :ref="refKeys[${sub_index}]"
-          :loading="${sub.entityName?uncap_first}Table.loading"
-          :columns="${sub.entityName?uncap_first}Table.columns"
-          :dataSource="${sub.entityName?uncap_first}Table.dataSource"
-          :maxHeight="300"
-          :rowNumber="true"
-          :rowSelection="true"
-          :toolbar="true"
-          />
-      </a-tab-pane>
-  </#if>
-</#list>
-    </a-tabs>
-  </BasicModal>
-</template>
-
-<script lang="ts" setup>
-    import {ref, computed, unref,reactive} from 'vue';
-    import {BasicModal, useModalInner} from '/@/components/Modal';
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import { JVxeTable } from '/@/components/jeecg/JVxeTable'
-    import { useJvxeMethod } from '/@/hooks/system/useJvxeMethods.ts'
-    <#list subTables as sub>
-      <#if sub.foreignRelationType =='1'>
-    import ${sub.entityName}Form from './${sub.entityName}Form.vue'
-      </#if>
-    </#list>
-    import {formSchema<#list subTables as sub><#if sub.foreignRelationType =='0'>,${sub.entityName?uncap_first}Columns</#if></#list>} from '../${entityName?uncap_first}.data';
-    import {saveOrUpdate<#list subTables as sub>,${sub.entityName?uncap_first}List</#list>} from '../${entityName?uncap_first}.api';
-    import { VALIDATE_FAILED } from '/@/utils/common/vxeUtils'
-    // Emits声明
-    const emit = defineEmits(['register','success']);
-    const isUpdate = ref(true);
-    const refKeys = ref([<#list subTables as sub>'${sub.entityName?uncap_first}', </#list>]);
-    <#assign hasOne2Many = false>
-    <#assign hasOne2One = false>
-    const activeKey = ref('${subTables[0].entityName?uncap_first}');
-<#list subTables as sub>
-<#if sub.foreignRelationType =='0'>
- <#assign hasOne2Many = true>
-    const ${sub.entityName?uncap_first} = ref();
-</#if>
-<#if sub.foreignRelationType =='1'>
- <#assign hasOne2One = true>
-    const ${sub.entityName?uncap_first}Form = ref();
-</#if>
-</#list>
-    const tableRefs = {<#list subTables as sub><#if sub.foreignRelationType =='0'>${sub.entityName?uncap_first}, <#assign hasOne2Many = true></#if></#list>};
-   <#list subTables as sub>
-   <#if sub.foreignRelationType =='0'>
-    const ${sub.entityName?uncap_first}Table = reactive({
-          loading: false,
-          dataSource: [],
-          columns:${sub.entityName?uncap_first}Columns
-    })
-    </#if>
-   </#list>
-    //表单配置
-    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
-        labelWidth: 150,
-        schemas: formSchema,
-        showActionButtonGroup: false,
-    });
-     //表单赋值
-    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
-        //重置表单
-        await reset();
-        setModalProps({confirmLoading: false,showCancelBtn:data?.showFooter,showOkBtn:data?.showFooter});
-        isUpdate.value = !!data?.isUpdate;
-        if (unref(isUpdate)) {
-            //表单赋值
-            await setFieldsValue({
-                ...data.record,
-            });
-            <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='1'>
-             ${sub.entityName?uncap_first}Form.value.initFormData(${sub.entityName?uncap_first}List,data?.record?.id)
-            </#if>
-            </#list>
-            <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='0'>
-             requestSubTableData(${sub.entityName?uncap_first}List, {id:data?.record?.id}, ${sub.entityName?uncap_first}Table)
-            </#if>
-            </#list>
-        }
-        // 隐藏底部时禁用整个表单
-       setProps({ disabled: !data?.showFooter })
-    });
-    //方法配置
-    const [handleChangeTabs,handleSubmit,requestSubTableData,formRef] = useJvxeMethod(requestAddOrEdit,classifyIntoFormData,tableRefs,activeKey,refKeys<#if hasOne2One==true>,validateSubForm</#if>);
-
-    //设置标题
-    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
-
-    async function reset(){
-      await resetFields();
-      activeKey.value = ref('${subTables[0].entityName?uncap_first}');
-      <#list subTables as sub>
-        <#if sub.foreignRelationType =='0'>
-      ${sub.entityName?uncap_first}Table.dataSource = [];
-        </#if>
-        <#if sub.foreignRelationType =='1'>
-      ${sub.entityName?uncap_first}Form.value.resetFields();
-        </#if>
-      </#list>
-    }
-    function classifyIntoFormData(allValues) {
-         let main = Object.assign({}, allValues.formValue)
-         return {
-           ...main, // 展开
- <#assign subManyIndex = 0>
- <#list subTables as sub><#rt/>
- <#if sub.foreignRelationType =='0'>
-           ${sub.entityName?uncap_first}List: allValues.tablesValue[${subManyIndex}].tableData,
-           <#assign subManyIndex = subManyIndex+1>
- <#else>
-           ${sub.entityName?uncap_first}List: ${sub.entityName?uncap_first}Form.value.getFormData(),
- </#if>
- </#list>
-         }
-       }
-      <#if hasOne2One==true>
-     //校验所有一对一子表表单
-     function validateSubForm(allValues){
-         return new Promise((resolve,reject)=>{
-             Promise.all([
-             <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='1'>
-                  ${sub.entityName?uncap_first}Form.value.validateForm(${sub_index}),
-            </#if>
-          </#list>
-             ]).then(() => {
-                 resolve(allValues)
-             }).catch(e => {
-                 if (e.error === VALIDATE_FAILED) {
-                     // 如果有未通过表单验证的子表,就自动跳转到它所在的tab
-                     activeKey.value = e.index == null ? unref(activeKey) : refKeys.value[e.index]
-                 } else {
-                     console.error(e)
-                 }
-             })
-         })
-     }
-    </#if>
-    //表单提交事件
-    async function requestAddOrEdit(values) {
-        try {
-            setModalProps({confirmLoading: true});
-            //提交表单
-            await saveOrUpdate(values, isUpdate.value);
-            //关闭弹窗
-            closeModal();
-            //刷新列表
-            emit('success');
-        } finally {
-            setModalProps({confirmLoading: false});
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 271
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai

@@ -1,271 +0,0 @@
-package ${bussiPackage}.${entityPackage}.controller;
-
-import java.io.UnsupportedEncodingException;
-import java.io.IOException;
-import java.net.URLDecoder;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.jeecg.common.system.vo.LoginUser;
-import org.apache.shiro.SecurityUtils;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.vo.${entityName}Page;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.service.I${sub.entityName}Service;
-</#list>
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-
- /**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Api(tags="${tableVo.ftlDescription}")
-@RestController
-@RequestMapping("/${entityPackage}/${entityName?uncap_first}")
-@Slf4j
-public class ${entityName}Controller {
-	@Autowired
-	private I${entityName}Service ${entityName?uncap_first}Service;
-	<#list subTables as sub>
-	@Autowired
-	private I${sub.entityName}Service ${sub.entityName?uncap_first}Service;
-	</#list>
-	
-	/**
-	 * 分页列表查询
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-分页列表查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-分页列表查询", notes="${tableVo.ftlDescription}-分页列表查询")
-	@GetMapping(value = "/list")
-	public Result<?> queryPageList(${entityName} ${entityName?uncap_first},
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-		Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize);
-		IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-	
-	/**
-	 *   添加
-	 *
-	 * @param ${entityName?uncap_first}Page
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-添加")
-	@ApiOperation(value="${tableVo.ftlDescription}-添加", notes="${tableVo.ftlDescription}-添加")
-	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody ${entityName}Page ${entityName?uncap_first}Page) {
-		${entityName} ${entityName?uncap_first} = new ${entityName}();
-		BeanUtils.copyProperties(${entityName?uncap_first}Page, ${entityName?uncap_first});
-		${entityName?uncap_first}Service.saveMain(${entityName?uncap_first}, <#list subTables as sub>${entityName?uncap_first}Page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 *  编辑
-	 *
-	 * @param ${entityName?uncap_first}Page
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-编辑")
-	@ApiOperation(value="${tableVo.ftlDescription}-编辑", notes="${tableVo.ftlDescription}-编辑")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody ${entityName}Page ${entityName?uncap_first}Page) {
-		${entityName} ${entityName?uncap_first} = new ${entityName}();
-		BeanUtils.copyProperties(${entityName?uncap_first}Page, ${entityName?uncap_first});
-		${entityName} ${entityName?uncap_first}Entity = ${entityName?uncap_first}Service.getById(${entityName?uncap_first}.getId());
-		if(${entityName?uncap_first}Entity==null) {
-			return Result.error("未找到对应数据");
-		}
-		${entityName?uncap_first}Service.updateMain(${entityName?uncap_first}, <#list subTables as sub>${entityName?uncap_first}Page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 *   通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id删除", notes="${tableVo.ftlDescription}-通过id删除")
-	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		${entityName?uncap_first}Service.delMain(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-批量删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-批量删除", notes="${tableVo.ftlDescription}-批量删除")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.${entityName?uncap_first}Service.delBatchMain(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id查询", notes="${tableVo.ftlDescription}-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
-		${entityName} ${entityName?uncap_first} = ${entityName?uncap_first}Service.getById(id);
-		if(${entityName?uncap_first}==null) {
-			return Result.error("未找到对应数据");
-		}
-		return Result.OK(${entityName?uncap_first});
-
-	}
-	
-	<#list subTables as sub>
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${sub.ftlDescription}通过主表ID查询")
-	@ApiOperation(value="${sub.ftlDescription}主表ID查询", notes="${sub.ftlDescription}-通主表ID查询")
-	@GetMapping(value = "/query${sub.entityName}ByMainId")
-	public Result<?> query${sub.entityName}ListByMainId(@RequestParam(name="id",required=true) String id) {
-		List<${sub.entityName}> ${sub.entityName?uncap_first}List = ${sub.entityName?uncap_first}Service.selectByMainId(id);
-		return Result.OK(${sub.entityName?uncap_first}List);
-	}
-	</#list>
-
-    /**
-    * 导出excel
-    *
-    * @param request
-    * @param ${entityName?uncap_first}
-    */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) {
-      // Step.1 组装查询条件查询数据
-      QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, request.getParameterMap());
-      LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-
-      //Step.2 获取导出数据
-      List<${entityName}> queryList = ${entityName?uncap_first}Service.list(queryWrapper);
-      // 过滤选中数据
-      String selections = request.getParameter("selections");
-      List<${entityName}> ${entityName?uncap_first}List = new ArrayList<${entityName}>();
-      if(oConvertUtils.isEmpty(selections)) {
-          ${entityName?uncap_first}List = queryList;
-      }else {
-          List<String> selectionList = Arrays.asList(selections.split(","));
-          ${entityName?uncap_first}List = queryList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
-      }
-
-      // Step.3 组装pageList
-      List<${entityName}Page> pageList = new ArrayList<${entityName}Page>();
-      for (${entityName} main : ${entityName?uncap_first}List) {
-          ${entityName}Page vo = new ${entityName}Page();
-          BeanUtils.copyProperties(main, vo);
-          <#list subTables as sub>
-          List<${sub.entityName}> ${sub.entityName?uncap_first}List = ${sub.entityName?uncap_first}Service.selectByMainId(main.getId());
-          vo.set${sub.entityName}List(${sub.entityName?uncap_first}List);
-          </#list>
-          pageList.add(vo);
-      }
-
-      // Step.4 AutoPoi 导出Excel
-      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
-      mv.addObject(NormalExcelConstants.FILE_NAME, "${tableVo.ftlDescription}列表");
-      mv.addObject(NormalExcelConstants.CLASS, ${entityName}Page.class);
-      mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("${tableVo.ftlDescription}数据", "导出人:"+sysUser.getRealname(), "${tableVo.ftlDescription}"));
-      mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
-      return mv;
-    }
-
-    /**
-    * 通过excel导入数据
-    *
-    * @param request
-    * @param response
-    * @return
-    */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
-      Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
-      for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-          MultipartFile file = entity.getValue();// 获取上传文件对象
-          ImportParams params = new ImportParams();
-          params.setTitleRows(2);
-          params.setHeadRows(1);
-          params.setNeedSave(true);
-          try {
-              List<${entityName}Page> list = ExcelImportUtil.importExcel(file.getInputStream(), ${entityName}Page.class, params);
-              for (${entityName}Page page : list) {
-                  ${entityName} po = new ${entityName}();
-                  BeanUtils.copyProperties(page, po);
-                  ${entityName?uncap_first}Service.saveMain(po, <#list subTables as sub>page.get${sub.entityName}List()<#if sub_has_next>,</#if></#list>);
-              }
-              return Result.OK("文件导入成功!数据行数:" + list.size());
-          } catch (Exception e) {
-              log.error(e.getMessage(),e);
-              return Result.error("文件导入失败:"+e.getMessage());
-          } finally {
-              try {
-                  file.getInputStream().close();
-              } catch (IOException e) {
-                  e.printStackTrace();
-              }
-          }
-      }
-      return Result.OK("文件导入失败!");
-    }
-
-}

+ 0 - 75
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai

@@ -1,75 +0,0 @@
-package ${bussiPackage}.${entityPackage}.entity;
-
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@ApiModel(value="${tableName}对象", description="${tableVo.ftlDescription}")
-@Data
-@TableName("${tableName}")
-public class ${entityName} implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-<#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-    </#if>
-    <#elseif po.classType=='sel_tree'>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText?split(",")[2]}", dicCode = "${po.dictText?split(",")[0]}"'>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	@TableId(type = IdType.ASSIGN_ID)
-	<#else>
-		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-    <#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-		</#if>
-      <#if list_field_dictCode?length gt 1>
-    @Dict(${list_field_dictCode?substring(2)})
-      </#if>
-	</#if>
-    <#include "/common/blob.ftl">
-	</#list>
-}

+ 0 - 17
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai

@@ -1,17 +0,0 @@
-package ${bussiPackage}.${entityPackage}.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
-
-}

+ 0 - 5
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml

@@ -1,5 +0,0 @@
-<?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="${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper">
-
-</mapper>

+ 0 - 105
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai

@@ -1,105 +0,0 @@
-package ${bussiPackage}.${entityPackage}.service.impl;
-
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.mapper.${sub.entityName}Mapper;
-</#list>
-import ${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
-import java.io.Serializable;
-import java.util.List;
-import java.util.Collection;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Service
-public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements I${entityName}Service {
-
-	@Autowired
-	private ${entityName}Mapper ${entityName?uncap_first}Mapper;
-	<#list subTables as sub>
-	@Autowired
-	private ${sub.entityName}Mapper ${sub.entityName?uncap_first}Mapper;
-	</#list>
-	
-	@Override
-	@Transactional
-	public void saveMain(${entityName} ${entityName?uncap_first}, <#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
-		${entityName?uncap_first}Mapper.insert(${entityName?uncap_first});
-		<#list subTables as sub>
-		if(${sub.entityName?uncap_first}List!=null && ${sub.entityName?uncap_first}List.size()>0) {
-			for(${sub.entityName} entity:${sub.entityName?uncap_first}List) {
-				<#list sub.foreignKeys as key>
-				//外键设置
-				<#if key?lower_case?index_of("${primaryKeyField}")!=-1>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${primaryKeyField?cap_first}());
-				<#else>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${key}());
-				</#if>
-				</#list>
-				${sub.entityName?uncap_first}Mapper.insert(entity);
-			}
-		}
-		</#list>
-	}
-
-	@Override
-	@Transactional
-	public void updateMain(${entityName} ${entityName?uncap_first},<#list subTables as sub>List<${sub.entityName}> ${sub.entityName?uncap_first}List<#if sub_has_next>,</#if></#list>) {
-		${entityName?uncap_first}Mapper.updateById(${entityName?uncap_first});
-		
-		//1.先删除子表数据
-		<#list subTables as sub>
-		${sub.entityName?uncap_first}Mapper.deleteByMainId(${entityName?uncap_first}.getId());
-		</#list>
-		
-		//2.子表数据重新插入
-		<#list subTables as sub>
-		if(${sub.entityName?uncap_first}List!=null && ${sub.entityName?uncap_first}List.size()>0) {
-			for(${sub.entityName} entity:${sub.entityName?uncap_first}List) {
-				<#list sub.foreignKeys as key>
-				//外键设置
-				<#if key?lower_case?index_of("${primaryKeyField}")!=-1>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${primaryKeyField?cap_first}());
-				<#else>
-				entity.set${key?cap_first}(${entityName?uncap_first}.get${key}());
-				</#if>
-				</#list>
-				${sub.entityName?uncap_first}Mapper.insert(entity);
-			}
-		}
-		</#list>
-	}
-
-	@Override
-	@Transactional
-	public void delMain(String id) {
-		<#list subTables as sub>
-		${sub.entityName?uncap_first}Mapper.deleteByMainId(id);
-		</#list>
-		${entityName?uncap_first}Mapper.deleteById(id);
-	}
-
-	@Override
-	@Transactional
-	public void delBatchMain(Collection<? extends Serializable> idList) {
-		for(Serializable id:idList) {
-			<#list subTables as sub>
-			${sub.entityName?uncap_first}Mapper.deleteByMainId(id.toString());
-			</#list>
-			${entityName?uncap_first}Mapper.deleteById(id);
-		}
-	}
-	
-}

+ 0 - 84
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vo/${entityName}Page.javai

@@ -1,84 +0,0 @@
-package ${bussiPackage}.${entityPackage}.vo;
-
-import java.util.List;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-<#list subTables as sub>
-import ${bussiPackage}.${entityPackage}.entity.${sub.entityName};
-</#list>
-import lombok.Data;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import org.jeecgframework.poi.excel.annotation.ExcelEntity;
-import org.jeecgframework.poi.excel.annotation.ExcelCollection;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.util.Date;
-import org.jeecg.common.aspect.annotation.Dict;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Data
-@ApiModel(value="${tableName}Page对象", description="${tableVo.ftlDescription}")
-public class ${entityName}Page {
-
-	<#assign excel_ignore_arr=['createBy','createTime','updateBy','updateTime','sysOrgCode']>
-    <#list originalColumns as po>
-    <#-- 生成字典Code -->
-    <#assign list_field_dictCode="">
-    <#if po.classType='sel_user'>
-      <#assign list_field_dictCode=', dictTable = "sys_user", dicText = "realname", dicCode = "username"'>
-    <#elseif po.classType='sel_depart'>
-      <#assign list_field_dictCode=', dictTable = "sys_depart", dicText = "depart_name", dicCode = "id"'>
-    <#elseif po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox'>
-      <#if po.dictTable?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dictTable = "${po.dictTable}", dicText = "${po.dictText}", dicCode = "${po.dictField}"'>
-      <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign list_field_dictCode=', dicCode = "${po.dictField}"'>
-      </#if>
-    </#if>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	<#else>
-		<#if po.fieldDbType =='Date'>
-			<#if po.classType=='date'>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-			<#else>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	</#if>
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-			</#if>
-		<#else>
-	<#if !excel_ignore_arr?seq_contains("${po.fieldName}")>
-	@Excel(name = "${po.filedComment}", width = 15${list_field_dictCode})
-	</#if>
-		</#if>
-        <#if list_field_dictCode?length gt 1>
-    @Dict(${list_field_dictCode?substring(2)})
-        </#if>
-	</#if>
-	@ApiModelProperty(value = "${po.filedComment}")
-    <#if po.fieldDbType=='Blob'>
-    private java.lang.String ${po.fieldName}String;
-    <#else>
-    private ${po.fieldType} ${po.fieldName};
-    </#if>
-	</#list>
-
-	<#list subTables as sub>
-	@ExcelCollection(name="${sub.ftlDescription}")
-	@ApiModelProperty(value = "${sub.ftlDescription}")
-	private List<${sub.entityName}> ${sub.entityName?uncap_first}List;
-	</#list>
-
-}

+ 0 - 351
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei

@@ -1,351 +0,0 @@
-<template>
-  <a-card :bordered="false">
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-<#assign query_field_no=0>
-<#assign query_flag=false>
-<#assign list_need_pca=false>
-<#assign list_need_dict=false>
-<#assign list_need_category=false>
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#if query_field_no==2>
-          <template v-if="toggleSearchStatus">
-	</#if>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-	<#if po.queryMode=='single'>
-          <#if query_field_no gt 1>  </#if><a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-            <#if po.classType=='sel_search'>
-              <#if query_field_no gt 1>  </#if><j-search-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dict="${po.dictTable},${po.dictText},${po.dictField}"/>
-            <#elseif po.classType=='sel_user'>
-              <#if query_field_no gt 1>  </#if><j-select-user-by-dep placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='sel_depart'>
-              <#if query_field_no gt 1>  </#if><j-select-depart placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='list_multi'>
-              <#if query_field_no gt 1>  </#if><j-multi-select-tag placeholder="请选择${po.filedComment}" dictCode="${query_field_dictCode?default("")}" v-model="queryParam.${po.fieldName}"/>
-            <#elseif po.classType=='cat_tree'>
-              <#if query_field_no gt 1>  </#if><j-category-select placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" pcode="${po.dictField?default("")}"/>
-			<#elseif po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}"></j-date>
-            <#elseif po.classType=='pca'>
-              <#if query_field_no gt 1>  </#if><j-area-linkage type="cascader" v-model="queryParam.${po.fieldName}" placeholder="请选择省市区"/>
-            <#elseif po.classType=='popup'>
-              <#if query_field_no gt 1>  </#if><j-popup placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" code="${po.dictTable}" org-fields="${po.dictField}" dest-fields="${po.dictText}" :field="getPopupField('${po.dictText}')" :multi="${po.extendParams.popupMulti?c}"/>
-			<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-			<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-			<#if po.dictTable?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictTable},${po.dictText},${po.dictField}"/>
-			<#elseif po.dictField?default("")?trim?length gt 1>
-              <#if query_field_no gt 1>  </#if><j-dict-select-tag placeholder="请选择${po.filedComment}" v-model="queryParam.${po.fieldName}" dictCode="${po.dictField}"/>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	<#else>
-          <#if query_field_no gt 1>  </#if><a-col :xl="10" :lg="11" :md="12" :sm="24">
-            <#if query_field_no gt 1>  </#if><a-form-item label="${po.filedComment}">
-			<#if po.classType=='date'>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择开始日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date placeholder="请选择结束日期" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#elseif po.classType=='datetime'>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择开始时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></j-date>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><j-date :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择结束时间" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></j-date>
-			<#else>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最小值" class="query-group-cust" v-model="queryParam.${po.fieldName}_begin"></a-input>
-              <#if query_field_no gt 1>  </#if><span class="query-group-split-cust"></span>
-              <#if query_field_no gt 1>  </#if><a-input placeholder="请输入最大值" class="query-group-cust" v-model="queryParam.${po.fieldName}_end"></a-input>
-			</#if>
-            <#if query_field_no gt 1>  </#if></a-form-item>
-          <#if query_field_no gt 1>  </#if></a-col>
-	</#if>
-<#assign query_field_no=query_field_no+1>
-</#if>
-<#if !list_need_dict && po.fieldShowType!='popup' && po.dictField?default("")?trim?length gt 1>
-<#assign list_need_dict=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-<#t>
-<#if query_field_no gt 2>
-          </template>
-</#if>
-<#if query_flag>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-          </a-col>
-</#if>
-        </a-row>
-      </a-form>
-    </div>
-    <!-- 查询区域-END -->
-    
-    <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('${tableVo.ftlDescription}')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
-      </a-upload>
-      <!-- 高级查询区域 -->
-      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </a-dropdown>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        class="j-table-force-nowrap"
-        :scroll="{x:true}"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        @change="handleTableChange">
-
-        <template slot="htmlSlot" slot-scope="text">
-          <div v-html="text"></div>
-        </template>
-        <template slot="imgSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-          <img v-else :src="getImgView(text)" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
-        </template>
-        <template slot="fileSlot" slot-scope="text">
-          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-          <a-button
-            v-else
-            :ghost="true"
-            type="primary"
-            icon="download"
-            size="small"
-            @click="uploadFile(text)">
-            下载
-          </a-button>
-        </template>
-        <#if list_need_pca>
-        <template slot="pcaSlot" slot-scope="text">
-          <div>{{ getPcaText(text) }}</div>
-        </template>
-        </#if>
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-      </a-table>
-    </div>
-
-    <${entityName?uncap_first}-modal ref="modalForm" @ok="modalFormOk"></${entityName?uncap_first}-modal>
-  </a-card>
-</template>
-
-<script>
-
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import ${entityName}Modal from './modules/${entityName}Modal'
-  <#if list_need_category>
-  import { loadCategoryData } from '@/api/api'
-  </#if>
-  <#if list_need_dict>
-  import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
-  </#if>
-  <#if list_need_pca>
-  import Area from '@/components/_util/Area'
-  </#if>
-  import '@/assets/less/TableExpand.less'
-
-  export default {
-    name: "${entityName}List",
-    mixins:[JeecgListMixin],
-    components: {
-      ${entityName}Modal
-    },
-    data () {
-      return {
-        description: '${tableVo.ftlDescription}管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key:'rowIndex',
-            width:60,
-            align:"center",
-            customRender:function (t,r,index) {
-              return parseInt(index)+1;
-            }
-          },
-    <#assign showColNum=0>
-	<#list columns as po>
-	<#if po.isShowList =='Y'>
-	<#assign showColNum=showColNum+1>
-          {
-            title:'${po.filedComment}',
-            align:"center",
-            <#if po.sort=='Y'>
-            sorter: true,
-            </#if>
-            <#if po.classType=='date'>
-            dataIndex: '${po.fieldName}',
-            customRender:function (text) {
-              return !text?"":(text.length>10?text.substr(0,10):text)
-            }
-            <#elseif po.fieldDbType=='Blob'>
-            dataIndex: '${po.fieldName}String'
-            <#elseif po.classType=='umeditor'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'htmlSlot'}
-            <#elseif po.classType=='file'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'fileSlot'}
-            <#elseif po.classType=='pca'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'pcaSlot'}
-            <#elseif po.classType=='image'>
-            dataIndex: '${po.fieldName}',
-            scopedSlots: {customRender: 'imgSlot'}
-            <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-            dataIndex: '${po.fieldName}_dictText'
-            <#elseif po.classType=='cat_tree'>
-            <#if list_need_category>
-            dataIndex: '${po.fieldName}',
-            customRender: (text) => (text ? filterMultiDictText(this.dictOptions['${po.fieldName}'], text) : '')
-            <#else>
-            dataIndex: '${po.fieldName}',
-            customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-            </#if>
-            <#elseif po.classType=='switch'>
-            dataIndex: '${po.fieldName}',
-            <#if  po.dictField != 'is_open'>
-            customRender: (text) => (!text ? "" : (text == ${po.dictField}[0] ? "是" : "否"))
-            <#else>
-            customRender: (text) => (!text ? "" : (text == "Y" ? "是" : "否"))
-            </#if>
-			<#else>
-            dataIndex: '${po.fieldName}'
-			</#if>
-          },
-     </#if>
-     </#list>
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            fixed:"right",
-            width:147,
-            scopedSlots: { customRender: 'action' },
-          }
-        ],
-        url: {
-          list: "/${entityPackage}/${entityName?uncap_first}/list",
-          delete: "/${entityPackage}/${entityName?uncap_first}/delete",
-          deleteBatch: "/${entityPackage}/${entityName?uncap_first}/deleteBatch",
-          exportXlsUrl: "/${entityPackage}/${entityName?uncap_first}/exportXls",
-          importExcelUrl: "${entityPackage}/${entityName?uncap_first}/importExcel",
-        },
-        dictOptions:{},
-        superFieldList:[],
-      }
-    },
-    created() {
-      <#if list_need_pca>
-      this.pcaData = new Area()
-      </#if>
-      this.getSuperFieldList();
-    },
-    computed: {
-      importExcelUrl: function(){
-        <#noparse>return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;</#noparse>
-      }
-    },
-    methods: {
-      <#if list_need_pca>
-      getPcaText(code){
-        return this.pcaData.getText(code);
-      },
-      </#if>
-      initDictConfig(){
-      <#list columns as po>
-      <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-        <#if po.classType=='cat_tree' && list_need_category==true>
-        loadCategoryData({code:"${po.dictField?default('')}"}).then((res) => {
-          if (res.success) {
-            this.$set(this.dictOptions, '${po.fieldName}', res.result)
-          }
-        })
-        </#if>
-      </#if>  
-      </#list>
-      },
-      getSuperFieldList(){
-        <#include "/common/utils.ftl">
-        let fieldList=[];
-         <#list columns as po>
-        fieldList.push(${superQueryFieldList(po)})
-         </#list>
-        this.superFieldList = fieldList
-      }
-
-    }
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less';
-</style>

+ 0 - 510
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Form.vuei

@@ -1,510 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-<a-spin :spinning="confirmLoading">
-<#assign form_popup = false>
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign form_span = 24>
-
-   <a-tabs v-model="activeKey" @change="handleChangeTabs">
-   <!--主表区域 -->
-    <a-tab-pane tab="${tableVo.ftlDescription}" :key="refKeys[0]" :forceRender="true" :class="'jeecg-tabs-top'" :animated="false">
-         <a-form-model ref="form" :model="model" :rules="validatorRules">
-           <a-row>
-        <#list columns as po>
-        <#if po.isShow =='Y' && po.fieldName != 'id'>
-        <#assign form_field_dictCode="">
-            <#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-                <#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-            <#elseif po.dictField?default("")?trim?length gt 1>
-                <#assign form_field_dictCode="${po.dictField}">
-            </#if>
-                  <a-col :xs="24" :sm="12">
-                    <a-form-model-item label="${po.filedComment}" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${autoStringSuffixForModel(po)}">
-            <#if po.classType =='date'>
-                      <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType =='datetime'>
-                      <j-date placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType =='time'>
-                      <j-time placeholder="请选择${po.filedComment}" v-model="model.${po.fieldName}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType =='popup'>
-                 <#assign form_popup=true>
-                      <j-popup
-                        v-model="model.${po.fieldName}"
-                        field="${po.fieldName}"
-                        org-fields="${po.dictField}"
-                        dest-fields="${Format.underlineToHump(po.dictText)}"
-                        code="${po.dictTable}"
-                        :multi="${po.extendParams.popupMulti?c}"
-                        @input="popupCallback"
-                        <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType =='sel_depart'>
-                      <j-select-depart v-model="model.${po.fieldName}" multi <#if po.readonly=='Y'>disabled</#if>/>
-           <#elseif po.classType =='switch'>
-                      <j-switch v-model="model.${po.fieldName}" <#if po.dictField!= 'is_open'>:options="${po.dictField}"</#if> <#if po.readonly=='Y'>disabled</#if>></j-switch>
-            <#elseif po.classType =='pca'>
-                      <j-area-linkage type="cascader" v-model="model.${po.fieldName}" placeholder="请输入省市区" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType =='markdown'>
-                      <j-markdown-editor v-model="model.${autoStringSuffixForModel(po)}" id="${po.fieldName}"></j-markdown-editor>
-            <#elseif po.classType =='password'>
-                      <a-input-password v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType =='sel_user'>
-                      <j-select-user-by-dep v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType =='textarea'>
-                      <a-textarea v-model="model.${autoStringSuffixForModel(po)}" rows="4" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType=='list' || po.classType=='radio'>
-                      <j-dict-select-tag type="${po.classType}" v-model="model.${po.fieldName}"  dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-                      <j-multi-select-tag type="${po.classType}" v-model="model.${po.fieldName}"  dictCode="${form_field_dictCode}" placeholder="请选择${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType=='sel_search'>
-                      <j-search-select-tag v-model="model.${po.fieldName}" dict="${form_field_dictCode}" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType=='cat_tree'>
-                <#assign form_cat_tree = true>
-                      <j-category-select v-model="model.${po.fieldName}" pcode="${po.dictField?default("")}" placeholder="请选择${po.filedComment}" <#if po.dictText?default("")?trim?length gt 1>back="${dashedToCamel(po.dictText)}" @change="handleCategoryChange"</#if> <#if po.readonly=='Y'>disabled</#if>/>
-                <#if po.dictText?default("")?trim?length gt 1>
-                <#assign form_cat_back = "${po.dictText}">
-                </#if>
-            <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-                      <a-input-number v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}" style="width: 100%" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType=='file'>
-                      <j-upload v-model="model.${po.fieldName}"  <#if po.readonly=='Y'>disabled</#if> <#if po.uploadnum??>:number=${po.uploadnum}</#if>></j-upload>
-            <#elseif po.classType=='image'>
-                      <j-image-upload isMultiple <#if po.uploadnum??>:number=${po.uploadnum}</#if> v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>></j-image-upload>
-            <#elseif po.classType=='umeditor'>
-                      <j-editor v-model="model.${po.fieldName}" <#if po.readonly=='Y'>disabled</#if>/>
-            <#elseif po.classType == 'sel_tree'>
-                      <j-tree-select
-                      ref="treeSelect"
-                      placeholder="请选择${po.filedComment}"
-                      v-model="model.${po.fieldName}"
-                      <#if po.dictText??>
-                      <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-                      dict="${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}"
-                      <#elseif po.dictText?split(',')[1]??>
-                      pidField="${po.dictText?split(',')[1]}"
-                      <#elseif po.dictText?split(',')[3]??>
-                      hasChildField="${po.dictText?split(',')[3]}"
-                      </#if>
-                      </#if>
-                      pidValue="${po.dictField}"
-                      <#if po.readonly=='Y'>disabled</#if>>
-                    </j-tree-select>
-            <#else>
-                      <a-input v-model="model.${autoStringSuffixForModel(po)}" placeholder="请输入${po.filedComment}" <#if po.readonly=='Y'>disabled</#if>></a-input>
-            </#if>
-                    </a-form-model-item>
-                  </a-col>
-        </#if>
-        </#list>
-
-                </a-row>
-              </a-form-model>
-
-     </a-tab-pane>
-   <!--子表单区域 -->
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='1'>
-     <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index+1}]" :forceRender="true">
-       <${Format.humpToShortbar(sub.entityName)}-form ref="${sub.entityName?uncap_first}Form" @validateError="validateError"></${Format.humpToShortbar(sub.entityName)}-form>
-     </a-tab-pane>
-
-<#else>
-     <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index+1}]" :forceRender="true">
-       <j-editable-table
-         :ref="refKeys[${sub_index+1}]"
-         :loading="${sub.entityName?uncap_first}Table.loading"
-         :columns="${sub.entityName?uncap_first}Table.columns"
-         :dataSource="${sub.entityName?uncap_first}Table.dataSource"
-         :maxHeight="300"
-         :rowNumber="true"
-         :rowSelection="true"
-         :actionButton="true"/>
-     </a-tab-pane>
-
-</#if>
-</#list>
-   </a-tabs>
-
- </a-spin>
-</j-modal>
-</template>
-
-<script>
-
-import { FormTypes,getRefPromise } from '@/utils/JEditableTableUtil'
-import { JEditableTableModelMixin } from '@/mixins/JEditableTableModelMixin'
-import { validateDuplicateValue } from '@/utils/util'
-import { VALIDATE_NO_PASSED, validateFormModelAndTables } from '@/utils/JEditableTableUtil'
-<#list subTables as sub>
-<#if sub.foreignRelationType =='1'>
-import ${sub.entityName}Form from './${sub.entityName}Form.vue'
-</#if>
-</#list>
-
-export default {
- name: '${entityName}Forml',
- mixins: [JEditableTableModelMixin],
- components: {
- <#list subTables as sub>
- <#if sub.foreignRelationType =='1'>
- ${sub.entityName}Form,
- </#if>
- </#list>
- },
- data() {
-   return {
-     labelCol: {
-       xs: { span: 24 },
-       sm: { span: 5 },
-     },
-     wrapperCol: {
-       xs: { span: 24 },
-       sm: { span: 16 },
-     },
-     // 新增时子表默认添加几行空数据
-     addDefaultRowNum: 1,
-     model:{
-       <#include "/common/init/initValue.ftl">
-     },
-     <#include "/common/validatorRulesTemplate/main.ftl">
-     refKeys: ['${tableVo.entityName?uncap_first}',<#list subTables as sub>'${sub.entityName?uncap_first}', </#list>],
-     <#assign hasOne2Many = false>
-     tableKeys:[<#list subTables as sub><#if sub.foreignRelationType =='0'>'${sub.entityName?uncap_first}', <#assign hasOne2Many = true></#if></#list>],
-     activeKey: '${tableVo.entityName?uncap_first}',
-<#list subTables as sub><#rt/>
-     // ${sub.ftlDescription}
-     ${sub.entityName?uncap_first}Table: {
-       loading: false,
-       dataSource: [],
-       columns: [
-<#if sub.foreignRelationType =='0'>
-<#assign popupBackFields = "">
-
-<#-- 循环子表的列 开始 -->
-<#list sub.colums as col><#rt/>
-<#if col.isShow =='Y'>
- <#if col.filedComment !='外键' >
-         {
-           title: '${col.filedComment}',
-           key: '${autoStringSuffixForModel(col)}',
-   <#if col.classType =='date'>
-           type: FormTypes.date,
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   <#elseif col.classType =='datetime'>
-           type: FormTypes.datetime,
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   <#elseif "int,decimal,double,"?contains(col.classType)>
-           type: FormTypes.inputNumber,
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   <#elseif col.classType =='list' || col.classType =='radio'>
-           type: FormTypes.select,
-           <#if col.dictTable?default("")?trim?length gt 1>
-           dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-           <#else>
-           dictCode:"${col.dictField}",
-           </#if>
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   <#elseif col.classType =='list_multi' || col.classType =='checkbox'>
-           type: FormTypes.list_multi,
-           <#if col.dictTable?default("")?trim?length gt 1>
-           dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-           <#else>
-           dictCode:"${col.dictField}",
-           </#if>
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   <#elseif col.classType =='sel_search'>
-           type: FormTypes.sel_search,
-           <#if col.dictTable?default("")?trim?length gt 1>
-           dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-           <#else>
-           dictCode:"${col.dictField}",
-           </#if>
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   <#elseif col.classType =='sel_depart'>
-           type: FormTypes.sel_depart,
-          <#if col.extendParams.multiSelect?default(true) == false>
-          multi: false,
-          </#if>
-          <#if col.extendParams.store?default("")?trim?length gt 1>
-          store: "${col.extendParams.store}",
-          </#if>
-          <#if col.extendParams.text?default("")?trim?length gt 1>
-          text: "${col.extendParams.text}",
-          </#if>
-          <#if col.readonly=='Y'>
-          disabled:true,
-          </#if>
-   <#elseif col.classType =='sel_user'>
-          type: FormTypes.sel_user,
-          <#if col.extendParams.multiSelect?default(true) == false>
-          multi: false,
-          </#if>
-          <#if col.extendParams.store?default("")?trim?length gt 1>
-          store: "${col.extendParams.store}",
-          </#if>
-          <#if col.extendParams.text?default("")?trim?length gt 1>
-          text: "${col.extendParams.text}",
-          </#if>
-          <#if col.readonly=='Y'>
-          disabled: true,
-          </#if>
-   <#elseif col.classType =='switch'>
-           type: FormTypes.checkbox,
-           <#if col.dictField == 'is_open'>
-           customValue: ['Y', 'N'],
-           <#else>
-           customValue: ${col.dictField},
-           </#if>
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   <#elseif col.classType =='image'>
-           type: FormTypes.image,
-           token:true,
-           responseName:"message",
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-           <#if col.uploadnum??>
-           number: ${col.uploadnum},
-           </#if>
-   <#elseif col.classType =='file'>
-           type: FormTypes.file,
-           token:true,
-           responseName:"message",
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-           <#if col.uploadnum??>
-           number: ${col.uploadnum},
-           </#if>
-   <#elseif col.classType =='popup'>
-     <#if popupBackFields?length gt 0>
-         <#assign popupBackFields = "${popupBackFields}"+","+"${col.dictText}">
-     <#else>
-         <#assign popupBackFields = "${col.dictText}">
-     </#if>
-           type: FormTypes.popup,
-           popupCode:"${col.dictTable}",
-           destFields:"${Format.underlineToHump(col.dictText)}",
-           orgFields:"${col.dictField}",
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   <#elseif col.fieldDbType=='int' || col.fieldDbType=='double' || col.fieldDbType=='BigDecimal'>
-           type: FormTypes.inputNumber,
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   <#else>
-           type: FormTypes.input,
-           <#if col.readonly=='Y'>
-           disabled:true,
-           </#if>
-   </#if>
-   <#if col.classType =='list_multi' || col.classType =='checkbox'>
-           width:"250px",
-   <#else>
-           width:"200px",
-   </#if>
-   <#if col.classType =='file'>
-           placeholder: '请选择文件',
-   <#else>
-           placeholder: '请输入${'$'}{title}',
-   </#if>
-   <#if col.defaultVal??>
-     <#if col.fieldDbType=="BigDecimal" || col.fieldDbType=="double" || col.fieldDbType=="int">
-           defaultValue:${col.defaultVal},
-           <#else>
-           defaultValue:"${col.defaultVal}",
-     </#if>
-   <#else>
-           defaultValue:'',
-   </#if>
-   <#-- 子表的校验 -->
-   <#assign subFieldValidType = col.fieldValidType!''>
-   <#-- 非空校验 -->
-   <#if col.nullable == 'N' || subFieldValidType == '*'>
-           validateRules: [{ required: true, message: '${'$'}{title}不能为空' }],
-   <#-- 其他情况下,只要有值就被认为是正则校验 -->
-   <#elseif subFieldValidType?length gt 0>
-     <#assign subMessage = '格式不正确'>
-     <#if subFieldValidType == 'only' >
-       <#assign subMessage = '不能重复'>
-     </#if>
-           validateRules: [{ pattern: "${subFieldValidType}", message: "${'$'}{title}${subMessage}" }],
-   </#if>
-         },
- </#if>
-</#if>
-</#list>
-<#-- 循环子表的列 结束 -->
-
-<#-- 处理popup的隐藏列 -->
-<#if popupBackFields?length gt 0>
-<#list popupBackFields?split(",") as item>
-<#if item?length gt 0>
-<#assign tempItemFlag = true>
-
-<#list sub.colums as col>
-<#if col.isShow =='Y' && col.fieldName == item>
-<#assign tempItemFlag = false>
-</#if>
-</#list>
-<#if tempItemFlag>
-         {
-           title: '${item}',
-           key: '${item}',
-           type:"hidden"
-         },
-</#if>
-</#if>
-</#list>
-</#if>
-</#if>
-       ]
-     },
-</#list>
-     url: {
-       add: "/${entityPackage}/${entityName?uncap_first}/add",
-       edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-        ${tableVo.entityName?uncap_first}: {
-         list: '/${entityPackage}/${entityName?uncap_first}/queryById'
-        },
-<#list subTables as sub><#rt/>
-       ${sub.entityName?uncap_first}: {
-         list: '/${entityPackage}/${entityName?uncap_first}/query${sub.entityName}ByMainId'
-       },
-</#list>
-     }
-   }
- },
- methods: {
-   getAllTable() {
-     <#if hasOne2Many==true>
-     let values = this.tableKeys.map(key => getRefPromise(this, key))
-     return Promise.all(values)
-     <#else>
-     return new Promise(resolve => {
-       resolve([]);
-     })
-     </#if>
-   },
-   /** 调用完edit()方法之后会自动调用此方法 */
-   editAfter() {
-     this.$nextTick(() => {
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='1'>
-       this.$refs.${sub.entityName?uncap_first}Form.initFormData(this.url.${sub.entityName?uncap_first}.list,this.model.id)
-</#if>
-</#list>
-     })
-     // 加载子表数据
-     if (this.model.id) {
-       let params = { id: this.model.id }
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='0'>
-       this.requestSubTableData(this.url.${sub.entityName?uncap_first}.list, params, this.${sub.entityName?uncap_first}Table)
-</#if>
-</#list>
-     }
-   },
-   //校验所有一对一子表表单
-   validateSubForm(allValues){
-     return new Promise((resolve,reject)=>{
-       Promise.all([
-   <#list subTables as sub><#rt/>
-     <#if sub.foreignRelationType =='1'>
-           this.$refs.${sub.entityName?uncap_first}Form.validate(${sub_index}),
-     </#if>
-   </#list>
-       ]).then(() => {
-         resolve(allValues)
-       }).catch(e => {
-         reject(e)
-       })
-     })
-   },
-   /** 整理成formData */
-   classifyIntoFormData(allValues) {
-     let main = Object.assign(this.model, allValues.formValue)
-     return {
-       ...main, // 展开
-<#assign subManyIndex = 0>
-<#list subTables as sub><#rt/>
-<#if sub.foreignRelationType =='0'>
-       ${sub.entityName?uncap_first}List: allValues.tablesValue[${subManyIndex}].values,
-       <#assign subManyIndex = subManyIndex+1>
-<#else>
-       ${sub.entityName?uncap_first}List: this.$refs.${sub.entityName?uncap_first}Form.getFormData(),
-</#if>
-</#list>
-     }
-   },
-    /** 确定按钮点击事件 */
-     handleOk() {
-       /** 触发表单验证 */
-       this.getAllTable().then(tables => {
-          return validateFormModelAndTables(this.$refs.form,this.model, tables)
-       }).then(allValues => {
-         /** 一次性验证一对一的所有子表 */
-         return this.validateSubForm(allValues)
-       }).then(allValues => {
-         if (typeof this.classifyIntoFormData !== 'function') {
-           throw this.throwNotFunction('classifyIntoFormData')
-         }
-         console.log("this.classifyIntoFormData",typeof this.classifyIntoFormData)
-         let formData = this.classifyIntoFormData(allValues)
-
-         // 发起请求
-         return this.request(formData)
-       }).catch(e => {
-         if (e.error === VALIDATE_NO_PASSED) {
-           // 如果有未通过表单验证的子表,就自动跳转到它所在的tab
-           this.activeKey = e.index == null ? this.refKeys[0] : this.refKeys[e.index+1]
-         } else {
-           console.error(e)
-         }
-       })
-     },
-   validateError(msg){
-     this.$message.error(msg)
-   },
- close() {
-   this.visible = false
-   this.$emit('close')
-   this.$refs.form.clearValidate();
- },
-  <#if form_popup>
-  popupCallback(value,row){
-    this.model = Object.assign(this.model, row);
-  },
-  </#if>
-<#if form_cat_tree>
-  handleCategoryChange(value,backObj){
-    this.model = Object.assign(this.model, backObj);
-   }
-</#if>
-
- }
-}
-</script>
-
-<style scoped>
-    /** tab panel 中有下拉框/日期 这类带下拉效果的,需要加此样式 */
-    /deep/ .jeecg-tabs-top {
-        overflow: visible;
-    }
-</style>

+ 0 - 62
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei

@@ -1,62 +0,0 @@
-<#include "/common/utils.ftl">
-<template>
-  <j-modal
-    :width="1200"
-    :visible="visible"
-    :maskClosable="false"
-    switchFullscreen
-    @ok="handleOk"
-    @cancel="handleCancel">
-     <${Format.humpToShortbar(entityName)}-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"/>
- </j-modal>
-</template>
-
-<script>
-
-  import ${entityName}Form from './${entityName}Form'
-
-  export default {
-    name: '${entityName}Modal',
-    components: {
-      ${entityName}Form
-    },
-    data() {
-      return {
-        title:'',
-        visible: false,
-        disableSubmit: false
-      }
-    },
-    methods:{
-      add () {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.add();
-        })
-      },
-      edit (record) {
-        this.visible=true
-        this.$nextTick(()=>{
-          this.$refs.realForm.edit(record);
-        })
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-      },
-      handleOk () {
-        this.$refs.realForm.handleOk();
-      },
-      submitCallback(){
-        this.$emit('ok');
-        this.visible = false;
-      },
-      handleCancel () {
-        this.close()
-      }
-    }
-  }
-</script>
-
-<style scoped>
-</style>

+ 0 - 218
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei

@@ -1,218 +0,0 @@
-<template>
-  <div>
-<#assign list_need_category=false>
-<#assign list_need_pca=false>
-<#assign bpm_flag=false>
-
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.classType=='cat_tree' && po.dictText?default("")?trim?length == 0>
-<#assign list_need_category=true>
-</#if>
-<#if po.classType=='pca'>
-<#assign list_need_pca=true>
-</#if>
-</#list>
-<#-- 结束循环 -->
-    <!--引用表格-->
-   <BasicTable @register="registerTable" :rowSelection="rowSelection">
-     <!--插槽:table标题-->
-      <template #tableTitle>
-          <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
-          <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-          <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-          <a-dropdown v-if="checkedKeys.length > 0">
-              <template #overlay>
-                <a-menu>
-                  <a-menu-item key="1" @click="batchHandleDelete">
-                    <Icon icon="ant-design:delete-outlined"></Icon>
-                    删除
-                  </a-menu-item>
-                </a-menu>
-              </template>
-              <a-button>批量操作
-                <Icon icon="mdi:chevron-down"></Icon>
-              </a-button>
-        </a-dropdown>
-      </template>
-       <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
-      </template>
-      <!--字段回显插槽-->
-      <template #htmlSlot="{text}">
-         <div v-html="text"></div>
-      </template>
-      <template #fileSlot="{text}">
-         <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-         <a-button v-else :ghost="true" type="primary" preIcon="ant-design:download-outlined" size="small" @click="downloadFile(text)">下载</a-button>
-      </template>
-    </BasicTable>
-    <!-- 表单区域 -->
-    <${entityName}Modal @register="registerModal" @success="handleSuccess"></${entityName}Modal>
-  </div>
-</template>
-
-<script lang="ts" name="${entityPackage}-${entityName?uncap_first}" setup>
-  import {ref, computed, unref} from 'vue';
-  import {BasicTable, useTable, TableAction} from '/@/components/Table';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import {useModal} from '/@/components/Modal';
-  import ${entityName}Modal from './components/${entityName}Modal.vue'
-  import {columns, searchFormSchema} from './${entityName?uncap_first}.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './${entityName?uncap_first}.api';
-  <#if list_need_category>
-  import { loadCategoryData } from '/@/api/common/api'
-  import { getAuthCache, setAuthCache } from '/@/utils/auth';
-  import { DB_DICT_DATA_KEY } from '/@/enums/cacheEnum';
-  </#if>
-  const checkedKeys = ref<Array<string | number>>([]);
-  //注册model
-  const [registerModal, {openModal}] = useModal();
-   //注册table数据
-  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
-      tableProps:{
-           title: '${tableVo.ftlDescription}',
-           api: list,
-           columns,
-           canResize:false,
-           formConfig: {
-                labelWidth: 120,
-                schemas: searchFormSchema,
-                autoSubmitOnEnter:true,
-                showAdvancedButton:true,
-                fieldMapToTime: [
-                <#list columns as po>
-                <#if po.isQuery=='Y'>
-                <#if po.queryMode!='single'>
-                <#if po.classType=='date'>
-                   ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD'],
-                <#elseif po.classType=='datetime'>
-                   ['${po.fieldName}', ['${po.fieldName}_begin', '${po.fieldName}_end'], 'YYYY-MM-DD HH:mm:ss'],
-                </#if>
-                </#if>
-                </#if>
-                </#list>
-                ],
-            },
-            actionColumn: {
-               width: 120,
-            },
-        },
-        exportConfig: {
-            name:"${tableVo.ftlDescription}",
-            url: getExportUrl,
-        },
-        importConfig: {
-            url: getImportUrl
-        },
-    })
-
-  const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-
-   /**
-    * 新增事件
-    */
-  function handleAdd() {
-     openModal(true, {
-       isUpdate: false,
-       showFooter: true,
-     });
-  }
-   /**
-    * 编辑事件
-    */
-  function handleEdit(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: true,
-     });
-   }
-   /**
-    * 详情
-   */
-  function handleDetail(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: false,
-     });
-   }
-   /**
-    * 删除事件
-    */
-  async function handleDelete(record) {
-     await deleteOne({id: record.id}, reload);
-   }
-   /**
-    * 批量删除事件
-    */
-  async function batchHandleDelete() {
-     await batchDelete({ids: checkedKeys.value}, reload);
-   }
-   /**
-    * 成功回调
-    */
-  function handleSuccess() {
-      reload();
-   }
-   /**
-      * 操作栏
-      */
-  function getTableAction(record){
-       return [
-         {
-           label: '编辑',
-           onClick: handleEdit.bind(null, record),
-         }
-       ]
-   }
-     /**
-        * 下拉操作栏
-        */
-  function getDropDownAction(record){
-      return [
-           {
-             label: '详情',
-             onClick: handleDetail.bind(null, record),
-           }, {
-             label: '删除',
-             popConfirm: {
-               title: '是否确认删除',
-               confirm: handleDelete.bind(null, record),
-             }
-           }
-      ]
-   }
-    <#if list_need_category>
-   /**
-    * 初始化字典配置
-   */
-    function initDictConfig(){
-     <#list columns as po>
-     <#if (po.isQuery=='Y' || po.isShowList=='Y') && po.classType!='popup'>
-       <#if po.classType=='cat_tree' && list_need_category==true>
-       loadCategoryData({code:'${po.dictField?default("")}'}).then((res) => {
-         if (res) {
-             let allDictDate = getAuthCache(DB_DICT_DATA_KEY);
-             if(!allDictDate['${po.dictField?default("")}']){
-               Object.assign(allDictDate,{'${po.dictField?default("")}':res})
-             }
-             setAuthCache(DB_DICT_DATA_KEY,allDictDate)
-         }
-       })
-       </#if>
-     </#if>
-     </#list>
-   }
-   initDictConfig();
-    </#if>
-</script>
-
-<style scoped>
-
-</style>

+ 0 - 72
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi

@@ -1,72 +0,0 @@
-import {defHttp} from '/@/utils/http/axios';
-import {Modal} from 'ant-design-vue';
-
-enum Api {
-  list = '/${entityPackage}/${entityName?uncap_first}/list',
-  save='/${entityPackage}/${entityName?uncap_first}/add',
-  edit='/${entityPackage}/${entityName?uncap_first}/edit',
-  deleteOne = '/${entityPackage}/${entityName?uncap_first}/delete',
-  deleteBatch = '/${entityPackage}/${entityName?uncap_first}/deleteBatch',
-  importExcel = '/${entityPackage}/${entityName?uncap_first}/importExcel',
-  exportXls = '/${entityPackage}/${entityName?uncap_first}/exportXls',
-<#list subTables as sub><#rt/>
-  ${sub.entityName?uncap_first}List = '/${entityPackage}/${entityName?uncap_first}/query${sub.entityName}ByMainId',
-</#list>
-}
-/**
- * 导出api
- * @param params
- */
-export const getExportUrl = Api.exportXls;
-
-/**
- * 导入api
- */
-export const getImportUrl = Api.importExcel;
-<#list subTables as sub><#rt/>
-/**
- * 查询子表数据
- * @param params
- */
-export const ${sub.entityName?uncap_first}List = Api.${sub.entityName?uncap_first}List;
-</#list>
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-
-/**
- * 删除单个
- */
-export const deleteOne = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- */
-export const batchDelete = (params, handleSuccess) => {
-  Modal.confirm({
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- */
-export const saveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
-}

+ 0 - 700
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi

@@ -1,700 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-import {JVxeTypes,JVxeColumn} from '/@/components/jeecg/JVxeTable/types'
-//列表数据
-export const columns: BasicColumn[] = [
- <#list columns as po>
-   <#if po.isShowList =='Y' && po.fieldName !='id'>
-   {
-    title: '${po.filedComment}',
-    align:"center",
-    <#if po.sort=='Y'>
-    sorter: true,
-   </#if>
-    <#if po.classType=='date'>
-    dataIndex: '${po.fieldName}',
-    customRender:({text}) =>{
-      return !text?"":(text.length>10?text.substr(0,10):text)
-    },
-    <#elseif po.fieldDbType=='Blob'>
-    dataIndex: '${po.fieldName}String'
-    <#elseif po.classType=='umeditor'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'htmlSlot' },
-    <#elseif po.classType=='pca'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'pcaSlot' },//TODO 未翻译
-   <#elseif po.classType=='file'>
-    dataIndex: '${po.fieldName}',
-    slots: { customRender: 'fileSlot' },
-   <#elseif po.classType=='image'>
-    dataIndex: '${po.fieldName}',
-    customRender:render.renderAvatar,
-   <#elseif po.classType=='switch'>
-    dataIndex: '${po.fieldName}',
-<#assign switch_extend_arr=['Y','N']>
-<#if po.dictField?default("")?contains("[")>
-<#assign switch_extend_arr=po.dictField?eval>
-</#if>
-<#list switch_extend_arr as a>
-<#if a_index == 0>
-<#assign switch_extend_arr1=a>
-<#else>
-<#assign switch_extend_arr2=a>
-</#if>
-</#list>
-    customRender:({text}) => {
-       return  render.renderSwitch(text, [{text:'是',value:'${switch_extend_arr1}'},{text:'否',value:'${switch_extend_arr2}'}])
-     },
-   <#elseif po.classType == 'sel_tree' || po.classType=='list' || po.classType=='list_multi' || po.classType=='sel_search' || po.classType=='radio' || po.classType=='checkbox' || po.classType=='sel_depart' || po.classType=='sel_user'>
-    dataIndex: '${po.fieldName}_dictText'
-   <#elseif po.classType=='cat_tree'>
-    dataIndex: '${po.fieldName}',
-    <#if po.dictText?default("")?trim?length == 0>
-    customRender:({text}) => {
-       return  render.renderCategoryTree(text,'${po.dictField?default("")}')
-   },
-   <#else>
-    customRender: (text, record) => (text ? record['${po.dictText}'] : '')
-   </#if>
-   <#else>
-    dataIndex: '${po.fieldName}'
-   </#if>
-   },
-   </#if>
- </#list>
-];
-//查询数据
-export const searchFormSchema: FormSchema[] = [
-<#-- 开始循环 -->
-<#list columns as po>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isQuery=='Y'>
-<#assign query_flag=true>
-	<#assign query_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1>
-	    <#assign query_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-    <#elseif po.dictField?default("")?trim?length gt 1>
-        <#assign query_field_dictCode="${po.dictField}">
-    </#if>
-<#if po.queryMode=='single'>
-	{
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='sel_search'>
-      component: 'JSearchSelect',
-      componentProps:{
-         dict:"${po.dictTable},${po.dictText},${po.dictField}"
-      },
-<#elseif po.classType=='sel_user'>
-      component: 'JSelectUserByDept',
-<#elseif po.classType=='switch'>
-      component: 'JSwitch',
-      componentProps:{
-           <#if po.dictField != 'is_open'>
-           options:"${po.dictField}"
-           </#if>
-       },
- <#elseif po.classType=='sel_depart'>
-      component: 'JSelectDept',
- <#elseif po.classType=='list_multi'>
-      component: 'JMultiSelectTag',//暂无该组件
-      componentProps:{
-          dictCode:"query_field_dictCode?default("")"
-      },
- <#elseif po.classType=='cat_tree'>
-      component: 'JCategorySelect',
-      componentProps:{
-          pcode:"${po.dictField?default("")}",//back和事件未添加,暂时有问题
-      },
-<#elseif po.classType=='date'>
-      component: 'DatePicker',
-<#elseif po.classType=='datetime'>
-      component: 'DatePicker',
-      componentProps: {
-         showTime:true
-       },
-<#elseif po.classType=='pca'>
-      component: 'JAreaLinkage',
-<#elseif po.classType=='popup'>
-      component: 'JPopup',
-      componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:"${po.dictField}",
-             multi:${po.extendParams.popupMulti?c},
-         }
-     },
-<#elseif po.classType=='list' || po.classType=='radio' || po.classType=='checkbox'>
-<#--  ---------------------------下拉或是单选 判断数据字典是表字典还是普通字典------------------------------- -->
-      component: 'JDictSelectTag',
-      componentProps:{
-       <#if po.dictTable?default("")?trim?length gt 1>
-          dictCode:"${po.dictTable},${po.dictText},${po.dictField}"
-       <#elseif po.dictField?default("")?trim?length gt 1>
-          dictCode:"${po.dictField}"
-        </#if>
-      },
-<#else>
-      component: 'Input',
-</#if>
-      colProps: {span: 6},
- 	},
-<#else>
-     {
-      label: "${po.filedComment}",
-      field: "${po.fieldName}",
-<#if po.classType=='date'>
-      component: 'RangePicker',
-<#elseif po.classType=='datetime'>
-      component: 'RangePicker',
-      componentProps: {
-          showTime:true
-      },
-<#else>
-      component: 'Input', //TODO 范围查询
-</#if>
-      colProps: {span: 6},
-	},
-</#if>
-</#if>
-</#list>
-<#-- 结束循环 -->
-];
-//表单数据
-export const formSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list columns as po><#rt/>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];
-//子表单数据
-<#list subTables as sub>
-<#if sub.foreignRelationType =='1'>
-export const ${sub.entityName?uncap_first}FormSchema: FormSchema[] = [
-<#assign form_cat_tree = false>
-<#assign form_cat_back = "">
-<#assign bpm_flag=false>
-<#list sub.colums as po><#rt/>
-<#if po.fieldDbName=='bpm_status'>
-  <#assign bpm_flag=true>
-</#if>
-<#if po.isShow =='Y'>
-<#assign form_field_dictCode="">
-	<#if po.dictTable?default("")?trim?length gt 1 && po.dictText?default("")?trim?length gt 1 && po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictTable},${po.dictText},${po.dictField}">
-	<#elseif po.dictField?default("")?trim?length gt 1>
-		<#assign form_field_dictCode="${po.dictField}">
-	</#if>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-    <#if po.classType =='date'>
-    component: 'DatePicker',
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-       showTime:true
-     },
-     <#elseif po.fieldType =='time'>
-    component: 'TimePicker',
-    <#elseif po.classType =='popup'>
-    component: 'JPopup',
-    componentProps: ({ formActionType }) => {
-         const {setFieldsValue} = formActionType;
-         return{
-             setFieldsValue:setFieldsValue,
-             code:"${po.dictTable}",
-             fieldConfig:${po.dictField},
-             multi:${po.extendParams.popupMulti?c},
-         }
-     }
-     <#elseif po.classType =='sel_depart'>
-     component: 'JSelectDept',
-     <#elseif po.classType =='switch'>
-     component: 'JSwitch',
-     componentProps:{
-         <#if po.dictField != 'is_open'>
-         options:${po.dictField}
-         </#if>
-     }
-     <#elseif po.classType =='pca'>
-    component: 'JAreaLinkage',
-    <#elseif po.classType =='markdown'>
-    component: 'JMarkdownEditor',//注意string转换问题
-     <#elseif po.classType =='password'>
-    component: 'InputPassword',
-     <#elseif po.classType =='sel_user'>
-    component: 'JSelectUserByDept',
-    componentProps:{
-        labelKey:'realname',
-     }
-    <#elseif po.classType =='textarea'>
-    component: 'InputTextArea',//TODO 注意string转换问题
-    <#elseif po.classType=='list' || po.classType=='radio'>
-    component: 'JDictSelectTag',
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='list_multi' || po.classType=='checkbox'>
-    component: 'JMultiSelectTag',//TODO  暂无该组件
-    componentProps:{
-        dictCode:"${form_field_dictCode}"
-     }
-    <#elseif po.classType=='sel_search'>
-    component: 'JSearchSelect',
-    componentProps:{
-       dict:"${form_field_dictCode}"
-    }
-<#elseif po.classType=='cat_tree'>
-    <#assign form_cat_tree = true>
-    component: 'JCategorySelect',
-    componentProps:{
-       pcode:"${po.dictField?default("")}", //TODO back和事件未添加,暂时有问题
-    }
-    <#if po.dictText?default("")?trim?length gt 1>
-    <#assign form_cat_back = "${po.dictText}">
-    </#if>
-    <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'>
-    component: 'InputNumber',
-    <#elseif po.classType=='file'>
-    component: 'JUpload',
-    componentProps:{
-    <#if po.uploadnum??>
-       maxCount:${po.uploadnum}
-   </#if>
-     }
- <#elseif po.classType=='image'>
-     component: 'JImageUpload',
-     componentProps:{
-     <#if po.uploadnum??>
-        fileMax:${po.uploadnum}
-    </#if>
-      }
-  <#elseif po.classType=='umeditor'>
-    component: 'JCodeEditor', //TODO String后缀暂未添加
-  <#elseif po.classType == 'sel_tree'>
-    component: 'JTreeSelect',
-    componentProps:{
-        <#if po.dictText??>
-        <#if po.dictText?split(',')[2]?? && po.dictText?split(',')[0]??>
-        dict:"${po.dictTable},${po.dictText?split(',')[2]},${po.dictText?split(',')[0]}",
-        <#elseif po.dictText?split(',')[1]??>
-        pidField:"${po.dictText?split(',')[1]}",
-        <#elseif po.dictText?split(',')[3]??>
-        hasChildField:"${po.dictText?split(',')[3]}",
-        </#if>
-        </#if>
-        pidValue:"${po.dictField}",
-    }
-   <#else>
-    component: 'Input',
-    </#if>
-     <#include "/common/utils.ftl">
-    <#if po.isShow == 'Y' && poHasCheck(po)>
-    dynamicRules: ({model,schema}) => {
-    <#if po.fieldName != 'id'>
-    <#assign fieldValidType = po.fieldValidType!''>
-          return [
-            <#-- 非空校验 -->
-           <#if po.nullable == 'N' || fieldValidType == '*'>
-                 { required: true, message: '请输入${po.filedComment}!'},
-           <#elseif fieldValidType!=''>
-                 { required: false},
-           </#if>
-       <#-- 唯一校验 -->
-           <#if fieldValidType == 'only'>
-                 {...rules.duplicateCheckRule(<#if sub?default("")?trim?length gt 1>'${sub.tableName}'<#else>'${tableName}'</#if>, '${po.fieldDbName}',model,schema,true)[0]},
-           <#-- 6到16位数字 -->
-           <#elseif fieldValidType == 'n6-16'>
-                 { pattern: /^\d{6,16}$/, message: '请输入6到16位数字!'},
-           <#-- 6到16位任意字符 -->
-           <#elseif fieldValidType == '*6-16'>
-                 { pattern: /^.{6,16}$/, message: '请输入6到16位任意字符!'},
-           <#-- 6到18位字符串 -->
-           <#elseif fieldValidType == 's6-18'>
-                 { pattern: /^.{6,18}$/, message: '请输入6到18位任意字符!'},
-           <#-- 网址 -->
-           <#elseif fieldValidType == 'url'>
-                 { pattern: /^((ht|f)tps?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/, message: '请输入正确的网址!'},
-           <#-- 电子邮件 -->
-           <#elseif fieldValidType == 'e'>
-                 { pattern: /^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'},
-           <#-- 手机号码 -->
-           <#elseif fieldValidType == 'm'>
-                 { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'},
-           <#-- 邮政编码 -->
-           <#elseif fieldValidType == 'p'>
-                 { pattern: /^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'},
-           <#-- 字母 -->
-           <#elseif fieldValidType == 's'>
-                 { pattern: /^[A-Z|a-z]+$/, message: '请输入字母!'},
-           <#-- 数字 -->
-           <#elseif fieldValidType == 'n'>
-                 { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},
-           <#-- 整数 -->
-           <#elseif fieldValidType == 'z'>
-                 { pattern: /^-?\d+$/, message: '请输入整数!'},
-           <#-- 金额 -->
-           <#elseif fieldValidType == 'money'>
-                 { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'},
-           <#-- 正则校验 -->
-           <#elseif fieldValidType != '' && fieldValidType != '*'>
-                 { pattern: '${fieldValidType}', message: '不符合校验规则!'},
-           <#-- 无校验 -->
-           <#else>
-               <#t>
-           </#if>
-          ];
-     </#if>
-     },
-    </#if>
-    <#if po.readonly=='Y'>
-    dynamicDisabled:true
-    </#if>
-  },
-</#if>
-</#list>
-];
-</#if>
-</#list>
-//子表表格配置
-<#list subTables as sub>
-<#if sub.foreignRelationType =='0'>
-export const ${sub.entityName?uncap_first}Columns: JVxeColumn[] = [
-<#assign popupBackFields = "">
-
-<#-- 循环子表的列 开始 -->
-<#list sub.colums as col><#rt/>
-<#if col.isShow =='Y'>
-<#if col.filedComment !='外键' >
-    {
-      title: '${col.filedComment}',
-      key: '${autoStringSuffixForModel(col)}',
-<#if col.classType =='date'>
-      type: JVxeTypes.date,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='datetime'>
-      type: JVxeTypes.datetime,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='textarea'>
-      type: JVxeTypes.textarea,
-       <#if col.readonly=='Y'>
-      disabled:true,
-       </#if>
-<#elseif "int,decimal,double,"?contains(col.classType)>
-      type: JVxeTypes.inputNumber,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='list' || col.classType =='radio'>
-      type: JVxeTypes.select,
-      options:[],
-      <#if col.dictTable?default("")?trim?length gt 1>
-      dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-      <#else>
-      dictCode:"${col.dictField}",
-      </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='list_multi' || col.classType =='checkbox'>
-      type: JVxeTypes.selectMultiple,
-      options:[],
-      <#if col.dictTable?default("")?trim?length gt 1>
-      dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-      <#else>
-      dictCode:"${col.dictField}",
-      </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='sel_search'>
-      type: JVxeTypes.selectSearch,
-      <#if col.dictTable?default("")?trim?length gt 1>
-      dictCode:"${col.dictTable},${col.dictText},${col.dictField}",
-      <#else>
-      dictCode:"${col.dictField}",
-      </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='image'>
-      type: JVxeTypes.image,
-      token:true,
-      responseName:"message",
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-      <#if col.uploadnum??>
-      number: ${col.uploadnum},
-      </#if>
-<#elseif col.classType =='file'>
-      type: JVxeTypes.file,
-      token:true,
-      responseName:"message",
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-      <#if col.uploadnum??>
-      number: ${col.uploadnum},
-      </#if>
-<#elseif col.classType =='switch'>
-      type: JVxeTypes.checkbox,
-       <#if col.dictField == 'is_open'>
-        customValue: ['Y', 'N'],
-        <#else>
-        customValue: ${col.dictField},
-        </#if>
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#elseif col.classType =='popup'>
-<#if popupBackFields?length gt 0>
-    <#assign popupBackFields = "${popupBackFields}"+","+"${col.dictText}">
-<#else>
-    <#assign popupBackFields = "${col.dictText}">
-</#if>
-      type: JVxeTypes.popup,
-      popupCode:"${col.dictTable}",
-      field:"${col.dictField}",
-      orgFields:"${col.dictField}",
-      destFields:"${Format.underlineToHump(col.dictText)}",
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-<#else>
-      type: JVxeTypes.input,
-      <#if col.readonly=='Y'>
-      disabled:true,
-      </#if>
-</#if>
-<#if col.classType =='list_multi' || col.classType =='checkbox'>
-      width:"250px",
-<#else>
-      width:"200px",
-</#if>
-<#if col.classType =='file'>
-      placeholder: '请选择文件',
-<#else>
-      placeholder: '请输入${'$'}{title}',
-</#if>
-<#if col.defaultVal??>
-<#if col.fieldDbType=="BigDecimal" || col.fieldDbType=="double" || col.fieldDbType=="int">
-      defaultValue:${col.defaultVal},
-      <#else>
-      defaultValue:"${col.defaultVal}",
-</#if>
-<#else>
-      defaultValue:'',
-</#if>
-<#-- 子表的校验 -->
-<#assign subFieldValidType = col.fieldValidType!''>
-<#-- 非空校验 -->
-<#if col.nullable == 'N' || subFieldValidType == '*'>
-      validateRules: [{ required: true, message: '${'$'}{title}不能为空' }],
-<#-- 其他情况下,只要有值就被认为是正则校验 -->
-<#elseif subFieldValidType?length gt 0>
-<#assign subMessage = '格式不正确'>
-<#if subFieldValidType == 'only' >
-  <#assign subMessage = '不能重复'>
-</#if>
-      validateRules: [{ pattern: "${subFieldValidType}", message: "${'$'}{title}${subMessage}" }],
-</#if>
-    },
-</#if>
-</#if>
-</#list>
-<#-- 循环子表的列 结束 -->
-  ]
-</#if>
-</#list>

+ 0 - 183
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template-online/tab/onetomany/java/${bussiPackage}/${entityPackage}/vue3/components/${entityName}Modal.vuei

@@ -1,183 +0,0 @@
-<template>
-  <BasicModal v-bind="$attrs" @register="registerModal" :title="title" @ok="handleSubmit">
-  <!-- 子表单区域 -->
-    <a-tabs v-model:activeKey="activeKey" @change="handleChangeTabs">
-     <!--主表区域 -->
-     <a-tab-pane tab="${tableVo.ftlDescription}" :key="refKeys[0]" :forceRender="true">
-       <BasicForm @register="registerForm" ref="formRef"/>
-     </a-tab-pane>
-  <!--子表单区域 -->
-<#list subTables as sub><#rt/>
-  <#if sub.foreignRelationType =='1'>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index+1}]" :forceRender="true">
-        <${sub.entityName}Form ref="${sub.entityName?uncap_first}Form"></${sub.entityName}Form>
-      </a-tab-pane>
-
-  <#else>
-      <a-tab-pane tab="${sub.ftlDescription}" :key="refKeys[${sub_index+1}]" :forceRender="true">
-        <JVxeTable
-          keep-source
-          resizable
-          :ref="refKeys[${sub_index+1}]"
-          :loading="${sub.entityName?uncap_first}Table.loading"
-          :columns="${sub.entityName?uncap_first}Table.columns"
-          :dataSource="${sub.entityName?uncap_first}Table.dataSource"
-          :maxHeight="300"
-          :rowNumber="true"
-          :rowSelection="true"
-          :toolbar="true"
-          />
-      </a-tab-pane>
-  </#if>
-</#list>
-    </a-tabs>
-  </BasicModal>
-</template>
-
-<script lang="ts" setup>
-    import {ref, computed, unref,reactive} from 'vue';
-    import {BasicModal, useModalInner} from '/@/components/Modal';
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import { JVxeTable } from '/@/components/jeecg/JVxeTable'
-    import { useJvxeMethod } from '/@/hooks/system/useJvxeMethods.ts'
-    <#list subTables as sub>
-      <#if sub.foreignRelationType =='1'>
-    import ${sub.entityName}Form from './${sub.entityName}Form.vue'
-      </#if>
-    </#list>
-    import {formSchema<#list subTables as sub><#if sub.foreignRelationType =='0'>,${sub.entityName?uncap_first}Columns</#if></#list>} from '../${entityName?uncap_first}.data';
-    import {saveOrUpdate<#list subTables as sub>,${sub.entityName?uncap_first}List</#list>} from '../${entityName?uncap_first}.api';
-    import { VALIDATE_FAILED } from '/@/utils/common/vxeUtils'
-    // Emits声明
-    const emit = defineEmits(['register','success']);
-    const isUpdate = ref(true);
-    const refKeys = ref(['${tableVo.entityName?uncap_first}',<#list subTables as sub>'${sub.entityName?uncap_first}', </#list>]);
-    <#assign hasOne2Many = false>
-    <#assign hasOne2One = false>
-    const activeKey = ref('${tableVo.entityName?uncap_first}');
-<#list subTables as sub>
-<#if sub.foreignRelationType =='0'>
- <#assign hasOne2Many = true>
-    const ${sub.entityName?uncap_first} = ref();
-</#if>
-<#if sub.foreignRelationType =='1'>
- <#assign hasOne2One = true>
-    const ${sub.entityName?uncap_first}Form = ref();
-</#if>
-</#list>
-    const tableRefs = {<#list subTables as sub><#if sub.foreignRelationType =='0'>${sub.entityName?uncap_first}, <#assign hasOne2Many = true></#if></#list>};
-   <#list subTables as sub>
-   <#if sub.foreignRelationType =='0'>
-    const ${sub.entityName?uncap_first}Table = reactive({
-          loading: false,
-          dataSource: [],
-          columns:${sub.entityName?uncap_first}Columns
-    })
-    </#if>
-   </#list>
-    //表单配置
-    const [registerForm, {setProps,resetFields, setFieldsValue, validate}] = useForm({
-        labelWidth: 150,
-        schemas: formSchema,
-        showActionButtonGroup: false,
-    });
-     //表单赋值
-    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
-        //重置表单
-        await reset();
-        setModalProps({confirmLoading: false,showCancelBtn:data?.showFooter,showOkBtn:data?.showFooter});
-        isUpdate.value = !!data?.isUpdate;
-        if (unref(isUpdate)) {
-            //表单赋值
-            await setFieldsValue({
-                ...data.record,
-            });
-            <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='1'>
-             ${sub.entityName?uncap_first}Form.value.initFormData(${sub.entityName?uncap_first}List,data?.record?.id)
-            </#if>
-            </#list>
-            <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='0'>
-             requestSubTableData(${sub.entityName?uncap_first}List, {id:data?.record?.id}, ${sub.entityName?uncap_first}Table)
-            </#if>
-            </#list>
-        }
-        // 隐藏底部时禁用整个表单
-       setProps({ disabled: !data?.showFooter })
-    });
-    //方法配置
-    const [handleChangeTabs,handleSubmit,requestSubTableData,formRef] = useJvxeMethod(requestAddOrEdit,classifyIntoFormData,tableRefs,activeKey,refKeys<#if hasOne2One==true>,validateSubForm</#if>);
-
-    //设置标题
-    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
-
-    async function reset(){
-      await resetFields();
-      activeKey.value = ref('${tableVo.entityName?uncap_first}');
-      <#list subTables as sub>
-        <#if sub.foreignRelationType =='0'>
-      ${sub.entityName?uncap_first}Table.dataSource = [];
-        </#if>
-        <#if sub.foreignRelationType =='1'>
-      ${sub.entityName?uncap_first}Form.value.resetFields();
-        </#if>
-      </#list>
-    }
-    function classifyIntoFormData(allValues) {
-         let main = Object.assign({}, allValues.formValue)
-         return {
-           ...main, // 展开
- <#assign subManyIndex = 0>
- <#list subTables as sub><#rt/>
- <#if sub.foreignRelationType =='0'>
-           ${sub.entityName?uncap_first}List: allValues.tablesValue[${subManyIndex}].tableData,
-           <#assign subManyIndex = subManyIndex+1>
- <#else>
-           ${sub.entityName?uncap_first}List: ${sub.entityName?uncap_first}Form.value.getFormData(),
- </#if>
- </#list>
-         }
-       }
-      <#if hasOne2One==true>
-     //校验所有一对一子表表单
-     function validateSubForm(allValues){
-         return new Promise((resolve,reject)=>{
-             Promise.all([
-             <#list subTables as sub><#rt/>
-            <#if sub.foreignRelationType =='1'>
-                  ${sub.entityName?uncap_first}Form.value.validateForm(${sub_index+1}),
-            </#if>
-          </#list>
-             ]).then(() => {
-                 resolve(allValues)
-             }).catch(e => {
-                 if (e.error === VALIDATE_FAILED) {
-                     // 如果有未通过表单验证的子表,就自动跳转到它所在的tab
-                     activeKey.value = e.index == null ? unref(activeKey) : refKeys.value[e.index]
-                 } else {
-                     console.error(e)
-                 }
-             })
-         })
-     }
-    </#if>
-    //表单提交事件
-    async function requestAddOrEdit(values) {
-        try {
-            setModalProps({confirmLoading: true});
-            //提交表单
-            await saveOrUpdate(values, isUpdate.value);
-            //关闭弹窗
-            closeModal();
-            //刷新列表
-            emit('success');
-        } finally {
-            setModalProps({confirmLoading: false});
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 167
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai

@@ -1,167 +0,0 @@
-package ${bussiPackage}.${entityPackage}.controller;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.jeecg.common.util.oConvertUtils;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-import java.util.Date;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
- /**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Slf4j
-@Api(tags="${tableVo.ftlDescription}")
-@RestController
-@RequestMapping("/${entityPackage}/${entityName?uncap_first}")
-public class ${entityName}Controller extends JeecgController<${entityName}, I${entityName}Service> {
-	@Autowired
-	private I${entityName}Service ${entityName?uncap_first}Service;
-	
-	/**
-	 * 分页列表查询
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-分页列表查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-分页列表查询", notes="${tableVo.ftlDescription}-分页列表查询")
-	@GetMapping(value = "/list")
-	public Result<?> queryPageList(${entityName} ${entityName?uncap_first},
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-		Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize);
-		IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper);
-		return Result.OK(pageList);
-	}
-	
-	/**
-	 * 添加
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-添加")
-	@ApiOperation(value="${tableVo.ftlDescription}-添加", notes="${tableVo.ftlDescription}-添加")
-	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody ${entityName} ${entityName?uncap_first}) {
-		${entityName?uncap_first}Service.save(${entityName?uncap_first});
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 * 编辑
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-编辑")
-	@ApiOperation(value="${tableVo.ftlDescription}-编辑", notes="${tableVo.ftlDescription}-编辑")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody ${entityName} ${entityName?uncap_first}) {
-		${entityName?uncap_first}Service.updateById(${entityName?uncap_first});
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 * 通过id删除
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id删除", notes="${tableVo.ftlDescription}-通过id删除")
-	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		${entityName?uncap_first}Service.removeById(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 * 批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-批量删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-批量删除", notes="${tableVo.ftlDescription}-批量删除")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.${entityName?uncap_first}Service.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-	 *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id查询", notes="${tableVo.ftlDescription}-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
-		${entityName} ${entityName?uncap_first} = ${entityName?uncap_first}Service.getById(id);
-		return Result.OK(${entityName?uncap_first});
-	}
-
-  /**
-   * 导出excel
-   *
-   * @param request
-   * @param ${entityName?uncap_first}
-   */
-  @RequestMapping(value = "/exportXls")
-  public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) {
-      return super.exportXls(request, ${entityName?uncap_first}, ${entityName}.class, "${tableVo.ftlDescription}");
-  }
-
-  /**
-   * 通过excel导入数据
-   *
-   * @param request
-   * @param response
-   * @return
-   */
-  @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-  public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-      return super.importExcel(request, response, ${entityName}.class);
-  }
-
-}

+ 0 - 53
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai

@@ -1,53 +0,0 @@
-package ${bussiPackage}.${entityPackage}.entity;
-
-import java.io.Serializable;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableField;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Data
-@TableName("${tableName}")
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@ApiModel(value="${tableName}对象", description="${tableVo.ftlDescription}")
-public class ${entityName} {
-    
-    <#list originalColumns as po>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	@TableId(type = IdType.ASSIGN_ID)
-	<#else>
-  <#if po.fieldType =='java.util.Date'>
-	<#if po.fieldDbType =='date'>
-	@Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-	<#elseif po.fieldDbType =='datetime'>
-	@Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-	</#if>
-	<#else>
-	@Excel(name = "${po.filedComment}", width = 15)
-  </#if>
-  </#if>
-    @ApiModelProperty(value = "${po.filedComment}")
-	private <#if po.fieldType=='java.sql.Blob'>byte[]<#else>${po.fieldType}</#if> ${po.fieldName};
-	</#list>
-}

+ 0 - 17
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai

@@ -1,17 +0,0 @@
-package ${bussiPackage}.${entityPackage}.mapper;
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
-
-}

+ 0 - 5
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml

@@ -1,5 +0,0 @@
-<?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="${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper">
-
-</mapper>

+ 0 - 19
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai

@@ -1,19 +0,0 @@
-package ${bussiPackage}.${entityPackage}.service.impl;
-
-import ${bussiPackage}.${entityPackage}.entity.${entityName};
-import ${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper;
-import ${bussiPackage}.${entityPackage}.service.I${entityName}Service;
-import org.springframework.stereotype.Service;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Service
-public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements I${entityName}Service {
-
-}

+ 0 - 93
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue-app/${entityName}Form.vuei

@@ -1,93 +0,0 @@
-<template>
-    <view>
-        <!--标题和返回-->
-		<cu-custom :bgColor="NavBarColor" isBack :backRouterName="backRouteName">
-			<block slot="backText">返回</block>
-			<block slot="content">${tableVo.ftlDescription}</block>
-		</cu-custom>
-		 <!--表单区域-->
-		<view>
-			<form>
-    <#list columns as po><#rt/>
-    <#if po.fieldName !='id'><#rt/>
-         <#if po.fieldType =='date'>
-              <my-date label="${po.filedComment}:" fields="day" v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}"></my-date>
-         <#elseif po.fieldType =='datetime'>
-              <my-date label="${po.filedComment}:" v-model="model.${po.fieldName}" placeholder="请输入${po.filedComment}"></my-date>
-         <#else>
-              <view class="cu-form-group">
-                <view class="flex align-center">
-                  <view class="title"><text space="ensp">${po.filedComment}:</text></view>
-                  <input <#if "int,decimal,double,"?contains(po.fieldType)>type="number"</#if> placeholder="请输入${po.filedComment}" v-model="model.${po.fieldName}"/>
-                </view>
-              </view>
-        </#if>
-    </#if>
-    </#list>
-				<view class="padding">
-					<button class="cu-btn block bg-blue margin-tb-sm lg" @click="onSubmit">
-						<text v-if="loading" class="cuIcon-loading2 cuIconfont-spin"></text>提交
-					</button>
-				</view>
-			</form>
-		</view>
-    </view>
-</template>
-
-<script>
-    import myDate from '@/components/my-componets/my-date.vue'
-
-    export default {
-        name: "${entityName}Form",
-        components:{myDate},
-        props:{
-          formData:{
-              type:Object,
-              default:()=>{},
-              required:false
-          }
-        },
-        data(){
-            return {
-				CustomBar: this.CustomBar,
-				NavBarColor: this.NavBarColor,
-				loading:false,
-                model: {},
-                backRouteName:'index',
-                url: {
-                  queryById: "/${entityPackage}/${entityName?uncap_first}/queryById",
-                  add: "/${entityPackage}/${entityName?uncap_first}/add",
-                  edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-                },
-            }
-        },
-        created(){
-             this.initFormData();
-        },
-        methods:{
-           initFormData(){
-               if(this.formData){
-                    let dataId = this.formData.dataId;
-                    this.$http.get(this.url.queryById,{params:{id:dataId}}).then((res)=>{
-                        if(res.data.success){
-                            console.log("表单数据",res);
-                            this.model = res.data.result;
-                        }
-                    })
-                }
-            },
-            onSubmit() {
-                let myForm = {...this.model};
-                this.loading = true;
-                let url = myForm.id?this.url.edit:this.url.add;
-				this.$http.post(url,myForm).then(res=>{
-				   console.log("res",res)
-				   this.loading = false
-				   this.$Router.push({name:this.backRouteName})
-				}).catch(()=>{
-					this.loading = false
-				});
-            }
-        }
-    }
-</script>

+ 0 - 44
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue-app/${entityName}List.vuei

@@ -1,44 +0,0 @@
-<template>
-	<view>
-	   <!--标题和返回-->
-		<cu-custom :bgColor="NavBarColor" isBack>
-			<block slot="backText">返回</block>
-			<block slot="content">${tableVo.ftlDescription}</block>
-		</cu-custom>
-		<!--滚动加载列表-->
-		<mescroll-body ref="mescrollRef" bottom="88"  @init="mescrollInit" :up="upOption" :down="downOption" @down="downCallback" @up="upCallback">
-		    <view class="cu-list menu">
-				<view class="cu-item" v-for="(item,index) in list" :key="index" @click="goHome">
-					<view class="flex" style="width:100%">
-                        <text class="text-lg" style="color: #000;">
-                             {{ item.createBy}}
-                        </text>
-					</view>
-				</view>
-			</view>
-		</mescroll-body>
-	</view>
-</template>
-
-<script>
-	import MescrollMixin from "@/components/mescroll-uni/mescroll-mixins.js";
-	import Mixin from "@/common/mixin/Mixin.js";
-
-	export default {
-		name: '${tableVo.ftlDescription}',
-		mixins: [MescrollMixin,Mixin],
-		data() {
-			return {
-				CustomBar:this.CustomBar,
-				NavBarColor:this.NavBarColor,
-				url: "/${entityPackage}/${entityName?uncap_first}/list",
-			};
-		},
-		methods: {
-			goHome(){
-                this.$Router.push({name: "index"})
-			}
-		}
-	}
-</script>
-

+ 0 - 173
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei

@@ -1,173 +0,0 @@
-<template>
-  <a-card :bordered="false">
-
-    <!-- 查询区域 -->
-    <div class="table-page-search-wrapper">
-      <a-form layout="inline" @keyup.enter.native="searchQuery">
-        <a-row :gutter="24">
-
-<#list columns as po>
-<#if po.fieldName !='id' && po_index<= tableVo.searchFieldNum>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="${po.filedComment}">
-              <a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-            </a-form-item>
-          </a-col>
-<#elseif po_index == 2>
-        <template v-if="toggleSearchStatus">
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="${po.filedComment}">
-              <a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-            </a-form-item>
-          </a-col>
-<#elseif po.fieldName !='id' && po_index< 5>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <a-form-item label="${po.filedComment}">
-              <a-input placeholder="请输入${po.filedComment}" v-model="queryParam.${po.fieldName}"></a-input>
-            </a-form-item>
-          </a-col>
-<#else>
-</#if>
-</#list>
-        <#if (columns?size>1) >
-          </template>
-        </#if>
-          <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-          </a-col>
-
-        </a-row>
-      </a-form>
-    </div>
-
-    <!-- 操作按钮区域 -->
-    <div class="table-operator">
-      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
-      <a-button type="primary" icon="download" @click="handleExportXls('${tableVo.ftlDescription}')">导出</a-button>
-      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
-        <a-button type="primary" icon="import">导入</a-button>
-      </a-upload>
-      <a-dropdown v-if="selectedRowKeys.length > 0">
-        <a-menu slot="overlay">
-          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
-        </a-menu>
-        <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
-      </a-dropdown>
-    </div>
-
-    <!-- table区域-begin -->
-    <div>
-      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
-        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-      </div>
-
-      <a-table
-        ref="table"
-        size="middle"
-        bordered
-        rowKey="id"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        class="j-table-force-nowrap"
-        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
-        @change="handleTableChange">
-
-        <span slot="action" slot-scope="text, record">
-          <a @click="handleEdit(record)">编辑</a>
-
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
-      </a-table>
-    </div>
-    <!-- table区域-end -->
-
-    <!-- 表单区域 -->
-    <${entityName?uncap_first}-modal ref="modalForm" @ok="modalFormOk"></${entityName?uncap_first}-modal>
-  </a-card>
-</template>
-
-<script>
-  import '@/assets/less/TableExpand.less'
-  import ${entityName}Modal from './modules/${entityName}Modal'
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-
-  export default {
-    name: "${entityName}List",
-    mixins:[JeecgListMixin],
-    components: {
-      ${entityName}Modal
-    },
-    data () {
-      return {
-        description: '${tableVo.ftlDescription}管理页面',
-        // 表头
-        columns: [
-          {
-            title: '#',
-            dataIndex: '',
-            key:'rowIndex',
-            width:60,
-            align:"center",
-            customRender:function (t,r,index) {
-              return parseInt(index)+1;
-            }
-           },
-          <#list columns as po>
-           <#if po.fieldName !='id'>
-		   {
-            title: '${po.filedComment}',
-            align:"center",
-            dataIndex: '${po.fieldName}'
-           },
-		   </#if>
-		  </#list>
-          {
-            title: '操作',
-            dataIndex: 'action',
-            align:"center",
-            scopedSlots: { customRender: 'action' },
-          }
-        ],
-		url: {
-          list: "/${entityPackage}/${entityName?uncap_first}/list",
-          delete: "/${entityPackage}/${entityName?uncap_first}/delete",
-          deleteBatch: "/${entityPackage}/${entityName?uncap_first}/deleteBatch",
-          exportXlsUrl: "${entityPackage}/${entityName?uncap_first}/exportXls",
-          importExcelUrl: "${entityPackage}/${entityName?uncap_first}/importExcel",
-       },
-    }
-  },
-  computed: {
-    importExcelUrl: function(){
-      <#noparse>return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;</#noparse>
-    }
-  },
-    methods: {
-     
-    }
-  }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less';
-</style>

+ 0 - 130
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei

@@ -1,130 +0,0 @@
-<template>
-  <j-modal
-    :title="title"
-    :width="800"
-    :visible="visible"
-    :confirmLoading="confirmLoading"
-    switchFullscreen
-    @ok="handleOk"
-    @cancel="handleCancel"
-    cancelText="关闭">
-    
-    <a-spin :spinning="confirmLoading">
-      <a-form-model ref="form" :model="model" :rules="validatorRules">
-      
-<#list columns as po><#rt/>
-<#if po.fieldName !='id'><#rt/>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${po.fieldName}" label="${po.filedComment}">
-          <#if po.fieldType =='date'>
-          <a-date-picker v-model="model.${po.fieldName}"/>
-          <#elseif po.fieldType =='datetime'>
-          <a-date-picker showTime valueFormat='YYYY-MM-DD HH:mm:ss' v-model="model.${po.fieldName}" />
-          <#elseif "int,decimal,double,"?contains(po.fieldType)>
-          <a-input-number v-model="model.${po.fieldName}"/>
-          <#else>
-          <a-input placeholder="请输入${po.filedComment}" v-model="model.${po.fieldName}" />
-          </#if>
-        </a-form-model-item>
-</#if>
-</#list>
-		
-      </a-form-model>
-    </a-spin>
-  </j-modal>
-</template>
-
-<script>
-  import { httpAction } from '@/api/manage'
-  import moment from "moment"
-
-  export default {
-    name: "${entityName}Modal",
-    data () {
-      return {
-        title:"操作",
-        visible: false,
-        model: {},
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-
-        confirmLoading: false,
-        validatorRules:{
-        <#list columns as po>
-        <#if po.fieldName !='id'>
-        <#if po.nullable =='N'>
-        ${po.fieldName}:[{ required: true, message: '请输入${po.filedComment}!' }],
-        </#if>
-        </#if>
-	    </#list>
-        },
-        url: {
-          add: "/${entityPackage}/${entityName?uncap_first}/add",
-          edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-        },
-      }
-    },
-    created () {
-    },
-    methods: {
-      add () {
-        //初始化默认值
-        this.edit({});
-      },
-      edit (record) {
-        this.model = Object.assign({}, record);
-        this.visible = true;
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-        this.$refs.form.clearValidate();
-      },
-      handleOk () {
-        const that = this;
-        // 触发表单验证
-         this.$refs.form.validate(valid => {
-          if (valid) {
-            that.confirmLoading = true;
-            let httpurl = '';
-            let method = '';
-            if(!this.model.id){
-              httpurl+=this.url.add;
-              method = 'post';
-            }else{
-              httpurl+=this.url.edit;
-               method = 'put';
-            }
-            httpAction(httpurl,this.model,method).then((res)=>{
-              if(res.success){
-                that.$message.success(res.message);
-                that.$emit('ok');
-              }else{
-                that.$message.warning(res.message);
-              }
-            }).finally(() => {
-              that.confirmLoading = false;
-              that.close();
-            })
-          }else{
-             return false;
-          }
-        })
-      },
-      handleCancel () {
-        this.close()
-      },
-
-
-    }
-  }
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 150
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal__Style#Drawer.vuei

@@ -1,150 +0,0 @@
-<template>
-  <a-drawer
-      :title="title"
-      :width="800"
-      placement="right"
-      :closable="false"
-      @close="close"
-      :visible="visible">
-
-    <a-spin :spinning="confirmLoading">
-      <a-form-model ref="form" :model="model" :rules="validatorRules">
-      
-<#list columns as po><#rt/>
-<#if po.fieldName !='id'><#rt/>
-        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="${po.fieldName}" label="${po.filedComment}">
-          <#if po.fieldType =='date'>
-          <a-date-picker v-model="model.${po.fieldName}" />
-          <#elseif po.fieldType =='datetime'>
-          <a-date-picker showTime valueFormat='YYYY-MM-DD HH:mm:ss' v-model="model.${po.fieldName}" />
-          <#elseif "int,decimal,double,"?contains(po.fieldType)>
-          <a-input-number v-model="model.${po.fieldName}" />
-          <#else>
-          <a-input placeholder="请输入${po.filedComment}" v-model="model.${po.fieldName}" />
-          </#if>
-        </a-form-model-item>
-</#if>
-</#list>
-		
-      </a-form-model>
-    </a-spin>
-
-    <div class="drawer-bootom-button">
-      <a-button type="primary" @click="handleOk">确定</a-button>
-      <a-button type="primary" @click="handleCancel">取消</a-button>
-    </div>
-  </a-drawer>
-</template>
-
-<script>
-  import { httpAction } from '@/api/manage'
-  import moment from "moment"
-
-  export default {
-    name: "${entityName}Modal",
-    data () {
-      return {
-        title:"操作",
-        visible: false,
-        model: {},
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-
-        confirmLoading: false,
-        validatorRules:{
-        <#list columns as po>
-        <#if po.fieldName !='id'>
-        <#if po.nullable =='N'>
-        ${po.fieldName}:[{ required: true, message: '请输入${po.filedComment}!' }],
-        </#if>
-        </#if>
-	    </#list>
-        },
-        url: {
-          add: "/${entityPackage}/${entityName?uncap_first}/add",
-          edit: "/${entityPackage}/${entityName?uncap_first}/edit",
-        },
-      }
-    },
-    created () {
-    },
-    methods: {
-      add () {
-        //初始化默认值
-        this.edit({});
-      },
-      edit (record) {
-        this.model = Object.assign({}, record);
-        this.visible = true;
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-        this.$refs.form.clearValidate();
-      },
-      handleOk () {
-        const that = this;
-        // 触发表单验证
-        this.$refs.form.validate(valid => {
-          if (valid) {
-            that.confirmLoading = true;
-            let httpurl = '';
-            let method = '';
-            if(!this.model.id){
-              httpurl+=this.url.add;
-              method = 'post';
-            }else{
-              httpurl+=this.url.edit;
-               method = 'put';
-            }
-            httpAction(httpurl,this.model,method).then((res)=>{
-              if(res.success){
-                that.$message.success(res.message);
-                that.$emit('ok');
-              }else{
-                that.$message.warning(res.message);
-              }
-            }).finally(() => {
-              that.confirmLoading = false;
-              that.close();
-            })
-          }else{
-            return false;
-         }
-        })
-      },
-      handleCancel () {
-        this.close()
-      },
-
-
-    }
-  }
-</script>
-
-<style lang="less" scoped>
-  /**Button按钮间距*/
-  .ant-btn {
-    margin-left: 30px;
-    margin-bottom: 30px;
-    float: right;
-  }
- /**抽屉按钮样式*/
-  .drawer-bootom-button {
-    position: absolute;
-    bottom: -8px;
-    width: 100%;
-    border-top: 1px solid #e8e8e8;
-    padding: 10px 16px;
-    text-align: right;
-    left: 0;
-    background: #fff;
-    border-radius: 0 0 2px 2px;
-  }
-</style>

+ 0 - 152
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}List.vuei

@@ -1,152 +0,0 @@
-<template>
-  <div>
-    <!--引用表格-->
-   <BasicTable @register="registerTable" :rowSelection="rowSelection">
-     <!--插槽:table标题-->
-          <template #tableTitle>
-             <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
-             <a-button  type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-             <j-upload-button  type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>
-             <a-dropdown v-if="selectedRowKeys.length > 0">
-                 <template #overlay>
-                    <a-menu>
-                      <a-menu-item key="1" @click="batchHandleDelete">
-                        <Icon icon="ant-design:delete-outlined"></Icon>
-                        删除
-                      </a-menu-item>
-                    </a-menu>
-                  </template>
-                  <a-button>批量操作
-                    <Icon icon="mdi:chevron-down"></Icon>
-                  </a-button>
-            </a-dropdown>
-          </template>
-       <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/>
-      </template>
-    </BasicTable>
-
-    <!-- 表单区域 -->
-    <${entityName}Modal @register="registerModal" @success="handleSuccess"></${entityName}Modal>
-  </div>
-</template>
-
-<script lang="ts" name="${entityPackage}-${entityName?uncap_first}" setup>
-  import {ref, computed, unref} from 'vue';
-  import {BasicTable, useTable, TableAction} from '/@/components/Table';
-  import {useModal} from '/@/components/Modal';
-  import { useListPage } from '/@/hooks/system/useListPage'
-  import ${entityName}Modal from './modules/${entityName}Modal.vue'
-  import {columns, searchFormSchema} from './${entityName}.data';
-  import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './${entityName}.api';
-
-  //注册model
-  const [registerModal, {openModal}] = useModal();
-  //注册table数据
-  const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({
-       tableProps:{
-            title: '${tableVo.ftlDescription}',
-            api: list,
-            columns,
-            canResize:false,
-            formConfig: {
-               labelWidth: 120,
-               schemas: searchFormSchema,
-               autoSubmitOnEnter:true,
-               showAdvancedButton:true,
-             },
-            actionColumn: {
-                width: 120,
-             },
-        },
-        exportConfig: {
-             name:"${tableVo.ftlDescription}",
-             url: getExportUrl,
-           },
-           importConfig: {
-             url: getImportUrl
-           },
-   })
-
-   const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext
-
-   /**
-    * 新增事件
-    */
-   function handleAdd() {
-     openModal(true, {
-       isUpdate: false,
-       showFooter: true,
-     });
-   }
-   /**
-    * 编辑事件
-    */
-  function handleEdit(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: true,
-     });
-   }
-   /**
-    * 详情
-   */
-  function handleDetail(record: Recordable) {
-     openModal(true, {
-       record,
-       isUpdate: true,
-       showFooter: false,
-     });
-   }
-   /**
-    * 删除事件
-    */
-   async function handleDelete(record) {
-     await deleteOne({id: record.id}, reload);
-   }
-   /**
-    * 批量删除事件
-    */
-   async function batchHandleDelete() {
-     await batchDelete({ids: selectedRowKeys.value}, reload);
-   }
-   /**
-    * 成功回调
-    */
-   function handleSuccess({isUpdate, values}) {
-      reload();
-   }
-   /**
-      * 操作栏
-      */
-   function getTableAction(record){
-       return [
-         {
-           label: '编辑',
-           onClick: handleEdit.bind(null, record),
-         }
-       ]
-     }
-     /**
-       * 下拉操作栏
-       */
-    function getDropDownAction(record){
-      return [
-           {
-             label: '详情',
-             onClick: handleDetail.bind(null, record),
-           }, {
-             label: '删除',
-             popConfirm: {
-               title: '是否确认删除',
-               confirm: handleDelete.bind(null, record),
-             }
-           }
-      ]
-    }
-</script>
-<style scoped>
-
-</style>

+ 0 - 65
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__api.tsi

@@ -1,65 +0,0 @@
-import {defHttp} from '/@/utils/http/axios';
-import {Modal} from 'ant-design-vue';
-
-enum Api {
-  list = '/${entityPackage}/${entityName?uncap_first}/list',
-  save='/${entityPackage}/${entityName?uncap_first}/add',
-  edit='/${entityPackage}/${entityName?uncap_first}/edit',
-  deleteOne = '/${entityPackage}/${entityName?uncap_first}/delete',
-  deleteBatch = '/${entityPackage}/${entityName?uncap_first}/deleteBatch',
-  importExcel = '/${entityPackage}/${entityName?uncap_first}/importExcel',
-  exportXls = '/${entityPackage}/${entityName?uncap_first}/exportXls',
-}
-/**
- * 导出api
- * @param params
- */
-export const getExportUrl = Api.exportXls;
-/**
- * 导入api
- */
-export const getImportUrl = Api.importExcel;
-/**
- * 列表接口
- * @param params
- */
-export const list = (params) =>
-  defHttp.get({url: Api.list, params});
-
-/**
- * 删除单个
- * @param params
- * @param handleSuccess
- */
-export const deleteOne = (params,handleSuccess) => {
-  return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
-    handleSuccess();
-  });
-}
-/**
- * 批量删除
- * @param params
- * @param handleSuccess
- */
-export const batchDelete = (params, handleSuccess) => {
-  Modal.confirm({
-    title: '确认删除',
-    content: '是否删除选中数据',
-    okText: '确认',
-    cancelText: '取消',
-    onOk: () => {
-      return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => {
-        handleSuccess();
-      });
-    }
-  });
-}
-/**
- * 保存或者更新
- * @param params
- * @param isUpdate 是否是更新数据
- */
-export const saveOrUpdate = (params, isUpdate) => {
-  let url = isUpdate ? Api.edit : Api.save;
-  return defHttp.post({url: url, params});
-}

+ 0 - 62
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue3/${entityName}__data.tsi

@@ -1,62 +0,0 @@
-import {BasicColumn} from '/@/components/Table';
-import {FormSchema} from '/@/components/Table';
-import { rules} from '/@/utils/helper/validator';
-import { render } from '/@/utils/common/renderUtils';
-
-export const columns: BasicColumn[] = [
- <#list columns as po>
-   <#if po.fieldName !='id'>
-   {
-    title: '${po.filedComment}',
-    dataIndex: '${po.fieldName}'
-   },
-   </#if>
- </#list>
-];
-
-export const searchFormSchema: FormSchema[] = [
-<#list columns as po>
-<#if po.fieldName !='id' && po_index<= tableVo.searchFieldNum>
- {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-     <#if po.fieldType =='date'>
-    component: 'DatePicker'
-     <#elseif po.fieldType =='datetime'>
-    component: 'TimePicker'
-     <#elseif "int,decimal,double,"?contains(po.fieldType)>
-    component: 'InputNumber'
-     <#else>
-    component: 'Input'
-    </#if>
-  },
-</#if>
-</#list>
-];
-
-export const formSchema: FormSchema[] = [
-  // TODO 主键隐藏字段,目前写死为ID
-  {label: '', field: 'id', component: 'Input', show: false},
-<#list columns as po><#rt/>
-  {
-    label: '${po.filedComment}',
-    field: '${po.fieldName}',
-     <#if po.fieldType =='date'>
-    component: 'DatePicker'
-     <#elseif po.fieldType =='datetime'>
-    component: 'DatePicker',
-    componentProps: {
-      showTime: true,
-      valueFormat: 'YYYY-MM-DD hh:mm:ss',
-    },
-     <#elseif "int,decimal,double,"?contains(po.fieldType)>
-    component: 'InputNumber'
-     <#else>
-    component: 'Input'
-    </#if>
-    <#if po.fieldName =='id'><#rt/>
-    show:false
-    </#if>
-  },
-</#list>
-];

+ 0 - 56
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one/java/${bussiPackage}/${entityPackage}/vue3/modules/${entityName}Modal.vuei

@@ -1,56 +0,0 @@
-<template>
-  <BasicModal v-bind="$attrs" @register="registerModal" :title="title" @ok="handleSubmit" width="40%">
-         <BasicForm @register="registerForm"/>
-     </BasicModal>
-</template>
-
-<script lang="ts" setup>
-    import {ref, computed, unref} from 'vue';
-    import {BasicModal, useModalInner} from '/@/components/Modal';
-    import {BasicForm, useForm} from '/@/components/Form/index';
-    import {formSchema} from '../${entityName}.data';
-    import {saveOrUpdate} from '../${entityName}.api';
-    // Emits声明
-    const emit = defineEmits(['register','success']);
-    const isUpdate = ref(true);
-    //表单配置
-    const [registerForm, {resetFields, setFieldsValue, validate}] = useForm({
-        labelWidth: 150,
-        schemas: formSchema,
-        showActionButtonGroup: false,
-    });
-    //表单赋值
-    const [registerModal, {setModalProps, closeModal}] = useModalInner(async (data) => {
-        //重置表单
-        await resetFields();
-        setModalProps({confirmLoading: false,showCancelBtn:data?.showFooter,showOkBtn:data?.showFooter});
-        isUpdate.value = !!data?.isUpdate;
-        if (unref(isUpdate)) {
-            //表单赋值
-            await setFieldsValue({
-                ...data.record,
-            });
-        }
-    });
-    //设置标题
-    const title = computed(() => (!unref(isUpdate) ? '新增' : '编辑'));
-    //表单提交事件
-    async function handleSubmit(v) {
-        try {
-            let values = await validate();
-            setModalProps({confirmLoading: true});
-            //提交表单
-            await saveOrUpdate(values, isUpdate.value);
-            //关闭弹窗
-            closeModal();
-            //刷新列表
-            emit('success', {isUpdate: isUpdate.value, values});
-        } finally {
-            setModalProps({confirmLoading: false});
-        }
-    }
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 0 - 170
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one2/java/${bussiPackage}/${entityPackage}/controller/${entityPackage}/${entityName}Controller.javai

@@ -1,170 +0,0 @@
-package ${bussiPackage}.controller.${entityPackage};
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import ${bussiPackage}.entity.${entityPackage}.${entityName};
-import ${bussiPackage}.service.${entityPackage}.I${entityName}Service;
-import org.jeecg.common.system.base.controller.JeecgController;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-
- /**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Api(tags="${tableVo.ftlDescription}")
-@RestController
-@RequestMapping("/${entityPackage}/${entityName?uncap_first}")
-@Slf4j
-public class ${entityName}Controller extends JeecgController<${entityName}, I${entityName}Service> {
-	@Autowired
-	private I${entityName}Service ${entityName?uncap_first}Service;
-	
-	/**
-	 * 分页列表查询
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @param pageNo
-	 * @param pageSize
-	 * @param req
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-分页列表查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-分页列表查询", notes="${tableVo.ftlDescription}-分页列表查询")
-	@GetMapping(value = "/list")
-	public Result<?> queryPageList(${entityName} ${entityName?uncap_first},
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-							       @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap());
-		Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize);
-		IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper);
-		return Result.OK(pageList);
-
-	}
-	
-	/**
-	 *   添加
-	 * @param ${entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-添加")
-	@ApiOperation(value="${tableVo.ftlDescription}-添加", notes="${tableVo.ftlDescription}-添加")
-	@PostMapping(value = "/add")
-	public Result<?> add(@RequestBody ${entityName} ${entityName?uncap_first}) {
-		${entityName?uncap_first}Service.save(${entityName?uncap_first});
-		return Result.OK("添加成功!");
-	}
-	
-	/**
-	 *  编辑
-	 *
-	 * @param ${entityName?uncap_first}
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-编辑")
-	@ApiOperation(value="${tableVo.ftlDescription}-编辑", notes="${tableVo.ftlDescription}-编辑")
-	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<?> edit(@RequestBody ${entityName} ${entityName?uncap_first}) {
-		${entityName?uncap_first}Service.updateById(${entityName?uncap_first});
-		return Result.OK("编辑成功!");
-	}
-	
-	/**
-	 *  通过id删除
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id删除", notes="${tableVo.ftlDescription}-通过id删除")
-	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
-		${entityName?uncap_first}Service.removeById(id);
-		return Result.OK("删除成功!");
-	}
-	
-	/**
-	 *  批量删除
-	 *
-	 * @param ids
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-批量删除")
-	@ApiOperation(value="${tableVo.ftlDescription}-批量删除", notes="${tableVo.ftlDescription}-批量删除")
-	@DeleteMapping(value = "/deleteBatch")
-	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.${entityName?uncap_first}Service.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
-	}
-	
-	/**
-	 * 通过id查询
-     *
-	 * @param id
-	 * @return
-	 */
-	@AutoLog(value = "${tableVo.ftlDescription}-通过id查询")
-	@ApiOperation(value="${tableVo.ftlDescription}-通过id查询", notes="${tableVo.ftlDescription}-通过id查询")
-	@GetMapping(value = "/queryById")
-	public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
-		${entityName} ${entityName?uncap_first} = ${entityName?uncap_first}Service.getById(id);
-		return Result.OK(${entityName?uncap_first});
-	}
-
-	/**
-     * 导出excel
-     *
-     * @param request
-     * @param ${entityName?uncap_first}
-     */
-    @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) {
-        return super.exportXls(request, ${entityName?uncap_first}, ${entityName}.class, "${tableVo.ftlDescription}");
-    }
-
-    /**
-     * 通过excel导入数据
-     *
-     * @param request
-     * @param response
-     * @return
-     */
-    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, ${entityName}.class);
-    }
-
-}

+ 0 - 49
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one2/java/${bussiPackage}/${entityPackage}/entity/${entityPackage}/${entityName}.javai

@@ -1,49 +0,0 @@
-package ${bussiPackage}.entity.${entityPackage};
-
-import java.io.Serializable;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-@Data
-@TableName("${tableName}")
-@ApiModel(value="${tableName}对象", description="${tableVo.ftlDescription}")
-public class ${entityName} implements Serializable {
-    private static final long serialVersionUID = 1L;
-    
-    <#list originalColumns as po>
-	/**${po.filedComment}*/
-	<#if po.fieldName == primaryKeyField>
-	@TableId(type = IdType.ASSIGN_ID)
-	<#else>
-    <#if po.fieldType =='java.util.Date'>
-      <#if po.fieldDbType =='date'>
-    @Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd")
-    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
-      <#elseif po.fieldDbType =='datetime'>
-    @Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
-    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
-      </#if>
-    <#else>
-    @Excel(name = "${po.filedComment}", width = 15)
-    </#if>
-  </#if>
-	@ApiModelProperty(value = "${po.filedComment}")
-	private <#if po.fieldType=='java.sql.Blob'>byte[]<#else>${po.fieldType}</#if> ${po.fieldName};
-	</#list>
-}

+ 0 - 17
medical_history/jeecg-boot-module-system/target/classes/jeecg/code-template/one2/java/${bussiPackage}/${entityPackage}/mapper/${entityPackage}/${entityName}Mapper.javai

@@ -1,17 +0,0 @@
-package ${bussiPackage}.mapper.${entityPackage};
-
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-import ${bussiPackage}.entity.${entityPackage}.${entityName};
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * @Description: ${tableVo.ftlDescription}
- * @Author: jeecg-boot
- * @Date:   ${.now?string["yyyy-MM-dd"]}
- * @Version: V1.0
- */
-public interface ${entityName}Mapper extends BaseMapper<${entityName}> {
-
-}

Some files were not shown because too many files changed in this diff