浏览代码

开发:支持保存实例信息

xlxin 1 年之前
父节点
当前提交
3e1e465600
共有 1 个文件被更改,包括 36 次插入3 次删除
  1. 36 3
      TileManor/scripts/electron/index.html

+ 36 - 3
TileManor/scripts/electron/index.html

@@ -62,11 +62,38 @@
             return ids;
         }
 
+        function saveInst(div, inst) {
+            // 从 div中获取实例信息
+            const instName = div.querySelector('#instid-in-inst-detail').textContent.split(':')[1].trim();
+            var inst = null;
+            for (let i = 0; i < instances.length; i++) {
+                if (instances[i].lvinst == instName) {
+                    inst = instances[i];
+                    break;
+                }
+            }
+            if (inst == null) {
+                alert('实例不存在');
+                return;
+            }
+
+            inst['template'] = div.querySelector('#template-select').value;
+            for (let i = 1; i <= 10; i++) {
+                const tileCnt = div.querySelector('#try' + i + '_tileCnt').value;
+                const seed = div.querySelector('#try' + i + '_seed').value;
+                const param_template = div.querySelector('#try' + i + '_param_template').value;
+                const trynParams = tileCnt + '|' + seed + '|' + param_template;
+                inst['try' + i + '(tileCnt|seed|param_template)'] = trynParams;
+            }
+
+            window.electron.send('save2csv', '../../conf/levelInstInfo.csv', instances);
+        }
+
         function showInstanceInfoAt(div, inst) {
             // 将其显示在页面上,其中template应该是一个下拉框
             // try1-10应该是一个表格, 表格的头部应该是:尝试次数,瓦片数,种子,参数模板,表格里面的每个值是可以编辑的
             div.innerHTML = `
-                <h2>实例名: ${inst.lvinst}</h2>
+                <h2 id='instid-in-inst-detail'>实例名: ${inst.lvinst}</h2>
             `;
             // 显示所有用到了该实例的关卡
             const lvIds = getAllLvIdsByInstName(inst.lvinst);
@@ -75,7 +102,7 @@
             `;
             // 加入 template 下拉框
             div.innerHTML += `
-                <p>模板名称: </p>
+                <p id='tempid-in-inst-detail'>模板名称: </p>
             `;
             const templateSelect = document.createElement('select');
             templateSelect.id = 'template-select';
@@ -124,10 +151,13 @@
                 const input4 = document.createElement('input');
                 input1.type = 'text';
                 input1.value = trynParams[0];
+                input1.id = 'try' + i + '_tileCnt';
                 input2.type = 'text';
                 input2.value = trynParams[1];
+                input2.id = 'try' + i + '_seed';
                 input3.type = 'text';
                 input3.value = trynParams[2];
+                input3.id = 'try' + i + '_param_template';
                 td1.textContent = i;
                 td2.appendChild(input1);
                 td3.appendChild(input2);
@@ -147,6 +177,7 @@
             div.appendChild(saveButton);
             saveButton.addEventListener('click', () => {
                 // 保存实例信息
+                saveInst(div, inst);
             });
         }
 
@@ -179,7 +210,9 @@
                     templateFNs = [];
                     for (let i = 0; i < data.length; i++) {
                         if (data[i].endsWith('.json')) {
-                            templateFNs.push(data[i]);
+                            // 去掉后缀
+                            const name = data[i].substring(0, data[i].length - 5);
+                            templateFNs.push(name);
                         }
                     }
                 });