userTree.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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. >
  17. <template slot="custom" slot-scope="item">
  18. <span>{{ item }}</span>
  19. <!-- <span style="color: #f50">({{ item.num }})</span> -->
  20. </template>
  21. </a-tree>
  22. </div>
  23. </template>
  24. <script>
  25. // import mixin from "../../minins/mixin";
  26. import { mapState } from "vuex";
  27. export default {
  28. name: "FormRow",
  29. // mixins: [mixin],
  30. props: {
  31. checkable: {
  32. default: false,
  33. },
  34. // defaultCheckList: {
  35. // default: [],
  36. // },
  37. },
  38. data() {
  39. return {
  40. treeData: [],
  41. replaceFields: {
  42. children: "children",
  43. title: "name",
  44. key: "id",
  45. },
  46. checkList: [],
  47. autoExpandParent: true,
  48. expandedKeys: [],
  49. };
  50. },
  51. computed: {
  52. ...mapState("setting", ["userInfo"]),
  53. },
  54. watch: {},
  55. created() {},
  56. mounted() {
  57. this.getUserTree();
  58. },
  59. methods: {
  60. onExpand(expandedKeys) {
  61. this.expandedKeys = expandedKeys;
  62. //expandedKeys
  63. this.autoExpandParent = true;
  64. },
  65. setExpandKys(item) {
  66. this.$nextTick(() => {
  67. // this.$refs.tree.expandedKeys = ["99D17"];
  68. // this.$refs.tree.defaultExpandedKeys = ["99D17"];
  69. // console.log(this.$refs.tree);
  70. // this.expandedKeys = ["99D17"];
  71. // this.checkList = ["99D17"];
  72. this.$API.sysManage
  73. .getUserItem({
  74. userId: item.userId,
  75. })
  76. .then((res) => {
  77. if (res.data.code === 200) {
  78. this.expandedKeys = res.data.data.deptIds;
  79. this.checkList = res.data.data.deptIds;
  80. }
  81. });
  82. });
  83. },
  84. getUserTree() {
  85. // console.log(this.userInfo);
  86. this.$API.business.getUserTree({}).then((res) => {
  87. if (res.data.code === 200) {
  88. this.treeData = res.data.data;
  89. }
  90. });
  91. },
  92. onSelect(keys) {
  93. this.$emit("getList", keys[0]);
  94. },
  95. onCheck(checkedKeys) {
  96. this.$emit("checkTree", checkedKeys);
  97. // this.checkedKeys = checkedKeys;
  98. },
  99. },
  100. };
  101. </script>
  102. <style lang="less" scoped>
  103. .tree {
  104. height: 100%;
  105. // overflow-y: auto;
  106. }
  107. </style>