onsitesurvey/src/api/suitable.ts

96 lines
3.2 KiB
TypeScript

import { database } from '@/data'
import { axiosInstance } from '@/libs/axios'
export interface Suitable {
id?: number
product_name: string
manufacturer: string
roof_material: string
shape: string
support_roof_tile: string
support_roof_tile_memo: string
support_roof_bracket: string
support_roof_bracket_memo: string
yg_anchor: string
yg_anchor_memo: string
rg_roof_tile_part: string
rg_roof_tile_part_memo: string
dido_hunt_support_tile_2: string
dido_hunt_support_tile_2_memo: string
takashima_power_base: string
takashima_power_base_memo: string
takashima_tile_bracket: string
takashima_tile_bracket_memo: string
slate_bracket_4: string
slate_bracket_4_memo: string
slate_single_metal_bracket: string
slate_single_metal_bracket_memo: string
dido_hunt_short_rack_4: string
dido_hunt_short_rack_4_memo: string
takashima_slate_bracket_slate_single: string
takashima_slate_bracket_slate_single_memo: string
df_metal_bracket: string
df_metal_bracket_memo: string
slate_metal_bracket: string
slate_metal_bracket_memo: string
takashima_slate_bracket_metal_roof: string
takashima_slate_bracket_metal_roof_memo: string
}
export const suitableApi = {
getList: async (): Promise<Suitable[]> => {
const response = await axiosInstance.get<Suitable[]>('/api/suitable/list')
console.log('🚀 ~ getList: ~ response:', response)
return response.data
},
getDetails: async (roofMaterial: string): Promise<Suitable[]> => {
const response = await axiosInstance.get<Suitable[]>(`/api/suitable/details?roof-material=${roofMaterial}`)
return response.data
},
create: async () => {
const suitableData: Suitable[] = []
database.forEach((item) => {
suitableData.push({
product_name: item[0],
manufacturer: item[1],
roof_material: item[2],
shape: item[3],
support_roof_tile: item[4],
support_roof_tile_memo: item[5],
support_roof_bracket: item[6],
support_roof_bracket_memo: item[7],
yg_anchor: item[8],
yg_anchor_memo: item[9],
rg_roof_tile_part: item[10],
rg_roof_tile_part_memo: item[11],
dido_hunt_support_tile_2: item[12],
dido_hunt_support_tile_2_memo: item[13],
takashima_power_base: item[14],
takashima_power_base_memo: item[15],
takashima_tile_bracket: item[16],
takashima_tile_bracket_memo: item[17],
slate_bracket_4: item[18],
slate_bracket_4_memo: item[19],
slate_single_metal_bracket: item[20],
slate_single_metal_bracket_memo: item[21],
dido_hunt_short_rack_4: item[22],
dido_hunt_short_rack_4_memo: item[23],
takashima_slate_bracket_slate_single: item[24],
takashima_slate_bracket_slate_single_memo: item[25],
df_metal_bracket: item[26],
df_metal_bracket_memo: item[27],
slate_metal_bracket: item[28],
slate_metal_bracket_memo: item[29],
takashima_slate_bracket_metal_roof: item[30],
takashima_slate_bracket_metal_roof_memo: item[31],
})
})
const response = await axiosInstance.post<Suitable[]>('/api/suitable', suitableData)
return response.data
},
}