1e7a62cd4dd532e883dee9170e6a108e15799251.svn-base 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <template>
  2. <el-tree ref="tree" class="el-treeWhite" :data="treeData" :props="treeProps" show-checkbox
  3. :expand-on-click-node="false" @check-change="handleCheckChange" node-key="id"
  4. :default-expanded-keys="tableDefaultExpandedKeys" :check-strictly="false" style="max-height:100%;overflow:auto;">
  5. </el-tree>
  6. </template>
  7. <script>
  8. import { getProvincialOrgList, getAdData, getAddTree } from "@api/duChaAPI.js";
  9. export default {
  10. components: {},
  11. props: ['rootCode', 'rootType'],
  12. data() {
  13. return {
  14. treeData: [],
  15. tableDefaultExpandedKeys: ['000000000000'],
  16. treeProps: {
  17. label: "nm",
  18. children: "children",
  19. disabled: false,
  20. expandOnClickNode: false,
  21. first: true,
  22. },
  23. rootAdCode: '000000000000'
  24. };
  25. },
  26. computed: {
  27. organCode() {
  28. return localStorage.getItem('currentRlcode') ? localStorage.getItem('currentRlcode') : ''
  29. },
  30. organNm() {
  31. return localStorage.getItem('currentOrgNm') ? localStorage.getItem('currentOrgNm') : ''
  32. },
  33. isNational() {
  34. return this.organCode.indexOf('00') == 0 ? true : false
  35. }
  36. },
  37. mounted: function () {
  38. // this.loadTreeListData();
  39. this.getAdDataList();
  40. },
  41. methods: {
  42. //获取行政区划树结构数据
  43. getAdDataList() {
  44. var _self = this;
  45. try {
  46. getAddTree(_self.organCode, 3).then((res) => {
  47. if (res.data) {
  48. _self.treeData.push(res.data);
  49. }
  50. })
  51. } catch (e) {
  52. }
  53. },
  54. getAdDataList1() {
  55. var _self = this;
  56. getAdData(_self.rootAdCode).then((res) => {
  57. if (res.data) {
  58. // _self.treeData = res.data;
  59. if (this.isNational) {
  60. var obj = [{
  61. adCode: "000000000000",
  62. adFullName: "全国",
  63. adGrad: "1",
  64. adName: "全国",
  65. }];
  66. } else {
  67. var obj = [{
  68. adCode: this.organCode,
  69. adFullName: this.organNm,
  70. adGrad: "1",
  71. adName: this.organNm,
  72. }];
  73. }
  74. _self.treeData = obj;
  75. this.$emit("provTreeSelectChange", obj[0].adCode);
  76. }
  77. })
  78. },
  79. loadTreeListData: function () {
  80. if (this.rootCode && this.rootType && this.rootType != '' && this.rootCode != '') {
  81. getProvincialOrgList(this.rootCode, this.rootTyp).then((res) => {
  82. console.log(res);
  83. var children = [];
  84. res.data.forEach((element, index) => {
  85. if (element.type == 2) {
  86. children.push(element);
  87. }
  88. })
  89. console.log(children);
  90. this.treeData = children;
  91. }, (err) => { });
  92. } else {
  93. getProvincialOrgList().then((res) => {
  94. console.log(res);
  95. var children = [];
  96. res.data.forEach((element, index) => {
  97. if (element.type == 2) {
  98. children.push(element);
  99. }
  100. })
  101. console.log(children);
  102. this.treeData = children;
  103. }, (err) => { });
  104. }
  105. },
  106. handleCheckChange() {
  107. let adCodeStr = '', adCodeArr = []
  108. let data = this.$refs.tree.getCheckedNodes()
  109. if (data.length) {
  110. data.forEach(ele => {
  111. adCodeArr.push(ele.id)
  112. })
  113. adCodeStr = adCodeArr.join(',')
  114. }
  115. console.log(data)
  116. this.$emit("provTreeSelectChange", adCodeStr);
  117. },
  118. loadAddvData: function (node, resolve) {
  119. var _self = this;
  120. var str = node.data.adCode;
  121. if (!str) {
  122. str = '000000000000';
  123. return;
  124. }
  125. if (node.level > 2) return resolve([]);
  126. try {
  127. getAdData(str).then((res) => {
  128. if (res.data) {
  129. var data = res.data;
  130. resolve(data);
  131. }
  132. })
  133. } catch (e) {
  134. }
  135. setTimeout(ele => {
  136. // 懒加载获取到子节点后再获取已选的节点数据
  137. _self.handleCheckChange()
  138. }, 1200)
  139. },
  140. }
  141. };
  142. </script>
  143. <style scoped>
  144. </style>