123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583 |
- var shoppingConfirm = new Vue({
- el: "#shoppingConfirm",
- data: {
- userId: 0,
- userIdentity: '',
- userToken: '',
- type: '',
- productIds: '',
- listData: [],
- kindCount: 0,
- totalCount: 0,
- totalPrice: 0,
- reducedPrice: 0,
- address: {
- id: '',
- townId: '',
- cityId: '',
- provinceId: '',
- name: '',
- mobile: '',
- desc: '',
- town: '',
- city: '',
- province: '',
- default: '',
- selectedId: ''
- },
- 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 //显示勾选后的剩余抵扣
- },
- payInfo: {
- clauseId: 0, //条款(暂时保留)
- orderShouldPayFee: 0.00,//提交的总价
- balancePayFlag: 0, //余额抵扣的状态 0不使用,1使用
- freight: 0.00, //邮费
- freePostFlag:-1 // 0包邮 -1到付 1 有运费
- },
- invoice: {
- id:'',
- type: 0,
- invoiceTitleType: 0, //发票抬头类型 1企业 0个人
- invoiceTitle: '', //单位名称
- corporationTaxNum:'',//纳税人识别号
- registeredAddress: '',//单位地址
- registeredPhone:'', //注册电话
- openBank:'', //开户银行
- bankAccountNo: '', //银行账号
- },
- isBeansShow:false,
- userBeans:0,
- freightBeansMoney:0,
- freightMoney:0,
- hanldUserBeans:0,
- submitLoading: false,
- },
- 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);
- }
- }
- },
- methods: {
- blurHandle: function(event) {
- var el = event.currentTarget;
- verifyHandle(el);
- },
- getConfirmList: function (productCount) {
- var _self = this;
- if(this.userId ===0){return;}
- OrderApi.GetOrderConfirmInfo({
- userId: _self.userId,
- count: productCount,
- productIds: this.productIds
- },function(r){
- if (r.code === 0 && r.data) {
- _self.listData = r.data.list;
- _self.totalPrice = r.data.totalPrice;
- _self.reducedPrice = r.data.reducedPrice;
- _self.totalCount = r.data.totalCount;
- _self.kindCount = r.data.kindCount;
- _self.balance.userMoney = r.data.userMoney;
- _self.balance.originUserMoney = r.data.userMoney;
- _self.payInfo.orderShouldPayFee = r.data.totalPrice;
- if(r.data.invoice){
- r.data.invoice.type = 0;
- _self.invoice = r.data.invoice;
- }
- _self.getAddressList(_self.userId,20);
- }else{
- CAIMEI.Alert(r.msg, '确定', false);
- }
- });
- },
- // 获取邮费
- getFreight: function(townId){
- var _self = this;
- OrderApi.GetOrderPostage({
- userId: this.userId,
- productIds: this.productIds,
- totalPrice: this.totalPrice,
- townId: townId
- },function (r) {
- if(r.code === 0 && r.data){
- _self.payInfo.freePostFlag = r.data.freePostFlag;
- _self.userBeans = r.data.userBeans;
- _self.payInfo.freight = (r.data.freePostFlag===1 ? r.data.freight : 0);
- _self.payInfo.orderShouldPayFee = _self.totalPrice + _self.payInfo.freight;
- switch (_self.payInfo.freePostFlag) {
- case 1:
- if( _self.userBeans >= r.data.freight*100 ){
- _self.freightBeansMoney = r.data.freight;
- _self.freightMoney = r.data.freight;
- _self.isBeansShow = true;
- }else{
- _self.isBeansShow = false;
- }
- break;
- case -1:
- if( _self.userBeans >= 3000 ){
- _self.freightMoney = 30;
- _self.freightBeansMoney = 30;
- _self.isBeansShow = true;
- }else{
- _self.isBeansShow = false;
- }
- break;
- }
- }else{
- CAIMEI.Alert(r.msg, '确定', false);
- }
- })
- },
- // 获取收货地址
- getAddressList: function(userId,pageSize){
- var _self = this;
- OrderApi.GetAddressList({
- userID:userId,
- pageNum:1,
- pageSize:pageSize
- },function (r) {
- if(r.code === 0 && r.data){
- if(r.data.results){
- _self.addressList = r.data.results;
- _self.address.id = r.data.results[0].addressID;
- _self.address.townId = r.data.results[0].townID;
- _self.address.cityId = r.data.results[0].cityID;
- _self.address.provinceId = r.data.results[0].provinceID;
- _self.address.name = r.data.results[0].shouHuoRen;
- _self.address.mobile = r.data.results[0].mobile;
- _self.address.desc = r.data.results[0].address;
- _self.address.town = r.data.results[0].town;
- _self.address.city = r.data.results[0].city;
- _self.address.province = r.data.results[0].province;
- _self.address.default = true;
- _self.address.selectedId = r.data.results[0].addressID;
- _self.getFreight(_self.address.townId);
- }else{
- _self.createAddress();
- }
- _self.getProvinceOptions();
- }else {
- CAIMEI.Alert(r.msg, '确定', false);
- _self.createAddress();
- }
- })
- },
- // 获取全部省份
- getProvinceOptions: function(){
- var _self = this;
- PublicApi.GetProvince({},function(r){
- if(r.code === 0 && r.data){
- _self.provinceOptions =r.data;
- }else{
- CAIMEI.Alert(r.msg,'确定',false);
- }
- });
- },
- getCityOptions: function(provinceId,callback){
- var _self = this;
- if(provinceId && provinceId>0){
- _self.cityOptions = [];
- _self.townOptions = [];
- _self.addressForm.cityId = '';
- _self.addressForm.townId = '';
- PublicApi.GetCity({ provinceId: provinceId },function(r){
- if(r.code === 0 && r.data){
- _self.cityOptions = r.data;
- if(callback){callback();}
- }else{
- CAIMEI.Alert(r.msg,'确定',false);
- }
- });
- }
- },
- getTownOptions: function(cityId, callback){
- var _self = this;
- if(cityId && cityId>0){
- _self.townOptions = [];
- _self.addressForm.townId = '';
- PublicApi.GetTown({cityId: cityId},function(r){
- if(r.code === 0 && r.data){
- _self.townOptions = r.data;
- if(callback){callback();}
- }else{
- CAIMEI.Alert(r.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.townId= '';
- this.addressForm.cityId= '';
- this.addressForm.provinceId= '';
- this.addressForm.desc= '';
- this.addressForm.default= '';
- this.getProvinceOptions();
- if(!isPC){fixedBody();}
- },
- updateAddress: function(){
- this.isShowAddressForm = true;
- this.addressForm.id = this.address.id;
- this.addressForm.name = this.address.name;
- this.addressForm.mobile = this.address.mobile;
- this.addressForm.default = this.address.default;
- this.addressForm.desc = this.address.desc;
- this.addressForm.provinceId = this.address.provinceId;
- var _self = this;
- this.getCityOptions(this.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 ,只在新增收货地址时传
- shouHuoRen:_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;
- this.addressList.forEach(function(item){
- if (_self.address.selectedId==item.addressID){
- _self.address.id = item.addressID;
- _self.address.townId = item.townID;
- _self.address.cityId = item.cityID;
- _self.address.provinceId = item.provinceID;
- _self.address.name = item.shouHuoRen;
- _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(_self.address.townId);
- }
- });
- this.closeAddressBox();
- },
- 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.payInfo.freight;
- if(_self.balance.flag){
- _self.payInfo.balancePayFlag = 1;
- if(_self.balance.userMoney>=total){
- // 全部抵扣
- _self.payInfo.orderShouldPayFee = 0;
- _self.balance.deductMoney = total;
- _self.balance.surplusMoney = _self.balance.userMoney-total;
- }else{
- // 部分抵扣
- _self.payInfo.orderShouldPayFee = total - _self.balance.userMoney;
- _self.balance.deductMoney = _self.balance.userMoney;
- _self.balance.surplusMoney = 0;
- }
- }else{
- // 取消抵扣
- _self.payInfo.balancePayFlag = 0;
- _self.payInfo.orderShouldPayFee = total;
- _self.balance.userMoney = _self.balance.originUserMoney;
- _self.balance.deductMoney = 0;
- _self.balance.surplusMoney = _self.balance.originUserMoney;
- }
- });
- }
- },
- changeDeductibleFreight: function(){//选择采美豆抵扣邮费
- var _self = this;
- if(_self.balance.isFreight){
- _self.hanldUserBeans = _self.freightBeansMoney*100;
- if(_self.payInfo.freePostFlag == 1){
- console.log('商品总价-------->',_self.totalPrice);
- console.log('邮费------------>',_self.payInfo.freight);
- console.log('采美豆换算金额--->',_self.freightBeansMoney);
- _self.payInfo.orderShouldPayFee = (_self.totalPrice*10 + _self.payInfo.freight*10 - _self.freightBeansMoney*10)/10;
- console.log('最终支付金额---->',_self.payInfo.orderShouldPayFee)
- }else{
- _self.payInfo.orderShouldPayFee = _self.totalPrice ;
- }
- }else{
- _self.payInfo.orderShouldPayFee = _self.totalPrice + _self.payInfo.freight;
- _self.hanldUserBeans = 0
- }
- },
- submitOrder: function(){
- var _self = this;
- if(this.submitLoading){return false;}
- if(!this.address.id){
- CAIMEI.dialog('请先添加收货地址~');
- return false;
- }
- if(this.invoice.type*1 === 1){
- // 普通发票
- if(!this.invoice.invoiceTitle){
- CAIMEI.dialog('请输入个人抬头');return false;
- }
- if(this.invoice.invoiceTitleType===1 && !this.invoice.corporationTaxNum){
- CAIMEI.dialog('请输入纳税人识别号');return false;
- }
- }else if(this.invoice.type*1 === 2){
- // 增值税发票
- if(!this.invoice.invoiceTitle){
- CAIMEI.dialog('请输入个人抬头');return false;
- }
- if(!this.invoice.corporationTaxNum){
- CAIMEI.dialog('请输入纳税人识别号');return false;
- }
- if(!this.invoice.registeredAddress){
- CAIMEI.dialog('请输入单位地址');return false;
- }
- if(!this.invoice.registeredPhone){
- CAIMEI.dialog('请输入注册电话');return false;
- }
- if(!this.invoice.openBank){
- CAIMEI.dialog('请输入开户银行');return false;
- }
- if(!this.invoice.bankAccountNo){
- CAIMEI.dialog('请输入银行账号');return false;
- }
- }
- // 禁用按钮
- this.submitLoading = true;
- // 发票信息
- if(this.invoice.type*1 === 0){
- this.invoice = Object.assign(this.invoice,'',{type:0});
- }else if(this.invoice.type*1 === 1){
- this.invoice = Object.assign(this.invoice,'',{type:1, invoiceContent: '商品明细'});
- }else if(this.invoice.type*1 === 2){
- this.invoice = Object.assign(this.invoice,'',{type:2});
- }
- //商品信息
- var _orderInfo = this.listData.map(function(supplier){
- var productInfo = [];
- supplier.cartList.forEach(function(item){
- productInfo.push({
- productId:item.productId,
- productNum:item.number,
- presentNum:0,
- productType:item.productType
- })
- });
- return {
- shopId: supplier.id,
- note: supplier.note ? supplier.note : '',
- productInfo: productInfo
- }
- });
- var _payInfo = {
- clauseId: 0,
- orderShouldPayFee: toFloat(this.payInfo.orderShouldPayFee),
- balancePayFlag: this.payInfo.balancePayFlag,
- freight: toFloat(this.payInfo.freight),
- freePostFlag: this.payInfo.freePostFlag,
- userBeans:this.hanldUserBeans
- };
- var params = {
- cartType: this.type,
- orderSource: 1, // 购买类型:(1购物车提交[对应表cm_cart],2直接购买提交, 3协销下单)
- serviceProviderId: '', // 协销ID(小程序忽略)
- clubUserId: this.userId, // 机构用户ID
- addressId: this.address.id,// 地址ID
- orderInfo: _orderInfo, // 商品信息
- payInfo: _payInfo, // 订单信息
- orderInvoice: this.invoice // 发票信息
- };
- OrderApi.ConfirmOrder({'params':JSON.stringify(params)},function (r) {
- if(r.code === 0){
- var _data = r.data;
- if(Number(_data.code) === 1){//余额抵扣全部订单金额
- var data = { payableAmount: _self.deductMoney };
- CAIMEI.Storage.removeItem('confirmOrderInfo');
- CAIMEI.Storage.setItem('confirmOrderInfo',JSON.stringify({data:data}));
- window.location.href = '/pay/success.html?pageType=www&type=success&payAmount='+_data.payTotalFee;
- }else{//余额抵扣部分订单金额或者未支付的
- var data = {
- orderID:_data.orderID,
- orderNo:_data.orderNo,
- orderMark:_data.orderMark,
- payableAmount:_data.payableAmount
- };
- CAIMEI.Storage.removeItem('confirmOrderInfo');
- CAIMEI.Storage.setItem('confirmOrderInfo',JSON.stringify({data:data}));
- window.location.href = '/pay/caimei-paycash.html?type=confirm&orderID='+_data.orderID;
- }
- }else{
- CAIMEI.Alert(r.msg,'确定',true, function(){
- setTimeout(function(){
- _self.submitLoading = false;
- },500);
- });
- }
- });
- }
- },
- created: function () {
- this.type = getUrlParam("type") ? getUrlParam("type")*1 : "";
- if(globalUserData){
- this.userId = globalUserData.userId;
- this.userIdentity = globalUserData.identity;
- this.userToken = globalUserData.token;
- // type:(1购物车提交[对应表cm_cart],2直接购买提交, 3协销下单)
- if(this.type === 1) {
- this.productIds = window.localStorage.getItem("shoppingProductIds");
- // 获取列表数据
- this.getConfirmList(null);
- }else if(this.type === 2){
- this.productIds = getUrlParam("id");
- var count = getUrlParam("count");
- if(this.productIds && count) {
- // 获取列表数据
- this.getConfirmList(count);
- }else{
- alertInfo("参数错误,请重新提交订单!");
- }
- }
- }
- },
- 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");
- }
- });
- }
- });
|