680 lines
16 KiB
JavaScript
680 lines
16 KiB
JavaScript
// pages/index/index.js
|
||
const qqMap = require('../../utils/qqmap-wx-jssdk.js')
|
||
const qqmapsdk = new qqMap({
|
||
key: 'UTFBZ-PQZLW-AX5R6-OWOG6-SRRBH-7FFEL'
|
||
});
|
||
const app = getApp()
|
||
Page({
|
||
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
bgImg: app.globalData.bgImg,
|
||
statusBarHeight: app.globalData.statusBarHeight,
|
||
bnrUrl: [],
|
||
jg: [],
|
||
type: [],
|
||
goods: [],
|
||
goodsId: '',
|
||
region: [], //头部地址
|
||
addressName: '附近自提点',
|
||
page: 1,
|
||
imgList: [],
|
||
|
||
cxGoodsList: [],
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad: function (options) {
|
||
//上级id
|
||
if (options.pId) {
|
||
wx.setStorage({
|
||
data: options.pId,
|
||
key: 'pId',
|
||
})
|
||
}
|
||
wx.getStorage({
|
||
key: 'user',
|
||
success: user => {
|
||
app.globalData.userId = user.data.id;
|
||
console.log(app.globalData.userId)
|
||
//获取第二级分类
|
||
this.goodsTypList()
|
||
this.goodsTypList2()
|
||
//促销商品
|
||
this.cuxiaoLsit()
|
||
},
|
||
fail: f => {
|
||
//获取第二级分类
|
||
this.goodsTypList()
|
||
this.goodsTypList2()
|
||
//促销商品
|
||
this.cuxiaoLsit()
|
||
}
|
||
})
|
||
|
||
//获取轮播图
|
||
this.banner()
|
||
//获取地址
|
||
this.map({
|
||
jump: true
|
||
})
|
||
//获取模块图片
|
||
this.getBannerImg()
|
||
},
|
||
|
||
//促销商品
|
||
cuxiaoLsit() {
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/goods/getHomeGoods',
|
||
method: 'GET',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
},
|
||
data: {
|
||
userId: app.globalData.userId
|
||
},
|
||
success: res => {
|
||
wx.hideLoading()
|
||
console.log(res)
|
||
if (res.data.code == 1) {
|
||
var cxGoodsList = res.data.value;
|
||
this.setData({
|
||
cxGoodsList: cxGoodsList
|
||
})
|
||
}else {
|
||
wx.showModal({
|
||
title: '提示!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
|
||
|
||
|
||
|
||
//获取模块图片
|
||
getBannerImg() {
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/banner/getBannerImg',
|
||
method: 'GET',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
},
|
||
data: {},
|
||
success: res => {
|
||
wx.hideLoading()
|
||
console.log(res)
|
||
if (res.data.code == 1) {
|
||
this.setData({
|
||
imgList: res.data.value
|
||
})
|
||
} else {
|
||
wx.showModal({
|
||
title: '提示!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow: function () {
|
||
wx.getStorage({
|
||
key: 'user',
|
||
success: user => {
|
||
this.setData({
|
||
login: true
|
||
})
|
||
app.globalData.userId = user.data.id;
|
||
console.log(app.globalData.userId)
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/goods/getCart',
|
||
method: 'POST',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
},
|
||
data: {
|
||
userId: app.globalData.userId
|
||
},
|
||
success: res => {
|
||
wx.hideLoading()
|
||
console.log(res)
|
||
if (res.data.code == 1) {
|
||
if (res.data.value.length == 0) {
|
||
app.globalData.cartNum = '';
|
||
wx.hideTabBarRedDot({
|
||
index: 3
|
||
})
|
||
} else {
|
||
app.globalData.cartNum = res.data.value.length.toString()
|
||
//购物车数量显示
|
||
wx.setTabBarBadge({
|
||
index: 3,
|
||
text: app.globalData.cartNum
|
||
})
|
||
}
|
||
|
||
} else {
|
||
wx.showModal({
|
||
title: '提示!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
fail: f => {
|
||
this.setData({
|
||
login: false
|
||
})
|
||
app.globalData.cartNum = '';
|
||
wx.hideTabBarRedDot({
|
||
index: 3
|
||
})
|
||
}
|
||
})
|
||
|
||
},
|
||
//分销
|
||
fx() {
|
||
wx.navigateTo({
|
||
url: '/pages/index/welfareImg/welfareImg',
|
||
})
|
||
},
|
||
//套餐领取
|
||
fl1() {
|
||
// console.log(app.globalData.login)
|
||
if(!this.data.login){
|
||
app.login_no()
|
||
return
|
||
}
|
||
wx.navigateTo({
|
||
url: '/pages/my/coupon/coupon',
|
||
})
|
||
},
|
||
//福利定制
|
||
fl2() {
|
||
wx.switchTab({
|
||
url: '/pages/welfareImg/welfareImg',
|
||
})
|
||
},
|
||
//促销专区
|
||
cxDetails(e) {
|
||
let id = e.currentTarget.dataset.id;
|
||
wx.navigateTo({
|
||
url: '/pages/chuxiao/cx_details/goodsDetails?goodsId=' + id,
|
||
})
|
||
},
|
||
//促销专区更多
|
||
cx_more(e) {
|
||
wx.showLoading({
|
||
title: '加载中',
|
||
})
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/goods/gethotGoods',
|
||
method: 'GET',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
},
|
||
data: {
|
||
type: 3,
|
||
userId: app.globalData.userId,
|
||
page: 1,
|
||
num: 1,
|
||
},
|
||
success: res => {
|
||
console.log(res)
|
||
wx.hideLoading()
|
||
if (res.data.code == 1) {
|
||
if (res.data.value.records.length > 0) {
|
||
//促销列表
|
||
wx.navigateTo({
|
||
url: '/pages/chuxiao/integral',
|
||
})
|
||
} else {
|
||
//促销富文本
|
||
wx.navigateTo({
|
||
url: '/pages/chuxiao/cx_wxParse/cx_wxParse',
|
||
})
|
||
}
|
||
} else {
|
||
wx.showModal({
|
||
title: '发生异常请稍后再试!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
|
||
},
|
||
//金刚区跳转
|
||
jgType(e) {
|
||
let id = e.currentTarget.dataset.id;
|
||
let pid = e.currentTarget.dataset.pid;
|
||
console.log(id)
|
||
console.log(pid)
|
||
wx.reLaunch({
|
||
url: '/pages/classify/classify?pid=' + pid + '&id=' + id,
|
||
})
|
||
},
|
||
//金刚区更多跳转
|
||
jgMore(e) {
|
||
wx.switchTab({
|
||
url: '/pages/classify/classify'
|
||
})
|
||
},
|
||
|
||
//获取轮播图 1
|
||
banner: function (e) {
|
||
wx.showLoading({
|
||
title: '加载中',
|
||
})
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/banner/getBanner',
|
||
method: 'GET',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
},
|
||
data: {
|
||
type: 1
|
||
},
|
||
success: res => {
|
||
console.log(res)
|
||
wx.hideLoading()
|
||
if (res.data.code == 1) {
|
||
this.setData({
|
||
bnrUrl: res.data.value
|
||
})
|
||
} else {
|
||
wx.showModal({
|
||
title: '获取数据失败!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
//获取第二级分类
|
||
goodsTypList: function (e) {
|
||
wx.showLoading({
|
||
title: '加载中',
|
||
})
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/goods/getTwoGoodsType',
|
||
method: 'GET',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
},
|
||
data: {},
|
||
success: res => {
|
||
console.log(res)
|
||
wx.hideLoading()
|
||
if (res.data.code == 1) {
|
||
let type = res.data.value.wisdGoodsTypeList;
|
||
for (let i = 0; i < type.length; i++) {
|
||
type[i].active = false;
|
||
}
|
||
type[0].active = true;
|
||
this.setData({
|
||
// type: type,
|
||
jg: type,
|
||
// goodsId: type[0].id,
|
||
})
|
||
//客服电话
|
||
app.globalData.customerPhone = res.data.value.customerPhone;
|
||
// //根据二级分类id获取商品
|
||
// this.setData({
|
||
// page: 1,
|
||
// goods: [],
|
||
// })
|
||
// this.goodsList()
|
||
} else {
|
||
wx.showModal({
|
||
title: '获取数据失败!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
|
||
//获取首页tab第二级分类
|
||
goodsTypList2: function (e) {
|
||
wx.showLoading({
|
||
title: '加载中',
|
||
})
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/goods/getHomeTwoGoodsType',
|
||
method: 'GET',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
},
|
||
data: {},
|
||
success: res => {
|
||
console.log(res)
|
||
wx.hideLoading()
|
||
if (res.data.code == 1) {
|
||
let type = res.data.value.wisdGoodsTypeList;
|
||
if (type.length > 0) {
|
||
for (let i = 0; i < type.length; i++) {
|
||
type[i].active = false;
|
||
type[0].active = true;
|
||
}
|
||
this.setData({
|
||
goodsId: type[0].id,
|
||
type: type,
|
||
})
|
||
|
||
//根据二级分类id获取商品
|
||
this.setData({
|
||
page: 1,
|
||
goods: [],
|
||
})
|
||
this.goodsList()
|
||
}
|
||
} else {
|
||
wx.showModal({
|
||
title: '获取数据失败!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
|
||
//商品类型选择
|
||
goodsType(e) {
|
||
let index = e.currentTarget.dataset.index;
|
||
let id = e.currentTarget.dataset.id;
|
||
let type = this.data.type;
|
||
for (let i = 0; i < type.length; i++) {
|
||
type[i].active = false;
|
||
}
|
||
type[index].active = true;
|
||
this.setData({
|
||
type: type,
|
||
goodsId: id,
|
||
page: 1,
|
||
goods: [],
|
||
})
|
||
//根据二级分类id获取商品
|
||
this.goodsList()
|
||
},
|
||
|
||
//根据二级分类id获取商品
|
||
goodsList(e) {
|
||
wx.showLoading({
|
||
title: '加载中',
|
||
})
|
||
wx.request({
|
||
url: app.globalData.ip + '/wisdommining/api/goods/getGoodsByTwoType',
|
||
method: 'GET',
|
||
header: {
|
||
"content-type": "application/x-www-form-urlencoded",
|
||
},
|
||
data: {
|
||
twoTypeId: this.data.goodsId,
|
||
userId: app.globalData.userId,
|
||
page: this.data.page,
|
||
num: 10,
|
||
},
|
||
success: res => {
|
||
console.log(res)
|
||
wx.hideLoading()
|
||
if (res.data.code == 1) {
|
||
let data = res.data.value.records;
|
||
if (data != null && data.length > 0) {
|
||
let goods = this.data.goods;
|
||
console.log(goods)
|
||
for (let i = 0; i < data.length; i++) {
|
||
if (data[i].wisdGoodsSpecList[0].specBulyPrice == null) {
|
||
data[i].price = data[i].wisdGoodsSpecList[0].specPrice
|
||
} else {
|
||
data[i].price = data[i].wisdGoodsSpecList[0].specBulyPrice
|
||
}
|
||
goods.push(data[i]);
|
||
}
|
||
this.setData({
|
||
goods: goods,
|
||
page: this.data.page + 1,
|
||
})
|
||
} else {
|
||
if (this.data.page > 1) {
|
||
wx.showToast({
|
||
title: '暂无更多~',
|
||
icon: 'none',
|
||
duration: 1000,
|
||
})
|
||
}
|
||
}
|
||
} else {
|
||
wx.showModal({
|
||
title: '获取数据失败!',
|
||
content: res.data.message,
|
||
showCancel: false,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
|
||
//搜索
|
||
search() {
|
||
wx.navigateTo({
|
||
url: '/pages/search_details/search_details?search=true',
|
||
})
|
||
},
|
||
|
||
//商品详情
|
||
goodsDetails(e) {
|
||
let id = e.currentTarget.dataset.id;
|
||
let wid = e.currentTarget.dataset.wid;
|
||
let type = e.currentTarget.dataset.type; //1商品 2富文本
|
||
if (type == 0) {
|
||
|
||
} else if (type == 1) {
|
||
wx.navigateTo({
|
||
url: '/pages/goodsDetails/goodsDetails?goodsId=' + id,
|
||
})
|
||
} else {
|
||
wx.navigateTo({
|
||
url: '/pages/index/banner_details/welfareImg?wid=' + wid,
|
||
})
|
||
}
|
||
},
|
||
|
||
//积分商城
|
||
integral(e) {
|
||
let title = e.currentTarget.dataset.title;
|
||
wx.navigateTo({
|
||
url: '/pages/integral/integral?title=' + title,
|
||
})
|
||
},
|
||
|
||
map(options) {
|
||
var that = this;
|
||
wx.getSetting({
|
||
success(res) {
|
||
console.log('get-setting', res.authSetting);
|
||
// 只返回用户请求过的授权
|
||
let auth = res.authSetting;
|
||
if (auth['scope.userLocation']) {
|
||
// 已授权,申请定位地址
|
||
that.toAddress({
|
||
jump: options.jump
|
||
});
|
||
} else if (auth['scope.userLocation'] === undefined) {
|
||
// 用户没有请求过的授权,不需要我们主动弹窗,微信会提供弹窗
|
||
that.toAddress({
|
||
jump: options.jump
|
||
});
|
||
} else if (!auth['scope.userLocation']) {
|
||
// 没有授权过,需要用户重新授权
|
||
// 这个弹窗是为了实现点击,不然openSetting会失败
|
||
wx.showModal({
|
||
title: '是否授权位置信息?',
|
||
content: '需要获取您的位置信息,请确认授权',
|
||
success: res => {
|
||
if (res.confirm) {
|
||
wx.openSetting({
|
||
success(res) {
|
||
console.log('位置信息', res.authSetting);
|
||
console.log('open-setting-suc', res.authSetting);
|
||
let setting = res.authSetting;
|
||
if (!setting['scope.userLocation']) {
|
||
wx.showToast({
|
||
title: '位置信息授权失败',
|
||
icon: 'none',
|
||
});
|
||
} else {
|
||
// 地址授权成功,申请定位地址
|
||
that.toAddress({
|
||
jump: options.jump
|
||
});
|
||
}
|
||
},
|
||
fail(err) {
|
||
// 需要点击,有时候没有点击,是无法触发openSetting
|
||
console.log('open-setting-fail', err);
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
},
|
||
// 调用地址
|
||
toAddress: function (options) {
|
||
var that = this
|
||
wx.showLoading({
|
||
title: '加载中..',
|
||
mask: true
|
||
})
|
||
wx.getLocation({
|
||
//定位类型 wgs84, gcj02
|
||
// wgs84 返回 gps 坐标,gcj02 返回可用于wx.openLocation的坐标
|
||
type: 'gcj02',
|
||
//获取位置成功
|
||
success: function (ress) {
|
||
console.log(ress) //获取的的当前位置的详细信息
|
||
that.setData({
|
||
latitude: ress.latitude,
|
||
longitude: ress.longitude
|
||
})
|
||
//经纬度转化为详细位置
|
||
qqmapsdk.reverseGeocoder({
|
||
location: {
|
||
latitude: ress.latitude,
|
||
longitude: ress.longitude
|
||
},
|
||
success: function (resss) {
|
||
wx.hideLoading()
|
||
console.log(resss)
|
||
var region = [];
|
||
that.setData({
|
||
addressNo: 1, //地址授权
|
||
region: region,
|
||
addressName: resss.result.address,
|
||
})
|
||
if (options.jump) {
|
||
|
||
} else {
|
||
wx.navigateTo({
|
||
url: '/pages/index/index_address/index_address',
|
||
})
|
||
}
|
||
|
||
},
|
||
fail: function (err) {
|
||
wx.hideLoading()
|
||
console.log(err)
|
||
}
|
||
})
|
||
|
||
},
|
||
//获取位置失败
|
||
fail: function (err) {
|
||
console.log("获取位置信息失败,请返回重试")
|
||
wx.showToast({
|
||
title: '获取位置信息失败,请返回重试',
|
||
icon: 'none'
|
||
})
|
||
wx.hideLoading()
|
||
},
|
||
//接口调用结束的回调函数(调用成功、失败都会执行)
|
||
complete: function (info) {
|
||
console.log("完成")
|
||
},
|
||
})
|
||
},
|
||
|
||
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady: function () {
|
||
|
||
},
|
||
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh: function () {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom: function () {
|
||
if (this.data.goodsId != '') {
|
||
this.goodsList()
|
||
}
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage: function (e) {
|
||
console.log(e)
|
||
app.share();
|
||
return {
|
||
path: '/pages/index/index?pId=' + app.globalData.userId,
|
||
title: '三品慧采小程序等你来~',
|
||
}
|
||
},
|
||
|
||
}) |