You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.3 KiB
90 lines
2.3 KiB
YL.export = function () {
|
|
var rel = {};
|
|
var vue = YL.vue;
|
|
rel.configs = YL.util.dataCopy('configs');
|
|
rel.apps = YL.util.dataCopy('apps');
|
|
var shortcuts = YL.util.dataCopy('shortcuts');
|
|
shortcuts.forEach(function (shortcut) {
|
|
delete shortcut.drag;
|
|
if (shortcut.children) {
|
|
shortcut.children.forEach(function (t) {
|
|
delete t.drag;
|
|
})
|
|
}
|
|
});
|
|
rel.shortcuts = shortcuts;
|
|
var tiles = YL.util.dataCopy('tiles');
|
|
tiles.forEach(function (tileGroup) {
|
|
tileGroup.data.forEach(function (t) {
|
|
delete t.moved;
|
|
})
|
|
});
|
|
rel.tiles = tiles;
|
|
var startMenu = YL.util.dataCopy('startMenu');
|
|
delete startMenu.open;
|
|
delete startMenu.sidebar.open;
|
|
startMenu.sidebar = startMenu.sidebar.btns;
|
|
var removeMenuAttrOpen = function (item) {
|
|
delete item.open;
|
|
if (item.children) {
|
|
for (var i in item.children) {
|
|
var child = item.children[i];
|
|
removeMenuAttrOpen(child);
|
|
}
|
|
}
|
|
};
|
|
for (var i in startMenu.menu) {
|
|
var item = startMenu.menu[i];
|
|
removeMenuAttrOpen(item);
|
|
}
|
|
rel.startMenu = startMenu;
|
|
return rel;
|
|
};
|
|
|
|
//格式化数据为运行时可用
|
|
YL.format = function (json) {
|
|
var data = Yuri2.jsonMerge(YL._baseData(), json, true);
|
|
for (var i in data.apps) {
|
|
var app = Yuri2.jsonMerge(YL.util.getAppDataTemplate(), data.apps[i]);
|
|
data.apps[i] = app;
|
|
}
|
|
data.shortcuts.forEach(function (shortcut) {
|
|
shortcut.drag = { mDown: false, left: 0, top: 0, };
|
|
if (shortcut.children) {
|
|
shortcut.children.forEach(function (t) {
|
|
t.drag = { mDown: false, left: 0, top: 0, };
|
|
})
|
|
}
|
|
});
|
|
data.startMenu.open = false;
|
|
data.startMenu.sidebar = {
|
|
btns: data.startMenu.sidebar
|
|
};
|
|
data.startMenu.sidebar.open = false;
|
|
var addMenuAttrOpen = function (item) {
|
|
item.open = false;
|
|
if (item.children) {
|
|
for (var i in item.children) {
|
|
var child = item.children[i];
|
|
addMenuAttrOpen(child);
|
|
}
|
|
}
|
|
};
|
|
for (var i in data.startMenu.menu) {
|
|
var item = data.startMenu.menu[i];
|
|
addMenuAttrOpen(item);
|
|
}
|
|
return data;
|
|
};
|
|
YL.import = function (json) {
|
|
YL.reset();
|
|
var data = YL.format(json);
|
|
var vue = YL.vue;
|
|
vue.$set(vue, 'apps', data.apps);
|
|
for (var i in data) {
|
|
if (i !== 'apps') {
|
|
vue.$set(vue, i, data[i]);
|
|
}
|
|
}
|
|
vue.initRuntime();
|
|
};
|