Merge remote-tracking branch 'origin/iipbs/st/dev'
This commit is contained in:
@@ -97,7 +97,7 @@ function WithBaseLayoutInner({ children }: { children: React.ReactNode }) {
|
||||
|
||||
useEffect(() => {
|
||||
if (!getToken(CLAIM_NAME)) return;
|
||||
void statisticsApi.refreshCommonCodes().catch(() => {
|
||||
void statisticsApi.refreshAllCommonCodes().catch(() => {
|
||||
// 캐시 동기화 실패는 화면 진입을 막지 않음
|
||||
});
|
||||
}, []);
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
import type { Metadata } from "next";
|
||||
import Image from "next/image";
|
||||
|
||||
import "@/app/styles/base.css";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "유역하수도 통합 정보플랫폼",
|
||||
description: "페이지가 존재하지 않습니다. 관리자에게 문의하여 주십시오.",
|
||||
};
|
||||
|
||||
export default function GlobalNotFound() {
|
||||
return (
|
||||
<html lang="ko">
|
||||
<body>
|
||||
<main className="flex min-h-screen flex-col items-center justify-center bg-[#f0f4f8] px-4 py-16">
|
||||
<div className="mb-16 text-center">
|
||||
<h1 className="text-[3.2rem] font-bold leading-snug tracking-tight">
|
||||
<span className="text-primary">유역하수도 통합 정보플랫폼</span>에
|
||||
오신 것을 환영합니다.
|
||||
</h1>
|
||||
<p className="mt-6 text-[2rem] text-[#666]">
|
||||
오류가 발생하였습니다.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<section className="card card-border flex w-full max-w-[72rem] flex-col items-center !rounded-2xl !py-16">
|
||||
<Image
|
||||
src="/images/magnifying-glass-with-warning.png"
|
||||
alt=""
|
||||
width={280}
|
||||
height={280}
|
||||
className="size-[28rem] object-contain"
|
||||
/>
|
||||
<p className="mt-4 text-[2.4rem] font-bold text-[#444]">
|
||||
페이지가 존재하지 않습니다.
|
||||
</p>
|
||||
<p className="mt-2 text-[1.6rem] text-[#666]">
|
||||
관리자에게 문의하여 주십시오
|
||||
</p>
|
||||
</section>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
@@ -5,6 +5,9 @@ const subDomain =
|
||||
|
||||
const nextConfig: NextConfig = {
|
||||
output: "standalone",
|
||||
experimental: {
|
||||
globalNotFound: true,
|
||||
},
|
||||
async headers() {
|
||||
return [
|
||||
{
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 483 KiB |
@@ -279,7 +279,6 @@ const NotEnteredStatus = () => {
|
||||
return;
|
||||
}
|
||||
const params = buildUnSubmitDataRequest(values, userInfo);
|
||||
console.log(params);
|
||||
if (!params.dtlInstCd) {
|
||||
alert("기관 정보를 확인할 수 없습니다.");
|
||||
return;
|
||||
|
||||
@@ -370,7 +370,7 @@ export class StatisticsApiService implements StatisticsService {
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 공통 코드 메모리 캐시 동기화 */
|
||||
/** 입력 서비스 공통 코드 메모리 캐시 동기화 */
|
||||
public async refreshCommonCodes(): Promise<CodesRefreshResponse> {
|
||||
const response = await stClient.post<CodesRefreshResponse>(
|
||||
`${ENDPOINT.ST_SERVICE.INPUTCOMMON}/codes-refresh`,
|
||||
@@ -379,6 +379,26 @@ export class StatisticsApiService implements StatisticsService {
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 관리 서비스 공통 코드 메모리 캐시 동기화 */
|
||||
public async refreshManagementCommonCodes(): Promise<CodesRefreshResponse> {
|
||||
const response = await stClient.post<CodesRefreshResponse>(
|
||||
`${ENDPOINT.ST_SERVICE.COMMON}/codes/refresh`,
|
||||
null,
|
||||
withAuthHeader(),
|
||||
);
|
||||
return response.data;
|
||||
}
|
||||
|
||||
/** 입력/관리 공통 코드 캐시 동기화 (한쪽 실패해도 다른 쪽은 완료) */
|
||||
public async refreshAllCommonCodes(): Promise<
|
||||
PromiseSettledResult<CodesRefreshResponse>[]
|
||||
> {
|
||||
return Promise.allSettled([
|
||||
this.refreshCommonCodes(),
|
||||
this.refreshManagementCommonCodes(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
export const statisticsApi = new StatisticsApiService();
|
||||
|
||||
@@ -572,4 +572,6 @@ export interface StatisticsService {
|
||||
CheckStatusCode(param: CheckStatusCodeRequest): Promise<CheckStatusCodeResponse>;
|
||||
getUnSubmitData(param: unSubmitDataRequest): Promise<unSubmitDataResponse>;
|
||||
refreshCommonCodes(): Promise<CodesRefreshResponse>;
|
||||
refreshManagementCommonCodes(): Promise<CodesRefreshResponse>;
|
||||
refreshAllCommonCodes(): Promise<PromiseSettledResult<CodesRefreshResponse>[]>;
|
||||
}
|
||||
@@ -23,7 +23,7 @@ function LoginPage() {
|
||||
try {
|
||||
await authService.login({ userId, password });
|
||||
try {
|
||||
await statisticsApi.refreshCommonCodes();
|
||||
await statisticsApi.refreshAllCommonCodes();
|
||||
} catch {
|
||||
// 로그인 성공 후 캐시 동기화 실패는 진입을 막지 않음
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import presetConfig from "../../tailwind.config.preset";
|
||||
export default {
|
||||
presets: [presetConfig],
|
||||
content: [
|
||||
"./app/**/*.{js,ts,jsx,tsx}",
|
||||
"./src/**/*.{js,ts,jsx,tsx}",
|
||||
"../../packages/common/components/src/ui/**/*.{js,ts,jsx,tsx}",
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user