d56d3e1de9ed39e2cb0694bde69790a32bf5094d.svn-base 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. <template>
  2. <el-container>
  3. <el-aside width="250px" :style="{'height': treeHeight + 'px'}">
  4. <el-tree
  5. :highlight-current="true"
  6. class="filter_tree report_tree"
  7. :data="treeData"
  8. :props="defaultProps"
  9. node-key="id"
  10. :filter-node-method="filterNode"
  11. :expand-on-click-node="false"
  12. :default-expand-all="true"
  13. @node-click="treeNodeClickHandler"
  14. ref="tree2"
  15. >
  16. <span class="custom-tree-node" slot-scope="{ node }">
  17. <el-tooltip
  18. v-if="node.isLeaf"
  19. class="item"
  20. effect="dark"
  21. :content="node.label"
  22. placement="top-start"
  23. >
  24. <span>{{ node.label }}</span>
  25. </el-tooltip>
  26. <span v-else>{{ node.label }}</span>
  27. </span>
  28. </el-tree>
  29. </el-aside>
  30. <el-main>
  31. <!-- <el-tabs v-model="activeName" @tab-click="handleClick">
  32. <el-tab-pane
  33. v-for="(item,index) in tabList"
  34. :key="index"
  35. :label="item.label"
  36. :lazy="true"
  37. :name="item.value"
  38. >
  39. <div
  40. v-if="showReport"
  41. style="width:100%;padding:0px 0px;"
  42. :style="{'height' : tableHeight + 'px'}"
  43. >
  44. <p
  45. v-if="showLastTab"
  46. style="font-weight: bolder;color: #868686;font-size: larger;line-height: 100px;text-align: center"
  47. >请通过左侧树点击指定工程,查看报表</p>
  48. <iframe
  49. v-if="!showLastTab"
  50. id="iframeEle"
  51. :src="tableSrc + '&id=' + id + '&name=' + name + '&width=1920&height=592'"
  52. frameborder="0"
  53. width="100%"
  54. height="100%"
  55. style="overflow: auto"
  56. ></iframe>
  57. </div>
  58. </el-tab-pane>
  59. </el-tabs> -->
  60. <iframe
  61. v-if="!showLastTab"
  62. id="iframeEle"
  63. :src="tableSrc + '&id=' + id + '&name=' + name + '&width=1920&height=592'"
  64. frameborder="0"
  65. width="100%"
  66. height="100%"
  67. style="overflow: auto"
  68. ></iframe>
  69. </el-main>
  70. </el-container>
  71. </template>
  72. <script>
  73. import request from '@util/gw_ajax_request.js'
  74. import {getTrees} from '@util/gw_formatTree.js'
  75. import {dateFormat} from '@util/gw_date.js'
  76. export default {
  77. props:[],
  78. data() {
  79. return {
  80. treeHeight: window.innerHeight - 110,
  81. tableHeight: window.innerHeight - 180,
  82. activeName: "ZYHBDC",
  83. showReport: false,
  84. tabList: [{ label: "附表五 中央环保督察问题核查汇总表", value: "ZYHBDC" }],
  85. addForm: {
  86. year: "",
  87. batch: "",
  88. persId: localStorage.getItem("userid")
  89. },
  90. yearList: [],
  91. pcList: [],
  92. tableSrc:
  93. "/demo/reportJsp/showReport.jsp?rpx=ZYHBDC",
  94. pcid: "",
  95. year: "",
  96. treeData: [],
  97. defaultProps: {
  98. children: "children",
  99. label: "pnm"
  100. },
  101. id: "",
  102. name: "",
  103. orgType: "20"
  104. };
  105. },
  106. //监听属性 类似于data概念
  107. computed: {
  108. persId() {
  109. return localStorage.getItem("userid")
  110. ? localStorage.getItem("userid")
  111. : "1098101939614724096";
  112. },
  113. showLastTab() {
  114. return this.activeName == "STBCWTQD" && !this.id;
  115. }
  116. },
  117. components: {},
  118. mounted() {
  119. this.$nextTick(() => {
  120. this.getTreeData();
  121. });
  122. },
  123. methods: {
  124. search() {
  125. let iframe = document.getElementById("iframeEle");
  126. let src = this.tableSrc;
  127. iframe.src =
  128. src +
  129. "&width=1920&height=592" +
  130. "&pcid=" +
  131. this.addForm.batch +
  132. "&year=" +
  133. this.addForm.year;
  134. },
  135. //获取左侧树数据
  136. getTreeData() {
  137. let _self = this;
  138. request
  139. .get(`/dc/organization/base/getAllNode`,{params:{'userId':_self.persId,'orgType':_self.orgType}})
  140. .then(res => {
  141. _self.showReport = true;
  142. let data = res.data
  143. data.forEach(ele => {
  144. if(ele.sttm==null || ele.sttm == ''){
  145. ele.sttm = ''
  146. }else{
  147. ele.sttm = dateFormat(ele.sttm,'yy-MM-dd');
  148. }if(ele.entm==null || ele.entm == ''){
  149. ele.entm = ''
  150. }else{
  151. ele.entm = dateFormat(ele.entm,'yy-MM-dd');
  152. }
  153. });
  154. data = getTrees(data)
  155. // 组员权限,父节点点击无效
  156. if(data.length == 1){
  157. var children = data[0].children;
  158. if(children && children.length == 1){
  159. data[0].isNotClick = true;
  160. _self.id = children[0].id;
  161. }
  162. }
  163. // 隐藏上级节点
  164. // if(data && data.length == 1){
  165. // data = data[0].children;
  166. // if(data && data.length > 0){
  167. // _self.id = data[0].id;
  168. // }
  169. // }
  170. _self.treeData = data;
  171. setTimeout(() => {
  172. this.$refs.tree2.filter("初始化");
  173. }, 1000);
  174. });
  175. },
  176. //树节点点击事件
  177. treeNodeClickHandler(data, node, tree) {
  178. if(!data.isNotClick){
  179. this.id = data.id;
  180. this.name = data.pnm;
  181. }
  182. },
  183. filterNode(value, data, node) {
  184. if (!value) return true;
  185. if (this.activeName == "STBCWTQD") {
  186. return node.level < 5;
  187. } else {
  188. return node.level < 4;
  189. }
  190. },
  191. changeYear() {},
  192. handleClick() {}
  193. },
  194. watch: {
  195. activeName(val) {
  196. if (val == "ZYHBDC") {
  197. this.tableSrc =
  198. "/demo/reportJsp/showReport.jsp?rpx=ZYHBDC";
  199. } else if (val == "STBCWTQD") {
  200. }
  201. this.$refs.tree2.filter(val);
  202. }
  203. }
  204. };
  205. </script>
  206. <style lang="scss">
  207. .report_tree {
  208. margin-top: 20px;
  209. }
  210. </style>