当前位置:   article > 正文

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

生鲜微信小程序 github

一、总体设计

        (游客,注册用户)

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

 二、数据库设计

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

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

三、游客(未登录)状态

  1. onLoad:function(options){
  2. // 页面初始化 options为页面跳转所带来的参数
  3. this.setData({
  4. isLogin:getApp().globalData.isLogin,
  5. phone:getApp().globalData.phone
  6. })
  7. // console.log(getApp().globalData.phone)
  8. if(getApp().globalData.isLogin == true){
  9. wx.request({
  10. url: 'http://localhost/selectimg.php',
  11. method:"post",
  12. header:{'content-type':'application/x-www-form-urlencoded'},
  13. data:{
  14. phone:getApp().globalData.phone
  15. },
  16. success:(res)=>{
  17. // console.log(res.data);
  18. if(res.data.img == '../../images/morenImg.png'){
  19. return;
  20. }
  21. var tempFilePaths=decodeURIComponent(res.data.img);
  22. this.setData({
  23. // tempFilePaths:encodeURI(res.data.stu_img)
  24. tempFilePaths:tempFilePaths
  25. })
  26. }
  27. })
  28. }
  29. }

 点击未登录前往登录

 点击无账号进行注册

 登录成功后可购物等

首页

 超市,添加商品

购物车

加载商品

  1. loadOrders: function () {
  2. wx.request({
  3. url: 'http://localhost/checkCart.php',
  4. data:{
  5. phone:getApp().globalData.phone
  6. },
  7. method:'POST',
  8. header:{'content-type':'application/x-www-form-urlencoded'},
  9. success:(res)=>{
  10. this.setData({
  11. flag:false
  12. })
  13. }
  14. })
  15. //从数据库中里取出
  16. // var orders = wx.getStorageSync('orders');
  17. if(getApp().globalData.isLogin == false){
  18. this.setData({
  19. orders:[]
  20. })
  21. }else{
  22. wx.request({
  23. url: 'http://localhost/usergoods.php',
  24. data:{
  25. phone:getApp().globalData.phone
  26. },
  27. method:'POST',
  28. header:{'content-type':'application/x-www-form-urlencoded'},
  29. success:(res)=>{
  30. console.log(res.data)
  31. this.setData({
  32. orders:res.data
  33. })
  34. }
  35. })
  36. }
  37. var orders = this.data.orders;
  38. //把从本地缓存数据取出来的数据,给orders
  39. // this.setData({ orders: orders });
  40. //定义变量
  41. var totalPrice = 0;
  42. for (var i = 0; i < orders.length; i++) {
  43. var order = orders[i];
  44. //总价=单价*数量
  45. totalPrice += order.price * order.count;
  46. }
  47. this.setData({ totalPrice: totalPrice });
  48. }

可移除商品,增加减少商品数量

  1. checkAll: function (e) {//全选复选框
  2. //拿到被选中的
  3. var selected = this.data.selected;
  4. //判断:如果selected == true ,就为false
  5. var result = selected == true ? false : true;
  6. //要么全选要么全不选
  7. this.setData({ selected: result });
  8. //判断:如果result == false全不选
  9. if (result == false) {
  10. //则设置总价格为0
  11. this.setData({ totalPrice: 0 });
  12. //则设置全选复选框为false
  13. this.setData({ selectedAll: false });
  14. } else {
  15. //否则加载商品,重新计算价格
  16. this.loadOrders();
  17. //设置全选复选框为true
  18. this.setData({ selectedAll: true });
  19. }
  20. },
  21. addGoods: function (e) {//添加商品数量
  22. // var goods = wx.getStorageSync('goods');
  23. var goods = getApp().globalData.goods;
  24. //获取当前的id值
  25. var id = e.currentTarget.id;
  26. //获取当前价格
  27. console.log(id)
  28. wx.request({
  29. url: 'http://localhost/userAddgoods.php',
  30. data:{
  31. phone:getApp().globalData.phone,
  32. id:id
  33. },
  34. method:'POST',
  35. header:{'content-type':'application/x-www-form-urlencoded'},
  36. success:(res)=>{
  37. // console.log(res.data)
  38. }
  39. })
  40. var tmp = this.data.totalPrice;
  41. wx.request({
  42. url: 'http://localhost/getPrice.php',
  43. data:{
  44. id:id
  45. },
  46. method:'POST',
  47. header:{'content-type':'application/x-www-form-urlencoded'},
  48. success:(res)=>{
  49. console.log(res.data)
  50. this.setData({
  51. totalPrice:tmp+res.data
  52. })
  53. }
  54. })
  55. // this.onLoad();
  56. this.loadOrders();
  57. }

 更改地址

  1. Page({
  2. data: {
  3. //定义的城市数组
  4. cities: [
  5. ],
  6. /
  7. index: 0
  8. },
  9. onLoad: function (options) {
  10. // 页面初始化 options为页面跳转所带来的参数
  11. },
  12. //绑定事件--城市选择器
  13. bindPickerChange: function (e) {
  14. //选择哪个,修改值就是被选择哪个的索引值
  15. this.setData({ index: e.detail.value });
  16. },
  17. //表单里的值都通过e传递过来
  18. formSubmit: function (e) {
  19. //获取地址值
  20. var address = e.detail.value;
  21. //获取地址值
  22. var cityNum = address.city;
  23. //获取地址值
  24. var cities = this.data.cities;
  25. address.city = cities[cityNum];
  26. //从本地缓存数据中获取地址信息
  27. var addresses = wx.getStorageSync('addresses');
  28. //如果地址不存在,就创建数组
  29. if (!addresses) {
  30. addresses = new Array();
  31. }
  32. //把新增地址值添加进数组
  33. addresses.push(address);
  34. //重新设置值
  35. wx.setStorageSync('addresses', addresses);
  36. //跳转到地址列表这一列
  37. wx.redirectTo({
  38. url: '../address/address'
  39. })
  40. }
  41. })

 点击选好了后,会将订单信息保存,在个人中心配送中查看

 点击更换地址时,若下单时间超过24小时就不可更改。确认收货后可在历史订单里查看。

  1. onLoad: function (options) {
  2. wx.request({
  3. url: 'http://localhost/selectAccount2.php',
  4. data:{
  5. phone:getApp().globalData.phone
  6. },
  7. method:'POST',
  8. header:{'content-type':'application/x-www-form-urlencoded'},
  9. success:(res)=>{
  10. if(!res.data){
  11. this.setData({
  12. orders:[]
  13. })
  14. }else{
  15. this.setData({
  16. orders:res.data
  17. })
  18. }
  19. }
  20. })
  21. }

源码加q:  one   three  five  one  zero  nine  seven  four  three  one

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/469242
推荐阅读
相关标签
  

闽ICP备14008679号