<template>
    <a-select ref="select" v-model:value="model" style="width: 100%" @change="handleChange" :defaultOpen="defaultOpen">
        <a-select-option v-for="value in stationList" :key="value.id" :value="value.id">
            {{ value.name }}
        </a-select-option>
    </a-select>
</template>

<script setup>
import { ref,defineModel  } from 'vue'
import apis from '@/apis'

// 使用 defineModel 简化双向绑定
// 它会自动生成 { currentOrg: String, onUpdateCurrentOrg: Function }
// 并返回一个可读写的 ref
const model = defineModel('currentOrg', { type: String, default: '' })

// 接收其他不需要双向绑定的 prop
const props = defineProps({
    defaultOpen: {
        type: Boolean,
        default: false
    }
})

const emit = defineEmits(['change']) // 保留 change 事件

// 获取数据
const stationList = ref([])
getData()
async function getData() {
    try {
        const { data, success } = await apis.serviceMenu.getServiceSiteList({
            pageSize: 100,
            current: 1
        })
        if (success) {
            stationList.value = data.map(item => ({ id: item.id, name: item.name }))
        }
    } catch (error) {
        console.error('获取服务站点列表失败:', error)
    }
}

// 处理 change 事件
function handleChange(e) {
    // model.value 会自动同步（不需要手动赋值）
    emit('change', e)
}
</script>