Compare commits

...

221 Commits

Author SHA1 Message Date
f440b00387 Merge pull request 'dev' (#680) from dev into dev-deploy
Reviewed-on: #680
2026-03-03 19:58:22 +09:00
bbe5418f1c !!! 2026-03-03 19:54:40 +09:00
1638d0ae33 Resolve merge conflicts between dev and prd-deploy 2026-03-03 19:47:20 +09:00
61dc83d7db !!! 2026-03-03 19:30:23 +09:00
8d91a78dee 2차점 이상이 들어온 경우 물건번호에서 1차판매점 영역 비활성화 처리 2026-03-03 19:23:18 +09:00
7801f5a2d1 rackInfos is null: 랙을 그리려고 할 때 랙 정보가 없음 2026-03-03 19:23:18 +09:00
ab04911ac6 [1386] 1,2차 수정 2026-03-03 19:23:18 +09:00
95811760dc [1386] 1,2차 수정 2026-03-03 19:23:17 +09:00
1a2fa7bbf6 sk개선 2026-02-25 17:51:28 +09:00
5a64ff945a #1478 외벽선 작성으로 지붕면 할당 시 계산 오류 수정 2026-02-25 10:32:19 +09:00
022278a248 [1506] 동,현이동 sk 문제 2026-02-25 10:32:19 +09:00
f08b3cef5b [1475] 플랜복사(다중지붕 복사안됨 - 단일지붕) 2026-02-23 17:28:15 +09:00
fc9623d76d [1480] 설정값 오류 (이전플랜저장 -> 현플랜저장) 2026-02-23 16:53:45 +09:00
64db226721 이동시 spare 0.5 추가 2026-02-23 16:53:45 +09:00
f64d5c438e [1490]메뉴 표기 변경 요청 (실측값입력-> 배치면) 2026-02-23 16:53:45 +09:00
7836da9d43 rack정보 제대로 못가져오는 현상 수정 2026-02-23 09:09:03 +09:00
9944c92351 치수입력방식에 따른 페이지구분 2026-02-13 13:14:12 +09:00
89cefff5e4 Merge pull request '메뉴를 찾아가지 못하는 오류 발생' (#660) from dev into prd-deploy
Reviewed-on: #660
2026-02-12 15:58:00 +09:00
ab9920998e Merge pull request '[1455]처마커버 표시문제' (#658) from dev into prd-deploy
Reviewed-on: #658
2026-02-12 15:04:53 +09:00
af6e623ed1 Merge pull request '간격이 다를 때 스켈레톤이 문제' (#656) from dev into prd-deploy
Reviewed-on: #656
2026-02-12 14:24:55 +09:00
de83e75a8c Merge pull request 'dev' (#654) from dev into prd-deploy
Reviewed-on: #654
2026-02-11 18:39:26 +09:00
aa302aaa8d Merge pull request 'dev' (#652) from dev into prd-deploy
Reviewed-on: #652
2026-02-10 17:56:38 +09:00
a124f8dafb Merge pull request '케라바 지붕 출폭 0일때 문제 발생 사항 처리.' (#650) from dev into prd-deploy
Reviewed-on: #650
2026-02-09 17:49:21 +09:00
2b15dfb801 Merge pull request '특수문자 줄임' (#648) from dev into prd-deploy
Reviewed-on: #648
2026-02-09 13:48:52 +09:00
4d8ec15090 Merge pull request '[1449]3.변별 offset 설정 sk 설정' (#646) from dev into prd-deploy
Reviewed-on: #646
2026-02-06 15:11:50 +09:00
d041f00363 Merge pull request 'dev' (#644) from dev into prd-deploy
Reviewed-on: #644
2026-02-04 17:50:55 +09:00
de5370c2d3 Merge pull request '배치면의 경우 실제 길이 계산 시 통일 제거, 모듈 설치 시 영역 검사 spare 엄격하게 적용' (#642) from dev into prd-deploy
Reviewed-on: #642
2026-02-04 11:40:09 +09:00
547e516528 Merge pull request '[1455] 처마 커버 표시' (#640) from dev into prd-deploy
Reviewed-on: #640
2026-02-04 10:15:01 +09:00
1438ca59d1 Merge pull request '[1447] 전체 종류의 대각선 입력' (#638) from dev into prd-deploy
Reviewed-on: #638
2026-02-04 09:56:04 +09:00
8476bbb883 Merge pull request 'dev' (#636) from dev into prd-deploy
Reviewed-on: #636
2026-02-03 18:46:38 +09:00
9680824b87 Merge pull request '[1447]실측값 입력의 대각선 입력' (#634) from dev into prd-deploy
Reviewed-on: #634
2026-02-03 14:36:04 +09:00
383e1badbf Merge pull request '아이디 신청시 영문, 숫자, 특수문자만..입력가능' (#632) from dev into prd-deploy
Reviewed-on: #632
2026-02-03 14:11:40 +09:00
b7020af233 Merge pull request 'outerLine 선택 시 메뉴 변경' (#630) from dev into prd-deploy
Reviewed-on: #630
2026-02-02 18:23:04 +09:00
fcde23dc52 Merge pull request '[144]육지봉 메뉴 임시삭제(개발, 운영)' (#628) from dev into prd-deploy
Reviewed-on: #628
2026-02-02 14:35:05 +09:00
b1f7d1e408 Merge pull request 'dev' (#626) from dev into prd-deploy
Reviewed-on: #626
2026-02-02 14:30:58 +09:00
6cdd89eb0c [1436]처마 커버의 처음 체크2 2026-02-02 14:24:52 +09:00
79a66390b6 [1436]처마 커버의 처음 체크 2026-02-02 13:43:00 +09:00
c1a59041ba 이미지 캡쳐 시 해상력 2배 2026-02-02 13:43:00 +09:00
0257c4af85 Merge remote-tracking branch 'origin/prd-deploy' into prd-deploy 2026-01-30 18:31:09 +09:00
37fb19071c 모듈 설치 제대로 안되는 현상 수정 2026-01-30 18:30:39 +09:00
552cd7cc26 [1444]육지봉 TypeError: Cannot destructure property 'rackYn' of 'trestleDetail' as it is null. 2026-01-30 18:30:38 +09:00
8a20fee0f1 Merge pull request '[144]육지봉 메뉴 임시삭제' (#619) from dev into prd-deploy
Reviewed-on: #619
2026-01-30 14:01:14 +09:00
05b6c77fd6 Merge pull request 'dev' (#617) from dev into prd-deploy
Reviewed-on: #617
2026-01-30 11:40:21 +09:00
331a85f998 Merge pull request '[1436]처마 커버의 처음 체크' (#615) from dev into prd-deploy
Reviewed-on: #615
2026-01-29 10:21:51 +09:00
09a5fdba41 Merge pull request 'dev' (#613) from dev into prd-deploy
Reviewed-on: #613
2026-01-29 09:18:34 +09:00
1431dd9d9e Merge pull request '점선그리드만 제거' (#611) from dev into prd-deploy
Reviewed-on: #611
2026-01-28 09:54:23 +09:00
84c2642800 Merge pull request 'dev' (#609) from dev into prd-deploy
Reviewed-on: #609
2026-01-27 16:50:35 +09:00
3bfc976df7 Merge pull request 'eaveHelpLine planSize 추가' (#606) from dev into prd-deploy
Reviewed-on: #606
2026-01-26 18:44:35 +09:00
0102559a35 Merge pull request 'dev' (#604) from dev into prd-deploy
Reviewed-on: #604
2026-01-26 15:04:37 +09:00
9fcc0396ca Merge pull request 'dev' (#602) from dev into prd-deploy
Reviewed-on: #602
2026-01-26 08:42:26 +09:00
36bd66f41b Merge pull request 'dev' (#599) from dev into prd-deploy
Reviewed-on: #599
2026-01-23 17:45:05 +09:00
6de8e9bbba Merge pull request 'dev' (#597) from dev into prd-deploy
Reviewed-on: #597
2026-01-22 18:16:19 +09:00
ec5729fa8e Merge pull request 'dev' (#595) from dev into prd-deploy
Reviewed-on: #595
2026-01-20 18:32:28 +09:00
6268234324 Merge pull request 'dev' (#592) from dev into prd-deploy
Reviewed-on: #592
2026-01-19 15:40:30 +09:00
0f0af23131 Merge pull request 'dev' (#588) from dev into prd-deploy
Reviewed-on: #588
2026-01-19 13:41:48 +09:00
8c66a20f3a Merge pull request 'dev' (#585) from dev into prd-deploy
Reviewed-on: #585
2026-01-19 09:20:35 +09:00
a092132b9f Merge pull request 'dev' (#583) from dev into prd-deploy
Reviewed-on: #583
2026-01-15 18:34:18 +09:00
a0964efa08 Merge pull request 'dev' (#581) from dev into prd-deploy
Reviewed-on: #581
2026-01-14 12:23:17 +09:00
8a1e0fa638 Merge pull request 'dev' (#579) from dev into prd-deploy
Reviewed-on: #579
2026-01-12 16:57:33 +09:00
4133f1b512 Merge pull request 'dev' (#577) from dev into prd-deploy
Reviewed-on: #577
2026-01-12 15:39:51 +09:00
d59e64c5bb Merge pull request 'dev' (#573) from dev into prd-deploy
Reviewed-on: #573
2026-01-12 11:10:18 +09:00
f2b59553ad Merge pull request '시작 전 quotationParam null 세팅 추가' (#570) from dev into prd-deploy
Reviewed-on: #570
2026-01-09 17:01:02 +09:00
db34bcb9a5 Merge pull request 'dev' (#568) from dev into prd-deploy
Reviewed-on: #568
2026-01-09 10:37:48 +09:00
ff505130a2 Merge pull request 'dev' (#566) from dev into prd-deploy
Reviewed-on: #566
2026-01-08 19:04:31 +09:00
3f0e639877 Merge pull request 'dev' (#563) from dev into prd-deploy
Reviewed-on: #563
2026-01-08 18:15:37 +09:00
a2c02f6213 Merge pull request 'dev' (#561) from dev into prd-deploy
Reviewed-on: #561
2026-01-08 15:19:11 +09:00
dd2ee6385a Merge pull request '초기화' (#559) from dev into prd-deploy
Reviewed-on: #559
2026-01-08 10:18:14 +09:00
dc7f5e25e7 Merge pull request 'dev' (#557) from dev into prd-deploy
Reviewed-on: #557
2026-01-07 17:53:52 +09:00
6ec7355045 Merge pull request '방위각 제한 (-180 ~ 180) : string 제한' (#554) from dev into prd-deploy
Reviewed-on: #554
2026-01-06 14:40:16 +09:00
bdb8400d10 Merge pull request 'dev' (#552) from dev into prd-deploy
Reviewed-on: #552
2026-01-06 13:47:20 +09:00
faba67b232 Merge pull request 'dev' (#550) from dev into prd-deploy
Reviewed-on: #550
2026-01-05 19:02:58 +09:00
3ba8145d30 Merge pull request '회전 후 잘리는 현상 수정' (#548) from dev into prd-deploy
Reviewed-on: #548
2026-01-05 09:27:31 +09:00
2f58455802 Merge pull request '할당처리' (#546) from dev into prd-deploy
Reviewed-on: #546
2025-12-31 15:42:41 +09:00
af44dfaa70 Merge pull request 'dev' (#544) from dev into prd-deploy
Reviewed-on: #544
2025-12-31 15:40:20 +09:00
606b866b43 Merge pull request 'getAddLine(newPStart, newPEnd, 'red') 이동 - 동시변경' (#542) from dev into prd-deploy
Reviewed-on: #542
2025-12-31 10:20:54 +09:00
a730138f9f Merge pull request '수동 회로 설정 로직 수정' (#540) from dev into prd-deploy
Reviewed-on: #540
2025-12-31 08:28:11 +09:00
cbdeb88c43 Merge pull request 'session의 StoreId => 1,2차점 storeId' (#538) from dev into prd-deploy
Reviewed-on: #538
2025-12-30 14:30:23 +09:00
5a6b61f2d2 Merge pull request 'dev' (#536) from dev into prd-deploy
Reviewed-on: #536
2025-12-30 11:00:43 +09:00
39aa240725 Merge pull request 'dev' (#534) from dev into prd-deploy
Reviewed-on: #534
2025-12-29 22:51:45 +09:00
eba5c4f9b2 Merge pull request 'dev' (#532) from dev into prd-deploy
Reviewed-on: #532
2025-12-24 17:30:52 +09:00
8215730df0 Merge pull request 'dev' (#530) from dev into prd-deploy
Reviewed-on: #530
2025-12-24 15:09:12 +09:00
aef935fe48 Merge pull request 'row 선택 시 병렬 수 0으로 가는 현상 수정' (#527) from dev into prd-deploy
Reviewed-on: #527
2025-12-24 15:01:37 +09:00
2ed7700f66 Merge pull request 'dev' (#526) from dev into prd-deploy
Reviewed-on: #526
2025-12-24 14:25:44 +09:00
0cc722eb3b Merge pull request 'dev' (#524) from dev into prd-deploy
Reviewed-on: #524
2025-12-24 14:14:32 +09:00
34f97f04a8 Merge pull request 'onClick event 수정' (#522) from dev into prd-deploy
Reviewed-on: #522
2025-12-24 13:31:12 +09:00
fd65d17e9c Merge pull request 'dev' (#520) from dev into prd-deploy
Reviewed-on: #520
2025-12-24 10:42:52 +09:00
714d744d71 Merge pull request 'dev' (#518) from dev into prd-deploy
Reviewed-on: #518
2025-12-23 15:31:35 +09:00
48e6a090da Merge pull request '좌표삭제' (#516) from dev into prd-deploy
Reviewed-on: #516
2025-12-23 13:33:14 +09:00
72dd6ef5df Merge pull request 'dev' (#514) from dev into prd-deploy
Reviewed-on: #514
2025-12-22 18:22:19 +09:00
c7ef63152b Merge pull request 'dev' (#512) from dev into prd-deploy
Reviewed-on: #512
2025-12-22 17:34:54 +09:00
357e0b02ed Merge pull request '특이사항 제거' (#510) from dev into prd-deploy
Reviewed-on: #510
2025-12-22 13:20:16 +09:00
b33cc92daa Merge pull request '오브젝트 등록수정' (#508) from dev into prd-deploy
Reviewed-on: #508
2025-12-22 10:51:51 +09:00
e992e0f194 Merge pull request 'dev' (#506) from dev into prd-deploy
Reviewed-on: #506
2025-12-22 08:55:53 +09:00
533f7630ee Merge pull request '[1360] 일본어' (#504) from dev into prd-deploy
Reviewed-on: #504
2025-12-19 13:13:40 +09:00
9c9ca8f026 Merge pull request 'dev' (#502) from dev into prd-deploy
Reviewed-on: #502
2025-12-19 09:20:44 +09:00
c81a679a4f Merge pull request 'dev' (#499) from dev into prd-deploy
Reviewed-on: #499
2025-12-18 14:06:56 +09:00
6776b2b49a Merge pull request 'dev' (#496) from dev into prd-deploy
Reviewed-on: #496
2025-12-18 11:29:54 +09:00
9e06bb04a1 Merge pull request 'dev' (#494) from dev into prd-deploy
Reviewed-on: #494
2025-12-18 09:35:18 +09:00
d1742b3837 Merge pull request 'dev' (#492) from dev into prd-deploy
Reviewed-on: #492
2025-12-17 15:52:59 +09:00
d951cad178 Merge pull request 'dev' (#490) from dev into prd-deploy
Reviewed-on: #490
2025-12-16 18:36:59 +09:00
0abfb52931 Merge pull request '[1346]문의게시판 : cnustNm 추가' (#487) from dev into prd-deploy
Reviewed-on: #487
2025-12-16 14:43:05 +09:00
eb7555be49 Merge pull request 'dev' (#484) from dev into prd-deploy
Reviewed-on: #484
2025-12-16 11:21:52 +09:00
22f603d017 Merge remote-tracking branch 'origin/prd-deploy' into prd-deploy 2025-12-16 11:16:48 +09:00
cd97ada0df skeleton open 2025-12-16 11:14:58 +09:00
cc78381367 Merge pull request 'dev' (#481) from dev into prd-deploy
Reviewed-on: #481
2025-12-16 10:46:54 +09:00
b2108af279 Merge pull request 'dev' (#478) from dev into prd-deploy
Reviewed-on: #478
2025-12-15 18:23:24 +09:00
b854e03571 Merge pull request 'dev' (#475) from dev into prd-deploy
Reviewed-on: #475
2025-12-15 17:59:36 +09:00
be4e628c09 Merge pull request 'dev' (#472) from dev into prd-deploy
Reviewed-on: #472
2025-12-15 16:44:44 +09:00
f57b07e5e1 Merge pull request 'dev' (#470) from dev into prd-deploy
Reviewed-on: #470
2025-12-15 14:26:52 +09:00
71156e387e Merge pull request 'dev' (#467) from dev into prd-deploy
Reviewed-on: #467
2025-12-15 01:31:57 +09:00
8c7fd80743 할당완료 2025-12-13 17:19:18 +09:00
9fa8c1a534 Merge pull request 'dev' (#464) from dev into prd-deploy
Reviewed-on: #464
2025-12-13 17:14:18 +09:00
e9d0668ed2 group object 좌표 재계산 로직 수정 2025-12-13 17:09:50 +09:00
6633677890 도머 오프셋 선택 시 오류 수정 2025-12-13 17:09:50 +09:00
d519f9f080 플랜 이동 시 외벽선 남아있는 현상 수정
지붕재 변경 시 같은 지붕재를 가지고 있는 다른 지붕들의 지붕재도 변경 추가
2025-12-13 17:09:48 +09:00
fb8ce256ff 복사 후 문제 수정 2025-12-13 17:09:47 +09:00
d67147063f Merge pull request 'dev' (#446) from dev into prd-deploy
Reviewed-on: #446
2025-12-04 19:11:54 +09:00
a9732eb571 Merge pull request 'dev' (#440) from dev into prd-deploy
Reviewed-on: #440
2025-12-01 09:06:36 +09:00
11bd1ac009 Merge pull request 'dev' (#438) from dev into prd-deploy
Reviewed-on: #438
2025-11-27 10:35:09 +09:00
dcb9e06a09 Merge pull request 'dev' (#435) from dev into prd-deploy
Reviewed-on: #435
2025-11-26 18:12:53 +09:00
e18842036d Merge pull request '[1308] 촌에 소수점 입력 - {pitchText}' (#432) from dev into prd-deploy
Reviewed-on: #432
2025-11-26 09:31:30 +09:00
0de3584c70 Merge pull request '필요하지 않은 접힘 버튼 제거' (#429) from dev into prd-deploy
Reviewed-on: #429
2025-11-26 09:05:34 +09:00
1f126d169b Merge pull request 'dev' (#427) from dev into prd-deploy
Reviewed-on: #427
2025-11-25 13:34:38 +09:00
3dfd8e0ceb Merge pull request 'prd' (#424) from dev into prd-deploy
Reviewed-on: #424
2025-11-25 09:51:04 +09:00
879ace01c2 Merge pull request 'dev' (#421) from dev into prd-deploy
Reviewed-on: #421
2025-11-24 14:28:06 +09:00
9fa7d2afd4 Merge pull request 'dev' (#418) from dev into prd-deploy
Reviewed-on: #418
2025-11-24 14:10:33 +09:00
82e4b2d305 Merge pull request 'dev' (#416) from dev into prd-deploy
Reviewed-on: #416
2025-11-18 13:23:45 +09:00
81f9945b72 Merge pull request 'dev' (#414) from dev into prd-deploy
Reviewed-on: #414
2025-11-07 08:51:45 +09:00
43ae563b19 Merge pull request 'dev' (#411) from dev into prd-deploy
Reviewed-on: #411
2025-11-03 09:16:59 +09:00
6a47067060 Merge pull request 'dev' (#403) from dev into prd-deploy
Reviewed-on: #403
2025-10-28 16:43:02 +09:00
ea179e3ab5 Merge pull request '동,현이동 동일라인체크 변경, 상우선택시 초기화 문제' (#399) from dev into prd-deploy
Reviewed-on: #399
2025-10-22 17:30:03 +09:00
6dc12f3314 Merge pull request '[1258] api/v1/master/pcsMakerList 에 moduleMatlCds 파라미터 추가' (#397) from dev into prd-deploy
Reviewed-on: #397
2025-10-22 13:37:42 +09:00
061289133a Merge pull request '모듈시리즈 최초 전체 선택' (#395) from dev into prd-deploy
Reviewed-on: #395
2025-10-22 10:11:13 +09:00
9d49a06a8b Merge pull request 'dev' (#393) from dev into prd-deploy
Reviewed-on: #393
2025-10-21 10:53:13 +09:00
25462b6d61 Merge pull request '보조라인 길이 나오지 않음 => obj.name !== 'lengthText' && 추가' (#391) from dev into prd-deploy
Reviewed-on: #391
2025-10-16 18:07:02 +09:00
d9619599ea Merge pull request '360도 회전시 위치 수정' (#389) from dev into prd-deploy
Reviewed-on: #389
2025-10-16 08:31:07 +09:00
a64a016b51 Merge pull request '동, 현이동 확인항목 추가' (#387) from dev into prd-deploy
Reviewed-on: #387
2025-10-15 10:16:01 +09:00
1d8e09f1d2 Merge pull request 'dev' (#385) from dev into prd-deploy
Reviewed-on: #385
2025-10-15 09:14:04 +09:00
3cbb59d187 Merge pull request 'hipSize 간혹 오류발생 - 기본값 0 설정' (#383) from dev into prd-deploy
Reviewed-on: #383
2025-10-14 11:07:43 +09:00
30f062e759 Merge pull request '문의게시판 저장수정 글자변경' (#381) from dev into prd-deploy
Reviewed-on: #381
2025-10-14 11:00:43 +09:00
5b92c6c99f Merge pull request '문의사항' (#379) from dev into prd-deploy
Reviewed-on: #379
2025-10-01 11:11:26 +09:00
10bff1745e Merge pull request '견적서 및 발전량에 페이지에서 canvas가 null임..' (#377) from dev into prd-deploy
Reviewed-on: #377
2025-09-30 18:22:13 +09:00
8c07acb577 Merge pull request '[1222]견적의 제품 정보 화면에 대해서 - 그룹별 추가' (#375) from dev into prd-deploy
Reviewed-on: #375
2025-09-30 18:14:35 +09:00
60588d2184 Merge pull request 'input 계산기추가(전각)' (#373) from dev into prd-deploy
Reviewed-on: #373
2025-09-30 14:26:46 +09:00
211a81362b Merge pull request '[big.js] Division by zero - actualSize 가 0이 되어 나누기에 문제가 됨' (#371) from dev into prd-deploy
Reviewed-on: #371
2025-09-30 14:24:49 +09:00
c61669d9f2 Merge pull request '스켈레톤.v0.1' (#369) from dev into prd-deploy
Reviewed-on: #369
2025-09-30 13:43:21 +09:00
b0fa0888de Merge pull request 'dev' (#367) from dev into prd-deploy
Reviewed-on: #367
2025-09-30 13:40:20 +09:00
94a60bf196 Merge pull request 'dev' (#365) from dev into prd-deploy
Reviewed-on: #365
2025-09-29 11:40:27 +09:00
8bcc4ac8d1 Merge pull request 'dev' (#363) from dev into prd-deploy
Reviewed-on: #363
2025-09-26 18:08:52 +09:00
6f689a5321 Merge pull request '[1237] 모듈 자동 선택 문제' (#360) from dev into prd-deploy
Reviewed-on: #360
2025-09-26 10:58:29 +09:00
a6d9e0c41b Merge pull request 'trestleState.constTp === data.constTp),' (#358) from dev into prd-deploy
Reviewed-on: #358
2025-09-25 10:56:16 +09:00
a1a7dcb1bf Merge pull request 'next trestleState.constTp' (#356) from dev into prd-deploy
Reviewed-on: #356
2025-09-25 10:53:22 +09:00
a13995dec1 Merge pull request '[1237] 모듈/가대 목록 - timeout 연장' (#354) from dev into prd-deploy
Reviewed-on: #354
2025-09-24 13:04:16 +09:00
1f08fc73f7 Merge pull request 'dev' (#352) from dev into prd-deploy
Reviewed-on: #352
2025-09-24 10:11:15 +09:00
8dc8318048 Merge pull request 'dev' (#350) from dev into prd-deploy
Reviewed-on: #350
2025-09-22 18:29:09 +09:00
8cf2acb7a7 Merge pull request '지붕 회전 시 내부 오브젝트(개구, 도머, 그림자) 회전 반영' (#348) from dev into prd-deploy
Reviewed-on: #348
2025-09-19 13:03:59 +09:00
6d508fe314 Merge pull request 'dev' (#346) from dev into prd-deploy
Reviewed-on: #346
2025-09-17 10:32:08 +09:00
d85dcd37ee Merge pull request 'dev' (#344) from dev into prd-deploy
Reviewed-on: #344
2025-09-15 21:26:49 +09:00
1393422a4a Merge pull request '[1216] 모듈에 시리즈 추가 - 시리즈가 존재하지 않는 모듈존재' (#340) from dev into prd-deploy
Reviewed-on: #340
2025-09-12 10:45:15 +09:00
e4c7ab2913 Merge pull request 'dev' (#338) from dev into prd-deploy
Reviewed-on: #338
2025-09-11 09:57:01 +09:00
e28a37e388 Merge pull request 'dev' (#336) from dev into prd-deploy
Reviewed-on: #336
2025-09-10 18:27:50 +09:00
eef21b9023 Merge pull request 'dev' (#334) from dev into prd-deploy
Reviewed-on: #334
2025-09-09 17:16:43 +09:00
69fdaf0ae4 Merge pull request 'dev' (#331) from dev into prd-deploy
Reviewed-on: #331
2025-09-04 17:09:37 +09:00
46c083b982 Merge pull request '원상복구 prd-deploy checkout' (#328) from dev into prd-deploy
Reviewed-on: #328
2025-09-03 19:20:34 +09:00
45a353276d Merge pull request 'prd-deploy checkout' (#327) from dev into prd-deploy
Reviewed-on: #327
2025-09-03 19:13:18 +09:00
2c3314715b Merge pull request 'dev' (#326) from dev into prd-deploy
Reviewed-on: #326
2025-09-03 14:52:32 +09:00
abf25c9d4e Merge pull request 'dev' (#320) from dev into prd-deploy
Reviewed-on: #320
2025-09-02 18:39:34 +09:00
043c369c0e value, defaultValue 동시 존재 안됨 => defaultValue 삭제 2025-09-02 17:31:51 +09:00
1b678ecaa0 <thead><th></th></thead> => <tr></tr>추가 2025-09-02 17:31:51 +09:00
8a61f90971 big.mjs:139 Uncaught Error: [big.js] Invalid number
at klass.setLength (QLine.js:72:36) (NaN => 0 처리)
2025-09-02 17:31:51 +09:00
68680e0042 동일 경사, 동일 방면 체크되어있을 경우에만 정렬 2025-09-02 15:29:28 +09:00
bcd73e4f96 Merge pull request 'dev' (#315) from dev into prd-deploy
Reviewed-on: #315
2025-08-29 08:40:08 +09:00
7846d729c8 Merge pull request 'dev' (#313) from dev into prd-deploy
Reviewed-on: #313
2025-08-26 18:23:21 +09:00
cc9aa1c347 Merge pull request 'dev' (#311) from dev into prd-deploy
Reviewed-on: #311
2025-08-26 15:29:03 +09:00
6748f2944d Merge pull request '[1237]모듈설정, 공법설정시에 미리 규정의 내용이 입력, 기본지붕설정 <=> 개뱔지붕설정[0]' (#309) from dev into prd-deploy
Reviewed-on: #309
2025-08-25 17:40:51 +09:00
1a7ce2cc09 Merge pull request '[1256] : 【HANASYS DESIGN】ラックレス金具の中間部と端部の色分けをしたい' (#307) from dev into prd-deploy
Reviewed-on: #307
2025-08-25 16:57:14 +09:00
3ab6a1ffe1 Merge pull request '[1252] 일본의 전각 숫자, 반각 함수변경' (#305) from dev into prd-deploy
Reviewed-on: #305
2025-08-22 18:37:31 +09:00
bbbc8cffaa Merge pull request '[1252] 일본의 전각 숫자, 반각 함수변경' (#303) from dev into prd-deploy
Reviewed-on: #303
2025-08-22 18:03:20 +09:00
5e4b22cdff Merge pull request '[1252] 일본의 전각 숫자, 반각 함수변경' (#301) from dev into prd-deploy
Reviewed-on: #301
2025-08-22 10:44:05 +09:00
112212170b Merge pull request '[1252] 일본의 전각 숫자, 반각 함수변경' (#299) from dev into prd-deploy
Reviewed-on: #299
2025-08-22 10:05:52 +09:00
441800fc1c Merge pull request '[1252] 일본의 전각 숫자, 반각 숫자 입력' (#297) from dev into prd-deploy
Reviewed-on: #297
2025-08-21 18:46:52 +09:00
78ee3c41ec Merge pull request '[1249] 주소의 상세 주소란의 필수 입력을 중지' (#295) from dev into prd-deploy
Reviewed-on: #295
2025-08-21 09:27:45 +09:00
475e981a4c Merge pull request '[1267] 500에러 - str => Number 변환 (Number로 한번더)' (#293) from dev into prd-deploy
Reviewed-on: #293
2025-08-20 19:03:17 +09:00
fcf1f971ce Merge pull request '[1267] 500에러 - str => Number 변환 (이전으로 복구)' (#291) from dev into prd-deploy
Reviewed-on: #291
2025-08-20 18:31:22 +09:00
ee54f532cb Merge pull request '[1267] 500에러 - str => Number 변환' (#289) from dev into prd-deploy
Reviewed-on: #289
2025-08-20 17:01:43 +09:00
5ec3a1441f Merge pull request 'pcsMaker는 항상 새로 불러오도록 수정' (#287) from dev into prd-deploy
Reviewed-on: #287
2025-08-20 16:17:58 +09:00
6645568502 Merge pull request 'dev' (#285) from dev into prd-deploy
Reviewed-on: #285
2025-08-20 08:52:41 +09:00
ebb45740a8 Merge pull request 'dev' (#283) from dev into prd-deploy
Reviewed-on: #283
2025-08-08 16:40:29 +09:00
59db4d471f Merge pull request 'dev' (#281) from dev into prd-deploy
Reviewed-on: #281
2025-08-08 14:52:34 +09:00
023bc91c29 Merge pull request '숫자입력 ''=> 0 으로 처리' (#279) from dev into prd-deploy
Reviewed-on: #279
2025-08-05 13:55:23 +09:00
9b18a8a655 Merge pull request 'dev' (#277) from dev into prd-deploy
Reviewed-on: #277
2025-08-05 11:31:22 +09:00
c0fa177f1c Merge pull request 'dev' (#275) from dev into prd-deploy
Reviewed-on: #275
2025-08-04 17:28:22 +09:00
8d57bf84bd Merge pull request '[1217]줌 50->10%' (#271) from dev into prd-deploy
Reviewed-on: #271
2025-08-04 13:58:10 +09:00
668f76c8ed Merge pull request '[1226]브라우저를 다시 로드하면 지붕재가 리셋' (#269) from dev into prd-deploy
Reviewed-on: #269
2025-08-04 13:11:28 +09:00
fd203aeb10 Merge pull request 'dev' (#267) from dev into prd-deploy
Reviewed-on: #267
2025-08-01 17:41:54 +09:00
c58f230607 Merge pull request '[1226]브라우저를 다시 로드하면 지붕재가 리셋' (#265) from dev into prd-deploy
Reviewed-on: #265
2025-08-01 13:30:25 +09:00
2a3f3bb568 Merge pull request 'globalPitch 추가' (#263) from dev into prd-deploy
Reviewed-on: #263
2025-07-31 17:43:24 +09:00
d49fdc8948 Merge pull request 'dev' (#261) from dev into prd-deploy
Reviewed-on: #261
2025-07-31 16:02:34 +09:00
6e65d5fa6c Merge pull request 'dev' (#259) from dev into prd-deploy
Reviewed-on: #259
2025-07-31 10:23:15 +09:00
51e693ac91 Merge pull request 'dev' (#257) from dev into prd-deploy
Reviewed-on: #257
2025-07-30 17:47:41 +09:00
e5e3efef49 Merge pull request 'dev' (#255) from dev into prd-deploy
Reviewed-on: #255
2025-07-30 15:05:45 +09:00
f95c414b31 Merge pull request 'dev' (#253) from dev into prd-deploy
Reviewed-on: #253
2025-07-30 10:18:05 +09:00
ae3087de14 Merge pull request 'dev' (#251) from dev into prd-deploy
Reviewed-on: #251
2025-07-29 16:51:23 +09:00
5f034c1652 Merge pull request 'dev' (#249) from dev into prd-deploy
Reviewed-on: #249
2025-07-29 16:33:19 +09:00
e8dab08423 Merge pull request '[1191] T01에 한정 엑셀에 영업점 주소, 전화번호, fax' (#247) from dev into prd-deploy
Reviewed-on: #247
2025-07-29 10:06:04 +09:00
d92168316f Merge pull request '운영 소스 반영 확인을 위한 commit' (#245) from dev into prd-deploy
Reviewed-on: #245
2025-07-28 14:54:56 +09:00
0dc7b62fae Merge pull request '[1205] DXF => PNG 추가, 메시지 일본어 추가' (#243) from dev into prd-deploy
Reviewed-on: #243
2025-07-28 14:27:04 +09:00
81b8e4ff3a Merge pull request '보조선 이동, 복사 시 innerLines에 추가' (#241) from dev into prd-deploy
Reviewed-on: #241
2025-07-25 17:23:32 +09:00
cfe3f416c7 Merge pull request '개구, 도머 설치시 sizesetting popup open' (#239) from dev into prd-deploy
Reviewed-on: #239
2025-07-25 14:26:06 +09:00
0b246cb9a5 Merge pull request '[]' (#237) from dev into prd-deploy
Reviewed-on: #237
2025-07-24 15:57:06 +09:00
764be3f594 Merge pull request '보조선 처리 추가' (#235) from dev into prd-deploy
Reviewed-on: #235
2025-07-24 15:25:40 +09:00
c5e2a56e08 Merge pull request 'dev' (#233) from dev into prd-deploy
Reviewed-on: #233
2025-07-24 13:30:49 +09:00
f969cdba6a Merge pull request 'dev' (#231) from dev into prd-deploy
Reviewed-on: #231
2025-07-23 17:05:10 +09:00
fdbedb23a4 Merge pull request 'dev' (#229) from dev into prd-deploy
Reviewed-on: #229
2025-07-22 15:12:41 +09:00
9655d2dc59 Merge pull request 'dev' (#227) from dev into prd-deploy
Reviewed-on: #227
2025-07-22 13:23:17 +09:00
aae7b21d08 Merge pull request 'dev' (#225) from dev into prd-deploy
Reviewed-on: #225
2025-07-22 09:09:37 +09:00
1a52f1b9e6 Merge pull request 'dev' (#223) from dev into prd-deploy
Reviewed-on: #223
2025-07-21 15:37:13 +09:00
8fa230e91a Merge pull request '보조선 작성 완료 시 선택 안되는 현상 수정' (#221) from dev into prd-deploy
Reviewed-on: #221
2025-07-21 10:02:20 +09:00
07f8fb24e4 Merge pull request 'dev' (#219) from dev into prd-deploy
Reviewed-on: #219
2025-07-21 09:13:25 +09:00
c35faea196 Merge pull request 'dev' (#217) from dev into prd-deploy
Reviewed-on: #217
2025-07-18 15:09:21 +09:00
d11a626321 Merge pull request '지붕면 할당 로직 수정' (#215) from dev into prd-deploy
Reviewed-on: #215
2025-07-17 17:02:40 +09:00
9 changed files with 651 additions and 2 deletions

1
last_updated.log Executable file
View File

@ -0,0 +1 @@
1772531776

BIN
sl Executable file

Binary file not shown.

272
snippet.js Normal file
View File

@ -0,0 +1,272 @@
/**
* Renders an edge result (polygon) on the canvas
* @param {Object} res - Edge result object containing polygon vertices
* @param wallLineStart
* @param wallLineEnd
* @param {Array} res.Polygon - Array of vertex objects with X,Y coordinates
*/
const drawEdgeResult = (res, wallLineStart, wallLineEnd) => {
if (!ctx || res.Polygon.length < 2) return;
// 삼각형 polygon인지 확인 (3개의 점으로 구성)
const isTriangle = res.Polygon.length === 3;
if (isTriangle) {
// 삼각형인 경우 직선을 그리기
drawStraightLineFromSkeleton(res);
return;
}
const skelP0 = { x: res.Polygon[0].X, y: res.Polygon[0].Y };
const skelP1 = { x: res.Polygon[1].X, y: res.Polygon[1].Y };
// Helper function to check if a point is on a line segment
const isPointOnSegment = (p, q, r) => {
return (
q.x <= Math.max(p.x, r.x) &&
q.x >= Math.min(p.x, r.x) &&
q.y <= Math.max(p.y, r.y) &&
q.y >= Math.min(p.y, r.y)
);
};
// Helper function to check for collinearity
const areCollinear = (p, q, r) => {
const val = (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
return Math.abs(val) < 1e-9; // Use a small tolerance for float comparison
};
let isOverlapping = false;
for (let i = 0; i < points.length; i++) {
const polyP1 = { x: points[i][0], y: points[i][1] };
const polyP2 = { x: points[(i + 1) % points.length][0], y: points[(i + 1) % points.length][1] };
// Check if the skeleton edge is collinear with the polygon edge
// and if the skeleton points lie on the polygon edge segment.
if (areCollinear(polyP1, polyP2, skelP0) &&
areCollinear(polyP1, polyP2, skelP1) &&
isPointOnSegment(polyP1, skelP0, polyP2) &&
isPointOnSegment(polyP1, skelP1, polyP2)) {
isOverlapping = true;
break;
}
}
const p0 = res.Polygon[0];
const p1 = res.Polygon[1];
const dx = p1.X - p0.X;
const dy = p1.Y - p0.Y;
const len = Math.hypot(dx, dy);
if (len === 0) return;
// 정규화된 방향 벡터 계산
const dirX = dx / len;
const dirY = dy / len;
// First pass: Create a filled polygon (transparent fill)
ctx.globalAlpha = 0.2; // Fully transparent
ctx.beginPath();
ctx.fillStyle = 'green';
// Start from first vertex
ctx.moveTo(res.Polygon[0].X, res.Polygon[0].Y);
// Draw lines to each subsequent vertex
for (const v of res.Polygon) {
ctx.lineTo(v.X, v.Y);
}
ctx.closePath();
ctx.fill();
// Second pass: Draw the polygon outline
ctx.globalAlpha = 1; // Fully opaque
ctx.beginPath();
ctx.strokeStyle = isOverlapping ? 'red' : '#3C78D8'; // Blue color
ctx.lineWidth = 3; // 3px line width
// Redraw the same polygon shape
ctx.moveTo(res.Polygon[0].X, res.Polygon[0].Y);
for (const v of res.Polygon) {
const wX = wallLineStart.X;
const wY = wallLineStart.Y;
const wEndX = wallLineEnd.X;
const wEndY = wallLineEnd.Y;
console.log("1::", v.X, v.Y);
if ((v.X === wallLineStart.X && v.Y === wallLineEnd.Y) || (v.X === wallLineEnd.X && v.Y === wallLineStart.Y)) {
console.log(v.X, v.Y);
}else{
ctx.lineTo(v.X, v.Y);
}
ctx.lineTo(v.X, v.Y);
}
ctx.closePath();
ctx.stroke();
};
/**
* 삼각형 polygon 대신 직선을 그리는 함수
* @param {Object} res - Edge result object containing polygon vertices
*/
const drawStraightLineFromSkeleton = (res) => {
if (!ctx || res.Polygon.length !== 3) return;
// 삼각형의 세 점
const p1 = res.Polygon[0];
const p2 = res.Polygon[1];
const p3 = res.Polygon[2];
// 다각형의 경계에 있는 점들을 찾기 (원래 다각형의 변 위에 있는 점들)
const boundaryPoints = [];
const innerPoints = [];
[p1, p2, p3].forEach(point => {
let isOnBoundary = false;
// 원래 다각형의 각 변과 비교
for (let i = 0; i < points.length; i++) {
const lineStart = points[i];
const lineEnd = points[(i + 1) % points.length];
// 점이 이 변 위에 있는지 확인
if (isPointOnLine(point, lineStart, lineEnd)) {
isOnBoundary = true;
break;
}
}
if (isOnBoundary) {
boundaryPoints.push(point);
} else {
innerPoints.push(point);
}
});
// 경계점이 2개이고 내부점이 1개인 경우 (일반적인 삼각형 케이스)
if (boundaryPoints.length === 2 && innerPoints.length === 1) {
const innerPoint = innerPoints[0];
// 내부점에서 맞은편 경계까지의 직선을 그리기
drawExtendedLine(innerPoint, boundaryPoints);
}
};
/**
* 점이 선분 위에 있는지 확인하는 함수
*/
const isPointOnLine = (point, lineStart, lineEnd) => {
const tolerance = 1; // 허용 오차
// 점과 선분의 두 끝점 사이의 거리 합이 선분의 길이와 같은지 확인
const d1 = Math.hypot(point.X - lineStart[0], point.Y - lineStart[1]);
const d2 = Math.hypot(point.X - lineEnd[0], point.Y - lineEnd[1]);
const lineLength = Math.hypot(lineEnd[0] - lineStart[0], lineEnd[1] - lineStart[1]);
return Math.abs(d1 + d2 - lineLength) < tolerance;
};
/**
* 내부점에서 맞은편 경계까지 직선을 연장해서 그리는 함수
*/
const drawExtendedLine = (innerPoint, boundaryPoints) => {
if (boundaryPoints.length !== 2) return;
// 경계점들의 중점 계산 (삼각형의 밑변 중점)
const midPoint = {
X: (boundaryPoints[0].X + boundaryPoints[1].X) / 2,
Y: (boundaryPoints[0].Y + boundaryPoints[1].Y) / 2
};
// 내부점에서 중점으로의 방향 벡터 계산
const dirX = midPoint.X - innerPoint.X;
const dirY = midPoint.Y - innerPoint.Y;
const len = Math.hypot(dirX, dirY);
if (len === 0) return;
// 정규화된 방향 벡터
const normalizedDirX = dirX / len;
const normalizedDirY = dirY / len;
// 맞은편 경계와의 교점 찾기
const intersectionPoint = findIntersectionWithBoundary(innerPoint, normalizedDirX, normalizedDirY);
if (intersectionPoint) {
// 직선 그리기
ctx.beginPath();
ctx.strokeStyle = '#3C78D8'; // 파란색
ctx.lineWidth = 3;
ctx.moveTo(innerPoint.X, innerPoint.Y);
ctx.lineTo(intersectionPoint.X, intersectionPoint.Y);
ctx.stroke();
}
};
/**
* 점에서 특정 방향으로 다각형 경계와의 교점을 찾는 함수
*/
const findIntersectionWithBoundary = (startPoint, dirX, dirY) => {
let closestIntersection = null;
let minDistance = Infinity;
// 모든 다각형의 변과 교점 확인
for (let i = 0; i < points.length; i++) {
const lineStart = points[i];
const lineEnd = points[(i + 1) % points.length];
// 레이와 선분의 교점 계산
const intersection = getLineIntersection(
startPoint,
{ X: startPoint.X + dirX * 1000, Y: startPoint.Y + dirY * 1000 }, // 충분히 긴 레이
{ X: lineStart[0], Y: lineStart[1] },
{ X: lineEnd[0], Y: lineEnd[1] }
);
if (intersection) {
// 교점이 시작점에서 올바른 방향에 있는지 확인
const toIntersection = {
X: intersection.X - startPoint.X,
Y: intersection.Y - startPoint.Y
};
// 내적으로 방향 확인 (양수면 같은 방향)
const dotProduct = toIntersection.X * dirX + toIntersection.Y * dirY;
if (dotProduct > 0) { // 올바른 방향
const distance = Math.hypot(toIntersection.X, toIntersection.Y);
if (distance < minDistance) {
minDistance = distance;
closestIntersection = intersection;
}
}
}
}
return closestIntersection;
};
/**
* 선분의 교점을 계산하는 함수
*/
const getLineIntersection = (p1, p2, p3, p4) => {
const x1 = p1.X, y1 = p1.Y;
const x2 = p2.X, y2 = p2.Y;
const x3 = p3.X, y3 = p3.Y;
const x4 = p4.X, y4 = p4.Y;
const denom = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);
if (Math.abs(denom) < 1e-10) return null; // 평행선
const t = ((x1 - x3) * (y3 - y4) - (y1 - y3) * (x3 - x4)) / denom;
const u = -((x1 - x2) * (y1 - y3) - (y1 - y2) * (x1 - x3)) / denom;
// 두 번째 선분(다각형의 변) 위에 교점이 있는지 확인
if (u >= 0 && u <= 1) {
return {
X: x1 + t * (x2 - x1),
Y: y1 + t * (y2 - y1)
};
}
return null;
};

272
snippet2.js Normal file
View File

@ -0,0 +1,272 @@
/**
* Renders an edge result (polygon) on the canvas
* @param {Object} res - Edge result object containing polygon vertices
* @param wallLineStart
* @param wallLineEnd
* @param {Array} res.Polygon - Array of vertex objects with X,Y coordinates
*/
const drawEdgeResult = (res, wallLineStart, wallLineEnd) => {
if (!ctx || res.Polygon.length < 2) return;
// 삼각형 polygon인지 확인 (3개의 점으로 구성)
const isTriangle = res.Polygon.length === 3;
if (isTriangle) {
// 삼각형인 경우 직선을 그리기
drawStraightLineFromSkeleton(res);
return;
}
const skelP0 = { x: res.Polygon[0].X, y: res.Polygon[0].Y };
const skelP1 = { x: res.Polygon[1].X, y: res.Polygon[1].Y };
// Helper function to check if a point is on a line segment
const isPointOnSegment = (p, q, r) => {
return (
q.x <= Math.max(p.x, r.x) &&
q.x >= Math.min(p.x, r.x) &&
q.y <= Math.max(p.y, r.y) &&
q.y >= Math.min(p.y, r.y)
);
};
// Helper function to check for collinearity
const areCollinear = (p, q, r) => {
const val = (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
return Math.abs(val) < 1e-9; // Use a small tolerance for float comparison
};
let isOverlapping = false;
for (let i = 0; i < points.length; i++) {
const polyP1 = { x: points[i][0], y: points[i][1] };
const polyP2 = { x: points[(i + 1) % points.length][0], y: points[(i + 1) % points.length][1] };
// Check if the skeleton edge is collinear with the polygon edge
// and if the skeleton points lie on the polygon edge segment.
if (areCollinear(polyP1, polyP2, skelP0) &&
areCollinear(polyP1, polyP2, skelP1) &&
isPointOnSegment(polyP1, skelP0, polyP2) &&
isPointOnSegment(polyP1, skelP1, polyP2)) {
isOverlapping = true;
break;
}
}
const p0 = res.Polygon[0];
const p1 = res.Polygon[1];
const dx = p1.X - p0.X;
const dy = p1.Y - p0.Y;
const len = Math.hypot(dx, dy);
if (len === 0) return;
// 정규화된 방향 벡터 계산
const dirX = dx / len;
const dirY = dy / len;
// First pass: Create a filled polygon (transparent fill)
ctx.globalAlpha = 0.2; // Fully transparent
ctx.beginPath();
ctx.fillStyle = 'green';
// Start from first vertex
ctx.moveTo(res.Polygon[0].X, res.Polygon[0].Y);
// Draw lines to each subsequent vertex
for (const v of res.Polygon) {
ctx.lineTo(v.X, v.Y);
}
ctx.closePath();
ctx.fill();
// Second pass: Draw the polygon outline
ctx.globalAlpha = 1; // Fully opaque
ctx.beginPath();
ctx.strokeStyle = isOverlapping ? 'red' : '#3C78D8'; // Blue color
ctx.lineWidth = 3; // 3px line width
// Redraw the same polygon shape
ctx.moveTo(res.Polygon[0].X, res.Polygon[0].Y);
for (const v of res.Polygon) {
const wX = wallLineStart.X;
const wY = wallLineStart.Y;
const wEndX = wallLineEnd.X;
const wEndY = wallLineEnd.Y;
console.log("1::", v.X, v.Y);
if ((v.X === wallLineStart.X && v.Y === wallLineEnd.Y) || (v.X === wallLineEnd.X && v.Y === wallLineStart.Y)) {
console.log(v.X, v.Y);
}else{
ctx.lineTo(v.X, v.Y);
}
ctx.lineTo(v.X, v.Y);
}
ctx.closePath();
ctx.stroke();
};
/**
* 삼각형 polygon 대신 직선을 그리는 함수
* @param {Object} res - Edge result object containing polygon vertices
*/
const drawStraightLineFromSkeleton = (res) => {
if (!ctx || res.Polygon.length !== 3) return;
// 삼각형의 세 점
const p1 = res.Polygon[0];
const p2 = res.Polygon[1];
const p3 = res.Polygon[2];
// 다각형의 경계에 있는 점들을 찾기 (원래 다각형의 변 위에 있는 점들)
const boundaryPoints = [];
const innerPoints = [];
[p1, p2, p3].forEach(point => {
let isOnBoundary = false;
// 원래 다각형의 각 변과 비교
for (let i = 0; i < points.length; i++) {
const lineStart = points[i];
const lineEnd = points[(i + 1) % points.length];
// 점이 이 변 위에 있는지 확인
if (isPointOnLine(point, lineStart, lineEnd)) {
isOnBoundary = true;
break;
}
}
if (isOnBoundary) {
boundaryPoints.push(point);
} else {
innerPoints.push(point);
}
});
// 경계점이 2개이고 내부점이 1개인 경우 (일반적인 삼각형 케이스)
if (boundaryPoints.length === 2 && innerPoints.length === 1) {
const innerPoint = innerPoints[0];
// 내부점에서 맞은편 경계까지의 직선을 그리기
drawExtendedLine(innerPoint, boundaryPoints);
}
};
/**
* 점이 선분 위에 있는지 확인하는 함수
*/
const isPointOnLine = (point, lineStart, lineEnd) => {
const tolerance = 1; // 허용 오차
// 점과 선분의 두 끝점 사이의 거리 합이 선분의 길이와 같은지 확인
const d1 = Math.hypot(point.X - lineStart[0], point.Y - lineStart[1]);
const d2 = Math.hypot(point.X - lineEnd[0], point.Y - lineEnd[1]);
const lineLength = Math.hypot(lineEnd[0] - lineStart[0], lineEnd[1] - lineStart[1]);
return Math.abs(d1 + d2 - lineLength) < tolerance;
};
/**
* 내부점에서 맞은편 경계까지 직선을 연장해서 그리는 함수
*/
const drawExtendedLine = (innerPoint, boundaryPoints) => {
if (boundaryPoints.length !== 2) return;
// 경계점들의 중점 계산 (삼각형의 밑변 중점)
const midPoint = {
X: (boundaryPoints[0].X + boundaryPoints[1].X) / 2,
Y: (boundaryPoints[0].Y + boundaryPoints[1].Y) / 2
};
// 내부점에서 중점으로의 방향 벡터 계산
const dirX = midPoint.X - innerPoint.X;
const dirY = midPoint.Y - innerPoint.Y;
const len = Math.hypot(dirX, dirY);
if (len === 0) return;
// 정규화된 방향 벡터
const normalizedDirX = dirX / len;
const normalizedDirY = dirY / len;
// 맞은편 경계와의 교점 찾기
const intersectionPoint = findIntersectionWithBoundary(innerPoint, normalizedDirX, normalizedDirY);
if (intersectionPoint) {
// 직선 그리기
ctx.beginPath();
ctx.strokeStyle = '#3C78D8'; // 파란색
ctx.lineWidth = 3;
ctx.moveTo(innerPoint.X, innerPoint.Y);
ctx.lineTo(intersectionPoint.X, intersectionPoint.Y);
ctx.stroke();
}
};
/**
* 점에서 특정 방향으로 다각형 경계와의 교점을 찾는 함수
*/
const findIntersectionWithBoundary = (startPoint, dirX, dirY) => {
let closestIntersection = null;
let minDistance = Infinity;
// 모든 다각형의 변과 교점 확인
for (let i = 0; i < points.length; i++) {
const lineStart = points[i];
const lineEnd = points[(i + 1) % points.length];
// 레이와 선분의 교점 계산
const intersection = getLineIntersection(
startPoint,
{ X: startPoint.X + dirX * 1000, Y: startPoint.Y + dirY * 1000 }, // 충분히 긴 레이
{ X: lineStart[0], Y: lineStart[1] },
{ X: lineEnd[0], Y: lineEnd[1] }
);
if (intersection) {
// 교점이 시작점에서 올바른 방향에 있는지 확인
const toIntersection = {
X: intersection.X - startPoint.X,
Y: intersection.Y - startPoint.Y
};
// 내적으로 방향 확인 (양수면 같은 방향)
const dotProduct = toIntersection.X * dirX + toIntersection.Y * dirY;
if (dotProduct > 0) { // 올바른 방향
const distance = Math.hypot(toIntersection.X, toIntersection.Y);
if (distance < minDistance) {
minDistance = distance;
closestIntersection = intersection;
}
}
}
}
return closestIntersection;
};
/**
* 선분의 교점을 계산하는 함수
*/
const getLineIntersection = (p1, p2, p3, p4) => {
const x1 = p1.X, y1 = p1.Y;
const x2 = p2.X, y2 = p2.Y;
const x3 = p3.X, y3 = p3.Y;
const x4 = p4.X, y4 = p4.Y;
const denom = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);
if (Math.abs(denom) < 1e-10) return null; // 평행선
const t = ((x1 - x3) * (y3 - y4) - (y1 - y3) * (x3 - x4)) / denom;
const u = -((x1 - x2) * (y1 - y3) - (y1 - y2) * (x1 - x3)) / denom;
// 두 번째 선분(다각형의 변) 위에 교점이 있는지 확인
if (u >= 0 && u <= 1) {
return {
X: x1 + t * (x2 - x1),
Y: y1 + t * (y2 - y1)
};
}
return null;
};

13
src/app/sample/page.jsx Normal file
View File

@ -0,0 +1,13 @@
'use client'
import { useContext } from 'react'
import { QcastContext } from '@/app/QcastProvider'
export default function SamplePage() {
const { setIsGlobalLoading } = useContext(QcastContext)
setIsGlobalLoading(false)
return (
<>
<h1>Sample Page</h1>
</>
)
}

View File

@ -0,0 +1,12 @@
import App from './App'
export default function SkPage() {
return (
<>
<App/>
</>
)
}

View File

@ -0,0 +1,80 @@
* {
font-family: monospace;
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
background-color: #f5f5f5;
}
#root {
width: 100%;
max-width: 1000px;
margin: 0 auto;
padding: 20px;
}
.panel {
width: 100%;
text-align: center;
}
.controls {
margin: 16px 0;
}
.controls button {
margin: 0 5px;
padding: 8px 16px;
border: 1px solid #aaa;
background: #fff;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.2s;
}
.controls button:hover {
background-color: #eee;
}
.description {
margin: 10px 0;
color: #555;
}
#wrapper {
display: flex;
justify-content: center;
width: 100%;
overflow: auto;
}
canvas {
background: white;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.calculator-btn {
transition: all 0.1s ease-in-out;
}
.calculator-btn:active {
transform: scale(0.95);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
/* 키패드 나타나고 사라지는 애니메이션 */
.keypad-container.hidden {
opacity: 0;
transform: translateY(-10px) scale(0.95);
pointer-events: none; /* 숨겨졌을 때 클릭 방지 */
}
.keypad-container {
opacity: 1;
transform: translateY(0) scale(1);
transition: opacity 150ms ease-out, transform 150ms ease-out;
}

View File

@ -39,7 +39,7 @@ export default function StuffSubHeader({ type }) {
if (isObjectNotEmpty(managementState)) {
if (managementState?.createSaleStoreId === 'T01') {
if (session?.storeId !== 'T01') {
//T01 ID .
//T01 ID ..
if(session?.storeId !== managementState?.saleStoreId){
setButtonStyle('none')
}

View File

@ -572,7 +572,6 @@ export function useCanvasSetting(executeEffect = true) {
try {
// roofsData가 단일 항목인 경우, 모든 추가된 지붕재(addedRoofs)를 사용하여 다중 항목으로 확장
let roofMaterialsList = []
if (params.roofsData && params.roofsData.length === 1) {
// 단일 항목인 경우 addedRoofs의 모든 항목을 사용
if (addedRoofs && addedRoofs.length > 0) {