webos/web/apps/birdpaper/index-init.js
2024-02-28 17:21:32 +08:00

244 lines
10 KiB
JavaScript

(function (){
Vue.app({
data(){
return {
actionType:0,//0分类分页 1搜索分页
type:0,//0:PC专区,1:手机专区
pageType:0,//0分类选择1分页结果
catData:{
pcCat:[],
mDong:[],
mJin:[]
},//分类数据
dataList:[],//分页列表
dataParam:{
page:1,
count:24,
type:"1",//1动态壁纸 2静态壁纸
cat:"",
total:1,
keyword:""
},
showItem:{
show:false,
item:{}
},
loading:false
}
},
methods:{
initData:function (){
const that = this;
fetch("https://wp.shanhutech.cn/intf/getCategory")
.then(function (res){return res.json()})
.then(function (res){
that.catData.pcCat = res.data;
});
fetch("https://digbird.shanhutech.cn/intf/getCategory?type=1")
.then(function (res){return res.json()})
.then(function (res){
that.catData.mDong = res.data;
});
fetch("https://digbird.shanhutech.cn/intf/getCategory?type=2")
.then(function (res){return res.json()})
.then(function (res){
that.catData.mJin = res.data;
});
that.changeType();
window.addEventListener("resize",function (){
that.changeType();
});
window.addEventListener("message",function (e){
let data = e.data;
if(data.action == "themeChange"){
that.setTheme(data.theme);
}
});
that.setTheme(localStorage.getItem("web_theme"));
},
setTheme:function (theme){
theme = theme == "dark"?"dark":"";
document.querySelector("html").className = theme;
},
changeType:function (){
const that = this;
if(window.innerHeight>window.innerWidth){
//手机效果
that.type = 1;
}else{
//电脑效果
that.type = 0;
}
that.pageType = 0;
that.actionType = 0;
},
searchData:function (){
const that = this;
that.actionType = 1;
that.catPageList(1);
},
catPageList:function (page){
const that = this;
that.loading = true;
that.dataParam.page = page;
that.pageType = 1;
that.dataList = [];
var url = "";
if(that.type == 0){
//电脑
if(that.dataParam.type == "1"){
//动态
const script = document.createElement("script");
script.id = "jsonp-id";
let fname = "f"+utils.uuid();
window[fname] = function (res){
that.loading = false;
var sz = res.data.list;
that.dataParam.total = res.data.total_count;
var list = [];
for (let i = 0; i < sz.length; i++) {
var a = sz[i];
list.push({
img:a.image,
name:a.title,
mp4:a.file_url_10s
});
}
that.dataList = list;
}
var jsonpUrl = "https://bizhi.shanhutech.cn/live/wallpaper/categoryList?callback="+fname+"&category="+that.dataParam.cat+"&pageno="+page+"&count="+that.dataParam.count+"&type=1";
if(that.actionType == 1){
jsonpUrl = "https://bizhi.shanhutech.cn/live/wallpaper/searchList?callback="+fname+"&keyword="+encodeURIComponent(that.dataParam.keyword)+"&pageno="+page+"&count="+that.dataParam.count;
}
script.src = jsonpUrl;
document.body.appendChild(script);
setTimeout(function (){
document.body.removeChild(script);
},1);
}else{
//静态
url = "https://wp.shanhutech.cn/intf/GetListByCategory?cids="+that.dataParam.cat+"&pageno="+page+"&count="+that.dataParam.count;
if(that.actionType == 1){
url = "https://wp.shanhutech.cn/intf/search?content="+encodeURIComponent(that.dataParam.keyword)+"&pageno="+page+"&count="+that.dataParam.count;
}
}
}else{
//手机
url = "https://digbird.shanhutech.cn/intf/getCategoryList?type="+that.dataParam.type+"&category="+that.dataParam.cat+"&appver=2.0.0&count="+that.dataParam.count+"&pageno="+page;
}
if(url){
fetch(url).then(function (res){return res.json()}).then(function (res){
that.loading = false;
if(that.type == 0 && that.dataParam.type != "1"){
var sz = res.data.list;
that.dataParam.total = res.data.total_count;
var list = [];
for (let i = 0; i < sz.length; i++) {
var a = sz[i];
list.push({
img:a.url,
name:a.tag
});
}
that.dataList = list;
}else if (that.type == 1){
console.log(res)
var sz = res.data.list;
that.dataParam.total = res.data.total_count;
var list = [];
for (let i = 0; i < sz.length; i++) {
var a = sz[i];
if(that.dataParam.type == "1"){
list.push({
img:a.image,
name:a.title,
mp4:a.url_preview,
});
}else{
list.push({
img:a.url,
name:a.tag
});
}
}
that.dataList = list;
}
});
}
},
selectCat:function (type,cat){
const that = this;
that.dataParam.type = type;
if(that.type == 0){
//电脑
if(that.dataParam.type == "1"){
//动态
that.dataParam.cat = cat.show_name;
}else{
//静态
that.dataParam.cat = cat.old_id;
}
}else{
//手机
if(that.dataParam.type == "1"){
//动态
that.dataParam.cat = cat.category;
}else{
//静态
that.dataParam.cat = cat.category;
}
}
that.actionType = 0;
that.catPageList(1);
},
showBgAction:function (item){
const that = this;
that.showItem.item = item;
that.showItem.show = true;
},
applyData:async function (sys,type){
//sys:win11,macos,mobile
//type:1动态2静态
const that = this;
var url = that.showItem.item.mp4;
var wallpaperType = "video";
if(type == "2"){
url = that.showItem.item.img;
wallpaperType = "img";
}
if(sys == "win11"){
var has = false;
var winCom = parent.webos.util.getCurrentWinByIframe(window);
if(winCom){
var app = parent.webos.el.findParentComponent(winCom,"app-component");
if(app){
await app.changeWallpaper(url, wallpaperType);
has = true;
}
}
if(has){
parent.webos.message.success("应用壁纸成功");
}else{
var data = await parent.webos.softUserData.syncObject("settings_theme_win11");
if(data){
data.wallpaper = url;
data.type = wallpaperType;
await parent.webos.softUserData.syncObject("settings_theme_win11",data);
parent.webos.message.success("应用壁纸成功");
}else{
parent.webos.message.success("应用壁纸失败");
}
}
}else if(sys == "macos"){
parent.webos.message.error("该系统暂未上线");
}if(sys == "mobile"){
parent.webos.message.error("该系统暂未上线");
}
}
},
mounted:function(){
this.initData();
}
});
})()