Commit dd053a03f1c790374e57a8bd9555fd1ff2833a43

Authored by 后端研发-倪永富
1 parent 51c3bb3b

抢红包

packageA/pages/hongBao/hongBao.js 0 → 100644
  1 +// packageA//pages/hongBao/hongBao.js
  2 +const app = getApp();
  3 +let self = null;
  4 +
  5 +let ut = require("../../../utils/util.js")
  6 +
  7 +Page({
  8 +
  9 + /**
  10 + * 页面的初始数据
  11 + */
  12 + data: {
  13 + url: app.globalData.setting.imghost,
  14 + qiangHongBao: false,
  15 + time: null,
  16 +
  17 + // hongBaoData: null, //保存抢红包活动的相关时间等信息
  18 + isStart: 0, //记录抢红包活动是否开始
  19 + result: null, //保存抢红包的结果
  20 + },
  21 +
  22 + /**
  23 + * 生命周期函数--监听页面加载
  24 + */
  25 + onLoad: function (options) {
  26 + console.log('onload');
  27 + self = this;
  28 +
  29 + this.isLogin()
  30 + .then(function(data) {
  31 +
  32 + self.requestData('/api/weshop/redmoney/redConfig/get/'+app.globalData.setting.stoid, {})
  33 + .then(function(data) {
  34 + self.data.hongBaoData = data.data.data;
  35 + self.countDown();
  36 + self.setData({
  37 + storeName: app.globalData.config.store_name
  38 + });
  39 + });
  40 +
  41 + });
  42 + },
  43 +
  44 + // 判断是否授权登录
  45 + isLogin() {
  46 + return new Promise((resolve, reject) => {
  47 + let user_info = app.globalData.userInfo;
  48 + if(user_info == null || user_info.mobile == undefined || user_info.mobile == "" || user_info.mobile == null) {
  49 + wx.navigateTo({
  50 + url: '/pages/togoin/togoin',
  51 + })
  52 + } else {
  53 + resolve();
  54 + };
  55 + });
  56 + },
  57 +
  58 + /**
  59 + * 生命周期函数--监听页面初次渲染完成
  60 + */
  61 + onReady: function () {
  62 + console.log('onready');
  63 +
  64 +
  65 + },
  66 +
  67 + /**
  68 + * 生命周期函数--监听页面显示
  69 + */
  70 + onShow: function () {
  71 + console.log('onshow');
  72 +
  73 +
  74 +
  75 +
  76 + },
  77 +
  78 + /**
  79 + * 生命周期函数--监听页面隐藏
  80 + */
  81 + onHide: function () {
  82 + console.log('onhide');
  83 + },
  84 +
  85 + /**
  86 + * 生命周期函数--监听页面卸载
  87 + */
  88 + onUnload: function () {
  89 +
  90 + },
  91 +
  92 + /**
  93 + * 页面相关事件处理函数--监听用户下拉动作
  94 + */
  95 + onPullDownRefresh: function () {
  96 +
  97 + },
  98 +
  99 + /**
  100 + * 页面上拉触底事件的处理函数
  101 + */
  102 + onReachBottom: function () {
  103 +
  104 + },
  105 +
  106 + /**
  107 + * 用户点击右上角分享
  108 + */
  109 + onShareAppMessage: function () {
  110 +
  111 + },
  112 +
  113 + // 请求数据
  114 + requestData(url, data) {
  115 + return new Promise((resolve, reject) => {
  116 + app.request.promiseGet(url, {data: data})
  117 + .then(res => {
  118 + if(res.data.code == 0) {
  119 + console.log('resolve', res);
  120 + resolve(res);
  121 + } else {
  122 + reject(res);
  123 + };
  124 + })
  125 + });
  126 + },
  127 +
  128 + //秒杀倒计时
  129 + //---小于10的格式化函数----
  130 + timeFormat(param) {
  131 + return param < 10 ? '0' + param : param;
  132 + },
  133 +
  134 + handleTime(time) {
  135 + var day = parseInt(time / (60 * 60 * 24));
  136 + var hou = parseInt(time % (60 * 60 * 24) / 3600);
  137 + var min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
  138 + var sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
  139 + return {
  140 + day: this.timeFormat(day),
  141 + hou: this.timeFormat(hou),
  142 + min: this.timeFormat(min),
  143 + sec: this.timeFormat(sec),
  144 + };
  145 + },
  146 +
  147 + //----秒杀倒计时函数-----
  148 + countDown() {
  149 + // if (!this.data.is_timer) return false;
  150 + var time;
  151 + // 获取当前时间,同时得到活动结束时间数组
  152 + var newTime = ut.gettimestamp();
  153 + // var List = this.data.saleGoods;
  154 + // for (var j = 0; j < List.length; j++) {
  155 + // var endTimeList = List[j];
  156 + // 对结束时间进行处理渲染到页面
  157 + // for (var i = 0; i < endTimeList.length; i++) {
  158 + // var o = endTimeList[i];
  159 + var startTime = this.data.hongBaoData.start_time;
  160 + // var startTime = 1600;
  161 + var endTime = this.data.hongBaoData.end_time;
  162 + // if (o.status == 0) endTime = o.start_time
  163 + var obj = null;
  164 +
  165 + if(startTime - newTime > 0) { //活动还没开始
  166 + this.setData({
  167 + isStart: 0,
  168 + });
  169 + time = startTime - newTime;
  170 + // var day = parseInt(time / (60 * 60 * 24));
  171 + // var hou = parseInt(time % (60 * 60 * 24) / 3600);
  172 + // var min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
  173 + // var sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
  174 + // obj = {
  175 + // day: this.timeFormat(day),
  176 + // hou: this.timeFormat(hou),
  177 + // min: this.timeFormat(min),
  178 + // sec: this.timeFormat(sec),
  179 + // };
  180 +
  181 + obj = this.handleTime(time);
  182 + }
  183 + // 如果活动未结束,对时间进行处理
  184 + if (endTime - newTime > 0) { //活动还没结束
  185 + this.setData({
  186 + isStart: 1,
  187 + });
  188 + time = endTime - newTime;
  189 + // 获取天、时、分、秒
  190 + // var day = parseInt(time / (60 * 60 * 24));
  191 + // var hou = parseInt(time % (60 * 60 * 24) / 3600);
  192 + // var min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
  193 + // var sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
  194 + // obj = {
  195 + // day: this.timeFormat(day),
  196 + // hou: this.timeFormat(hou),
  197 + // min: this.timeFormat(min),
  198 + // sec: this.timeFormat(sec),
  199 + // };
  200 +
  201 + obj = this.handleTime(time);
  202 +
  203 + } else { //活动已经结束
  204 + //活动已结束,全部设置为'00'
  205 + this.setData({
  206 + isStart: 2,
  207 + });
  208 + obj = {
  209 + day: '00',
  210 + hou: '00',
  211 + min: '00',
  212 + sec: '00'
  213 + }
  214 + }
  215 + // var txt = "saleGoods[" + j + "][" + i + "].djs";
  216 + self.setData({
  217 + time: obj,
  218 + });
  219 + // }
  220 +
  221 + // }
  222 + setTimeout(self.countDown, 1000);
  223 + },
  224 +
  225 + qiangHongBao() {
  226 + app.request.promisePost('/api/weshop/redmoney/redRecord/saveRecord', {
  227 + data: {
  228 + store_id: app.globalData.setting.stoid,
  229 + user_id: app.globalData.user_id,
  230 + redid: this.data.hongBaoData.id,
  231 + }
  232 + })
  233 + .then(res => {
  234 + if(res.data.code == 0){
  235 + // wx.hideLoading();
  236 + // wx.showToast({
  237 + // title: '领取成功',
  238 + // icon: 'success',
  239 + // duration: 2000
  240 + // });
  241 + console.log('请求提交成功',res.data);
  242 + // if(callback) {
  243 + // callback(res.data.data);
  244 + // }
  245 + } else if(res.data.code === -1) {
  246 + // wx.hideLoading();
  247 + // wx.showToast({
  248 + // title: '领取失败:' + res.data.msg,
  249 + // icon: 'none',
  250 + // duration: 2000
  251 + // });
  252 + // self.setData({
  253 + // result: res.data
  254 + // });
  255 +
  256 + };
  257 + self.setData({
  258 + result: res.data,
  259 + qiangHongBao: true,
  260 + });
  261 + })
  262 +
  263 + },
  264 +
  265 + receive() {
  266 + // app.postData('/api/wemd/stafftask/saveGuideTaskListGive', {
  267 + // store_id: app.globalData.userInfo.store_id,
  268 + // StaffId: _this.data.StaffId,
  269 + // Id: _this.data.details.Id,
  270 + // TaskType: _this.data.details.TaskType,
  271 + // });
  272 +
  273 + // postData(url, data, callback) {
  274 + wx.showLoading({
  275 + title: '奖励领取中'
  276 + });
  277 + app.request.promisePost('/api/wemd/stafftask/saveGuideTaskListGive', {
  278 + data: {
  279 + store_id: app.globalData.userInfo.store_id,
  280 + StaffId: _this.data.StaffId,
  281 + Id: _this.data.details.Id,
  282 + TaskType: _this.data.details.TaskType,
  283 + }
  284 + })
  285 + .then(res => {
  286 + if(res.data.code == 0){
  287 + wx.hideLoading();
  288 + wx.showToast({
  289 + title: '领取成功',
  290 + icon: 'success',
  291 + duration: 2000
  292 + });
  293 + // console.log('请求提交成功',res.data.data);
  294 + // if(callback) {
  295 + // callback(res.data.data);
  296 + // }
  297 + } else if(res.data.code === -1) {
  298 + wx.hideLoading();
  299 + wx.showToast({
  300 + title: '领取失败:' + res.data.msg,
  301 + icon: 'none',
  302 + duration: 2000
  303 + });
  304 + };
  305 + })
  306 + // },
  307 + },
  308 +
  309 +
  310 + closePopup() {
  311 + this.setData({
  312 + qiangHongBao: false,
  313 + });
  314 + },
  315 +
  316 +
  317 + gotoDetails() {
  318 + app.goto('/packageA/pages/hongBaoDetails/hongBaoDetails?redid=' + this.data.hongBaoData.id);
  319 + },
  320 +
  321 +
  322 +})
0 \ No newline at end of file 323 \ No newline at end of file
packageA/pages/hongBao/hongBao.json 0 → 100644
  1 +{
  2 + "usingComponents": {},
  3 + "enablePullDownRefresh": false,
  4 + "navigationBarTitleText": "抢红包"
  5 +}
0 \ No newline at end of file 6 \ No newline at end of file
packageA/pages/hongBao/hongBao.wxml 0 → 100644
  1 +<!--packageA//pages/hongBao/hongBao.wxml-->
  2 +<view class="hongBao-container">
  3 + <view class="white fs26">由{{storeName}}发起抢红包</view>
  4 + <view class="btn-container">
  5 + <image src="{{url + 'miniapp/images/redmoney/redbag_btn.png'}}" class="btn" mode="aspectFit" bindtap="qiangHongBao"></image>
  6 + </view>
  7 + <view class="countdown-container">
  8 + <view class="countdown-txt">{{isStart == 0 ? '距离活动开始还有':(isStart == 1 ? '距离活动结束还有':'活动已经结束')}}</view>
  9 + <view class="countdown">
  10 + <view class="countdown-item">{{time.day}}天</view>
  11 + <view class="countdown-item">{{time.hou}}时</view>
  12 + <view class="countdown-item">{{time.min}}分</view>
  13 + <view class="countdown-item">{{time.sec}}秒</view>
  14 + </view>
  15 + </view>
  16 +</view>
  17 +
  18 +<!-- 弹窗 -->
  19 +<view class="popup-container" wx:if="{{qiangHongBao}}" bindtap="closePopup">
  20 + <view class="popup">
  21 + <block wx:if="{{result.code == 0}}">
  22 + <image src="{{url + 'miniapp/images/redmoney/hbtit.png'}}" mode="aspectFit"></image>
  23 + <view class="amount-container">
  24 + <view class="amount">¥{{result.data.redmoney}}</view>
  25 + <view class="btn-receive" catchtap="gotoDetails" data-redid="{{hongBaoData.id}}">
  26 + <image src="{{url + 'miniapp/images/redmoney/srhb.png'}}" class="btn-img"></image>
  27 + </view>
  28 + </view>
  29 + </block>
  30 +
  31 + <block wx:if="{{result.code == -1}}">
  32 + <image src="{{url + 'miniapp/images/redmoney/hbtit2.png'}}" mode="aspectFit"></image>
  33 + <!-- <view class="none">来晚了,红包已抢空~</view> -->
  34 + <view class="none">{{result.msg}}</view>
  35 + <view class="see" catchtap="gotoDetails" data-redid="{{hongBaoData.id}}">看看大家的手气 ></view>
  36 + </block>
  37 + </view>
  38 +</view>
  39 +
  40 +<!-- 弹窗 -->
  41 +<!-- <view class="popup-container">
  42 + <view class="popup">
  43 + <image src="{{url + 'miniapp/images/redmoney/hbtit2.png'}}" mode="aspectFit"></image>
  44 + <view class="none">来晚了,红包已抢空~</view>
  45 + <view class="see">看看大家的手气 ></view>
  46 + </view>
  47 +</view> -->
packageA/pages/hongBao/hongBao.wxss 0 → 100644
  1 +/* packageA//pages/hongBao/hongBao.wxss */
  2 +page {
  3 + background: url('https://mshopimg.yolipai.net/miniapp/images/redmoney/hongbao_bg.jpg') center top;
  4 + background-size: 100% auto;
  5 +}
  6 +
  7 +.hongBao-container {
  8 + padding: 20rpx;
  9 +}
  10 +
  11 +.btn-container {
  12 + padding-top: 60rpx;
  13 + padding-bottom: 60rpx;
  14 + -webkit-animation: free_download 600ms linear alternate infinite;
  15 + animation: free_download 600ms linear alternate infinite;
  16 +}
  17 +
  18 +@-webkit-keyframes free_download{
  19 + 0% {-webkit-transform:scale(0.9);}
  20 + 100% {-webkit-transform:scale(1.1);}
  21 +}
  22 +
  23 +@keyframes free_download{
  24 + 0% {transform:scale(0.9);}
  25 + 100% {transform:scale(1.1);}
  26 +}
  27 +
  28 +.countdown-container {
  29 + position: fixed;
  30 + left: 0;
  31 + bottom: 0;
  32 + width: 100%;
  33 + height: 688rpx;
  34 + background: url('https://mshopimg.yolipai.net/miniapp/images/redmoney/indexbot.png') no-repeat left bottom;
  35 + background-size: 100% auto;
  36 + text-align: center;
  37 +}
  38 +
  39 +.countdown {
  40 + display: flex;
  41 + justify-content: space-around;
  42 + padding: 200rpx 160rpx 0;
  43 +}
  44 +
  45 +.countdown-item {
  46 + background: url('https://mshopimg.yolipai.net/miniapp/images/redmoney/timebox.png') no-repeat;
  47 + background-size: 100% 100%;
  48 + width: 90rpx;
  49 + height: 100rpx;
  50 + line-height: 120rpx;
  51 + color: white;
  52 +}
  53 +
  54 +.btn {
  55 + width: 100%;
  56 + height: 400rpx;
  57 +}
  58 +
  59 +.countdown-txt {
  60 + color: #ff6768;
  61 + text-align: center;
  62 + padding-top: 120rpx;
  63 + font-size: 36rpx;
  64 + font-weight: bold;
  65 +}
  66 +
  67 +.popup-container {
  68 + position: fixed;
  69 + width: 100%;
  70 + height: 100%;
  71 + top: 0;
  72 + background-color: rgba(0,0,0,.7);
  73 +}
  74 +
  75 +.popup {
  76 + position: relative;
  77 + top: 50%;
  78 + left: 50%;
  79 + transform: translate(-50%, -50%);
  80 + text-align: center;
  81 +}
  82 +
  83 +
  84 +.btn-img {
  85 + width: 200rpx;
  86 + height: 50rpx;
  87 +}
  88 +
  89 +.amount-container {
  90 + position: absolute;
  91 + left: 50%;
  92 + top: 50%;
  93 + transform: translateX(-55%);
  94 +}
  95 +
  96 +.amount {
  97 + color: #fff005;
  98 + font-size: 68rpx;
  99 + text-align: center;
  100 + padding-top: 10rpx;
  101 + padding-bottom: 20rpx;
  102 +}
  103 +
  104 +
  105 +
  106 +.none,
  107 +.see {
  108 + position: absolute;
  109 + font-size: 26rpx;
  110 + color: white;
  111 + left: 50%;
  112 + transform: translateX(-60%);
  113 +}
  114 +
  115 +.none {
  116 + font-size: 20rpx;
  117 + top: 36%;
  118 + margin-left: 55rpx;
  119 +}
  120 +
  121 +.see {
  122 + top: 82%;
  123 + left: 50%;
  124 + transform: translateX(-58%);
  125 +}
  126 +
  127 +.late {
  128 + font-size: 38;
  129 + color: #fff005;
  130 + padding-top: 40rpx;
  131 +}
0 \ No newline at end of file 132 \ No newline at end of file
packageA/pages/hongBaoDetails/hongBaoDetails.js 0 → 100644
  1 +// packageA//pages/hongBao/hongBao.js
  2 +const app = getApp();
  3 +let reqData = {};
  4 +let _this = null;
  5 +
  6 +Page({
  7 +
  8 + /**
  9 + * 页面的初始数据
  10 + */
  11 + data: {
  12 + url: app.globalData.setting.imghost,
  13 + list: null,
  14 + isLoading: false, // 检测是否已经发送请求,防止重复发送请求
  15 + noMore: false, // 检测是否有更多数据,true为没有更多数据,false为还有数据
  16 + pageNum: 1, // 当前页数
  17 + },
  18 +
  19 + /**
  20 + * 生命周期函数--监听页面加载
  21 + */
  22 + onLoad: function (options) {
  23 + _this = this;
  24 + console.log('options', options);
  25 + this.data.options = options;
  26 + reqData.url = '/api/weshop/redmoney/redRecord/page',
  27 + reqData.data = {
  28 + store_id: app.globalData.setting.stoid,
  29 + redid: this.data.options.redid,
  30 + };
  31 + reqData.data2 = {
  32 + store_id: app.globalData.setting.stoid,
  33 + user_id: app.globalData.user_id,
  34 + redid: this.data.options.redid,
  35 + pageSize: 1,
  36 + page: 1,
  37 + };
  38 + this.getData(true, reqData.url, reqData.data);
  39 + this.requestData(reqData.url, reqData.data2)
  40 + .then(function(data) {
  41 + _this.setData({
  42 + myRed: data.data.data.pageData[0]
  43 + });
  44 + // console.log('123', data.data.data.pageData[0]);
  45 + });
  46 + },
  47 +
  48 + /**
  49 + * 生命周期函数--监听页面初次渲染完成
  50 + */
  51 + onReady: function () {
  52 +
  53 + },
  54 +
  55 + /**
  56 + * 生命周期函数--监听页面显示
  57 + */
  58 + onShow: function () {
  59 +
  60 + },
  61 +
  62 + /**
  63 + * 生命周期函数--监听页面隐藏
  64 + */
  65 + onHide: function () {
  66 +
  67 + },
  68 +
  69 + /**
  70 + * 生命周期函数--监听页面卸载
  71 + */
  72 + onUnload: function () {
  73 +
  74 + },
  75 +
  76 + /**
  77 + * 页面相关事件处理函数--监听用户下拉动作
  78 + */
  79 + onPullDownRefresh: function () {
  80 +
  81 + },
  82 +
  83 + /**
  84 + * 页面上拉触底事件的处理函数
  85 + */
  86 + onReachBottom: function () {
  87 + this.scrollToLower(reqData.url, reqData.data);
  88 + },
  89 +
  90 + /**
  91 + * 用户点击右上角分享
  92 + */
  93 + onShareAppMessage: function () {
  94 +
  95 + },
  96 +
  97 + // 请求数据
  98 + requestData(url, data) {
  99 + return new Promise((resolve, reject) => {
  100 + app.request.promiseGet(url, {data: data})
  101 + .then(res => {
  102 + if(res.data.code == 0) {
  103 + console.log('resolve', res);
  104 + resolve(res);
  105 + } else {
  106 + reject(res);
  107 + };
  108 + })
  109 + });
  110 + },
  111 +
  112 +
  113 +
  114 + // 上拉加载请求数据
  115 + getData: function(isInit, url, data) {
  116 + wx.showLoading({
  117 + title: '加载中',
  118 + })
  119 + this.requestData(url, data)
  120 + .then(function(res) {
  121 + wx.hideLoading();
  122 + console.log('res--->', res);
  123 + _this.setData({
  124 + isLoading: false
  125 + });
  126 +
  127 + if(isInit) {// 第一次加载
  128 + _this.setData({
  129 + list: res.data.data
  130 + });
  131 + } else {
  132 +
  133 + _this.setData({
  134 + 'list.pageData': _this.data.list.pageData.concat(res.data.data.pageData)
  135 + });
  136 + };
  137 +
  138 + if((res.data.data.pageData.length == 0) || (res.data.data.pageSize * res.data.data.page >= res.data.data.total)) {
  139 + _this.setData({
  140 + noMore: true
  141 + });
  142 + };
  143 +
  144 + })
  145 + .catch(function(reason) {
  146 + wx.hideLoading();
  147 + wx.showToast({
  148 + title: reason.data.msg,
  149 + icon: 'none',
  150 + duration: 2000
  151 + })
  152 + _this.setData({
  153 + 'list.pageData': []
  154 + });
  155 + });
  156 + },
  157 +
  158 +
  159 + // 上拉加载
  160 + scrollToLower(url, requestData, callback) {
  161 + // 页面数据
  162 + // let pageData = this.data.list.pageData;
  163 + // 数据总量
  164 + let total = this.data.list.total;
  165 + // 单页最大数据量
  166 + let pageSize = this.data.list.pageSize;
  167 + // 如果数据总量不为0且小于或等于单页最大数据量,说明数据已全部加载,显示‘没有更多了’
  168 + if((total != 0)&&(total <= pageSize)) {
  169 + this.setData({
  170 + noMore: true
  171 + });
  172 + };
  173 +
  174 + if(!this.data.isLoading && !this.data.noMore) {
  175 + this.setData({
  176 + isLoading: true,
  177 + pageNum: this.data.pageNum + 1
  178 + });
  179 + requestData.page = this.data.pageNum;
  180 + this.getData(false, url, requestData);
  181 + };
  182 + },
  183 +
  184 +
  185 +
  186 +})
0 \ No newline at end of file 187 \ No newline at end of file
packageA/pages/hongBaoDetails/hongBaoDetails.json 0 → 100644
  1 +{
  2 + "usingComponents": {
  3 + "nodata": "/components/nodata/nodata"
  4 + },
  5 + "enablePullDownRefresh": false,
  6 + "navigationBarTitleText": "抢红包"
  7 +}
0 \ No newline at end of file 8 \ No newline at end of file
packageA/pages/hongBaoDetails/hongBaoDetails.wxml 0 → 100644
  1 +<!--packageA//pages/hongBao/hongBao.wxml-->
  2 +<wxs module="filter" src="../../../utils/filter.wxs"></wxs>
  3 +<view class="hongBao-container">
  4 + <!-- <view class="white fs26">由美得得美妆商城发起抢红包</view> -->
  5 + <view class="btn-container">
  6 + <image src="{{url + 'miniapp/images/redmoney/redbag_pro.png'}}" class="btn" mode="aspectFit"></image>
  7 + <view class="amount">¥{{filter.show_default(myRed.redmoney, '0.00')}}</view>
  8 + </view>
  9 + <view class="list-container">
  10 + <!-- <view class="countdown-txt">获奖名单</view> -->
  11 + <image src="{{url + 'miniapp/images/redmoney/listit.png'}}" class="list-img" mode=""></image>
  12 + <view class="list">
  13 + <view class="list-item" wx:for="{{list.pageData}}">
  14 + <view class="flex ai-center">
  15 + <view class="avatar-container">
  16 + <image src="{{item.userimg}}" class="avatar"></image>
  17 + </view>
  18 + <view>
  19 + <view>{{item.vipname}}</view>
  20 + <view class="xc-ash fs24 pdt20">{{filter.format_time(item.addtime, 1)}}</view>
  21 + </view>
  22 + </view>
  23 + <view class="co-red">¥{{item.redmoney}}</view>
  24 + </view>
  25 + <nodata nodataContainer="txt-center" wx:if="{{list.pageData.length == 0}}"></nodata>
  26 + <!-- <view class="list-item">
  27 + <view class="flex ai-center">
  28 + <view class="avatar-container">
  29 + <image src="../../images/wx2.png" class="avatar"></image>
  30 + </view>
  31 + <view>
  32 + <view>good</view>
  33 + <view class="xc-ash fs24 pdt20">2020-12-12 18:00:00</view>
  34 + </view>
  35 + </view>
  36 + <view class="co-red">¥100.00</view>
  37 + </view> -->
  38 + <!-- <view class="countdown-item">50天</view>
  39 + <view class="countdown-item">9时</view>
  40 + <view class="countdown-item">23分</view>
  41 + <view class="countdown-item">43秒</view> -->
  42 + </view>
  43 + </view>
  44 + <view class="nodata" hidden="{{!noMore}}" wx:if="{{list.pageData.length !== 0}}">- 没有更多了 -</view>
  45 + <!-- <view class="no-more txt-center" hidden="{{!noMore}}" wx:if="{{list.pageData.length !== 0}}">- 没有更多了 -</view> -->
  46 +</view>
  47 +
  48 +<!-- 弹窗 -->
  49 +<!-- <view class="popup-container">
  50 + <view class="popup">
  51 + <image src="{{url + 'miniapp/images/redmoney/hbtit.png'}}" mode="aspectFit"></image>
  52 + <view class="amount-container">
  53 + <view class="amount">0.53</view>
  54 + <view class="btn-receive">
  55 + <image src="{{url + 'miniapp/images/redmoney/srhb.png'}}" class="btn-img"></image>
  56 + </view>
  57 + </view>
  58 + </view>
  59 +</view> -->
  60 +
  61 +<!-- 弹窗 -->
  62 +<!-- <view class="popup-container">
  63 + <view class="popup">
  64 + <image src="{{url + 'miniapp/images/redmoney/hbtit2.png'}}" mode="aspectFit"></image>
  65 + <view class="none">来晚了,红包已抢空~</view>
  66 + <view class="see">看看大家的手气 ></view>
  67 + </view>
  68 +</view> -->
packageA/pages/hongBaoDetails/hongBaoDetails.wxss 0 → 100644
  1 +/* packageA//pages/hongBao/hongBao.wxss */
  2 +page {
  3 + background: url('https://mshopimg.yolipai.net/miniapp/images/redmoney/hongbao_bg.jpg') center top;
  4 + background-size: 100% auto;
  5 +}
  6 +
  7 +.hongBao-container {
  8 + padding: 20rpx;
  9 +}
  10 +
  11 +.btn-container {
  12 + padding-top: 60rpx;
  13 + /* padding-bottom: 60rpx; */
  14 + /* transform:scale(1.2); */
  15 + position: relative;
  16 + /* -webkit-animation: free_download 600ms linear alternate infinite;
  17 + animation: free_download 600ms linear alternate infinite; */
  18 +}
  19 +
  20 +/* @-webkit-keyframes free_download{
  21 + 0% {-webkit-transform:scale(0.9);}
  22 + 100% {-webkit-transform:scale(1.1);}
  23 +}
  24 +
  25 +@keyframes free_download{
  26 + 0% {transform:scale(0.9);}
  27 + 100% {transform:scale(1.1);}
  28 +} */
  29 +
  30 +.countdown-container {
  31 + /* position: fixed;
  32 + left: 0;
  33 + bottom: 0;
  34 + width: 100%;
  35 + height: 688rpx;
  36 + background: url('https://mshopimg.yolipai.net/miniapp/images/redmoney/indexbot.png') no-repeat left bottom;
  37 + background-size: 100% auto;
  38 + text-align: center; */
  39 +}
  40 +
  41 +.countdown {
  42 + /* display: flex;
  43 + justify-content: space-around;
  44 + padding: 200rpx 160rpx 0; */
  45 +}
  46 +
  47 +.countdown-item {
  48 + /* background: url('https://mshopimg.yolipai.net/miniapp/images/redmoney/timebox.png') no-repeat;
  49 + background-size: 100% 100%;
  50 + width: 90rpx;
  51 + height: 100rpx;
  52 + line-height: 120rpx;
  53 + color: white; */
  54 +}
  55 +
  56 +.btn {
  57 + width: 100%;
  58 + height: 400rpx;
  59 + transform: scale(1.1);
  60 +}
  61 +
  62 +.countdown-txt {
  63 + /* color: #ff6768;
  64 + text-align: center;
  65 + padding-top: 120rpx;
  66 + font-size: 36rpx;
  67 + font-weight: bold; */
  68 +}
  69 +
  70 +.popup-container {
  71 + position: fixed;
  72 + width: 100%;
  73 + height: 100%;
  74 + top: 0;
  75 + background-color: rgba(0,0,0,.7);
  76 +}
  77 +
  78 +.popup {
  79 + position: relative;
  80 + top: 50%;
  81 + left: 50%;
  82 + transform: translate(-50%, -50%);
  83 + text-align: center;
  84 +}
  85 +
  86 +
  87 +.btn-img {
  88 + /* width: 200rpx;
  89 + height: 50rpx; */
  90 +}
  91 +
  92 +.amount-container {
  93 + /* position: absolute;
  94 + left: 50%;
  95 + top: 50%;
  96 + transform: translateX(-55%); */
  97 +}
  98 +
  99 +.amount {
  100 + color: #fff005;
  101 + font-size: 60rpx;
  102 + text-align: center;
  103 + position: absolute;
  104 + left: 49%;
  105 + top: 50%;
  106 + transform: translate(-50%);
  107 + padding-top: 30rpx;
  108 + /* padding-top: 10rpx;
  109 + padding-bottom: 20rpx; */
  110 +}
  111 +
  112 +
  113 +
  114 +/* .none,
  115 +.see {
  116 + position: absolute;
  117 + font-size: 26rpx;
  118 + color: white;
  119 + left: 50%;
  120 + transform: translateX(-60%);
  121 +}
  122 +
  123 +.none {
  124 + font-size: 20rpx;
  125 + top: 36%;
  126 + margin-left: 55rpx;
  127 +}
  128 +
  129 +.see {
  130 + top: 82%;
  131 + left: 50%;
  132 + transform: translateX(-58%);
  133 +} */
  134 +
  135 +
  136 +/* .list-container {
  137 + /* background: url('https://mshopimg.yolipai.net/miniapp/images/redmoney/timebox.png') no-repeat;
  138 +} */
  139 +
  140 +.list-container {
  141 + border-radius: 12rpx;
  142 + overflow: hidden;
  143 +}
  144 +
  145 +.list {
  146 + /* position: relative; */
  147 + margin-top: -8rpx;
  148 +}
  149 +
  150 +.list-img {
  151 + width: 100%;
  152 + height: 326rpx;
  153 +}
  154 +
  155 +.list-item {
  156 + display: flex;
  157 + justify-content: space-between;
  158 + align-items: center;
  159 + background-color: white;
  160 + padding: 30rpx 20rpx;
  161 + border-bottom: 2rpx solid #f8f8f8;
  162 +}
  163 +
  164 +.list-item:last-child {
  165 + border-bottom: none;
  166 +}
  167 +
  168 +.avatar-container {
  169 + width: 100rpx;
  170 + height: 100rpx;
  171 + border-radius: 50%;
  172 + overflow: hidden;
  173 + margin-right: 20rpx;
  174 +}
  175 +
  176 +.avatar {
  177 + display: block;
  178 + width: 100%;
  179 + height: 100%;
  180 +}
  181 +
  182 +.nodata {
  183 + color: white;
  184 + font-size: 24rpx;
  185 + text-align: center;
  186 + padding-top: 20rpx;
  187 +}
utils/filter.wxs
@@ -29,7 +29,7 @@ var filters = { @@ -29,7 +29,7 @@ var filters = {
29 var fm = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join('-'); 29 var fm = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join('-');
30 var md = (d.getMonth() + 1) + '月' + d.getDate() + '日'; 30 var md = (d.getMonth() + 1) + '月' + d.getDate() + '日';
31 if (isFull == 1) 31 if (isFull == 1)
32 - fm = fm + ' ' + [d.getHours(), d.getMinutes(), d.getSeconds()].join(':'); 32 + fm = fm + ' ' + [appendZero(d.getHours()), appendZero(d.getMinutes()), appendZero(d.getSeconds())].join(':');
33 if (isFull == 2) { 33 if (isFull == 2) {
34 fm = md + ' ' + [appendZero(d.getHours()), appendZero(d.getMinutes())].join(':'); 34 fm = md + ' ' + [appendZero(d.getHours()), appendZero(d.getMinutes())].join(':');
35 } 35 }
@@ -55,7 +55,30 @@ var filters = { @@ -55,7 +55,30 @@ var filters = {
55 return spec + "/" + color; 55 return spec + "/" + color;
56 } 56 }
57 } 57 }
58 - } 58 + },
  59 +
  60 +
  61 + show_default: function (value, placeholder, multiple) {
  62 + if(typeof value === 'number') {
  63 + if(isNaN(value) || value === 0) {
  64 + return placeholder || '0';
  65 + } else {
  66 + if(multiple) {
  67 + return value / multiple;
  68 + } else {
  69 + return value;
  70 + }
  71 + };
  72 + } else if(value === '' || value === undefined || value === null) {
  73 + return placeholder || '-';
  74 + } else {
  75 + return value;
  76 + }
  77 + },
  78 +
  79 +
  80 +
  81 +
59 }; 82 };
60 83
61 module.exports = { 84 module.exports = {
@@ -65,4 +88,5 @@ module.exports = { @@ -65,4 +88,5 @@ module.exports = {
65 format_time: filters.format_time, 88 format_time: filters.format_time,
66 pInt: filters.pInt, 89 pInt: filters.pInt,
67 show_gui_ge: filters.show_gui_ge, 90 show_gui_ge: filters.show_gui_ge,
  91 + show_default: filters.show_default,
68 } 92 }
69 \ No newline at end of file 93 \ No newline at end of file