| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- 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
- };
- }
- }
|