2 Star 2 Fork 4

zhangqiankun/foodie-shop

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
pay.html 30.64 KB
一键复制 编辑 原始数据 按行查看 历史
itcast 提交于 2019-12-12 23:54 . qqq
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport"
content="width=device-width, initial-scale=1.0 ,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>结算页面</title>
<link rel="shortcut icon" href="img/foodie.ico" />
<link href="AmazeUI-2.4.2/assets/css/amazeui.css" rel="stylesheet" type="text/css" />
<link href="basic/css/demo.css" rel="stylesheet" type="text/css" />
<link href="css/cartstyle.css" rel="stylesheet" type="text/css" />
<link href="css/jsstyle.css" rel="stylesheet" type="text/css" />
<link href="css/lee.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/address.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.9/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="pay">
<!--顶部导航条 -->
<div class="am-container header">
<ul class="message-l">
<div class="topMessage">
<div class="menu-hd" v-show="!userIsLogin">
<a href="login.html" target="_top" class="h">亲,请登录</a>
<a href="register.html" target="_top">免费注册</a>
</div>
<div class="menu-hd" v-show="userIsLogin">
<span style="color: #d2364c">欢迎,{{userInfo.username}}</span>
</div>
</div>
</ul>
<ul class="message-r">
<div class="topMessage home">
<div class="menu-hd"><a href="index.html" target="_top" class="h">商城首页</a></div>
</div>
<div class="topMessage my-shangcheng">
<div class="menu-hd MyShangcheng"><a href="javascript:void(0);" @click="goUserCenter">
<i class="am-icon-user am-icon-fw"></i>个人中心</a></div>
</div>
</ul>
</div>
<!--悬浮搜索框-->
<div class="nav white">
<!-- <div class="logo"><img src="images/logo.png" /></div> -->
<div class="logoBig">
<li><img src="images/logobig.png" /></li>
</div>
<div class="search-bar pr">
<a name="index_none_header_sysc" href="#"></a>
<form>
<input id="searchInput" name="index_none_header_sysc" type="text" placeholder="搜索"
autocomplete="off">
<input id="ai-topsearch" class="submit am-btn" value="搜索" index="1" type="submit">
</form>
</div>
</div>
<div class="clear"></div>
<div class="concent">
<!--地址 -->
<div class="paycont">
<div class="address">
<h3>确认收货地址 </h3>
<div class="control">
<div class="tc-btn createAddr theme-login am-btn am-btn-danger">使用新地址</div>
</div>
<div class="clear"></div>
<ul>
<span v-show="addressList.length > 0">
<!-- <block v-for="(address, aindex) in addressList" :key="aindex">
<div class="per-border"></div> -->
<!-- <li class="user-addresslist " v-for="(address, aindex) in addressList" :key="aindex" style="margin-top: 6px;"> -->
<li :class="['user-addresslist', {'defaultAddr' : address.id == choosedAddressId}]"
v-for="(address, aindex) in addressList"
:key="aindex"
@click="chooseAddress(address.id)"
style="margin-top: 6px;">
<!-- <li :class="['user-addresslist', {'DefaultAddr' : address.isDefault == 1}]"> -->
<div class="address-left">
<!-- background: url(../images/peraddbg.png)no-repeat scroll 0% 0%; -->
<!-- :style="address.isDefault == 1 ? " -->
<div class="user DefaultAddr">
<span class="buy-address-detail">
<span class="buy-user">{{address.receiver}}</span>
<span class="buy-phone">{{address.mobile}}</span>
</span>
</div>
<div class="default-address DefaultAddr">
<span class="buy-line-title buy-line-title-type">收货地址:</span>
<span class="buy--address-detail">
<span class="province">{{address.province}}</span>
<span class="city">{{address.city}}</span>
<span class="dist">{{address.district}}</span>
<span class="street">{{address.detail}}</span>
</span>
</div>
<ins class="deftip" v-show="address.isDefault == 1">默认地址</ins>
</div>
<div class="address-right">
<a href="person/address.html">
<span class="am-icon-angle-right am-icon-lg"></span></a>
</div>
<div class="clear"></div>
<div class="new-addr-btn">
<a href="javascript:void(0);" @click.stop="setDefaultAddress(address.id)" :class="[{'hidden' : address.id == defaultAddressId}]" >设为默认</a>
<span :class="['new-addr-bar', {'hidden' : address.id == defaultAddressId}]">|</span>
<a href="javascript:void(0);" @click.stop="editAddress(address.id)">编辑</a>
<span class="new-addr-bar">|</span>
<a href="javascript:void(0);" @click.stop="deleteAddress(address.id)">删除</a>
</div>
</li>
<!-- </block> -->
</span>
</ul>
<div class="clear"></div>
</div>
<!--支付方式-->
<div class="logistics">
<h3>选择支付方式</h3>
<ul class="pay-list">
<li class="" @click="choosePayMethod(1)" style="width: 180px;height:40px;padding:3px;"><img src="img/wxpay.png"/><span></span></li>
<!-- <li class="pay qq" @click="choosePayMethod(1)"><img src="images/weizhifu.jpg"/>微信<span></span></li> -->
<!-- <li class="pay taobao" @click="choosePayMethod(2)"><img src="images/zhifubao.jpg"/>支付宝<span></span></li> -->
<li class="" @click="choosePayMethod(2)" style="width: 180px;height:40px;padding:3px;"><img src="img/alipay.png"/><span></span></li>
</ul>
</div>
<div class="clear"></div>
<!--订单 -->
<div class="concent">
<div id="payTable">
<h3>确认订单信息</h3>
<div class="cart-table-th">
<div class="wp">
<div class="th th-item">
<div class="td-inner">商品信息</div>
</div>
<div class="th th-price">
<div class="td-inner">单价</div>
</div>
<div class="th th-amount">
<div class="td-inner">数量</div>
</div>
<div class="th th-sum">
<div class="td-inner">金额</div>
</div>
<div class="th th-oplist">
<div class="td-inner">配送方式</div>
</div>
</div>
</div>
<div class="clear"></div>
<tr class="item-list">
<div class="bundle bundle-last" v-for="(orderItem, index) in orderItemList">
<div class="bundle-main">
<ul class="item-content clearfix">
<div class="pay-phone">
<li class="td td-item">
<div class="item-pic">
<a :href="'item.html?itemId=' + orderItem.itemId" target="_blank" class="J_MakePoint">
<img :src="orderItem.itemImgUrl" class="itempic J_ItemImg"
style="width: 80px;height: 80px"></a>
</div>
<div class="item-info">
<div class="item-basic-info">
<a :href="'item.html?itemId=' + orderItem.itemId" target="_blank" class="item-title J_MakePoint"
data-point="tbcart.8.11">{{orderItem.itemName}}</a>
</div>
</div>
</li>
<li class="td td-info">
<div class="item-props">
<span class="sku-line">规格:{{orderItem.specName}}</span>
</div>
</li>
<li class="td td-price">
<div class="item-price price-promo-promo">
<div class="price-content">
<em
class="J_Price price-now">{{orderItem.priceDiscount / 100}}</em>
</div>
</div>
</li>
</div>
<li class="td td-amount">
<div class="amount-wrapper ">
<div class="item-amount ">
<span class="phone-title">购买数量</span>
<div class="sl">
{{orderItem.buyCounts}}
</div>
</div>
</div>
</li>
<li class="td td-sum">
<div class="td-inner">
<em tabindex="0"
class="J_ItemSum number">{{orderItem.priceDiscount * orderItem.buyCounts / 100}}</em>
</div>
</li>
<li class="td td-oplist">
<div class="td-inner">
<span class="phone-title">配送方式</span>
<div class="pay-logis">
包邮
</div>
</div>
</li>
</ul>
<div class="clear"></div>
</div>
</div>
</tr>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
<div class="pay-total">
<!--留言-->
<div class="order-extra">
<div class="order-user-info">
<div id="holyshit257" class="memo">
<label>买家留言:</label>
<input v-model="orderRemarker" type="text" title="选填, 可写备注" placeholder="选填, 可写备注"
class="memo-input J_MakePoint c2c-text-default memo-close">
<div class="msg hidden J-msg">
<p class="error">最多输入500个字符</p>
</div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<!--含运费小计 -->
<div class="buy-point-discharge ">
<p class="price g_price ">
合计(包邮)
<!-- <span>¥</span> -->
<em class="pay-sum">¥{{totalAmount / 100}}</em>
</p>
</div>
<!--信息 -->
<div class="order-go clearfix">
<div class="pay-confirm clearfix">
<div class="box">
<div tabindex="0" id="holyshit267" class="realPay"><em class="t">实付款:</em>
<span class="price g_price ">
<!-- <span>¥</span> -->
<em class="style-large-bold-red " id="J_ActualFee">¥{{totalAmount / 100}}</em>
</span>
</div>
<div id="holyshit268" class="pay-address">
<p class="buy-footer-address">
<span class="buy-line-title buy-line-title-type">寄送至:</span>
<span class="buy--address-detail">
<span class="province">{{confirmAddress.province}}</span>
<span class="city">{{confirmAddress.city}}</span>
<span class="dist">{{confirmAddress.district}}</span>
<span class="street">{{confirmAddress.detail}}</span>
</span>
</p>
<p class="buy-footer-address">
<span class="buy-line-title">收货人:</span>
<span class="buy-address-detail">
<span class="buy-user">{{confirmAddress.receiver}}</span>
<span class="buy-phone">{{confirmAddress.mobile}}</span>
</span>
</p>
</div>
</div>
<div id="holyshit269" class="submitOrder">
<div class="go-btn-wrap">
<a id="J_Go"
href="javascript:void(0);"
@click="submitOrder"
class="btn-go"
tabindex="0"
title="点击此按钮,提交订单">提交订单</a>
</div>
</div>
<div class="clear"></div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<!-- </div> -->
<div class="footer ">
<div class="footer-hd ">
<p>
<a href="https://www.imooc.com/" target="_blank">慕课网</a>
<b>|</b>
<a href="https://coding.imooc.com/class/217.html" target="_blank">分布式架构仿抖音短视频</a>
<b>|</b>
<a href="https://coding.imooc.com/class/261.html" target="_blank">Netty仿微信聊天</a>
<b>|</b>
<a href="https://coding.imooc.com/class/201.html" target="_blank">Zookeeper与dubbo入门</a>
<b>|</b>
<a href="https://coding.imooc.com/class/293.html" target="_blank">支付宝小程序</a>
</p>
</div>
<div class="footer-bd ">
<p>
<em>© 2019 imooc.com 京ICP备12003892号-11 北京奥鹏文化传媒有限公司 版权所有</em>
</p>
</div>
</div>
<!-- </div> -->
<div class="theme-popover-mask"></div>
<div class="theme-popover">
<!--标题 -->
<div class="am-cf am-padding">
<div class="am-fl am-cf"><strong class="am-text-danger am-text-lg">新增地址</strong> / <small>Add
address</small></div>
</div>
<hr />
<div class="am-u-md-12">
<form class="am-form am-form-horizontal">
<div class="am-form-group">
<label for="user-name" class="am-form-label">收货人</label>
<div class="am-form-content">
<input type="text" id="user-name" placeholder="收货人" v-model="receiver" maxlength="12">
</div>
</div>
<div class="am-form-group">
<label for="user-phone" class="am-form-label">手机号码</label>
<div class="am-form-content">
<input id="user-phone" placeholder="手机号必填" v-model="mobile" maxlength="11">
</div>
</div>
<div class="am-form-group">
<label for="user-phone" class="am-form-label">所在地</label>
<div id="example" class="am-form-content address">
<select v-model="prov">
<option v-for="option in arr" :value="option.name">{{ option.name }}</option>
</select>
<select v-model="city">
<option v-for="option in cityArr" :value="option.name">{{ option.name }}</option>
</select>
<select v-model="district" v-if="district">
<option v-for="option in districtArr" :value="option.name">{{ option.name }}</option>
</select>
</div>
</div>
<div class="am-form-group">
<label for="user-intro" class="am-form-label">详细地址</label>
<div class="am-form-content">
<textarea class="" rows="3" id="user-intro" placeholder="输入详细地址"
v-model="detail"></textarea>
<small>100字以内写出你的详细地址...</small>
</div>
</div>
<div class="am-form-group theme-poptit">
<div class="am-u-sm-9 am-u-sm-push-3">
<div class="am-btn am-btn-danger" @click="saveNewAddressOrUpdate">保存</div>
<div class="am-btn am-btn-danger close" @click="closeAddressDialog">取消</div>
</div>
</div>
</form>
</div>
<!-- <input type="hidden" id="hiddenOrderId" :value="orderId"/>
<a href="" id="alipayLink" target="_blank"></a> -->
</div>
<div class="clear"></div>
</div>
<script type="text/javascript " src="js/app.js"></script>
<script type="text/javascript " src="js/cities.js"></script>
<script type="text/javascript">
// $(document).ready(function(){
// $("#alipayLink").one("click",function(){
// var orderId = $("#hiddenOrderId").val();
// debugger;
// window.open('alipayTempTransit.html?orderId='+orderId);
// });
// });
var index = new Vue({
el: "#pay",
data: {
userIsLogin: false,
userInfo: {},
orderItemList: [], // 订单结算的商品列表
totalAmount: 0, // 订单总价格
defaultAddressId: "", // 默认地址id
choosedAddressId: "", // 选中的地址id
addressList: [],
updatedAddressId: "", // 用于更新地址的id,如果为空,新增,如果不为空,修改
confirmAddress: {}, // 确认地址
choosedPayMethod: 0,
orderRemarker: "", // 用户备注留言
receiver: "",
mobile: "",
province: "",
// city: "",
// district: "",
detail: "",
orderId: "",
arr: arrAll,
prov: '北京',
city: '北京',
district: '东城区',
cityArr: [],
districtArr: []
},
watch: {
prov: {
// 表格数据刷新后需清空之前查看的订单详情内容
handler: function (newVal, oldVal) {
this.updateCity();
this.updateDistrict();
},
deep: true,
},
city: {
// 表格数据刷新后需清空之前查看的订单详情内容
handler: function (newVal, oldVal) {
this.updateDistrict();
},
deep: true,
},
},
created() {
this.updateCity();
this.updateDistrict();
// var me = this;
// 通过cookie判断用户是否登录
this.judgeUserLoginStatus();
// 渲染结算订单信息
this.renderOrderInfoList();
// 渲染地址信息
this.renderUserAddressList();
},
methods: {
goUserCenter() {
// 判断用户是否登录
var userIsLogin = this.userIsLogin;
if (!userIsLogin) {
// 用户未登录,则跳转
window.location.href = "login.html?returnUrl=" + app.centerServerUrl;
} else {
window.location.href = app.centerServerUrl;
}
},
// goAlipay() {
// window.open("alipayTempTransit.html?orderId=" + this.orderId);
// },
choosePayMethod(payMethod) {
this.choosedPayMethod = payMethod;
},
// 提交订单,创建订单
submitOrder() {
// 判断提交的商品不能为空
var orderItemList = this.orderItemList;
if (orderItemList == null || orderItemList == undefined || orderItemList == '' || orderItemList.length <= 0) {
alert("没有商品信息,订单无法提交~!");
return;
}
// 拼接规格ids
var itemSpecIds = "";
for (var i = 0 ; i < orderItemList.length ; i ++) {
var tmpSpecId = orderItemList[i].specId;
itemSpecIds += tmpSpecId;
if (i < orderItemList.length-1) {
itemSpecIds += ",";
}
}
// 判断选中的地址id不能为空
var choosedAddressId = this.choosedAddressId;
if (choosedAddressId == null || choosedAddressId == undefined || choosedAddressId == '') {
alert("请选择收货地址!");
return;
}
// 判断支付方式不能为空
var choosedPayMethod = parseInt(this.choosedPayMethod);
if (choosedPayMethod != 1 && choosedPayMethod != 2) {
alert("请选择支付方式!");
return;
}
// var newWindow = window.open();
// 买家备注可以为空
var orderRemarker = this.orderRemarker;
// console.log(orderRemarker);
var userInfo = this.userInfo;
var serverUrl = app.serverUrl;
axios.defaults.withCredentials = true;
axios.post(
serverUrl + '/orders/create',
{
"userId": userInfo.id,
"itemSpecIds": itemSpecIds,
"addressId": choosedAddressId,
"payMethod": choosedPayMethod,
"leftMsg": orderRemarker,
},
{
headers: {
'headerUserId': userInfo.id,
'headerUserToken': userInfo.userUniqueToken
}
})
.then(res => {
if (res.data.status == 200) {
// alert("OK");
var orderId = res.data.data;
// 判断是否微信还是支付宝支付
if (choosedPayMethod == 1) {
// 微信支付则跳转到微信支付页面,并且获得支付二维码
window.location.href = "wxpay.html?orderId=" + orderId;
} else if (choosedPayMethod == 2) {
this.orderId = orderId;
// 支付宝支付直接跳转
window.location.href = "alipay.html?orderId=" + orderId + "&amount="+this.totalAmount;
window.open("alipayTempTransit.html?orderId=" + orderId);
// const newWindow = window.open();
// 弹出的新窗口进行支付
// newWindow.location = "alipayTempTransit.html?orderId=" + orderId;
// this.$nextTick(()=> {
// // 当前页面跳转后会轮训支付结果
// newWindow.location.href = "alipay.html?orderId=" + orderId;
// })
} else {
alert("目前只支持微信或支付宝支付!");
}
} else {
alert(res.data.msg);
}
});
},
// 编辑地址
editAddress(addressId) {
// 获得编辑的地址内容
var addressList = this.addressList;
var updateAddress = null;
for (var i = 0 ; i < addressList.length ; i ++) {
var tmpAddress = addressList[i];
if (tmpAddress.id == addressId) {
updateAddress = tmpAddress;
break;
}
}
// 赋值
this.receiver = updateAddress.receiver;
this.mobile = updateAddress.mobile;
this.prov = updateAddress.province;
this.city = updateAddress.city;
this.district = updateAddress.district;
this.detail = updateAddress.detail;
// 弹出对话框
this.showAddressDialog();
// 设置更新地址的id
this.updatedAddressId = addressId;
},
// 弹出对话框
showAddressDialog() {
// 禁止遮罩层下面的内容滚动
$(document.body).css("overflow","hidden");
$(this).addClass("selected");
$(this).parent().addClass("selected");
$('.theme-popover-mask').show();
$('.theme-popover-mask').height($(window).height());
$('.theme-popover').slideDown(200);
},
// 删除地址
deleteAddress(addressId) {
var isDel = window.confirm("确认删除改地址吗");
if (!isDel) {
return;
}
// 如果删除的地址是默认地址或者选中地址,则choosedAddressId和defaultAddressId要设置为空
if (addressId == this.choosedAddressId) {
this.choosedAddressId = "";
}
if (addressId == this.defaultAddressId) {
this.defaultAddressId = "";
}
var userInfo = this.userInfo;
var serverUrl = app.serverUrl;
axios.defaults.withCredentials = true;
axios.post(
serverUrl + '/address/delete?userId=' + userInfo.id + "&addressId=" + addressId,
{},
{
headers: {
'headerUserId': userInfo.id,
'headerUserToken': userInfo.userUniqueToken
}
})
.then(res => {
if (res.data.status == 200) {
this.renderUserAddressList();
} else {
alert(res.data.msg);
}
});
},
// 设置默认地址
setDefaultAddress(addressId) {
var userInfo = this.userInfo;
var serverUrl = app.serverUrl;
axios.defaults.withCredentials = true;
axios.post(
serverUrl + '/address/setDefalut?userId=' + userInfo.id + "&addressId=" + addressId,
{},
{
headers: {
'headerUserId': userInfo.id,
'headerUserToken': userInfo.userUniqueToken
}
})
.then(res => {
if (res.data.status == 200) {
this.renderUserAddressList();
} else {
alert(res.data.msg);
}
});
},
// 选择地址,切换选中效果
chooseAddress(choosedAddressId) {
this.choosedAddressId = choosedAddressId;
// this.defaultAddressId = choosedAddressId;
// console.log("this.defaultAddressId:" + this.defaultAddressId);
// console.log("this.choosedAddressId:" + this.choosedAddressId);
// 确认地址动态改变
this.renderConfirmAddress(choosedAddressId);
},
renderConfirmAddress(addressId) {
// 提交订单的确认地址要跟着动态改变
var addressList = this.addressList;
var confirmAddress = null;
for (var i = 0 ; i < addressList.length ; i ++) {
var tmpAddress = addressList[i];
if (tmpAddress.id == addressId) {
confirmAddress = tmpAddress;
break;
}
}
// 赋值
this.confirmAddress = confirmAddress;
},
updateCity() {
for (var i in this.arr) {
var obj = this.arr[i];
if (obj.name == this.prov) {
this.cityArr = obj.sub;
break;
}
}
this.city = this.cityArr[1].name;
},
updateDistrict() {
for (var i in this.cityArr) {
var obj = this.cityArr[i];
if (obj.name == this.city) {
this.districtArr = obj.sub;
break;
}
}
if (this.districtArr && this.districtArr.length > 0 && this.districtArr[1].name) {
this.district = this.districtArr[1].name;
} else {
this.district = '';
}
},
// 创建用户新地址
saveNewAddressOrUpdate() {
var receiver = this.receiver;
if (receiver == null || receiver == '' || receiver == undefined) {
alert("收货人姓名不能为空");
return;
}
if (receiver.length > 12) {
alert("收货人姓名不能太长");
return;
}
var mobile = this.mobile;
if (mobile == null || mobile == '' || mobile == undefined) {
alert("手机不能为空");
return;
}
if (mobile.length != 11) {
alert("手机号长度为11位");
return;
}
var checkMobile = app.checkMobile(mobile);
if (!checkMobile) {
alert('请输入有效的手机号码!');
return;
}
var prov = this.prov;
var city = this.city;
var district = this.district;
var detail = this.detail;
if (detail == null || detail == '' || detail == undefined) {
alert("详细地址不能为空");
return;
}
// 添加新地址
var userInfo = this.userInfo;
var serverUrl = app.serverUrl;
axios.defaults.withCredentials = true;
var addressId = this.updatedAddressId;
// 地址id为空,则新增地址,否则更新地址
if (addressId == "" || addressId == undefined || addressId == null) {
axios.post(
serverUrl + '/address/add',
{
"userId": userInfo.id,
"receiver": receiver,
"mobile": mobile,
"province": prov,
"city": city,
"district": district,
"detail": detail
},
{
headers: {
'headerUserId': userInfo.id,
'headerUserToken': userInfo.userUniqueToken
}
})
.then(res => {
if (res.data.status == 200) {
this.closeAddressDialog();
this.renderUserAddressList();
// 设置更新地址的id为空
this.updatedAddressId = "";
} else if (res.data.status == 500) {
alert(res.data.msg);
}
});
} else {
axios.post(
serverUrl + '/address/update',
{
"addressId": addressId,
"userId": userInfo.id,
"receiver": receiver,
"mobile": mobile,
"province": prov,
"city": city,
"district": district,
"detail": detail
},
{
headers: {
'headerUserId': userInfo.id,
'headerUserToken': userInfo.userUniqueToken
}
})
.then(res => {
if (res.data.status == 200) {
this.closeAddressDialog();
this.renderUserAddressList();
} else if (res.data.status == 500) {
alert(res.data.msg);
}
});
}
},
closeAddressDialog() {
$(document.body).css("overflow","visible");
$('.theme-login').removeClass("selected");
$('.item-props-can').removeClass("selected");
$('.theme-popover-mask').hide();
$('.theme-popover').slideUp(200);
// 设置更新地址的id为空
this.updatedAddressId = "";
this.flushAddressForm();
},
renderUserAddressList() {
var userInfo = this.userInfo;
// 请求后端获得最新数据
var serverUrl = app.serverUrl;
axios.defaults.withCredentials = true;
axios.post(
serverUrl + '/address/list?userId=' + userInfo.id, {},
{
headers: {
'headerUserId': userInfo.id,
'headerUserToken': userInfo.userUniqueToken
}
})
.then(res => {
if (res.data.status == 200) {
var addressList = res.data.data;
// console.log(addressList);
this.addressList = addressList;
// 设置默认应该选中的地址id
this.setDefaultChoosedAddressId(addressList);
// 清空地址内容
this.flushAddressForm();
} else if (res.data.status == 500) {
alert(res.data.msg);
console.log(res.data.msg);
} else {
alert(res.data.msg);
console.log(res.data.msg);
}
});
},
flushAddressForm() {
this.receiver = "";
this.mobile = "";
this.prov = "北京";
this.city = "北京";
this.district = "东城区";
this.detail = "";
this.updateCity();
this.updateDistrict();
},
setDefaultChoosedAddressId(addressList) {
var confirmAddress = {};
for (var i = 0 ; i < addressList.length ; i ++) {
var address = addressList[i];
if (address.isDefault == 1) {
this.defaultAddressId = address.id;
confirmAddress = address;
// 如果当前页面还没有选中的地址,则把默认地址作为选中地址
var choosedAddressId = this.choosedAddressId;
if (choosedAddressId == null || choosedAddressId == undefined || choosedAddressId == '') {
this.choosedAddressId = address.id;
}
break;
}
}
// 赋值
this.confirmAddress = confirmAddress;
},
renderOrderInfoList() {
var selectedItemSpecIds = app.getUrlParam("selectedItemSpecIds");
if (selectedItemSpecIds == null || selectedItemSpecIds == '' || selectedItemSpecIds ==
undefined) {
app.goErrorPage();
}
var specIdsArray = new Array();
specIdsArray = selectedItemSpecIds.split(",");
var orderItemList = [];
var totalAmount = 0;
for (var i = 0; i < specIdsArray.length; i++) {
var tmpSpecId = specIdsArray[i];
var orderItem = this.getItemFromCookieShopcartList(tmpSpecId);
orderItemList.push(orderItem);
totalAmount += (orderItem.priceDiscount * orderItem.buyCounts);
}
// console.log(orderItemList);
this.orderItemList = orderItemList;
this.totalAmount = totalAmount;
if (orderItemList.length <= 0) {
alert("没有商品信息,或订单已经提交");
window.location.href = "shopcart.html";
}
},
getItemFromCookieShopcartList(specId) {
var shopcartList = app.getShopcartList();
if (shopcartList == null || shopcartList == undefined || shopcartList.length == 0) {
app.goErrorPage();
}
for (var i = 0; i < shopcartList.length; i++) {
var tmpSpecId = shopcartList[i].specId;
if (tmpSpecId == specId) {
return shopcartList[i];
}
}
},
// 打开商品详情页面
showItemDetail(itemId) {
window.open("item.html?itemId=" + itemId);
},
// 通过cookie判断用户是否登录
judgeUserLoginStatus() {
var userCookie = app.getCookie("user");
if (userCookie != null && userCookie != undefined && userCookie != '') {
var userInfoStr = decodeURIComponent(userCookie);
// console.log(userInfo);
if (userInfoStr != null && userInfoStr != undefined && userInfoStr != '') {
var userInfo = JSON.parse(userInfoStr);
// 判断是否是一个对象
if ( typeof(userInfo) == "object" ) {
this.userIsLogin = true;
// console.log(userInfo);
this.userInfo = userInfo;
} else {
this.userIsLogin = false;
this.userInfo = {};
}
}
} else {
this.userIsLogin = false;
this.userInfo = {};
}
}
}
});
</script>
</body>
</html>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ChengXuYuanChenYiXun/foodie-shop.git
git@gitee.com:ChengXuYuanChenYiXun/foodie-shop.git
ChengXuYuanChenYiXun
foodie-shop
foodie-shop
master

搜索帮助