var app = getApp() import commonApi from "./https/common" const formatTime = date => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const minute = date.getMinutes() const second = date.getSeconds() return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') } const formatDate = date => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() return [year, month, day].map(formatNumber).join('-'); } const formatMing = date => { var tomorrow = new Date(date.getTime() + 24 * 60 * 60 * 1000) // 获取明天的日期 var tomorrowDate = tomorrow.getDate(); // 获取明天的日期数字 var tomorrowMonth = tomorrow.getMonth() + 1; // 获取明天的月份(注意:月份是从0开始计算的,所以要加1) var tomorrowYear = tomorrow.getFullYear(); return [tomorrowYear, tomorrowMonth, tomorrowDate].map(formatNumber).join('-'); } const formatHou= date => { date.setDate(date.getDate() + 2); // 格式化日期为YYYY-MM-DD var houtian = date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2); return houtian } const formatNumber = n => { n = n.toString() return n[1] ? n : '0' + n } const isTel = tel => { if (!(/^1\d{10}$/.test(tel))) { return false; } else { return true; } } const isMail = email => { if (!(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(email))) { return false; } else { return true; } } const dateToText = (date) => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() let dates = [year, month, day].map(formatNumber); return dates[1]+"月"+dates[2]+'日'; } const setTitleBarColor = color => { if(color==1){ wx.setNavigationBarColor({ frontColor: '#ffffff', backgroundColor: '#ffffff' }) } else { wx.setNavigationBarColor({ frontColor: '#000000', backgroundColor: '#000000' }) } } const FILE_BASE_NAME = 'tmp_base64src'; //自定义文件名 function base64src(base64data, cb) { const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || []; if (!format) { return (new Error('ERROR_BASE64SRC_PARSE')); } const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`; const buffer = wx.base64ToArrayBuffer(bodyData); fsm.writeFile({ filePath, data: buffer, encoding: 'binary', success() { cb(filePath); }, fail() { return (new Error('ERROR_BASE64SRC_WRITE')); }, }); }; const back = function(){ let pages = getCurrentPages(); if (pages.length>1){ wx.navigateBack({ delta: 1 }) } else { wx.switchTab({ url: app.globalData.menuRoute }) } // if(pages<=1){ // wx.switchTab({ // url: app.globalData.menuRoute // }) // } // else { // wx.navigateBack({ // delta: 1 // }) // } } const checkLocation = function(){ return new Promise((resolve,reject)=>{ wx.getSetting({ success: (res) => { var statu = res.authSetting; if (!statu['scope.userLocation']) { //没授权 wx.showModal({ title: '提示', content: '需要获取您的地理位置,请确认授权', confirmColor: '#f16765', success: res => { if (res.confirm) { wx.openSetting({ success: data => { if (data.authSetting["scope.userLocation"]) { wx.getLocation({ type: 'gcj02', success: function (res) { resolve(res) }, fail(){ reject() } }) } else { reject() } } }) } else { reject() } }, fail(){ reject() } }) } else { //已授权 //做一些事情... console.log(res) wx.getLocation({ type: 'gcj02', success: function (res) { resolve(res) }, fail(){ reject() } }) } } }) }) } const gotoDetail = (item,isPagePoint) =>{ wx.removeStorageSync('prizeId'); let pagePointData = { param: { id: item.scene_id || item.id, }, type: item.type } if (item.is_package === 1) { wx.navigateTo({ url: '/pages/info/postProductInfo/index?id='+item.id, }) return }else if (item.is_package==2) { wx.navigateTo({ url: '/subPackages/goods/oneCardTour/info/index?id='+item.scene_id }); return } console.log(item) switch(item.type){ case "tenscenic": wx.navigateTo({ url: '/pages/info/foodInfo/index?id='+(item.scene_id || item.id) }) break; case "ticket": // 产品 产品票务 if(isPagePoint){ pagePointData.event='ticket_detail_click' pagePoint(pagePointData,1) } wx.navigateTo({ url: '/pages/info/sceneProductInfo/index?id='+(item.scene_id || item.id) }) break; case "hotel": // 产品 酒店 if(isPagePoint){ pagePointData.event='hotel_detail_click' pagePoint(pagePointData,1) } wx.navigateTo({ url: '/pages/info/hotelProductInfo/index?id='+(item.scene_id || item.id) }) break; case "post": // 产品 产品发货的 if(isPagePoint){ pagePointData.event='legacy_detail_click' pagePointData.id = item.id pagePoint(pagePointData,1) } try { if (item.iShop) { wx.navigateTo({ url: '/pages/info/postProductInfo/index?id='+item.id+'&iShop='+item.iShop+'&supplierId='+item.supplierId }) }else{ wx.navigateTo({ url: '/pages/info/postProductInfo/index?id='+item.id }) } } catch (error) { } break; case "line": // 产品 线路 if(isPagePoint){ pagePointData.event='route_detail_click' pagePointData.id = item.id pagePoint(pagePointData,1) } wx.navigateTo({ url: '/pages/info/roadInfo/index?id='+item.id }) break; case "coupon": // 产品 卡券 if(isPagePoint){ pagePointData.event='card_detail_click' pagePointData.id = item.id pagePoint(pagePointData,1) } wx.navigateTo({ url: '/pages/info/cardInfo/index?id='+item.id }) break; case "show": // 产品 演出 if(isPagePoint){ pagePointData.event='show_detail_click' pagePointData.id = item.id pagePoint(pagePointData,1) } wx.navigateTo({ url: '/pages/info/showInfo/index?id='+item.id }) break; case "food": // 产品 美食 wx.navigateTo({ url: '/pages/info/foodProductInfo/index?id='+item.id }) break; case "activity": // 活动 wx.navigateTo({ url: '/pages/info/activityInfo/index?id='+(item.act_calendar_id || item.id) }) break; case "movie": // 产品 电影票 wx.navigateTo({ url: '/pages/list/movieticket/list/info/index?id='+(item.third_id || item.id)+'&title='+item.title }) break; case "cinema": // 产品 电影票 wx.navigateTo({ url: '/pages/list/movieticket/list/cinema/index?id='+item.third_id+'&title='+item.title }) break; case "scenic": // 场景 景点 if(isPagePoint){ pagePointData.event='ticket_detail_click' pagePoint(pagePointData,1) } wx.navigateTo({ url: '/pages/info/sceneProductInfo/index?id='+(item.scene_id || item.id) }) break; case "room": // 场景 酒店 if(isPagePoint){ pagePointData.event='hotel_detail_click' pagePoint(pagePointData,1) } wx.navigateTo({ url: '/pages/info/hotelProductInfo/index?id='+(item.scene_id || item.id) }) break; case "venue": // 场景 场馆 if(isPagePoint){ pagePointData.event='museum_detail_click' pagePoint(pagePointData,1) } wx.navigateTo({ url: '/pages/info/museumInfo/index?id='+(item.scene_id || item.id) }) break; } } const orderMoreTime = function(item){ if(item && item.order_product_list && item.order_product_list[0]){ let info = item.order_product_list[0]; console.log(info) if (info.is_package === 1) { wx.navigateTo({ url: '/pages/info/postProductInfo/index?id='+info.product_id, }) }else if (info.is_package==2) { wx.navigateTo({ url: '/subPackages/goods/oneCardTour/info/index?id='+info.product_id }); return } else if(info.product_model=='movie'){ wx.navigateTo({ url: '/pages/list/movieticket/index', }) } else if(info.product_model=='activity'){ wx.navigateTo({ url: '/pages/info/activityInfo/index?id='+info.activity_id }) } else { info.type = info.product_model; if(info.product_id){ info.id = info.product_id; gotoDetail(info) } } } } const gotoOrder = function(item){ if(item.order_product_list[0].product_model=='ticket'){ wx.navigateTo({ url: '/pages/user/order/sceneOrderInfo/index?id='+item.order_id, }) return; } if(item.order_product_list[0].product_model=='food'){ wx.navigateTo({ url: '/pages/user/order/foodOrderInfo/index?id='+item.order_id, }) return; } if(item.order_product_list[0].product_model=='activity'){ wx.navigateTo({ url: '/pages/user/order/activityOrderInfo/index?id='+item.order_id, }) return; } if(item.order_product_list[0].product_model=='venue'){ wx.navigateTo({ url: '/pages/user/order/museumOrderInfo/index?id='+item.order_id, }) return; } if(item.order_product_list[0].product_model=='hotel'){ wx.navigateTo({ url: '/pages/user/order/hotelOrderInfo/index?id='+item.order_id, }) return; } if(item.order_product_list[0].product_model=='line'){ wx.navigateTo({ url: '/pages/user/order/lineOrderInfo/index?id='+item.order_id, }) return; } if(item.order_product_list[0].product_model=='movie'){ wx.navigateTo({ url: '/pages/user/order/movieOrderInfo/index?id='+item.order_id, }) return; } if (item.order_product_list[0].product_model=='show') { wx.navigateTo({ url: '/pages/user/order/showOrderInfo/index?id='+item.order_id, }) return; } if(item.order_product_list[0].product_model=='post'){ wx.navigateTo({ url: '/pages/user/order/postOrderInfo/index?id='+item.order_id, }) return; } if(item.order_product_list[0].product_model=='coupon'){ wx.navigateTo({ url: '/pages/user/order/couponOrderInfo/index?id='+item.order_id, }) return; } } // 砍价的去下单 // 拼团去下单也适用 const goKjOrder = function(item) { return new Promise((resolve,reject)=>{ commonApi._post("product/get_product_detail",{ id:item.goods_id }).then(res=>{ if(!res.data){ wx.showToast({ title: '该产品已下架', icon:'none' }) return; } let product = [{ product:res.data, sku:res.data.sku.find(s=>s.id==item.sku_id), productNum:1 }]; if(!product[0].sku){ wx.showToast({ title: '该规格已下架', icon:'none' }) return; } // 因为util里面不好改app.globalData的数据 但是下单是把产品信息先保存到globalData的 所以只能在页面内操作 // 购买 只能把产品信息回传过去 可能还要改 暂时先回传整个的 resolve(product); }).catch(err=>{ reject(err) }) }) } const pagePoint = function(data,type) { if(type!=1) { data = data.currentTarget.dataset } commonApi._post('browse/page_point',{ event: data.event, param: data.param, id: data.id, userid: wx.getStorageSync('jstrip_userid'), type: data.type }).then(res=>{ }) } module.exports = { formatTime: formatTime, formatNumber: formatNumber, isTel: isTel, isMail:isMail, setTitleBarColor: setTitleBarColor, base64src: base64src, back: back, formatDate:formatDate, checkLocation:checkLocation, dateToText:dateToText, gotoDetail:gotoDetail, gotoOrder:gotoOrder, orderMoreTime:orderMoreTime, goKjOrder:goKjOrder, pagePoint: pagePoint, formatMing:formatMing, formatHou:formatHou }