| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- /**
- * description:
- * 获取公司-车间-工位(树结构)信息,适用于添加相机(三种方式)- 所属工位下拉框选项
- */
- import { ref } from 'vue';
- import { getTreeWorkspaceInfo } from '@/api/camera/camera-overview';
- interface TreeWorkspaceInfoType {
- id: number; // 自增主键
- name: string; // 公司名称
- code?: string; // 公司编号
- nodeType: string; // 节点类型
- workshopId?: number; // nodeType=workspace时携带车间Id
- principalName?: string; // nodeType=workspace时携带负责人name
- children?: TreeWorkspaceInfoType[];
- }
- interface ElTreeItem {
- value: any;
- label: string;
- children?: ElTreeItem[];
- disabled?: boolean;
- workshopId?: number;
- principalName?: string;
- }
- export function useTreeWorkspaceInfo() {
- const workspaceInfo = ref<ElTreeItem[]>([]);
- const setTreeWorkspaceInfo = (infos: TreeWorkspaceInfoType[]): ElTreeItem[] => {
- return infos.map((item) => {
- return {
- value: item.id,
- label: item.name,
- workshopId: item.workshopId,
- principalName: item.principalName,
- disabled: item.nodeType === 'workspace' ? false : true,
- children:
- item.children && item.children.length > 0 ? setTreeWorkspaceInfo(item.children) : [],
- };
- });
- };
- const getWorkspaceFromTreeInfo = async () => {
- await getTreeWorkspaceInfo().then((res) => {
- workspaceInfo.value = setTreeWorkspaceInfo(res);
- });
- };
- return {
- workspaceInfo,
- getWorkspaceFromTreeInfo,
- };
- }
- export default useTreeWorkspaceInfo;
|