const utils = Editor.require('packages://build-helper/core/libs/utils.js'); let ListItem; (() => { 'use strict'; return function init ( panel ) { let viewEL = panel.$.view; let tmpl = 'packages://build-helper/panel/assets-android-pack-setting.tmpl'; Editor.import(tmpl).then(content => { viewEL.innerHTML = content; let androidPack = `androidPack`; let pack = panel.getSettingItem(androidPack) || {}; // 打包开关 let checkboxEle = viewEL.querySelector('ui-checkbox'); checkboxEle.value = pack.enable; checkboxEle.addEventListener('change', (event) => { pack.enable = event.target.value; panel.setSettingItem(androidPack, pack); }); // 模版项目脚本目录 let destEle = viewEL.querySelector('#dest'); destEle.value = pack.dest; destEle.addEventListener('confirm', (event) => { pack.dest = event.target.value; panel.setSettingItem(androidPack, pack); }); // 打开模版项目脚本目录 let openDestEle = viewEL.querySelector('#openDest'); openDestEle.addEventListener('click', (event) => { let res = Editor.Dialog.openFile({ title: '模版项目脚本目录', defaultPath: Editor.Project.path, properties: ['openDirectory'] }); if (res !== -1) { let newPath = res[0]; let relative = utils.getRelative(Editor.Project.path, newPath); destEle.value = relative; pack.dest = relative; panel.setSettingItem(androidPack, pack); } }); // 临时项目脚本目录 let tempEle = viewEL.querySelector('#temp'); tempEle.value = pack.temp; tempEle.addEventListener('confirm', (event) => { pack.temp = event.target.value; panel.setSettingItem(androidPack, pack); }); // 打开临时项目脚本目录 let openTempEle = viewEL.querySelector('#openTemp'); openTempEle.addEventListener('click', (event) => { let res = Editor.Dialog.openFile({ title: '临时项目脚本目录', defaultPath: Editor.Project.path, properties: ['openDirectory'] }); if (res !== -1) { let newPath = res[0]; let relative = utils.getRelative(Editor.Project.path, newPath); tempEle.value = relative; pack.temp = relative; panel.setSettingItem(androidPack, pack); } }); let list = pack.list || []; let listEle = viewEL.querySelector('#list'); if (!ListItem) { ListItem = Editor.UI.registerElement('copy-list-item', { template: `
删除
`, style: ` .item { display: flex; background-color: black; padding: 2px; } .path { flex: 1; } `, factoryImpl ( text ) { this.$ = { path: this.shadowRoot.querySelector('#path'), del: this.shadowRoot.querySelector('#del') }; this.$.path.value = text; this.$.del.addEventListener('click', (event) => { listEle.removeChild(this); // 配置中删除 for (let i = 0; i < list.length; i++) { const path = list[i]; if (path == text) { list.splice(i, 1); break; } } }); } }); } // 资源列表 list.forEach(path => { let el = new ListItem(path); listEle.appendChild(el); }); // 添加资源 let addEle = viewEL.querySelector('#add'); addEle.addEventListener('click', (event) => { event.stopPropagation(); let res = Editor.Dialog.openFile({ title: '选择需要拷贝的资源目录文件', defaultPath: Editor.Project.path, properties: ['openDirectory', 'openFile'] }); if (res !== -1) { let newPath = res[0]; let relative = utils.getRelative(Editor.Project.path, newPath); for (const path of list) { if (path === relative) { Editor.log(relative + '已经存在!'); return; } } let el = new ListItem(relative); listEle.appendChild(el); list.push(relative); pack.list = list; panel.setSettingItem(androidPack, pack); } }); }); }; })();