설치 가능 모듈 추가
This commit is contained in:
parent
3143acce93
commit
502e502110
@ -8,10 +8,12 @@ export default function RoofSelect() {
|
|||||||
const [roofMaterials, setRoofMaterials] = useState([])
|
const [roofMaterials, setRoofMaterials] = useState([])
|
||||||
const [manufacturers, setManufacturers] = useState([])
|
const [manufacturers, setManufacturers] = useState([])
|
||||||
const [trestles, setTrestles] = useState([])
|
const [trestles, setTrestles] = useState([])
|
||||||
|
const [modules, setModules] = useState([])
|
||||||
const [originTrestles, setOriginTrestles] = useState([])
|
const [originTrestles, setOriginTrestles] = useState([])
|
||||||
|
|
||||||
const [roofMaterialId, setRoofMaterialId] = useState(null)
|
const [roofMaterialId, setRoofMaterialId] = useState(null)
|
||||||
const [manufacturerId, setManufacturerId] = useState(null)
|
const [manufacturerId, setManufacturerId] = useState(null)
|
||||||
|
const [trestleId, setTrestleId] = useState(null)
|
||||||
|
|
||||||
const { get } = useAxios()
|
const { get } = useAxios()
|
||||||
|
|
||||||
@ -55,44 +57,73 @@ export default function RoofSelect() {
|
|||||||
setTrestles(trestles)
|
setTrestles(trestles)
|
||||||
}, [manufacturerId])
|
}, [manufacturerId])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!trestleId) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
console.log(roofMaterialId, trestleId)
|
||||||
|
get({ url: `/api/module/v1.0/modules/${roofMaterialId}/${trestleId}` }).then((res) => {
|
||||||
|
if (res.length === 0) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
setModules(res)
|
||||||
|
})
|
||||||
|
}, [trestleId])
|
||||||
|
|
||||||
const handleRoofMaterialOnChange = (e) => {
|
const handleRoofMaterialOnChange = (e) => {
|
||||||
const id = e.target.value
|
const roofMaterialId = e.target.value
|
||||||
setRoofMaterialId(id)
|
setRoofMaterialId(roofMaterialId)
|
||||||
setManufacturers([])
|
setManufacturers([])
|
||||||
setManufacturerId(null)
|
setManufacturerId(null)
|
||||||
|
setTrestleId(null)
|
||||||
setTrestles([])
|
setTrestles([])
|
||||||
|
setModules([])
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleManufacturersOnChange = (e) => {
|
const handleManufacturersOnChange = (e) => {
|
||||||
const id = Number(e.target.value)
|
const manufacturerId = Number(e.target.value)
|
||||||
setTrestles([])
|
setTrestles([])
|
||||||
setManufacturerId(id)
|
setManufacturerId(manufacturerId)
|
||||||
|
setTrestleId(null)
|
||||||
|
setModules([])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleTrestlesOnChange = (e) => {
|
||||||
|
const trestleId = Number(e.target.value)
|
||||||
|
setTrestleId(trestleId)
|
||||||
|
setModules([])
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<div className="flex w-full flex-wrap md:flex-nowrap gap-4">
|
||||||
<div className="flex w-full flex-wrap md:flex-nowrap gap-4">
|
{roofMaterials.length > 0 && (
|
||||||
{roofMaterials.length > 0 && (
|
<Select label="지붕재" className="max-w-xs" onChange={handleRoofMaterialOnChange}>
|
||||||
<Select label="지붕재" className="max-w-xs" onChange={handleRoofMaterialOnChange}>
|
{roofMaterials.map((roofMaterial) => (
|
||||||
{roofMaterials.map((roofMaterial) => (
|
<SelectItem key={roofMaterial.id}>{roofMaterial.name}</SelectItem>
|
||||||
<SelectItem key={roofMaterial.id}>{roofMaterial.name}</SelectItem>
|
))}
|
||||||
))}
|
</Select>
|
||||||
</Select>
|
)}
|
||||||
)}
|
{manufacturers.length > 0 && (
|
||||||
{manufacturers.length > 0 && (
|
<Select label="제조 회사" className="max-w-xs" onChange={handleManufacturersOnChange}>
|
||||||
<Select label="제조 회사" className="max-w-xs" onChange={handleManufacturersOnChange}>
|
{manufacturers.map((manufacturer) => (
|
||||||
{manufacturers.map((manufacturer) => (
|
<SelectItem key={manufacturer.id}>{manufacturer.name}</SelectItem>
|
||||||
<SelectItem key={manufacturer.id}>{manufacturer.name}</SelectItem>
|
))}
|
||||||
))}
|
</Select>
|
||||||
</Select>
|
)}
|
||||||
)}
|
{trestles.length > 0 && (
|
||||||
{trestles.length > 0 && (
|
<Select label="가대" className="max-w-xs" onChange={handleTrestlesOnChange}>
|
||||||
<Select label="가대" className="max-w-xs">
|
{trestles.map((trestle) => (
|
||||||
{trestles.map((trestle) => (
|
<SelectItem key={trestle.id}>{trestle.name}</SelectItem>
|
||||||
<SelectItem key={trestle.id}>{trestle.name}</SelectItem>
|
))}
|
||||||
))}
|
</Select>
|
||||||
</Select>
|
)}
|
||||||
)}
|
{modules.length > 0 && (
|
||||||
</div>
|
<Select label="설치가능 모듈" className="max-w-xs">
|
||||||
</>
|
{modules.map((module) => (
|
||||||
|
<SelectItem key={module.id}>{module.name}</SelectItem>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user