import { get, post } from '../../utils/http' import { PROJECT_TYPE } from '../../utils/global' var WxParse = require('../../components/local/wxParse/wxParse.js') Page({ /** * 页面的初始数据 */ data: { visible: false, visibleLandscape: false, detail: null, productDetail: null, // 项目耗材下单 - 产品信息 projectOrderData: null, // 项目耗材下单 - 绑定的订单信息 couponList: [], currentCoupon: -1, currentChangeCoupon: null, memberDiscountStatus: -1, // 是否可使用会员折扣 0 不是会员 1 是会员 memberStatus: -1, // 是否为会员 0 不是会员 1 是会员 recommendMemberCard: null, // 推荐开通的会员卡 array: ['使用', '不使用'], memberCardCurrentDiscount: -1, // 是否可以使用会员抵扣,0使用,1不使用,-1不可选择 source: 'project', // project, product, goods projectProducts: [], // 指定项目的耗材推荐产品(升级产品) selectProductId: 0, // 选择的项目耗材id selectProductIndex: -1, // 选择的项目耗材下标 selectCardId: 0, // 选择的会员卡ID moneyData: {}, // 金额数据 orderId: 0, wxParseMemberRules: false, // 是否已解析 pay_methon: 1, payNow: false, switchPay: 'product', inFirstIn: false, card_sum: 0, //次卡分配总数量 cardDetail: [], //固定次卡分配信息列表 Ac_cardDetail: [], //非固定次卡分配信息列表 card_type: null, //是否可以分配次数 finshCardDetail: {}, //分配完成的产品列表 all_cardDetail: [], //获取分配全部信息 selectExchange: 0, //是否选中加购产品 exchangePrice: '', //选中后的价格 cardExchangeList: '', //加购产品列表 cardExchangeId: '', //加购产品id toExchangePrice:'', //加购产品总价格 level: '', //用户充值折扣等级 (0是未拥有等级) levelList: { 1: '0.98', 4: '0.95', 7: '0.90', }, //折扣列表 levelPrice: '', //充值等级折扣优惠价格 }, knowSubmit: function () { this.setData({ inFirstIn: false }) }, noneEnoughPeople() { }, pay_methonw() { this.setData({ pay_methon: 1 }) }, // 获取用户充值折扣等级 getLevel() { get('/v2/api/user/discount_level', {}, (res) => { if (res.code == 200) { if (res.data == 0) { this.setData({ level: 0 }) return } let getValue = (item, val) => { return item[val] } this.setData({ level: Number(getValue(this.data.levelList, res.data)) }) this.setData({ tolevel: (this.data.level * 10).toFixed(1) }) } }) }, pay_methonc() { this.setData({ pay_methon: 2 }) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // 获取用户折扣等级 this.getLevel() // console.log(options, 'options'); this.getCardExchangeList(options.storeId, JSON.parse(options.data).id) let source = options.source || 'project' let productData = options.productData || null if (productData) { productData = JSON.parse(productData) } let userInfo = getApp().globalData.userInfo this.setData({ exchangePrice: JSON.parse(options.data).price, detail: JSON.parse(options.data), productDetail: productData, timeData: JSON.parse(options.timeData), deviceData: JSON.parse(options.deviceData), selectProductId: productData && productData.id ? productData.id : 0, // 复用了项目下单的耗材推荐产品 projectOrderData: options.projectOrderData ? JSON.parse(options.projectOrderData) : null, source: source, memberStatus: userInfo.is_vip || 0, storeId: options.storeId }) // 产品类型 数据类型,1项目,2项目耗材,3美妆产品,4卡券产品分类, 默认1 if (source == 'project') { // 项目 this.getDiscount() } else if (source == 'product') { // 项目耗材 this.getDiscount() } else if (['goods'].indexOf(source) > -1) { // 美妆产品 this.getGoodsDiscount() } else if (source == 'cardgoods') { // 卡券产品 this.getCardgoodsDiscount() } else if (source == 'product_with_project_order') { // 项目-升级产品(项目耗材) this.getProductWithProjectOrderDiscount() } else if (source == 'secondaryCard') { // 次卡 // 发起请求获取次卡分配产品 this.getCardProjectInfo() } else { // 默认为项目 this.getDiscount() } }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () {}, /** * 生命周期函数--监听页面显示 */ onShow: function () { this.getAmount() let version4 = wx.getStorageSync('version4') if (!version4 || version4 != 1) { this.setData({ inFirstIn: true }) wx.setStorageSync('version4', 1) } }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () {}, /** * 生命周期函数--监听页面卸载 */ onUnload: function () {}, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () {}, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () {}, /** * 用户点击右上角分享 */ onShareAppMessage: function () {}, /** * 复制订单号 */ onCopyOrderNum(e) { wx.setClipboardData({ data: e.currentTarget.dataset.num || '', success(res) { console.log(res) } }) }, /** * 打开优惠券 */ onCouponOpen() { if ( this.data.couponList.length > 0 && this.data.memberCardCurrentDiscount != 0 ) { this.setData({ visible: true }) } }, /** * 选择优惠券 */ onCouponChange(e) { let couponIndex = e.detail.checkStatus ? e.currentTarget.dataset.index : -1 // 优惠券和会员卡互斥逻辑 this.setData({ currentCoupon: couponIndex, currentChangeCoupon: couponIndex == -1 ? null : this.data.couponList[couponIndex], memberCardCurrentDiscount: couponIndex != -1 ? -1 : this.data.memberCardCurrentDiscount // 会员卡与优惠券互斥逻辑 }, () => { this.calculateOrderPayMoney() } ) }, /** * 关闭弹框 */ onClose() { this.setData({ visible: false }) }, onCancelCoupon() { this.setData({ visible: false }) }, onConfirmCoupon() { let currentChangeCoupon = this.data.couponList[this.data.currentCoupon] this.setData({ visible: false, currentChangeCoupon }, () => { this.calculateOrderPayMoney() } ) }, /** * 订单支付 */ payOrder(orderId) { let that = this let uri = 'api/pay/project' if (that.data.source == 'goods') { uri = 'api/pay/goods' } else if (that.data.source == 'cardgoods') { uri = 'api/pay/cardgoods' } else if (that.data.source == 'secondaryCard') { uri = 'v2/api/order/card/pay' } post( uri, { pay_way: this.data.pay_methon == 1 ? 'weixin' : 'amount', order_id: orderId }, (res) => { that.setData({ payNow: false }) if (that.data.pay_methon == 2) { that.goToOrder('支付成功') return } wx.requestPayment({ timeStamp: res.data.pay_data.timeStamp, nonceStr: res.data.pay_data.nonceStr, package: res.data.pay_data.package, signType: res.data.pay_data.signType, paySign: res.data.pay_data.paySign, success(res) { if (res.errMsg == 'requestPayment:ok') { that.goToOrder('支付成功') } }, fail(res) { that.goToOrder('支付失败') } }) } ) }, /** * 订单支付 - 升级产品支付 */ payProductOrder(orderId) { let that = this post( 'api/pay/product', { pay_way: this.data.pay_methon == 1 ? 'weixin' : 'amount', order_id: orderId }, (res) => { that.setData({ payNow: false }) if (that.data.pay_methon == 2) { that.goToOrder('支付成功') return } wx.requestPayment({ timeStamp: res.data.pay_data.timeStamp, nonceStr: res.data.pay_data.nonceStr, package: res.data.pay_data.package, signType: res.data.pay_data.signType, paySign: res.data.pay_data.paySign, success(res) { if (res.errMsg == 'requestPayment:ok') { that.goToOrder('支付成功') } }, fail(res) { that.goToOrder('支付失败') } }) } ) }, onPay: function () { this.setData({ payNow: true, switchPay: 'project', }) }, payNow() { switch (this.data.switchPay) { case 'project': this.payNowProduct() break; case 'product': this.onProductPayNow() break; case 'goods': this.onGoodsPayNow() break case 'cardgoods': this.onCardgoodsPayNow() break case 'secondaryCard': this.onSecondaryCardPayNow() break default: break; } }, /** * 支付 */ payNowProduct() { let that = this this.checkFirst() .then((res) => { this.addOrder().then((res) => { console.log(res) that.setData({ orderId: res.order_id }, () => { that.methonPayOrder(res.order_id) }) }) }) .catch((rej) => { that.setData({ payNow: false }) wx.navigateTo({ url: '/pages/disclaimer/disclaimer' }) }) }, onClosePay() { this.setData({ payNow: false }) }, /** * 订单支付 */ methonPayOrder(orderId) { let that = this let uri = 'api/pay/project' post( uri, { pay_way: this.data.pay_methon == 1 ? 'weixin' : 'amount', order_id: orderId }, (res) => { that.setData({ payNow: false }) if (that.data.pay_methon == 2) { that.goToOrder('支付成功') return } wx.requestPayment({ timeStamp: res.data.pay_data.timeStamp, nonceStr: res.data.pay_data.nonceStr, package: res.data.pay_data.package, signType: res.data.pay_data.signType, paySign: res.data.pay_data.paySign, success(res) { if (res.errMsg == 'requestPayment:ok') { that.goToOrder('支付成功') } }, fail(res) { that.goToOrder('支付失败') } }) } ) }, onGoodsPay() { this.setData({ payNow: true, switchPay: 'goods' }) }, /** * 美妆产品-订单 */ onGoodsPayNow() { let { detail, currentChangeCoupon, memberCardCurrentDiscount, selectCardId } = this.data let discount_type let that = this if (memberCardCurrentDiscount == 0) { discount_type = 1 } else if (currentChangeCoupon) { discount_type = 2 } else { discount_type = 0 } post( 'api/goods/buy', { goods_id: detail.id, coupon_id: currentChangeCoupon ? currentChangeCoupon.id : '', store_id: detail.store_id, card_id: selectCardId, discount_type }, (res) => { let orderId = res.data.order_id let payStatus = res.data.pay_status //订单状态,1已支付,0未支付,需要调用支付接口 this.setData({ orderId: orderId }, () => { if (payStatus == 1) { that.goToOrder('支付成功') return } that.payOrder(orderId) }) } ) }, onCardgoodsPay() { this.setData({ payNow: true, switchPay: 'cardgoods' }) }, /** * 购买-卡券产品【下单】 */ onCardgoodsPayNow() { let { detail, currentChangeCoupon, memberCardCurrentDiscount, selectCardId } = this.data let discount_type let that = this if (memberCardCurrentDiscount == 0) { discount_type = 1 } else if (currentChangeCoupon) { discount_type = 2 } else { discount_type = 0 } post( 'api/cardgoods/buy', { goods_id: detail.id, coupon_id: currentChangeCoupon ? currentChangeCoupon.id : '', store_id: detail.store_id, card_id: selectCardId, discount_type }, (res) => { let orderId = res.data.order_id let payStatus = res.data.pay_status //订单状态,1已支付,0未支付,需要调用支付接口 this.setData({ orderId: orderId }, () => { if (payStatus == 1) { that.goToOrder('支付成功') return } that.payOrder(orderId) }) } ) }, onSecondaryCardPay() { // 计算充值折扣 this.setData({ levelPrice: (this.data.detail.price * this.data.level+Number(this.data.toExchangePrice)).toFixed(2) }) this.setData({ toLevelPrice: (this.data.detail.price - this.data.levelPrice+Number(this.data.toExchangePrice)).toFixed(2) }) // 判断是否有次卡分配 if (this.data.card_type == 2) { // 判断分配次数是否分配完毕 let num = 0 this.data.Ac_cardDetail.map(item => { num += item.total_time }) this.setData({ card_sum: num }) // 如果没有分配完毕就提示 if (this.data.card_sum != 0) { wx.showToast({ title: '您还有剩余次数', icon: 'error' }) return } // 筛选分配后的数据 let group = [] this.data.Ac_cardDetail.map(item => { let vote = {} vote.id = item.id let project_list = [] vote.project_list = project_list item.project_list.map(item1 => { let vote1 = {} if (item1.time != 0) { vote1.project_id = item1.project_id vote1.time = item1.time project_list.push(vote1) } }) group.push(vote) }) this.setData({ finshCardDetail: group }) } this.setData({ payNow: true, switchPay: 'secondaryCard' }) }, /** * 次卡下单 */ onSecondaryCardPayNow() { console.log({ group: '', id: this.data.all_cardDetail.id, store_id: this.data.all_cardDetail.store_id, group_type: this.data.card_type, plus_id: this.data.cardExchangeId }); let { detail } = this.data let that = this post( // 判断是否有次卡分配 'v2/api/order/card/add', this.data.card_type == 2 ? { group: this.data.finshCardDetail, store_id: this.data.all_cardDetail.store_id, id: this.data.all_cardDetail.id, group_type: this.data.card_type, } : { group: '', id: this.data.all_cardDetail.id, store_id: this.data.all_cardDetail.store_id, group_type: this.data.card_type, plus_id: this.data.cardExchangeId }, (res) => { console.log(res); let orderId = res.data.order_id let payStatus = res.data.pay_status //订单状态,1已支付,0未支付,需要调用支付接口 // 因为要订阅消息,不能在回调函数里调用该方法所以修改 this.setData({ orderId: orderId }) if (payStatus == 1) { that.goToOrder('支付成功') return } that.payOrder(orderId) // this.setData({ // orderId: orderId // }, () => { // if (payStatus == 1) { // that.goToOrder('支付成功') // return // } // that.payOrder(orderId) // }) } ) }, /** * 确认订单 */ getOrderInfo(order_id) { get( 'api/order/info', { order_id }, (res) => { this.setData({ detail: res.data }) console.log(res) } ) }, /** * 获取预约订单折扣 * api/order/get_discount */ getDiscount() { let { memberCardCurrentDiscount, source } = this.data get( 'api/order/get_discount', { project_id: this.data.detail.id, order_day: this.data.timeData.order_day, order_time_id: this.data.timeData.time_id }, (res) => { // 是否可以使用会员抵扣,member_status:1 可以抵扣,0不能抵扣 if (res.data.member_status == 1) { memberCardCurrentDiscount = 0 // 是否可以使用会员抵扣,0使用,1不使用,-1不可选择 } this.setData({ couponList: res.data.coupon_list, // type: 类型,1抵扣券,2满减券,3全额券 memberDiscountStatus: res.data.member_status, // 是否可以使用会员抵扣,1可以抵扣,0不能抵扣 recommendMemberCard: res.data.member_card, // 推荐开通的会员卡 memberCardCurrentDiscount, currentPayMoney: this.data.detail.price }, () => { this.calculateOrderPayMoney() } ) } ) // 项目确认订单 - 获取指定项目的升级产品 if (source == 'project') { this.getProjectProducts() } }, /** * 选择会员抵扣 */ bindPickerChange(e) { let { memberCardCurrentDiscount, currentCoupon, currentChangeCoupon } = this.data this.setData({ memberCardCurrentDiscount: e.detail.value, currentCoupon: memberCardCurrentDiscount == 0 ? -1 : currentCoupon, currentChangeCoupon: memberCardCurrentDiscount == 0 ? null : currentChangeCoupon }, () => { this.calculateOrderPayMoney() } ) }, onSubmitCh(ids, source) { let that = this wx.showModal({ title: '提示', content: '支付成功! 是否进行消息提醒', success: function (res) { if (res.confirm) { that.onSubmitTrue(ids, source) } else if (res.cancel) { that.messageAgree(ids) setTimeout(() => { wx.reLaunch({ // url: '/pages/order/order?current=1' url: `/pages/paySuccess/paySuccess?current=1&source=${source}&order_id=${that.data.orderId}` }) }, 1000) } } }); }, onSubmitTrue(ids, source) { console.log("source") console.log(source) let that = this wx.requestSubscribeMessage({ tmplIds: ids, success(res) { console.log(res) that.messageAgree(ids) wx.reLaunch({ // url: '/pages/order/order?current=1' url: `/pages/paySuccess/paySuccess?current=1&source=${source}&order_id=${that.data.orderId}` }) }, fail(rej) { console.log(rej) that.messageAgree(ids) wx.showToast({ title: JSON.stringify(rej), icon: 'error' }) setTimeout(() => { wx.reLaunch({ // url: '/pages/order/order?current=1' url: `/pages/paySuccess/paySuccess?current=1&source=${source}&order_id=${that.data.orderId}` }) }, 1000) } }) }, /** * 获取我的储值 * api/user */ getAmount() { get('api/user/amount', {}, (res) => { if (res.data) { this.setData({ inserllAmount: res.data.amount }) } }) }, /** * 跳转订单列表 */ goToOrder(text) { let that = this let { source } = this.data // 此处按照接口定义,当选择项目耗材,且无项目时,下单用的是project if (source == 'product') { source = 'project' } wx.showToast({ title: text, icon: text == '支付成功' ? 'success' : 'error' }) if (text == '支付成功') { // 只有项目购买,需要订阅消息 if (source != 'project') { wx.reLaunch({ url: `/pages/paySuccess/paySuccess?current=1&source=${source}&order_id=${that.data.orderId}` }) // 获取下发权限 wx.requestSubscribeMessage({ tmplIds: ['RNife3ZhTYYpUuT26ylGQj8W0v07IPo2TGe941iR3y8'], success(res) { console.log(res); let status = '' if (res['RNife3ZhTYYpUuT26ylGQj8W0v07IPo2TGe941iR3y8'] == 'reject') { status = 2 } else { status = 1 } get('/v2/api/activity/push', { type: 2, status, }, res => {}) }, }) return } get('api/message/ids', {}, (res) => { let ids = res.data.ids if (that.data.pay_methon == 2) { that.onSubmitCh(ids, source) return } wx.requestSubscribeMessage({ tmplIds: ids, success(res) { console.log(res) that.messageAgree(ids) wx.reLaunch({ // url: '/pages/order/order?current=1' url: `/pages/paySuccess/paySuccess?current=1&source=${source}&order_id=${that.data.orderId}` }) }, fail(rej) { console.log(rej) that.messageAgree(ids) wx.showToast({ title: JSON.stringify(rej), icon: 'error' }) setTimeout(() => { wx.reLaunch({ // url: '/pages/order/order?current=1' url: `/pages/paySuccess/paySuccess?current=1&source=${source}&order_id=${that.data.orderId}` }) }, 1000) } }) }) } else { let failUrl = `/pages/order/order?current=0` if (['goods', 'cardgoods'].indexOf(source) > -1) { failUrl = `/pages/goods/orderList/orderList?current=0` } setTimeout(() => { wx.reLaunch({ url: failUrl // url: `/pages/paySuccess/paySuccess?current=0&source=${source}&order_id=${that.data.orderId}` }) }, 1000) } }, /** * 是否首次购买 */ checkFirst() { return new Promise((resolve, reject) => { if (wx.getStorageSync('agree')) { resolve() } else { get('api/order/check_first', {}, (res) => { if (res.data.order_status == 1) { resolve() } else { reject() } }) } }) }, /** * 提交订单 * /api/order/add */ addOrder() { let { deviceData, timeData, currentChangeCoupon, detail, memberCardCurrentDiscount, selectCardId, selectProductId } = this.data let discount_type let that = this return new Promise((resolve, reject) => { if (memberCardCurrentDiscount == 0) { discount_type = 1 } else if (currentChangeCoupon) { discount_type = 2 } else { discount_type = 0 } post( 'api/order/add', { project_id: detail.id, store_id: detail.store_id, device_id: deviceData ? deviceData.id : '', order_day: timeData ? timeData.order_day : '', order_time_id: timeData ? timeData.time_id : '', coupon_id: currentChangeCoupon ? currentChangeCoupon.id : '', discount_type, card_id: selectCardId, product_id: selectProductId, product_coupon_id: currentChangeCoupon ? currentChangeCoupon.id : '' }, (res) => { console.log(res) that.setData({ orderId: res.data.order_id }) if (res.data.pay_status == 1) { that.goToOrder('支付成功') } else { resolve(res.data) } } ) }) }, // 统一集合的地方 onProductPay() { this.setData({ payNow: true, switchPay: 'product', }) }, /** * 单独购买升级产品【下单】 * /api/product/buy * */ onProductPayNow() { let { selectProductId, projectOrderData, memberCardCurrentDiscount, currentChangeCoupon } = this.data let discount_type let that = this if (memberCardCurrentDiscount == 0) { discount_type = 1 } else if (currentChangeCoupon) { discount_type = 2 } else { discount_type = 0 } this.checkFirst() .then(() => { new Promise((resolve, reject) => { post( 'api/product/buy', { product_id: selectProductId, order_id: projectOrderData.order_id, coupon_id: currentChangeCoupon ? currentChangeCoupon.id : '', discount_type }, (res) => { console.log(res) that.setData({ orderId: res.data.order_id }) if (res.data.pay_status == 1) { that.goToOrder('支付成功') } else { that.payProductOrder(res.data.order_id) } } ) }) }) .catch((rej) => { wx.navigateTo({ url: '/pages/disclaimer/disclaimer' }) }) }, /** * 用户允许消息通知 * /api/message/agree */ messageAgree(ids) { post( 'api/message/agree', { order_id: this.data.orderId, ids }, () => {} ) }, /** * 点击打开会员卡弹框 */ onOpenLandscape() { let that = this if (that.data.wxParseMemberRules) { that.setData({ visibleLandscape: true }) return } this.getmemberRules() .then((memberRules) => { WxParse.wxParse('article', 'html', memberRules, that, 5) that.setData({ visibleLandscape: true, wxParseMemberRules: true }) }) .catch(() => {}) }, /** * 点击关闭会员卡弹框 */ onCloseLandscape() { this.setData({ visibleLandscape: false }) }, /** * 勾选会员卡 */ selectMemberCard(e) { let that = this this.setData({ selectCardId: that.data.selectCardId ? 0 : e.currentTarget.dataset.id, memberCardCurrentDiscount: that.data.selectCardId ? -1 : 0, memberStatus: that.data.selectCardId ? -1 : 1, currentCoupon: that.data.selectCardId ? -1 : that.data.currentCoupon, currentChangeCoupon: that.data.selectCardId ? null : that.data.currentChangeCoupon }, () => { that.calculateOrderPayMoney() } ) }, /** * 勾选升级产品 */ selectProjectProduct(e) { let { selectProductIndex } = this.data let productId = e.currentTarget.dataset.id let index = e.currentTarget.dataset.index this.setData({ selectProductId: selectProductIndex == index ? 0 : productId, selectProductIndex: selectProductIndex == index ? -1 : index }, () => { this.calculateOrderPayMoney() } ) }, /** * 获取指定项目的升级产品 */ getProjectProducts() { get('api/project/products', { project_id: this.data.detail.id }, (res) => { this.setData({ projectProducts: res.data.list && res.data.list.length > 0 ? res.data.list : [] }) }) }, /** * 获取-美妆产品折扣 */ getGoodsDiscount() { let memberCardCurrentDiscount = this.data.memberCardCurrentDiscount get( 'api/goods/get_discount', { goods_id: this.data.detail.id }, (res) => { this.setData({ couponList: res.data.coupon_list, // type: 类型,1抵扣券,2满减券,3全额券 memberCardCurrentDiscount, currentPayMoney: this.data.detail.price }, () => { this.calculateOrderPayMoney() } ) } ) }, /** * 获取-卡券产品折扣 */ getCardgoodsDiscount() { let memberCardCurrentDiscount = this.data.memberCardCurrentDiscount get( 'api/cardgoods/get_discount', { goods_id: this.data.detail.id }, (res) => { this.setData({ couponList: res.data.coupon_list, // type: 类型,1抵扣券,2满减券,3全额券,4卡券(效果和“全额券”一样) memberCardCurrentDiscount, currentPayMoney: this.data.detail.price }, () => { this.calculateOrderPayMoney() } ) } ) }, /** * 获取-项目升级产品的折扣信息 */ getProductWithProjectOrderDiscount() { let { selectProductId } = this.data get( 'api/product/get_discount', { product_id: selectProductId }, (res) => { this.setData({ couponList: res.data.coupon_list // type: 类型,1抵扣券,2满减券,3全额券,4卡券(效果和“全额券”一样) }, () => { this.calculateOrderPayMoney() } ) } ) }, /** * 获取会员守则 */ getmemberRules() { let memberRules = getApp().globalData.memberRules return new Promise((resolve, reject) => { if (memberRules) { resolve(memberRules) } else { get( 'api/agreement', {}, (res) => { memberRules = res.data.member_rules memberRules = this.removeCss(memberRules) getApp().globalData.memberRules = memberRules resolve(memberRules) }, () => { reject() } ) } }) }, /** * 去除富文本图片默认样式 */ removeCss(content) { let reg = /(style|class)="[^"]+"/gi let img = /]+>/gi let res if (img.test(content)) { res = content.match(img) for (let i = 0; i < res.length; i++) { content = content.replace(res[i], res[i].replace(reg, '')) } } // (/\= parseFloat(currentChangeCoupon.full_price) ? parseFloat(currentChangeCoupon.price) : 0 } } // 要支付的金额 = 项目(美妆产品)价格 - 优惠券金额 - 会员卡优惠金额 payMoney = projectWithGoodsPrice - couponMoney - memberDiscountMoney payMoney = payMoney > 0 ? payMoney : 0 // 项目耗材价格(项目耗材单独下单) payMoney = payMoney + productPrice payMoney = payMoney > 0 ? payMoney : 0 // 项目耗材价格(项目下单时勾选了推荐的耗材产品) payMoney = payMoney + projectProductMoney // 会员卡卡费 (卡费不参与折扣) payMoney = payMoney + memberCardPrice payMoney = payMoney > 0 ? payMoney : 0 this.setData({ moneyData: { payMoney: String(payMoney.toFixed(2)), // 需要支付的价格 projectWithGoodsPrice: String(projectWithGoodsPrice.toFixed(2)), // 项目价格 / 美妆产品价格 productPrice: String(productPrice.toFixed(2)), // 项目耗材价格 memberCardPrice: String(memberCardPrice.toFixed(2)), // 会员卡卡费 couponMoney: String(couponMoney.toFixed(2)), // 优惠券抵扣金额 memberDiscountMoney: String(memberDiscountMoney.toFixed(2)), // 会员折扣金额(项目) projectProductMoney: String(projectProductMoney.toFixed(2)) // 项目下单推荐的项目耗材 } }) return payMoney }, // 次卡详情点击减少 onReduce(e) { let index = e.currentTarget.dataset.index // 根据id获取数组下标 let indexId = e.currentTarget.dataset.id let num = this.data.Ac_cardDetail[indexId].project_list[index].time num = num - 1 if (num < 0) { num = 0 return } let dataNum = `Ac_cardDetail[${indexId}].project_list[${index}].time` let total = this.data.Ac_cardDetail[indexId].total_time total = total + 1 let total_time = `Ac_cardDetail[${indexId}].total_time` this.setData({ [dataNum]: num, [total_time]: total }) }, // 次卡详情点击添加 onLationAdd(e) { let index = e.currentTarget.dataset.index // 根据id获取数组下标 let indexId = e.currentTarget.dataset.id if (this.data.Ac_cardDetail[indexId].total_time == 0) { return } let num = this.data.Ac_cardDetail[indexId].project_list[index].time num = num + 1 let dataNum = `Ac_cardDetail[${indexId}].project_list[${index}].time` let total = this.data.Ac_cardDetail[indexId].total_time total = total - 1 let total_time = `Ac_cardDetail[${indexId}].total_time` this.setData({ [dataNum]: num }) this.setData({ [total_time]: total }) }, //次卡分配产品详情获取 getCardProjectInfo() { get('v2/api/card/project_list', { id: this.data.detail.id, store_id: this.data.storeId }, (res) => { console.log(res, 'product'); // 计算总分配次数(用来判断是否判断完毕) let a = 0 // 给每一个可分配数组添加一个标识(便于产品数量加减) res.data.group.map(item => { item.Idindex = a++ }) this.setData({ cardDetail: res.data.projects, card_type: res.data.type, Ac_cardDetail: res.data.group, all_cardDetail: res.data }) } ) }, // 选中加购产品 selectExchange(e) { let index = e.currentTarget.dataset.index let sum = Number(this.data.cardExchangeList[index].price) + Number(this.data.detail.price) let id = this.data.cardExchangeList[index].id this.setData({ selectExchange: this.data.selectExchange == 0 ? 1 : 0 }) if(this.data.selectExchange==1){ this.setData({ toExchangePrice:this.data.cardExchangeList[index].price }) }else{ this.setData({ toExchangePrice:0 }) } this.setData({ exchangePrice: String(sum.toFixed(2)), cardExchangeId: id }) }, // 获取次卡可换购列表 getCardExchangeList(storeId, id) { get('/v2/api/card/plus', { store_id: storeId, card_id: id }, (res) => { if (res.code == 200) { this.setData({ cardExchangeList: res.data.list }) } }) } })