一、总体设计
(游客,注册用户)
用户进入小程序后游客可访问首页,超市商品,我的等,但无法进行购物等。用户可到我的中进行登录。有账号可直接进行登录,无账号可通过手机号码进行注册。登录后用户可进行浏览商品,下单商品等。
二、数据库设计
经过需求分析此次数据库系统中有三个实体,分别是用户(手机号、密码和配送地址),商品(商品号、商品名称、商品图片、价格和类型),订单(订单号、商品号、手机号和数量)。
实体与实体之间还存在关联,一个用户可以购买多件商品,一件商品也可以被多个用户购买。一个用户可以拥有多条订单,但一个订单只能被一个用户所拥有。
三、游客(未登录)状态
onLoad:function(options){
// 页面初始化 options为页面跳转所带来的参数
this.setData({
isLogin:getApp().globalData.isLogin,
phone:getApp().globalData.phone
})
// console.log(getApp().globalData.phone)
if(getApp().globalData.isLogin == true){
wx.request({
url: 'http://localhost/selectimg.php',
method:"post",
header:{'content-type':'application/x-www-form-urlencoded'},
data:{
phone:getApp().globalData.phone
},
success:(res)=>{
// console.log(res.data);
if(res.data.img == '../../images/morenImg.png'){
return;
}
var tempFilePaths=decodeURIComponent(res.data.img);
this.setData({
// tempFilePaths:encodeURI(res.data.stu_img)
tempFilePaths:tempFilePaths
})
}
})
}
}
点击未登录前往登录
点击无账号进行注册
登录成功后可购物等
首页
超市,添加商品
购物车
加载商品
loadOrders: function () {
wx.request({
url: 'http://localhost/checkCart.php',
data:{
phone:getApp().globalData.phone
},
method:'POST',
header:{'content-type':'application/x-www-form-urlencoded'},
success:(res)=>{
this.setData({
flag:false
})
}
})
//从数据库中里取出
// var orders = wx.getStorageSync('orders');
if(getApp().globalData.isLogin == false){
this.setData({
orders:[]
})
}else{
wx.request({
url: 'http://localhost/usergoods.php',
data:{
phone:getApp().globalData.phone
},
method:'POST',
header:{'content-type':'application/x-www-form-urlencoded'},
success:(res)=>{
console.log(res.data)
this.setData({
orders:res.data
})
}
})
}
var orders = this.data.orders;
//把从本地缓存数据取出来的数据,给orders
// this.setData({ orders: orders });
//定义变量
var totalPrice = 0;
for (var i = 0; i < orders.length; i++) {
var order = orders[i];
//总价=单价*数量
totalPrice += order.price * order.count;
}
this.setData({ totalPrice: totalPrice });
}
可移除商品,增加减少商品数量
checkAll: function (e) {//全选复选框
//拿到被选中的
var selected = this.data.selected;
//判断:如果selected == true ,就为false
var result = selected == true ? false : true;
//要么全选要么全不选
this.setData({ selected: result });
//判断:如果result == false全不选
if (result == false) {
//则设置总价格为0
this.setData({ totalPrice: 0 });
//则设置全选复选框为false
this.setData({ selectedAll: false });
} else {
//否则加载商品,重新计算价格
this.loadOrders();
//设置全选复选框为true
this.setData({ selectedAll: true });
}
},
addGoods: function (e) {//添加商品数量
// var goods = wx.getStorageSync('goods');
var goods = getApp().globalData.goods;
//获取当前的id值
var id = e.currentTarget.id;
//获取当前价格
console.log(id)
wx.request({
url: 'http://localhost/userAddgoods.php',
data:{
phone:getApp().globalData.phone,
id:id
},
method:'POST',
header:{'content-type':'application/x-www-form-urlencoded'},
success:(res)=>{
// console.log(res.data)
}
})
var tmp = this.data.totalPrice;
wx.request({
url: 'http://localhost/getPrice.php',
data:{
id:id
},
method:'POST',
header:{'content-type':'application/x-www-form-urlencoded'},
success:(res)=>{
console.log(res.data)
this.setData({
totalPrice:tmp+res.data
})
}
})
// this.onLoad();
this.loadOrders();
}
更改地址
Page({
data: {
//定义的城市数组
cities: [
],
/
index: 0
},
onLoad: function (options) {
// 页面初始化 options为页面跳转所带来的参数
},
//绑定事件--城市选择器
bindPickerChange: function (e) {
//选择哪个,修改值就是被选择哪个的索引值
this.setData({ index: e.detail.value });
},
//表单里的值都通过e传递过来
formSubmit: function (e) {
//获取地址值
var address = e.detail.value;
//获取地址值
var cityNum = address.city;
//获取地址值
var cities = this.data.cities;
address.city = cities[cityNum];
//从本地缓存数据中获取地址信息
var addresses = wx.getStorageSync('addresses');
//如果地址不存在,就创建数组
if (!addresses) {
addresses = new Array();
}
//把新增地址值添加进数组
addresses.push(address);
//重新设置值
wx.setStorageSync('addresses', addresses);
//跳转到地址列表这一列
wx.redirectTo({
url: '../address/address'
})
}
})
点击选好了后,会将订单信息保存,在个人中心配送中查看
点击更换地址时,若下单时间超过24小时就不可更改。确认收货后可在历史订单里查看。
onLoad: function (options) {
wx.request({
url: 'http://localhost/selectAccount2.php',
data:{
phone:getApp().globalData.phone
},
method:'POST',
header:{'content-type':'application/x-www-form-urlencoded'},
success:(res)=>{
if(!res.data){
this.setData({
orders:[]
})
}else{
this.setData({
orders:res.data
})
}
}
})
}
源码加q: one three five one zero nine seven four three one