From 5890891b0065822edfadc10da0152c73871abaaa Mon Sep 17 00:00:00 2001 From: Helloworld <1326521+LYZhelloworld@users.noreply.github.com> Date: Mon, 30 May 2022 10:01:47 +0800 Subject: [PATCH 1/4] Add autocomplete for operator names --- tools/CopilotDesinger/index.js | 12 ++++++++++-- tools/CopilotDesinger/自动战斗作业生成器.html | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tools/CopilotDesinger/index.js b/tools/CopilotDesinger/index.js index 9764f3ecef..c103cf783d 100644 --- a/tools/CopilotDesinger/index.js +++ b/tools/CopilotDesinger/index.js @@ -6,6 +6,10 @@ const input_text = () => { return $(''); }; +const input_oper_name = () => { + return $(''); +} + const skill_usage = () => { return $(''); -} +}; -const oper = (oper_data, delete_func) => { +const oper = (oper_data, arr, delete_callback) => { const tr = $(''); // 干员名字 const name_input = input_oper_name() @@ -63,7 +63,10 @@ const oper = (oper_data, delete_func) => { .change(function () { oper_data.skill_usage = Number($(this).val()); }); tr.append($('').append(skill_usage_input)); // 删除 - tr.append($('').append(delete_icon().click(delete_func))); + tr.append($('').append(delete_icon().click(() => { + arr = arr.filter(o => o !== oper_data); + delete_callback(arr); + }))); return tr; } @@ -144,7 +147,7 @@ const action = (action_data) => { return tr; }; -const group = (group_data, delete_func) => { +const group = (group_data, arr, delete_callback) => { // 群组名 const name_div_row = $('
'); const name_div_col = $('
'); @@ -153,7 +156,10 @@ const group = (group_data, delete_func) => { .change(function () { group_data.name = $(this).val(); }); name_div_col.append(name_input); const delete_col = $('
'); - delete_col.append(delete_icon().click(delete_func)); + delete_col.append(delete_icon().click(() => { + arr = arr.filter(o => o !== group_data); + delete_callback(arr); + })); name_div_row.append(name_div_col).append(delete_col); // 群组干员列表 @@ -195,16 +201,20 @@ const loadData = () => { // TODO: requirements $('#opers tbody').html(''); - (data.opers ?? []).forEach(oper_data => $('#opers tbody').append(oper(oper_data, () => { - data.opers = data.opers.filter(o => o !== oper_data); - loadData(); - }))); + (data.opers ?? []).forEach(oper_data => $('#opers tbody').append( + oper(oper_data, data.opers, (new_arr) => { + data.opers = new_arr; + loadData(); + }) + )); $('#groups').html(''); - (data.groups ?? []).forEach(group_data => $('#groups').append(group(group_data, () => { - data.groups = data.groups.filter(g => g !== group_data); - loadData(); - }))); + (data.groups ?? []).forEach(group_data => $('#groups').append( + group(group_data, data.groups, (new_arr) => { + data.groups = new_arr; + loadData(); + }) + )); $('#actions tbody').html(''); (data.actions ?? []).forEach(action_data => $('#actions tbody').append(action(action_data))); From 3229e39c14e68302cf0f1a487747f7c2ecb77ef0 Mon Sep 17 00:00:00 2001 From: Helloworld <1326521+LYZhelloworld@users.noreply.github.com> Date: Mon, 30 May 2022 10:56:03 +0800 Subject: [PATCH 3/4] Implement moving --- tools/CopilotDesinger/index.js | 72 ++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 26 deletions(-) diff --git a/tools/CopilotDesinger/index.js b/tools/CopilotDesinger/index.js index f830494b1b..b2d77adb5b 100644 --- a/tools/CopilotDesinger/index.js +++ b/tools/CopilotDesinger/index.js @@ -19,8 +19,36 @@ const skill_usage = () => { ''); }; -const delete_icon = () => { - return $('') +const move_up_icon = (data, arr) => { + return $('') + .click(() => { + const index = arr.indexOf(data); + if (index > 0) { + arr.splice(index, 1); + arr.splice(index - 1, 0, data); + loadData(); + } + }); +} + +const move_down_icon = (data, arr) => { + return $('') + .click(() => { + const index = arr.indexOf(data); + if (index < arr.length - 1) { + arr.splice(index, 1); + arr.splice(index + 1, 0, data); + loadData(); + } + }); +} + +const delete_icon = (data, arr) => { + return $('') + .click(() => { + arr.splice(arr.indexOf(data), 1); + loadData(); + }); }; const action_type = () => { @@ -44,7 +72,7 @@ const direction = () => { ''); }; -const oper = (oper_data, arr, delete_callback) => { +const oper = (oper_data, arr) => { const tr = $(''); // 干员名字 const name_input = input_oper_name() @@ -63,14 +91,14 @@ const oper = (oper_data, arr, delete_callback) => { .change(function () { oper_data.skill_usage = Number($(this).val()); }); tr.append($('').append(skill_usage_input)); // 删除 - tr.append($('').append(delete_icon().click(() => { - arr = arr.filter(o => o !== oper_data); - delete_callback(arr); - }))); + tr.append($('') + .append(move_up_icon(oper_data, arr)) + .append(move_down_icon(oper_data, arr)) + .append(delete_icon(oper_data, arr))); return tr; } -const action = (action_data) => { +const action = (action_data, arr) => { const tr = $(''); // 类别 const type_input = action_type() @@ -140,14 +168,13 @@ const action = (action_data) => { .change(function () { action_data.doc_color = $(this).val(); }); tr.append($('').append(doc_color_input)); // 删除 - tr.append($('').append(delete_icon().click(() => { - data.actions = data.actions.filter(a => a !== action_data); - loadData(); - }))); + tr.append($('').append(move_up_icon(action_data, arr)) + .append(move_down_icon(action_data, arr)) + .append(delete_icon(action_data, arr))); return tr; }; -const group = (group_data, arr, delete_callback) => { +const group = (group_data, arr) => { // 群组名 const name_div_row = $('
'); const name_div_col = $('
'); @@ -156,10 +183,9 @@ const group = (group_data, arr, delete_callback) => { .change(function () { group_data.name = $(this).val(); }); name_div_col.append(name_input); const delete_col = $('
'); - delete_col.append(delete_icon().click(() => { - arr = arr.filter(o => o !== group_data); - delete_callback(arr); - })); + delete_col.append(move_up_icon(group_data, arr)) + .append(move_down_icon(group_data, arr)) + .append(delete_icon(group_data, arr)); name_div_row.append(name_div_col).append(delete_col); // 群组干员列表 @@ -202,22 +228,16 @@ const loadData = () => { $('#opers tbody').html(''); (data.opers ?? []).forEach(oper_data => $('#opers tbody').append( - oper(oper_data, data.opers, (new_arr) => { - data.opers = new_arr; - loadData(); - }) + oper(oper_data, data.opers) )); $('#groups').html(''); (data.groups ?? []).forEach(group_data => $('#groups').append( - group(group_data, data.groups, (new_arr) => { - data.groups = new_arr; - loadData(); - }) + group(group_data, data.groups) )); $('#actions tbody').html(''); - (data.actions ?? []).forEach(action_data => $('#actions tbody').append(action(action_data))); + (data.actions ?? []).forEach(action_data => $('#actions tbody').append(action(action_data, data.actions))); }; $(document).ready(() => { From d39170ca7b8916eb7403f25a0fa2c49714afd64e Mon Sep 17 00:00:00 2001 From: Helloworld <1326521+LYZhelloworld@users.noreply.github.com> Date: Mon, 30 May 2022 11:00:47 +0800 Subject: [PATCH 4/4] UI changes --- tools/CopilotDesinger/index.js | 17 +++++++++-------- tools/CopilotDesinger/自动战斗作业生成器.html | 6 +++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/tools/CopilotDesinger/index.js b/tools/CopilotDesinger/index.js index b2d77adb5b..9e422ac2ce 100644 --- a/tools/CopilotDesinger/index.js +++ b/tools/CopilotDesinger/index.js @@ -90,8 +90,8 @@ const oper = (oper_data, arr) => { .val(String(oper_data.skill_usage ?? 0)) .change(function () { oper_data.skill_usage = Number($(this).val()); }); tr.append($('').append(skill_usage_input)); - // 删除 - tr.append($('') + // 移动删除 + tr.append($('') .append(move_up_icon(oper_data, arr)) .append(move_down_icon(oper_data, arr)) .append(delete_icon(oper_data, arr))); @@ -167,8 +167,9 @@ const action = (action_data, arr) => { .val(action_data.doc_color ?? "") .change(function () { action_data.doc_color = $(this).val(); }); tr.append($('').append(doc_color_input)); - // 删除 - tr.append($('').append(move_up_icon(action_data, arr)) + // 移动删除 + tr.append($('') + .append(move_up_icon(action_data, arr)) .append(move_down_icon(action_data, arr)) .append(delete_icon(action_data, arr))); return tr; @@ -182,11 +183,11 @@ const group = (group_data, arr) => { .val(group_data.name ?? "") .change(function () { group_data.name = $(this).val(); }); name_div_col.append(name_input); - const delete_col = $('
'); - delete_col.append(move_up_icon(group_data, arr)) + const move_delete_col = $('
'); + move_delete_col.append(move_up_icon(group_data, arr)) .append(move_down_icon(group_data, arr)) .append(delete_icon(group_data, arr)); - name_div_row.append(name_div_col).append(delete_col); + name_div_row.append(name_div_col).append(move_delete_col); // 群组干员列表 const table = $('' + @@ -195,7 +196,7 @@ const group = (group_data, arr) => { '' + '' + '' + - '' + + '' + '' + '' + '' + diff --git a/tools/CopilotDesinger/自动战斗作业生成器.html b/tools/CopilotDesinger/自动战斗作业生成器.html index 10dd807d6f..428b910d53 100644 --- a/tools/CopilotDesinger/自动战斗作业生成器.html +++ b/tools/CopilotDesinger/自动战斗作业生成器.html @@ -13,7 +13,7 @@ -
+
@@ -48,7 +48,7 @@
- + @@ -71,7 +71,7 @@ - +
干员名字技能技能用法删除
干员名字 技能 技能用法删除
后延迟 文本 文本颜色删除