123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- import {
- get,
- post
- } from '../../utils/http';
- Page({
- /**
- * 页面的初始数据
- */
- jsData: {
- columnsHeight: [0, 0],
- isListLoading: false
- },
- data: {
- current: 0,
- value: '',
- classify: [],
- list: [],
- total: 0,
- page: 1,
- spinning: true,
- columns: [
- [],
- []
- ],
- tempPics: [], //美丽秘籍内容列表
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
-
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
- this.getClassify()
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- if(this.data.page * 10 < this.data.total) {
- this.getArticleList(++this.data.page)
- }
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- },
- /**
- * 监听键盘输入
- */
- onChange(e) {
- this.setData({ value: e.detail.value })
- },
- /**
- * 搜索店铺
- */
- onConfirm() {
- this.getArticleList(1)
- },
- /**
- * 切换状态
- */
- onTabsChange(e) {
- let current = e.currentTarget.dataset.id
- if (current == this.data.current) {
- return;
- }
- this.setData({
- current,
- page: 1,
- }, () => {
- this.getArticleList(1)
- })
- },
- /**
- * 获取美丽秘籍分类
- * /api/info/classify
- */
- getClassify() {
- get('api/info/classify',{},(res) => {
- this.setData({
- classify: res.data.list
- },() => {
- this.getArticleList()
- })
- })
- },
- /**
- * 获取美丽秘籍列表
- * /api/info
- */
- getArticleList(_page) {
- this.setData({
- spinning: true
- })
- let {
- tempPics,
- classify,
- page,
- value,
- current
- } = this.data;
- get('api/info', {
- page: _page || page,
- limit: 10,
- keyword: value,
- classify_id: classify[current].id,
- }, (res) => {
- res.data.list.map(item => {
- item.create_time = item.create_time.substring(0, 10)
- })
- if (_page == 1 || page == 1) {
- tempPics = []
- this.data.page = 1
- }
- tempPics.push(...res.data.list)
- this.setData({
- tempPics,
- total: res.data.total,
- spinning: false
- })
- this.jsData.isListLoading = true
- })
- },
- //获取图片尺寸数据
- loadPic: function (e) {
- var that = this,
- data = that.data,
- tempPics = data.tempPics,
- index = e.currentTarget.dataset.index
- if (tempPics[index]) {
- //以750为宽度算出相对应的高度
- tempPics[index].height = e.detail.height * 750 / e.detail.width
- tempPics[index].isLoad = true
- }
- that.setData({
- tempPics: tempPics
- }, function () {
- that.finLoadPic()
- })
- },
- //图片加载错误处理
- loadPicError: function (e) {
- var that = this,
- data = that.data,
- tempPics = data.tempPics,
- index = e.currentTarget.dataset.index
- if (tempPics[index]) {
- //图片加载错误时高度固定750,展示为正方形
- tempPics[index].height = 750
- tempPics[index].isLoad = true
- }
- that.setData({
- tempPics: tempPics
- }, function () {
- that.finLoadPic()
- })
- },
- //判断图片是否加载完成
- finLoadPic: function () {
- var that = this,
- data = that.data,
- tempPics = data.tempPics,
- length = tempPics.length,
- fin = true
- for (var i = 0; i < length; i++) {
- if (!tempPics[i].isLoad) {
- fin = false
- break
- }
- }
- if (fin) {
- if (that.jsData.isListLoading) {
- that.jsData.isListLoading = false
- that.renderPage()
- }
- }
- },
- //渲染到瀑布流
- renderPage: function () {
- var that = this,
- data = that.data,
- columns = data.columns,
- tempPics = data.tempPics,
- length = tempPics.length,
- columnsHeight = that.jsData.columnsHeight,
- index = 0
- if (this.data.page == 1) {
- columns = [
- [],
- []
- ]
- }
- for (var i = 0; i < length; i++) {
- index = columnsHeight[1] < columnsHeight[0] ? 1 : 0
- columns[index].push(tempPics[i])
- columnsHeight[index] += tempPics[i].height
- }
- that.setData({
- columns: columns,
- tempPics: []
- })
- that.jsData.columnsHeight = columnsHeight
- },
- onClear() {
- this.setData({
- value: ''
- })
- },
- // 点击跳转美丽秘籍
- goArticleDetail(e) {
- let id = e.currentTarget.dataset.id
- wx.navigateTo({
- url: `/pages/articleDetail/articleDetail?id=${id}`,
- })
- },
- })
|