基于微信小程序开发、PHP后端、Mysql的生鲜超市小程序

一、总体设计

        (游客,注册用户)

       用户进入小程序后游客可访问首页,超市商品,我的等,但无法进行购物等。用户可到我的中进行登录。有账号可直接进行登录,无账号可通过手机号码进行注册。登录后用户可进行浏览商品,下单商品等。

 二、数据库设计

        经过需求分析此次数据库系统中有三个实体,分别是用户(手机号、密码和配送地址),商品(商品号、商品名称、商品图片、价格和类型),订单(订单号、商品号、手机号和数量)。

       实体与实体之间还存在关联,一个用户可以购买多件商品,一件商品也可以被多个用户购买。一个用户可以拥有多条订单,但一个订单只能被一个用户所拥有。

三、游客(未登录)状态

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值