bae3e4cc612335328c480d4cc8541fa92fedfd3a.svn-base 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <template>
  2. <div>
  3. <div class="left_tree_title">年度:
  4. <el-select v-model="year" placeholder="请选择">
  5. <el-option
  6. v-for="item in yearList"
  7. :key="item.id"
  8. :label="item.year"
  9. :value="item.year">
  10. </el-option>
  11. </el-select>
  12. </div>
  13. <el-tree
  14. class="el-treeWhite"
  15. :data="treeData"
  16. :props="treeProps"
  17. :expand-on-click-node="false"
  18. @node-click="nodeClick"
  19. node-key="id"
  20. :default-expanded-keys="tableDefaultExpandedKeys"
  21. style="max-height:100%;overflow:auto;"
  22. ></el-tree>
  23. </div>
  24. </template>
  25. <script>
  26. import {getNodeByPidAndCode} from "../../api/duChaAPI.js";
  27. import request from '../../utils/gw_ajax_request.js';
  28. import {dateFormat} from "../../utils/gw_date";
  29. import globalVariable from "@api/globalVariable.js";
  30. import {getYearList} from '@api/jcOneMapApi'
  31. export default {
  32. components: {},
  33. props: ['pid', 'type', 'pidNodes'],
  34. data() {
  35. return {
  36. treeData: [],
  37. code: '45',
  38. tableDefaultExpandedKeys: ['001', '002', '003', '006'],
  39. treeProps: {
  40. label: "pnm",
  41. children: "children",
  42. disabled: false,
  43. expandOnClickNode: false,
  44. first: true,
  45. },
  46. checkedData: [],
  47. changedData: [],
  48. yearList: [],
  49. year: ''
  50. };
  51. },
  52. mounted: function () {
  53. this.getYearlists();
  54. // this.getLeftTreeData();
  55. },
  56. computed: {
  57. userId: function () {
  58. return localStorage.getItem("userid")
  59. ? localStorage.getItem("userid")
  60. : "1098101939614724096";
  61. }
  62. },
  63. methods: {
  64. getYearlists() {
  65. getYearList().then(res => {
  66. console.log(res.data)
  67. this.yearList = res.data;
  68. let lastItemIndex = this.yearList.length - 1
  69. this.year = this.yearList[lastItemIndex].year
  70. console.log(this.year)
  71. })
  72. },
  73. // 节点点击事件
  74. nodeClick: function (data) {
  75. // alert(data.id);
  76. this.$emit("provTreeSelectChange", {'id': data.id});
  77. },
  78. //根据用户id获取左侧树
  79. getLeftTreeData() {
  80. var _self = this;
  81. request.get('/dc/gd/base/getLyNode', {
  82. params: {
  83. 'userId': this.userId,
  84. 'orgType': this.type,
  85. 'year': this.year
  86. }
  87. }).then((res) => {
  88. let data = res.data
  89. console.log(data)
  90. data.forEach(ele => {
  91. if (ele.pid == null || ele.pid == '') {
  92. ele.pid = '001'
  93. }
  94. if (ele.sttm == null || ele.sttm == '') {
  95. ele.sttm = ''
  96. } else {
  97. ele.sttm = dateFormat(ele.sttm, 'yy-MM-dd');
  98. }
  99. if (ele.entm == null || ele.entm == '') {
  100. ele.entm = ''
  101. } else {
  102. ele.entm = dateFormat(ele.entm, 'yy-MM-dd');
  103. }
  104. });
  105. if (data != null && data.length > 0) {
  106. data = _self.getTrees(data, data[0].pid)
  107. _self.treeData = data;
  108. }
  109. // 获取第一个节点给子页面带过去
  110. this.getFirstNode(data);
  111. })
  112. },
  113. //格式化树形数据
  114. getTrees(list, pId) {
  115. let items = {};
  116. // 获取每个节点的直属子节点,*记住是直属,不是所有子节点
  117. for (let i = 0; i < list.length; i++) {
  118. let key = list[i].parentId ? list[i].parentId : list[i].pid;
  119. if (items[key]) {
  120. items[key].push(list[i]);
  121. } else {
  122. items[key] = [];
  123. items[key].push(list[i]);
  124. }
  125. }
  126. return this.formatTree(items, pId);
  127. },
  128. /**利用递归格式化每个节点**/
  129. formatTree(items, pId) {
  130. let result = [];
  131. if (!items[pId]) {
  132. return result;
  133. }
  134. for (let t of items[pId]) {
  135. t.children = this.formatTree(items, t.id)
  136. result.push(t);
  137. }
  138. return result;
  139. },
  140. getFirstNode(data) {
  141. let node = '';
  142. try {
  143. if (data != null && data != '') {
  144. if (data[0].id.length == 6) {
  145. node = data[0].id;
  146. } else if (data[0].id.length == 3) {
  147. node = data[0].children[0].id;
  148. }
  149. }
  150. } catch (e) {
  151. }
  152. globalVariable.setFirstNode(node);
  153. },
  154. },
  155. watch: {
  156. year(val) {
  157. if (val) {
  158. this.getLeftTreeData();
  159. this.$emit('changeYear', val);
  160. }
  161. }
  162. }
  163. };
  164. </script>
  165. <style scoped>
  166. </style>