3 Commits
thoon ... main

Author SHA1 Message Date
SDI
ae1fd4b121 feat: 도커 DB생성 compose파일 수정(현재 main 브랜치에서 pull해서 적용)
All checks were successful
ITAM Code Check / build-and-config-check (push) Successful in 12s
ITAM Docker Build Check / docker-build-check (push) Successful in 16s
2026-06-24 16:19:33 +09:00
이태훈
577f138533 fix: 위치보기 수정 (도면 오버플로우 제한 및 API 호출 경로 정상화)
All checks were successful
ITAM Code Check / build-and-config-check (push) Successful in 18s
2026-06-22 13:58:01 +09:00
이태훈
237ac9ee25 fix: 위치보기 수정 (도면 오버플로우 제한 및 API 호출 경로 정상화) 2026-06-22 13:56:52 +09:00
7 changed files with 7528 additions and 1611 deletions

1
.gitignore vendored
View File

@@ -6,3 +6,4 @@ dist/
.DS_Store .DS_Store
Thumbs.db Thumbs.db
backups/ backups/
mysql_data/

View File

@@ -55,3 +55,19 @@ services:
retries: 3 retries: 3
start_period: 20s start_period: 20s
database:
image: mysql:latest
container_name: itam-mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=itam1234 # 여기 직접 기입
- MYSQL_DATABASE=itam
- MYSQL_USER=itam
- MYSQL_PASSWORD=itam1234
volumes:
- ./mysql_data:/var/lib/mysql
restart: always
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci

5895
itam_DB_bak.sql Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
import { state, saveAsset, deleteAsset } from '../../core/state'; import { state, saveAsset, deleteAsset } from '../../core/state';
import { ASSET_SCHEMA, UI_TEXT } from '../../core/schema'; import { ASSET_SCHEMA, UI_TEXT } from '../../core/schema';
import { API_BASE_URL, calculatePcScoreDeductive, getPcGrade } from '../../core/utils'; import { calculatePcScoreDeductive, getPcGrade, API_BASE_URL } from '../../core/utils';
import { import {
generateOptionsHTML, generateOptionsHTML,
setFieldValue, setFieldValue,
@@ -299,7 +299,7 @@ class HwAssetModal extends BaseModal {
const prefix = TYPE_PREFIX_MAP[cat] || 'ETC'; const prefix = TYPE_PREFIX_MAP[cat] || 'ETC';
const purchaseDate = (document.getElementById('hw-purchase_date') as HTMLInputElement)?.value || ''; const purchaseDate = (document.getElementById('hw-purchase_date') as HTMLInputElement)?.value || '';
try { try {
const res = await fetch(`${API_BASE_URL}/api/generate-asset-code?prefix=${prefix}&purchaseDate=${purchaseDate}`); const res = await fetch(`http://${location.hostname}:3000/api/generate-asset-code?prefix=${prefix}&purchaseDate=${purchaseDate}`);
const data = await res.json(); const data = await res.json();
if (data.nextCode) setFieldValue('hw-asset_code', data.nextCode); if (data.nextCode) setFieldValue('hw-asset_code', data.nextCode);
} catch (err) { console.error('코드 생성 실패:', err); } } catch (err) { console.error('코드 생성 실패:', err); }
@@ -317,7 +317,7 @@ class HwAssetModal extends BaseModal {
const reader = new FileReader(); const reader = new FileReader();
reader.onload = async () => { reader.onload = async () => {
try { try {
const res = await fetch(`${API_BASE_URL}/api/upload`, { const res = await fetch(`http://${location.hostname}:3000/api/upload`, {
method: 'POST', method: 'POST',
headers: { 'Content-Type': 'application/json' }, headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ fileName: file.name, fileData: reader.result }) body: JSON.stringify({ fileName: file.name, fileData: reader.result })

View File

@@ -537,6 +537,8 @@
background-color: var(--canvas-soft-2); background-color: var(--canvas-soft-2);
border-radius: 4px; border-radius: 4px;
overflow: hidden; overflow: hidden;
max-width: 100%;
max-height: 100%;
} }
.layout-map-container.readonly { .layout-map-container.readonly {
@@ -546,12 +548,15 @@
.image-marker-wrapper { .image-marker-wrapper {
position: relative; position: relative;
display: inline-block; display: inline-block;
max-width: 100%;
max-height: 100%;
} }
.layout-map-img { .layout-map-img {
display: block; display: block;
max-width: 100%; max-width: 100%;
max-height: 75vh; max-height: 70vh;
object-fit: contain;
user-select: none; user-select: none;
-webkit-user-drag: none; -webkit-user-drag: none;
} }