d00628049a07179a8f20d0852a62fc066e5cbff7.svn-base 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <template>
  2. <el-tree
  3. class="el-treeWhite"
  4. :data="treeData"
  5. show-checkbox
  6. @check="currentChecked"
  7. :props="treeProps"
  8. :expand-on-click-node="false"
  9. node-key="id"
  10. :default-checked-keys="defaultCheckeds"
  11. :default-expanded-keys="tableDefaultExpandedKeys"
  12. style="height: 400px;overflow:auto;padding-left:30px;"
  13. >
  14. <div class="custom-tree-node" slot-scope="{ node, data }">
  15. <span style="float:left:">{{ data.pnm}}
  16. </span>
  17. <div style="float:right;display: flex;align-items: center;width:50%;">
  18. <span style="color:blue;margin-right:20%;" v-show="data.sttm!=''&&data.entm!=''">{{data.sttm}}/{{data.entm}}
  19. </span>
  20. </div>
  21. </div>
  22. </el-tree>
  23. </template>
  24. <script>
  25. import request from '../utils/gw_ajax_request.js';
  26. import {dateFormat} from "../utils/gw_date";
  27. export default {
  28. components: {},
  29. props: [],
  30. data() {
  31. return {
  32. type:'001',
  33. treeData: [],
  34. tableDefaultExpandedKeys: ['001','002','003'],
  35. treeProps: {
  36. label: "pnm",
  37. children: "children",
  38. disabled: false,
  39. expandOnClickNode: false,
  40. first: true,
  41. },
  42. checkedData: [],
  43. changedData: [],
  44. defaultCheckeds:[],
  45. };
  46. },
  47. mounted: function () {
  48. this.defaultCheckeds = [];
  49. this.getLeftTreeData();
  50. },
  51. computed: {
  52. userId: function () {
  53. return localStorage.getItem("userid")
  54. ? localStorage.getItem("userid")
  55. : "1098101939614724096";
  56. }
  57. },
  58. activated:function(){
  59. this.defaultCheckeds = [];
  60. },
  61. methods: {
  62. currentChecked(data, currentChecked) {
  63. const { checkedNodes, halfCheckedNodes } = currentChecked;
  64. this.$emit('currentCheckedNodes',checkedNodes);
  65. },
  66. //根据用户id获取左侧树
  67. getLeftTreeData(){
  68. var _self = this;
  69. request.get('/dc/organization/base/getAllNode',{params:{'userId':this.userId,'orgType':this.type}}).then((res)=>{
  70. let data = res.data
  71. data.forEach(ele => {
  72. if(ele.pid == null || ele.pid == ''){
  73. ele.pid = '001'
  74. }if(ele.sttm==null || ele.sttm == ''){
  75. ele.sttm = ''
  76. }else{
  77. ele.sttm = dateFormat(ele.sttm,'yy-MM-dd');
  78. }if(ele.entm==null || ele.entm == ''){
  79. ele.entm = ''
  80. }else{
  81. ele.entm = dateFormat(ele.entm,'yy-MM-dd');
  82. }
  83. });
  84. data = _self.getTrees(data, data[0].pid)
  85. _self.treeData = data;
  86. })
  87. },
  88. //格式化树形数据
  89. getTrees(list, pId) {
  90. let items = {};
  91. // 获取每个节点的直属子节点,*记住是直属,不是所有子节点
  92. for(let i = 0; i < list.length; i++) {
  93. let key = list[i].parentId ? list[i].parentId : list[i].pid;
  94. if(items[key]) {
  95. items[key].push(list[i]);
  96. } else {
  97. items[key] = [];
  98. items[key].push(list[i]);
  99. }
  100. }
  101. return this.formatTree(items, pId);
  102. },
  103. /**利用递归格式化每个节点**/
  104. formatTree(items, pId) {
  105. let result = [];
  106. if(!items[pId]) {
  107. return result;
  108. }
  109. for(let t of items[pId]) {
  110. t.children = this.formatTree(items, t.id)
  111. result.push(t);
  112. }
  113. return result;
  114. },
  115. }
  116. };
  117. </script>
  118. <style scoped>
  119. .custom-tree-node{
  120. width:100%;
  121. }
  122. </style>