Files
shanxia2.0/web-admin/src/components/UserSelector/index.vue
T
2026-06-01 08:21:21 +08:00

41 lines
849 B
Vue

<template>
<el-select
:modelValue="modelValue"
@update:modelValue="$emit('update:modelValue', $event)"
:placeholder="placeholder"
filterable
clearable
@change="$emit('change', $event)"
>
<el-option
v-for="user in userList"
:key="user.value"
:label="user.label"
:value="user.value"
/>
</el-select>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import { fetchUserOptions } from '@/api/admin'
defineProps<{
modelValue?: string | number
placeholder?: string
}>()
defineEmits(['update:modelValue', 'change'])
const userList = ref<Array<{ label: string; value: string }>>([])
onMounted(async () => {
try {
const res = await fetchUserOptions()
userList.value = (res as any)?.data || res || []
} catch (e) {
console.error(e)
}
})
</script>