You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
937 B
36 lines
937 B
|
3 months ago
|
import { defineStore } from 'pinia'
|
||
|
|
import { ref} from 'vue';
|
||
|
|
import request from "@/utils/request";
|
||
|
|
|
||
|
|
export const useOrgMemberStore = defineStore('orgMember', () => {
|
||
|
|
interface OrgMemberItem {
|
||
|
|
id: string;
|
||
|
|
label: string;
|
||
|
|
children?:OrgMemberItem[];
|
||
|
|
}
|
||
|
|
|
||
|
|
const listMap = ref<Record<string, string>>({})
|
||
|
|
const dataTree = ref<OrgMemberItem>({ id: '', label: '', children: [] })
|
||
|
|
|
||
|
|
async function init() {
|
||
|
|
await request({
|
||
|
|
url: "/javasys/lowCode/transfer/getOrgAndManTree",
|
||
|
|
method: "post",
|
||
|
|
}).then((response) => {
|
||
|
|
// assuming response.data is an array of OrgMemberItem
|
||
|
|
dataTree.value=response.data
|
||
|
|
handleChildren(response.data.children)
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
function handleChildren(childs:any[]){
|
||
|
|
childs.forEach(item => {
|
||
|
|
listMap.value[item.id] = item.label;
|
||
|
|
if(item.children){
|
||
|
|
handleChildren(item.children)
|
||
|
|
}
|
||
|
|
});
|
||
|
|
}
|
||
|
|
init()
|
||
|
|
return { listMap,dataTree }
|
||
|
|
})
|