caedbf827887f6692033c33bd7752f8f763e4545.svn-base 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <template>
  2. <el-tree
  3. class="el-treeWhite"
  4. :data="treeData"
  5. :props="treeProps"
  6. :expand-on-click-node="false"
  7. @node-click="nodeClick"
  8. node-key="adCode"
  9. :default-expanded-keys="tableDefaultExpandedKeys"
  10. lazy
  11. :load="loadAddvData"
  12. style="max-height:100%;overflow:auto;"
  13. ></el-tree>
  14. </template>
  15. <script>
  16. import { getProvincialOrgList,getAdData} from "../api/duChaAPI.js";
  17. export default {
  18. components: {},
  19. props:['rootCode','rootType'],
  20. data() {
  21. return {
  22. treeData: [],
  23. tableDefaultExpandedKeys: [],
  24. treeProps: {
  25. label: "adName",
  26. children: "children",
  27. disabled: false,
  28. expandOnClickNode: false ,
  29. first:true,
  30. },
  31. rootAdCode:'000000000000'
  32. };
  33. },
  34. mounted: function() {
  35. // this.loadTreeListData();
  36. this.getAdDataList();
  37. },
  38. methods: {
  39. getAdDataList(){
  40. var _self = this;
  41. _self.treeData = [];
  42. getAdData(_self.rootAdCode).then((res)=>{
  43. if(res.data){
  44. _self.treeData = res.data;
  45. // 默认加载第一个节点的数据
  46. if(_self.treeData.length){
  47. _self.nodeClick(_self.treeData[0])
  48. }
  49. }
  50. })
  51. },
  52. loadTreeListData:function(){
  53. if(this.rootCode&&this.rootType&&this.rootType!=''&&this.rootCode!=''){
  54. getProvincialOrgList(this.rootCode,this.rootTyp).then((res) =>{
  55. console.log(res);
  56. var children = [];
  57. res.data.forEach((element,index)=>{
  58. if(element.type==2){
  59. children.push(element);
  60. }
  61. })
  62. console.log(children);
  63. this.treeData = children;
  64. },(err) =>{});
  65. }else{
  66. getProvincialOrgList().then((res) =>{
  67. console.log(res);
  68. var children = [];
  69. res.data.forEach((element,index)=>{
  70. if(element.type==2){
  71. children.push(element);
  72. }
  73. })
  74. console.log(children);
  75. this.treeData = children;
  76. },(err) =>{});
  77. }
  78. },
  79. nodeClick: function(data) {
  80. // alert(data.code+data.name+data.type);
  81. //修改逻辑 如果是行政区划 给两个code 一个完整code 一个likecode 用于like查询 省的就是两位 市县的四位 以此类推
  82. let likeCode = data.adCode;
  83. // if(data.type == 2){ //行政区
  84. likeCode = likeCode.endsWith('0000000000')?likeCode.substr(0,likeCode.length-10):likeCode;
  85. likeCode = likeCode.endsWith('00000000')?likeCode.substr(0,likeCode.length-8):likeCode;
  86. likeCode = likeCode.endsWith('000000')?likeCode.substr(0,likeCode.length-6):likeCode;
  87. likeCode = likeCode.endsWith('000')?likeCode.substr(0,likeCode.length-3):likeCode;
  88. // }
  89. this.$emit("provTreeSelectChange", { 'code':data.adCode, 'name': data.adName,'type':data.type,'likeCode':likeCode,'adFullName':data.adFullName});
  90. },
  91. loadAddvData: function(node, resolve) {
  92. var _self = this;
  93. try {
  94. if(node.data.adCode!=undefined){
  95. getAdData(node.data.adCode).then((res)=>{
  96. if(res.data){
  97. var data = res.data;
  98. resolve(data);
  99. }
  100. })
  101. }
  102. // if(this.first){
  103. // this.first = false;
  104. // }else{
  105. // getProvincialOrgList(node.data.code,node.data.type).then(
  106. // response => {
  107. // var data = response.data;
  108. // var children = [];
  109. // data.forEach((element,index)=>{
  110. // if(element.type==2){
  111. // children.push(element);
  112. // }
  113. // })
  114. // resolve(children);
  115. // },
  116. // response => {}
  117. // );
  118. // }
  119. } catch (e) {
  120. }
  121. },
  122. }
  123. };
  124. </script>
  125. <style scoped>
  126. </style>