| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <template>
- <div class="head-container">
- <el-input v-model="deptName" class="mb-20px" clearable placeholder="请输入岗位名称">
- <template #prefix>
- <Icon icon="ep:search" />
- </template>
- </el-input>
- </div>
- <div class="head-container">
- <!-- :props="defaultProps"-->
- <el-tree
- ref="treeRef"
- :data="deptList"
- :expand-on-click-node="false"
- :filter-node-method="filterNode"
- :props="{ label: 'workstationName', value: 'id', children: 'children' }"
- default-expand-all
- highlight-current
- node-key="id"
- @node-click="handleNodeClick"
- />
- </div>
- </template>
- <script lang="ts" setup>
- import { ElTree } from 'element-plus'
- // import * as DeptApi from '@/api/system/dept'
- import * as MarsDeptApi from '@/api/system/marsdept'
- import { defaultProps, handleTree } from '@/utils/tree'
- defineOptions({ name: 'SystemUserDeptTree' })
- const deptName = ref('')
- const deptList = ref<Tree[]>([]) // 树形结构
- const treeRef = ref<InstanceType<typeof ElTree>>()
- /** 获得部门树 */
- const getTree = async () => {
- // const res = await DeptApi.getSimpleDeptList()
- const res=await MarsDeptApi.listMarsDept({pageNo: 1, pageSize: -1})
- console.log(res,'mars岗位')
- deptList.value = []
- // deptList.value.push(...handleTree(res.list))
- deptList.value = handleTree(res.list, 'id', 'parentId', 'children')
- }
- /** 基于名字过滤 */
- const filterNode = (name: string, data: Tree) => {
- if (!name) return true
- return data.name.includes(name)
- }
- /** 处理部门被点击 */
- const handleNodeClick = async (row: { [key: string]: any }) => {
- emits('node-click', row)
- }
- const emits = defineEmits(['node-click'])
- /** 监听deptName */
- watch(deptName, (val) => {
- treeRef.value!.filter(val)
- })
- /** 初始化 */
- onMounted(async () => {
- await getTree()
- })
- </script>
|