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.

262 lines
6.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// pages/quest/quest.js
import {http} from "../../utils/util"
Page({
/**
* 页面的初始数据
*/
data: {
navItem: [{
id: 0,
name: '全部标签',
is: false
}, {
id: 1,
name: '全部日期',
is: false
}, {
id: 2,
name: '全部车型',
is: false
}],
selectItem: [{
id: 0,
rank: [{
name: '全部标签',
is: true
}]
}, {
id: 1,
rank: [{
name: '全部日期',
is: true
}, {
name: '一个月内',
is: false
}, {
name: '三个月内',
is: false
}, {
name: '半年内',
is: false
}, {
name: '一年内',
is: false
}]
}, {
id: 2,
rank: [{
name: '全部车型',
is: true
}]
}],
// 下拉选项被选中那组的数据由下面的js控制赋值
selectedItem: [],
// 记录菜单栏第几项被点开,方便对样式的绑定
listNum: -1,
// 下拉选项的隐藏和显示,默认隐藏
showOrHide: false,
questes: [],
maxpage: 1,
page: 1,
cdn: getApp().globalData.cdn
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
wx.setNavigationBarTitle({
title: '素材中心',
success: function (res) {}
})
wx.setBackgroundColor({
backgroundColor: '#F9F9F9',
})
this.getdata()
// http("/douyin/code", "post",{}).then(res=>{})
},
to (e) {
wx.navigateTo({
url: e.currentTarget.dataset.url + '?id=' + e.currentTarget.dataset.id + '&name=' + e.currentTarget.dataset.name,
})
},
getdata(){
http("/referenceGroup/list", "post",{
pageNum: this.data.page
}).then(res=>{
this.setData({
questes:res.data.records
})
})
http("/brand/list", "post", {}).then(res => {
// console.log(res.data.records)
res.data.records.forEach(element => {
element.is = false
let a = element
this.setData({
'selectItem[2].rank': this.data.selectItem[2].rank.concat(a)
})
});
})
http("/tag/list", "post", {}).then(res => {
// console.log(res.data.records)
res.data.records.forEach(element => {
element.is = false
element.name = element.title
let a = element
this.setData({
'selectItem[0].rank': this.data.selectItem[0].rank.concat(a)
})
});
})
},
// 点击菜单栏触发的事件函数
handleClick: function (e) {
const index = e.currentTarget.dataset.id;
const {
selectItem,
navItem
} = this.data;
// 点击事件,开始时一定会执行的,先令所有下拉选项先隐藏
const promise = new Promise((res) => {
this.setData({
showOrHide: true
})
res()
})
promise.then(() => {
// 定义一个延迟0.1秒的函数,和函数动画事件对上
setTimeout(() => {
// 当点击的是已经点开的菜单项,则隐藏
if (this.data.listNum === index) {
navItem[index].is = false
// 重置所有样式
this.setData({
navItem,
listNum: -1
})
return;
} else {
// 否则就令当前的index = listNum方便下一次判断
this.setData({
listNum: index
})
}
// 令当前点击的菜单栏高亮
navItem.forEach((v, i) => i === index ? v.is = true : v.is = false)
// console.log(selectItem[index].rank)
this.setData({
showOrHide: true,
selectedItem: selectItem[index].rank,
navItem
})
}, 100)
})
},
// 关闭下拉选项的函数
// 两种情况下会关闭下拉选项
// 1. 选择下拉选项,选择后被选的下拉选项高亮,关闭下拉选项列表
// 2. 点击遮罩层关闭
closeMask: function (e) {
let {
navItem,
listNum,
selectedItem
} = this.data;
// 获取点击的下拉选项内容
const {
contant
} = e.currentTarget.dataset
// 被点击的下拉选项高亮
selectedItem.forEach((v) => v.name === contant ? v.is = true : v.is = false)
// 判断点击的是遮罩层还是下拉选项如果是下拉选项则把选择的内容赋值到导航栏上并且把v.is = false让菜单栏高亮消失
// 如果不是不用赋值直接把v.is = false让菜单栏高亮消失
contant ? (navItem.forEach((v, i) => {
(i === listNum ? (v.name = contant) : (v.name = v.name));
// (i === listNum ? ( e.currentTarget.dataset.id !== 0 ? v.is = true : v.is = false) : (v.is = v.is));
v.is = false
})) : (navItem.forEach((v) => v.is = false))
// 调取借口触发筛选
// console.log(navItem)
this.setData({
listNum: -1,
showOrHide: false,
navItem,
selectedItem
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
this.onRefresh()
},
onRefresh:function(){
//导航条加载动画
wx.showNavigationBarLoading()
//loading 提示框
wx.showLoading({
title: 'Loading...',
})
console.log("下拉刷新啦");
setTimeout(function () {
wx.hideLoading();
wx.hideNavigationBarLoading();
//停止下拉刷新
wx.stopPullDownRefresh();
}, 2000)
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
if (this.data.page === this.data.maxpage) {
wx.showToast({
title: '到底啦~',
icon: 'none',
duration: 2000
})
} else {
this.setData({
'page' : this.data.page + 1
})
this.getdata()
}
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})