Spaces:
Running
Running
Update index.html
Browse files- index.html +50 -21
index.html
CHANGED
@@ -846,7 +846,7 @@
|
|
846 |
<div class="component-section">
|
847 |
<div class="component-title">
|
848 |
<div class="component-icon">๐ฏ</div>
|
849 |
-
<span>ํ๊น ์๋น์ค ์ ํ (
|
850 |
</div>
|
851 |
<div class="component-options">
|
852 |
<div class="option-card" data-category="service" data-id="image-gen" data-cost="30" data-time="2">
|
@@ -1101,7 +1101,7 @@
|
|
1101 |
<div class="component-section">
|
1102 |
<div class="component-title">
|
1103 |
<div class="component-icon">๐ง</div>
|
1104 |
-
<span>์ถ๊ฐ
|
1105 |
</div>
|
1106 |
<div class="component-options">
|
1107 |
<div class="option-card" data-category="additional" data-id="admin-panel" data-cost="10" data-time="0.5">
|
@@ -1234,22 +1234,51 @@
|
|
1234 |
const time = parseFloat(this.dataset.time);
|
1235 |
const name = this.querySelector('.option-name').textContent;
|
1236 |
|
1237 |
-
//
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1253 |
});
|
1254 |
});
|
1255 |
});
|
@@ -1269,9 +1298,9 @@
|
|
1269 |
|
1270 |
// ๋ง์ถค ๋น์ฉ ๊ณ์ฐ ํจ์
|
1271 |
function calculateCustomCost() {
|
1272 |
-
// ํ์ ํญ๋ชฉ ์ฒดํฌ
|
1273 |
-
if (!selectedComponents.service) {
|
1274 |
-
alert('ํ๊น ์๋น์ค ์ ํ์ ์ ํํด์ฃผ์ธ์.');
|
1275 |
return;
|
1276 |
}
|
1277 |
|
|
|
846 |
<div class="component-section">
|
847 |
<div class="component-title">
|
848 |
<div class="component-icon">๐ฏ</div>
|
849 |
+
<span>ํ๊น ์๋น์ค ์ ํ (ํ์, ๋ณต์ ์ ํ ๊ฐ๋ฅ)</span>
|
850 |
</div>
|
851 |
<div class="component-options">
|
852 |
<div class="option-card" data-category="service" data-id="image-gen" data-cost="30" data-time="2">
|
|
|
1101 |
<div class="component-section">
|
1102 |
<div class="component-title">
|
1103 |
<div class="component-icon">๐ง</div>
|
1104 |
+
<span>์ถ๊ฐ ๊ธฐ๋ฅ (๋ณต์ ์ ํ ๊ฐ๋ฅ)</span>
|
1105 |
</div>
|
1106 |
<div class="component-options">
|
1107 |
<div class="option-card" data-category="additional" data-id="admin-panel" data-cost="10" data-time="0.5">
|
|
|
1234 |
const time = parseFloat(this.dataset.time);
|
1235 |
const name = this.querySelector('.option-name').textContent;
|
1236 |
|
1237 |
+
// ๋ณต์ ์ ํ ๊ฐ๋ฅํ ์นดํ
๊ณ ๋ฆฌ
|
1238 |
+
const multiSelectCategories = ['service', 'additional'];
|
1239 |
+
|
1240 |
+
if (multiSelectCategories.includes(category)) {
|
1241 |
+
// ๋ณต์ ์ ํ ์ฒ๋ฆฌ
|
1242 |
+
if (!selectedComponents[category]) {
|
1243 |
+
selectedComponents[category] = {};
|
1244 |
+
}
|
1245 |
+
|
1246 |
+
if (this.classList.contains('selected')) {
|
1247 |
+
// ์ด๋ฏธ ์ ํ๋ ๊ฒฝ์ฐ ํด์
|
1248 |
+
this.classList.remove('selected');
|
1249 |
+
delete selectedComponents[category][id];
|
1250 |
+
|
1251 |
+
// ์นดํ
๊ณ ๋ฆฌ์ ์ ํ๋ ํญ๋ชฉ์ด ์์ผ๋ฉด ์นดํ
๊ณ ๋ฆฌ ์ญ์
|
1252 |
+
if (Object.keys(selectedComponents[category]).length === 0) {
|
1253 |
+
delete selectedComponents[category];
|
1254 |
+
}
|
1255 |
+
} else {
|
1256 |
+
// ์ ํ ์ถ๊ฐ
|
1257 |
+
this.classList.add('selected');
|
1258 |
+
selectedComponents[category][id] = {
|
1259 |
+
id: id,
|
1260 |
+
name: name,
|
1261 |
+
cost: cost,
|
1262 |
+
time: time,
|
1263 |
+
category: category
|
1264 |
+
};
|
1265 |
+
}
|
1266 |
+
} else {
|
1267 |
+
// ๋จ์ผ ์ ํ ์ฒ๋ฆฌ (๊ธฐ์กด ๋ก์ง)
|
1268 |
+
document.querySelectorAll(`.option-card[data-category="${category}"]`).forEach(c => {
|
1269 |
+
c.classList.remove('selected');
|
1270 |
+
});
|
1271 |
+
|
1272 |
+
this.classList.add('selected');
|
1273 |
+
|
1274 |
+
selectedComponents[category] = {
|
1275 |
+
id: id,
|
1276 |
+
name: name,
|
1277 |
+
cost: cost,
|
1278 |
+
time: time,
|
1279 |
+
category: category
|
1280 |
+
};
|
1281 |
+
}
|
1282 |
});
|
1283 |
});
|
1284 |
});
|
|
|
1298 |
|
1299 |
// ๋ง์ถค ๋น์ฉ ๊ณ์ฐ ํจ์
|
1300 |
function calculateCustomCost() {
|
1301 |
+
// ํ์ ํญ๋ชฉ ์ฒดํฌ (ํ๊น ์๋น์ค ์ต์ 1๊ฐ)
|
1302 |
+
if (!selectedComponents.service || Object.keys(selectedComponents.service).length === 0) {
|
1303 |
+
alert('ํ๊น ์๋น์ค ์ ํ์ ์ต์ 1๊ฐ ์ด์ ์ ํํด์ฃผ์ธ์.');
|
1304 |
return;
|
1305 |
}
|
1306 |
|