@bwg-ui/core 1.3.6 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/CMPrgrMstrP02-CIPnCdt3.cjs +1 -0
- package/dist/chunks/CMPrgrMstrP02-jC3zDeFU.js +154 -0
- package/dist/chunks/CMSearchIntfGwP01-D4qj6J2N.cjs +1 -0
- package/dist/chunks/{CMSearchIntfGwP01-BBdPmalj.js → CMSearchIntfGwP01-DzTHXQi3.js} +31 -31
- package/dist/chunks/MenuReport-BtP1uAmq.cjs +1 -0
- package/dist/chunks/{MenuReport-CYK_Eaqa.js → MenuReport-DgMjx5Hs.js} +5 -5
- package/dist/chunks/SearchAddressP01-B25Exa9E.cjs +1 -0
- package/dist/chunks/SearchAddressP01-B_D3nrkn.js +605 -0
- package/dist/chunks/SearchDepartmentP01-D5ihO3l8.cjs +1 -0
- package/dist/chunks/SearchDepartmentP01-pUAav3Xp.js +352 -0
- package/dist/chunks/SearchDepartmentP02-B3oL1B-h.js +518 -0
- package/dist/chunks/SearchDepartmentP02-CWs8sLuu.cjs +1 -0
- package/dist/chunks/SearchHolidayP01-SuuyAk9T.js +188 -0
- package/dist/chunks/SearchHolidayP01-cJ8Wlkwr.cjs +1 -0
- package/dist/chunks/SearchOrganizationP01-3nDwrB08.cjs +1 -0
- package/dist/chunks/SearchOrganizationP01-ChwLBfVt.js +420 -0
- package/dist/chunks/SearchOrganizationP02-0Suj4DLH.cjs +1 -0
- package/dist/chunks/SearchOrganizationP02-DI0V4Bdz.js +516 -0
- package/dist/chunks/UploadMultiFileP01-Bf1qonGN.cjs +1 -0
- package/dist/chunks/UploadMultiFileP01-BgyIhfac.js +38 -0
- package/dist/chunks/{layout-components-gqu1pmfr.js → layout-components-Lyp9SZ7V.js} +1134 -1008
- package/dist/chunks/layout-components-NtKR0O6Y.cjs +38 -0
- package/dist/chunks/provider-DrmM0H4o.cjs +1 -0
- package/dist/chunks/provider-ff4RVDYo.js +711 -0
- package/dist/components/common/ButtonAccessController.d.ts +2 -3
- package/dist/components/common/ButtonAccessController.d.ts.map +1 -1
- package/dist/components/common/BwgButtonGroup.d.ts +1 -1
- package/dist/components/common/BwgButtonGroup.d.ts.map +1 -1
- package/dist/components/common/BwgCol.d.ts +1 -1
- package/dist/components/common/BwgCol.d.ts.map +1 -1
- package/dist/components/common/BwgGrid.d.ts.map +1 -1
- package/dist/components/common/BwgModal.d.ts +10 -0
- package/dist/components/common/BwgModal.d.ts.map +1 -0
- package/dist/components/common/BwgView.d.ts.map +1 -1
- package/dist/components/common/index.cjs +1 -1
- package/dist/components/common/index.d.ts +1 -0
- package/dist/components/common/index.d.ts.map +1 -1
- package/dist/components/common/index.js +4887 -28
- package/dist/components/core/BwgCmnFileItems.d.ts +47 -0
- package/dist/components/core/BwgCmnFileItems.d.ts.map +1 -0
- package/dist/components/core/BwgDeptSearch.d.ts +38 -0
- package/dist/components/core/BwgDeptSearch.d.ts.map +1 -0
- package/dist/components/core/BwgDraggerUploader.d.ts +13 -0
- package/dist/components/core/BwgDraggerUploader.d.ts.map +1 -0
- package/dist/components/core/BwgEmpSearch.d.ts +12 -4
- package/dist/components/core/BwgEmpSearch.d.ts.map +1 -1
- package/dist/components/core/BwgUploader.d.ts +6 -92
- package/dist/components/core/BwgUploader.d.ts.map +1 -1
- package/dist/components/core/BwgUploader_bak.d.ts +98 -0
- package/dist/components/core/BwgUploader_bak.d.ts.map +1 -0
- package/dist/components/core/BwgXlsxUploader.d.ts +25 -0
- package/dist/components/core/BwgXlsxUploader.d.ts.map +1 -0
- package/dist/components/core/index.cjs +1 -1
- package/dist/components/core/index.d.ts +11 -2
- package/dist/components/core/index.d.ts.map +1 -1
- package/dist/components/core/index.js +1318 -1164
- package/dist/components/guide/index.cjs +1 -1
- package/dist/components/guide/index.js +17 -17
- package/dist/components/layout/AppWrapper.d.ts +5 -1
- package/dist/components/layout/AppWrapper.d.ts.map +1 -1
- package/dist/components/layout/BwgCoreLogin.d.ts.map +1 -1
- package/dist/components/layout/BwgPortal01.d.ts.map +1 -1
- package/dist/components/layout/custom/ConfigurableSidebar.d.ts.map +1 -1
- package/dist/components/layout/extension/ContentWrapper.d.ts.map +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +1 -1
- package/dist/components/pages/auth/AuthManagement.d.ts +8 -0
- package/dist/components/pages/auth/AuthManagement.d.ts.map +1 -0
- package/dist/components/pages/auth/AuthSelector.d.ts +28 -0
- package/dist/components/pages/auth/AuthSelector.d.ts.map +1 -0
- package/dist/components/pages/auth/RoleDashBoard.d.ts +13 -0
- package/dist/components/pages/auth/RoleDashBoard.d.ts.map +1 -0
- package/dist/components/pages/auth/RoleView.d.ts +17 -0
- package/dist/components/pages/auth/RoleView.d.ts.map +1 -0
- package/dist/components/pages/board/AdminBoard.d.ts +6 -0
- package/dist/components/pages/board/AdminBoard.d.ts.map +1 -0
- package/dist/components/pages/board/BoardComment.d.ts +8 -0
- package/dist/components/pages/board/BoardComment.d.ts.map +1 -0
- package/dist/components/pages/board/MyBoard.d.ts +6 -0
- package/dist/components/pages/board/MyBoard.d.ts.map +1 -0
- package/dist/components/pages/index.d.ts +9 -10
- package/dist/components/pages/index.d.ts.map +1 -1
- package/dist/components/pages/rsrc/CMPopuMstrM01.d.ts.map +1 -1
- package/dist/components/pages/rsrc/MenuManagement.d.ts +4 -0
- package/dist/components/pages/rsrc/MenuManagement.d.ts.map +1 -0
- package/dist/components/pages/rsrc/{CMMenuPrntSelectModal.d.ts → MenuSelector.d.ts} +5 -4
- package/dist/components/pages/rsrc/MenuSelector.d.ts.map +1 -0
- package/dist/components/pages/rsrc/ProgramManagement.d.ts +4 -0
- package/dist/components/pages/rsrc/ProgramManagement.d.ts.map +1 -0
- package/dist/components/pages/rsrc/{CMMenuPrgrSelectModal.d.ts → ProgramSelector.d.ts} +5 -4
- package/dist/components/pages/rsrc/ProgramSelector.d.ts.map +1 -0
- package/dist/components/pages/syst/CommonCodeManagement.d.ts +4 -0
- package/dist/components/pages/syst/CommonCodeManagement.d.ts.map +1 -0
- package/dist/components/pages/syst/CommonCodeTester.d.ts +7 -0
- package/dist/components/pages/syst/CommonCodeTester.d.ts.map +1 -0
- package/dist/components/pages/types.d.ts +5 -1
- package/dist/components/pages/types.d.ts.map +1 -1
- package/dist/components/popup/SearchDepartmentP01.d.ts +1 -1
- package/dist/components/popup/SearchDepartmentP01.d.ts.map +1 -1
- package/dist/components/popup/SearchOrganizationP02.d.ts.map +1 -1
- package/dist/components/popup/UploadMultiFileP01.d.ts +14 -0
- package/dist/components/popup/UploadMultiFileP01.d.ts.map +1 -0
- package/dist/components/popup/config/localPopupRegistry.d.ts.map +1 -1
- package/dist/components/popup/index.cjs +1 -1
- package/dist/components/popup/index.d.ts +1 -0
- package/dist/components/popup/index.d.ts.map +1 -1
- package/dist/components/popup/index.js +16 -8
- package/dist/index.cjs +185 -1
- package/dist/index.js +31237 -288
- package/dist/provider/contexts/BwgViewContext.d.ts +8 -1
- package/dist/provider/contexts/BwgViewContext.d.ts.map +1 -1
- package/dist/provider/contexts/CommonCodeContext.d.ts +15 -28
- package/dist/provider/contexts/CommonCodeContext.d.ts.map +1 -1
- package/dist/provider/contexts/MenuButtonContentx.d.ts +1 -0
- package/dist/provider/contexts/MenuButtonContentx.d.ts.map +1 -0
- package/dist/provider/contexts/MenuButtonContext.d.ts +42 -0
- package/dist/provider/contexts/MenuButtonContext.d.ts.map +1 -0
- package/dist/provider/contexts/PageContentContext.d.ts +23 -0
- package/dist/provider/contexts/PageContentContext.d.ts.map +1 -0
- package/dist/provider/contexts/index.d.ts +1 -0
- package/dist/provider/contexts/index.d.ts.map +1 -1
- package/dist/provider/hooks/index.d.ts +1 -0
- package/dist/provider/hooks/index.d.ts.map +1 -1
- package/dist/provider/hooks/useFileUploader.d.ts +74 -0
- package/dist/provider/hooks/useFileUploader.d.ts.map +1 -0
- package/dist/provider/hooks/useSizeConfig.d.ts +2 -2
- package/dist/provider/index.cjs +1 -1
- package/dist/provider/index.d.ts +1 -0
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +22 -19
- package/dist/stores/codeStore.d.ts +65 -128
- package/dist/stores/codeStore.d.ts.map +1 -1
- package/dist/stores/index.cjs +2 -2
- package/dist/stores/index.d.ts +3 -3
- package/dist/stores/index.d.ts.map +1 -1
- package/dist/stores/index.js +815 -1625
- package/dist/stores/menuModelStore.d.ts +22 -7
- package/dist/stores/menuModelStore.d.ts.map +1 -1
- package/dist/stores/menuViewStore.d.ts +3 -3
- package/dist/stores/menuViewStore.d.ts.map +1 -1
- package/dist/stores/systemStore.d.ts +50 -17
- package/dist/stores/systemStore.d.ts.map +1 -1
- package/dist/styles/assets/images/header/icon/ico-bell.svg +3 -3
- package/dist/styles/assets/images/header/icon/ico-logout.svg +10 -10
- package/dist/styles/assets/images/header/icon/ico-setting.svg +4 -4
- package/dist/styles/assets/images/header/icon/ico-sidebar-arrow.svg +3 -3
- package/dist/styles/assets/images/menus/ico1-completed.png +0 -0
- package/dist/styles/assets/images/menus/ico1-design.png +0 -0
- package/dist/styles/assets/images/menus/ico1-dev.png +0 -0
- package/dist/styles/assets/images/menus/ico2-completed.png +0 -0
- package/dist/styles/assets/images/menus/ico2-design.png +0 -0
- package/dist/styles/assets/images/menus/ico2-dev.png +0 -0
- package/dist/styles/assets/images/menus/ico3-completed.png +0 -0
- package/dist/styles/assets/images/menus/ico3-design.png +0 -0
- package/dist/styles/assets/images/menus/ico3-dev.png +0 -0
- package/dist/utils/apiUtils.d.ts.map +1 -1
- package/dist/utils/commonUtils.d.ts +1 -2
- package/dist/utils/commonUtils.d.ts.map +1 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.ts +25 -25
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +980 -1967
- package/dist/utils/messageUtils.d.ts +36 -48
- package/dist/utils/messageUtils.d.ts.map +1 -1
- package/dist/utils/modalUtils.d.ts +68 -0
- package/dist/utils/modalUtils.d.ts.map +1 -0
- package/dist/utils/notificationUtils.d.ts +50 -41
- package/dist/utils/notificationUtils.d.ts.map +1 -1
- package/dist/utils/serviceConfig.d.ts +9 -3
- package/dist/utils/serviceConfig.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/chunks/CMSearchIntfGwP01-Cs78BtE7.cjs +0 -1
- package/dist/chunks/MenuReport-BCO-gXwk.cjs +0 -1
- package/dist/chunks/common-components-C61ER0qC.js +0 -52599
- package/dist/chunks/common-components-mXgJEMpT.cjs +0 -1109
- package/dist/chunks/layout-components-D7I6VhXN.cjs +0 -38
- package/dist/chunks/provider-Kxea5IoZ.js +0 -449
- package/dist/chunks/provider-r4mkv5Zs.cjs +0 -1
- package/dist/components/pages/board/CMAdminBoardM01.d.ts +0 -6
- package/dist/components/pages/board/CMAdminBoardM01.d.ts.map +0 -1
- package/dist/components/pages/board/CMBoardS01.d.ts +0 -8
- package/dist/components/pages/board/CMBoardS01.d.ts.map +0 -1
- package/dist/components/pages/board/CMMyBoardM01.d.ts +0 -6
- package/dist/components/pages/board/CMMyBoardM01.d.ts.map +0 -1
- package/dist/components/pages/guide/BwgComponentGuideM01.d.ts +0 -3
- package/dist/components/pages/guide/BwgComponentGuideM01.d.ts.map +0 -1
- package/dist/components/pages/guide/BwgDeveloperGuideM01.d.ts +0 -3
- package/dist/components/pages/guide/BwgDeveloperGuideM01.d.ts.map +0 -1
- package/dist/components/pages/guide/BwgReactGuideM01.d.ts +0 -3
- package/dist/components/pages/guide/BwgReactGuideM01.d.ts.map +0 -1
- package/dist/components/pages/rsrc/CMMenuPrgrSelectModal.d.ts.map +0 -1
- package/dist/components/pages/rsrc/CMMenuPrntSelectModal.d.ts.map +0 -1
- package/dist/components/pages/syst/CMSystCodeM01.d.ts +0 -4
- package/dist/components/pages/syst/CMSystCodeM01.d.ts.map +0 -1
|
@@ -1,27 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
export type MessageType = 'success' | 'error' | 'warning' | 'info';
|
|
3
|
+
export interface MessageExtraOptions {
|
|
4
|
+
duration?: number;
|
|
5
|
+
className?: string;
|
|
6
|
+
style?: CSSProperties;
|
|
7
|
+
maxCount?: number;
|
|
8
|
+
top?: number;
|
|
9
|
+
rtl?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface GlobalMessageStyleConfig {
|
|
12
|
+
className?: string;
|
|
13
|
+
style?: CSSProperties;
|
|
14
|
+
duration?: number;
|
|
15
|
+
maxCount?: number;
|
|
16
|
+
top?: number;
|
|
17
|
+
rtl?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 전역 메시지 스타일 설정
|
|
21
|
+
* @param config - 전역 메시지 스타일 설정
|
|
22
|
+
*/
|
|
23
|
+
export declare const setGlobalMessageStyle: (config: Partial<GlobalMessageStyleConfig>) => void;
|
|
24
|
+
/**
|
|
25
|
+
* 전역 메시지 스타일 설정 가져오기
|
|
26
|
+
*/
|
|
27
|
+
export declare const getGlobalMessageStyle: () => Partial<GlobalMessageStyleConfig> | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* 전역 메시지 스타일 초기화
|
|
30
|
+
*/
|
|
31
|
+
export declare const resetGlobalMessageStyle: () => void;
|
|
32
|
+
/**
|
|
33
|
+
* 통합 메시지 표시 함수
|
|
34
|
+
* @param type 메시지 타입 ('success' | 'error' | 'warning' | 'info')
|
|
21
35
|
* @param content 메시지 내용
|
|
22
|
-
* @param
|
|
36
|
+
* @param extraOptions 기타 설정 (선택)
|
|
23
37
|
*/
|
|
24
|
-
export declare const
|
|
38
|
+
export declare const openMessage: (type: MessageType, content?: string, extraOptions?: MessageExtraOptions) => void;
|
|
25
39
|
/**
|
|
26
40
|
* 로딩 메시지 표시
|
|
27
41
|
* @param content 메시지 내용
|
|
@@ -37,30 +51,4 @@ export declare const closeMessage: (key: string) => void;
|
|
|
37
51
|
* 모든 메시지 닫기
|
|
38
52
|
*/
|
|
39
53
|
export declare const closeAllMessages: () => void;
|
|
40
|
-
/**
|
|
41
|
-
* API 오류 메시지 표시 (공통)
|
|
42
|
-
* @param error 오류 객체
|
|
43
|
-
* @param defaultMessage 기본 오류 메시지
|
|
44
|
-
*/
|
|
45
|
-
export declare const showApiError: (error: any, defaultMessage?: string) => void;
|
|
46
|
-
/**
|
|
47
|
-
* 저장 성공 메시지 표시
|
|
48
|
-
* @param type 저장 타입 ('등록', '수정', '삭제' 등)
|
|
49
|
-
*/
|
|
50
|
-
export declare const showSaveSuccess: (type?: string) => void;
|
|
51
|
-
/**
|
|
52
|
-
* 저장 실패 메시지 표시
|
|
53
|
-
* @param type 저장 타입 ('등록', '수정', '삭제' 등)
|
|
54
|
-
*/
|
|
55
|
-
export declare const showSaveError: (type?: string) => void;
|
|
56
|
-
/**
|
|
57
|
-
* 중복 체크 실패 메시지 표시
|
|
58
|
-
* @param fieldName 필드명
|
|
59
|
-
*/
|
|
60
|
-
export declare const showDuplicateError: (fieldName: string) => void;
|
|
61
|
-
/**
|
|
62
|
-
* 필수 입력 항목 메시지 표시
|
|
63
|
-
* @param fieldName 필드명
|
|
64
|
-
*/
|
|
65
|
-
export declare const showRequiredError: (fieldName: string) => void;
|
|
66
54
|
//# sourceMappingURL=messageUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageUtils.d.ts","sourceRoot":"","sources":["../../src/utils/messageUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"messageUtils.d.ts","sourceRoot":"","sources":["../../src/utils/messageUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAGnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAGD,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAMD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,OAAO,CAAC,wBAAwB,CAAC,KACxC,IAKF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAC9B,OAAO,CAAC,wBAAwB,CAAC,GACjC,SAEH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAO,IAE1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,WAAW,EACjB,UAAU,MAAM,EAChB,eAAe,mBAAmB,KACjC,IAmCF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,UAAS,MAAiB,oDAKrD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,SAEvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,YAE5B,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Modal } from 'antd';
|
|
2
|
+
import { default as React, CSSProperties } from 'react';
|
|
3
|
+
export type ModalType = 'success' | 'info' | 'error' | 'warning' | 'confirm';
|
|
4
|
+
export interface ModalExtraOptions {
|
|
5
|
+
onOk?: () => void | Promise<void>;
|
|
6
|
+
onCancel?: () => void;
|
|
7
|
+
okText?: string;
|
|
8
|
+
cancelText?: string;
|
|
9
|
+
width?: number | string;
|
|
10
|
+
centered?: boolean;
|
|
11
|
+
maskClosable?: boolean;
|
|
12
|
+
closable?: boolean;
|
|
13
|
+
autoFocusButton?: 'ok' | 'cancel' | null;
|
|
14
|
+
className?: string;
|
|
15
|
+
wrapClassName?: string;
|
|
16
|
+
styles?: {
|
|
17
|
+
body?: CSSProperties;
|
|
18
|
+
mask?: CSSProperties;
|
|
19
|
+
header?: CSSProperties;
|
|
20
|
+
footer?: CSSProperties;
|
|
21
|
+
content?: CSSProperties;
|
|
22
|
+
};
|
|
23
|
+
icon?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
export interface GlobalModalStyleConfig {
|
|
26
|
+
className?: string;
|
|
27
|
+
wrapClassName?: string;
|
|
28
|
+
styles?: {
|
|
29
|
+
body?: CSSProperties;
|
|
30
|
+
mask?: CSSProperties;
|
|
31
|
+
header?: CSSProperties;
|
|
32
|
+
footer?: CSSProperties;
|
|
33
|
+
content?: CSSProperties;
|
|
34
|
+
};
|
|
35
|
+
okText?: string;
|
|
36
|
+
cancelText?: string;
|
|
37
|
+
width?: number | string;
|
|
38
|
+
centered?: boolean;
|
|
39
|
+
maskClosable?: boolean;
|
|
40
|
+
closable?: boolean;
|
|
41
|
+
autoFocusButton?: 'ok' | 'cancel' | null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 전역 모달 스타일 설정
|
|
45
|
+
* @param config - 전역 모달 스타일 설정
|
|
46
|
+
*/
|
|
47
|
+
export declare const setGlobalModalStyle: (config: Partial<GlobalModalStyleConfig>) => void;
|
|
48
|
+
/**
|
|
49
|
+
* 전역 모달 스타일 설정 가져오기
|
|
50
|
+
*/
|
|
51
|
+
export declare const getGlobalModalStyle: () => Partial<GlobalModalStyleConfig> | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* 전역 모달 스타일 초기화
|
|
54
|
+
*/
|
|
55
|
+
export declare const resetGlobalModalStyle: () => void;
|
|
56
|
+
/**
|
|
57
|
+
* 통합 모달 표시 함수
|
|
58
|
+
* @param type 모달 타입 ('success' | 'info' | 'error' | 'warning' | 'confirm')
|
|
59
|
+
* @param title 모달 제목 (빈 값이면 타입에 따라 기본값 설정)
|
|
60
|
+
* @param content 모달 내용
|
|
61
|
+
* @param extraOptions 기타 설정 (선택)
|
|
62
|
+
*/
|
|
63
|
+
export declare const openModal: (type: ModalType, title?: string, content?: string | React.ReactNode, extraOptions?: ModalExtraOptions) => ReturnType<typeof Modal.success> | ReturnType<typeof Modal.info> | ReturnType<typeof Modal.error> | ReturnType<typeof Modal.warning> | ReturnType<typeof Modal.confirm>;
|
|
64
|
+
/**
|
|
65
|
+
* 모든 모달 닫기
|
|
66
|
+
*/
|
|
67
|
+
export declare const destroyModals: () => void;
|
|
68
|
+
//# sourceMappingURL=modalUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modalUtils.d.ts","sourceRoot":"","sources":["../../src/utils/modalUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAY7E,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB,CAAC;IACF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAGD,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;CAC1C;AAiBD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,OAAO,CAAC,sBAAsB,CAAC,KACtC,IASF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAC5B,OAAO,CAAC,sBAAsB,CAAC,GAC/B,SAEH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAO,IAExC,CAAC;AAuDF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,SAAS,EACf,QAAQ,MAAM,EACd,UAAU,MAAM,GAAG,KAAK,CAAC,SAAS,EAClC,eAAe,iBAAiB,KAE9B,UAAU,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,GAChC,UAAU,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAC7B,UAAU,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,GAC9B,UAAU,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,GAChC,UAAU,CAAC,OAAO,KAAK,CAAC,OAAO,CAyBlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,IAEhC,CAAC"}
|
|
@@ -1,52 +1,61 @@
|
|
|
1
1
|
import { NotificationArgsProps } from 'antd';
|
|
2
|
-
|
|
2
|
+
import { CSSProperties } from 'react';
|
|
3
|
+
export type NotificationType = 'success' | 'error' | 'info' | 'warning';
|
|
3
4
|
export interface BwgErrorProps {
|
|
4
5
|
message: string;
|
|
5
6
|
description?: string;
|
|
6
7
|
duration?: number;
|
|
7
|
-
placement?: NotificationArgsProps[
|
|
8
|
+
placement?: NotificationArgsProps['placement'];
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
showInfo(message: string, description?: string, duration?: number): void;
|
|
26
|
-
/**
|
|
27
|
-
* 경고 알림
|
|
28
|
-
*/
|
|
29
|
-
showWarning(message: string, description?: string, duration?: number): void;
|
|
30
|
-
/**
|
|
31
|
-
* 일반 에러 알림
|
|
32
|
-
*/
|
|
33
|
-
showError(message: string, description?: string, duration?: number): void;
|
|
34
|
-
/**
|
|
35
|
-
* 모든 알림 닫기
|
|
36
|
-
*/
|
|
37
|
-
destroy(): void;
|
|
38
|
-
/**
|
|
39
|
-
* 특정 키의 알림 닫기
|
|
40
|
-
*/
|
|
41
|
-
close(key: string): void;
|
|
10
|
+
export interface NotificationExtraOptions {
|
|
11
|
+
description?: string;
|
|
12
|
+
duration?: number;
|
|
13
|
+
placement?: NotificationArgsProps['placement'];
|
|
14
|
+
className?: string;
|
|
15
|
+
style?: CSSProperties;
|
|
16
|
+
}
|
|
17
|
+
export interface GlobalNotificationStyleConfig {
|
|
18
|
+
className?: string;
|
|
19
|
+
style?: CSSProperties;
|
|
20
|
+
duration?: number;
|
|
21
|
+
placement?: NotificationArgsProps['placement'];
|
|
22
|
+
maxCount?: number;
|
|
23
|
+
rtl?: boolean;
|
|
24
|
+
top?: number;
|
|
25
|
+
bottom?: number;
|
|
42
26
|
}
|
|
43
|
-
|
|
27
|
+
/**
|
|
28
|
+
* 전역 알림 스타일 설정
|
|
29
|
+
* @param config - 전역 알림 스타일 설정
|
|
30
|
+
*/
|
|
31
|
+
export declare const setGlobalNotificationStyle: (config: Partial<GlobalNotificationStyleConfig>) => void;
|
|
32
|
+
/**
|
|
33
|
+
* 전역 알림 스타일 설정 가져오기
|
|
34
|
+
*/
|
|
35
|
+
export declare const getGlobalNotificationStyle: () => Partial<GlobalNotificationStyleConfig> | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* 전역 알림 스타일 초기화
|
|
38
|
+
*/
|
|
39
|
+
export declare const resetGlobalNotificationStyle: () => void;
|
|
40
|
+
/**
|
|
41
|
+
* 통합 알림 표시 함수
|
|
42
|
+
* @param type 알림 타입 ('success' | 'error' | 'info' | 'warning')
|
|
43
|
+
* @param title 알림 타이틀 (빈 값이면 타입에 따라 기본값 설정)
|
|
44
|
+
* @param message 알림 메시지
|
|
45
|
+
* @param extraOptions 기타 설정 (선택)
|
|
46
|
+
*/
|
|
47
|
+
export declare const openNoti: (type: NotificationType, title?: string, message?: string, extraOptions?: NotificationExtraOptions) => void;
|
|
48
|
+
/**
|
|
49
|
+
* BwgError 전용 에러 알림
|
|
50
|
+
* @param props - 에러 메시지 설정
|
|
51
|
+
*/
|
|
44
52
|
export declare const notiBwgError: (props: BwgErrorProps) => void;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
export declare const notiError: (message: string, description?: string, duration?: number) => void;
|
|
53
|
+
/**
|
|
54
|
+
* 모든 알림 닫기
|
|
55
|
+
*/
|
|
49
56
|
export declare const destroyNotifications: () => void;
|
|
57
|
+
/**
|
|
58
|
+
* 특정 키의 알림 닫기
|
|
59
|
+
*/
|
|
50
60
|
export declare const closeNotification: (key: string) => void;
|
|
51
|
-
export {};
|
|
52
61
|
//# sourceMappingURL=notificationUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notificationUtils.d.ts","sourceRoot":"","sources":["../../src/utils/notificationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"notificationUtils.d.ts","sourceRoot":"","sources":["../../src/utils/notificationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAWxE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;CAChD;AAGD,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAGD,MAAM,WAAW,6BAA6B;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,OAAO,CAAC,6BAA6B,CAAC,KAC7C,IAKF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,QACnC,OAAO,CAAC,6BAA6B,CAAC,GACtC,SAEH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAO,IAE/C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GACnB,MAAM,gBAAgB,EACtB,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,eAAe,wBAAwB,KACtC,IAoCF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,aAAa,KAAG,IAkBnD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAAO,IAEvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,KAAK,MAAM,KAAG,IAG/C,CAAC"}
|
|
@@ -3,12 +3,18 @@
|
|
|
3
3
|
* Provider 패턴을 우선적으로 사용하고, 기본값을 fallback으로 사용
|
|
4
4
|
*/
|
|
5
5
|
export declare const DEFAULT_SERVICE_CODES: {
|
|
6
|
-
readonly AUTH_BTNS: "
|
|
7
|
-
readonly AUTH_MENU: "
|
|
8
|
-
readonly
|
|
6
|
+
readonly AUTH_BTNS: "SCMUSERAUTH02";
|
|
7
|
+
readonly AUTH_MENU: "SCMUSERAUTH01";
|
|
8
|
+
readonly ROLE_LIST: "SMROLEUTIL01";
|
|
9
|
+
readonly PERMISSION_LIST: "SCMPERM00101";
|
|
10
|
+
readonly ROLE_PERMISSION: "SCMROLE00102";
|
|
11
|
+
readonly CMCD_CODE: "SCMCMCDUTIL01";
|
|
12
|
+
readonly CMCD_ATTR: "SCMCMCDUTIL02";
|
|
13
|
+
readonly EXTN_CODE: undefined;
|
|
9
14
|
readonly SRCH_POPU: "SCMPOPU00101";
|
|
10
15
|
readonly AUTH_BMRK: "SCMBMRK00101";
|
|
11
16
|
readonly SYST_CODE: "SCMSYST00101";
|
|
17
|
+
readonly SYS_INFO: "SCMSYSUTIL01";
|
|
12
18
|
};
|
|
13
19
|
type ServiceCodeKey = keyof typeof DEFAULT_SERVICE_CODES;
|
|
14
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceConfig.d.ts","sourceRoot":"","sources":["../../src/utils/serviceConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"serviceConfig.d.ts","sourceRoot":"","sources":["../../src/utils/serviceConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;CAyBxB,CAAC;AAEX,KAAK,cAAc,GAAG,MAAM,OAAO,qBAAqB,CAAC;AAKzD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,GACjD,IAAI,CAGN;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,MAAM,CAcrE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAQnE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAW3C;AAGD,YAAY,EAAE,cAAc,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bwg-ui/core",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8",
|
|
4
4
|
"description": "bankwareglobal UI 라이브러리입니다.",
|
|
5
5
|
"author": "kyeongdon.park",
|
|
6
6
|
"license": "ISC",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"import": "./dist/stores/index.js",
|
|
45
45
|
"require": "./dist/stores/index.cjs"
|
|
46
46
|
},
|
|
47
|
-
"./provider": {
|
|
47
|
+
"./provider": {
|
|
48
48
|
"types": "./dist/provider/index.d.ts",
|
|
49
49
|
"import": "./dist/provider/index.js",
|
|
50
50
|
"require": "./dist/provider/index.cjs"
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
"@dnd-kit/core": "^6.3.1",
|
|
110
110
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
111
111
|
"@dnd-kit/sortable": "^10.0.0",
|
|
112
|
-
"antd": "^
|
|
112
|
+
"antd": "^6.1.0",
|
|
113
113
|
"axios": "^1.10.0",
|
|
114
114
|
"crypto-js": "^4.2.0",
|
|
115
115
|
"dayjs": "^1.11.13",
|
|
@@ -128,8 +128,8 @@
|
|
|
128
128
|
"react-quill": "2.0.0",
|
|
129
129
|
"react-rnd": "^10.4.1",
|
|
130
130
|
"react-router-dom": "^7.6.3",
|
|
131
|
-
"realgrid": "^2.9.
|
|
132
|
-
"realgrid-react": "^0.9.
|
|
131
|
+
"realgrid": "^2.9.5",
|
|
132
|
+
"realgrid-react": "^0.9.7",
|
|
133
133
|
"recharts": "^3.2.0",
|
|
134
134
|
"zustand": "^5.0.6"
|
|
135
135
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),U=require("@ant-design/icons"),L=require("antd"),o=require("react"),p=require("dayjs"),l=require("./common-components-mXgJEMpT.cjs"),h=require("../components/core/index.cjs"),F=require("../utils/index.cjs"),W=[{label:"전체",value:""},{label:"기안",value:"DRAFT"},{label:"결재중",value:"IN_PROGRESS"},{label:"승인",value:"APPROVED"},{label:"반려",value:"REJECTED"}],Y=({popup:i,onClose:G})=>{const D=o.useRef(null),P=o.useRef(null),B=o.useRef(null),[j,v]=o.useState([]),[k,A]=o.useState(!1),[m,N]=o.useState(null),[I,E]=o.useState(1),[C,M]=o.useState(10),[K,O]=o.useState(0),T=o.useMemo(()=>{const a=p(),c=[];for(let s=1;s<=120;s++){const n=["DRAFT","IN_PROGRESS","APPROVED","REJECTED"];c.push({gwDcmtKey:`GW-${String(1e4+s)}`,gwDcmtNm:`업무 기안서 #${s}`,userId:`user${s%7+1}`,dprtNo:["HR","GEN","DEV1","DEV2","FIN"][s%5],aprvStts:n[s%n.length],aprvKey:F.generateUID(),createdAt:a.add(-(s%45),"day").hour(9+s%8).toISOString()})}return c},[]),w=o.useCallback(async(a,c)=>{A(!0),N(null);try{const s=B.current?.getFormData?.()??{},n=a??I,f=c??C,u={...s,page:n,pageSize:f},y=i?.popupParams?.serviceCode;if(y){const r=await F.callService(y,u),d=(r?.list||r?.data||[]).map(t=>({gwDcmtKey:t.gwDcmtKey??t.docNo??t.doc_id??t.id??"",gwDcmtNm:t.gwDcmtNm??t.title??t.subject??"",userId:t.userId??t.drafter??t.writerName??"",dprtNo:t.dprtNo??t.deptName??t.department??"",aprvStts:t.aprvStts??t.status??"DRAFT",createdAt:t.createdAt??t.writeYmd??t.created_at??"",aprvKey:t.aprvKey??void 0}));v(d),O(Number(r?.totalCount??r?.total??d.length));return}const S=T.filter(r=>{const d=u.keyword?.trim()?.toLowerCase(),t=!d||r.gwDcmtKey.toLowerCase().includes(d)||r.gwDcmtNm.toLowerCase().includes(d)||r.userId.toLowerCase().includes(d)||r.dprtNo.toLowerCase().includes(d),R=!u.status||r.aprvStts===u.status,g=u.createdAt,H=!g||(p(r.createdAt).isAfter(g[0].startOf("day"))||p(r.createdAt).isSame(g[0],"day"))&&(p(r.createdAt).isBefore(g[1].endOf("day"))||p(r.createdAt).isSame(g[1],"day"));return t&&R&&H});O(S.length);const x=(n-1)*f,$=S.slice(x,x+f);v($)}catch{L.message.error("목록 조회 중 오류가 발생했습니다.")}finally{A(!1)}},[I,C,i?.popupParams,T]);o.useEffect(()=>{w()},[]);const q=o.useCallback(()=>{E(1),w(1,C)},[w,C]),z=o.useCallback((a,c)=>{E(a),M(c),w(a,c)},[w]),b=o.useCallback(()=>{if(!m){L.message.warning("항목을 선택해주세요.");return}const a=i?.config;a?.onSelect?a.onSelect(m):i?.popupParams?.onSelect?i.popupParams.onSelect(m):i?.config?.callback&&i.config.callback(m),a?.onClose?.(),i?.close?.()},[m,i]),J=o.useMemo(()=>[{fieldName:"gwDcmtKey",name:"gwDcmtKey",header:{text:"문서번호"},width:140},{fieldName:"gwDcmtNm",name:"gwDcmtNm",header:{text:"제목"},width:260,button:"action"},{fieldName:"userId",name:"userId",header:{text:"기안자"},width:120},{fieldName:"aprvKey",name:"aprvKey",header:{text:"기안연계키값"},width:120},{fieldName:"dprtNo",name:"dprtNo",header:{text:"기안부서"},width:140},{fieldName:"aprvStts",name:"aprvStts",header:{text:"상태"},width:110},{fieldName:"createdAt",name:"createdAt",header:{text:"기안일"},width:160}],[]),_=o.useMemo(()=>({header:{height:40},display:{rowHeight:36},container:{indicator:!0,check:!1,footer:!1},edit:{editable:!1}}),[]),V=o.useMemo(()=>({onCellClicked:(a,c)=>{try{const s=c?.itemIndex??c?.dataRow??-1;if(s<0)return;const n=a.getDataSource()?.getJsonRow(s);n&&N(n)}catch{}},onCellDblClicked:(a,c)=>{try{const s=c?.itemIndex??c?.dataRow??-1;if(s<0)return;const n=a.getDataSource()?.getJsonRow(s);n&&(N(n),setTimeout(()=>b(),0))}catch{}},onCellButtonClicked(a,c,s){if(c.dataRow===void 0)return;let n=a.getDataSource().getJsonRow(c.dataRow);const f="https://kgwd.krx.co.kr/ezConn/ezApprGate.do",u="width=1000,height=600";console.log(n);const y=n?.dprtNo,S=n?.emplNo,x=n?.aprvKey,r=`${n?.formId}:${y}:${S}:${x}:SAMP`;console.log("@@ params",r);const d=new TextEncoder().encode(r),t=Array.from(d,g=>String.fromCharCode(g)).join(""),R=`${f}?connkey=${btoa(t)}`;console.log("@@ url",R),window.open(R,"_blank",u)}}),[b]);return o.useEffect(()=>{D.current&&D.current.addAllData(j||[])},[j]),o.useEffect(()=>{P.current&&P.current.setTotalData(K||0)},[K]),e.jsx(l.BwgPopup,{popup:i,buttons:[{id:"confirm",label:"확인",type:"primary",onClick:b}],onClose:()=>{i?.config?.onClose?.(),G?.(),i?.close?.()},children:e.jsx(l.ContentLayOut,{children:e.jsxs(l.ContentBox,{border:!1,style:{paddingBottom:16},children:[e.jsx(l.SearchBox,{ref:B,reqRows:e.jsx(e.Fragment,{children:e.jsx(l.BwgRow,{children:e.jsxs(l.BwgCol,{span:24,children:[e.jsx(l.BwgTitleBox,{title:"기안 검색"}),e.jsxs(l.BwgRow,{gutter:[12,8],style:{marginTop:8},children:[e.jsx(l.BwgCol,{span:8,children:e.jsx(h.BwgInput,{inputProps:{placeholder:"제목/기안자/부서/문서번호",prefix:e.jsx(U.SearchOutlined,{}),allowClear:!0,onPressEnter:q},itemProps:{name:"keyword"}})}),e.jsx(l.BwgCol,{span:6,children:e.jsx(h.BwgSelect,{selectProps:{options:W},itemProps:{label:"상태",name:"status"}})}),e.jsxs(l.BwgCol,{span:8,children:[e.jsx(h.BwgRangePicker,{type:"datetime",itemProps:{label:"기안일",name:"createdAt"},inputProps:{style:{width:"100%"},allowEmpty:[!1,!1]}}),e.jsx(h.BwgRangePicker,{type:"datetime",itemProps:{label:"기안완료일",name:"completedAt"},inputProps:{style:{width:"100%"},allowEmpty:[!1,!1]}})]}),e.jsx(l.BwgCol,{span:2,children:e.jsx(h.BwgButton,{type:"primary",onClick:q,loading:k,style:{width:"100%"},children:"검색"})})]})]})})})}),e.jsx(l.BwgGrid,{ref:D,type:"nrml",gridColumns:J,gridOptions:_,gridEvents:V}),e.jsx(l.BwgPagination,{ref:P,mode:"server",onServerPageChange:z,pageSizeOptions:[10,20,50,100]}),j.length===0&&!k&&e.jsx(l.BwgRow,{style:{display:"none"},children:e.jsx(l.BwgCol,{span:24,children:e.jsx("span",{})})})]})})})};exports.default=Y;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),I=require("@ant-design/icons"),t=require("antd"),he=require("dayjs"),n=require("react"),G=require("../stores/index.cjs"),f=require("./common-components-mXgJEMpT.cjs"),h=require("../utils/index.cjs"),l=require("../components/core/index.cjs"),ge=require("./provider-r4mkv5Zs.cjs"),{TextArea:fe}=t.Input,F=[{label:"전체",value:""},{label:"요청",value:"RQST"},{label:"문의",value:"INQR"}],je={INQR:"blue",RQST:"green",RPRT:"red",SGSN:"purple"},Q=[{label:"대기",value:"READY"},{label:"담당자 지정",value:"ASSIGNED"},{label:"처리중",value:"PROCESSING"},{label:"처리완료",value:"COMPLETED"},{label:"반려",value:"REJECTED"}],ye={READY:"gray",ASSIGNED:"blue",PROCESSING:"yellow",COMPLETED:"green",REJECTED:"red"},W={READY:0,ASSIGNED:25,PROCESSING:50,COMPLETED:100,REJECTED:100},Ie=({popup:S,onClose:O})=>{const{searchBoxRef:y}=ge.useSearchBox(),b=n.useRef(null),N=n.useRef(null),{user:C,hrInfo:H}=G.useUserStore(),{activeMenuItem:o}=G.useMenuViewStore(),[i]=t.Form.useForm(),[z,U]=n.useState(!1),[L,V]=n.useState(!1),[D,J]=n.useState(!1),[g,$]=n.useState(!1),[d,w]=n.useState(!1),[c,j]=n.useState("list");n.useState(null);const M=n.useRef(null),[R,A]=n.useState([]),[B,Y]=n.useState(""),[E,Ce]=n.useState(!1),[K,P]=n.useState(15),T=n.useRef(null),X=n.useMemo(()=>h.createBwgGridRenderer((s,r,a,u,p)=>{const x=s.getValue(r.index?.itemIndex,"type");p.render(e.jsx(t.Tag,{color:je[x],children:F.find(v=>v.value===x)?.label}))}),[]),Z=n.useMemo(()=>h.createBwgGridRenderer((s,r,a,u,p)=>{const x=s.getValue(r.index?.itemIndex,"status");p.render(e.jsx(t.Tag,{color:ye[x],children:Q.find(v=>v.value===x)?.label}))}),[]),_=n.useMemo(()=>h.createBwgGridRenderer((s,r,a,u,p)=>{s.getValue(r.index?.itemIndex,"urgentYn")==="Y"?p.render(e.jsx(I.AlertTwoTone,{twoToneColor:"red"})):p.render(e.jsx(e.Fragment,{}))}),[]),ee=[{fieldName:"boardMstrId",header:{text:"글 번호"},width:80},{name:"type",fieldName:"type",header:{text:"등록구분"},width:80,renderer:"tagType"},{fieldName:"title",header:{text:"제목"},width:200,styleName:"left"},{fieldName:"content",header:{text:"내용"},width:200,visible:!1},{name:"status",fieldName:"status",header:{text:"상태"},width:80,renderer:"statusTag"},{fieldName:"rgstUserId",visible:!1},{fieldName:"rgstUserNm",header:{text:"작성자"},width:100,styleName:"left"},{fieldName:"rgstUserDeptNm",visible:!1},{fieldName:"rgstDt",header:{text:"등록일자"},width:120,textFormat:h.realFormat.formatYmd,styleName:"right"},{fieldName:"dueDt",header:{text:"마감요청일자"},width:120,textFormat:h.realFormat.formatYmd,styleName:"right"},{fieldName:"urgentYn",header:{text:"긴급여부"},width:80,renderer:"alert"},{fieldName:"prcsUserId",visible:!1},{fieldName:"prcsUserNm",header:{text:"처리담당자"},width:100,styleName:"left"},{fieldName:"prcsUserDeptNm",visible:!1},{fieldName:"prcsDt",header:{text:"처리일자"},width:120,textFormat:h.realFormat.formatYmd,styleName:"right"},{fieldName:"scrnId",header:{text:"화면ID"},width:100,visible:!1},{fieldName:"menuId",header:{text:"메뉴ID"},width:100,visible:!1}],te={onCellDblClicked:(s,r)=>{const a=r.itemIndex??-1;if(a<0)return;const u=s.getValues(a);console.log("🔍 그리드 셀 더블클릭 이벤트:",u);const p={...u,menuId:o?.menuId,menuNm:o?.menuNm,scrnId:o?.scrnId};i.setFieldsValue(p),J(p.rgstUserId===C?.userId),$(p.status==="COMPLETED"||p.status==="REJECTED"),j("detail")}},k=()=>{i.resetFields(),j("list"),y?.current?.setFormData({menuId:o?.menuId,menuNm:o?.menuNm}),m.SCMBoardMstr0001(1,20)},q=async s=>{U(!0);try{i.validateFields().then(r=>{console.log("문의/신고 제출:",r),c==="new"?m.SCMBoardMstr0003(r):c==="detail"&&m.SCMBoardMstr0004(r)})}catch(r){console.error("문의/신고 제출 실패:",r)}finally{U(!1)}},se=()=>{m.SCMBoardMstr0005()},re=()=>{y?.current?.resetForm(),i.resetFields(),c==="new"?j("list"):(j("list"),O?.())},ne=()=>{y?.current?.resetForm(),i.resetFields(),j("list"),O?.()},le=()=>{(c==="detail"||c==="new")&&j("list")},ie=()=>{i.resetFields(),j("new")},ae=()=>{console.log("댓글 수동 새로고침"),P(15)},oe=()=>{if(!B.trim()){t.message.warning("댓글 상세내용 작성");return}m.SCMBoardDtls0002(i.getFieldValue("boardMstrId"),B.trim()),Y(""),setTimeout(()=>{M.current&&(M.current.scrollTop=M.current.scrollHeight)},100)},de=s=>{const r=R.find(a=>a.id===s);if(r&&r.regUserId!==C?.userId){t.message.error("본인이 작성한 댓글만 삭제할 수 있습니다.");return}m.SCMBoardDtls0003(i.getFieldValue("boardMstrId"),s)};n.useEffect(()=>{S&&setTimeout(()=>{m.SCMBoardMstr0001(1,20)},100)},[S]);const ce=()=>e.jsxs(f.ContentBox,{border:!1,children:[e.jsx(f.SearchBox,{border:!0,ref:y,reqRows:e.jsxs(e.Fragment,{children:[e.jsx(t.Row,{gutter:[16,8],style:{marginBottom:"8px"},children:e.jsx(t.Col,{span:24,children:e.jsx(l.BwgFormItem,{label:"화면 정보",name:void 0,children:e.jsxs(t.Space.Compact,{style:{width:"100%"},children:[e.jsx(t.Form.Item,{name:"menuId",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{disabled:!0})}),e.jsx(t.Form.Item,{name:"menuNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{disabled:!0})})]})})})}),e.jsxs(t.Row,{gutter:[16,8],style:{marginBottom:"8px"},children:[e.jsx(t.Col,{span:6,children:e.jsx(l.BwgSelect,{itemProps:{label:"등록구분",name:"type"},selectProps:{options:F}})}),e.jsx(t.Col,{span:12,children:e.jsx(l.BwgRangePicker,{itemProps:{label:"등록일자",name:"rgstDt"},inputProps:{allowEmpty:!0}})}),e.jsx(t.Col,{span:6,children:e.jsx(l.BwgSwitch,{itemProps:{name:"myArticle",label:"내 글만"},inputProps:{format:"YN",onChange:()=>console.log("hello!!")}})})]}),e.jsx(t.Row,{children:e.jsx(t.Col,{span:24,children:e.jsx(l.BwgInput,{itemProps:{label:"제목 및 내용",name:"keyword"}})})})]})}),e.jsx(f.BwgGrid,{ref:T,gridColumns:ee,gridEvents:te,gridOptions:{},renderers:[{name:"tagType",renderer:X},{name:"statusTag",renderer:Z},{name:"alert",renderer:_}]}),e.jsx(f.BwgPagination,{ref:b,mode:"server",onServerPageChange:(s,r)=>{console.log("🔄 서버 모드 페이징 변경:",{page:s,size:r}),m.SCMBoardMstr0001(s,r)},pageSizeOptions:[10,20,50,100]})]}),me=()=>e.jsxs(t.Splitter,{children:[e.jsx(t.Splitter.Panel,{defaultSize:"70%",min:"60%",max:"80%",style:{paddingRight:"15px",overflowX:"hidden",overflowY:"hidden"},children:e.jsx(f.ContentBox,{children:e.jsxs(t.Form,{form:i,onFinish:q,labelCol:{flex:"100px"},disabled:!D||g,children:[e.jsxs(t.Row,{gutter:[16,8],children:[e.jsxs(t.Col,{span:8,children:[e.jsx(t.Form.Item,{name:"boardMstrId",hidden:!0,children:e.jsx(t.Input,{})}),e.jsx(l.BwgSelect,{itemProps:{name:"type",label:"구분"},selectProps:{options:F}})]}),e.jsxs(t.Col,{span:16,children:[e.jsx(l.BwgFormItem,{label:"화면 정보",name:void 0,children:e.jsxs(t.Space.Compact,{children:[e.jsx(t.Form.Item,{name:"menuId",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"menuNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})}),e.jsx(t.Form.Item,{name:"scrnId",style:{width:"100%"},hidden:!0,children:e.jsx(t.Input,{readOnly:!0})})]})]}),e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgFormItem,{label:"작성자",name:void 0,children:e.jsxs(t.Space.Compact,{style:{width:"100%"},children:[e.jsx(t.Form.Item,{name:"rgstUserDeptNm",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"rgstUserId",hidden:!0}),e.jsx(t.Form.Item,{name:"rgstUserNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})})}),e.jsx(t.Col,{span:8,children:e.jsx(l.BwgDatePicker,{itemProps:{label:"작성일자",name:"rgstDt"},inputProps:{disabled:!0}})}),e.jsx(t.Col,{span:8,children:e.jsx(l.BwgSelect,{itemProps:{name:"status",label:"상태"},selectProps:{options:Q,disabled:!0}})})]}),e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgDatePicker,{itemProps:{label:"마감요청일",name:"dueDate"},inputProps:{disabled:!0}})}),e.jsx(t.Col,{span:8,children:e.jsxs(t.Flex,{vertical:!0,gap:2,children:[e.jsx("span",{style:{fontSize:"12px",color:"#000000E0"},children:"진척률"}),e.jsx(t.Progress,{percent:W[i.getFieldValue("status")],status:W[i.getFieldValue("status")]>0?"active":"normal",size:"small",format:s=>`${s}%`})]})}),e.jsx(t.Col,{span:8,children:e.jsx(l.BwgCheck,{itemProps:{name:"urgentYn",label:"긴급여부"},inputProps:{disabled:!0}})})]}),e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgFormItem,{label:"처리담당자",name:void 0,help:"",children:e.jsxs(t.Space.Compact,{children:[e.jsx(t.Form.Item,{name:"prcsUserDeptNm",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"prcsUserId",hidden:!0}),e.jsx(t.Form.Item,{name:"prcsUserNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})})}),e.jsx(t.Col,{span:8,children:e.jsx(l.BwgDatePicker,{itemProps:{label:"처리일자",name:"prcsDt"}})})]}),e.jsx(t.Row,{gutter:[16,8],children:e.jsx(t.Col,{span:24,children:e.jsx(l.BwgFormItem,{label:"제목",name:"title",style:{width:"100%"},children:e.jsx(t.Input,{})})})}),e.jsx(f.BwgEditor,{border:!1,itemProps:{name:"content",label:"내용",rules:[{required:!0,message:"내용을 입력하세요."}]},editorProps:{isEditing:D&&!g,title:{title:"에디터"}}})]})})}),e.jsx(t.Splitter.Panel,{collapsible:!0,style:{paddingLeft:"15px"},children:e.jsxs(f.ContentBox,{style:{flex:"0 0 400px",display:"flex",flexDirection:"column"},children:[e.jsxs("div",{style:{borderBottom:"1px solid #e8e8e8",paddingBottom:"12px",marginBottom:"16px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[e.jsx("span",{style:{fontSize:"14px",fontWeight:"600",color:"#262626"},children:"댓글"}),e.jsxs("div",{style:{position:"relative",display:"inline-block"},children:[e.jsx(t.Button,{type:"text",icon:e.jsx(I.ReloadOutlined,{spin:E||d}),onClick:ae,disabled:E||d,size:"small",style:{fontSize:"12px",color:g?"#d9d9d9":d?"#8c8c8c":"#595959",height:"24px",padding:"0 8px"}}),!g&&e.jsx("span",{style:{position:"absolute",top:"-4px",right:"-4px",fontSize:"10px",fontWeight:"700",color:E?"#8c8c8c":"#1890ff",minWidth:"14px",height:"14px",lineHeight:"14px",textAlign:"center",borderRadius:"50%",pointerEvents:"none"},children:K})]})]}),e.jsx("div",{ref:M,style:{flex:1,overflowY:"auto",marginBottom:"16px",minHeight:0,position:"relative"},children:d?e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"200px",color:"#8c8c8c"},children:[e.jsx("div",{style:{marginBottom:"12px"},children:e.jsx(I.ReloadOutlined,{spin:!0,style:{fontSize:"24px"}})}),e.jsx("div",{style:{fontSize:"13px"},children:"댓글을 불러오는 중..."})]}):R.length===0?e.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"200px",color:"#8c8c8c"},children:e.jsx("div",{style:{fontSize:"13px"},children:"등록된 댓글이 없습니다."})}):e.jsx(t.List,{dataSource:R,renderItem:s=>e.jsxs(t.List.Item,{style:{position:"relative",paddingRight:"20px",padding:"12px 20px 12px 12px",borderBottom:"1px solid #f0f0f0"},children:[e.jsx(t.List.Item.Meta,{avatar:e.jsx(t.Avatar,{size:32,style:{backgroundColor:"#1890ff",fontSize:"13px"},children:s.author[0]}),title:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"4px"},children:[e.jsx("span",{style:{fontWeight:"500",fontSize:"13px",color:"#262626"},children:s.author}),e.jsx("span",{style:{fontSize:"11px",color:"#8c8c8c"},children:s.regDt})]}),description:e.jsx("span",{style:{fontSize:"13px",color:"#595959",lineHeight:"1.5"},children:s.content})}),s.regUserId===C?.userId&&e.jsx(t.Button,{type:"text",danger:!0,icon:e.jsx(I.DeleteOutlined,{style:{fontSize:"12px"}}),size:"small",onClick:()=>de(s.id),disabled:d,style:{position:"absolute",right:"8px",top:"62%",transform:"translateY(-50%)",opacity:d?.3:.5,height:"24px",width:"24px",padding:0},onMouseEnter:r=>{d||(r.currentTarget.style.opacity="1")},onMouseLeave:r=>{r.currentTarget.style.opacity=d?"0.3":"0.5"}})]},s.id)})}),e.jsx("div",{style:{padding:"12px",borderTop:"1px solid #e8e8e8",backgroundColor:g?"#f5f5f5":"#fafafa",flexShrink:0,marginTop:"auto"},children:g?e.jsxs("div",{style:{textAlign:"center",padding:"20px",color:"#8c8c8c",fontSize:"13px",backgroundColor:"#ffffff",borderRadius:"6px",border:"1px solid #e8e8e8"},children:[e.jsx("div",{style:{marginBottom:"8px"},children:e.jsx(I.AlertTwoTone,{twoToneColor:"#faad14"})}),e.jsx("div",{children:"이미 완료처리된 게시글입니다."}),e.jsx("div",{style:{fontSize:"11px",marginTop:"4px"},children:"댓글을 작성할 수 없습니다."})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{marginBottom:"8px"},children:e.jsx(fe,{rows:2,placeholder:d?"댓글 처리 중...":"댓글을 입력하세요...",value:B,onChange:s=>Y(s.target.value),maxLength:300,disabled:d,style:{borderRadius:"6px",border:"1px solid #d9d9d9",resize:"none",fontSize:"13px",backgroundColor:d?"#f5f5f5":"#ffffff",color:d?"#8c8c8c":"#000000"},onFocus:s=>{d||(s.target.style.borderColor="#1890ff",s.target.style.boxShadow="0 0 0 2px rgba(24, 144, 255, 0.05)")},onBlur:s=>{s.target.style.borderColor="#d9d9d9",s.target.style.boxShadow="none"}})}),e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e.jsx("span",{style:{fontSize:"11px",color:"#8c8c8c"},children:d?"처리 중...":`${B.length} / 300자`}),e.jsx(t.Button,{type:"primary",onClick:oe,size:"small",loading:d,style:{borderRadius:"4px",fontSize:"12px",height:"28px",padding:"0 16px",fontWeight:"500"},disabled:!B.trim()||d,children:d?"등록 중...":"등록"})]})]})})]})})]}),ue=()=>e.jsx(f.ContentBox,{children:e.jsxs(l.BwgForm,{form:i,onFinish:q,initialValues:{type:"INQR"},labelCol:{flex:"100px"},style:{height:"100%",display:"flex",flexDirection:"column"},children:[e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgSelect,{itemProps:{name:"type",label:"구분",rules:[{required:!0,message:"구분을 선택해주세요."}]},selectProps:{options:[...F].filter(s=>s.value!=="")}})}),e.jsxs(t.Col,{span:16,children:[e.jsx(l.BwgFormItem,{label:"화면 정보",name:void 0,children:e.jsxs(t.Space.Compact,{style:{width:"100%"},children:[e.jsx(t.Form.Item,{name:"menuId",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"menuNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})}),e.jsx(t.Form.Item,{name:"scrnId",style:{width:"100%"},hidden:!0,children:e.jsx(t.Input,{readOnly:!0})})]})]}),e.jsxs(t.Row,{gutter:[16,8],children:[e.jsx(t.Col,{span:8,children:e.jsx(l.BwgFormItem,{label:"작성자",name:void 0,children:e.jsxs(t.Space.Compact,{style:{width:"100%"},children:[e.jsx(t.Form.Item,{name:"rgstUserDeptNm",style:{width:"40%",marginBottom:0,marginInlineEnd:0},validateStatus:"",help:"",children:e.jsx(t.Input,{readOnly:!0})}),e.jsx(t.Form.Item,{name:"rgstUserId",hidden:!0}),e.jsx(t.Form.Item,{name:"rgstUserNm",style:{width:"60%",marginBottom:0},children:e.jsx(t.Input,{readOnly:!0})})]})})}),e.jsx(t.Col,{span:6,children:e.jsx(l.BwgFormItem,{label:"작성일자",name:"rgstDt",style:{width:"100%"},children:e.jsx(t.DatePicker,{disabled:!0})})}),e.jsx(t.Col,{span:6,children:e.jsx(l.BwgFormItem,{label:"마감요청일",name:"dueDate",style:{width:"100%"},children:e.jsx(t.DatePicker,{disabled:!0})})}),e.jsx(t.Col,{span:4,children:e.jsx(l.BwgCheck,{itemProps:{name:"urgentYn",label:"긴급여부"},inputProps:{disabled:!0}})})]}),e.jsx(t.Row,{gutter:[16,8],children:e.jsx(t.Col,{span:24,children:e.jsx(l.BwgFormItem,{label:"제목",name:"title",style:{width:"100%"},rules:[{required:!0,message:"제목을 입력해주세요."}],children:e.jsx(t.Input,{})})})}),e.jsx(f.BwgEditor,{border:!1,itemProps:{name:"content"},editorProps:{isEditing:L,title:{title:e.jsxs(e.Fragment,{children:[e.jsx(I.EditOutlined,{style:{marginRight:"5px"}})," 상세내용 작성"]}),children:e.jsx(t.Button,{icon:e.jsx(I.EyeFilled,{}),onClick:()=>V(!L),children:"미리보기"})}}})]})});n.useEffect(()=>{c==="new"&&(V(!0),i.setFieldsValue({type:"INQR",menuId:o?.menuId,menuNm:o?.menuNm,scrnId:o?.scrnId,rgstUserId:C?.userId,rgstUserNm:C?.userNm,rgstUserDeptNm:H?.deptNm,rgstDt:he(),content:""}))},[c,i,o,C]),n.useEffect(()=>{if(c==="detail"&&!g){const s=setInterval(()=>{P(r=>r<=1?(console.log("🔄 댓글 자동 갱신 실행 (카운트다운 완료)"),m.SCMBoardDtls0001(i.getFieldValue("boardMstrId")),15):r-1)},1e3);return m.SCMBoardDtls0001(i.getFieldValue("boardMstrId")),()=>{console.log("🧹 댓글 인터벌 정리"),clearInterval(s)}}else c==="detail"&&g&&(console.log("📋 완료된 게시글 - 댓글 조회만"),m.SCMBoardDtls0001(i.getFieldValue("boardMstrId")))},[c,g,i]),n.useEffect(()=>()=>{console.log("🧹 컴포넌트 언마운트 - 모든 인터벌 정리"),N.current&&(clearInterval(N.current),N.current=null)},[]),n.useEffect(()=>{c==="list"&&o&&(y?.current?.setFormData({menuId:o?.menuId,menuNm:o?.menuNm}),m.SCMBoardMstr0001(1,20))},[c,o]),n.useEffect(()=>{S&&o&&y?.current?.setFormData({menuId:o?.menuId,menuNm:o?.menuNm})},[S,o]);const m={SCMBoardMstr0001:async(s,r)=>{const a=s||b.current?.currentPage||1,u=r||b.current?.pageSize||20,p={...y?.current?.getFormData(),pageNum:a,pageCount:u};console.log("🔍 서버 모드 페이징 요청:",p);try{const x=await h.callService("SCMBoardMstr0001",p,{isPopup:!0});if(x&&x.pageList){const v=x.pageCnt||0;b.current?.setTotalData(v),T.current?.addAllData(x.pageList)}else b.current?.setTotalData(0),T.current?.addAllData([]),console.log("📭 서버 모드 페이징 데이터 없음")}catch(x){console.error("❌ SCMBoardMstr0001 호출 실패:",x),t.message.error("데이터 조회 중 오류가 발생했습니다.")}},SCMBoardMstr0003:s=>{h.callService("SCMBoardMstr0003",{...s,status:"READY"},{isPopup:!0}).then(r=>{console.log("문의/신고 제출 응답:",r),t.message.success("정상 접수되었습니다."),k()}).catch(r=>{console.error("문의/신고 제출 실패:",r),t.message.error("접수 중 오류가 발생했습니다.")})},SCMBoardMstr0004:s=>{h.callService("SCMBoardMstr0004",{boardMstrId:i.getFieldValue("boardMstrId"),...s},{isPopup:!0}).then(r=>{console.log("문의/신고 제출 응답:",r),t.message.success("수정이 완료되었습니다."),k()}).catch(r=>{console.error("문의/신고 변경 실패:",r)})},SCMBoardMstr0005:()=>{h.callService("SCMBoardMstr0005",{boardMstrId:i.getFieldValue("boardMstrId")},{isPopup:!0}).then(s=>{console.log("문의/신고 삭제 응답:",s),t.message.success("삭제가 완료되었습니다."),k()})},SCMBoardDtls0001:s=>{w(!0),h.callService("SCMBoardDtls0001",{boardMstrId:s},{isPopup:!0,showLoading:!1}).then(r=>{if(r&&r.subList){const a=r.subList.map(u=>({id:u.seq,author:u.userNm||u.regUserId,regUserId:u.regUserId,content:u.content,regDt:u.regDt}));A(a)}else A([])}).catch(r=>{console.error("게시글 댓글 목록 조회 실패:",r),t.message.error("댓글 목록 조회 중 오류가 발생했습니다.")}).finally(()=>{w(!1),P(15)})},SCMBoardDtls0002:(s,r)=>{w(!0),h.callService("SCMBoardDtls0002",{boardMstrId:s,content:r},{isPopup:!0,showLoading:!1}).then(a=>{a&&a.result===1?(t.message.success("댓글이 등록되었습니다."),m.SCMBoardDtls0001(s)):t.message.error("댓글 등록에 실패했습니다.")}).catch(a=>{t.message.error("댓글 등록 중 오류가 발생했습니다.")}).finally(()=>{w(!1)})},SCMBoardDtls0003:(s,r)=>{w(!0),h.callService("SCMBoardDtls0003",{boardMstrId:s,seq:r},{isPopup:!0,showLoading:!1}).then(a=>{a&&a.result===1?(t.message.success("댓글이 삭제되었습니다."),m.SCMBoardDtls0001(s)):t.message.error("댓글 삭제에 실패했습니다.")}).catch(a=>{t.message.error("댓글 삭제 중 오류가 발생했습니다.")}).finally(()=>{w(!1)})}},pe=()=>{switch(c){case"list":return[{id:"REFRESH",label:"조회",type:"default",onClick:()=>m.SCMBoardMstr0001(),disabled:z},{id:"NEW",label:"신규 등록",type:"primary",onClick:ie}];case"detail":return[{id:"BACK",label:"뒤로",type:"default",onClick:le},{id:"EDIT",label:"수정",type:"primary",disabled:!D||g,onClick:()=>i.submit()},{id:"DELETE",label:"삭제",type:"default",disabled:!D||g,onClick:se}];case"new":return[{id:"SUBMIT",label:"제출",type:"primary",onClick:()=>i.submit(),disabled:z},{id:"CANCEL",label:"취소",type:"default",onClick:re}];default:return[]}},xe={};return e.jsxs(f.BwgPopup,{popup:S,buttons:pe(),popupEvent:xe,onClose:ne,children:[c==="list"&&ce(),c==="detail"&&me(),c==="new"&&ue()]})};exports.default=Ie;
|