123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443 |
- // pages/integral/integral.js
- import Integralinfo from '../../api/integralinfo'
- import {getMobileCache, getPhoneNumberNew as getPhoneNumberSync} from '../../utils/user'
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- lock: false,
- noResult: false,
- noMore: false,
- bannerList: [],
- couponList: [],
- channelid: '',
- shopid: '',
- storeid: '',
- bodyHidden: true,
- bgStatus: false,
- scorePhone: false,
- animationData: {},
- integralIngo:{},
- loading: false,
- setPhone: '',
- current: '',
- integralNum: 0,
- phone: '********',
- // phone: '15888282621',
- mobile: '********',
- paymentStatus: false,
- paymentBgStatus: false,
- activeNum: 0,
- listTrue: [],
- listStatus: false,
- total: 0,
- row: {},
- codeName: '60s后重新获取',
- codeTime: '',
- active1obj: {
- orderId: '',
- order_no: '',
- step: ''
- },
- active1code: '',
- active2code: '',
- tgid: '',
- scene: '',
- noClick: true,
- showToastObj: {
- icon: '',
- title: '',
- status: false
- }
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- var reg = /^(\d{3})\d{4}(\d{4})$/;
- this.setData({
- isLogin: getMobileCache() != '',
- phone: getMobileCache() == ''?'********':getMobileCache().replace(reg, "$1****$2"),
- setPhone: getMobileCache(),
- })
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
- this.getBannerList()
- this.getCouponList()
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- },
- getBannerList: function() {
- Integralinfo.getBannerList({
- channelid: this.data.channelid,
- shopid: this.data.shopid,
- storeid: this.data.storeid
- }).then(res => {
- console.log(res.data)
- this.setData({
- bannerList: res.data
- })
- }).catch(err => {
- console.log(err)
- })
- },
- getCouponList: function() {
- Integralinfo.getList({
- channelid: this.data.channelid,
- shopid: this.data.shopid,
- storeid: this.data.storeid
- }).then(res => {
- this.couponListView(res.data)
- this.data.lock = false
- }).catch(_ => {
- console.log(_)
- this.data.lock = false
- })
- },
- couponListView: function(data) {
- if (!Array.isArray(data) || data.length == 0) {
- console.log("优惠券列表数据为空");
- }
- data.forEach((v) => {
- v.quantity = 0
- v.integral = v.price * v.ratio
- })
- let num = this.data.integralNum > 20000 ? 19999 : this.data.integralNum
- const arr = []
- for (let i = 0; i < data.length; i++) {
- data[i].quantity = parseInt(num / data[i].integral)
- if (data[i].quantity > 0) {
- num -= (data[i].quantity * data[i].price) * data[i].ratio
- this.total += (data[i].quantity * data[i].price) * data[i].ratio
- arr.push(data[i])
- data.splice(i, 1)
- i--
- }
- }
- this.setData({
- couponList: [...arr, ...data]
- })
- console.log(this.data.couponList)
- },
- // 点击标识点触发
- detailsClick(row) {
- this.hideModal();
- this.row = row.currentTarget.dataset.info
- console.log(this.row)
- if (this.row.detail_type === 0) {
- this.row.detailArr = this.row.detail.split('\n')
- } else {
- this.row.detailArr = row.detail
- }
- this.setData({
- integralIngo: this.row,
- })
- console.log(this.data.integralIngo)
- setTimeout(() => {
- this.showDodal();
- }, 100)
- },
- showDodal() {
- var that = this;
- // 显示遮罩层
- var animation = wx.createAnimation({
- duration: 150,
- timingFunction: "linear",
- delay: 0
- })
- this.setData({
- bgStatus: true,
- bodyHidden: false
- })
-
- that.animation = animation
- animation.translateY(-500).step()
- that.setData({
- animationData: animation.export()
- })
- },
- //隐藏对话框
- hideModal() {
- var that = this;
- console.log(that.data)
- // 隐藏遮罩层
- var animation = wx.createAnimation({
- duration: 150,
- timingFunction: "linear",
- delay: 0
- })
- this.setData({
- bodyHidden: true,
- bgStatus: false,
- scorePhone: false,
- })
-
- that.animation = animation
- animation.translateY(0).step()
- that.setData({
- animationData: animation.export()
- })
- },
- /**授权手机号 */
- getPhoneNumber(e) {
- getPhoneNumberSync(e, async () => {
- console.log(e)
- if (getMobileCache() == '') {
- wx.showToast({
- icon:'error',
- title:'先查询移动积分'
- })
- setTimeout(()=>{
- that.data.setPhone = ''
- that.scoreClick()
- wx.hideLoading()
- },500)
- } else {
- var reg = /^(\d{3})\d{4}(\d{4})$/;
- this.setData({
- isLogin: true,
- setPhone: getMobileCache(),
- mobile: getMobileCache(),
- phone: getMobileCache().replace(reg, "$1****$2")
- })
- // console.log(this.data.setPhone)
- // console.log(this.data.mobile)
- // console.log(this.data.phone)
- // this.getphoneClick()
- }
-
- })
- },
- // 查询积分
- scoreClick() {
- this.setData({
- bgStatus: true,
- scorePhone: true,
- })
- },
- // 查询积分
- getphoneClick() {
- console.log(this.data.setPhone)
- if (!(/^1[3456789]\d{9}$/.test(this.data.setPhone))) {
- wx.showToast({
- title: '填写正确手机号',
- icon: 'error',
- duration: 2000
- });
- } else if (this.data.setPhone != '') {
- // wx.showLoading({
- // title: '加载中'
- // });
- Integralinfo.getBalance({
- mobile: this.data.setPhone,
- callbackUrl: '../integral/integral.wxml',
- fingerprint: '',
- sessionid: '',
- shopid: 2,
- type: 'wx',
- }).then(arr => {
- console.log(arr)
- wx.hideLoading();
- if (arr.code === '0000') {
- this.data.integralNum = arr.data
- var reg = /^(\d{3})\d{4}(\d{4})$/;
- this.data.mobile = this.data.setPhone
- this.data.setPhone = this.data.setPhone.replace(reg, "$1****$2");
- let response = {
- points: arr.data,
- outTokenId: this.data.setPhone + '_out'
- }
- App.globalData.AppShow = response
- this.hideModal()
- this.getCouponList()
- wx.pageScrollTo({
- scrollTop: 0
- });
- let dateNum = Math.round(new Date().getTime() / 1000).toString()
- if (wx.getStorageSync('orderDetails') != '' && this.data.mobile === JSON.parse(wx
- .getStorageSync('orderDetails')).mobile) {
- if (dateNum - JSON.parse(wx.getStorageSync('orderDetails')).date <= 120) {
- const data = JSON.parse(wx.getStorageSync('orderDetails'))
- if (dateNum - data.date < 60) {
- let time = dateNum - data.date
- this.codeName = 60 - time + 's后重新获取'
- this.codeSetInterval(60 - time)
- } else {
- this.codeName = '重新获取验证码'
- }
- this.data.paymentStatus = true
- this.data.paymentBgStatus = true
- this.data.active1code = ''
- this.data.active2code = ''
- this.data.active1obj = data
- if (data.step === 1) {
- this.data.activeNum = 1
- } else if (data.step === 2) {
- this.data.activeNum = 0
- }
- }
- }
- } else {
- this.data.loading = true
- this.data.bgStatus = true
- setTimeout(() => {
- // #ifdef H5
- window.location.href = arr.message;
- // #endif
- // #ifdef MP-WEIXIN
- const version = wx.getSystemInfoSync().SDKVersion
- if (this.compareVersion(version, '2.20.1') >= 0) {
- wx.openEmbeddedMiniProgram({
- appId: arr.data.appId,
- path: arr.data.path,
- extraData: arr.data.extraData,
- success(res) {
- // 打开成功
- },
- fail() {}
- })
- } else {
- // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
- wx.navigateToMiniProgram({
- appId: arr.data.appId,
- path: arr.data.path,
- extraData: arr.data.extraData,
- success(res) {
- // 打开成功
- },
- fail() {
- }
- })
- }
- // #endif
- this.hideModal()
- this.loading = false
- }, 4000)
- }
- })
- }
- },
- // 商品数量减少按钮
- reduceClick(e) {
- console.log(e.currentTarget.dataset.index)
- let index = e.currentTarget.dataset.index
- this.data.couponList[index].quantity--
- this.data.total -= parseInt(this.data.couponList[index].integral)
- },
- // 商品数量添加按钮
- addClick(e) {
- let index = e.currentTarget.dataset.index
- if (this.data.phone !== '********') {
- if (this.data.total + parseInt(this.data.couponList[index].integral) > 20000) {
- wx.showToast({
- title: '单笔限额两万分',
- icon: 'error',
- duration: 2000
- });
- } else if ((this.data.integralNum - this.data.total) >= this.data.couponList[index].integral) {
- this.data.couponList[index].quantity++
- this.data.total += parseInt(this.data.couponList[index].integral)
- } else {
- wx.showToast({
- title: '积分不足',
- icon: 'error',
- duration: 2000
- });
- }
- } else {
- wx.showToast({
- title: '先查询移动积分',
- icon: 'error',
- duration: 1000
- });
- setTimeout(() => {
- this.scoreClick()
- }, 1000)
- }
- },
- /** 刷新 */
- shuaxinClick() {
- Integralinfo.getBalance({
- mobile: this.data.setPhone,
- callbackUrl: '../integral/integral.wxml',
- fingerprint: '',
- sessionid: '',
- shopid: 2,
- type: 'wx',
- }).then(arr => {
- if (arr.code === '0000') {
- wx.hideLoading();
- wx.showToast({
- title: '查询成功!',
- icon: 'success',
- duration: 1000
- });
- this.data.integralNum = arr.data
- var reg = /^(\d{3})\d{4}(\d{4})$/;
- this.data.setPhone = this.data.mobile
- this.data.phone = this.data.setPhone.replace(reg, "$1****$2");
- }
- })
- },
-
- })
|