feat: Made add button of reverse list work

This commit is contained in:
Misa Liu 2024-03-05 00:10:28 +08:00
parent aec06d37b6
commit 7d36e49bb2
No known key found for this signature in database
GPG Key ID: F70B23D0A4FED791

View File

@ -51,7 +51,7 @@ async function onSettingWindowCreated(view: Element) {
<div> <div>
<setting-text>HTTP </setting-text> <setting-text>HTTP </setting-text>
</div> </div>
<setting-button data-type="primary"></setting-button> <setting-button id="config-ob11-httpHosts-add" data-type="primary"></setting-button>
</setting-item> </setting-item>
<div id="config-ob11-httpHosts-list"></div> <div id="config-ob11-httpHosts-list"></div>
</div>`, </div>`,
@ -70,7 +70,7 @@ async function onSettingWindowCreated(view: Element) {
<div> <div>
<setting-text> WebSocket </setting-text> <setting-text> WebSocket </setting-text>
</div> </div>
<setting-button data-type="primary"></setting-button> <setting-button id="config-ob11-wsHosts-add" data-type="primary"></setting-button>
</setting-item> </setting-item>
<div id="config-ob11-wsHosts-list"></div> <div id="config-ob11-wsHosts-list"></div>
</div>`, </div>`,
@ -141,10 +141,7 @@ async function onSettingWindowCreated(view: Element) {
].join(''), "text/html"); ].join(''), "text/html");
// 生成反向地址列表 // 生成反向地址列表
const buildHostList = (hosts: string[], type: string) => { const buildHostListItem = (type: string, host: string, index: number) => {
const result: HTMLElement[] = [];
hosts.forEach((host, index) => {
const dom = { const dom = {
container: document.createElement('setting-item'), container: document.createElement('setting-item'),
input: document.createElement('input'), input: document.createElement('input'),
@ -176,11 +173,22 @@ async function onSettingWindowCreated(view: Element) {
dom.container.appendChild(dom.inputContainer); dom.container.appendChild(dom.inputContainer);
dom.container.appendChild(dom.deleteBtn); dom.container.appendChild(dom.deleteBtn);
result.push(dom.container); return dom.container;
};
const buildHostList = (hosts: string[], type: string) => {
const result: HTMLElement[] = [];
hosts.forEach((host, index) => {
result.push(buildHostListItem(type, host, index));
}); });
return result; return result;
}; };
const addReverseHost = (type: string, doc: Document = document) => {
const hostContainerDom = doc.body.querySelector(`#config-ob11-${type}-list`);
hostContainerDom.appendChild(buildHostListItem(type, '', ob11Config[type].length));
ob11Config[type].push('');
};
const initReverseHost = (type: string, doc: Document = document) => { const initReverseHost = (type: string, doc: Document = document) => {
const hostContainerDom = doc.body.querySelector(`#config-ob11-${type}-list`); const hostContainerDom = doc.body.querySelector(`#config-ob11-${type}-list`);
[ ...hostContainerDom.childNodes ].forEach(dom => dom.remove()); [ ...hostContainerDom.childNodes ].forEach(dom => dom.remove());
@ -191,6 +199,9 @@ async function onSettingWindowCreated(view: Element) {
initReverseHost('httpHosts', doc); initReverseHost('httpHosts', doc);
initReverseHost('wsHosts', doc); initReverseHost('wsHosts', doc);
doc.querySelector('#config-ob11-httpHosts-add').addEventListener('click', () => addReverseHost('httpHosts'));
doc.querySelector('#config-ob11-wsHosts-add').addEventListener('click', () => addReverseHost('wsHosts'));
// 开关 // 开关
doc.querySelectorAll('setting-switch[data-config-key]').forEach((dom: HTMLElement) => { doc.querySelectorAll('setting-switch[data-config-key]').forEach((dom: HTMLElement) => {
dom.addEventListener('click', () => { dom.addEventListener('click', () => {