// pages/goods/comment.js var util = require('../../utils/util.js'); var app = getApp(); var buyClearTime = null; var status = require('../../utils/index.js'); function count_down(that, total_micro_second) { var second = Math.floor(total_micro_second / 1000); var days = second / 3600 / 24; var daysRound = Math.floor(days); var hours = second / 3600 - (24 * daysRound); var hoursRound = Math.floor(hours); var minutes = second / 60 - (24 * 60 * daysRound) - (60 * hoursRound); var minutesRound = Math.floor(minutes); var seconds = second - (24 * 3600 * daysRound) - (3600 * hoursRound) - (60 * minutesRound); that.setData({ endtime: { days: fill_zero_prefix(daysRound), hours: fill_zero_prefix(hoursRound), minutes: fill_zero_prefix(minutesRound), seconds: fill_zero_prefix(seconds), show_detail: 1 } }); if (total_micro_second <= 0) { clearTimeout(buyClearTime); that.setData({ endtime: { days: "00", hours: "00", minutes: "00", seconds: "00", } }); return; } buyClearTime = setTimeout(function() { total_micro_second -= 1000; count_down(that, total_micro_second); }, 1000) } // 位数不足补零 function fill_zero_prefix(num) { return num < 10 ? "0" + num : num } Page({ mixins: [require('../../mixin/globalMixin.js')], data: { showData: 1, cartNum: 0, needAuth: false, iconArr: { home: '', car: '' }, list: [], loadMore: true, tip: '加载中' }, page: 1, hasRefeshin: false, goodId: 0, community_id: 0, handlerGobackClick(delta) { const pages = getCurrentPages(); if (pages.length >= 2) { wx.navigateBack({ delta: delta }); } else { wx.switchTab({ url: '/eaterplanet_ecommerce/pages/index/index' }); } }, handlerGohomeClick(url) { wx.switchTab({ url: '/eaterplanet_ecommerce/pages/index/index' }); }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { var that = this; var token = wx.getStorageSync('token'); status.setNavBgColor(); status.setIcon().then(function(iconArr) { that.setData({iconArr}); }); this.goodId = options.id; this.community_id = options.community_id; let currentCommunity = wx.getStorageSync('community'); let currentCommunity_id = (currentCommunity && currentCommunity.communityId) || ''; if (!currentCommunity_id) { let community = {}; if (options.community_id !== void 0 && options.community_id > 0) { community.communityId = options.community_id; } util.getCommunityInfo(community).then(function (res) { console.log('step1') paramHandle(); get_goods_details(res); }).catch((param) => { console.log('step4 新人') if (Object.keys(param) != '') { that.addhistory(param, true); } }); } else { console.log('step3') paramHandle(); get_goods_details(); } if (options.share_id != 'undefined' && options.share_id > 0) wx.setStorage({ key: "share_id", data: options.share_id }) function paramHandle() { console.log('step2') if (options.community_id != 'undefined' && options.community_id > 0) { app.util.request({ 'url': 'entry/wxapp/index', 'data': { controller: 'index.get_community_info', 'community_id': options.community_id }, dataType: 'json', success: function (res) { if (res.data.code == 0) { var community = res.data.data; let hisCommunity = currentCommunity; let community_id = currentCommunity_id; if (options.community_id != community_id) { wx.showModal({ title: '温馨提示', content: '是否切换为分享人所在小区“' + community.communityName, confirmColor: '#F75451', success(res) { if (res.confirm) { app.globalData.community = community; app.globalData.changedCommunity = true; wx.setStorage({ key: "community", data: community }) token && that.addhistory(community); get_goods_details(community); console.log('用户点击确定') } else if (res.cancel) { that.showNoBindCommunity(); console.log('用户点击取消') } } }) } } } }) } that.setData({ goods_id: options.id }, ()=>{ that.load_comment_list(); }) } function get_goods_details(communityInfo) { if (communityInfo) currentCommunity_id = communityInfo.communityId; app.util.request({ 'url': 'entry/wxapp/index', 'data': { controller: 'goods.get_goods_detail', 'token': token, 'id': options.id, community_id: currentCommunity_id }, dataType: 'json', success: function (res) { wx.hideLoading(); let goods = (res.data.data && res.data.data.goods) || ''; // 商品不存在 if (!goods || goods.length == 0 || Object.keys(goods) == '') { wx.showModal({ title: '提示', content: '该商品不存在,回首页', showCancel: false, confirmColor: '#F75451', success(res) { if (res.confirm) { wx.switchTab({ url: '/eaterplanet_ecommerce/pages/index/index', }) } } }) } let comment_list = res.data.comment_list; comment_list.map(function (item) { 14 * item.content.length / app.globalData.systemInfo.windowWidth > 3 && (item.showOpen = true), item.isOpen = true; }) that.setData({ order_comment_count: res.data.order_comment_count, order_comment_images: res.data.order_comment_images, comment_list: comment_list, loadover: true, goods: goods, buy_record_arr: res.data.data.buy_record_arr, site_name: res.data.data.site_name, share_title: goods.share_title, options: res.data.data.options, goods_image: res.data.data.goods_image, goods_image_length: res.data.data.goods_image.length, service: goods.tag, favgoods: goods.favgoods, cur_time: res.data.data.cur_time, order: { goods_id: res.data.data.goods.goods_id, pin_id: res.data.data.pin_id, }, showSkeleton: false, is_comunity_rest: res.data.is_comunity_rest, goodsdetails_addcart_bg_color: res.data.goodsdetails_addcart_bg_color || 'linear-gradient(270deg, #f9c706 0%, #feb600 100%)', goodsdetails_buy_bg_color: res.data.goodsdetails_buy_bg_color || 'linear-gradient(90deg, #ff5041 0%, #ff695c 100%)' }) if (res.data.is_comunity_rest == 1) { wx.showModal({ title: '温馨提示', content: '团长休息中,欢迎下次光临!', showCancel: false, confirmColor: '#F75451', confirmText: '好的', success(res) { } }) } let over_type = goods.over_type; var seconds = 0; if (over_type == 0) { seconds = (goods.begin_time - res.data.data.cur_time) * 1000; } else { seconds = (goods.end_time - res.data.data.cur_time) * 1000; } if (seconds > 0) { count_down(that, seconds); } } }) } }, //未绑定提示 showNoBindCommunity: function () { wx.showModal({ title: '提示', content: '您未绑定该小区,请切换后下单!', showCancel: false, confirmColor: '#F75451', success(res) { if (res.confirm) { wx.redirectTo({ url: '/eaterplanet_ecommerce/pages/position/community', }) } } }) }, /** * 历史社区 */ addhistory: function (community, isNew = false) { var community_id = community.communityId; console.log('addhistory'); var token = wx.getStorageSync('token'); app.util.request({ 'url': 'entry/wxapp/index', 'data': { controller: 'index.addhistory_community', community_id: community_id, 'token': token }, dataType: 'json', success: function (res) { if (isNew) { console.log('新人 社区') app.util.request({ 'url': 'entry/wxapp/index', 'data': { controller: 'index.get_community_info', community_id: community_id }, dataType: 'json', success: function (result) { if (result.data.code == 0) { let community = result.data.data; app.globalData.community = community; app.globalData.changedCommunity = true; wx.setStorage({ key: "community", data: community }) } } }) } } }) }, load_comment_list: function(){ let goods_id = this.data.goods_id; let token = wx.getStorageSync('token'); let that = this; !this.hasRefeshin && (that.hasRefeshin = true, that.setData({ loadMore: true, tip: '加载中' }), app.util.request({ 'url': 'entry/wxapp/index', 'data': { controller: 'goods.comment_info', token: token, goods_id: goods_id, page: that.page }, dataType: 'json', success: function (res) { if(res.data.code==0){ let commentList = res.data.list; commentList.map(function (item) { 14 * item.content.length / app.globalData.systemInfo.windowWidth > 3 && (item.showOpen = true), item.isOpen = true; }) let list = that.data.list.concat(commentList); that.page++; that.hasRefeshin = false; that.setData({ list, loadMore: false, tip: '' }) } else if (res.data.code == 1) { // 无数据 if (that.page == 1) that.setData({ showData:0 }) that.setData({ loadMore: false, tip: '^_^已经到底了' }) } else if(res.data.code == 2) { //no login } else { //其他 } } })) }, /** * 授权成功回调 */ authSuccess: function () { var id = this.goodId; let currentCommunity = wx.getStorageSync('community'); let community_id = (currentCommunity && currentCommunity.communityId) || (this.community_id || ''); wx.redirectTo({ url: '/eaterplanet_ecommerce/pages/goods/comment?id=' + id + '&community_id=' + community_id, }) }, authModal: function () { if (this.data.needAuth) { this.setData({ showAuthModal: !this.data.showAuthModal }); return false; } return true; }, onShow: function() { let that = this; util.check_login_new().then((res) => { if (!res) { that.setData({ needAuth: true }) } else { (0, status.cartNum)('', true).then((res) => { res.code == 0 && that.setData({ cartNum: res.data }) }); } }) }, //加入购物车 addToCart: function(e) { if (!this.authModal()) return; var that = this; var from_id = e.detail.formId; var token = wx.getStorageSync('token'); app.util.request({ 'url': 'entry/wxapp/user', 'data': { controller: 'user.get_member_form_id', 'token': token, "from_id": from_id }, dataType: 'json', success: function(res) {} }) that.setData({ is_just_addcar: 1 }) //加入购物车 that.openSku(); }, // 打开选框 openSku: function() { var that = this; var goods_id = this.data.goods_id; var options = this.data.options; that.setData({ addCar_goodsid: goods_id }) let list = options.list || []; let arr = []; if (list.length > 0) { for (let i = 0; i < list.length; i++) { let sku = list[i]['option_value'][0]; let temp = { name: sku['name'], id: sku['option_value_id'], index: i, idx: 0 }; arr.push(temp); } //把单价剔除出来begin var id = ''; for (let i = 0; i < arr.length; i++) { if (i == arr.length - 1) { id = id + arr[i]['id']; } else { id = id + arr[i]['id'] + "_"; } } var cur_sku_arr = options.sku_mu_list[id]; that.setData({ sku: arr, sku_val: 1, cur_sku_arr: cur_sku_arr, skuList: options, visible: true, showSku: true }); } else { let goods = this.data.goods; let cur_sku_arr = { canBuyNum: goods.total, spuName: goods.goodsname, actPrice: goods.actPrice, marketPrice: goods.marketPrice, stock: goods.total, skuImage: goods.image_thumb } that.setData({ sku: [], sku_val: 1, cur_sku_arr: cur_sku_arr, skuList: [] }) let formIds = { detail: { formId: "" } }; formIds.detail.formId = "the formId is a mock one"; that.gocarfrom(formIds); //todo...addcart } }, gocarfrom: function(e) { var that = this; var is_just_addcar = this.data.is_just_addcar; wx.showLoading(); var token = wx.getStorageSync('token'); app.util.request({ 'url': 'entry/wxapp/user', 'data': { controller: 'user.get_member_form_id', 'token': token, "from_id": e.detail.formId }, dataType: 'json', success: function(res) {} }) that.goOrder(); }, closeSku: function() { this.setData({ visible: 0, stopClick: false, }); }, goOrder: function() { var that = this; if (that.data.can_car) { that.data.can_car = false; } var token = wx.getStorageSync('token'); var community = wx.getStorageSync('community'); var goods_id = that.data.goods_id; var community_id = community.communityId; var quantity = that.data.sku_val; var cur_sku_arr = that.data.cur_sku_arr; var sku_str = ''; var is_just_addcar = that.data.is_just_addcar; if (cur_sku_arr && cur_sku_arr.option_item_ids) { sku_str = cur_sku_arr.option_item_ids; } let data = { goods_id, community_id, quantity, sku_str, buy_type: 'dan', pin_id: 0, is_just_addcar } util.addCart(data).then(res=>{ if(res.showVipModal==1) { let { pop_vipmember_buyimage } = res.data; wx.hideLoading(); that.setData({ pop_vipmember_buyimage, showVipModal: true, visible: false }) } else { if (res.data.code == 3 || res.data.code == 7) { wx.showToast({ title: res.data.msg, icon: 'none', duration: 2000 }) } else if (res.data.code == 4) { wx.showToast({ title: '您未登录', duration: 2000, }) } else if (res.data.code == 6) { var msg = res.data.msg; let max_quantity = res.data.max_quantity || ''; (max_quantity > 0) && that.setData({ sku_val: max_quantity }) wx.showToast({ title: msg, icon: 'none', duration: 2000 }) } else { if (is_just_addcar == 1) { that.closeSku(); wx.showToast({ title: "已加入购物车", image: "../../images/addShopCart.png" }) app.globalData.cartNum = res.data.total that.setData({ cartNum: res.data.total }); status.indexListCarCount(goods_id); } else { var pages_all = getCurrentPages(); if (pages_all.length > 3) { wx.redirectTo({ url: '/eaterplanet_ecommerce/pages/order/placeOrder?type=dan' }) } else { wx.navigateTo({ url: '/eaterplanet_ecommerce/pages/order/placeOrder?type=dan' }) } } } } }).catch(res=>{ app.util.message(res||'请求失败', '', 'error'); }) }, selectSku: function(event) { var that = this; let str = event.currentTarget.dataset.type; let obj = str.split("_"); let arr = that.data.sku; let temp = { name: obj[3], id: obj[2], index: obj[0], idx: obj[1] }; arr.splice(obj[0], 1, temp); that.setData({ sku: arr }) var id = ''; for (let i = 0; i < arr.length; i++) { if (i == arr.length - 1) { id = id + arr[i]['id']; } else { id = id + arr[i]['id'] + "_"; } } var options = this.data.skuList; var cur_sku_arr = options.sku_mu_list[id]; that.setData({ cur_sku_arr: cur_sku_arr }); console.log(id); }, submit: function(e) { var from_id = e.detail.formId; var token = wx.getStorageSync('token'); app.util.request({ 'url': 'entry/wxapp/user', 'data': { controller: 'user.get_member_form_id', 'token': token, "from_id": from_id }, dataType: 'json', success: function(res) {} }) }, balance: function(e) { if (!this.authModal()) return; this.setData({ is_just_addcar: 0 }) //加入购物车 this.openSku(); }, //加减商品数量 setNum: function(event) { let types = event.currentTarget.dataset.type; var that = this; var num = 1; let sku_val = this.data.sku_val * 1; if (types == 'add') { num = sku_val + 1; } else if (types == 'decrease') { if (sku_val > 1) { num = sku_val - 1; } } let arr = that.data.sku; var options = this.data.skuList; var id = ''; for (let i = 0; i < arr.length; i++) { if (i == arr.length - 1) { id = id + arr[i]['id']; } else { id = id + arr[i]['id'] + "_"; } } var cur_sku_arr = options.sku_mu_list[id]; if (num > cur_sku_arr['canBuyNum']) { num = num - 1; } this.setData({ sku_val: num }) }, /** * 图片预览 */ preview: function(t) { var a = t.currentTarget.dataset.index, e = t.currentTarget.dataset.idx; wx.previewImage({ urls: this.data.list[a].images, current: this.data.list[a].images[e], fail: function(t) { wx.showToast({ title: "预览图片失败,请重试", icon: "none" }), console.log(t); } }); }, /** * 复制内容 */ copy: function(t) { wx.setClipboardData({ data: t.currentTarget.dataset.val, success: function() { wx.showToast({ title: "内容复制成功!", icon: "none" }); } }); }, /** * 展开收起 */ bindOpen: function(t) { var idx = t.currentTarget.dataset.idx; if (this.data.list[idx].isOpen) { this.data.list[idx].isOpen = false; var list = this.data.list; this.setData({ list: list }); } else { this.data.list[idx].isOpen = true; var list = this.data.list; this.setData({ list: list }); } }, onReachBottom: function () { console.log('我是底线'); this.load_comment_list(); } })