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.
100 lines
2.7 KiB
100 lines
2.7 KiB
3 years ago
|
var data={
|
||
|
labels:[],
|
||
|
apps:[],
|
||
|
};
|
||
|
|
||
|
|
||
|
new Vue({
|
||
|
el: "#app",
|
||
|
data: {
|
||
|
search: "",
|
||
|
labels: [],
|
||
|
apps: [],
|
||
|
},
|
||
|
created: function () {
|
||
|
var that = this;
|
||
|
Yuri2.loadContentFromUrl('./data.json','get',function (err,str) {
|
||
|
var data=JSON.parse(str);
|
||
|
var labels = data.labels;
|
||
|
var apps =data.apps ;
|
||
|
var labelsLoaded = [];
|
||
|
labels.forEach(function (t) {
|
||
|
labelsLoaded.push({
|
||
|
name: t,
|
||
|
active: true,
|
||
|
color: that.getRandomColor()
|
||
|
})
|
||
|
});
|
||
|
that.$set(that, 'labels', labelsLoaded);
|
||
|
that.$set(that, 'apps', apps);
|
||
|
});
|
||
|
YLApp.onReady(function () {
|
||
|
YLApp.eval('getAppVersion','',function (rel) {
|
||
|
console.log(rel)
|
||
|
});
|
||
|
})
|
||
|
},
|
||
|
methods: {
|
||
|
appClick: function (app) {
|
||
|
if (app.url) {
|
||
|
YLApp.eval('open',{url:app.url,title:app.title});
|
||
|
}
|
||
|
|
||
|
},
|
||
|
labelClick: function (l) {
|
||
|
l.active = !l.active;
|
||
|
},
|
||
|
isAppActive: function (app) {
|
||
|
var that = this;
|
||
|
var rel = false;
|
||
|
var labels = app.labels;
|
||
|
var hash = {};
|
||
|
labels.forEach(function (t) {
|
||
|
hash[t] = true;
|
||
|
});
|
||
|
this.labelsActive.forEach(function (t) {
|
||
|
var checkList = [
|
||
|
app.title,
|
||
|
app.url,
|
||
|
];
|
||
|
checkList = checkList.concat(app.labels);
|
||
|
var inWord = false;
|
||
|
checkList.forEach(function (t2) {
|
||
|
if (typeof t2 === "string" && t2.indexOf(that.search) !== -1) {
|
||
|
inWord = true;
|
||
|
}
|
||
|
});
|
||
|
if (hash[t] && inWord) {
|
||
|
rel = true;
|
||
|
}
|
||
|
});
|
||
|
return rel;
|
||
|
|
||
|
},
|
||
|
labelStyle: function (label) {
|
||
|
return {
|
||
|
"color": label.active ? "white" : label.color,
|
||
|
"border-color": label.active ? "white" : label.color,
|
||
|
"background-color": !label.active ? "white" : label.color,
|
||
|
}
|
||
|
},
|
||
|
getRandomColor: function () {
|
||
|
var r = Yuri2.randInt(0, 200);
|
||
|
var g = Yuri2.randInt(0, 200);
|
||
|
var b = Yuri2.randInt(0, 200);
|
||
|
return 'rgb(' + r + ',' + g + ',' + b + ')';
|
||
|
},
|
||
|
},
|
||
|
computed: {
|
||
|
labelsActive: function () {
|
||
|
var ls = [];
|
||
|
this.labels.forEach(function (t) {
|
||
|
if (t.active)
|
||
|
ls.push(t.name)
|
||
|
});
|
||
|
return ls;
|
||
|
},
|
||
|
}
|
||
|
})
|
||
|
|