123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843 |
- const defaultProductParam = {
- productCount:0, // 商品数量
- productId:0, // 商品Id
- source:1, // 来源:1WWW 2小程序
- userId:0 // 用户Id
- };
- const defaultCartParam = {
- productIds:0, // 商品Id(逗号隔开)
- source:1, // 来源:1WWW 2小程序
- userId:0 // 用户Id
- };
- const defaultPostageParam = {
- productIds:0, // 商品Id(逗号隔开)
- userId:0, // 用户Id
- townId:0 // 地区Id
- };
- const defaultConfirmParam = {
- cartType:1, // 购买类型:(1自主下单, 3协销下单)
- orderSource:1, // 订单来源 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, // 运费金额
- postageFlag: 0, // 运费类型
- userBeans: 0, // 抵扣采美豆数量
- rebateFlag:0 // 是否返佣订单
- }
- };
- var shoppingConfirm = new Vue({
- el: "#shoppingConfirm",
- data: {
- userId: 0,
- userIdentity: '',
- userToken: '',
- type: '',
- productIds: '',
- listData: [],
- kindCount: 0,
- totalCount: 0,
- totalPrice: 0,
- reducedPrice: 0, // 满减金额
- couponAmount:0, // 优惠券金额
- totalDiscountAmount:0, // 共减金额
- cartParam: Object.assign({}, defaultCartParam), // 购物车立即结算确认订单参数
- productParam: Object.assign({}, defaultProductParam), // 商品立即购买确认订单参数
- postageParam: Object.assign({}, defaultPostageParam), // 邮费计算参数
- confirmParam: Object.assign({}, defaultConfirmParam), // 提交订单参数
- supportParm:{// 组合商品立即购买确认订单参数
- productInfo:'',
- source:2, // 来源:1WWW 2小程序
- userId:0 // 用户Id
- },
- address: {
- id: '',
- townId: '',
- cityId: '',
- provinceId: '',
- name: '',
- mobile: '',
- desc: '',
- town: '',
- city: '',
- province: '',
- default: '',
- selectedId: ''
- },
- orderInvoice:{ // 订单发票信息
- id:0,
- type: 0,
- invoiceTitleType: 0, // 发票抬头类型 1企业 0个人
- invoiceTitle: '', // 单位名称
- corporationTaxNum:'', // 纳税人识别号
- registeredAddress: '',// 单位地址
- registeredPhone:'', // 注册电话
- openBank:'', // 开户银行
- bankAccountNo: '', // 银行账号
- },
- addressList: [],
- isShowAddressList: false,
- isShowAddressForm: false,
- addressForm: {
- id: '',
- name: '',
- mobile: '',
- townId: '',
- cityId: '',
- provinceId: '',
- desc: '',
- default: ''
- },
- provinceOptions:[],
- cityOptions:[],
- townOptions:[],
- saveLoading: false,
- rule:{
- name: '^[a-zA-Z\\u4e00-\\u9fa5]{2,}$',
- mobile: '^\\d{6,12}$'
- },
- balance: {
- isFreight:false, //使用采美豆抵扣运费
- flag: false, //使用余额抵扣
- originUserMoney: 0, //初始化后不能改变,用于还原余额抵扣
- userMoney: 0, //显示可使用余额
- deductMoney: 0, //显示已使用的余额
- surplusMoney: 0 //显示勾选后的剩余抵扣
- },
- isBeansShow:false,
- userBeans:0,
- hanldPostage:0,
- hanldPostageFlag:0,
- hanldShouldPayFee:0,
- freightBeansMoney:0,
- freightMoney:0,
- deductionBeans:0,
- submitLoading: false,
- checkedIndex:null,
- couponList:[], // 可用优惠券列表
- isCouponShow:false,
- svipReducedPrice: 0, //超级会员优惠金额
- isModelAlert:false, // 订单不足提示弹窗
- isModelAlertText:'',
- isShowConfirm:true
- },
- computed: {
- },
- filters: {
- NumFormat:function(num) {
- var temp = String(num).split('.');
- if (temp.length === 1 || temp[1].length < 2) {
- return Number(num).toFixed(2);
- }else{
- return Number(num);
- }
- },
- TypeFormat:function(value) {
- switch (value) {
- case 0:
- return '活动券';
- break;
- case 1:
- return '品类券';
- break;
- case 2:
- return '用户专享券';
- break;
- case 3:
- return '店铺券';
- break;
- case 4:
- return '新用户券';
- break;
- }
- }
- },
- methods: {
- blurHandle: function(event) {
- var el = event.currentTarget;
- verifyHandle(el);
- },
- getProductCreateOrderInfo:function(){// 商品立即购买确认订单初始化
- var _self = this;
- if(_self.userId ===0){return;}
- OrderApi.ProductCreateOrderInfo(_self.productParam,function(response){
- if (response.code === 0 ) {
- _self.setCreatDataInfo(response.data)
- }else{
- CAIMEI.Alert(r.msg, '确定', false);
- }
- });
- },
- OrderClubProductSupporting:function(){// 组合商品确认订单初始化
- var _self = this;
- if(_self.userId ===0){return;}
- OrderApi.OrderClubProductSupporting(_self.supportParm,function(response){
- if (response.code === 0 ) {
- _self.setCreatDataInfo(response.data)
- }else{
- CAIMEI.Alert(r.msg, '确定', false);
- }
- });
- },
- getCartCreateOrderInfo: function () {// 购物车去结算确认订单初始化
- var _self = this;
- if(_self.userId ===0){return;}
- OrderApi.GetOrderConfirmInfo(_self.cartParam,function(response){
- if (response.code === 0 ) {
- _self.setCreatDataInfo(response.data)
- }else{
- CAIMEI.Alert(r.msg, '确定', false);
- }
- });
- },
- setCreatDataInfo(data){
- var _self = this;
- _self.listData = data.list;
- _self.totalPrice = data.totalPrice;
- _self.reducedPrice = data.reducedPrice;
- _self.totalCount = data.totalCount;
- _self.kindCount = data.kindCount;
- _self.balance.userMoney = data.userMoney;
- _self.balance.originUserMoney = data.userMoney;
- _self.hanldShouldPayFee = data.totalPrice;
- _self.svipReducedPrice = data.svipReducedPrice;
- _self.postageParam.productIds = _self.getProductIds(data.list); // 获取订单商品id列表 以 , 隔开
- _self.getAddressList(_self.userId,20);
- console.log('邮费接口数据', _self.postageParam)
- if( data.couponList && data.couponList.length>0){
- _self.isCouponShow = true;
- _self.couponAmount = data.couponList[0].couponAmount;
- _self.confirmParam.clubCouponId = data.couponList[0].clubCouponId;
- data.couponList.forEach((el) => {
- _self.couponList.push(Object.assign(el,{ischecked:false}))
- })
- _self.couponList[0].ischecked = true;
- _self.hanldShouldPayFee = data.totalPrice - _self.couponAmount;
- }
- _self.totalDiscountAmount = _self.reducedPrice + _self.couponAmount;
- if(data.invoice){
- data.invoice.type = 0;
- _self.orderInvoice = data.invoice;
- }
- },
- getFreight: function(){// 获取邮费
- var _self = this;
- console.log(_self.postageParam, '邮费接口调用')
- OrderApi.GetOrderPostage(_self.postageParam,function (r) {
- if(r.code === 0 && r.data){
- _self.confirmParam.payInfo.postageFlag = _self.hanldPostageFlag = r.data.postageFlag;
- _self.userBeans = r.data.userBeans;
- _self.confirmParam.payInfo.postage = _self.hanldPostage = (r.data.postageFlag=== 1 ? r.data.postage : 0);
- _self.hanldShouldPayFee = _self.totalPrice + _self.confirmParam.payInfo.postage - _self.couponAmount;
- switch ( _self.confirmParam.payInfo.postageFlag) {
- case 1:
- if( _self.userBeans > 0 ){
- _self.freightBeansMoney = r.data.postage;
- _self.freightMoney = r.data.postage;
- _self.isBeansShow = true;
- }else{
- _self.freightBeansMoney = 0;
- _self.balance.isFreight = false;
- _self.isBeansShow = false;
- }
- if(r.data.userBeans >= _self.freightBeansMoney*100){
- _self.deductionBeans = _self.freightBeansMoney*100
- }else{
- _self.deductionBeans = _self.userBeans
- }
- _self.changeDeductibleFreight();
- break;
- case -1:
- if( _self.userBeans > 0 ){
- _self.freightMoney = '到付';
- _self.freightBeansMoney = 30;
- _self.isBeansShow = true;
- }else{
- _self.freightBeansMoney = 0;
- _self.balance.isFreight = false;
- _self.isBeansShow = false;
- }
- if(r.data.userBeans >= _self.freightBeansMoney*100){
- _self.deductionBeans = _self.freightBeansMoney*100
- }else{
- _self.deductionBeans = _self.userBeans
- }
- _self.changeDeductibleFreight();
- break;
- }
- }else{
- CAIMEI.Alert(r.msg, '确定', false);
- }
- })
- },
- getAddressList: function(userId,pageSize){ // 获取收货地址
- var _self = this;
- OrderApi.GetAddressList({
- userId:userId,
- pageNum:1,
- pageSize:pageSize
- },function (res) {
- if(res.code === 0 && res.data){
- if(res.data.list){
- _self.addressList = res.data.list;
- _self.address.id = res.data.list[0].addressId;
- _self.confirmParam.addressId = res.data.list[0].addressId;
- _self.address.townId = res.data.list[0].townId;
- _self.postageParam.townId = res.data.list[0].townId;
- _self.address.cityId = res.data.list[0].cityId;
- _self.address.provinceId = res.data.list[0].provinceId;
- _self.address.name = res.data.list[0].receiver;
- _self.address.mobile = res.data.list[0].mobile;
- _self.address.desc = res.data.list[0].address;
- _self.address.town = res.data.list[0].town;
- _self.address.city = res.data.list[0].city;
- _self.address.province = res.data.list[0].province;
- _self.address.default = true;
- _self.address.selectedId = res.data.list[0].addressId;
- _self.getFreight(_self.address.townId);
- }else{
- _self.createAddress();
- }
- _self.getProvinceOptions();
- }else {
- CAIMEI.Alert(res.msg, '确定', false);
- _self.createAddress();
- }
- })
- },
- getProvinceOptions: function(){ // 获取全部省份
- var _self = this;
- OrderApi.GetAddressSelect({},function(res){
- if(res.code === 0 && res.data){
- _self.provinceOptions =res.data;
- }else{
- CAIMEI.Alert(res.msg,'确定',false);
- }
- });
- },
- getCityOptions: function(parentId,callback){// 获取地区
- var _self = this;
- if(parentId && parentId>0){
- _self.cityOptions = [];
- _self.townOptions = [];
- _self.addressForm.cityId = '';
- _self.addressForm.townId = '';
- OrderApi.GetAddressSelect({ parentId: parentId,type:1 },function(res){
- if(res.code === 0 && res.data){
- _self.cityOptions = res.data;
- if(callback){callback();}
- }else{
- CAIMEI.Alert(res.msg,'确定',false);
- }
- });
- }
- },
- getTownOptions: function(parentId, callback){
- var _self = this;
- if(parentId && parentId>0){
- _self.townOptions = [];
- _self.addressForm.townId = '';
- OrderApi.GetAddressSelect({parentId: parentId,type:2},function(res){
- if(res.code === 0 && res.data){
- _self.townOptions = res.data;
- if(callback){callback();}
- }else{
- CAIMEI.Alert(res.msg,'确定',false);
- }
- })
- }
- },
- showAddressBox: function(){// 显示地址弹窗
- this.isShowAddressList = true;
- if(!isPC){fixedBody();}
- },
- closeAddressBox: function(){// 关闭地址弹窗
- this.isShowAddressList = false;
- if(!isPC){looseBody();}
- },
- hideAddressForm: function(){// 隐藏地址表单
- this.isShowAddressForm = false;
- if(!isPC){looseBody();}
- },
- createAddress: function(){// 新建地址
- this.isShowAddressForm = true;
- this.addressForm.name= '';
- this.addressForm.mobile= '';
- this.addressForm.addressId= '';
- this.addressForm.townId= '';
- this.addressForm.cityId= '';
- this.addressForm.provinceId= '';
- this.addressForm.desc= '';
- this.addressForm.default= '';
- this.addressForm.id = '';
- this.getProvinceOptions();
- if(!isPC){fixedBody();}
- },
- updateAddress: function(){// 更新选择地址
- var _self = this;
- _self.isShowAddressForm = true;
- _self.addressForm.id = _self.address.id;
- _self.addressForm.name = _self.address.name;
- _self.addressForm.mobile = _self.address.mobile;
- _self.addressForm.default = _self.address.default;
- _self.addressForm.desc = _self.address.desc;
- _self.addressForm.provinceId = _self.address.provinceId;
- _self.getCityOptions(_self.address.provinceId, function(){
- _self.addressForm.cityId = _self.address.cityId;
- _self.getTownOptions(_self.address.cityId,function(){
- _self.addressForm.townId = _self.address.townId;
- });
- });
- if(!isPC){fixedBody();}
- },
- saveAddressForm: function(){// 更新保存地址
- var _self = this;
- var pass = verifyForm();
- if (_self.saveLoading) { return false; }
- this.$nextTick(function() {
- if (!pass) {return false;}
- if(!_self.addressForm.townId){
- CAIMEI.dialog('请选择所在地区');
- return false;
- };
- _self.saveLoading = true;
- var params = {
- userId:_self.userId, // 用户id ,只在新增收货地址时传
- receiver:_self.addressForm.name, // 收货人
- mobile:_self.addressForm.mobile, // 手机
- townId:_self.addressForm.townId, // 区ID
- address:_self.addressForm.desc, // 地址
- defaultFlag:_self.addressForm.default ? 1 : 0 //是否默认收货地址(0 不是默认,1 默认)
- };
- if(_self.addressForm.id){// 编辑
- params.addressId = _self.addressForm.id;//编辑保存地址ID
- }
- _self.saveAddress(params);
- });
- },
- saveAddress: function(params){// 更新保存地址
- var _self = this;
- OrderApi.AddSaveAddress(params,function(r){
- if(r.code === 0){
- CAIMEI.dialog('保存成功');
- _self.saveLoading = false;
- _self.isShowAddressForm = false;
- // 重新获取地址列表
- _self.getAddressList(_self.userId,20);
- }else{
- CAIMEI.Alert(r.msg,'确定',false);
- }
- });
- },
- setDefaultAddress: function(addressId){// 列表直接设为默认地址
- var _self = this;
- OrderApi.DefaultAddress({addressId:addressId,userId:_self.userId},function (r) {
- if(r.code === 0 ){
- // 重新获取地址列表
- _self.getAddressList(_self.userId,20);
- }else{
- CAIMEI.Alert(r.msg,'确定',false);
- }
- });
- },
- deleteAddress: function(addressId){// 列表删除单个地址
- var _self = this;
- CAIMEI.Modal('确定要删除该地址?','取消','确定',function () {
- OrderApi.DeleteAddress({addressId:addressId,userId:_self.userId},function (r) {
- if(r.code === 0 ){
- CAIMEI.dialog('删除成功');
- // 重新获取地址列表
- _self.getAddressList(_self.userId,20);
- }else{
- CAIMEI.Alert(r.msg,'确定',false);
- }
- })
- });
- },
- chooseAddress: function(selectedId){
- this.address.selectedId = selectedId;
- },
- confirmAddress: function(){// 确认地址并查询邮费
- var _self = this;
- _self.addressList.forEach(function(item){
- if (_self.address.selectedId==item.addressId){
- _self.address.id = item.addressId;
- _self.confirmParam.addressId = item.addressId;
- _self.address.townId = item.townId;
- _self.postageParam.townId = item.townId;
- _self.address.cityId = item.cityId;
- _self.address.provinceId = item.provinceId;
- _self.address.name = item.receiver;
- _self.address.mobile = item.mobile;
- _self.address.desc = item.address;
- _self.address.town = item.town;
- _self.address.city = item.city;
- _self.address.province = item.province;
- _self.address.default = (item.defaultFlag > 0);
- _self.getFreight();
- }
- });
- this.closeAddressBox();
- },
- checkedCoupon:function(idx){// 选择优惠券
- var _self = this;
- var coupon = { couponAmount:0,clubCouponId:0 };
- _self.checkedIndex = idx;
- _self.couponList.forEach((el,index) => {
- if(_self.checkedIndex == index){
- el.ischecked = !el.ischecked;
- }else{
- el.ischecked = false;
- }
- if(el.ischecked){
- coupon.couponAmount = el.couponAmount;
- coupon.clubCouponId = el.clubCouponId;
- }
- })
- _self.couponAmount = coupon.couponAmount;
- _self.totalDiscountAmount = _self.reducedPrice + _self.couponAmount;
- _self.confirmParam.clubCouponId = coupon.clubCouponId;
- _self.changeDeductibleFreight();
- _self.useUserMoney();
- },
- toggleThisLadder: function(event){
- var el = event.currentTarget;
- if($(el).hasClass("on")){
- $(el).removeClass("on").siblings('.mFixed').hide();
- if(!isPC){looseBody();}
- }else{
- $(el).addClass("on").siblings('.mFixed').show();
- if(!isPC){fixedBody();}
- }
- },
- hideThisLadder: function(event){
- var el = event.currentTarget;
- $(el).parents('.priceTag').find('.tag').removeClass("on").siblings('.mFixed').hide();
- if(!isPC){looseBody();}
- },
- useUserMoney: function(){//勾选余额抵扣
- var _self = this;
- if(this.balance.userMoney>0){
- this.$nextTick(function() {
- var total = _self.totalPrice +_self.confirmParam.payInfo.postage - _self.couponAmount; // 订单总金额 + 邮费金额
- if(_self.balance.flag){
- _self.confirmParam.payInfo.balancePayFlag = 1;
- if(_self.balance.userMoney >= total){ // 全部抵扣
- _self.hanldShouldPayFee = 0;
- if(_self.balance.isFreight){// 勾选了采美豆丢运费
- _self.balance.deductMoney = _self.totalPrice - _self.couponAmount; // 抵扣使用金额 = 订单总金额
- _self.balance.surplusMoney = _self.repiceNumSub(_self.balance.userMoney,_self.totalPrice); // 抵扣后剩余余额 = 余额总额 - (订单总金额+邮费金额)
- console.log('余额全部抵扣勾选了采美豆运费',_self.balance.surplusMoney)
- }else{
- _self.balance.deductMoney = total; // 抵扣使用金额 = 订单总金额 + 邮费金额 - 优惠券金额
- _self.balance.surplusMoney = _self.repiceNumSub(_self.balance.userMoney,_self.balance.deductMoney); // 抵扣后剩余余额 = 余额总额 - 抵扣使用金额
- console.log('余额全部抵扣未勾选了采美豆运费',_self.balance.surplusMoney)
- }
- }else{ // 部分抵扣
- if(_self.balance.isFreight){// 勾选了采美豆丢运费
- _self.hanldShouldPayFee = _self.repiceNumSub(_self.totalPrice,_self.balance.userMoney) - _self.couponAmount; // 最终订单总价 = 订单总金额 - 余额总额
- _self.balance.deductMoney = _self.balance.userMoney; // 抵扣使用金额 = 余额总额
- _self.balance.surplusMoney = 0; // 抵扣后剩余余额 = 0
- console.log('部分抵扣勾选了采美豆运费',_self.hanldShouldPayFee)
- }else{
- _self.hanldShouldPayFee = _self.repiceNumSub(total,_self.balance.userMoney); // 最终订单总价 = 订单总金额 - 余额总额
- _self.balance.deductMoney = _self.balance.userMoney; // 抵扣使用金额 = 余额总额
- _self.balance.surplusMoney = 0; // 抵扣后剩余余额 = 0
- console.log('部分抵扣没有勾选了采美豆运费',_self.hanldShouldPayFee)
- }
- }
- }else{// 取消抵扣
- _self.confirmParam.payInfo.balancePayFlag = 0;
- _self.balance.userMoney = _self.balance.originUserMoney;
- _self.balance.deductMoney = 0;
- _self.balance.surplusMoney = _self.balance.originUserMoney;
- if(_self.balance.isFreight){//判断是否有采美豆抵扣运费
- _self.hanldShouldPayFee = _self.totalPrice - _self.couponAmount; // 最终订单总价 = 订单总金额
- }else{
- _self.hanldShouldPayFee = total; // 最终订单总价 = 订单总金额 + 邮费金额
- }
- console.log('取消余额抵扣',_self.hanldShouldPayFee)
- }
- });
- }
- },
- changeDeductibleFreight: function(){//选择采美豆抵扣邮费
- var _self = this;
- var total = _self.totalPrice +_self.confirmParam.payInfo.postage - _self.couponAmount;
- if(_self.balance.isFreight){//判断是否勾选运费
- if(_self.confirmParam.payInfo.postageFlag == 1){//有邮费
- _self.confirmParam.payInfo.userBeans = _self.freightBeansMoney*100;
- if( _self.userBeans > 0 ){// 判断采美豆大于0
- if(_self.balance.flag) {// 勾选了余额抵扣
- console.log('订单总额',total)
- if(_self.balance.userMoney>=total){ // 全部抵扣
- _self.hanldShouldPayFee = 0;
- _self.balance.deductMoney = _self.totalPrice - _self.couponAmount; // 抵扣使用金额 = 订单总金额
- _self.balance.surplusMoney = _self.repiceNumSub(_self.balance.userMoney,_self.balance.deductMoney); // 抵扣后剩余余额 = 余额总额 - 抵扣使用金额
- console.log('有勾选余额抵扣全抵',_self.hanldShouldPayFee)
- }else{ // 部分抵扣
- _self.hanldShouldPayFee = _self.repiceNumSub(_self.totalPrice,_self.balance.userMoney) - _self.couponAmount;
- _self.balance.deductMoney = _self.balance.userMoney; // 抵扣使用金额 = 余额总额
- _self.balance.surplusMoney = _self.repiceNumSub(_self.balance.userMoney,_self.balance.deductMoney); // 抵扣后剩余余额 = 余额总额 - 抵扣使用金额
- console.log('有勾选余额抵扣部分抵',_self.hanldShouldPayFee)
- }
- }else{
- _self.hanldShouldPayFee = ((_self.totalPrice*100 +_self.confirmParam.payInfo.postage*100 - _self.freightBeansMoney*100)/100) - _self.couponAmount;
- console.log('无余额抵扣',_self.hanldShouldPayFee)
- }
- }
- }else if(_self.confirmParam.payInfo.postageFlag == -1){// 到付
- _self.confirmParam.payInfo.userBeans = _self.freightBeansMoney*100;
- if(_self.balance.flag) {// 勾选了余额抵扣
- if(_self.balance.userMoney >= total){ // 全部抵扣
- _self.hanldShouldPayFee = 0;
- _self.balance.deductMoney = _self.totalPrice - _self.couponAmount; // 抵扣使用金额 = 订单总金额
- _self.balance.surplusMoney = _self.repiceNumSub(_self.balance.userMoney,_self.balance.deductMoney); // 抵扣后剩余余额 = 余额总额 - 抵扣使用金额
- console.log('到付有勾选余额抵扣全抵',_self.hanldShouldPayFee)
- }else{ // 部分抵扣
- _self.hanldShouldPayFee =_self.hanldShouldPayFee = _self.repiceNumSub(_self.totalPrice,_self.balance.userMoney) - _self.couponAmount;
- _self.balance.deductMoney = _self.balance.userMoney; // 抵扣使用金额 = 余额总额
- _self.balance.surplusMoney = _self.repiceNumSub(_self.balance.userMoney,_self.balance.deductMoney); // 抵扣后剩余余额 = 余额总额 - 抵扣使用金额
- console.log('到付有勾选余额抵扣部分抵',_self.hanldShouldPayFee)
- }
- }else{
- _self.hanldShouldPayFee = _self.totalPrice - _self.couponAmount ;
- console.log('到付未勾选余额抵扣',_self.hanldShouldPayFee)
- }
- }else{
- _self.confirmParam.payInfo.userBeans = 0;
- _self.hanldShouldPayFee = _self.totalPrice - _self.couponAmount ;
- console.log('其他',_self.hanldShouldPayFee)
- }
- }else{
- console.log('未勾选采美豆抵扣')
- _self.confirmParam.payInfo.userBeans = 0;
- if(_self.balance.flag) {//如果勾选了余额抵扣
- if(_self.balance.userMoney>=total) { // 全部抵扣
- console.log('勾选采美豆抵扣=========》',total)
- _self.hanldShouldPayFee = 0 ;
- _self.balance.deductMoney = total; // 抵扣使用金额 = (订单总金额+邮费金额-优惠券价格)
- _self.balance.surplusMoney = _self.repiceNumSub(_self.balance.userMoney,_self.balance.deductMoney); // 抵扣后剩余余额 = 余额总额 - 抵扣使用金额
- console.log('余额全抵抵未勾选采美豆抵扣',_self.hanldShouldPayFee)
- }else{
- console.log('未勾选采美豆抵扣=========》',total)
- _self.hanldShouldPayFee = _self.repiceNumSub(total,_self.balance.userMoney);
- _self.balance.deductMoney = _self.balance.userMoney; // 抵扣使用金额 = (订单总金额+邮费金额)
- _self.balance.surplusMoney = _self.repiceNumSub(_self.balance.userMoney,_self.balance.deductMoney); // 抵扣后剩余余额 = 余额总额 - 抵扣使用金额
- console.log('余额部分抵未勾选采美豆抵扣',_self.hanldShouldPayFee)
- }
- }else{
- _self.hanldShouldPayFee = (_self.totalPrice +_self.confirmParam.payInfo.postage) - _self.couponAmount;
- }
- }
- },
- repiceNumSub: function(arg1, arg2) {//减法精确,arg2:被减数,arg1:减数
- var r1,r2,m,n;
- try{
- r1=arg1.toString().split(".")[1].length
- }catch(e){
- r1=0
- }
- try{
- r2=arg2.toString().split(".")[1].length
- }catch(e){
- r2=0
- }
- m=Math.pow(10,Math.max(r1,r2));
- // last modify by deeka
- // 动态控制精度长度
- n=(r1>=r2)?r1:r2;
- return ((arg1*m-arg2*m)/m).toFixed(n);
- },
- submitOrder: function(){// 提交按钮点击
- var _self = this;
- if( _self.hanldShouldPayFee<1000){
- _self.isModelAlert = true;
- _self.isModelAlertText = '采购金额过小,将扣除500采美豆。建议您使用微信扫描 以下二维码,进入采美旗下“呵呵商城”小程序购买小额 商品。';
- }else{
- _self.handleClickOrderSubmitMit()
- }
- },
- handleClickOrderSubmitMit:function () {// 提交订单
- var _self = this;
- _self.isModelAlert = false;
- if(_self.submitLoading){return false;}
- if(!_self.confirmParam.addressId){
- CAIMEI.dialog('请先添加收货地址~');
- return false;
- }
- if(_self.orderInvoice.type*1 === 1){
- // 普通发票
- if(!_self.orderInvoice.invoiceTitle){
- CAIMEI.dialog('请输入个人抬头');return false;
- }
- if(_self.orderInvoice.invoiceTitleType===1 && !_self.orderInvoice.corporationTaxNum){
- CAIMEI.dialog('请输入纳税人识别号');return false;
- }
- }else if(_self.orderInvoice.type*1 === 2){
- // 增值税发票
- if(!_self.orderInvoice.invoiceTitle){
- CAIMEI.dialog('请输入个人抬头');return false;
- }
- if(!_self.orderInvoice.corporationTaxNum){
- CAIMEI.dialog('请输入纳税人识别号');return false;
- }
- if(!_self.orderInvoice.registeredAddress){
- CAIMEI.dialog('请输入单位地址');return false;
- }
- if(!_self.orderInvoice.registeredPhone){
- CAIMEI.dialog('请输入注册电话');return false;
- }
- if(!_self.orderInvoice.openBank){
- CAIMEI.dialog('请输入开户银行');return false;
- }
- if(!_self.orderInvoice.bankAccountNo){
- CAIMEI.dialog('请输入银行账号');return false;
- }
- }
- // 禁用按钮
- _self.submitLoading = true;
- // 发票信息
- if(_self.confirmParam.orderInvoice.type*1 === 0){
- _self.confirmParam.orderInvoice = Object.assign(_self.confirmParam.orderInvoice,'',{type:0});
- }else if(_self.confirmParam.orderInvoice.type*1 === 1){
- _self.confirmParam.orderInvoice = Object.assign(_self.confirmParam.orderInvoice,'',{type:1, invoiceContent: '商品明细'});
- }else if(_self.confirmParam.orderInvoice.type*1 === 2){
- _self.confirmParam.orderInvoice = Object.assign(_self.confirmParam.orderInvoice,'',{type:2});
- }
- //商品信息
- _self.confirmParam.orderInfo = _self.listData.map(el => {
- var productInfo = [];
- el.cartList.forEach(item => {
- productInfo.push({
- productId:item.productId,
- productNum:item.number,
- presentNum:0,
- productType:item.productType
- })
- })
- return {shopId:el.shopId,note:el.note?el.note:'',productInfo:productInfo}
- });
- if(_self.orderInvoice.type!=0){
- _self.orderInvoice.type = parseInt(_self.orderInvoice.type)
- _self.confirmParam.orderInvoice = _self.orderInvoice;
- }
- var hanldPostageFlag =
- _self.confirmParam.payInfo.postage = parseInt(_self.hanldPostage).toFixed(2);
- _self.confirmParam.payInfo.postageFlag = parseInt(_self.hanldPostageFlag);
- _self.confirmParam.payInfo.orderShouldPayFee = parseFloat(_self.hanldShouldPayFee).toFixed(2);
- _self.confirmParam.payInfo = JSON.stringify(_self.confirmParam.payInfo);
- _self.confirmParam.orderInfo = JSON.stringify(_self.confirmParam.orderInfo);
- _self.confirmParam.orderInvoice = JSON.stringify(_self.confirmParam.orderInvoice);
- console.log('confirmParam',_self.confirmParam);
- OrderApi.ConfirmOrder(_self.confirmParam,function (res) {
- if(res.code === 0){
- var data = res.data;
- if(data.code === 1){//余额抵扣全部订单金额
- var Amount = { payableAmount: _self.deductMoney };
- CAIMEI.Storage.removeItem('confirmOrderInfo');
- CAIMEI.Storage.setItem('confirmOrderInfo',JSON.stringify({data:Amount}));
- window.location.href = '/pay/success.html?pageType=www&type=success&payAmount='+data.payTotalFee;
- }else{//余额抵扣部分订单金额或者未支付的
- var order = {
- orderId:data.orderId,
- orderNo:data.orderNo,
- orderMark:data.orderMark,
- payableAmount:data.payableAmount
- };
- CAIMEI.Storage.removeItem('confirmOrderInfo');
- CAIMEI.Storage.setItem('confirmOrderInfo',JSON.stringify({data:order}));
- window.location.href = '/pay/caimei-paycash.html?type=confirm&orderId='+data.orderId;
- }
- }else if(res.code === -3){
- _self.isModelAlert = true;
- _self.isShowConfirm = false;
- _self.submitLoading = false;
- _self.isModelAlertText = '您已有2个采购金额过小的订单,本次不能再进行采购。您可使用微信扫描以下二维码,进入采美旗下“呵呵商城”小程序购买小额商品。';
- _self.formatConfirmParam();
- }else if(res.code === -4){
- _self.isModelAlert = true;
- _self.isShowConfirm = false;
- _self.submitLoading = false;
- _self.isModelAlertText = '采美豆不足,不能提交订单。您可使用微信扫描以下二维码,进入采美旗下“呵呵商城”小程序购买小额商品。';
- _self.formatConfirmParam();
- }else{
- CAIMEI.Alert(res.msg,'确定',true, function(){
- setTimeout(function(){
- _self.submitLoading = false;
- _self.formatConfirmParam();
- },500);
- });
- }
- });
- },
- formatConfirmParam:function(){// 还原提交订单参数格式
- var _self = this;
- _self.confirmParam.payInfo = JSON.parse(_self.confirmParam.payInfo);
- _self.confirmParam.orderInfo = JSON.parse(_self.confirmParam.orderInfo);
- _self.confirmParam.orderInvoice = JSON.parse(_self.confirmParam.orderInvoice);
- },
- handleCloseModel:function () {
- this.isModelAlert = false;
- this.isShowConfirm= true;
- },
- getProductIds: function(list){// 获取订单商品id列表
- var productIds = [];
- list.forEach(function(supplier){
- supplier.cartList.forEach(function(product){
- productIds.push(product.productId)
- });
- })
- // console.log(list);
- return productIds.join(',');
- }
- },
- created: function () {
- var _self = this;
- var urlType = getUrlParam("type") ? getUrlParam("type")*1 : "";
- if(globalUserData){
- _self.userId = _self.productParam.userId = _self.cartParam.userId = _self.postageParam.userId = _self.supportParm.userId = globalUserData.userId;
- _self.confirmParam.clubId = globalUserData.clubId
- _self.userIdentity = globalUserData.identity;
- _self.userToken = globalUserData.token;
- // type:(1购物车提交[对应表cm_cart],2直接购买提交, 3协销下单)
- if(urlType === 1) {//购物车提交
- _self.confirmParam.cartType = 1;
- _self.cartParam.productIds = _self.productIds = window.localStorage.getItem("shoppingProductIds");
- // 获取列表数据
- _self.getCartCreateOrderInfo();
- }else if(urlType === 2){//立即购买
- _self.confirmParam.cartType = 2;
- _self.productParam.productId = _self.productIds = getUrlParam("productId");
- _self.productParam.productCount = getUrlParam("count");
- if(_self.productParam.productId && _self.productParam.productCount) {
- _self.getProductCreateOrderInfo();
- }
- }else if(urlType === 3){// 组合商品立即购买
- _self.supportParm.productInfo = CAIMEI.Storage.getItem("KEY_SUPPORE");
- _self.OrderClubProductSupporting()
- }
- }
- },
- mounted: function () {
- var _self = this;
- var minAwayBtm = $("footer").height();
- //处理滚动条控制底部提交fixed
- $(window).scroll(function() {
- var awayBtm = $(document).height() - $(window).scrollTop() - $(window).height();
- if(minAwayBtm <= awayBtm){
- $(".summaryWrap").addClass('fixed');
- }else{
- $(".summaryWrap").removeClass("fixed");
- }
- });
- }
- });
|