Commit d70ab424 by jscat

nyx weapp:

1. 添加城市搜索; activity.js
2. 将'本周活动'按照日期进行从先到后的排序 activity-list.js
3. 添加 '点赞' 和 取消 '点赞' 的逻辑 activity-info.js
4. 添加 '我的收藏' my-collects.js
parent 1dc0f862
{
{
......@@ -16,6 +16,7 @@
"pages/key/matchTest/matchTest",
"pages/my/my-points/my-points",
"pages/my/my-orders/my-orders",
"pages/my/my-collects/my-collects",
"pages/my/user/user",
"pages/logs/logs"
],
......
//config.js API全局域名配置
//config.js API全局域名配置
......@@ -51,13 +51,15 @@ var config={
match_query_by_id_url: host_key + "/api/nyx/match/query/id",
match_query_then_update_url: host_key + "/api/nyx/match/queryThenUpdate/id",
bonus_query_url: host_key + "/api/nyx/match/bonus/query/id",
tab_query_url: host_key + "/api/nyx/tab/query",
collect_query_url: host_key + "/api/nyx/collect/query",
socket_url: socket_url,
oss_token_url: host_key + "/api/nyx/oss/getToken",
oss_callback_url: login_url + "/api/nyx/oss/callback",
post_like_url: host_key + "/api/nyx/post/like",
activity_like_url: host_key + "/api/nyx/activity/like",
activity_like_del_url: host_key + "/api/nyx/activity/like/del",
collect_like_url: host_key + "/api/nyx/collect/like",
collect_like_del_url: host_key + "/api/nyx/collect/like/del",
check_text_url: host_key + "/api/nyx/wx/check/text",
check_pic_url: host_key + "/api/nyx/wx/check/pic",
}
......
// pages/activity/activity-info/activity-info.js
// pages/activity/activity-info/activity-info.js
......@@ -25,7 +25,10 @@ Page({
activityInfo: {},
//点赞模块
likeDict: {},
likeDictUpdate: {}, // 判断当前页面是否存在点赞操作
likeStatus: 0, // 判断like图标的状态
likeUrl: "../../../icon/activity/like.png", // like图标的url
likeDictSub: {},
},
......@@ -86,10 +89,26 @@ Page({
//get the activity_item, then add to activityInfo
_this.getActivityItem(activityInfo['activity_id'])
//初始化likeDict
if (!wx.getStorageSync('likeDict')) {
var likeDict = {}
wx.setStorageSync('likeDict', likeDict)
//初始化 likeDictStorage
if (!wx.getStorageSync('likeDictStorage')) {
var likeDictStorage = {}
wx.setStorageSync('likeDictStorage', likeDictStorage)
}
else
{
var likeDictStorage = wx.getStorageSync('likeDict')
if(likeDictStorage.hasOwnProperty([activityInfo['activity_id']])
&& likeDictStorage[activityInfo['activity_id']] == 1 )
{
//同步更新likeDict和activityInfo, like-1
var likeStatus = 1
var likeUrl = "../../../icon/activity/like_selected.png"
_this.setData({
likeStatus: likeStatus,
likeUrl: likeUrl,
})
}
}
},
......@@ -121,24 +140,27 @@ Page({
onUnload: function () {
var _this = this;
// 获取likeDict
var likeDict = _this.__data__.likeDict
// 获取likeDictUpdate
var likeDictUpdate = _this.__data__.likeDictUpdate
var userId = _this.__data__.nyxCode
var activityId = _this.__data__.activityInfo['activity_id']
var numLike = _this.__data__.activityInfo['num_like']
var indexId = _this.__data__.activityInfo['index_id']
// 如果存在update操作, 则更新
if (likeDict[activityId] != undefined && likeDict[activityId] != 0 ) {
_this.submitLike(activityId, likeDict[activityId])
}
if (likeDictUpdate.hasOwnProperty(activityId) && likeDictUpdate[activityId] != 0 ) {
var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
var prevPage = pages[pages.length - 2]; //上一个页面
_this.submitLike(userId, activityId, likeDictUpdate[activityId])
//直接调用上一个页面的setData()方法,把数据存到上一个页面中去
prevPage.setData({
likeDictSub: { 'index_id': indexId, 'num_like': numLike}
})
var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
var prevPage = pages[pages.length - 2]; //上一个页面
//直接调用上一个页面的setData()方法,把数据存到上一个页面中去
prevPage.setData({
likeDictSub: { 'index_id': indexId, 'num_like': numLike}
})
}
},
......@@ -260,9 +282,10 @@ Page({
});
},
submitLike: function (activityId, op) {
submitLike: function (userId, activityId, op) {
var _this = this;
var strUrl = op == 1 ? config.activity_like_url + '?activityId=' + activityId : config.activity_like_del_url + '?activityId=' + activityId
var query_url = '?activityId=' + activityId + '&userId=' + userId
var strUrl = op == 1 ? config.collect_like_url + query_url : config.collect_like_del_url + query_url
config.debug == 1 ? console.log("===submitLike strUrl is: " + strUrl) : ""
wx.request({
url: strUrl,
......@@ -274,16 +297,6 @@ Page({
if (res.statusCode == 200) {
//表示查询成功
console.log(res.data);
// var activityInfo = _this.__data__.activityInfo
// var likeDictStorage = wx.getStorageSync('likeDict')
// activityInfo['num_like'] = activityInfo['num_like'] + 1
// likeDict[activityId] = 1
// wx.setStorageSync('likeDict', likeDict)
// _this.setData({
// likeDict: likeDict,
// activityInfo: activityInfo,
// })
}
}
})
......@@ -295,42 +308,43 @@ Page({
var _this = this;
let activityId = e.currentTarget.dataset.id; // 获取活动id
var activityInfo = _this.__data__.activityInfo
// storage.likeDict 只负责前端显示
// data.likeDict 负责数据库操作
var likeDict = _this.__data__.likeDict
var likeDictStorage = wx.getStorageSync('likeDict')
// storage.likeDictStorage 只负责前端显示
// data.likeDictUpdate 负责数据库操作
var likeStatus = 0
var likeDictUpdate = _this.__data__.likeDictUpdate
var likeDictStorage = wx.getStorageSync('likeDictStorage')
// 添加操作, 一定是storage的值为0或者undefined
if (likeDictStorage[activityId] == 0 || likeDictStorage[activityId] == undefined) {
// 同步更新likeDict和activityInfo, like+1
if (!likeDictStorage.hasOwnProperty(activityId) || likeDictStorage[activityId] == 0 ) {
// 同步更新likeDictStorage, likeDictUpdate和activityInfo, like+1
// 同步更新前端
activityInfo['num_like'] = parseInt(activityInfo['num_like']) + 1
likeDictStorage[activityId] = 1
likeStatus = 1
// 表示本页面有数据操作
likeDict[activityId] = likeDict[activityId]!=undefined ? likeDict[activityId] + 1 : 1
wx.setStorageSync('likeDict', likeDictStorage)
_this.setData({
likeDict: likeDict,
activityInfo: activityInfo,
})
likeDictUpdate[activityId] = likeDictUpdate.hasOwnProperty(activityId) ? likeDictUpdate[activityId] + 1 : 1
wx.setStorageSync('likeDictStorage', likeDictStorage)
}
// 删除操作, 一定是storage的值为1
else if(likeDictStorage[activityId] == 1 && likeDictStorage[activityId] != undefined)
else if(likeDictStorage.hasOwnProperty(activityId) && likeDictStorage[activityId] == 1 )
{
//同步更新likeDict和activityInfo, like-1
activityInfo['num_like'] = parseInt(activityInfo['num_like']) - 1
likeDictStorage[activityId] = 0
likeDict[activityId] = likeDict[activityId]!=undefined ? likeDict[activityId] - 1 : -1
wx.setStorageSync('likeDict', likeDictStorage)
_this.setData({
likeDict: likeDict,
activityInfo: activityInfo,
})
likeStatus = 0
likeDictUpdate[activityId] = likeDictUpdate.hasOwnProperty(activityId) ? likeDictUpdate[activityId] - 1 : -1
wx.setStorageSync('likeDictStorage', likeDictStorage)
}
_this.setData({
likeDictUpdate: likeDictUpdate,
likeStatus: likeStatus,
likeUrl:likeStatus==1?"../../../icon/activity/like_selected.png":"../../../icon/activity/like.png",
activityInfo: activityInfo,
})
},
......
<wxs module="tutil" src="./../../../utils/date.wxs"></wxs>
<wxs module="tutil" src="./../../../utils/date.wxs"></wxs>
......@@ -17,22 +17,26 @@
<view class="clone">
<view class="clone-left">¥{{activityInfo.unit_price}}</view>
<block wx:if="{{memberId==''}}">
<!-- start 点赞 like -->
<block>
<view class="clone-right" bindtap="onSubmitLike" data-id='{{activityInfo.activity_id}}'>
<view class="note-column" style="font-size: 24rpx;font-weight:normal;color: #000;align-items:center">
<image src="../../../icon/activity/like.png"></image>
<image src="{{likeUrl}}"></image>
{{activityInfo.num_like}}
</view>
</view>
</block>
<block wx:else>
<!-- end 点赞 like -->
<!-- start 克隆 -->
<block wx:if="{{memberId!=''}}">
<view class="clone-right" bindtap="onClickClone" data-id='{{activityInfo.activity_id}}'>
<view class="note-column" style="font-size: 24rpx;font-weight:normal;color: #000;align-items:center">
<view class="note-column" style="font-size: 24rpx;font-weight:normal;color: #000;align-items:center;margin-left: 10rpx;">
<image src="../../../icon/activity/clone.png"></image>
克隆
</view>
</view>
</block>
<!-- end 克隆 -->
</view>
</view>
......@@ -71,7 +75,7 @@
<!-- refer to https://www.jb51.net/article/129438.htm -->
<view class="page__bd">
<view class="weui-tabbar">
<view class="weui-tabbar__item">
<view class="weui-tabbar__item" bindtap="toHome">
<view style="position: relative;display:inline-block;">
<image src="../../../icon/index.png" class="weui-tabbar__icon"></image>
</view>
......
// pages/member/activity-post/activity-edit/activity-edit.js
// pages/member/activity-post/activity-edit/activity-edit.js
......@@ -8,17 +8,27 @@ var util = require('./../../../utils/util.js')
Page({
data: {
/* 用于判断是否已经登陆 */
nyxCode : "",
authStatus : "0",
userInfo : {},
memberId : "",
header_infoData: {},
product_listData: [],
//分页加载部分
// 城市模块
city: "",
// 分页加载部分
stride: 0,
isHideLoadMore: false,
},
onLoad: function () {
onLoad: function ( options ) {
var _this = this;
wx.getSystemInfo({
......@@ -46,6 +56,25 @@ Page({
// },
]
//初始化数据
if (wx.getStorageSync('nyxCode')) {
_this.setData({
nyxCode: wx.getStorageSync('nyxCode'),
userInfo: wx.getStorageSync('userInfo'),
authStatus: wx.getStorageSync('authStatus'),
memberId : wx.getStorageSync('memberId'),
})
}
var city = ""
if (options.city != "")
{
city = options.city;
_this.setData({
city: city
})
}
wx.setNavigationBarTitle({
title: '活动列表',
})
......@@ -64,7 +93,6 @@ Page({
product_listData: product_listData,
});
var city = "上海"
_this.getActivitiesByPeriod(0, 1, stride, city, curDate, endDate);
}
......@@ -98,6 +126,7 @@ Page({
// var strSearch = _this.__data__.category[curIndex].name
var isHideLoadMore = _this.__data__.isHideLoadMore;
var pageIndex = _this.__data__.pageIndex;
var stride = _this.__data__.stride;
//控制逻辑, 在onClick之后或者onGetComment事件之后再允许下拉更新操作
//判断是否已经全部加载完毕
......@@ -105,9 +134,10 @@ Page({
if (!isHideLoadMore) {
console.log('加载更多')
// setTimeout(() => {
// _this.getActivities(1, pageIndex, 4, strSearch);
// }, 1000)
setTimeout(() => {
_this.getActivities(1, pageIndex, 4, strSearch);
_this.getActivitiesByPeriod(1, pageIndex, stride, city, curDate, endDate);
}, 1000)
var bisHideLoadMoreType = true;
_this.setData({
isHideLoadMore: bisHideLoadMoreType,
......@@ -173,12 +203,21 @@ Page({
//进行setLabel
console.log("====",result);
var list = [];
for(var key in result) {
//start 让result的key "2020-08-20" 进行排序
var keys = [];
for(var key in result){
keys.push(key);
}
keys = keys.sort();
//end 结束排序
for(var i=0; i<keys.length; i++){
var key = keys[i];
var dict = {}
dict['date'] = key
dict['info'] = result[key]
list.push(dict)
}
}
//进行翻页设置(加载更多)
if (scrollType == 1) {
......
<!-- /page/post/edit/edit 添加分类的标签,以及自定义标签 -->
<!-- /page/post/edit/edit 添加分类的标签,以及自定义标签 -->
......@@ -4,7 +4,7 @@
<view class="page" style="height:100%;width:100%">
<view class="weui-search-bar">
<text>上海</text>
<text>{{city}}</text>
<image src='../../../icon/down.png' style='width: 32rpx;height: 32rpx;' class='selecrtImg'></image>
<view class="list-activity-number">
<label>
......
// pages/activity/activity.js
// pages/activity/activity.js
......@@ -35,6 +35,9 @@ Page({
noteTop: 0,
noteHeight: 0,
//城市模块
city: "上海",
//搜索模块
inputShowed: false, //初始文本框不显示内容
strSearch : "", //搜索的字串
......@@ -51,12 +54,13 @@ Page({
switchCategory(e) {
var _this = this;
var curIndex = e.currentTarget.dataset.index ? e.currentTarget.dataset.index : 0
var strCity = _this.__data__.city
var strCategory = _this.__data__.category[curIndex].order
var strSearch = _this.__data__.strSearch
this.setData({
curIndex: curIndex,
})
_this.getActivities(0, 1, 4, strCategory, strSearch);
_this.getActivities(0, 1, 4, strCity, strCategory, strSearch);
},
// 搜索点击事件
entrySearch(e) {
......@@ -140,7 +144,8 @@ Page({
if(_this.__data__.activities.length == 0)
{
var switchId = app.globalData.switchId
var curIndex = switchId != ""? switchId : _this.__data__.curIndex
var curIndex = switchId != ""? switchId : _this.__data__.curIndex
var strCity = _this.__data__.city
var strCategory = _this.__data__.category[curIndex].order
var strSearch = _this.__data__.strSearch
this.setData({
......@@ -148,7 +153,7 @@ Page({
});
app.globalData.switchId = ""
_this.getActivities(0, 1, 4, strCategory, strSearch);
_this.getActivities(0, 1, 4, strCity, strCategory, strSearch);
}
},
......@@ -172,7 +177,8 @@ Page({
var index = likeDictSub['index_id']
activities[index]['num_like'] = likeDictSub['num_like']
_this.setData({
activities: activities
activities: activities,
likeDictSub: {}, // 处理完之后, 重置为{}
})
}
......@@ -206,6 +212,7 @@ Page({
console.log('页面上拉触底')
var _this = this;
var curIndex = _this.__data__.curIndex
var strCity = _this.__data__.city
var strCategory = _this.__data__.category[curIndex].order
var strSearch = _this.__data__.strSearch
var isHideLoadMore = _this.__data__.isHideLoadMore;
......@@ -218,7 +225,7 @@ Page({
console.log('加载更多')
setTimeout(() => {
_this.getActivities(1, pageIndex, 4, strSearch);
_this.getActivities(1, pageIndex, 4, strCity, strCategory, strSearch);
}, 1000)
}
else {
......@@ -245,12 +252,12 @@ Page({
2. tab, tag=strSearch
3. 新增的search tab, '搜索'tab的时候,需要转换为搜索的关键词(_this.__data__.strSearch)
*/
getActivities: function (scrollType, pageNum, pageCount, strCategory, strSearch) {
getActivities: function (scrollType, pageNum, pageCount, strCity, strCategory, strSearch) {
var _this = this;
// 如果是"推荐"和"搜索",需要单独处理
// '搜索'tab的时候, 需要转换为搜索的关键词(_this.__data__.strSearch)
var query_url = '&title=' + strSearch + '&orderType=' + strCategory
var query_url = '&title=' + strSearch + '&orderType=' + strCategory + '&city=' + strCity
var strUrl = config.activity_query_url + "?pageCount=" + pageCount
+ "&pageNum=" + pageNum + query_url
......@@ -271,6 +278,7 @@ Page({
bisHideLoadMoreType = true;
}
for (var i = 0; i < res.data.data.length; i++) {
var index_id = i + _this.__data__.activities.length
var result = {}
result["activity_id"] = res.data.data[i].activityId
result["member_name"] = res.data.data[i].memberName
......@@ -296,7 +304,7 @@ Page({
var url_quiz = "../activity/quiz-info/quiz-info?"
+"activity_id="+result["activity_id"]
+"&index_id="+i
+"&index_id="+index_id
+"&note_image="+res.data.data[i].noteImage //传递原始string数据, List不正确
+"&title="+result["title"]
+"&content="+result["content"]
......@@ -308,7 +316,7 @@ Page({
+"&member_logo="+result["member_logo"]
var url_activity = "../activity/activity-info/activity-info?"
+"activity_id="+result["activity_id"]
+"&index_id="+i
+"&index_id="+index_id
+"&note_image="+res.data.data[i].noteImage //传递原始string数据, List不正确
+"&title="+result["title"]
+"&title_abbr="+result["title_abbr"]
......@@ -353,6 +361,7 @@ Page({
hideInput: function () {
var _this = this;
var curIndex = _this.__data__.curIndex
var strCity = _this.__data__.city
var strCategory = _this.__data__.category[curIndex].order
var strSearch = ""
......@@ -361,7 +370,7 @@ Page({
inputShowed: false,
});
_this.getActivities(0, 1, 4, strCategory, strSearch);
_this.getActivities(0, 1, 4, strCity, strCategory, strSearch);
},
// * 删除输入字符串
......@@ -376,9 +385,10 @@ Page({
var _this = this;
var strSearch = e.detail.value
var curIndex = _this.__data__.curIndex
var strCity = _this.__data__.city
var strCategory = _this.__data__.category[curIndex].order
console.log("===input search text_" + strSearch)
_this.getActivities(0, 1, 4, strCategory, strSearch);
_this.getActivities(0, 1, 4, strCity, strCategory, strSearch);
_this.setData({
strSearch: strSearch,
......
<wxs module="tutil" src="./../../utils/date.wxs"></wxs>
<wxs module="tutil" src="./../../utils/date.wxs"></wxs>
......@@ -7,7 +7,7 @@
<!-- refer https://www.jb51.net/article/158292.htm -->
<!-- refer https://github.com/cinoliu/-selectCity -->
<view class="weui-search-bar">
<text>上海</text>
<text>{{city}}</text>
<image src='../../icon/down.png' style='width: 32rpx;height: 32rpx;' class='selecrtImg'></image>
<view class="weui-search-bar__form">
<view class="weui-search-bar__box">
......@@ -51,7 +51,7 @@
<!-- jscat20200816 添加活动日历 for convinience -->
<block wx:if="{{memberId!=''}}">
<view class="items">
<navigator url="/pages/activity/activity-list/activity-list">
<navigator url="/pages/activity/activity-list/activity-list?city={{city}}">
<image src="../../icon/member/schedule.png"></image>
</navigator>
<text>本周活动</text>
......
// pages/activity/activity.js
// pages/activity/activity.js
const app = getApp()
var config = wx.getStorageSync("config");
Page({
/**
* 页面的初始数据
*/
data: {
collects: [],
// {
// note_image: [ "https://1.jpg", "https://2.jpg"],
// title: "一天",
// like: 10,
// writer_name: "无敌花木兰",
// writer_image: "../../icon/icon_avatar3.png"
// },
//分页加载部分
isHideLoadMore: false,
pageIndex: 1, //分页搜索的page index
//页面格式
deviceRatio: 1,
navHeight: 0,
searchHeight: 0,
noteTop: 0,
noteHeight: 0,
//点赞模块-来自子页面
likeDictSub: {},
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var _this = this;
//初始化数据
if (wx.getStorageSync('nyxCode')) {
_this.setData({
nyxCode: wx.getStorageSync('nyxCode'),
userInfo: wx.getStorageSync('userInfo'),
authStatus: wx.getStorageSync('authStatus'),
memberId : wx.getStorageSync('memberId'),
})
}
// todo temp 暂时设置所有用户为个人(可以查看个人->商家管理)
wx.setStorageSync('memberId', "")
var device = wx.getSystemInfoSync()
//self.device = app.globalData.myDevice
// jscat miniprogram default width is 750rpx
var deviceRatio = device.windowWidth / 750
var winWidth = device.windowWidth * deviceRatio
var noteHeight = device.windowHeight - (40 - 60)
_this.setData({
searchHeight: 40,
navHeight: 40,
noteTop : (40+40),
noteHeight: noteHeight,
deviceRatio: deviceRatio,
})
wx.setNavigationBarTitle({
title: '我的收藏',
})
//初始载入5个收藏活动
if(_this.__data__.collects.length == 0)
{
_this.getCollects(0, 1, 5);
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
var _this = this;
var likeDictSub = _this.__data__.likeDictSub;
var collects = _this.__data__.collects;
if(likeDictSub.hasOwnProperty('index_id'))
{
var index = likeDictSub['index_id']
collects[index]['num_like'] = likeDictSub['num_like']
//在这个页面只能直接取消; 故直接从collects里去除该记录
collects.splice(index, 1)
_this.setData({
collects: collects,
likeDictSub: {}, // 处理完之后, 重置为{}
})
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
console.log('页面上拉触底')
var _this = this;
var isHideLoadMore = _this.__data__.isHideLoadMore;
var pageIndex = _this.__data__.pageIndex;
//控制逻辑, 在onClick之后或者onGetComment事件之后再允许下拉更新操作
//判断是否已经全部加载完毕
//没有则加载更多
if (!isHideLoadMore) {
console.log('加载更多')
setTimeout(() => {
_this.getCollects(1, pageIndex, 5);
}, 1000)
}
else {
console.log('没有更多')
}
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
/**
* 用户自定义函数
*
*/
// 获取collects数据
// scrollType: 是否是翻页
/*
搜索逻辑:
1. 搜索框, tag=strSearch + title=strSearch
2. tab, tag=strSearch
3. 新增的search tab, '搜索'tab的时候,需要转换为搜索的关键词(_this.__data__.strSearch)
*/
getCollects: function (scrollType, pageNum, pageCount) {
var _this = this;
var userId = _this.__data__.nyxCode
var query_url = '&userId=' + userId
var strUrl = config.collect_query_url + "?pageCount=" + pageCount
+ "&pageNum=" + pageNum + query_url
config.debug == 1 ? console.log("===strUrl is: \"" + strUrl + "\"") : ""
wx.request({
url: strUrl,
method: 'GET',
header: {
'Cookie': wx.getStorageSync('cookieKey'),
},
success: function (res) {
if (res.data.resultCode == 200) {
//表示HTTP请求成功
console.log(res.data);
var list = []
var bisHideLoadMoreType = false;
if (res.data.data.length < pageCount) {
bisHideLoadMoreType = true;
}
// 设置全局的点赞标记 step1
var likeDictStorage = {}
for (var i = 0; i < res.data.data.length; i++) {
var result = {}
result["activity_id"] = res.data.data[i].activityId
result["member_name"] = res.data.data[i].memberName
result["member_slogan"] = res.data.data[i].memberSlogan
result["member_id"] = res.data.data[i].memberId
result["member_status"] = res.data.data[i].memberStatus
result["member_logo"] = res.data.data[i].memberLogo
result["tag"] = res.data.data[i].tag
result["title"] = res.data.data[i].title
result["title_abbr"] = res.data.data[i].titleAbbr
result["num_like"] = res.data.data[i].numLike
result["content"] = res.data.data[i].content
result["quiz"] = res.data.data[i].quiz
result["point"] = res.data.data[i].point
result["address_name"] = res.data.data[i].addressName
result["product_desc"] = res.data.data[i].productDesc
result["unit_price"] = res.data.data[i].unitPrice
result["note_image"] = res.data.data[i].noteImage.split("::")
var start_datetime = res.data.data[i].startDatetime
var end_datetime = res.data.data[i].endDatetime
result["start_datetime"] = start_datetime
result["end_datetime"] = end_datetime
// 设置全局的点赞标记 step2
likeDictStorage[result["activity_id"]] = 1
var url_quiz = "../../activity/quiz-info/quiz-info?"
+"activity_id="+result["activity_id"]
+"&index_id="+i
+"&note_image="+res.data.data[i].noteImage //传递原始string数据, List不正确
+"&title="+result["title"]
+"&content="+result["content"]
+"&quiz="+result["quiz"]
+"&point="+result["point"]
+"&member_id="+result["member_id"]
+"&member_name="+result["member_name"]
+"&member_slogan="+result["member_slogan"]
+"&member_logo="+result["member_logo"]
var url_activity = "../../activity/activity-info/activity-info?"
+"activity_id="+result["activity_id"]
+"&index_id="+i
+"&note_image="+res.data.data[i].noteImage //传递原始string数据, List不正确
+"&title="+result["title"]
+"&title_abbr="+result["title_abbr"]
+"&content="+result["content"]
+"&address_name="+result["address_name"]
+"&unit_price="+result["unit_price"]
+"&product_desc="+result["product_desc"]
+"&member_id="+result["member_id"]
+"&member_name="+result["member_name"]
+"&member_slogan="+result["member_slogan"]
+"&member_logo="+result["member_logo"]
+"&start_datetime="+result["start_datetime"]
+"&end_datetime="+result["end_datetime"]
result["url"] = result["tag"]=='竞答'? url_quiz : url_activity
list.push(result)
}
// 设置全局的点赞标记 step3
wx.setStorageSync('likeDictStorage', likeDictStorage)
//进行翻页设置(加载更多)
if (scrollType == 1) {
var collectsList = _this.__data__.collects;
list = collectsList.concat(list)
}
_this.setData({
collects: list,
pageIndex: pageNum + 1,
isHideLoadMore: bisHideLoadMoreType,
})
}
}
})
},
})
//通过Promise方式为wx.request添加同步操作
const getData = (url, param) => {
return new Promise((resolve, reject) => {
wx.request({
url: url,
method: 'GET',
data: param,
success(res) {
resolve(res.data)
},
fail(err) {
reject(err)
}
})
})
}
<wxs module="tutil" src="./../../../utils/date.wxs"></wxs>
<wxs module="tutil" src="./../../../utils/date.wxs"></wxs>
<view class="page">
<!-- 收藏列表 -->
<!--
title
unit_price
date
member_name 进店 >
-->
<!-- Content: refer to 有品·优惠券 + 点评(可使用) -->
<view class="coupon-list" wx:for="{{collects}}" wx:for-item="item" wx:key="{{index}}">
<view class="item stamp stamp01" style="192rpx;">
<!-- 商品信息 -->
<view class="note-row">
<navigator url='{{item.url}}&num_like={{item.num_like}}' >
<image class="writer-image" src="{{item.note_image[0]}}"/>
</navigator>
<view class="note-column">
<navigator url='{{item.url}}&num_like={{item.num_like}}' >
<!-- 商家信息 -->
{{item.title}}
<!-- 商品价格 -->
<span>
<view class="price-row">
<view class="sub-price">¥{{item.unit_price}}</view>
</view>
</span>
<!-- 活动日期 -->
<span class="desc">
{{tutil.formatDate_mdw_interval(item.start_datetime, item.end_datetime)}}
</span>
</navigator>
<!-- 活动点赞 -->
<!-- <span>{{tutil.formatNumberLike(item.num_like)}}</span> -->
<!-- 商家名称 -->
<view class="note-row align">
<view class="desc-member-left">{{item.member_name}}</view>
<!-- todo 店铺功能尚未实现 -->
<!-- <view class="desc-member-right">进店 ></view> -->
</view>
</view>
</view>
</view>
</view>
<!-- 加载更多 -->
<view class="weui-loadmore" hidden="{{isHideLoadMore}}">
<view class="weui-loading"></view>
<view class="weui-loadmore__tips">正在加载</view>
</view>
<view class="weui-loadmore" hidden="{{!isHideLoadMore}}">
<view class="weui-loadmore__tips">没有更多啦 {{'>'}}_{{'<'}} </view>
</view>
</view>
/*
/*
height: 100vh; 相对于视口(Layout Viewport)的高度; 视口被均分为100单位的vh
border-radius: 30px; 设置元素的外边框圆角
position: relative; 相对位置
em: 默认文字大小是16px, font-size: 16px; em是一个相对的大小; 1em=1*16=16px
结构: position -> margin -> ( border -> padding -> input )
position: 定位原则:子绝父相; absolute,绝对;relative,相对;fixed,固定,比如搜索框
display: inline 行内元素 不带空格 block 块级元素 带空格
margin: 上右下左 top right bottom :left
*/
.page{
height:100vh; /* 相对于视口(Layout Viewport)的高度; 视口被均分为100单位的vh */
background-color:#f5f8fa;
}
/* narBar -> navBar-box -> cate-list -> cate-list.on */
.navBar{
height: 60rpx;
background: #fff;
border-top: 1px solid #fafafa;
}
.navBar-box{
width: 100%;
height: 60rpx;
}
.cate-list{
display: inline;
margin: 15rpx 22rpx;
text-align: center;
font-size: 32rpx;
color: #9d9d9d;
margin-left: 30rpx;
}
.navBar-box .cate-list.on {
color: #000000;
font-weight: bold;
}
.placeholder{
margin: 0px;
text-align: center;
vertical-align: middle;
line-height: 2.3em;
color: rgba(0,0,0);
}
/* justify-content: center;(水平居中) align-items: center;(垂直居中) */
.justify{
justify-content: center;
}
.align{
align-items: center;
}
.border{
border: 3rpx solid #ccc;
border-radius: 0rpx;
padding: 10rpx;
}
.text{
font-size: 34rpx;
}
.selected{
color: #ff0000;
}
/* coupon css */
.coupon-list{width: 100%; margin: 0 auto}
.coupon-list .item{width: 100%; height: 300rpx;}
.coupon-list .item .float-li{width: 100%; height: 100%; border-right: 2rpx dashed rgba(255,255,255,.3)}
.coupon-list .item .float-li-right{width: 220rpx; padding-right: 20rpx; height:100%; color: #fff}
.coupon-left{position: relative}
.coupon-left .t{position: absolute; color: #fff}
.coupon-left .t1{width: 710rpx; display: flex; margin-left: 20rpx; margin-top: 20rpx; height: 160rpx; color: #fff}
.coupon-left .t1-left{width: 160rpx; font-size: 70rpx; font-weight: bold}
.coupon-left .t1-right{width: 520rpx; font-size: 50rpx; }
/* .coupon-left .t2{left: 20rpx; top:160rpx} */
.coupon-left .t2{width: 710rpx; display: flex; margin-left: 20rpx; margin-top: 0rpx; height: 50rpx; color: #fff}
.coupon-left .t2-left{width: 520rpx; }
.coupon-left .t2-right{width: 160rpx;}
.coupon-left .t3{width: 710rpx; display: flex; margin-left: 20rpx; margin-top: 0rpx; height: 50rpx; color: #fff}
.coupon-left .t3-left{width: 520rpx; }
.coupon-left .t3-right{width: 160rpx;}
.coupon-left .t3-right image{
width: 40rpx;
height: 40rpx;
font-size: 0;
}
.coupon-left .t4{width: 710rpx; display: flex; margin-left: 20rpx; margin-top: 0rpx; height: 50rpx; color: #fff}
.coupon-left .t4-left{width: 520rpx; }
.coupon-left .t4-right{width: 160rpx;}
.coupon-left .t4-right image{
width: 40rpx;
height: 40rpx;
font-size: 0;
}
.coupon-right .t{text-align: center}
.coupon-right .t1{font-size: 40rpx; padding: 30rpx 0 10rpx 0;}
.coupon-right .t3{padding-top:20rpx}
.coupon-right .t3 text{background: #fff; color: #333; border-radius: 7rpx; padding: 10rpx 40rpx}
.note{background: #faeab7}
.stamp{position:relative;overflow:hidden}
.stamp i{position: absolute;left: 20%;top: 90rpx;height: 500rpx;width: 700rpx;background-color: rgba(255,255,255,.15);transform: rotate(-30deg);
}
.stamp01{background:radial-gradient(rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 30rpx, #F39B00 30rpx);background-size:10rpx 10rpx;background-position:9rpx 3rpx; background: #FFFFFF}
/* 失效样式 */
.stamp06{background:radial-gradient(rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 30rpx, #e2e2e2 30rpx);background-size:10rpx 10rpx;background-position:9rpx 3rpx; background: #acacac
}
/* start - 小程序自定义弹框css */
/* 遮罩层 */
.mask{
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: #000;
z-index: 9000;
opacity: 0.5;
}
/* 弹出层 */
.modalDlg{
width: 80%;
height: 540rpx;
position: fixed;
top: 240rpx;
left: 0;
right: 0;
z-index: 9999;
margin: 0 auto;
background-color: #fff;
border-radius:5px;
display: flex;
flex-direction: column;
align-items: center;
}
/* 弹出层里面的图片 */
/* 弹出层里面的文字 */
.title{
display: flex;
font-size: 38rpx;
color: #cccccc;
width: 80%;
height: 80rpx;
padding: 20rpx;
align-items: center;
justify-content: center;
}
.title-right{
display: flex;
height: 80rpx;
position: absolute;
align-items: center;
text-align: right;
font-size: 38rpx;
color: #cccccc;
padding: 20rpx;
right: 20rpx;
}
.title-right image{
width: 50rpx;
height: 50rpx;
font-size: 0;
}
/* 图片+文字 */
.weui-width{
width: 80%;
}
.placeholder-modal{
margin: 0px;
text-align: center;
vertical-align: middle;
line-height: 2.3em;
background-color: #fff;
}
/* 好友助力积分列表 */
.list-point{
width: 100%;
height: 2rpx;
background: #ccc;
font-size: 32rpx;
display: flex;
flex-direction: column;
/* align-items: center; */
left: 40rpx;
}
.list-point .text{
margin-left: 160rpx;
}
.title-right image{
width: 50rpx;
height: 50rpx;
font-size: 0;
}
/* barcode券码查看 */
.list-barcode{
width: 100%;
height: 2rpx;
background: #ccc;
font-size: 32rpx;
display: flex;
flex-direction: column;
align-items: center;
}
.list-barcode .text{
align-items: center;
margin-left: 20rpx;
}
.list-barcode image{
overflow: visible;
width: 300rpx;
height: 300rpx;
}
/* 弹出层里面的按钮 */
.ok{
width: 100%;
height: 2rpx;
background: #ccc;
text-align: center;
font-size: 38rpx;
color: #666666;
}
/* end - 小程序自定义弹框css */
/* start 加载更多 */
.weui-loading {
margin: 0 5px;
width: 20px;
height: 20px;
display: inline-block;
vertical-align: middle;
-webkit-animation: weuiLoading 1s steps(12, end) infinite;
animation: weuiLoading 1s steps(12, end) infinite;
background: transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;
background-size: 100%;
}
.weui-loadmore {
width: 65%;
margin: 1.5em auto;
line-height: 1.6em;
font-size: 14px;
text-align: center;
}
.weui-loadmore__tips {
display: inline-block;
vertical-align: middle;
}
/* end 加载更多*/
.note-info{
width: 100%;
/* position: fixed; */
border-radius: 5rpx;
float: left;
margin-top: 20rpx;
margin-bottom: 20rpx;
}
.note-member{
display: flex;
font-size: 32rpx;
margin-left: 5%;
margin-right: 5%;
margin-top: 0;
text-align:justify;
vertical-align: center;
}
.note-member .member-left{width: 520rpx; flex:1}
.note-member .member-right{width: 160rpx;justify-content: flex-end;display: flex;}
.note-member .member-right image{
width: 60rpx;
height: 60rpx;
font-size: 0;
}
.note-price{
color: #FF6600;
font-size: 16px;
margin-left: 5%;
margin-right: 5%;
margin-top: 0;
text-align:justify;
}
.note-content{
font-size: 16px;
/* 后期用于 '展开' 功能 */
/* overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical; */
margin-left: 5%;
margin-right: 4%;
margin-top: 20rpx;
text-align:justify;
}
.note-row{
width: 100%;
display: flex;
flex-direction: row;
}
.note-column{
display: flex;
flex-direction: column;
margin-left: 30rpx;
margin-right: 30rpx;
width: 55%;
}
.writer-image{
width: 240rpx;
height: 240rpx;
margin-left: 30rpx;
margin-top: 10rpx;
}
.price-row{
display: flex;
flex-direction: row;
}
.sub-price{
color: #FF6600;
font-size: 34rpx;
margin-right: 5%;
margin-top: 0;
text-align:justify;
flex: 1;
font-weight: bold;
}
.sub-quantity{
display: flex;
font-size: 16px;
justify-content: flex-end;
}
/* refer to jd */
.desc {
font-size: 30rpx;
color: #a7a7a7;
}
.desc-member-left {
font-size: 30rpx;
color: #a7a7a7;
margin-right: 20rpx;
}
.desc-member-right {
font-size: 30rpx;
}
/* start of workbench*/
.workbench{
font-size: 32rpx;
background: #fff;
padding-bottom: 10rpx;
margin-bottom:10rpx;
padding-top: 5rpx;
margin-top:5rpx;
color: #333;
}
.workbench .title{
font-size: 32rpx;
padding: 20rpx 20rpx;
margin-bottom: 40rpx;
display: block;
}
.workbench .items{
width: 100rpx;
flex:1;
text-align: center;
}
.workbench .items image{
width: 80rpx;
height: 80rpx;
}
.workbench .items image.service-icon{
width: 50rpx;
height: 50rpx;
}
.workbench .items text{
display: block;
text-align: center;
margin-top: 0rpx;
margin-bottom: 0rpx;
}
.workbench .items text.top{
display: block;
text-align: center;
margin-bottom: 0rpx;
}
.workbench .items text.bottom{
display: block;
text-align: center;
margin-top: 0rpx;
}
.workbench .list{
display: flex;
flex-direction: row;
flex:1;
}
/* end of workbench*/
<view class="page">
<view class="page">
......@@ -38,9 +38,9 @@
<view class="weui-cell__bd">我的活动</view>
<view class="weui-cell__ft weui-cell__ft_in-access"></view>
</navigator>
<navigator class="weui-cell weui-cell_access" hover-class="weui-cell_active" url="/pages/my/my-orders/my-orders">
<navigator class="weui-cell weui-cell_access" hover-class="weui-cell_active" url="/pages/my/my-collects/my-collects">
<view class="weui-cell__hd">
<image src="/icon/my/activity.png" />
<image src="/icon/my/fav.png" />
</view>
<view class="weui-cell__bd">我的收藏</view>
<view class="weui-cell__ft weui-cell__ft_in-access"></view>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论