import { ref, computed, onMounted } from 'vue'; import { listTenant } from '../../api/tenant'; export default { setup() { const searchQuery = ref(''); const companyData = ref([]); const filteredList = computed(() => { if (!searchQuery.value) return companyData.value; return companyData.value.filter(item => item.name.includes(searchQuery.value)); }); onMounted(async () => { try { uni.showLoading({ title: '加载公司列表...' }); const res = await listTenant({ pageNum: 1, pageSize: 500 }); if (res.code === 200) { const tenants = res.rows || res.data || []; const mapped = tenants .filter(t => String(t.tenantId) !== '000000') .map(t => ({ name: t.companyName, selected: false })); companyData.value = mapped; const selectedStr = uni.getStorageSync('selected_companies'); if (selectedStr) { const selectedList = JSON.parse(selectedStr); companyData.value.forEach(company => { if (selectedList.includes(company.name)) { company.selected = true; } }); } } } catch (e) { console.error(e); } finally { uni.hideLoading(); } }); const toggleSelect = (item) => { item.selected = !item.selected; }; const confirmSelection = () => { const selected = companyData.value.filter(v => v.selected).map(v => ({ name: v.name })); uni.$emit('submit_companies', selected); uni.navigateBack(); }; return { searchQuery, filteredList, toggleSelect, confirmSelection }; } }