推广 热搜: csgo  vue  angelababy  2023  gps  新车  htc  落地  app  p2p 

郑州购物商城网站系统:优购物惠买商城网站

   2023-03-31 网络整理佚名1980
核心提示:购物系统采用了最新的前端技术栈,实现了登录、购物以及管理等一众数购物系统功能。购物车商品购买购物车合并购买依靠的是数据库主外键联系,购物车购买以后在购物车订单表中生成一条订单数据,订单数据包括订单id,是一个外键,与之联系的是购物车商品表,根据刚刚的订单id生成对应购物车购买的商品信息:买了几个商品就有几条数据,几条数

购物系统

项目地址:vue-shopping-webapp | springboot-shopping-webapp

前言

你:

一、项目介绍

vue-shopping-webapp的商家端是后台管理spa页面,用户端是网站。 采用基于vue和element-ui的最新前端技术栈,实现了登录、购物、管理等大量购物系统功能。 . 后端使用springboot进行数据处理,数据库使用mysql实现典型业务案例。 让你有前后端交互的项目经验。 我相信这个项目一定会对你有所帮助。

当前版本基于 webpack 4.0+ 和 vue-cli 2.x 构建。 Vue 使用 vue2.0。 可以到官网了解版本相关知识的功能。


- 登录 
  - 用户、商家登陆
  
- 页面
  - 用户页面
  - 商家spa页面
  
- 购物
  - 商品分类
  - 商品浏览
  - 商品购买
  
- 购物车
  - 加入购物车
  - 购物车信息(商品总价、数量等)
  - 购物车汇总购买
  
- 地址
  - 修改、增加、删除收货地址
  
- 管理
  - 商品上架、下架
  - 用户订单管理
  - 发货、退货、收货管理
- 评论
  - 用户评论
  - 商家管理评论
 
- Vant
 - van-sku
复制代码

目录结构

视图

郑州购物商城网站系统_优购物惠买商城网站_购物系统网站数据库

├── public                     # 静态资源
│   ├── img                    # 图片资源
├── src                        # 源代码
│   ├── api                    # 地区码
│   ├── components             # 全局公用组件
│   ├── css                    # 全局css样式
│   ├── images                 # 组件内部图片
│   ├── lib                    # css&&fonts
│   ├── router                 # 路由
│   ├── store                  # 全局store管理
│   ├── App.vue                # 入口页面
│   ├── main.js                # 入口文件 加载组件 初始化等
├── .gitignore.js              # git忽略文件设置
├── .babelrc.config.js         # babel-loader 配置
├── package.json               # package.json
└── vue.config.js              # vue-cli 配置
复制代码

弹簧靴

图片1.png

安装

# 克隆项目
git clone https://gitee.com/zhou_guo_xi/vue-shopping-webapp.git
# 安装依赖
npm install
# 启动服务
npm run dev
复制代码

系统数据流程图

sjlt.png

系统ER图

er.png

2.页面结构

郑州购物商城网站系统_购物系统网站数据库_优购物惠买商城网站

home1.png

从上图中我们可以看到一些图标,一张轮播图,购物超市的标题,以及购物超市底部的一些功能栏。 结构分为三层,分别是header区、main区和tabbar区。 主要区域是用于嵌套不同页面的路由视图。 图标来源:MUI。

列表

list.png

用户可以看到的产品列表页面。 商品的各种信息,包括商品编号、商品价格、商品标签、商品库存、商品图片、商品描述、商品数量、图文介绍、商品名称属性等。

管理

111.png

管理页面是一个水疗页面。 商户可以查看在售商品,下架商品,对订单进行一系列管理。

3.加入购物车

郑州购物商城网站系统_优购物惠买商城网站_购物系统网站数据库

动画.gif

可以看到购物车中记录了商品的信息,自动计算出商品的总价。 一个用于动画效果的vue动画钩子。

 "beforeEnter"
      @enter="enter"
      @after-enter="afterEnter"
    >
      <div class="ball" v-show="ballflag" ref="ball">div>
    
复制代码

 beforeEnter(el) {
      el.style.transform = "translate(0,0)";
    },
    enter(el, done) {
      el.offsetWidth;
      //获取小球的位置 
      const ballposition = this.$refs.ball.getBoundingClientRect();
      //获取购物车的位置
      const badgeposition = document
        .getElementById("badge")
        .getBoundingClientRect();
      const xDist = badgeposition.left - ballposition.left;
      const yDist = badgeposition.top - ballposition.top;
      el.style.transform = `translate(${xDist}px, ${yDist}px)`; //字符串的拼接
      el.style.transition = "all 1.5s ease";
      done();
    },
    afterEnter(el) {
      this.ballflag = !this.ballflag;
    },
复制代码

点击加入购物车后,在vuex中调用mutations中的方法并传入相应的商品参数:this.$store.commit("addToCar", goodsinfo);,将加入购物车的数据存储在状态。 mutations中的方法如下:

addToCar(state, goodsinfo) {
            var flag = false //如果没有找到对应的商品
            state.car.some(item => {
                //点击加入购物车时,把商品信息保存到car中    1.如果购物车中已经有这个对应的商品,那么只需要跟新数量 
                if (item.id == goodsinfo.id) {
                    item.count += parseInt(goodsinfo.count)
                    flag = true
                    return true
                }
            })
            if (flag == false) {  //没有找到对应的商品就直接加入到car中
                state.car.push(goodsinfo)
            }
            localStorage.setItem('car', JSON.stringify(state.car))  //本地存储加入购物车的数量
        }
复制代码

如果需要再次处理购物车数据,比如更新购物车商品数据,删除购物车商品数据,可以直接操作state中保存的car对象,car对象是本地取的一个值:var car = JSON.parse (localStorage.getItem('car') || '[]')

4.购买流程

购买流程包括购物车合并购买和普通购买,两者大同小异,这里只演示购物车购买。

1.列出产品

购物系统网站数据库_优购物惠买商城网站_郑州购物商城网站系统

33.gif

其中,图片上传部分代码:

SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd");
@PostMapping("/img")
public Map<String, Object> flailed(MultipartFile file, HttpServletRequest req){
    Map<String, Object> result = new HashMap<>();  //hashmap是map接口主要实现类,hashmap可以去重,效率高但无序
    String originName = file.getOriginalFilename();//file是前端来的数据
    if(!originName.endsWith(".jpg")){
        result.put("status", "error1");
        result.put("msg", "文件类型不对");
        return  result;
    }
    String format = sdf.format(new Date());
    String realPath  = "D:/大学4年/大三上学期/images";//
    File flooder = new File(realPath);
    if(!flooder.exists()){
        flooder.mkdirs();
    }
  String newName =   UUID.randomUUID().toString() + ".jpg";  //防止文件重名
        try {
            file.transferTo(new File(flooder, newName));
            String url = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort()
                    + "/img/"
                    + newName;
            result.put("status", "success");
            result.put("url", url);
        } catch (IOException e){
            result.put("status", "error2");
            result.put("msg", e.getMessage());
        }
        return  result;
}
复制代码

2.购物车产品购买

44.gif

这里有很多逻辑,但并不难。 有订单信息跟踪和修改(如订单支付状态、送货地址)。 购物车合并和购买依赖于数据库的主键和外键之间的关系。 购物车购买后,在购物车订单表中生成一个订单数据。 订单数据包括订单id,是外键,连接到购物车商品表。 根据刚才生成的order id对应购物车购买的商品信息:购买多个商品时获取若干条数据,几条数据共用一个order id,各自的信息没有使用,如如产品名称、产品单价、选择数量等。 这样就可以根据订单id查询订单的所有信息,方便商家管理订单。

3.商户管理

555.png

666.png

商家可以看到客户刚刚购买的订单,然后进行下一步操作。 比如送货等等。

优购物惠买商城网站_购物系统网站数据库_郑州购物商城网站系统

5.附加1.跨域解析

后台创建CrosConfig类,直接把代码复制过来,马上使用。

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry){
        registry.addMapping("
  
  response => {
    const res = response.data
    // if the custom code is not 20000, it is judged as an error.
    if (response.status !== 200) {
      Message({
        message: res.message || 'Error',
        type: 'error',
        duration: 5 * 1000
      })
      // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
      if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
        // to re-login
        MessageBox./confirm/i('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
          /confirm/iButtonText: 'Re-Login',
          cancelButtonText: 'Cancel',
          type: 'warning'
        }).then(() => {
          store.dispatch('user/resetToken').then(() => {
            location.reload()
          })
        })
      }
      return Promise.reject(new Error(res.message || 'Error'))
    } else {
      return res
    }
  },
  error => {
    console.log('err' + error) // for debug
    Message({
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)
export default service
复制代码

好的,重要的宣布

总结

这个项目是由我的大学开发的。 我没有写太多技术帖子。 写作和逻辑组织能力仍然很差。 请原谅我。 项目比较简单郑州购物商城网站系统,但是也需要一定的vue+spingboot基础。 目的是给大家一个学习vue和springboot后练习的项目。 好记性不如烂笔头。 实践才是真理。 做更多,探索更多。 希望你喜欢。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON