You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

477 lines
12 KiB

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
}
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.id,
})
}
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' || item.order_product_list[0].product_model=='show'){
wx.navigateTo({
url: '/pages/user/order/movieOrderInfo/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
}