From f64cc4ea41eeef83b881a1524032137f8b7d88cf Mon Sep 17 00:00:00 2001 From: keyy1315 Date: Wed, 2 Jul 2025 10:43:19 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=A1=B0=EC=82=AC=EB=A7=A4=EB=AC=BC=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C/=EC=A0=9C=EC=B6=9C/=EC=A0=80=EC=9E=A5/?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=EC=A1=B0=EA=B1=B4=20=EA=B0=95=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AdminSub(2차 판매점 super 유저) 조회 조건 강화 - 임시저장 매물 제출 조건 강화 - 미제출 매물 pdf 다운로드 버튼 비활성화 --- src/app/api/survey-sales/service.ts | 6 +++--- .../survey-sale/detail/ButtonForm.tsx | 20 ++++++++----------- .../survey-sale/detail/DataTable.tsx | 11 ++++++---- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/app/api/survey-sales/service.ts b/src/app/api/survey-sales/service.ts index 291a9f3..83c2716 100644 --- a/src/app/api/survey-sales/service.ts +++ b/src/app/api/survey-sales/service.ts @@ -124,7 +124,7 @@ export class SurveySalesService { case 'Admin_Sub': where.OR = [ { - AND: [{ STORE_ID: { equals: this.session?.storeId } }, { CONSTRUCTION_POINT_ID: { equals: this.session?.builderId } }], + AND: [{ STORE_ID: { equals: this.session?.storeId } }], }, { AND: [ @@ -440,8 +440,8 @@ export class SurveySalesService { return survey.SUBMISSION_STATUS ? survey.SUBMISSION_TARGET_ID === storeId || survey.SUBMISSION_TARGET_NM === storeNm || - (survey.STORE_ID === storeId && !survey.CONSTRUCTION_POINT_ID) - : survey.STORE_ID === storeId && !survey.CONSTRUCTION_POINT_ID + survey.STORE_ID === storeId + : survey.STORE_ID === storeId } /** diff --git a/src/components/survey-sale/detail/ButtonForm.tsx b/src/components/survey-sale/detail/ButtonForm.tsx index 535aa03..b52e071 100644 --- a/src/components/survey-sale/detail/ButtonForm.tsx +++ b/src/components/survey-sale/detail/ButtonForm.tsx @@ -2,7 +2,6 @@ import type { Mode, SurveyBasicRequest, SurveyDetailInfo, SurveyDetailRequest } from '@/types/Survey' import { CONFIRM_MESSAGE, SUCCESS_MESSAGE, useAlertMsg, WARNING_MESSAGE } from '@/hooks/useAlertMsg' -import { ADMIN_SUBMIT_TARGET_NM } from '@/types/Survey' import { useSessionStore } from '@/store/session' import { useParams, useRouter } from 'next/navigation' import { useEffect, useState } from 'react' @@ -81,10 +80,10 @@ export default function ButtonForm({ mode, setMode, data }: ButtonFormProps) { const calculateSubmitPermission = (session: any, basicData: SurveyBasicRequest): boolean => { switch (session?.role) { case 'T01': - return false case 'Admin': + return session.storeId === basicData.storeId case 'Admin_Sub': - return session.storeNm === basicData.store && session.builderId === basicData.constructionPointId + return session.storeId === basicData.storeId && session.builderId === basicData.constructionPointId case 'Builder': case 'Partner': return session.builderId === basicData.constructionPointId @@ -201,15 +200,12 @@ export default function ButtonForm({ mode, setMode, data }: ButtonFormProps) { /** 제출 로직 */ const handleSubmit = async () => { - if (data.basic.srlNo?.startsWith('一時保存') && Number.isNaN(id)) { - showErrorAlert(WARNING_MESSAGE.TEMP_CANNOT_SUBMIT) - return - } - if (mode === 'READ') { - showConfirm(CONFIRM_MESSAGE.SUBMIT_CONFIRM, async () => { - popupController.setSurveySaleSubmitPopup(true) - }) + if (data.basic.srlNo?.includes('一時保存')) { + showErrorAlert(WARNING_MESSAGE.TEMP_CANNOT_SUBMIT) + return + } + popupController.setSurveySaleSubmitPopup(true) } else { showConfirm(CONFIRM_MESSAGE.SAVE_AND_SUBMIT_CONFIRM, async () => { handleSave(false, true) @@ -220,7 +216,7 @@ export default function ButtonForm({ mode, setMode, data }: ButtonFormProps) { /** 로그인 여부 체크 */ if (!session?.isLoggedIn) return null - /** 읽기 모드, 제출 된 데이터, 제출 권한자는 리스트 버튼만 표시 */ + /** 읽기 모드, 제출 된 데이터, 제출 권한자는 리스트 버튼만 표시, 작성자만 삭제 가능*/ if (mode === 'READ' && isSubmit && permissions.isSubmiter) { return (
diff --git a/src/components/survey-sale/detail/DataTable.tsx b/src/components/survey-sale/detail/DataTable.tsx index 6d21ec5..72976d0 100644 --- a/src/components/survey-sale/detail/DataTable.tsx +++ b/src/components/survey-sale/detail/DataTable.tsx @@ -4,7 +4,6 @@ import { SurveyBasicInfo } from '@/types/Survey' import { useSurvey } from '@/hooks/useSurvey' export default function DataTable({ surveyDetail }: { surveyDetail: SurveyBasicInfo }) { - /** 제출 상태 처리 */ const submitStatus = () => { const { submissionTargetNm, submissionTargetId } = surveyDetail ?? {} @@ -65,9 +64,13 @@ export default function DataTable({ surveyDetail }: { surveyDetail: SurveyBasicI ダウンロード - + {surveyDetail.submissionStatus ? ( + + ) : ( + '-' + )}