fix: map factory API response to expected shape for plan pages
The /purchaser/factories endpoint returns CompanyRelationship objects (factory_company_id, factory_name, factory_type) but the UI expected Company objects (id, name). Now maps and filters by factory_type: - NewPlan: shows only textile factories - NewWashingPlan: shows only washing factories Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
c8b42edaa7
commit
f99322df5f
@ -116,7 +116,13 @@ export function NewPlan() {
|
|||||||
const fetchFactories = async () => {
|
const fetchFactories = async () => {
|
||||||
if (!auth.company) return;
|
if (!auth.company) return;
|
||||||
const data = await purchaserApi.listFactories();
|
const data = await purchaserApi.listFactories();
|
||||||
setFactories(data || []);
|
const textileFactories = (data || [])
|
||||||
|
.filter((r: any) => r.factory_type === 'textile')
|
||||||
|
.map((r: any) => ({
|
||||||
|
id: r.factory_company_id,
|
||||||
|
name: r.factory_name || r.factory_company_id,
|
||||||
|
})) as Company[];
|
||||||
|
setFactories(textileFactories);
|
||||||
};
|
};
|
||||||
|
|
||||||
// 根据搜索词筛选产品
|
// 根据搜索词筛选产品
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import React, { useState, useEffect, useCallback, useMemo } from 'react';
|
import React, { useState, useEffect, useCallback, useMemo } from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { useAuth } from '../../contexts/AuthContext';
|
import { useAuth } from '../../contexts/AuthContext';
|
||||||
import { purchaserApi, http } from '../../api';
|
import { purchaserApi } from '../../api';
|
||||||
import { motion } from 'framer-motion';
|
import { motion } from 'framer-motion';
|
||||||
import { ArrowLeft, Plus, Droplets, Calculator, AlertCircle } from 'lucide-react';
|
import { ArrowLeft, Plus, Droplets, Calculator, AlertCircle } from 'lucide-react';
|
||||||
import { useResponsive } from '../../hooks/useResponsive';
|
import { useResponsive } from '../../hooks/useResponsive';
|
||||||
@ -60,8 +60,14 @@ export function NewWashingPlan() {
|
|||||||
// 获取水洗厂列表
|
// 获取水洗厂列表
|
||||||
const fetchWashingFactories = useCallback(async () => {
|
const fetchWashingFactories = useCallback(async () => {
|
||||||
try {
|
try {
|
||||||
const res = await http.get<Company[]>('/purchaser/factories', { role: 'washing' });
|
const res = await purchaserApi.listFactories();
|
||||||
setWashingFactories(res.data || []);
|
const factories = (res || [])
|
||||||
|
.filter((r: any) => r.factory_type === 'washing')
|
||||||
|
.map((r: any) => ({
|
||||||
|
id: r.factory_company_id,
|
||||||
|
name: r.factory_name || r.factory_company_id,
|
||||||
|
})) as Company[];
|
||||||
|
setWashingFactories(factories);
|
||||||
} catch {
|
} catch {
|
||||||
setWashingFactories([]);
|
setWashingFactories([]);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user