当前位置:   article > 正文

基于Java,SpringBoot,Vue,UniAPP的微信商城小程序_基于springboot的微信小程序商城

基于springboot的微信小程序商城

摘要

本课题旨在探讨和实现一个基于SpringBoot后端框架和UniApp前端框架的微信商城小程序。SpringBoot作为一种简化的、用于快速开发企业级应用的开源框架,提供了一套全面的基础架构支持,包括自动配置、依赖管理以及安全性等特性,使得开发者能够以最少的配置快速启动和运行项目。结合UniApp,一种使用Vue.js开发所有前端应用的框架,它允许开发者编写一次代码,然后发布到iOS、Android、Web(包括微信小程序及其他小程序平台)等多个平台。该课题通过整合这两个强大的框架来构建一个高效、可扩展且跨平台的微信商城小程序,致力于提供流畅的用户购物体验和便捷的后台管理功能。

在这个微信商城小程序项目中,SpringBoot负责处理业务逻辑、数据持久化、安全性控制以及与微信API的对接等后端任务。其提供的RESTful API接口将供UniApp前端调用,确保前后端的无缝通信和数据的即时交互。同时,UniApp前端框架将专注于用户界面的构建,利用其组件化和跨平台的特性来实现商城的页面布局、商品展示、购物车管理等功能,并优化用户在微信生态内的购物流程。整体而言,这个基于SpringBoot和UniApp的微信商城小程序项目将充分结合两者的优势,以期达到高性能、易维护和多端适配的目标,满足现代电子商务市场的需求。

整个项目实现的功能

三种角色,分别是管理员、商家、买家,均是小程序。使用微信授权登录。

普通用户: 1.浏览商品信息、查看分类 2.浏览推荐商品信息(根据销量推荐) 3.添加购物车和结算订单 4.查看个人订单详情,对订单进行评价 5.申请成为商家 6.修改收货地址等功能;

商家: 1.管理所有商品信息,可以上传商品 2.管理所有订单信息,进行发货等;

管理员: 管理商品分类、审核商品等。

使用的技术

使用的框架:后端SpringBoot框架,java语言。前端UniApp框架,Vue.js语法。

使用的数据库:MySql5.7或8

部分代码展示

  1. <template>
  2. <view class="container">
  3. <view class="user-section">
  4. <image class="bg" src="/static/user-bg.jpg"></image>
  5. <view class="user-info-box">
  6. <view class="portrait-box">
  7. <image style="background-color: white;" class="portrait" :src="getHead()"></image>
  8. </view>
  9. <view class="info-box">
  10. <text class="username">{{user.name || '游客'}}</text>
  11. <text class="username u-m-l-30" style="color: firebrick;font-size: 25rpx;" @click="toLogout">退出登录</text>
  12. </view>
  13. </view>
  14. <!-- <view class="vip-card-box">
  15. <image class="card-bg" src="/static/vip-card-bg.png" mode=""></image>
  16. <view class="b-btn">
  17. 立即开通
  18. </view>
  19. <view class="tit">
  20. <text class="yticon icon-iLinkapp-"></text>
  21. DCloud会员
  22. </view>
  23. <text class="e-m">DCloud Union</text>
  24. <text class="e-b">开通会员开发无bug 一测就上线</text>
  25. </view> -->
  26. </view>
  27. <view class="u-flex u-direction-row u-row-center" v-if="!user">
  28. <view class="container">
  29. <view class="list-cell " style="text-align: center;">
  30. <text class="cell-tit" style="color: #909399;">游客无法享受购物的快乐</text>
  31. </view>
  32. <!-- <view class="list-cell log-out-btn" @click="toLogin">
  33. <text class="cell-tit">前往登录</text>
  34. </view> -->
  35. </view>
  36. </view>
  37. <view v-if="user"
  38. class="cover-container"
  39. :style="[{
  40. transform: coverTransform,
  41. transition: coverTransition
  42. }]"
  43. @touchstart="coverTouchstart"
  44. @touchmove="coverTouchmove"
  45. @touchend="coverTouchend"
  46. >
  47. <image class="arc" src="/static/arc.png"></image>
  48. <view v-if="user.type == 2" style="height: 60vh;background-color: white;">
  49. <view class="tj-sction u-p-t-20 u-font-30">
  50. 商家专区
  51. </view>
  52. <view class="" >
  53. <u-tabs :list="list" :is-scroll="false" :current="current" @change="change"></u-tabs>
  54. <view class="u-p-20 u-border-top" v-if="current == 0">
  55. <u-button @click="showAddGoods()" type="primary" size="mini" :plain="true">新增商品</u-button>
  56. </view>
  57. <u-cell-group v-if="current == 0">
  58. <u-cell-item v-for="(item,index) in storeGoods" :key="index" :title="item.name+(item.stat == 0 ?'(待上架)':(item.stat == 1 ? '(待审核)':'(在售)'))" :label="'售价:'+item.price+' 库存:'+item.num" :arrow="false">
  59. <image class="u-m-r-15" style="width: 80rpx;height: 80rpx;" mode="aspectFill" slot="icon" :src="picUrl + item.pic1 "></image>
  60. <u-button size="mini" slot="right-icon" :type="item.stat == 0 ? 'primary':'warning' " @click="goodsChange(item,0)">{{item.stat == 0 ?'上架':'下架'}}</u-button>
  61. </u-cell-item>
  62. </u-cell-group>
  63. </view>
  64. </view>
  65. <view v-if="user.type == 3">
  66. <view class="tj-sction u-p-t-20 u-font-30">
  67. 管理员专区
  68. </view>
  69. <view class="">
  70. <u-tabs :list="list" :is-scroll="false" :current="current" @change="change"></u-tabs>
  71. <u-cell-group v-if="current == 0">
  72. <u-cell-item v-for="(item,index) in unCheckList" :key="index" :title="item.memo+(item.stat == 0 ?'(待审核)':'')" :label="'店主:'+item.name" :arrow="false">
  73. <!-- <u-badge count="99" :absolute="false" slot="right-icon"></u-badge> -->
  74. <u-button size="mini" slot="right-icon" :type="item.stat == 0 ? 'primary':'warning' " @click="storeChange(item,0)">{{item.stat == 0 ?'通过':'停用'}}</u-button>
  75. </u-cell-item>
  76. </u-cell-group>
  77. <u-cell-group v-if="current == 1">
  78. <u-cell-item v-for="(item,index) in goodsList" :key="index" :title="item.name+(item.stat == 1 ?'(待审核)':(item.stat == 3 ? '(在售)':'(未上架)'))" :label="'售价:'+item.price+' 库存:'+item.num" :arrow="false">
  79. <image class="u-m-r-15" style="width: 80rpx;height: 80rpx;" mode="aspectFill" slot="icon" :src="picUrl + item.pic1 "></image>
  80. <u-button size="mini" slot="right-icon" :type="item.stat == 1 ?'success':(item.stat == 3 ?'warning':'primary')" @click="goodsChange(item,1)">{{item.stat == 1 ?'通过':(item.stat == 3 ?'下架':'上架')}}</u-button>
  81. </u-cell-item>
  82. </u-cell-group>
  83. </view>
  84. </view>
  85. <!-- 订单 -->
  86. <view class="order-section" v-if="user.type == 1">
  87. <view class="order-item" @click="navTo('/pages/order/order?index=0')" hover-class="common-hover" :hover-stay-time="50">
  88. <text class="yticon icon-shouye"></text>
  89. <text>全部订单</text>
  90. </view>
  91. <view class="order-item" @click="navTo('/pages/order/order?index=1')" hover-class="common-hover" :hover-stay-time="50">
  92. <text class="yticon icon-daifukuan"></text>
  93. <text>待发货</text>
  94. </view>
  95. <view class="order-item" @click="navTo('/pages/order/order?index=2')" hover-class="common-hover" :hover-stay-time="50">
  96. <text class="yticon icon-yishouhuo"></text>
  97. <text>待收货</text>
  98. </view>
  99. <view class="order-item" @click="navTo('/pages/order/order?index=3')" hover-class="common-hover" :hover-stay-time="50">
  100. <text class="yticon icon-shouhoutuikuan"></text>
  101. <text>待评价</text>
  102. </view>
  103. </view>
  104. <!-- 浏览历史 -->
  105. <view class="history-section icon" v-if="user.type == 1">
  106. <view class="sec-header">
  107. <text>其他功能</text>
  108. </view>
  109. <list-cell icon="icon-shezhi1" iconColor="#e07472" title="注册商家" border="" @eventClick="storeSet()"></list-cell>
  110. <list-cell icon="icon-shezhi1" iconColor="#e07472" title="设定收货地址" border="" @eventClick="addSet()"></list-cell>
  111. <list-cell icon="icon-shezhi1" iconColor="#e07472" title="设置" border="" @eventClick="navTo('/pages/set/set')"></list-cell>
  112. <list-cell icon="icon-share" iconColor="#3f80de" title="退出登录" border="" @eventClick="toLogout"></list-cell>
  113. </view>
  114. <view class="history-section icon" v-if="user.type == 3">
  115. <view class="sec-header">
  116. <text>其他功能</text>
  117. </view>
  118. <list-cell icon="icon-shezhi1" iconColor="#e07472" title="设定分类" border="" @eventClick="navTo('/pages/setType/setType')"></list-cell>
  119. <list-cell icon="icon-share" iconColor="#3f80de" title="退出登录" border="" @eventClick="toLogout"></list-cell>
  120. </view>
  121. </view>
  122. <u-popup v-model="addShow" mode="center" width="80%">
  123. <view class="u-p-25 " style="box-shadow: 1px 1px 5px lightcyan;">
  124. <u-form ref="uForm">
  125. <u-form-item label="地址" label-width="110" prop="name">
  126. <u-input v-model="add" />
  127. </u-form-item>
  128. </u-form>
  129. <u-button type="primary" @click="changeType">提交</u-button>
  130. </view>
  131. </u-popup>
  132. <u-popup v-model="addStore" mode="center" width="80%">
  133. <view class="u-p-25 " style="box-shadow: 1px 1px 5px lightcyan;">
  134. <u-form ref="uForm">
  135. <u-form-item label="店名" label-width="110" prop="name">
  136. <u-input v-model="store" />
  137. </u-form-item>
  138. </u-form>
  139. <u-button type="primary" @click="StoreSub">提交</u-button>
  140. </view>
  141. </u-popup>
  142. </view>
  143. </template>

演示视频

基于JAVA,Vue,UniAPP微信商城小程序系统设计

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

闽ICP备14008679号