zxl
2026-03-25 d29d77e91951e30abba6596359b138bc4c6ac108
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<template>
  <a-modal :width="modalWidth" :visible="visible" title="部门搜索" @ok="handleSubmit" @cancel="handleCancel">
    <div class="tree-from">
      <!--部门树-->
      <a-form :form="form">
        <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="上级部门">
          <a-tree
            :selected-keys="selectedKeys"
            :expandedKeys="expandedKeysss"
            @expand="onExpand"
            @select="onSelect"
            :dropdownStyle="{ maxHeight: '200px', overflow: 'auto' }"
            :treeData="departTree"
            placeholder="请选择上级部门"
          >
          </a-tree>
        </a-form-item>
      </a-form>
    </div>
  </a-modal>
</template>
 
<script>
import { getAction } from '@tievd/cube-block/lib/api/manage'
import userModal from './UserModal'
export default {
  name: 'DepartWindow',
  components: {
    userModal,
  },
  data() {
    return {
      selectedKeys: [],
      expandedKeysss: [], //展开的节点
      departObj: [], // 存储部门信息
      modalWidth: 400,
      departTree: [],
      visible: false,
      labelCol: {
        xs: { span: 24 },
        sm: { span: 5 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 16 },
      },
      form: {},
    }
  },
  methods: {
    add(data) {
      console.log(data)
      this.selectedKeys = [data.selecteddeparts]
      this.queryDepartTree()
      this.visible = true
    },
    close() {
      this.$emit('close')
      this.visible = false
      this.departObj = {}
    },
    handleSubmit() {
      this.$emit('ok', this.departObj)
      this.close()
    },
    handleCancel() {
      this.close()
    },
    // 选择部门时作用的API
    queryDepartTree() {
      getAction('/sys/depart/queryTreeList').then((res) => {
        if (res.success) {
          this.departTree = res.result
          let treekey = []
          let arr = res.result
          if (arr && arr.length > 0) {
            arr.forEach((item) => {
              treekey.push(item.key)
              if (item.children && item.children.length > 0) {
                item.children.forEach((item1) => {
                  treekey.push(item1.key)
                })
              }
            })
            this.expandedKeysss = treekey
          }
        }
      })
    },
    onExpand(expandedKeys) {
      console.log(expandedKeys)
      this.expandedKeysss = expandedKeys
    },
    onSelect(id, e) {
      console.log(e.node.dataRef)
      const { key } = e.node.dataRef
      this.selectedKeys = [key]
      this.departObj = []
      let de = e.node.dataRef
      this.departObj = {
        title: de.title,
        id: de.id,
        orgCode: de.orgCode,
      }
      console.log(this.departObj)
    },
  },
}
</script>
 
<style lang="less" scoped>
.tree-from {
  min-height: 200px;
}
</style>