agentTree.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <template>
  2. <div class="tree">
  3. <a-tree
  4. v-if="treeData && treeData.length > 0"
  5. :tree-data="treeData"
  6. :title="'11'"
  7. :replaceFields="replaceFields"
  8. @select="onSelect"
  9. :checkable="checkable"
  10. @check="onCheck"
  11. v-model="checkList"
  12. :auto-expand-parent="autoExpandParent"
  13. :expanded-keys="expandedKeys"
  14. @expand="onExpand"
  15. ref="tree"
  16. :load-data="onLoadData"
  17. >
  18. <template slot="custom" slot-scope="item">
  19. <span>{{ item }}</span>
  20. <!-- <span style="color: #f50">({{ item.num }})</span> -->
  21. </template>
  22. </a-tree>
  23. </div>
  24. </template>
  25. <script>
  26. // import mixin from "../../minins/mixin";
  27. import { mapState } from "vuex";
  28. export default {
  29. name: "FormRow",
  30. // mixins: [mixin],
  31. props: {
  32. checkable: {
  33. default: false,
  34. },
  35. // defaultCheckList: {
  36. // default: [],
  37. // },
  38. },
  39. data() {
  40. return {
  41. treeData: [],
  42. replaceFields: {
  43. children: "children",
  44. title: "name",
  45. key: "id",
  46. },
  47. checkList: [],
  48. autoExpandParent: true,
  49. expandedKeys: [],
  50. };
  51. },
  52. computed: {
  53. ...mapState("setting", ["userInfo"]),
  54. },
  55. watch: {},
  56. created() {},
  57. mounted() {
  58. this.getUserTree();
  59. },
  60. methods: {
  61. onExpand(expandedKeys) {
  62. this.expandedKeys = expandedKeys;
  63. //expandedKeys
  64. this.autoExpandParent = true;
  65. },
  66. setExpandKys(item) {
  67. this.$nextTick(() => {
  68. // this.$refs.tree.expandedKeys = ["99D17"];
  69. // this.$refs.tree.defaultExpandedKeys = ["99D17"];
  70. // console.log(this.$refs.tree);
  71. // this.expandedKeys = ["99D17"];
  72. // this.checkList = ["99D17"];
  73. this.$API.sysManage
  74. .getUserItem({
  75. userId: item.userId,
  76. })
  77. .then((res) => {
  78. if (res.data.code === 200) {
  79. this.expandedKeys = res.data.data.deptIds;
  80. this.checkList = res.data.data.deptIds;
  81. }
  82. });
  83. });
  84. },
  85. getUserTree() {
  86. // console.log(this.userInfo);
  87. this.$API.business.findNextAgentTree({}).then((res) => {
  88. if (res.data.code === 200) {
  89. this.treeData = res.data.data;
  90. }
  91. });
  92. },
  93. onLoadData(treeNode) {
  94. return new Promise((resolve) => {
  95. if (treeNode.dataRef.children) {
  96. resolve();
  97. return;
  98. }
  99. this.$API.business
  100. .findNextAgentTree({ pid: treeNode.eventKey })
  101. .then((res) => {
  102. if (res.data.code === 200) {
  103. treeNode.dataRef.children = [...res.data.data];
  104. // this.treeData = [];
  105. this.treeData = [...this.treeData];
  106. resolve();
  107. }
  108. });
  109. });
  110. },
  111. onSelect(keys) {
  112. this.$emit("getList", keys[0]);
  113. },
  114. onCheck(checkedKeys) {
  115. this.$emit("checkTree", checkedKeys);
  116. // this.checkedKeys = checkedKeys;
  117. },
  118. },
  119. };
  120. </script>
  121. <style lang="less" scoped>
  122. .tree {
  123. height: 900px;
  124. overflow-y: auto;
  125. }
  126. </style>