优化回调

This commit is contained in:
Harvey Zack committed 2018-11-08 09:09:44 +08:00
1 parent 8148973d39
commit a0bc4d3a39
3 files changed
+13 -10

No files matched your search

+5 -3
View File
@@ -41,13 +41,14 @@ export default class Contextmenu {
});
}
add(item) {
add(item, callback) {
if (!item.disable) {
const { refs, events: { proxy } } = this.art;
id++;
const name = item.name || `menu${id}`;
const menu = typeof item === 'function' ? item(this.art) : item;
const $menu = document.createElement('div');
$menu.setAttribute('class', `art-menu art-menu-${menu.name || id}`);
$menu.setAttribute('class', `art-menu art-menu-${name || id}`);
append($menu, menu.html);
setStyles($menu, menu.style || {});
if (menu.click) {
@@ -57,7 +58,8 @@ export default class Contextmenu {
this.art.emit('contextmenu:click', $menu);
});
}
this[`$${menu.name || id}`] = $menu;
callback && callback($menu);
this[name] = $menu;
insertByIndex(refs.$contextmenu, $menu, menu.index || id);
}
}
+3 -2
View File
@@ -112,15 +112,16 @@ export default class Controls {
});
}
add(control) {
add(control, callback) {
const { option } = control;
if (option && !option.disable) {
id++;
const name = option.name || control.constructor.name.toLowerCase() || `control${id}`;
const name = option.name || `control${id}`;
const $control = document.createElement('div');
$control.setAttribute('class', `art-control art-control-${name}`);
this.mount(option.position, $control, option.index || id);
control.apply && control.apply(this.art, $control);
callback && callback($control);
this[name] = control;
}
}
+5 -5
View File
@@ -27,19 +27,19 @@ export default class Setting {
}));
}
add(setting) {
const { refs } = this.art;
add(setting, callback) {
const { refs, i18n } = this.art;
const { option } = setting;
if (option && !option.disable) {
id++;
const name = option.name || setting.constructor.name.toLowerCase() || `setting${id}`;
const name = option.name || `setting${id}`;
const title = option.title || name;
const $setting = document.createElement('div');
$setting.setAttribute('class', `art-setting art-setting-${name}`);
$setting.dataset.settingIndex = option.index || id;
append($setting, `<div class="art-setting-header">${this.art.i18n.get(title)}</div>`);
append($setting, `<div class="art-setting-header">${i18n.get(title)}</div>`);
append($setting, '<div class="art-setting-body"></div>');
setting.apply && setting.apply(this.art, $setting);
callback && callback($setting);
this[name] = $setting;
insertByIndex(refs.$settingBody, $setting, option.index || id);
}