dept.tsx 1015 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { TreeData } from "element-plus/es/components/tree/src/tree.type";
  2. import { ClViewGroup, useViewGroup } from "/$/base";
  3. import { service } from "/@/cool";
  4. import Node from "element-plus/es/components/tree/src/model/node";
  5. import ClAvatar from "../components/avatar/index";
  6. export function useDeptViewGroup(options: DeepPartial<ClViewGroup.Options>) {
  7. const { ViewGroup } = useViewGroup({
  8. ...options,
  9. service: service.base.sys.department,
  10. enableAdd: false,
  11. label: "员工列表",
  12. tree: {
  13. lazy: true,
  14. onLoad(node: Node, resolve: (data: TreeData) => void) {
  15. if (node.data.id) {
  16. service.base.sys.user.list({ departmentId: node.data.id }).then((res) => {
  17. res.forEach((e) => {
  18. e.isLeaf = true;
  19. e.icon = (
  20. <ClAvatar
  21. size={22}
  22. src={e.headImg}
  23. style={{ marginRight: "6px" }}
  24. />
  25. );
  26. });
  27. res.unshift(...(node.data.children || []));
  28. resolve(res);
  29. });
  30. }
  31. }
  32. }
  33. });
  34. return {
  35. ViewGroup
  36. };
  37. }