import { defineStore } from 'pinia'; import { ref, onMounted,nextTick } from 'vue'; import { wbsbGetKendoList } from '@/api/select'; export const useJidiSelectEventStore = defineStore('jidiSelectEvent', () => { const jidiData: any = ref([ { wbsCode: 'all', wbsName: '当前全部', selected: true } ]); const loading = ref(false); const selectedItem = ref(jidiData.value[0]); const updataJidiData = (index: any) => { if(jidiData.value.length == 1){ return } selectedItem.value = jidiData.value[index]; jidiData.value.forEach((item: any) => { item.selected = false; }); jidiData.value[index].selected = true; }; const getJidiData = async () => { loading.value = true; let params = { filter: { logic: 'and', filters: [ { field: 'wbsType', operator: 'eq', dataType: 'string', value: 'PSB' }, { field: 'treeLevel', operator: 'eq', dataType: 'string', value: '1' } ] }, sort: [ { field: 'orderIndex', dir: 'asc' } ], select: ['wbsCode', 'wbsName'] }; const res = await wbsbGetKendoList(params); let data = res?.data?.data || [ { wbsCode: 'all', wbsName: '当前全部', selected: true } ]; jidiData.value = data.map((item: any) => { return { ...item, selected: item.wbsCode == 'all' ? true : false }; }); loading.value = false; }; onMounted(() => { getJidiData(); }); return { jidiData, selectedItem, updataJidiData, loading }; });