알림 수정

This commit is contained in:
focp212@naver.com
2025-10-28 10:24:02 +09:00
parent d9ebc2c51f
commit b4976ec45c
11 changed files with 115 additions and 25 deletions

View File

@@ -5,6 +5,7 @@ import moment from 'moment';
import { useAppAlarmMarkMutation } from '../api/use-app-alarm-mark-mutation';
import { AppAlarmMarkParams, AppAlarmMarkResponse } from '../model/types';
import { useStore } from '@/shared/model/store';
import { useEffect, useState } from 'react';
export interface AlarmItemProps {
appNotificationSequence?: number;
@@ -13,6 +14,7 @@ export interface AlarmItemProps {
appNotificationTitle?: string;
appNotificationContent?: string;
appNotificationLink?: string;
appNotificationCategories: Array<any>;
};
export const AlarmItem = ({
@@ -21,13 +23,22 @@ export const AlarmItem = ({
notificationReceivedDate,
appNotificationTitle,
appNotificationContent,
appNotificationLink
appNotificationLink,
appNotificationCategories
}: AlarmItemProps) => {
const { navigate } = useNavigate();
let userInfo = useStore.getState().UserStore.userInfo;
const {mutateAsync: appAlarmMark} = useAppAlarmMarkMutation();
const [appNotificationCategoryName, setAppNotificationCategoryName] = useState<string>('');
const getCategoryName = () => {
let myCategory = appNotificationCategories.filter((value, index) => {
return value.code1 === appNotificationCategory;
});
return myCategory[0].desc1;
};
const onClickToNavigate = () => {
let path = PATHS.support.notice.detail + appNotificationSequence;
let pathState = {};
@@ -39,21 +50,27 @@ export const AlarmItem = ({
console.log('appNotificationContent : [' + appNotificationContent + ']');
console.log('appNotificationLink : [' + appNotificationLink + ']');
if(appNotificationCategory === '10'){
if(appNotificationLink){
path = appNotificationLink;
/*
if(appNotificationCategory === '10'){
}
else if(appNotificationCategory === '20'){
}
else if(appNotificationCategory === '20'){
}
else if(appNotificationCategory === '30'){
}
else if(appNotificationCategory === '30'){
}
else if(appNotificationCategory === '40'){
}
else if(appNotificationCategory === '60'){
}
*/
}
else if(appNotificationCategory === '40'){
}
else if(appNotificationCategory === '60'){
}
navigate(path, {
state: pathState
});
@@ -73,22 +90,26 @@ export const AlarmItem = ({
}
};
useEffect(() => {
setAppNotificationCategoryName(getCategoryName());
}, [appNotificationCategory]);
return (
<div className="notice-item">
<div
className="notice-item"
onClick={ () => callAppAlarmMark() }
>
<div className="notice-content">
<div className="notice-title">{ appNotificationTitle }</div>
<div className="notice-meta">
<strong>{ appNotificationCategory }</strong>
<strong>{ appNotificationCategoryName }</strong>
<span>{ moment(notificationReceivedDate).format('YYYY.MM.DD HH:mm:ss') }</span>
</div>
</div>
<div
className="notice-arrow"
onClick={ () => callAppAlarmMark() }
>
<div className="notice-arrow">
<img
src={ IMAGE_ROOT + '/Forward.svg' }
alt={ appNotificationCategory + ' 바로가기' }
alt={ appNotificationCategoryName + ' 바로가기' }
/>
</div>
</div>

View File

@@ -12,10 +12,12 @@ import { DefaultRequestPagination } from '@/entities/common/model/types';
export interface AlarmListProps {
appNotificationCategory: string;
appNotificationCategories: Array<any>;
};
export const AlarmList = ({
appNotificationCategory
appNotificationCategory,
appNotificationCategories
}: AlarmListProps) => {
const { navigate } = useNavigate();
const { t } = useTranslation();
@@ -108,6 +110,7 @@ export const AlarmList = ({
appNotificationTitle={ resultList[i]?.appNotificationTitle }
appNotificationContent={ resultList[i]?.appNotificationContent }
appNotificationLink={ resultList[i]?.appNotificationLink }
appNotificationCategories={ appNotificationCategories }
></AlarmItem>
);
}

View File

@@ -481,7 +481,7 @@ export interface BillingInfo {
};
export interface MerchantInfo {
shopName?: string;
companyName?: string;
gid?: string;
aid?: string;
}

View File

@@ -231,7 +231,7 @@ export const ListItem = ({
</div>
<div className="transaction-amount">
<NumericFormat
value={ goodsAmount || amount }
value={ goodsAmount || amount || transactionAmount }
thousandSeparator
displayType="text"
suffix={ '원' }

View File

@@ -29,7 +29,7 @@ export const MerchantInfoSection = ({
<ul className="kv-list">
<li className="kv-row">
<span className="k">·&nbsp;&nbsp;</span>
<span className="v">{ merchantInfo?.shopName }</span>
<span className="v">{ merchantInfo?.companyName }</span>
</li>
<li className="kv-row">
<span className="k">·&nbsp;&nbsp;GID</span>

View File

@@ -0,0 +1,29 @@
import axios from 'axios';
import { API_URL_VAT_RETURN } from '@/shared/api/api-url-vat-return';
import { resultify } from '@/shared/lib/resultify';
import { NiceAxiosError } from '@/shared/@types/error';
import {
VatReturnBreakdownResponse,
VatReturnBreakdownParams,
} from '../model/types';
import {
useMutation,
UseMutationOptions
} from '@tanstack/react-query';
export const vatReturnBreakdown = (params: VatReturnBreakdownParams) => {
return resultify(
axios.post<VatReturnBreakdownResponse>(API_URL_VAT_RETURN.vatReturnBreakdown(), params),
);
};
export const useVatReturnBreakdownMutation = (options?: UseMutationOptions<VatReturnBreakdownResponse, NiceAxiosError, VatReturnBreakdownParams>) => {
const mutation = useMutation<VatReturnBreakdownResponse, NiceAxiosError, VatReturnBreakdownParams>({
...options,
mutationFn: (params: VatReturnBreakdownParams) => vatReturnBreakdown(params),
});
return {
...mutation,
};
};

View File

@@ -32,7 +32,19 @@ export interface VatReturnListParams {
targetType?: VatReturnTargetType;
page?: DefaultRequestPagination;
};
export interface VatReturnBreakdownParams {
taxInvoiceNumber: string;
};
export interface VatReturnBreakdownResponse {
breakdown: Array<Breakdown>;
};
export interface Breakdown {
transactionDate: string;
totalAmount: number;
supplyAmount: number;
vatAmount: number;
transactionCount: number;
};
export interface VatReturnListResponse extends DefaulResponsePagination {
content: Array<VatReturnListContent>;

View File

@@ -1,13 +1,16 @@
import { IMAGE_ROOT } from "@/shared/constants/common";
import { Breakdown } from "../model/types";
export interface VatReturnListDetailBottomSheetProps {
bottomSheetOn: boolean;
setBottomSheetOn: (bottomSheetOn: boolean) => void;
breakdown: Array<Breakdown>
};
export const VatReturnListDetailBottomSheet = ({
bottomSheetOn,
setBottomSheetOn
setBottomSheetOn,
breakdown
}: VatReturnListDetailBottomSheetProps) => {
const onClickToClose = () => {