Compare commits
No commits in common. "54cd61c8b2919aea67654dbf45660ee977deee92" and "870e6ad02db6b759d0a813d561e584b46ec7a56a" have entirely different histories.
54cd61c8b2
...
870e6ad02d
@ -1,8 +1,13 @@
|
|||||||
import { prisma } from '@/libs/prisma'
|
import { prisma } from '@/libs/prisma'
|
||||||
import { NextRequest, NextResponse } from 'next/server'
|
import { NextRequest, NextResponse } from 'next/server'
|
||||||
import { loggerWrapper } from '@/libs/api-wrapper'
|
import { loggerWrapper } from '@/libs/api-wrapper'
|
||||||
import { SubmitTargetResponse } from '@/types/Survey'
|
|
||||||
|
|
||||||
|
type AdminSubPerson = {
|
||||||
|
storeId: string
|
||||||
|
userId: string
|
||||||
|
eMail: string
|
||||||
|
authority: string
|
||||||
|
}
|
||||||
// 2차점이 자신에게 매핑 된 1차 판매점과 관리자 정보 조회
|
// 2차점이 자신에게 매핑 된 1차 판매점과 관리자 정보 조회
|
||||||
async function getSubMissionAdminSub(request: NextRequest): Promise<NextResponse> {
|
async function getSubMissionAdminSub(request: NextRequest): Promise<NextResponse> {
|
||||||
try {
|
try {
|
||||||
@ -28,11 +33,12 @@ async function getSubMissionAdminSub(request: NextRequest): Promise<NextResponse
|
|||||||
AND MCS.DEL_YN = 'N';
|
AND MCS.DEL_YN = 'N';
|
||||||
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
||||||
`
|
`
|
||||||
const data: SubmitTargetResponse[] = await prisma.$queryRawUnsafe(query)
|
const suitable: AdminSubPerson[] = await prisma.$queryRawUnsafe(query)
|
||||||
return NextResponse.json(data)
|
|
||||||
|
return NextResponse.json({ message: 'Hello, world!' })
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
||||||
return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 })
|
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -37,11 +37,12 @@ async function getSubmissionAdmin(request: NextRequest): Promise<NextResponse> {
|
|||||||
;
|
;
|
||||||
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
||||||
`
|
`
|
||||||
const data: SuperPerson[] = await prisma.$queryRawUnsafe(query)
|
const suitable: SuperPerson[] = await prisma.$queryRawUnsafe(query)
|
||||||
return NextResponse.json(data)
|
|
||||||
|
return NextResponse.json({ message: 'Hello, world!' })
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
||||||
return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 })
|
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,13 @@ import { SubmitTargetResponse } from '@/types/Survey'
|
|||||||
import { NextRequest, NextResponse } from 'next/server'
|
import { NextRequest, NextResponse } from 'next/server'
|
||||||
import { loggerWrapper } from '@/libs/api-wrapper'
|
import { loggerWrapper } from '@/libs/api-wrapper'
|
||||||
|
|
||||||
|
type BuilderPerson = {
|
||||||
|
agencyStoreId: string
|
||||||
|
userId: string
|
||||||
|
eMail: string
|
||||||
|
userAuthCd: string
|
||||||
|
}
|
||||||
|
|
||||||
// 2차점의 시공권한 user가 해당 판매점의 관리자 정보 조회
|
// 2차점의 시공권한 user가 해당 판매점의 관리자 정보 조회
|
||||||
// N == 일반유저, S == 수퍼유저, B == 시공권한유저
|
// N == 일반유저, S == 수퍼유저, B == 시공권한유저
|
||||||
async function getSubmissionBuilder(request: NextRequest): Promise<NextResponse> {
|
async function getSubmissionBuilder(request: NextRequest): Promise<NextResponse> {
|
||||||
@ -30,11 +37,14 @@ async function getSubmissionBuilder(request: NextRequest): Promise<NextResponse>
|
|||||||
AND MCAS.DEL_YN = 'N';
|
AND MCAS.DEL_YN = 'N';
|
||||||
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
||||||
`
|
`
|
||||||
|
// const suitable: BuilderPerson[] = await prisma.$queryRawUnsafe(query)
|
||||||
|
|
||||||
|
// return NextResponse.json({ message: 'Hello, world!' })
|
||||||
const data: SubmitTargetResponse[] = await prisma.$queryRawUnsafe(query)
|
const data: SubmitTargetResponse[] = await prisma.$queryRawUnsafe(query)
|
||||||
return NextResponse.json(data)
|
return NextResponse.json(data)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
||||||
return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 })
|
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,11 +30,12 @@ async function getSubmissionSuper(request: NextRequest): Promise<NextResponse> {
|
|||||||
AND MCSA.DEL_YN = 'N';
|
AND MCSA.DEL_YN = 'N';
|
||||||
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
||||||
`
|
`
|
||||||
const data: SuperPerson[] = await prisma.$queryRawUnsafe(query)
|
const suitable: SuperPerson[] = await prisma.$queryRawUnsafe(query)
|
||||||
return NextResponse.json(data)
|
|
||||||
|
return NextResponse.json({ message: 'Hello, world!' })
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error);
|
console.error('❌ 데이터 조회 중 오류가 발생했습니다:', error)
|
||||||
return NextResponse.json({ error: 'データの取得に失敗しました。' }, { status: 500 });
|
return NextResponse.json({ error: '데이터 조회 중 오류가 발생했습니다' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,6 @@ import { sessionOptions } from '@/libs/session'
|
|||||||
import { cookies } from 'next/headers'
|
import { cookies } from 'next/headers'
|
||||||
import type { SessionData } from '@/types/Auth'
|
import type { SessionData } from '@/types/Auth'
|
||||||
import { Prisma } from '@prisma/client'
|
import { Prisma } from '@prisma/client'
|
||||||
import { loggerWrapper } from '@/libs/api-wrapper'
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 조사 매물 조회 에러 메시지
|
* @description 조사 매물 조회 에러 메시지
|
||||||
@ -129,11 +128,11 @@ const fetchSurvey = async (id: number) => {
|
|||||||
* ...
|
* ...
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
async function getSurveySaleDetail(request: NextRequest): Promise<NextResponse> {
|
export async function GET(request: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
||||||
try {
|
try {
|
||||||
const cookieStore = await cookies()
|
const cookieStore = await cookies()
|
||||||
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)
|
const session = await getIronSession<SessionData>(cookieStore, sessionOptions)
|
||||||
const id = request.nextUrl.pathname.split('/').pop() ?? ''
|
const { id } = await params
|
||||||
const { searchParams } = new URL(request.url)
|
const { searchParams } = new URL(request.url)
|
||||||
const isPdf = searchParams.get('isPdf') === 'true'
|
const isPdf = searchParams.get('isPdf') === 'true'
|
||||||
|
|
||||||
@ -229,9 +228,9 @@ const getNewSrlNo = async (srlNo: string, storeId: string, role: string) => {
|
|||||||
* ...
|
* ...
|
||||||
* }
|
* }
|
||||||
* */
|
* */
|
||||||
async function updateSurveySaleDetail(request: NextRequest): Promise<NextResponse> {
|
export async function PUT(request: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
||||||
try {
|
try {
|
||||||
const id = request.nextUrl.pathname.split('/').pop() ?? ''
|
const { id } = await params
|
||||||
const body = await request.json()
|
const body = await request.json()
|
||||||
const { detailInfo, ...basicInfo } = body.survey
|
const { detailInfo, ...basicInfo } = body.survey
|
||||||
|
|
||||||
@ -258,7 +257,6 @@ async function updateSurveySaleDetail(request: NextRequest): Promise<NextRespons
|
|||||||
return NextResponse.json({ error: 'データ保存に失敗しました。' }, { status: 500 })
|
return NextResponse.json({ error: 'データ保存に失敗しました。' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @api {DELETE} /api/survey-sales/:id 조사 매물 삭제 API
|
* @api {DELETE} /api/survey-sales/:id 조사 매물 삭제 API
|
||||||
* @apiName DELETE /api/survey-sales/:id
|
* @apiName DELETE /api/survey-sales/:id
|
||||||
@ -277,9 +275,9 @@ async function updateSurveySaleDetail(request: NextRequest): Promise<NextRespons
|
|||||||
* {
|
* {
|
||||||
* "message": "success"
|
* "message": "success"
|
||||||
*/
|
*/
|
||||||
async function deleteSurveySaleDetail(request: NextRequest): Promise<NextResponse> {
|
export async function DELETE(request: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
||||||
try {
|
try {
|
||||||
const id = request.nextUrl.pathname.split('/').pop() ?? ''
|
const { id } = await params
|
||||||
|
|
||||||
await prisma.$transaction(async (tx: Prisma.TransactionClient) => {
|
await prisma.$transaction(async (tx: Prisma.TransactionClient) => {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
@ -345,9 +343,9 @@ async function deleteSurveySaleDetail(request: NextRequest): Promise<NextRespons
|
|||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
async function submitSurveySaleDetail(request: NextRequest): Promise<NextResponse> {
|
export async function PATCH(request: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
||||||
try {
|
try {
|
||||||
const id = request.nextUrl.pathname.split('/').pop() ?? ''
|
const { id } = await params
|
||||||
const body = await request.json()
|
const body = await request.json()
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const survey = await prisma.SD_SURVEY_SALES_BASIC_INFO.update({
|
const survey = await prisma.SD_SURVEY_SALES_BASIC_INFO.update({
|
||||||
@ -366,8 +364,3 @@ async function submitSurveySaleDetail(request: NextRequest): Promise<NextRespons
|
|||||||
return NextResponse.json({ error: 'データ保存に失敗しました。' }, { status: 500 })
|
return NextResponse.json({ error: 'データ保存に失敗しました。' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const GET = loggerWrapper(getSurveySaleDetail)
|
|
||||||
export const PUT = loggerWrapper(updateSurveySaleDetail)
|
|
||||||
export const DELETE = loggerWrapper(deleteSurveySaleDetail)
|
|
||||||
export const PATCH = loggerWrapper(submitSurveySaleDetail)
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
import { NextResponse } from 'next/server'
|
import { NextResponse } from 'next/server'
|
||||||
import { prisma } from '@/libs/prisma'
|
import { prisma } from '@/libs/prisma'
|
||||||
import { convertToSnakeCase } from '@/utils/common-utils'
|
import { convertToSnakeCase } from '@/utils/common-utils'
|
||||||
import { loggerWrapper } from '@/libs/api-wrapper'
|
|
||||||
/**
|
/**
|
||||||
* @description 검색 파라미터 타입
|
* @description 검색 파라미터 타입
|
||||||
*/
|
*/
|
||||||
@ -193,7 +192,7 @@ const checkSession = (params: SearchParams) => {
|
|||||||
* }
|
* }
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
async function getSurveySales(request: Request) {
|
export async function GET(request: Request) {
|
||||||
try {
|
try {
|
||||||
/** URL 파라미터 파싱 */
|
/** URL 파라미터 파싱 */
|
||||||
const { searchParams } = new URL(request.url)
|
const { searchParams } = new URL(request.url)
|
||||||
@ -274,7 +273,7 @@ async function getSurveySales(request: Request) {
|
|||||||
*
|
*
|
||||||
* @apiError {Number} 500 서버 오류
|
* @apiError {Number} 500 서버 오류
|
||||||
*/
|
*/
|
||||||
async function updateSurveySales(request: Request) {
|
export async function PUT(request: Request) {
|
||||||
try {
|
try {
|
||||||
/** 요청 바디 파싱 */
|
/** 요청 바디 파싱 */
|
||||||
const body = await request.json()
|
const body = await request.json()
|
||||||
@ -336,7 +335,7 @@ async function updateSurveySales(request: Request) {
|
|||||||
*
|
*
|
||||||
* @apiError {Number} 500 서버 오류
|
* @apiError {Number} 500 서버 오류
|
||||||
*/
|
*/
|
||||||
async function createSurveySales(request: Request) {
|
export async function POST(request: Request) {
|
||||||
try {
|
try {
|
||||||
const body = await request.json()
|
const body = await request.json()
|
||||||
|
|
||||||
@ -394,7 +393,3 @@ async function createSurveySales(request: Request) {
|
|||||||
return NextResponse.json({ error: 'データ保存に失敗しました。' }, { status: 500 })
|
return NextResponse.json({ error: 'データ保存に失敗しました。' }, { status: 500 })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const GET = loggerWrapper(getSurveySales)
|
|
||||||
export const PUT = loggerWrapper(updateSurveySales)
|
|
||||||
export const POST = loggerWrapper(createSurveySales)
|
|
||||||
@ -48,43 +48,34 @@ export default function SurveySaleSubmitPopup() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const [commCodeList, setCommCodeList] = useState<CommCode[]>([])
|
const [commCodeList, setCommCodeList] = useState<CommCode[]>([])
|
||||||
/** 제출 타겟 데이터 조회 및 제출 폼 데이터 삽입 */
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!session?.isLoggedIn || !surveyDetail?.id) return
|
if (!session?.isLoggedIn || !surveyDetail?.id) return
|
||||||
const baseUpdate = {
|
|
||||||
sender: session?.email ?? '',
|
|
||||||
title: '[HANASYS現地調査] 調査物件が提出. (' + surveyDetail?.srlNo + ')',
|
|
||||||
}
|
|
||||||
|
|
||||||
if (session?.role === 'Admin') {
|
if (session?.role === 'Admin') {
|
||||||
getCommCode('SALES_OFFICE_CD').then((codes) => {
|
getCommCode('SALES_OFFICE_CD').then((codes) => {
|
||||||
setCommCodeList(codes)
|
setCommCodeList(codes)
|
||||||
})
|
})
|
||||||
setSubmitData((prev) => ({
|
|
||||||
...prev,
|
|
||||||
...baseUpdate,
|
|
||||||
}))
|
|
||||||
} else if (session?.role === 'Builder' || session?.role === 'Admin_Sub') {
|
} else if (session?.role === 'Builder' || session?.role === 'Admin_Sub') {
|
||||||
getSubmitTarget({ storeId: surveyDetail?.storeId ?? '', role: session?.role ?? '' }).then((data) => {
|
getSubmitTarget({ storeId: surveyDetail?.storeId ?? '', role: session?.role ?? '' }).then((data) => {
|
||||||
if (!data) return
|
if (data) {
|
||||||
if (data && data.length > 0) {
|
setSubmitData({
|
||||||
const updateData: Partial<SubmitFormData> = {
|
...submitData,
|
||||||
sender: session?.email ?? '',
|
targetId: data[0].targetStoreId,
|
||||||
title: '[HANASYS現地調査] 調査物件が提出. (' + surveyDetail?.srlNo + ')',
|
targetNm: data[0].targetStoreNm,
|
||||||
targetId: data[0]?.targetStoreId ?? '',
|
})
|
||||||
targetNm: data[0]?.targetStoreNm ?? '',
|
data.length > 1 &&
|
||||||
receiver: data.filter((item) => item.auth === 'S').map((item) => item.repUserEmail),
|
setSubmitData({
|
||||||
reference: data.filter((item) => item.auth === 'N').map((item) => item.repUserEmail),
|
...submitData,
|
||||||
saleBase: null,
|
receiver: data.filter((item) => item.auth === 'S').map((item) => item.repUserEmail),
|
||||||
contents: '',
|
reference: data.filter((item) => item.auth === 'N').map((item) => item.repUserEmail),
|
||||||
}
|
})
|
||||||
setSubmitData((prev) => ({
|
|
||||||
...prev,
|
|
||||||
...updateData,
|
|
||||||
}))
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
setSubmitData({
|
||||||
|
...submitData,
|
||||||
|
sender: session?.email ?? '',
|
||||||
|
title: '[HANASYS現地調査] 調査物件が提出. (' + surveyDetail?.srlNo + ')',
|
||||||
|
})
|
||||||
}, [session, surveyDetail])
|
}, [session, surveyDetail])
|
||||||
|
|
||||||
const FORM_FIELDS: FormField[] = [
|
const FORM_FIELDS: FormField[] = [
|
||||||
@ -127,7 +118,6 @@ export default function SurveySaleSubmitPopup() {
|
|||||||
setIsShow(true)
|
setIsShow(true)
|
||||||
sendEmail({
|
sendEmail({
|
||||||
to: submitData.receiver,
|
to: submitData.receiver,
|
||||||
cc: submitData.reference ?? '',
|
|
||||||
subject: submitData.title,
|
subject: submitData.title,
|
||||||
content: contentsRef.current?.innerHTML ?? '',
|
content: contentsRef.current?.innerHTML ?? '',
|
||||||
})
|
})
|
||||||
|
|||||||
@ -90,9 +90,10 @@ export default function ButtonForm({ mode, setMode, data }: ButtonFormProps) {
|
|||||||
/** 저장 로직 */
|
/** 저장 로직 */
|
||||||
const handleSave = (isTemporary: boolean, isSubmitProcess: boolean) => {
|
const handleSave = (isTemporary: boolean, isSubmitProcess: boolean) => {
|
||||||
const emptyField = validateSurveyDetail(data.roof)
|
const emptyField = validateSurveyDetail(data.roof)
|
||||||
|
const hasEmptyField = emptyField?.trim() !== ''
|
||||||
|
|
||||||
if (isTemporary) {
|
if (isTemporary) {
|
||||||
tempSaveProcess()
|
hasEmptyField ? tempSaveProcess() : saveProcess(emptyField, false)
|
||||||
} else {
|
} else {
|
||||||
saveProcess(emptyField, isSubmitProcess)
|
saveProcess(emptyField, isSubmitProcess)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -94,14 +94,6 @@ export default function DetailForm() {
|
|||||||
}))
|
}))
|
||||||
const [roofInfoData, setRoofInfoData] = useState<SurveyDetailRequest>(roofInfoForm)
|
const [roofInfoData, setRoofInfoData] = useState<SurveyDetailRequest>(roofInfoForm)
|
||||||
|
|
||||||
/** route 에러 처리 - 잘못된 URL 접근 시 생성 페이지로 리다이렉트 */
|
|
||||||
useEffect(() => {
|
|
||||||
if (modeset === 'CREATE' && pathname !== '/survey-sale/regist') {
|
|
||||||
router.replace('/survey-sale/regist')
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}, [modeset, id, pathname])
|
|
||||||
|
|
||||||
/** 제출 팝업 처리 - createSurvey 이후 popup 처리 시 노드 삽입 오류로 인해 별도 처리 */
|
/** 제출 팝업 처리 - createSurvey 이후 popup 처리 시 노드 삽입 오류로 인해 별도 처리 */
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const show = searchParams.get('show')
|
const show = searchParams.get('show')
|
||||||
|
|||||||
@ -48,9 +48,7 @@ export function useInquiry(
|
|||||||
*/
|
*/
|
||||||
const errorRouter = (error: any) => {
|
const errorRouter = (error: any) => {
|
||||||
const status = error.response?.status
|
const status = error.response?.status
|
||||||
if (error.response?.data.error) {
|
alert(error.response?.data.error)
|
||||||
alert(error.response?.data.error)
|
|
||||||
}
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
// session 없는 경우
|
// session 없는 경우
|
||||||
case 401:
|
case 401:
|
||||||
|
|||||||
@ -108,9 +108,7 @@ export function useSurvey(
|
|||||||
*/
|
*/
|
||||||
const errorRouter = (error: any) => {
|
const errorRouter = (error: any) => {
|
||||||
const status = error.response?.status
|
const status = error.response?.status
|
||||||
if (error.response?.data.error) {
|
alert(error.response?.data.error)
|
||||||
alert(error.response?.data.error)
|
|
||||||
}
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
/** session 없는 경우 */
|
/** session 없는 경우 */
|
||||||
case 401:
|
case 401:
|
||||||
@ -261,9 +259,6 @@ export function useSurvey(
|
|||||||
queryClient.invalidateQueries({ queryKey: ['survey', id] })
|
queryClient.invalidateQueries({ queryKey: ['survey', id] })
|
||||||
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
queryClient.invalidateQueries({ queryKey: ['survey', 'list'] })
|
||||||
},
|
},
|
||||||
onError: (error: any) => {
|
|
||||||
alert(error.response?.data.error)
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -274,7 +269,7 @@ export function useSurvey(
|
|||||||
*
|
*
|
||||||
* @example
|
* @example
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
const { mutateAsync: deleteSurvey, isPending: isDeletingSurvey } = useMutation({
|
const { mutateAsync: deleteSurvey, isPending: isDeletingSurvey } = useMutation({
|
||||||
mutationFn: async () => {
|
mutationFn: async () => {
|
||||||
@ -375,9 +370,8 @@ export function useSurvey(
|
|||||||
`https://zipcloud.ibsnet.co.jp/api/search?${queryStringFormatter({ zipcode: zipCode.trim() })}`,
|
`https://zipcloud.ibsnet.co.jp/api/search?${queryStringFormatter({ zipcode: zipCode.trim() })}`,
|
||||||
)
|
)
|
||||||
return data.results
|
return data.results
|
||||||
} catch (error: any) {
|
} catch (e) {
|
||||||
console.error('Failed to fetch zipcode data:', error)
|
console.error('Failed to fetch zipcode data:', e)
|
||||||
alert(error.response?.data.error)
|
|
||||||
throw new Error('Failed to fetch zipcode data')
|
throw new Error('Failed to fetch zipcode data')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
export const useTitle = () => {
|
export const useTitle = () => {
|
||||||
const getTitle = (pathname: string) => {
|
const getTitle = (pathname: string) => {
|
||||||
// Handle dynamic routes first
|
// Handle dynamic routes first
|
||||||
if (pathname.startsWith('/survey-sale/') && pathname !== '/survey-sale/regist') {
|
if (pathname.startsWith('/survey-sale/') && pathname !== '/survey-sale/basic-info' && pathname !== '/survey-sale/roof-info') {
|
||||||
return '調査物件詳細'
|
return '調査物件一覧'
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pathname.startsWith('/inquiry/') && pathname !== '/inquiry/list' && pathname !== '/inquiry/regist') {
|
if (pathname.startsWith('/inquiry/') && pathname !== '/inquiry/list' && pathname !== '/inquiry/regist') {
|
||||||
@ -17,8 +17,10 @@ export const useTitle = () => {
|
|||||||
return '屋根材適合性の確認'
|
return '屋根材適合性の確認'
|
||||||
case '/survey-sale':
|
case '/survey-sale':
|
||||||
return '調査物件一覧'
|
return '調査物件一覧'
|
||||||
case '/survey-sale/regist':
|
case '/survey-sale/basic-info':
|
||||||
return '調査物件登録'
|
return '調査物件登録'
|
||||||
|
case '/survey-sale/roof-info':
|
||||||
|
return '調査物件新規登録'
|
||||||
case '/inquiry/list':
|
case '/inquiry/list':
|
||||||
return '1:1お問い合わせ'
|
return '1:1お問い合わせ'
|
||||||
case '/inquiry/regist':
|
case '/inquiry/regist':
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user