usePersonTargetOptions.ts 620 B

12345678910111213141516171819202122232425
  1. import { onMounted, ref } from 'vue';
  2. import { getPersonOptions } from '../api/personApi';
  3. export function usePersonTargetOptions(withAll = true) {
  4. const targetOptions = ref<Array<{ label: string; value: string }>>(
  5. withAll ? [{ label: '全部', value: 'all' }] : [],
  6. );
  7. const loadTargetOptions = async () => {
  8. try {
  9. targetOptions.value = await getPersonOptions(withAll);
  10. } catch (error) {
  11. targetOptions.value = withAll ? [{ label: '全部', value: 'all' }] : [];
  12. }
  13. };
  14. onMounted(() => {
  15. loadTargetOptions();
  16. });
  17. return {
  18. targetOptions,
  19. loadTargetOptions,
  20. };
  21. }