openfree commited on
Commit
3a042df
ยท
verified ยท
1 Parent(s): 39c116d

Update index.html

Browse files
Files changed (1) hide show
  1. 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>ํƒ€๊นƒ ์„œ๋น„์Šค ์œ ํ˜• (ํ•„์ˆ˜)</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>์ถ”๊ฐ€ ๊ธฐ๋Šฅ</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
- document.querySelectorAll(`.option-card[data-category="${category}"]`).forEach(c => {
1239
- c.classList.remove('selected');
1240
- });
1241
-
1242
- // ํ˜„์žฌ ์นด๋“œ ์„ ํƒ
1243
- this.classList.add('selected');
1244
-
1245
- // ์„ ํƒ ์ •๋ณด ์ €์žฅ
1246
- selectedComponents[category] = {
1247
- id: id,
1248
- name: name,
1249
- cost: cost,
1250
- time: time,
1251
- category: category
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