|
@@ -1,910 +1,910 @@
|
|
|
-<template>
|
|
|
- <view class="container order clearfix" :style="{ paddingBottom: isIphoneX ? '250rpx' : '214rpx' }">
|
|
|
- <!-- 地址选择 -->
|
|
|
- <cm-address-temp ref="choiceAddress" v-if="isRequest" :addressData="addressData" />
|
|
|
- <!-- 商品 -->
|
|
|
- <cm-goods-temp
|
|
|
- ref="goods"
|
|
|
- v-if="isRequest"
|
|
|
- :goodsData.sync="goodsData"
|
|
|
- @handleGoodList="handChangeInputGoodsList"
|
|
|
- @changeChina="handleChangeChina"
|
|
|
- @changePostage="handleChangePostage"
|
|
|
- />
|
|
|
- <!-- 发票信息 -->
|
|
|
- <cm-invice-popup
|
|
|
- ref="invoice"
|
|
|
- v-if="isRequest"
|
|
|
- :invoiceDatas="invoiceData"
|
|
|
- @handleChoiceaInvoice="handleChoiceaInvoiceData"
|
|
|
- />
|
|
|
- <!-- 优惠券选择弹窗 -->
|
|
|
- <cm-coupon-popup
|
|
|
- ref="coupon"
|
|
|
- v-if="isCouponShow"
|
|
|
- :couponList="couponList"
|
|
|
- @handleChoiceaCoupon="handleChoiceaCouponData"
|
|
|
- />
|
|
|
- <!-- 兑换优惠券弹窗 -->
|
|
|
- <cm-coupon-chang v-if="isExchangePopup" @changeCoupon="handleChangeCoupon"/>
|
|
|
- <!-- 优惠券 -->
|
|
|
- <cm-coupon-tips ref="coupon-tips" :coupon="ExchangeCouponData" @cancel="handleClickCancel" v-if="isCouponModel" />
|
|
|
- <!-- 余额抵扣 -->
|
|
|
- <view class="invoice-balance" v-show="isRequest && !rechargeGoods">
|
|
|
- <view class="balabce-t">
|
|
|
- <view class="balabce-t-le">余额抵扣:</view>
|
|
|
- <view class="balabce-t-ri">
|
|
|
- <view class="money">
|
|
|
- <text>可用余额:</text> <text>¥{{ userMoney | NumFormat }}</text>
|
|
|
- </view>
|
|
|
- <view class="checkbox-box">
|
|
|
- <button
|
|
|
- class="checkbox iconfont"
|
|
|
- hover-class="btn-hover"
|
|
|
- v-if="userMoney != 0"
|
|
|
- @click.stop="checkedBalabce"
|
|
|
- :class="[ischecked ? 'icon-yixuanze' : 'icon-weixuanze']"
|
|
|
- ></button>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="balabce-b" :class="{ 'balabce-b--hide': !ischecked }">
|
|
|
- <view
|
|
|
- class="balabce-b-text animation"
|
|
|
- :style="{
|
|
|
- transform: ischecked ? 'translateY(0)' : 'translateY(-50%)',
|
|
|
- '-webkit-transform': ischecked ? 'translateY(0)' : 'translateY(-50%)'
|
|
|
- }"
|
|
|
- >
|
|
|
- <text>当前使用:¥{{ deductMoney | NumFormat }},剩余:¥{{ surplusMoney | NumFormat }}</text>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <!-- 底部 -->
|
|
|
- <view class="footer-wrapper" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
|
|
|
- <cm-return-popup v-if="returnGoodsStutas" :content="helpContent" @change="onAgreementChange" />
|
|
|
- <view class="footer">
|
|
|
- <view class="footer-le">
|
|
|
- <view class="footer-count">
|
|
|
- <text>共{{ totalCount }}件商品</text>
|
|
|
- </view>
|
|
|
- <view class="footer-price">
|
|
|
- <view class="sum" :class="totalDiscountAmount == 0 ? 'none' : ''">
|
|
|
- 总价:<text class="price">¥{{ orderShouldPayFee | NumFormat }}</text>
|
|
|
- </view>
|
|
|
- <view class="sum-none" v-if="totalDiscountAmount > 0">
|
|
|
- <text class="money-reduced"
|
|
|
- >共减<text>¥{{ totalDiscountAmount | NumFormat }}</text></text
|
|
|
- >
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="footer-submit" @click.stop="orderSubmitMit">
|
|
|
- <view class="btn" :class="isSubLoading ? 'disabled' : ''">提交订单</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <!-- 提示弹窗 -->
|
|
|
- <tui-modal
|
|
|
- :show="showModal"
|
|
|
- @click="handleClick"
|
|
|
- @cancel="hideMobel"
|
|
|
- :content="contentModalText"
|
|
|
- :button="modalButton"
|
|
|
- color="#333"
|
|
|
- :size="28"
|
|
|
- shape="circle"
|
|
|
- :maskClosable="false"
|
|
|
- />
|
|
|
- <tui-modal
|
|
|
- :show="agreementModel"
|
|
|
- title="提示"
|
|
|
- content="请先阅读《特殊商品退货须知》并勾选后再提交订单~"
|
|
|
- shape="circle"
|
|
|
- color="#333"
|
|
|
- :size="28"
|
|
|
- :button="agreementModelButtons"
|
|
|
- @click="agreementModel = false"
|
|
|
- />
|
|
|
- </view>
|
|
|
-</template>
|
|
|
-<script>
|
|
|
-import { mapState, mapMutations } from 'vuex'
|
|
|
-import cmAddressTemp from './components/cm-address-temp'
|
|
|
-import cmGoodsTemp from './components/cm-goods-temp'
|
|
|
-import cmInvicePopup from './components/cm-invice-popup'
|
|
|
-import cmCouponPopup from './components/cm-coupon-popup'
|
|
|
-import cmCouponChang from './components/cm-coupon-chang'
|
|
|
-import cmReturnPopup from './components/cm-return-popup'
|
|
|
-import cmCouponTips from './components/cm-coupon-tips'
|
|
|
-import conMixins from './mixins/conMixins.js'
|
|
|
-export default {
|
|
|
- mixins: [conMixins],
|
|
|
- components: {
|
|
|
- cmAddressTemp,
|
|
|
- cmGoodsTemp,
|
|
|
- cmInvicePopup,
|
|
|
- cmCouponPopup,
|
|
|
- cmCouponChang,
|
|
|
- cmReturnPopup,
|
|
|
- cmCouponTips
|
|
|
- },
|
|
|
- data() {
|
|
|
- return {
|
|
|
- isIphoneX: this.$store.state.isIphoneX,
|
|
|
- isSubLoading: false,
|
|
|
- confirmType: 1,
|
|
|
- confirmParam: {
|
|
|
- cartType: 1, // 购买类型:(1自主下单, 3协销下单)
|
|
|
- orderMiniType: 0, // 订单提交状态 0初始提交 1 继续提交
|
|
|
- orderSource: 6, // 订单来源 1WWW 6小程序[采美,星范]
|
|
|
- addressId: 0, // 收货地址Id
|
|
|
- clubCouponId: 0, // 关联优惠券Id
|
|
|
- clubId: 0, // 机构Id
|
|
|
- orderInfo: [], // 订单商品数据
|
|
|
- orderInvoice: { type: 0 }, // 订单发票信息
|
|
|
- payInfo: {
|
|
|
- // 订单金额数据
|
|
|
- orderShouldPayFee: 0, // 订单最终支付金额
|
|
|
- balancePayFlag: 0, // 勾选余额的状态(1使用,0不使用)
|
|
|
- clauseId: 0, // 条款Id
|
|
|
- postage: '0.00', // 运费金额
|
|
|
- postageFlag: 0, // 运费类型
|
|
|
- userBeans: 0, // 抵扣采美豆数量
|
|
|
- rebateFlag: 0 // 是否返佣订单
|
|
|
- },
|
|
|
- unionId: uni.getStorageSync('unionId') // 用户unionId
|
|
|
- }, // 提交订单参数
|
|
|
- productIds: '', // 获取上一级页面商品信息
|
|
|
- submitState: '', // 提交状态
|
|
|
- isRequest: false, // 是否加载完成渲染子组件
|
|
|
- isFreight: false, // 是否加载完成渲染子组件
|
|
|
- isExchangePopup: false, // 控制兑换优惠券弹窗
|
|
|
- ischecked: false, // 是否勾选余额
|
|
|
- addressData: {}, // 初始化地址信息
|
|
|
- goodsData: [], // 初始化商品信息
|
|
|
- couponList: [], // 初始化优惠券信息
|
|
|
- invoiceData: { type: 0 }, // 初始化发票信息
|
|
|
- freightData: {}, // 邮费数据
|
|
|
- orderInfo: [], // 提交的商品信息
|
|
|
- rechargeGoods: null, // 判断订单里有定金商品或者充值商品时,余额抵扣部分不显示
|
|
|
- freightBeansMoney: 0, // 存储采美豆抵扣金额
|
|
|
- isCouponShow: false, // 是否显示可选优惠券
|
|
|
- isCheckedBeans: false, // 是否抵扣采美豆
|
|
|
- isCouponModel: false, // 兑换优惠券成功提示
|
|
|
- ExchangeCouponData: {}, // 兑换优惠券信息
|
|
|
- contentModalText: '采购金额过小,将扣除500采美豆,建议您前往采美旗下“颜选美学”小程序购买小额商品。', //操作文字提示语句
|
|
|
- modalButton: [
|
|
|
- {
|
|
|
- text: '前往颜选美学',
|
|
|
- type: 'gray',
|
|
|
- plain: true //是否空心
|
|
|
- },
|
|
|
- {
|
|
|
- text: '继续提交',
|
|
|
- customStyle: {
|
|
|
- color: '#fff',
|
|
|
- bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
|
|
|
- },
|
|
|
- plain: false
|
|
|
- }
|
|
|
- ],
|
|
|
- showModal: false,
|
|
|
- showModalstauts: 0,
|
|
|
- returnGoodsStutas: false,
|
|
|
- helpContent: '',
|
|
|
- agreementActive: false,
|
|
|
- agreementModel: false,
|
|
|
- agreementModelButtons: [
|
|
|
- {
|
|
|
- text: '确定',
|
|
|
- customStyle: {
|
|
|
- color: '#fff',
|
|
|
- bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
|
|
|
- },
|
|
|
- plain: false
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- },
|
|
|
- onLoad(option) {
|
|
|
- //商品数据
|
|
|
-
|
|
|
- this.initStorage(option)
|
|
|
- },
|
|
|
- filters: {
|
|
|
- NumFormat(value) {
|
|
|
- //处理金额
|
|
|
- return Number(value).toFixed(2)
|
|
|
- }
|
|
|
- },
|
|
|
- methods: {
|
|
|
- onAgreementChange(val) {
|
|
|
- this.agreementActive = val
|
|
|
- },
|
|
|
- async initStorage(option) {
|
|
|
- const data = JSON.parse(option.data)
|
|
|
- const userInfo = await this.$api.getStorage()
|
|
|
- this.handleComType = option.type * 1
|
|
|
- this.productParam.userId = this.cartParam.userId = userInfo.userId
|
|
|
- this.supportParm.userId = userInfo.userId
|
|
|
- this.confirmParam.clubId = userInfo.clubId
|
|
|
- switch (option.type) {
|
|
|
- case '1': // 商品详情立即购买
|
|
|
- this.confirmParam.cartType = 2
|
|
|
- this.productParam.productCount = data.data.productCount
|
|
|
- this.productParam.productId = data.data.productIds
|
|
|
- this.productParam.skuId = data.data.skuId
|
|
|
- this.productIds = data.data.productIds
|
|
|
- this.getAddressData(userInfo.userId, 1)
|
|
|
- break
|
|
|
- case '2': // 购物车结算
|
|
|
- this.confirmParam.cartType = 1
|
|
|
- this.confirmType = 2
|
|
|
- this.cartParam.skuIds = data.data.skuIds
|
|
|
- this.getAddressData(userInfo.userId, 2)
|
|
|
- break
|
|
|
- case '3': // 组合商品立即购买
|
|
|
- this.confirmParam.cartType = 2
|
|
|
- this.confirmType = 2
|
|
|
- this.supportParm.productInfo = JSON.stringify(data.data)
|
|
|
- this.getAddressData(userInfo.userId, 3)
|
|
|
- }
|
|
|
- },
|
|
|
- async getAddressData(userId, type) {
|
|
|
- //获取地址信息
|
|
|
- try {
|
|
|
- const params = { pageNum: 1, pageSize: 1, userId: userId }
|
|
|
- const res = await this.UserService.QueryAddressList(params)
|
|
|
- const data = res.data
|
|
|
- if (data.list && data.list.length > 0) {
|
|
|
- this.addressData = data.list[0]
|
|
|
- this.confirmParam.addressId = this.addressData.addressId
|
|
|
- this.cartParam.cityId = this.addressData.cityId
|
|
|
- this.productParam.cityId = this.addressData.cityId
|
|
|
- this.supportParm.cityId = this.addressData.cityId
|
|
|
- }
|
|
|
- if (type === 1) {
|
|
|
- //立即都买提交
|
|
|
- this.GetProductCreateOrderInfo()
|
|
|
- }
|
|
|
- if (type === 2) {
|
|
|
- //购物车提交
|
|
|
- this.CartCreateOrderInfo()
|
|
|
- }
|
|
|
- if (type === 3) {
|
|
|
- //组合商品提交
|
|
|
- this.GetOrderClubProductSupporting()
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.log('获取订单地址异常')
|
|
|
- }
|
|
|
- },
|
|
|
- // 商品立即购买确认订单数据初始化
|
|
|
- async GetProductCreateOrderInfo() {
|
|
|
- try {
|
|
|
- const res = await this.OrderService.ProductCreateOrderInfo(this.productParam)
|
|
|
- this.setCreatDataInfo(res.data)
|
|
|
- } catch (error) {
|
|
|
- this.$util.msg(error.msg, 2000)
|
|
|
- }
|
|
|
- },
|
|
|
- // 组合商品立即购买确认订单数据初始化
|
|
|
- async GetOrderClubProductSupporting() {
|
|
|
- try {
|
|
|
- const res = await this.OrderService.OrderClubProductSupporting(this.supportParm)
|
|
|
- this.setCreatDataInfo(res.data)
|
|
|
- } catch (error) {
|
|
|
- this.$util.msg(error.msg, 2000)
|
|
|
- }
|
|
|
- },
|
|
|
- // 购物车去结算确认订单数据初始化
|
|
|
- async CartCreateOrderInfo() {
|
|
|
- try {
|
|
|
- const res = await this.OrderService.CartCreateOrderInfo(this.cartParam)
|
|
|
- this.setCreatDataInfo(res.data)
|
|
|
- } catch (error) {
|
|
|
- this.$util.msg(error.msg, 2000)
|
|
|
- }
|
|
|
- },
|
|
|
- // 公共初始化数据
|
|
|
- setCreatDataInfo(data) {
|
|
|
- this.isRequest = true
|
|
|
- this.goodsData = data.list.map(el => {
|
|
|
- el.handlePostageFlag = el.postageFlag
|
|
|
- return el
|
|
|
- })
|
|
|
- this.couponList = data.couponList
|
|
|
- this.userMoney = data.userMoney
|
|
|
- this.reducedPrice = data.reducedPrice
|
|
|
- this.totalCount = data.totalCount
|
|
|
- this.allPrice = data.totalPrice
|
|
|
- this.rechargeGoods = data.rechargeGoods
|
|
|
- if (this.couponList.length > 0) {
|
|
|
- this.isCouponShow = true
|
|
|
- this.couponAmount = data.couponList[0].couponAmount
|
|
|
- this.confirmParam.clubCouponId = data.couponList[0].clubCouponId
|
|
|
- }
|
|
|
- this.orderShouldPayFee = this.allPrice - this.couponAmount
|
|
|
- // 特殊商品退货须知
|
|
|
- this.returnGoodsStutas = data.returnGoodsStutas && data.returnGoodsStutas === 2 // 1:可以 2:不可以
|
|
|
- this.helpContent = data.helpContent
|
|
|
- },
|
|
|
- async getFreightData() {
|
|
|
- // 获取邮费信息
|
|
|
- try {
|
|
|
- this.isFreight = false
|
|
|
- const res = await this.OrderService.GetOrderPostage(this.postageParam)
|
|
|
- const data = res.data
|
|
|
- this.isFreight = true
|
|
|
- this.isCheckedBeans = false
|
|
|
- this.freightData = data
|
|
|
- this.hanldFreePostFlag = data.postageFlag
|
|
|
- this.hanldFreight = data.postage
|
|
|
- if (this.hanldFreePostFlag == 1) {
|
|
|
- if (this.freightData.userBeans > 0) {
|
|
|
- this.freightBeansMoney = this.hanldFreight
|
|
|
- } else {
|
|
|
- this.freightBeansMoney = 0
|
|
|
- }
|
|
|
- this.orderShouldPayFee = this.allPrice + data.postage
|
|
|
- this.attributePallPrice()
|
|
|
- this.hanldFreightBeans(this.isCheckedBeans)
|
|
|
- } else {
|
|
|
- if (this.freightData.userBeans > 0) {
|
|
|
- this.freightBeansMoney = 30
|
|
|
- } else {
|
|
|
- this.freightBeansMoney = 0
|
|
|
- }
|
|
|
- this.orderShouldPayFee = this.allPrice
|
|
|
- this.attributePallPrice()
|
|
|
- this.hanldFreightBeans(this.isCheckedBeans)
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.log('获取订单运费异常')
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- handChangeInputGoodsList(data) {
|
|
|
- //对应供应商的留言信息
|
|
|
- this.goodsData = data
|
|
|
- },
|
|
|
- handleChoiceaInvoiceData(data) {
|
|
|
- //获取发票信息
|
|
|
- this.confirmParam.orderInvoice = data
|
|
|
- },
|
|
|
- hanldFreightBeans(data) {
|
|
|
- //是否勾选采美豆抵扣
|
|
|
- this.isCheckedBeans = data
|
|
|
- console.log(this.confirmParam.payInfo)
|
|
|
- if (this.isCheckedBeans) {
|
|
|
- // 判断如果采美豆大于等于运费*100
|
|
|
- if (this.freightData.userBeans > 0) {
|
|
|
- this.confirmParam.payInfo.userBeans = this.freightBeansMoney * 100
|
|
|
- } else {
|
|
|
- this.confirmParam.payInfo.userBeans = 0
|
|
|
- }
|
|
|
- // 计算抵扣后的总价
|
|
|
- if (this.hanldFreePostFlag == 1) {
|
|
|
- // 如果使用了余额 最终价格
|
|
|
- if (this.ischecked) {
|
|
|
- let totalAmount = this.allPrice - this.couponAmount
|
|
|
- if (this.userMoney >= totalAmount) {
|
|
|
- this.orderShouldPayFee = 0.0
|
|
|
- this.deductMoney = this.allPrice - this.couponAmount // 当前使用金额等于订单金额
|
|
|
- this.surplusMoney = this.userMoney - this.deductMoney // 剩余金额等于余额-当前使用金额
|
|
|
- } else {
|
|
|
- this.orderShouldPayFee = this.allPrice - this.userMoney - this.couponAmount // 订单最终支付金额等于订单金额-账户余额
|
|
|
- this.deductMoney = this.userMoney // 当前使用金额等于总余额
|
|
|
- this.surplusMoney = this.userMoney - this.deductMoney // 剩余余额等于总余额-当前使用金额
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.orderShouldPayFee =
|
|
|
- this.allPrice + this.hanldFreight - this.freightBeansMoney - this.couponAmount
|
|
|
- }
|
|
|
- console.log('抵扣', this.orderShouldPayFee)
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 采美豆不抵扣运费
|
|
|
- this.confirmParam.payInfo.userBeans = 0
|
|
|
- // 不抵扣时计算总价
|
|
|
- if (this.hanldFreePostFlag == 1) {
|
|
|
- this.attributeHashfreight(this.hanldFreight)
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- handleChoiceaCouponData(data) {
|
|
|
- // 勾选使用优惠券
|
|
|
- console.log('优惠券信息', data)
|
|
|
- this.couponAmount = data.couponAmount
|
|
|
- this.confirmParam.clubCouponId = data.clubCouponId
|
|
|
- this.attributePallPrice()
|
|
|
- // this.hanldFreightBeans(this.isCheckedBeans)
|
|
|
- },
|
|
|
- attributeHashfreight() {
|
|
|
- // 计算需要邮费的支付价格
|
|
|
- let totalAmount = this.allPrice - this.couponAmount //计算不包邮的价格 总价等于商品价格+邮费
|
|
|
- if (this.ischecked) {
|
|
|
- if (this.userMoney >= totalAmount) {
|
|
|
- // 全部抵扣
|
|
|
- this.orderShouldPayFee = 0.0
|
|
|
- if (this.isCheckedBeans) {
|
|
|
- // 抵扣运费了
|
|
|
- this.deductMoney = this.allPrice - this.couponAmount // 当前使用金额等于订单金额
|
|
|
- this.surplusMoney = this.userMoney - this.deductMoney // 剩余金额等于余额减去当前使用金额
|
|
|
- } else {
|
|
|
- this.deductMoney = this.allPrice - this.couponAmount // 当前使用金额等于订单金额+运费金额
|
|
|
- this.surplusMoney = this.userMoney - this.deductMoney // 剩余余额等于总余额-当前使用金额
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 部分抵扣
|
|
|
- if (this.isCheckedBeans) {
|
|
|
- // 抵扣运费了
|
|
|
- this.orderShouldPayFee = this.allPrice - this.userMoney - this.couponAmount // 订单最终支付金额等于总订单金额-账户余额-优惠券金额
|
|
|
- this.deductMoney = this.userMoney // 当前使用金额等于账户余额
|
|
|
- this.surplusMoney = this.userMoney - this.deductMoney // 剩余余额等于账户余额-当前使用金额
|
|
|
- } else {
|
|
|
- this.orderShouldPayFee = this.allPrice - this.userMoney - this.couponAmount //订单支付金额等于订单金额+运费-账户余额-优惠券
|
|
|
- this.deductMoney = this.userMoney // 当前使用金额等于账户余额
|
|
|
- this.surplusMoney = this.userMoney - this.deductMoney // 剩余余额等于账户余额-当前使用金额
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- this.orderShouldPayFee = this.allPrice - this.couponAmount
|
|
|
- this.deductMoney = 0.0 // 当前使用金额
|
|
|
- this.surplusMoney = this.userMoney // 剩余余额
|
|
|
- }
|
|
|
- console.log('最终订单支付金额', this.orderShouldPayFee)
|
|
|
- console.log('优惠券金额', this.couponAmount)
|
|
|
- },
|
|
|
- orderSubmitMit() {
|
|
|
- // 提交订单按钮点击事件
|
|
|
- if (this.returnGoodsStutas && !this.agreementActive) {
|
|
|
- this.agreementModel = true
|
|
|
- } else {
|
|
|
- this.handleClickOrderSubmitMit()
|
|
|
- }
|
|
|
- },
|
|
|
- handleClickOrderSubmitMit() {
|
|
|
- // 提交订单
|
|
|
- if (this.isSubLoading) {
|
|
|
- return
|
|
|
- }
|
|
|
- if (this.confirmParam.addressId == '') {
|
|
|
- this.$util.msg('请先添加收货地址~', 2000)
|
|
|
- return
|
|
|
- }
|
|
|
- this.confirmParam.orderInfo = this.hanldeProcessing()
|
|
|
- this.confirmParam.payInfo.orderShouldPayFee = this.orderShouldPayFee.toFixed(2)
|
|
|
- this.confirmParam.payInfo = JSON.stringify(this.confirmParam.payInfo)
|
|
|
- this.confirmParam.orderInfo = JSON.stringify(this.confirmParam.orderInfo)
|
|
|
- this.confirmParam.orderInvoice = JSON.stringify(this.confirmParam.orderInvoice)
|
|
|
- console.log(this.confirmParam)
|
|
|
- this.isSubLoading = true
|
|
|
- this.hanldeOrderSubmit(this.confirmParam)
|
|
|
- },
|
|
|
- // 处理数据格式
|
|
|
- hanldeProcessing() {
|
|
|
- return this.goodsData.map(el => {
|
|
|
- let productInfo = []
|
|
|
- el.cartList.forEach(pros => {
|
|
|
- productInfo.push({
|
|
|
- skuId: pros.skuId,
|
|
|
- productNum: pros.number,
|
|
|
- presentNum: 0,
|
|
|
- productType: pros.giftType
|
|
|
- })
|
|
|
- })
|
|
|
- return {
|
|
|
- splitCode: el.splitCode,
|
|
|
- shopId: el.shopId,
|
|
|
- note: el.note ? el.note : '',
|
|
|
- postage: el.isColdChina
|
|
|
- ? parseInt(el.postage + el.coldChain).toFixed(2)
|
|
|
- : parseInt(el.postage).toFixed(2),
|
|
|
- postageFlag: parseInt(el.handlePostageFlag),
|
|
|
- isColdChina: el.isColdChina ? 1 : 0,
|
|
|
- productInfo: productInfo
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
- // 提交订单
|
|
|
- async hanldeOrderSubmit(params) {
|
|
|
- try {
|
|
|
- const res = await this.OrderService.CreatedOrderSubmit(params)
|
|
|
- const data = res.data
|
|
|
- // 友盟埋点收集机构自主提交订单
|
|
|
- if (process.env.NODE_ENV != 'development') {
|
|
|
- this.$uma.trackEvent('Um_Event_ConfirmOrder', {
|
|
|
- Um_Key_PageName: '机构提交订单',
|
|
|
- Um_Key_SourcePage: '确认订单',
|
|
|
- Um_Key_OrderID: `${data.orderId}`
|
|
|
- })
|
|
|
- }
|
|
|
- if (data.code === 1) {
|
|
|
- this.submitState = 'success'
|
|
|
- setTimeout(() => {
|
|
|
- this.isSubLoading = false
|
|
|
- }, 2000)
|
|
|
- this.$api.redirectTo(
|
|
|
- `/pages/user/order/success?data=${JSON.stringify({ data: { orderId: data.orderId } })}`
|
|
|
- )
|
|
|
- } else {
|
|
|
- this.submitState = 'confirm'
|
|
|
- this.$util.msg('订单提交成功', 2000, true, 'success')
|
|
|
- setTimeout(() => {
|
|
|
- this.isSubLoading = false
|
|
|
- this.$api.redirectTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
|
|
|
- }, 2000)
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- this.isSubLoading = false
|
|
|
- this.handleError(error)
|
|
|
- }
|
|
|
- },
|
|
|
- handleError(data) {
|
|
|
- // 提交订单异常处理
|
|
|
- const buttonMap = {
|
|
|
- 1: {
|
|
|
- contentModalText:
|
|
|
- '您已有2个采购金额过小的订单,本次不能再进行采购。建议您前往采美旗下“颜选美学”小程序购买小额商品。',
|
|
|
- modalButton: [
|
|
|
- { text: '了解', type: 'gray', plain: true },
|
|
|
- {
|
|
|
- text: '前往颜选美学',
|
|
|
- customStyle: { color: '#fff', bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },
|
|
|
- plain: false
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- 2: {
|
|
|
- contentModalText: '采美豆不足,不能提交订单。建议您前往采美旗下“颜选美学”小程序购买小额商品。',
|
|
|
- modalButton: [
|
|
|
- { text: '了解', type: 'gray', plain: true },
|
|
|
- {
|
|
|
- text: '前往颜选美学',
|
|
|
- customStyle: { color: '#fff', bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },
|
|
|
- plain: false
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- 3: {
|
|
|
- contentModalText: '采购金额过小,将扣除500采美豆,建议您前往采美旗下“颜选美学”小程序购买小额商品。',
|
|
|
- modalButton: [
|
|
|
- { text: '前往颜选美学', type: 'gray', plain: true },
|
|
|
- {
|
|
|
- text: '继续提交',
|
|
|
- customStyle: { color: '#fff', bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },
|
|
|
- plain: false
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
- 4: {
|
|
|
- contentModalText:
|
|
|
- '订单内存在械字号三类商品,需要拥有医疗执业许可证的医美机构才能购买。建议升级医美机构后再下单,否则会导致订单退款或影响发货。',
|
|
|
- modalButton: [
|
|
|
- { text: '继续提交', type: 'gray', plain: true },
|
|
|
- {
|
|
|
- text: '去升级',
|
|
|
- customStyle: { color: '#fff', bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },
|
|
|
- plain: false
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
- if (data.code === -3) {
|
|
|
- // 已提交2个小于1000元的订单提示
|
|
|
- this.showModal = true
|
|
|
- this.showModalstauts = 3
|
|
|
- this.contentModalText = buttonMap[1].contentModalText
|
|
|
- this.modalButton = buttonMap[1].modalButton
|
|
|
- this.formatConfirmParam()
|
|
|
- } else if (data.code === -4) {
|
|
|
- // 采美豆为负数
|
|
|
- this.showModal = true
|
|
|
- this.showModalstauts = 3
|
|
|
- this.contentModalText = buttonMap[2].contentModalText
|
|
|
- this.modalButton = buttonMap[2].modalButton
|
|
|
- this.formatConfirmParam()
|
|
|
- } else if (data.code === -5) {
|
|
|
- // 订单总金额低于500
|
|
|
- this.showModal = true
|
|
|
- this.showModalstauts = 1
|
|
|
- this.contentModalText = buttonMap[3].contentModalText
|
|
|
- this.modalButton = buttonMap[3].modalButton
|
|
|
- this.formatConfirmParam()
|
|
|
- } else if (data.code === -6) {
|
|
|
- // 非医美机构下三类商品订单
|
|
|
- this.showModal = true
|
|
|
- this.showModalstauts = 2
|
|
|
- this.contentModalText = buttonMap[4].contentModalText
|
|
|
- this.modalButton = buttonMap[4].modalButton
|
|
|
- this.formatConfirmParam()
|
|
|
- } else {
|
|
|
- this.$util.msg(data.msg, 3000)
|
|
|
- }
|
|
|
- },
|
|
|
- formatConfirmParam() {
|
|
|
- // 还原提交订单参数格式
|
|
|
- this.confirmParam.payInfo = JSON.parse(this.confirmParam.payInfo)
|
|
|
- this.confirmParam.orderInfo = JSON.parse(this.confirmParam.orderInfo)
|
|
|
- this.confirmParam.orderInvoice = JSON.parse(this.confirmParam.orderInvoice)
|
|
|
- },
|
|
|
- handleChangeCoupon(data){
|
|
|
- this.ExchangeCouponData = data
|
|
|
- this.isExchangePopup = false
|
|
|
- this.isCouponModel = true
|
|
|
- this.getInitCrearOrder()
|
|
|
- },
|
|
|
- handleClickCancel() {
|
|
|
- // 关闭优惠券弹窗
|
|
|
- this.isCouponModel = false
|
|
|
- if (this.confirmType == 1) {
|
|
|
- this.GetProductCreateOrderInfo()
|
|
|
- } else {
|
|
|
- this.CartCreateOrderInfo()
|
|
|
- }
|
|
|
- },
|
|
|
- handleClick(e) {
|
|
|
- // 采购量过小提示弹窗
|
|
|
- if (e.index === 1) {
|
|
|
- if (this.showModalstauts === 1) {
|
|
|
- this.showModal = false
|
|
|
- this.confirmParam.orderMiniType = 1
|
|
|
- this.handleClickOrderSubmitMit()
|
|
|
- } else if (this.showModalstauts === 2) {
|
|
|
- this.showModal = false
|
|
|
- this.isSubLoading = false
|
|
|
- this.$api.navigateTo('/pages/login/apply')
|
|
|
- } else {
|
|
|
- this.showModal = false
|
|
|
- this.handleClickHeHeMiniApplet()
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (this.showModalstauts == 1) {
|
|
|
- this.showModal = false
|
|
|
- this.handleClickHeHeMiniApplet()
|
|
|
- } else if (this.showModalstauts === 2) {
|
|
|
- this.showModal = false
|
|
|
- this.confirmParam.orderMiniType = 2
|
|
|
- this.handleClickOrderSubmitMit()
|
|
|
- } else {
|
|
|
- this.showModal = false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- handleClickHeHeMiniApplet() {
|
|
|
- // 跳转颜选美学小程序
|
|
|
- uni.navigateToMiniProgram({
|
|
|
- appId: 'wx2c3b0a7f343235b1',
|
|
|
- path: '/pages/tabBar/index/index',
|
|
|
- extraData: {
|
|
|
- data1: 'test'
|
|
|
- },
|
|
|
- envVersion: 'develop',
|
|
|
- success(res) {
|
|
|
- // 打开成功
|
|
|
- console.log(res)
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- },
|
|
|
- onShow() {
|
|
|
- let pages = getCurrentPages()
|
|
|
- let currPage = pages[pages.length - 1]
|
|
|
- if (currPage.data.select == 'select') {
|
|
|
- let address = uni.getStorageSync('selectAddress')
|
|
|
- this.confirmParam.addressId = address.addressId
|
|
|
- this.cartParam.cityId = address.cityId
|
|
|
- this.productParam.cityId = address.cityId
|
|
|
- this.supportParm.cityId = address.cityId
|
|
|
- this.addressData = address
|
|
|
- this.ischecked = false
|
|
|
- this.isRequest = false
|
|
|
- if (this.handleComType === 1) {
|
|
|
- //立即都买提交
|
|
|
- this.GetProductCreateOrderInfo()
|
|
|
- }
|
|
|
- if (this.handleComType === 2) {
|
|
|
- //购物车提交
|
|
|
- this.CartCreateOrderInfo()
|
|
|
- }
|
|
|
- if (this.handleComType === 3) {
|
|
|
- //组合商品提交
|
|
|
- this.GetOrderClubProductSupporting()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang="scss">
|
|
|
-page {
|
|
|
- height: auto;
|
|
|
- background: #f7f7f7;
|
|
|
-}
|
|
|
-.btn-hover {
|
|
|
- background: #ffffff;
|
|
|
-}
|
|
|
-.animation {
|
|
|
- /* transition: transform 0.3s ease;*/
|
|
|
- transition-property: transform;
|
|
|
- transition-duration: 0.3s;
|
|
|
- transition-timing-function: ease;
|
|
|
-}
|
|
|
-.order {
|
|
|
- padding-bottom: 134rpx;
|
|
|
-}
|
|
|
-.invoice-freight {
|
|
|
- width: 702rpx;
|
|
|
- padding: 0 24rpx;
|
|
|
- height: auto;
|
|
|
- font-size: $font-size-28;
|
|
|
- color: $text-color;
|
|
|
- background: #ffffff;
|
|
|
- float: left;
|
|
|
- font-weight: bold;
|
|
|
-}
|
|
|
-.invoice-balance {
|
|
|
- width: 702rpx;
|
|
|
- height: auto;
|
|
|
- padding: 0 24rpx;
|
|
|
- background: #ffffff;
|
|
|
- float: left;
|
|
|
- margin-top: 24rpx;
|
|
|
- margin-bottom: 24rpx;
|
|
|
- .balabce-t {
|
|
|
- width: 100%;
|
|
|
- height: 86rpx;
|
|
|
- line-height: 86rpx;
|
|
|
- font-size: $font-size-28;
|
|
|
- color: $text-color;
|
|
|
- float: left;
|
|
|
- .balabce-t-le {
|
|
|
- float: left;
|
|
|
- font-weight: bold;
|
|
|
- }
|
|
|
- .balabce-t-ri {
|
|
|
- float: right;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- .money {
|
|
|
- display: flex;
|
|
|
- float: left;
|
|
|
- }
|
|
|
- .checkbox-box {
|
|
|
- display: flex;
|
|
|
- width: 60rpx;
|
|
|
- float: left;
|
|
|
- height: 100%;
|
|
|
- font-size: $font-size-24;
|
|
|
- .checkbox {
|
|
|
- width: 40rpx;
|
|
|
- text-align: right;
|
|
|
- box-sizing: border-box;
|
|
|
- text-align: center;
|
|
|
- text-decoration: none;
|
|
|
- border-radius: 0;
|
|
|
- -webkit-tap-highlight-color: transparent;
|
|
|
- overflow: hidden;
|
|
|
- color: $color-system;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .balabce-b {
|
|
|
- width: 100%;
|
|
|
- float: left;
|
|
|
- overflow: hidden;
|
|
|
- .balabce-b-text {
|
|
|
- width: 100%;
|
|
|
- line-height: 58rpx;
|
|
|
- font-size: $font-size-24;
|
|
|
- color: #ff2a2a;
|
|
|
- text-align: right;
|
|
|
- float: right;
|
|
|
- }
|
|
|
- &.balabce-b--hide {
|
|
|
- padding: 0 0;
|
|
|
- height: 0px;
|
|
|
- line-height: 0px;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-.footer-wrapper {
|
|
|
- position: fixed;
|
|
|
- left: 0;
|
|
|
- bottom: 0;
|
|
|
- background-color: #ffffff;
|
|
|
- z-index: 990;
|
|
|
- .footer {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- width: 100%;
|
|
|
- height: 110rpx;
|
|
|
- line-height: 110rpx;
|
|
|
- justify-content: space-between;
|
|
|
- font-size: $font-size-28;
|
|
|
- color: $text-color;
|
|
|
- }
|
|
|
- .footer-le {
|
|
|
- width: 570rpx;
|
|
|
- height: 100%;
|
|
|
- float: left;
|
|
|
- }
|
|
|
- .footer-count {
|
|
|
- float: left;
|
|
|
- padding-left: 24rpx;
|
|
|
- width: 180rpx;
|
|
|
- box-sizing: border-box;
|
|
|
- }
|
|
|
- .footer-price {
|
|
|
- width: 370rpx;
|
|
|
- float: right;
|
|
|
- text-align: right;
|
|
|
- color: $text-color;
|
|
|
- padding: 10rpx 20rpx 10rpx 0;
|
|
|
- box-sizing: border-box;
|
|
|
- .sum-none {
|
|
|
- width: 100%;
|
|
|
- height: 45rpx;
|
|
|
- line-height: 45rpx;
|
|
|
- color: $text-color;
|
|
|
- float: left;
|
|
|
- text-align: right;
|
|
|
- .money {
|
|
|
- font-size: $font-size-26;
|
|
|
- color: #999999;
|
|
|
- text-decoration: line-through;
|
|
|
- }
|
|
|
- .money-sign {
|
|
|
- font-size: $font-size-26;
|
|
|
- color: #999999;
|
|
|
- text-decoration: line-through;
|
|
|
- }
|
|
|
- .money-reduced {
|
|
|
- margin-left: 10rpx;
|
|
|
- font-size: $font-size-26;
|
|
|
- color: #ff2a2a;
|
|
|
- }
|
|
|
- }
|
|
|
- .sum {
|
|
|
- width: 100%;
|
|
|
- height: 45rpx;
|
|
|
- line-height: 45rpx;
|
|
|
- float: left;
|
|
|
- &.none {
|
|
|
- height: 90rpx;
|
|
|
- line-height: 90rpx;
|
|
|
- }
|
|
|
- .price {
|
|
|
- font-size: $font-size-32;
|
|
|
- color: #ff2a2a;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .footer-submit {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- width: 180rpx;
|
|
|
- height: 100%;
|
|
|
- box-sizing: border-box;
|
|
|
- padding: 15rpx 5rpx;
|
|
|
- .btn {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- color: #ffffff;
|
|
|
- background: linear-gradient(135deg, rgba(242, 143, 49, 1) 0%, rgba(225, 86, 22, 1) 100%);
|
|
|
- font-size: $font-size-26;
|
|
|
- text-align: center;
|
|
|
- line-height: 80rpx;
|
|
|
- border-radius: 40rpx;
|
|
|
- &.disabled {
|
|
|
- background: #e4e8eb;
|
|
|
- color: #999999;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-</style>
|
|
|
+<template>
|
|
|
+ <view class="container order clearfix" :style="{ paddingBottom: isIphoneX ? '250rpx' : '214rpx' }">
|
|
|
+ <!-- 地址选择 -->
|
|
|
+ <cm-address-temp ref="choiceAddress" v-if="isRequest" :addressData="addressData" />
|
|
|
+ <!-- 商品 -->
|
|
|
+ <cm-goods-temp ref="goods" v-if="isRequest" :goodsData.sync="goodsData"
|
|
|
+ @handleGoodList="handChangeInputGoodsList" @changeChina="handleChangeChina"
|
|
|
+ @changePostage="handleChangePostage" />
|
|
|
+ <!-- 余额抵扣 -->
|
|
|
+ <view class="invoice-balance" v-show="isRequest && !rechargeGoods">
|
|
|
+ <view class="balabce-t">
|
|
|
+ <view class="balabce-t-le">余额抵扣:</view>
|
|
|
+ <view class="balabce-t-ri">
|
|
|
+ <view class="money">
|
|
|
+ <text>可用余额:</text> <text>¥{{ userMoney | NumFormat }}</text>
|
|
|
+ </view>
|
|
|
+ <view class="checkbox-box" v-if="userMoney !== 0">
|
|
|
+ <button class="checkbox iconfont" hover-class="btn-hover" @click.stop="checkedBalabce"
|
|
|
+ :class="[ischecked ? 'icon-yixuanze' : 'icon-weixuanze']"></button>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="balabce-b" :class="{ 'balabce-b--hide': !ischecked }">
|
|
|
+ <view class="balabce-b-text animation" :style="{
|
|
|
+ transform: ischecked ? 'translateY(0)' : 'translateY(-50%)',
|
|
|
+ '-webkit-transform': ischecked ? 'translateY(0)' : 'translateY(-50%)'
|
|
|
+ }">
|
|
|
+ <text>当前使用:¥{{ deductMoney | NumFormat }},剩余:¥{{ surplusMoney | NumFormat }}</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <!-- 发票信息 -->
|
|
|
+ <cm-invice-popup ref="invoice" v-if="isRequest" :invoiceDatas="invoiceData"
|
|
|
+ @handleChoiceaInvoice="handleChoiceaInvoiceData" />
|
|
|
+ <!-- 订单合同 -->
|
|
|
+ <!-- <cm-contract-temp ref="contract" v-if="isContract" @handleChoiceaInvoice="handleChoiceaInvoiceData" /> -->
|
|
|
+ <!-- 优惠券选择弹窗 -->
|
|
|
+ <cm-coupon-popup ref="coupon" v-if="isCouponShow" :couponList="couponList"
|
|
|
+ @handleChoiceaCoupon="handleChoiceaCouponData" />
|
|
|
+ <!-- 兑换优惠券弹窗 -->
|
|
|
+ <cm-coupon-chang v-if="isExchangePopup" @changeCoupon="handleChangeCoupon" />
|
|
|
+ <!-- 优惠券 -->
|
|
|
+ <cm-coupon-tips ref="coupon-tips" :coupon="ExchangeCouponData" @cancel="handleClickCancel"
|
|
|
+ v-if="isCouponModel" />
|
|
|
+ <!-- 底部 -->
|
|
|
+ <view class="footer-wrapper" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
|
|
|
+ <cm-return-popup v-if="returnGoodsStutas" :content="helpContent" @change="onAgreementChange" />
|
|
|
+ <view class="footer">
|
|
|
+ <view class="footer-le">
|
|
|
+ <view class="footer-count">
|
|
|
+ <text>共{{ totalCount }}件商品</text>
|
|
|
+ </view>
|
|
|
+ <view class="footer-price">
|
|
|
+ <view class="sum" :class="totalDiscountAmount == 0 ? 'none' : ''">
|
|
|
+ 总价:<text class="price">¥{{ orderShouldPayFee | NumFormat }}</text>
|
|
|
+ </view>
|
|
|
+ <view class="sum-none" v-if="totalDiscountAmount > 0">
|
|
|
+ <text class="money-reduced">共减<text>¥{{ totalDiscountAmount | NumFormat }}</text></text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="footer-submit" @click.stop="orderSubmitMit">
|
|
|
+ <view class="btn" :class="isSubLoading ? 'disabled' : ''">提交订单</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <!-- 提示弹窗 -->
|
|
|
+ <tui-modal :show="showModal" @click="handleClick" @cancel="hideMobel" :content="contentModalText"
|
|
|
+ :button="modalButton" color="#333" :size="28" shape="circle" :maskClosable="false" />
|
|
|
+ <tui-modal :show="agreementModel" title="提示" content="请先阅读《特殊商品退货须知》并勾选后再提交订单~" shape="circle" color="#333"
|
|
|
+ :size="28" :button="agreementModelButtons" @click="agreementModel = false" />
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+ import { mapState, mapMutations } from 'vuex'
|
|
|
+ import cmAddressTemp from './components/cm-address-temp'
|
|
|
+ import cmGoodsTemp from './components/cm-goods-temp'
|
|
|
+ import cmInvicePopup from './components/cm-invice-popup'
|
|
|
+ import cmContractTemp from './components/cm-contract-temp'
|
|
|
+ import cmCouponPopup from './components/cm-coupon-popup'
|
|
|
+ import cmCouponChang from './components/cm-coupon-chang'
|
|
|
+ import cmReturnPopup from './components/cm-return-popup'
|
|
|
+ import cmCouponTips from './components/cm-coupon-tips'
|
|
|
+ import conMixins from './mixins/conMixins.js'
|
|
|
+ export default {
|
|
|
+ mixins: [conMixins],
|
|
|
+ components: {
|
|
|
+ cmAddressTemp,
|
|
|
+ cmGoodsTemp,
|
|
|
+ cmInvicePopup,
|
|
|
+ cmCouponPopup,
|
|
|
+ cmContractTemp,
|
|
|
+ cmCouponChang,
|
|
|
+ cmReturnPopup,
|
|
|
+ cmCouponTips
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ isIphoneX: this.$store.state.isIphoneX,
|
|
|
+ isSubLoading: false,
|
|
|
+ confirmType: 1,
|
|
|
+ confirmParam: {
|
|
|
+ cartType: 1, // 购买类型:(1自主下单, 3协销下单)
|
|
|
+ orderMiniType: 0, // 订单提交状态 0初始提交 1 继续提交
|
|
|
+ orderSource: 6, // 订单来源 1WWW 6小程序[采美,星范]
|
|
|
+ addressId: 0, // 收货地址Id
|
|
|
+ clubCouponId: 0, // 关联优惠券Id
|
|
|
+ clubId: 0, // 机构Id
|
|
|
+ orderInfo: [], // 订单商品数据
|
|
|
+ orderInvoice: { type: 0 }, // 订单发票信息
|
|
|
+ payInfo: {
|
|
|
+ // 订单金额数据
|
|
|
+ orderShouldPayFee: 0, // 订单最终支付金额
|
|
|
+ balancePayFlag: 0, // 勾选余额的状态(1使用,0不使用)
|
|
|
+ clauseId: 0, // 条款Id
|
|
|
+ postage: '0.00', // 运费金额
|
|
|
+ postageFlag: 0, // 运费类型
|
|
|
+ userBeans: 0, // 抵扣采美豆数量
|
|
|
+ rebateFlag: 0 // 是否返佣订单
|
|
|
+ },
|
|
|
+ unionId: uni.getStorageSync('unionId') // 用户unionId
|
|
|
+ }, // 提交订单参数
|
|
|
+ productIds: '', // 获取上一级页面商品信息
|
|
|
+ submitState: '', // 提交状态
|
|
|
+ isRequest: false, // 是否加载完成渲染子组件
|
|
|
+ isFreight: false, // 是否加载完成渲染子组件
|
|
|
+ isExchangePopup: false, // 控制兑换优惠券弹窗
|
|
|
+ ischecked: false, // 是否勾选余额
|
|
|
+ addressData: {}, // 初始化地址信息
|
|
|
+ goodsData: [], // 初始化商品信息
|
|
|
+ couponList: [], // 初始化优惠券信息
|
|
|
+ invoiceData: { type: 0 }, // 初始化发票信息
|
|
|
+ freightData: {}, // 邮费数据
|
|
|
+ orderInfo: [], // 提交的商品信息
|
|
|
+ rechargeGoods: null, // 判断订单里有定金商品或者充值商品时,余额抵扣部分不显示
|
|
|
+ freightBeansMoney: 0, // 存储采美豆抵扣金额
|
|
|
+ isCouponShow: false, // 是否显示可选优惠券
|
|
|
+ isCheckedBeans: false, // 是否抵扣采美豆
|
|
|
+ isCouponModel: false, // 兑换优惠券成功提示
|
|
|
+ ExchangeCouponData: {}, // 兑换优惠券信息
|
|
|
+ contentModalText: '采购金额过小,将扣除500采美豆,建议您前往采美旗下“颜选美学”小程序购买小额商品。', //操作文字提示语句
|
|
|
+ modalButton: [{
|
|
|
+ text: '前往颜选美学',
|
|
|
+ type: 'gray',
|
|
|
+ plain: true //是否空心
|
|
|
+ },
|
|
|
+ {
|
|
|
+ text: '继续提交',
|
|
|
+ customStyle: {
|
|
|
+ color: '#fff',
|
|
|
+ bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
|
|
|
+ },
|
|
|
+ plain: false
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ showModal: false,
|
|
|
+ showModalstauts: 0,
|
|
|
+ returnGoodsStutas: false,
|
|
|
+ helpContent: '',
|
|
|
+ agreementActive: false,
|
|
|
+ agreementModel: false,
|
|
|
+ agreementModelButtons: [{
|
|
|
+ text: '确定',
|
|
|
+ customStyle: {
|
|
|
+ color: '#fff',
|
|
|
+ bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
|
|
|
+ },
|
|
|
+ plain: false
|
|
|
+ }],
|
|
|
+ isContract: false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onLoad(option) {
|
|
|
+ //商品数据
|
|
|
+
|
|
|
+ this.initStorage(option)
|
|
|
+ },
|
|
|
+ filters: {
|
|
|
+ NumFormat(value) {
|
|
|
+ //处理金额
|
|
|
+ return Number(value).toFixed(2)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ onAgreementChange(val) {
|
|
|
+ this.agreementActive = val
|
|
|
+ },
|
|
|
+ async initStorage(option) {
|
|
|
+ const data = JSON.parse(option.data)
|
|
|
+ const userInfo = await this.$api.getStorage()
|
|
|
+ this.handleComType = option.type * 1
|
|
|
+ this.productParam.userId = this.cartParam.userId = userInfo.userId
|
|
|
+ this.supportParm.userId = userInfo.userId
|
|
|
+ this.confirmParam.clubId = userInfo.clubId
|
|
|
+ switch (option.type) {
|
|
|
+ case '1': // 商品详情立即购买
|
|
|
+ this.confirmParam.cartType = 2
|
|
|
+ this.productParam.productCount = data.data.productCount
|
|
|
+ this.productParam.productId = data.data.productIds
|
|
|
+ this.productParam.skuId = data.data.skuId
|
|
|
+ this.productIds = data.data.productIds
|
|
|
+ this.getAddressData(userInfo.userId, 1)
|
|
|
+ break
|
|
|
+ case '2': // 购物车结算
|
|
|
+ this.confirmParam.cartType = 1
|
|
|
+ this.confirmType = 2
|
|
|
+ this.cartParam.skuIds = data.data.skuIds
|
|
|
+ this.getAddressData(userInfo.userId, 2)
|
|
|
+ break
|
|
|
+ case '3': // 组合商品立即购买
|
|
|
+ this.confirmParam.cartType = 2
|
|
|
+ this.confirmType = 2
|
|
|
+ this.supportParm.productInfo = JSON.stringify(data.data)
|
|
|
+ this.getAddressData(userInfo.userId, 3)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async getAddressData(userId, type) {
|
|
|
+ //获取地址信息
|
|
|
+ try {
|
|
|
+ const params = { pageNum: 1, pageSize: 1, userId: userId }
|
|
|
+ const res = await this.UserService.QueryAddressList(params)
|
|
|
+ const data = res.data
|
|
|
+ if (data.list && data.list.length > 0) {
|
|
|
+ this.addressData = data.list[0]
|
|
|
+ this.confirmParam.addressId = this.addressData.addressId
|
|
|
+ this.cartParam.cityId = this.addressData.cityId
|
|
|
+ this.productParam.cityId = this.addressData.cityId
|
|
|
+ this.supportParm.cityId = this.addressData.cityId
|
|
|
+ }
|
|
|
+ if (type === 1) {
|
|
|
+ //立即都买提交
|
|
|
+ this.GetProductCreateOrderInfo()
|
|
|
+ }
|
|
|
+ if (type === 2) {
|
|
|
+ //购物车提交
|
|
|
+ this.CartCreateOrderInfo()
|
|
|
+ }
|
|
|
+ if (type === 3) {
|
|
|
+ //组合商品提交
|
|
|
+ this.GetOrderClubProductSupporting()
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log('获取订单地址异常')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 商品立即购买确认订单数据初始化
|
|
|
+ async GetProductCreateOrderInfo() {
|
|
|
+ try {
|
|
|
+ const res = await this.OrderService.ProductCreateOrderInfo(this.productParam)
|
|
|
+ this.setCreatDataInfo(res.data)
|
|
|
+ } catch (error) {
|
|
|
+ this.$util.msg(error.msg, 2000)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 组合商品立即购买确认订单数据初始化
|
|
|
+ async GetOrderClubProductSupporting() {
|
|
|
+ try {
|
|
|
+ const res = await this.OrderService.OrderClubProductSupporting(this.supportParm)
|
|
|
+ this.setCreatDataInfo(res.data)
|
|
|
+ } catch (error) {
|
|
|
+ this.$util.msg(error.msg, 2000)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 购物车去结算确认订单数据初始化
|
|
|
+ async CartCreateOrderInfo() {
|
|
|
+ try {
|
|
|
+ const res = await this.OrderService.CartCreateOrderInfo(this.cartParam)
|
|
|
+ this.setCreatDataInfo(res.data)
|
|
|
+ } catch (error) {
|
|
|
+ this.$util.msg(error.msg, 2000)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 公共初始化数据
|
|
|
+ setCreatDataInfo(data) {
|
|
|
+ this.goodsData = data.list.map(el => {
|
|
|
+ el.handlePostageFlag = el.postageFlag
|
|
|
+ return el
|
|
|
+ })
|
|
|
+ this.isContract = data.list.some(item => item.shopId === 11070)
|
|
|
+ console.log('isContract',this.isContract)
|
|
|
+ this.couponList = data.couponList
|
|
|
+ this.userMoney = data.userMoney
|
|
|
+ this.reducedPrice = data.reducedPrice
|
|
|
+ this.totalCount = data.totalCount
|
|
|
+ this.allPrice = data.totalPrice
|
|
|
+ this.rechargeGoods = data.rechargeGoods
|
|
|
+ if (this.couponList.length > 0) {
|
|
|
+ this.isCouponShow = true
|
|
|
+ this.couponAmount = data.couponList[0].couponAmount
|
|
|
+ this.confirmParam.clubCouponId = data.couponList[0].clubCouponId
|
|
|
+ }
|
|
|
+ this.orderShouldPayFee = this.allPrice - this.couponAmount
|
|
|
+ // 特殊商品退货须知
|
|
|
+ this.returnGoodsStutas = data.returnGoodsStutas && data.returnGoodsStutas === 2 // 1:可以 2:不可以
|
|
|
+ this.helpContent = data.helpContent
|
|
|
+ this.isRequest = true
|
|
|
+
|
|
|
+ },
|
|
|
+ async getFreightData() {
|
|
|
+ // 获取邮费信息
|
|
|
+ try {
|
|
|
+ this.isFreight = false
|
|
|
+ const res = await this.OrderService.GetOrderPostage(this.postageParam)
|
|
|
+ const data = res.data
|
|
|
+ this.isFreight = true
|
|
|
+ this.isCheckedBeans = false
|
|
|
+ this.freightData = data
|
|
|
+ this.hanldFreePostFlag = data.postageFlag
|
|
|
+ this.hanldFreight = data.postage
|
|
|
+ if (this.hanldFreePostFlag == 1) {
|
|
|
+ if (this.freightData.userBeans > 0) {
|
|
|
+ this.freightBeansMoney = this.hanldFreight
|
|
|
+ } else {
|
|
|
+ this.freightBeansMoney = 0
|
|
|
+ }
|
|
|
+ this.orderShouldPayFee = this.allPrice + data.postage
|
|
|
+ this.attributePallPrice()
|
|
|
+ this.hanldFreightBeans(this.isCheckedBeans)
|
|
|
+ } else {
|
|
|
+ if (this.freightData.userBeans > 0) {
|
|
|
+ this.freightBeansMoney = 30
|
|
|
+ } else {
|
|
|
+ this.freightBeansMoney = 0
|
|
|
+ }
|
|
|
+ this.orderShouldPayFee = this.allPrice
|
|
|
+ this.attributePallPrice()
|
|
|
+ this.hanldFreightBeans(this.isCheckedBeans)
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log('获取订单运费异常')
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ handChangeInputGoodsList(data) {
|
|
|
+ //对应供应商的留言信息
|
|
|
+ this.goodsData = data
|
|
|
+ },
|
|
|
+ handleChoiceaInvoiceData(data) {
|
|
|
+ //获取发票信息
|
|
|
+ this.confirmParam.orderInvoice = data
|
|
|
+ },
|
|
|
+ hanldFreightBeans(data) {
|
|
|
+ //是否勾选采美豆抵扣
|
|
|
+ this.isCheckedBeans = data
|
|
|
+ console.log(this.confirmParam.payInfo)
|
|
|
+ if (this.isCheckedBeans) {
|
|
|
+ // 判断如果采美豆大于等于运费*100
|
|
|
+ if (this.freightData.userBeans > 0) {
|
|
|
+ this.confirmParam.payInfo.userBeans = this.freightBeansMoney * 100
|
|
|
+ } else {
|
|
|
+ this.confirmParam.payInfo.userBeans = 0
|
|
|
+ }
|
|
|
+ // 计算抵扣后的总价
|
|
|
+ if (this.hanldFreePostFlag == 1) {
|
|
|
+ // 如果使用了余额 最终价格
|
|
|
+ if (this.ischecked) {
|
|
|
+ let totalAmount = this.allPrice - this.couponAmount
|
|
|
+ if (this.userMoney >= totalAmount) {
|
|
|
+ this.orderShouldPayFee = 0.0
|
|
|
+ this.deductMoney = this.allPrice - this.couponAmount // 当前使用金额等于订单金额
|
|
|
+ this.surplusMoney = this.userMoney - this.deductMoney // 剩余金额等于余额-当前使用金额
|
|
|
+ } else {
|
|
|
+ this.orderShouldPayFee = this.allPrice - this.userMoney - this
|
|
|
+ .couponAmount // 订单最终支付金额等于订单金额-账户余额
|
|
|
+ this.deductMoney = this.userMoney // 当前使用金额等于总余额
|
|
|
+ this.surplusMoney = this.userMoney - this.deductMoney // 剩余余额等于总余额-当前使用金额
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.orderShouldPayFee =
|
|
|
+ this.allPrice + this.hanldFreight - this.freightBeansMoney - this.couponAmount
|
|
|
+ }
|
|
|
+ console.log('抵扣', this.orderShouldPayFee)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 采美豆不抵扣运费
|
|
|
+ this.confirmParam.payInfo.userBeans = 0
|
|
|
+ // 不抵扣时计算总价
|
|
|
+ if (this.hanldFreePostFlag == 1) {
|
|
|
+ this.attributeHashfreight(this.hanldFreight)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleChoiceaCouponData(data) {
|
|
|
+ // 勾选使用优惠券
|
|
|
+ console.log('优惠券信息', data)
|
|
|
+ this.couponAmount = data.couponAmount
|
|
|
+ this.confirmParam.clubCouponId = data.clubCouponId
|
|
|
+ this.attributePallPrice()
|
|
|
+ // this.hanldFreightBeans(this.isCheckedBeans)
|
|
|
+ },
|
|
|
+ attributeHashfreight() {
|
|
|
+ // 计算需要邮费的支付价格
|
|
|
+ let totalAmount = this.allPrice - this.couponAmount //计算不包邮的价格 总价等于商品价格+邮费
|
|
|
+ if (this.ischecked) {
|
|
|
+ if (this.userMoney >= totalAmount) {
|
|
|
+ // 全部抵扣
|
|
|
+ this.orderShouldPayFee = 0.0
|
|
|
+ if (this.isCheckedBeans) {
|
|
|
+ // 抵扣运费了
|
|
|
+ this.deductMoney = this.allPrice - this.couponAmount // 当前使用金额等于订单金额
|
|
|
+ this.surplusMoney = this.userMoney - this.deductMoney // 剩余金额等于余额减去当前使用金额
|
|
|
+ } else {
|
|
|
+ this.deductMoney = this.allPrice - this.couponAmount // 当前使用金额等于订单金额+运费金额
|
|
|
+ this.surplusMoney = this.userMoney - this.deductMoney // 剩余余额等于总余额-当前使用金额
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 部分抵扣
|
|
|
+ if (this.isCheckedBeans) {
|
|
|
+ // 抵扣运费了
|
|
|
+ this.orderShouldPayFee = this.allPrice - this.userMoney - this
|
|
|
+ .couponAmount // 订单最终支付金额等于总订单金额-账户余额-优惠券金额
|
|
|
+ this.deductMoney = this.userMoney // 当前使用金额等于账户余额
|
|
|
+ this.surplusMoney = this.userMoney - this.deductMoney // 剩余余额等于账户余额-当前使用金额
|
|
|
+ } else {
|
|
|
+ this.orderShouldPayFee = this.allPrice - this.userMoney - this
|
|
|
+ .couponAmount //订单支付金额等于订单金额+运费-账户余额-优惠券
|
|
|
+ this.deductMoney = this.userMoney // 当前使用金额等于账户余额
|
|
|
+ this.surplusMoney = this.userMoney - this.deductMoney // 剩余余额等于账户余额-当前使用金额
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.orderShouldPayFee = this.allPrice - this.couponAmount
|
|
|
+ this.deductMoney = 0.0 // 当前使用金额
|
|
|
+ this.surplusMoney = this.userMoney // 剩余余额
|
|
|
+ }
|
|
|
+ console.log('最终订单支付金额', this.orderShouldPayFee)
|
|
|
+ console.log('优惠券金额', this.couponAmount)
|
|
|
+ },
|
|
|
+ orderSubmitMit() {
|
|
|
+ // 提交订单按钮点击事件
|
|
|
+ if (this.returnGoodsStutas && !this.agreementActive) {
|
|
|
+ this.agreementModel = true
|
|
|
+ } else {
|
|
|
+ this.handleClickOrderSubmitMit()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleClickOrderSubmitMit() {
|
|
|
+ // 提交订单
|
|
|
+ if (this.isSubLoading) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.confirmParam.addressId == '') {
|
|
|
+ this.$util.msg('请先添加收货地址~', 2000)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.confirmParam.orderInfo = this.hanldeProcessing()
|
|
|
+ this.confirmParam.payInfo.orderShouldPayFee = this.orderShouldPayFee.toFixed(2)
|
|
|
+ this.confirmParam.payInfo = JSON.stringify(this.confirmParam.payInfo)
|
|
|
+ this.confirmParam.orderInfo = JSON.stringify(this.confirmParam.orderInfo)
|
|
|
+ this.confirmParam.orderInvoice = JSON.stringify(this.confirmParam.orderInvoice)
|
|
|
+ console.log(this.confirmParam)
|
|
|
+ this.isSubLoading = true
|
|
|
+ this.hanldeOrderSubmit(this.confirmParam)
|
|
|
+ },
|
|
|
+ // 处理数据格式
|
|
|
+ hanldeProcessing() {
|
|
|
+ return this.goodsData.map(el => {
|
|
|
+ let productInfo = []
|
|
|
+ el.cartList.forEach(pros => {
|
|
|
+ productInfo.push({
|
|
|
+ skuId: pros.skuId,
|
|
|
+ productNum: pros.number,
|
|
|
+ presentNum: 0,
|
|
|
+ productType: pros.giftType
|
|
|
+ })
|
|
|
+ })
|
|
|
+ return {
|
|
|
+ splitCode: el.splitCode,
|
|
|
+ shopId: el.shopId,
|
|
|
+ note: el.note ? el.note : '',
|
|
|
+ postage: el.isColdChina ?
|
|
|
+ parseInt(el.postage + el.coldChain).toFixed(2) :
|
|
|
+ parseInt(el.postage).toFixed(2),
|
|
|
+ postageFlag: parseInt(el.handlePostageFlag),
|
|
|
+ isColdChina: el.isColdChina ? 1 : 0,
|
|
|
+ productInfo: productInfo
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 提交订单
|
|
|
+ async hanldeOrderSubmit(params) {
|
|
|
+ try {
|
|
|
+ const res = await this.OrderService.CreatedOrderSubmit(params)
|
|
|
+ const data = res.data
|
|
|
+ // 友盟埋点收集机构自主提交订单
|
|
|
+ if (process.env.NODE_ENV != 'development') {
|
|
|
+ this.$uma.trackEvent('Um_Event_ConfirmOrder', {
|
|
|
+ Um_Key_PageName: '机构提交订单',
|
|
|
+ Um_Key_SourcePage: '确认订单',
|
|
|
+ Um_Key_OrderID: `${data.orderId}`
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (data.code === 1) {
|
|
|
+ this.submitState = 'success'
|
|
|
+ setTimeout(() => {
|
|
|
+ this.isSubLoading = false
|
|
|
+ }, 2000)
|
|
|
+ this.$api.redirectTo(
|
|
|
+ `/pages/user/order/success?data=${JSON.stringify({ data: { orderId: data.orderId } })}`
|
|
|
+ )
|
|
|
+ } else {
|
|
|
+ this.submitState = 'confirm'
|
|
|
+ this.$util.msg('订单提交成功', 2000, true, 'success')
|
|
|
+ setTimeout(() => {
|
|
|
+ this.isSubLoading = false
|
|
|
+ this.$api.redirectTo(`/pages/user/order/order-pay-list?orderId=${data.orderId}`)
|
|
|
+ }, 2000)
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ this.isSubLoading = false
|
|
|
+ this.handleError(error)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleError(data) {
|
|
|
+ // 提交订单异常处理
|
|
|
+ const buttonMap = {
|
|
|
+ 1: {
|
|
|
+ contentModalText: '您已有2个采购金额过小的订单,本次不能再进行采购。建议您前往采美旗下“颜选美学”小程序购买小额商品。',
|
|
|
+ modalButton: [
|
|
|
+ { text: '了解', type: 'gray', plain: true },
|
|
|
+ {
|
|
|
+ text: '前往颜选美学',
|
|
|
+ customStyle: { color: '#fff',
|
|
|
+ bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },
|
|
|
+ plain: false
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ 2: {
|
|
|
+ contentModalText: '采美豆不足,不能提交订单。建议您前往采美旗下“颜选美学”小程序购买小额商品。',
|
|
|
+ modalButton: [
|
|
|
+ { text: '了解', type: 'gray', plain: true },
|
|
|
+ {
|
|
|
+ text: '前往颜选美学',
|
|
|
+ customStyle: { color: '#fff',
|
|
|
+ bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },
|
|
|
+ plain: false
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ 3: {
|
|
|
+ contentModalText: '采购金额过小,将扣除500采美豆,建议您前往采美旗下“颜选美学”小程序购买小额商品。',
|
|
|
+ modalButton: [
|
|
|
+ { text: '前往颜选美学', type: 'gray', plain: true },
|
|
|
+ {
|
|
|
+ text: '继续提交',
|
|
|
+ customStyle: { color: '#fff',
|
|
|
+ bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },
|
|
|
+ plain: false
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ 4: {
|
|
|
+ contentModalText: '订单内存在械字号三类商品,需要拥有医疗执业许可证的医美机构才能购买。建议升级医美机构后再下单,否则会导致订单退款或影响发货。',
|
|
|
+ modalButton: [
|
|
|
+ { text: '继续提交', type: 'gray', plain: true },
|
|
|
+ {
|
|
|
+ text: '去升级',
|
|
|
+ customStyle: { color: '#fff',
|
|
|
+ bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },
|
|
|
+ plain: false
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (data.code === -3) {
|
|
|
+ // 已提交2个小于1000元的订单提示
|
|
|
+ this.showModal = true
|
|
|
+ this.showModalstauts = 3
|
|
|
+ this.contentModalText = buttonMap[1].contentModalText
|
|
|
+ this.modalButton = buttonMap[1].modalButton
|
|
|
+ this.formatConfirmParam()
|
|
|
+ } else if (data.code === -4) {
|
|
|
+ // 采美豆为负数
|
|
|
+ this.showModal = true
|
|
|
+ this.showModalstauts = 3
|
|
|
+ this.contentModalText = buttonMap[2].contentModalText
|
|
|
+ this.modalButton = buttonMap[2].modalButton
|
|
|
+ this.formatConfirmParam()
|
|
|
+ } else if (data.code === -5) {
|
|
|
+ // 订单总金额低于500
|
|
|
+ this.showModal = true
|
|
|
+ this.showModalstauts = 1
|
|
|
+ this.contentModalText = buttonMap[3].contentModalText
|
|
|
+ this.modalButton = buttonMap[3].modalButton
|
|
|
+ this.formatConfirmParam()
|
|
|
+ } else if (data.code === -6) {
|
|
|
+ // 非医美机构下三类商品订单
|
|
|
+ this.showModal = true
|
|
|
+ this.showModalstauts = 2
|
|
|
+ this.contentModalText = buttonMap[4].contentModalText
|
|
|
+ this.modalButton = buttonMap[4].modalButton
|
|
|
+ this.formatConfirmParam()
|
|
|
+ } else {
|
|
|
+ this.$util.msg(data.msg, 3000)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ formatConfirmParam() {
|
|
|
+ // 还原提交订单参数格式
|
|
|
+ this.confirmParam.payInfo = JSON.parse(this.confirmParam.payInfo)
|
|
|
+ this.confirmParam.orderInfo = JSON.parse(this.confirmParam.orderInfo)
|
|
|
+ this.confirmParam.orderInvoice = JSON.parse(this.confirmParam.orderInvoice)
|
|
|
+ },
|
|
|
+ handleChangeCoupon(data) {
|
|
|
+ this.ExchangeCouponData = data
|
|
|
+ this.isExchangePopup = false
|
|
|
+ this.isCouponModel = true
|
|
|
+ this.getInitCrearOrder()
|
|
|
+ },
|
|
|
+ handleClickCancel() {
|
|
|
+ // 关闭优惠券弹窗
|
|
|
+ this.isCouponModel = false
|
|
|
+ if (this.confirmType == 1) {
|
|
|
+ this.GetProductCreateOrderInfo()
|
|
|
+ } else {
|
|
|
+ this.CartCreateOrderInfo()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleClick(e) {
|
|
|
+ // 采购量过小提示弹窗
|
|
|
+ if (e.index === 1) {
|
|
|
+ if (this.showModalstauts === 1) {
|
|
|
+ this.showModal = false
|
|
|
+ this.confirmParam.orderMiniType = 1
|
|
|
+ this.handleClickOrderSubmitMit()
|
|
|
+ } else if (this.showModalstauts === 2) {
|
|
|
+ this.showModal = false
|
|
|
+ this.isSubLoading = false
|
|
|
+ this.$api.navigateTo('/pages/login/apply')
|
|
|
+ } else {
|
|
|
+ this.showModal = false
|
|
|
+ this.handleClickHeHeMiniApplet()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (this.showModalstauts == 1) {
|
|
|
+ this.showModal = false
|
|
|
+ this.handleClickHeHeMiniApplet()
|
|
|
+ } else if (this.showModalstauts === 2) {
|
|
|
+ this.showModal = false
|
|
|
+ this.confirmParam.orderMiniType = 2
|
|
|
+ this.handleClickOrderSubmitMit()
|
|
|
+ } else {
|
|
|
+ this.showModal = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleClickHeHeMiniApplet() {
|
|
|
+ // 跳转颜选美学小程序
|
|
|
+ uni.navigateToMiniProgram({
|
|
|
+ appId: 'wx2c3b0a7f343235b1',
|
|
|
+ path: '/pages/tabBar/index/index',
|
|
|
+ extraData: {
|
|
|
+ data1: 'test'
|
|
|
+ },
|
|
|
+ envVersion: 'develop',
|
|
|
+ success(res) {
|
|
|
+ // 打开成功
|
|
|
+ console.log(res)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onShow() {
|
|
|
+ let pages = getCurrentPages()
|
|
|
+ let currPage = pages[pages.length - 1]
|
|
|
+ if (currPage.data.select == 'select') {
|
|
|
+ let address = uni.getStorageSync('selectAddress')
|
|
|
+ this.confirmParam.addressId = address.addressId
|
|
|
+ this.cartParam.cityId = address.cityId
|
|
|
+ this.productParam.cityId = address.cityId
|
|
|
+ this.supportParm.cityId = address.cityId
|
|
|
+ this.addressData = address
|
|
|
+ this.ischecked = false
|
|
|
+ this.isRequest = false
|
|
|
+ if (this.handleComType === 1) {
|
|
|
+ //立即都买提交
|
|
|
+ this.GetProductCreateOrderInfo()
|
|
|
+ }
|
|
|
+ if (this.handleComType === 2) {
|
|
|
+ //购物车提交
|
|
|
+ this.CartCreateOrderInfo()
|
|
|
+ }
|
|
|
+ if (this.handleComType === 3) {
|
|
|
+ //组合商品提交
|
|
|
+ this.GetOrderClubProductSupporting()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss">
|
|
|
+ page {
|
|
|
+ height: auto;
|
|
|
+ background: #f7f7f7;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn-hover {
|
|
|
+ background: #ffffff;
|
|
|
+ }
|
|
|
+
|
|
|
+ .animation {
|
|
|
+ /* transition: transform 0.3s ease;*/
|
|
|
+ transition-property: transform;
|
|
|
+ transition-duration: 0.3s;
|
|
|
+ transition-timing-function: ease;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order {
|
|
|
+ padding-bottom: 134rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .invoice-freight {
|
|
|
+ width: 702rpx;
|
|
|
+ padding: 0 24rpx;
|
|
|
+ height: auto;
|
|
|
+ font-size: $font-size-28;
|
|
|
+ color: $text-color;
|
|
|
+ background: #ffffff;
|
|
|
+ float: left;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+
|
|
|
+ .invoice-balance {
|
|
|
+ width: 702rpx;
|
|
|
+ height: auto;
|
|
|
+ padding: 0 24rpx;
|
|
|
+ background: #ffffff;
|
|
|
+ float: left;
|
|
|
+ margin-top: 24rpx;
|
|
|
+ margin-bottom: 24rpx;
|
|
|
+
|
|
|
+ .balabce-t {
|
|
|
+ width: 100%;
|
|
|
+ height: 86rpx;
|
|
|
+ line-height: 86rpx;
|
|
|
+ font-size: $font-size-28;
|
|
|
+ color: $text-color;
|
|
|
+ float: left;
|
|
|
+
|
|
|
+ .balabce-t-le {
|
|
|
+ float: left;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+
|
|
|
+ .balabce-t-ri {
|
|
|
+ float: right;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .money {
|
|
|
+ display: flex;
|
|
|
+ float: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .checkbox-box {
|
|
|
+ display: flex;
|
|
|
+ width: 60rpx;
|
|
|
+ float: left;
|
|
|
+ height: 100%;
|
|
|
+ font-size: $font-size-24;
|
|
|
+
|
|
|
+ .checkbox {
|
|
|
+ width: 40rpx;
|
|
|
+ text-align: right;
|
|
|
+ box-sizing: border-box;
|
|
|
+ text-align: center;
|
|
|
+ text-decoration: none;
|
|
|
+ border-radius: 0;
|
|
|
+ -webkit-tap-highlight-color: transparent;
|
|
|
+ overflow: hidden;
|
|
|
+ color: $color-system;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .balabce-b {
|
|
|
+ width: 100%;
|
|
|
+ float: left;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ .balabce-b-text {
|
|
|
+ width: 100%;
|
|
|
+ line-height: 58rpx;
|
|
|
+ font-size: $font-size-24;
|
|
|
+ color: #ff2a2a;
|
|
|
+ text-align: right;
|
|
|
+ float: right;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.balabce-b--hide {
|
|
|
+ padding: 0 0;
|
|
|
+ height: 0px;
|
|
|
+ line-height: 0px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .footer-wrapper {
|
|
|
+ position: fixed;
|
|
|
+ left: 0;
|
|
|
+ bottom: 0;
|
|
|
+ background-color: #ffffff;
|
|
|
+ z-index: 990;
|
|
|
+
|
|
|
+ .footer {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 110rpx;
|
|
|
+ line-height: 110rpx;
|
|
|
+ justify-content: space-between;
|
|
|
+ font-size: $font-size-28;
|
|
|
+ color: $text-color;
|
|
|
+ }
|
|
|
+
|
|
|
+ .footer-le {
|
|
|
+ width: 570rpx;
|
|
|
+ height: 100%;
|
|
|
+ float: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .footer-count {
|
|
|
+ float: left;
|
|
|
+ padding-left: 24rpx;
|
|
|
+ width: 180rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+
|
|
|
+ .footer-price {
|
|
|
+ width: 370rpx;
|
|
|
+ float: right;
|
|
|
+ text-align: right;
|
|
|
+ color: $text-color;
|
|
|
+ padding: 10rpx 20rpx 10rpx 0;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ .sum-none {
|
|
|
+ width: 100%;
|
|
|
+ height: 45rpx;
|
|
|
+ line-height: 45rpx;
|
|
|
+ color: $text-color;
|
|
|
+ float: left;
|
|
|
+ text-align: right;
|
|
|
+
|
|
|
+ .money {
|
|
|
+ font-size: $font-size-26;
|
|
|
+ color: #999999;
|
|
|
+ text-decoration: line-through;
|
|
|
+ }
|
|
|
+
|
|
|
+ .money-sign {
|
|
|
+ font-size: $font-size-26;
|
|
|
+ color: #999999;
|
|
|
+ text-decoration: line-through;
|
|
|
+ }
|
|
|
+
|
|
|
+ .money-reduced {
|
|
|
+ margin-left: 10rpx;
|
|
|
+ font-size: $font-size-26;
|
|
|
+ color: #ff2a2a;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .sum {
|
|
|
+ width: 100%;
|
|
|
+ height: 45rpx;
|
|
|
+ line-height: 45rpx;
|
|
|
+ float: left;
|
|
|
+
|
|
|
+ &.none {
|
|
|
+ height: 90rpx;
|
|
|
+ line-height: 90rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .price {
|
|
|
+ font-size: $font-size-32;
|
|
|
+ color: #ff2a2a;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .footer-submit {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 180rpx;
|
|
|
+ height: 100%;
|
|
|
+ box-sizing: border-box;
|
|
|
+ padding: 15rpx 5rpx;
|
|
|
+
|
|
|
+ .btn {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ color: #ffffff;
|
|
|
+ background: linear-gradient(135deg, rgba(242, 143, 49, 1) 0%, rgba(225, 86, 22, 1) 100%);
|
|
|
+ font-size: $font-size-26;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 80rpx;
|
|
|
+ border-radius: 40rpx;
|
|
|
+
|
|
|
+ &.disabled {
|
|
|
+ background: #e4e8eb;
|
|
|
+ color: #999999;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|