Authored by 王涛

优化

@@ -6,6 +6,7 @@ import org.jeecg.modules.jmreport.ext.pojo.PageDetail; @@ -6,6 +6,7 @@ import org.jeecg.modules.jmreport.ext.pojo.PageDetail;
6 import org.jeecg.modules.jmreport.ext.pojo.PageTreeNode; 6 import org.jeecg.modules.jmreport.ext.pojo.PageTreeNode;
7 7
8 import java.util.List; 8 import java.util.List;
  9 +import java.util.Map;
9 10
10 /** 11 /**
11 * (ExtPageConfig)表服务接口 12 * (ExtPageConfig)表服务接口
@@ -27,6 +28,6 @@ public interface ExtPageConfigService extends IService<ExtPageConfig> { @@ -27,6 +28,6 @@ public interface ExtPageConfigService extends IService<ExtPageConfig> {
27 * 获取报表页面详细信息 28 * 获取报表页面详细信息
28 * @return 29 * @return
29 */ 30 */
30 - PageDetail getPageDetail(String pageCode); 31 + Map<String,Object> getPageDetail(String pageCode);
31 32
32 } 33 }
@@ -11,7 +11,9 @@ import org.jeecg.modules.jmreport.ext.service.ExtPageConfigService; @@ -11,7 +11,9 @@ import org.jeecg.modules.jmreport.ext.service.ExtPageConfigService;
11 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
12 12
13 import java.util.ArrayList; 13 import java.util.ArrayList;
  14 +import java.util.HashMap;
14 import java.util.List; 15 import java.util.List;
  16 +import java.util.Map;
15 import java.util.stream.Collectors; 17 import java.util.stream.Collectors;
16 18
17 /** 19 /**
@@ -31,7 +33,7 @@ public class ExtPageConfigServiceImpl extends ServiceImpl<ExtPageConfigDao, ExtP @@ -31,7 +33,7 @@ public class ExtPageConfigServiceImpl extends ServiceImpl<ExtPageConfigDao, ExtP
31 @Override 33 @Override
32 public PageTreeNode getTree() { 34 public PageTreeNode getTree() {
33 35
34 - PageTreeNode root = new PageTreeNode(-1,"页面配置"); 36 + PageTreeNode root = new PageTreeNode(-1, "页面配置");
35 37
36 LambdaQueryWrapper<ExtPageConfig> queryWrapper = new LambdaQueryWrapper<>(); 38 LambdaQueryWrapper<ExtPageConfig> queryWrapper = new LambdaQueryWrapper<>();
37 queryWrapper.orderByAsc(ExtPageConfig::getSort); 39 queryWrapper.orderByAsc(ExtPageConfig::getSort);
@@ -40,11 +42,11 @@ public class ExtPageConfigServiceImpl extends ServiceImpl<ExtPageConfigDao, ExtP @@ -40,11 +42,11 @@ public class ExtPageConfigServiceImpl extends ServiceImpl<ExtPageConfigDao, ExtP
40 // 获取所有父节点 42 // 获取所有父节点
41 List<ExtPageConfig> parentList = list.stream().filter(item -> item.getParentId() == null).collect(Collectors.toList()); 43 List<ExtPageConfig> parentList = list.stream().filter(item -> item.getParentId() == null).collect(Collectors.toList());
42 44
43 - parentList.stream().forEach(item ->{ 45 + parentList.stream().forEach(item -> {
44 46
45 - PageTreeNode node = new PageTreeNode(item.getId(),item.getPageName());  
46 - node.getProps().put("reportCode",item.getReportCode());  
47 - getChild(node,list,item); 47 + PageTreeNode node = new PageTreeNode(item.getId(), item.getPageName());
  48 + node.getProps().put("reportCode", item.getReportCode());
  49 + getChild(node, list, item);
48 root.getChildren().add(node); 50 root.getChildren().add(node);
49 }); 51 });
50 52
@@ -58,67 +60,72 @@ public class ExtPageConfigServiceImpl extends ServiceImpl<ExtPageConfigDao, ExtP @@ -58,67 +60,72 @@ public class ExtPageConfigServiceImpl extends ServiceImpl<ExtPageConfigDao, ExtP
58 * @return 60 * @return
59 */ 61 */
60 @Override 62 @Override
61 - public PageDetail getPageDetail(String pageCode) {  
62 - if(StringUtils.isBlank(pageCode)){  
63 - return null; 63 + public Map<String, Object> getPageDetail(String pageCode) {
  64 + Map<String, Object> maps = new HashMap<>();
  65 + if (StringUtils.isBlank(pageCode)) {
  66 + return maps;
64 } 67 }
65 68
66 - 69 + Map<String, String> codeMap = new HashMap<>();
67 LambdaQueryWrapper<ExtPageConfig> queryWrapper = new LambdaQueryWrapper<>(); 70 LambdaQueryWrapper<ExtPageConfig> queryWrapper = new LambdaQueryWrapper<>();
68 - queryWrapper.eq(ExtPageConfig::getPageCode,pageCode); 71 + queryWrapper.eq(ExtPageConfig::getPageCode, pageCode);
69 72
70 ExtPageConfig one = this.getOne(queryWrapper); 73 ExtPageConfig one = this.getOne(queryWrapper);
71 - if(one == null){ 74 + if (one == null) {
72 return null; 75 return null;
73 } 76 }
74 77
75 // 获取子菜单 78 // 获取子菜单
76 - PageDetail root = PageDetail.builder()  
77 - .pageCode(one.getPageCode())  
78 - .pageName(one.getPageName())  
79 - .reportCode(one.getReportCode())  
80 - .child(new ArrayList<>())  
81 - .build(); 79 + PageDetail root = PageDetail.builder().pageCode(one.getPageCode()).pageName(one.getPageName()).reportCode(one.getReportCode()).child(new ArrayList<>()).build();
  80 +
  81 +
82 82
83 Integer id = one.getId(); 83 Integer id = one.getId();
84 - getPageNode(id,root); 84 + getPageNode(id, root, codeMap);
85 85
86 - return root; 86 + maps.put("root", root);
  87 + maps.put("codeMaps", codeMap);
  88 + return maps;
87 } 89 }
88 90
89 91
90 - private void getPageNode( Integer id ,PageDetail root){ 92 + private void getPageNode(Integer id, PageDetail root, Map<String, String> codeMap) {
  93 +
  94 + setMapData(root, codeMap);
91 LambdaQueryWrapper<ExtPageConfig> queryWrapper1 = new LambdaQueryWrapper<>(); 95 LambdaQueryWrapper<ExtPageConfig> queryWrapper1 = new LambdaQueryWrapper<>();
92 - queryWrapper1.eq(ExtPageConfig::getParentId,id); 96 + queryWrapper1.eq(ExtPageConfig::getParentId, id);
93 queryWrapper1.orderByAsc(ExtPageConfig::getSort); 97 queryWrapper1.orderByAsc(ExtPageConfig::getSort);
94 List<ExtPageConfig> list = this.list(queryWrapper1); 98 List<ExtPageConfig> list = this.list(queryWrapper1);
95 - if(list == null || list.isEmpty()){ 99 + if (list == null || list.isEmpty()) {
96 return; 100 return;
97 } 101 }
98 - list.stream().forEach(item ->{  
99 - PageDetail child = PageDetail.builder()  
100 - .pageCode(item.getPageCode())  
101 - .pageName(item.getPageName())  
102 - .reportCode(item.getReportCode())  
103 - .child(new ArrayList<>())  
104 - .build();  
105 -  
106 - getPageNode(item.getId(), child); 102 + list.stream().forEach(item -> {
  103 + PageDetail child = PageDetail.builder().pageCode(item.getPageCode()).pageName(item.getPageName()).reportCode(item.getReportCode()).child(new ArrayList<>()).build();
  104 + setMapData(child, codeMap);
  105 + getPageNode(item.getId(), child, codeMap);
107 106
108 root.getChild().add(child); 107 root.getChild().add(child);
109 }); 108 });
110 } 109 }
111 110
  111 + private void setMapData(PageDetail root, Map<String, String> codeMap){
  112 + String pageCode = root.getPageCode();
  113 + String reportCode = root.getReportCode();
  114 + if(StringUtils.isNotBlank(pageCode) && StringUtils.isNotBlank(reportCode)){
  115 + codeMap.put(pageCode, reportCode);
  116 + }
  117 + }
  118 +
112 119
113 - private void getChild(PageTreeNode root,List<ExtPageConfig> list,ExtPageConfig pageConfig){ 120 + private void getChild(PageTreeNode root, List<ExtPageConfig> list, ExtPageConfig pageConfig) {
114 121
115 // 获取子节点 122 // 获取子节点
116 List<ExtPageConfig> childList = list.stream().filter(item -> item.getParentId() == root.getId()).collect(Collectors.toList()); 123 List<ExtPageConfig> childList = list.stream().filter(item -> item.getParentId() == root.getId()).collect(Collectors.toList());
117 124
118 - if(!childList.isEmpty()){  
119 - childList.stream().forEach(item ->{  
120 - PageTreeNode node = new PageTreeNode(item.getId(),item.getPageName());  
121 - node.getProps().put("reportCode",item.getReportCode()); 125 + if (!childList.isEmpty()) {
  126 + childList.stream().forEach(item -> {
  127 + PageTreeNode node = new PageTreeNode(item.getId(), item.getPageName());
  128 + node.getProps().put("reportCode", item.getReportCode());
122 root.getChildren().add(node); 129 root.getChildren().add(node);
123 }); 130 });
124 } 131 }
@@ -902,6 +902,13 @@ @@ -902,6 +902,13 @@
902 savePageConfig(){ 902 savePageConfig(){
903 var that = this; 903 var that = this;
904 904
  905 + let arr = that.$refs.treeTable.getSelection();
  906 +
  907 + if(arr.length != 1){
  908 + that.$Message.warning('页面只能配置一个报表页面!');
  909 + return;
  910 + }
  911 +
905 let id = this.treeNode.id 912 let id = this.treeNode.id
906 let code = that.$refs.treeTable.getSelection()[0].id; 913 let code = that.$refs.treeTable.getSelection()[0].id;
907 914
@@ -70,13 +70,13 @@ @@ -70,13 +70,13 @@
70 {{dataSource.pageName}} 70 {{dataSource.pageName}}
71 </template> 71 </template>
72 <span v-for="(item,index) in dataSource.child"> 72 <span v-for="(item,index) in dataSource.child">
73 - <Menu-Item :name="item.pageCode" v-if="item.child && item.child.length == 0"> 73 + <Menu-Item @click.native="clickMneuItem(item.pageCode)" :name="item.pageCode" v-if="item.child && item.child.length == 0">
74 <span>{{item.pageName}}</span> 74 <span>{{item.pageName}}</span>
75 </Menu-Item> 75 </Menu-Item>
76 76
77 <Submenu :name="item.pageCode" v-else> 77 <Submenu :name="item.pageCode" v-else>
78 <template slot="title">{{item.pageName}}</template> 78 <template slot="title">{{item.pageName}}</template>
79 - <Menu-Item :name="item1.pageCode" v-for="(item1,index) in item.child"> 79 + <Menu-Item @click.native="clickMneuItem(item1.pageCode)" :name="item1.pageCode" v-for="(item1,index) in item.child">
80 <span>{{item1.pageName}}</span> 80 <span>{{item1.pageName}}</span>
81 </Menu-Item> 81 </Menu-Item>
82 </Submenu> 82 </Submenu>
@@ -108,6 +108,7 @@ @@ -108,6 +108,7 @@
108 src: '', 108 src: '',
109 height: document.documentElement.clientHeight, 109 height: document.documentElement.clientHeight,
110 dataSource: {}, 110 dataSource: {},
  111 + codeMaps:[]
111 }, 112 },
112 computed: { 113 computed: {
113 menuitemClasses: function () { 114 menuitemClasses: function () {
@@ -139,18 +140,18 @@ @@ -139,18 +140,18 @@
139 token: that.token 140 token: that.token
140 }, 141 },
141 success: (result) => { 142 success: (result) => {
142 - that.dataSource = result;  
143 - let flg = false; 143 + that.dataSource = result.root;
  144 + that.codeMaps = result.codeMaps;
144 if (result.reportCode) { 145 if (result.reportCode) {
145 that.setReportSrc(result.reportCode); 146 that.setReportSrc(result.reportCode);
146 } else { 147 } else {
147 - if (result.child) {  
148 - result.child.forEach(function (d) {  
149 - if (d.reportCode && !flg) {  
150 - flg = true;  
151 - that.setReportSrc(d.reportCode);  
152 - }  
153 - }) 148 +
  149 + for (var code in that.codeMaps){
  150 + let reportCode = that.codeMaps[code];
  151 + if(reportCode){
  152 + that.setReportSrc(reportCode);
  153 + break;
  154 + }
154 } 155 }
155 } 156 }
156 }, 157 },
@@ -177,17 +178,18 @@ @@ -177,17 +178,18 @@
177 that.setReportSrc(code); 178 that.setReportSrc(code);
178 } 179 }
179 } else { 180 } else {
180 - if (ds.child) {  
181 - let flg = false;  
182 - ds.child.forEach(function (d) {  
183 - if (d.reportCode && d.pageCode == key && !flg) {  
184 - flg = true;  
185 - that.setReportSrc(d.reportCode);  
186 - }  
187 - }) 181 + let code = that.codeMaps[key];
  182 + if(code){
  183 + that.setReportSrc(code);
  184 + } else {
  185 + that.$Message.success('当前页面未配置报表页面!');
188 } 186 }
189 } 187 }
190 console.log(key); 188 console.log(key);
  189 + },
  190 +
  191 + clickMneuItem : function (code) {
  192 + console.log(22222);
191 } 193 }
192 } 194 }
193 }) 195 })