first commit

This commit is contained in:
编码猿
2024-09-27 02:06:13 +08:00
commit 852d94fbb9
36760 changed files with 3274413 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
class Edit {
constructor() {
this.principal = JSON.parse(localStorage.getItem("principal"))
this.additional = JSON.parse(localStorage.getItem("additional"))
header("分类编辑");
this.renderType()
}
renderType() {
$(".default ul").innerHTML = ""
this.principal.forEach((v,i) => {
$(".default ul").innerHTML += `
<li>${i == 0 ? '':v.title}</li>
`
})
_(".default ul li").forEach((v,i) => {
v.onclick = () => {
this.additional.push(this.principal[i])
this.principal = this.principal.filter(item => {
return item.id != this.principal[i].id
})
localStorage.setItem("principal", JSON.stringify(this.principal))
localStorage.setItem("additional", JSON.stringify(this.additional))
this.renderType()
}
})
$(".add ul").innerHTML = ""
this.additional.forEach((v,i) => {
$(".add ul").innerHTML += `
<li>${v.title}</li>
`
})
_(".add ul li").forEach((v,i) => {
v.onclick = () => {
this.principal.push(this.additional[i]);
this.additional = this.additional.filter(item => {
return item.id != this.additional[i].id
})
localStorage.setItem("principal", JSON.stringify(this.principal))
localStorage.setItem("additional", JSON.stringify(this.additional))
this.renderType()
}
})
}
}
new Edit();

View File

@@ -0,0 +1,121 @@
class Home {
constructor() {
footer()
this.tabs = [];
this.index = 0
this.getHome()
this.getType()
}
async getType() {
var res;
if (localStorage.getItem("principal") == null) {
var data = await indexServe.type();
res = data.principal
localStorage.setItem("principal", JSON.stringify(data.principal))
localStorage.setItem("additional", JSON.stringify(data.additional))
} else {
res = JSON.parse(localStorage.getItem("principal"))
}
this.tabs = res
console.log( this.tabs)
// 渲染横向菜单
res.forEach((v,i) => {
if (i != 0 ) {
$(".page-wrapper").innerHTML+=`
<div class="padding swiper-slide side_${i} pitem"></div>
`
}
$(".left_menu").innerHTML+=`
<li class="${i == 0 ? 'active':''}">${v.title}</li>
`
})
var li = _(".left_menu li");
var self = this;
// 初始化页面轮播图
var page = new swiper('.page-container', {
wrapper: '.page-wrapper',
on: {
slideChangeTransitionStart(index) {
li.forEach(item => item.className ="");
li[index].classList.add("active")
if (index != 0) {
self.index = index;
self.getClassList()
}
}
}
})
// 点击菜单的事件
li.forEach((v,i) => {
v.onclick = () => {
li.forEach(item => item.className ="");
v.classList.add("active")
page.slideTo(i)
if (i != 0) {
this.index = i;
this.getClassList()
}
}
})
}
async getHome() {
var res = await indexServe.index();
console.log(res)
res.model.res.forEach((v,i) => {
$(".model-wrapper").innerHTML+=`
<div class="swiper-slide model-slide">
${
v.map((item,index)=>{
return `
<div class="model-item">
<div class="item-img">
<img src="${item.preview}" alt="">
<span>${item.total}</span>
</div>
<p>${item.title}</p>
</div>
`
}).toString().replaceAll(",","")
}
</div>
`
});
item(".news ul", res.newest.data)
item(".tuijian ul", res.recommended.data)
var model = new swiper('.mode-container', {
wrapper: '.model-wrapper',
})
}
async getClassList() {
if (this.tabs[this.index].content.length == 0) {
var res = await indexServe.classList({
page: this.tabs[this.index].page,
id: this.tabs[this.index].id
});
this.tabs[this.index].content = res.data
this.tabs[this.index].total_page = res.total_page
item(`.side_${this.index}`, this.tabs[this.index].content)
}
}
}
new Home();

View File

@@ -0,0 +1,99 @@
class Info {
constructor() {
this.res = {}
this.page = 6;
this.total_page = 0;
this.like = localStorage.getItem("likeArr") == null
? []
: JSON.parse(localStorage.getItem("likeArr"))
this.getInfo().then(() => {
this.bindInfoEvent()
})
}
bindInfoEvent() {
header(this.res.title, `
<i class="like iconfont icon-xin"></i>
<i class="iconfont icon-home"></i>
`);
$(".icon-xiangxia").onclick = () => {
this.page+=1;
if (this.page <= this.total_page) {
this.getInfo()
if (this.page == this.total_page) {
$(".icon-xiangxia").style.display = "none"
}
}
}
var isHave = this.like.filter(v => {
return v.id == query("id")
})
if (isHave.length != 0) {
$(".like").classList.remove("icon-xin")
$(".like").classList.add("icon-aixin")
}
$(".like").onclick = () => {
// 空心图标,点击后变成实心
if ($(".like").classList.contains("icon-xin")) {
$(".like").classList.remove("icon-xin")
$(".like").classList.add("icon-aixin")
this.like.push({
id: query("id"),
title: this.res.title,
total: this.res.total,
source: this.res.source,
info: this.res.info,
preview: query("url")
});
localStorage.setItem("likeArr", JSON.stringify(this.like))
} else {
$(".like").classList.remove("icon-aixin")
$(".like").classList.add("icon-xin")
this.like = this.like.filter(v => {
return v.id != query("id")
});
console.log(this.like)
localStorage.setItem("likeArr", JSON.stringify(this.like))
}
}
}
async getInfo () {
this.res = await indexServe.info({
page: this.page,
id: query("id")
});
this.total_page = this.res.total_page;
this.res.data.forEach(v => {
// var img = new Image();
var img = document.createElement("img");
img.src = v.src;
img.onload = () => {
$(".info_img").innerHTML += `
<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">
<a href="${v.src}" itemprop="contentUrl" data-size="${img.width}x${img.height}">
<img src="${v.src}" itemprop="thumbnail" alt="${v.title}" />
</a>
<figcaption itemprop="${v.title}">${v.title}</figcaption>
</figure>
`
}
})
initPhotoSwipeFromDOM(".info_img")
item(".recomm", this.res.recommend)
item(".relevant", this.res.relevant)
}
}
new Info();

View File

@@ -0,0 +1,7 @@
class Mechanism {
constructor() {
utils.footer();
}
}
new Mechanism()

View File

@@ -0,0 +1,7 @@
class Model {
constructor() {
utils.footer();
}
}
new Model()

View File

@@ -0,0 +1,7 @@
class My {
constructor() {
utils.footer();
}
}
new My()