68 lines
1.4 KiB
JavaScript
68 lines
1.4 KiB
JavaScript
const { works } = require("../../mock/photoBook");
|
|
|
|
Page({
|
|
data: {
|
|
tabs: works.tabs,
|
|
activeTab: works.activeTab,
|
|
list: works.list,
|
|
leftList: [],
|
|
rightList: [],
|
|
currentList: [],
|
|
currentCount: works.list.length,
|
|
},
|
|
|
|
onLoad() {
|
|
this.applyFilter(this.data.activeTab);
|
|
},
|
|
|
|
splitList(list) {
|
|
const leftList = [];
|
|
const rightList = [];
|
|
list.forEach((item, index) => {
|
|
if (index % 2 === 0) {
|
|
leftList.push(item);
|
|
} else {
|
|
rightList.push(item);
|
|
}
|
|
});
|
|
this.setData({
|
|
leftList,
|
|
rightList,
|
|
currentList: list,
|
|
currentCount: list.length,
|
|
});
|
|
},
|
|
|
|
applyFilter(tab) {
|
|
const source = this.data.list || [];
|
|
const filtered = tab === "全部" ? source : source.filter((item) => item.category === tab);
|
|
this.splitList(filtered);
|
|
},
|
|
|
|
onTapTabFilter(e) {
|
|
const tab = e.currentTarget.dataset.tab;
|
|
this.setData({ activeTab: tab });
|
|
this.applyFilter(tab);
|
|
},
|
|
|
|
onTapBook() {
|
|
wx.navigateTo({
|
|
url: "/pages/booking/index",
|
|
});
|
|
},
|
|
|
|
onTapPreview(e) {
|
|
const id = e.currentTarget.dataset.id;
|
|
const list = this.data.currentList || [];
|
|
const urls = list.map((item) => item.cover).filter(Boolean);
|
|
if (!urls.length) {
|
|
return;
|
|
}
|
|
const current = (list.find((item) => item.id === id) || list[0]).cover;
|
|
wx.previewImage({
|
|
current,
|
|
urls,
|
|
});
|
|
},
|
|
});
|