当前位置:   article > 正文

基于Java,SpringBoot,Vue和UniApp音乐APP安卓软件设计_springboot+vue可以生成app吗

springboot+vue可以生成app吗

摘要

本项目通过结合Java、SpringBoot、Vue和UniApp多种技术栈,设计并实现了一个跨平台的音乐APP。后端服务基于SpringBoot框架构建,利用其快速开发和简便部署的特性,实现了包括用户认证、歌曲管理、播放列表和音乐推荐等核心功能。RESTful API的设计使得服务能够灵活地与前端交互。前端界面采用Vue.js框架开发,它提供了响应式的数据绑定和组件化开发模式,确保了用户界面的流畅性和可维护性。同时,借助UniApp框架,将网页端的应用转换为可以部署Android平台上的原生应用,实现了真正的跨平台体验。整体而言,该音乐APP不仅满足了基本的音乐播放需求,而且提供了高性能、高可用性和良好的用户体验,展示了多技术整合在现代Web应用开发中的强大潜力。

实现的功能

本系统的功能应该包括:用户注册登录、首页、视频、社区、我的、后台管理等六个模块。

注册登录:未注册用户可以填写相关信息后注册,有了账号后可以登录APP;

首页模块:主要实现对歌曲和歌手进行搜索、音乐播放和暂停、音乐收藏等功能;

视频模块:主要实现MV的播放和暂停、对MV进行评论和收藏等功能;

社区模块:主要实现一个社交功能,用户可以发表图文,并且可以对图文进行评论等功能;

我的模块:主要实现更改个人信息、查看收藏的歌曲、查看关注列表等功能。

后台管理模块:主要实现对歌曲、歌手、用户、评论、轮播图、社区动态等内容进行管理,实现数据的可操作化。

用到的技术

后端:Java语言的SpringBoot框架、MySql数据库、Maven依赖管理等;

前端:Vue.js语法的UniApp框架,可编译成安卓APP。

部分代码展示

  1. <template>
  2. <view>
  3. <view class="warp">
  4. <u-form labelPosition="top" label-width="150" :model="form" ref="uForm">
  5. <u-form-item label-position="top" prop="title" borderBottom label="动态标题">
  6. <u-input v-model="form.title" placeholder="请输入动态标题"/>
  7. </u-form-item>
  8. <u-form-item label-position="top" prop="content" borderBottom label="动态内容">
  9. <u-input type="textarea" v-model="form.content" placeholder="请输入动态内容"/>
  10. </u-form-item>
  11. <view class="u-flex u-m-t-25 u-p-b-25 u-border-bottom" style="display: flex;">
  12. <view class="item">
  13. <ygy-upload-img title="图片1" :size="200" :num="1" :iconCloseStyle="info.iconCloseStyle"
  14. @saveImg="getImgList($event,'pic')"></ygy-upload-img>
  15. </view>
  16. <view class="item">
  17. <ygy-upload-img title="图片2" :size="200" :num="1" :iconCloseStyle="info.iconCloseStyle"
  18. @saveImg="getImgList($event,'pic2')"></ygy-upload-img>
  19. </view>
  20. <view class="item">
  21. <ygy-upload-img title="图片3" :size="200" :num="1" :iconCloseStyle="info.iconCloseStyle"
  22. @saveImg="getImgList($event,'pic3')"></ygy-upload-img>
  23. </view>
  24. </view>
  25. </u-form>
  26. <view class="buttonBox">
  27. <u-button type="primary" text="提交" @tap="sub()">提交</u-button>
  28. <view style="margin-top: 40rpx;"></view>
  29. <u-button @tap="back()" :plain="true" type="primary" text="返回">返回</u-button>
  30. </view>
  31. </view>
  32. <!-- <picker @change="radioGroupChange" :value="index" :range="array">
  33. <view class="uni-input">{{parkInfo[index].name}}({{parkInfo[index].orgName}})</view>
  34. </picker> -->
  35. </view>
  36. </template>
  37. <script>
  38. import ygyUploadImg from '@/components/ygy-upload-img/ygy-upload-img.vue'
  39. import appRequest from "@/common/appRequestUrl.js"
  40. import base64 from "@/common/base64.js"
  41. export default {
  42. components: {
  43. ygyUploadImg
  44. },
  45. data() {
  46. return {
  47. array: [],
  48. index:0,
  49. parkInfo:[],
  50. selItem:{},
  51. form:{
  52. title:"",
  53. content:"",
  54. pic:"",
  55. pic2:"",
  56. pic3:""
  57. },
  58. show:true,
  59. info: {
  60. iconCloseStyle: { //关闭图标样式
  61. fontSize: '60rpx',
  62. color: "#f40"
  63. }
  64. }
  65. };
  66. },
  67. onLoad(){
  68. },
  69. methods:{
  70. back(){
  71. uni.redirectTo({
  72. url:"/pages/index/index"
  73. })
  74. },
  75. getImgList(arr, name) {
  76. this.form[name] = arr[0];
  77. },
  78. radioGroupChange(e){
  79. this.form.sex = e;
  80. },
  81. sub(){
  82. let _this = this;
  83. if(_this.form.title =="" || _this.form.content ==""){
  84. uni.showToast({
  85. title:"请填写完整",
  86. icon:"none"
  87. })
  88. return;
  89. }
  90. appRequest.request({
  91. method: "POST",
  92. data: _this.form,
  93. url: appRequest.urlMap.addNmArticle,
  94. success: function(res) {
  95. if(res.data.code == 200){
  96. uni.showModal({
  97. title:"信息",
  98. content:"发布成功!",
  99. showCancel:false,
  100. success:function(){
  101. uni.reLaunch({
  102. url:"/pages/index/index"
  103. })
  104. }
  105. })
  106. }else{
  107. uni.showModal({
  108. title:"信息",
  109. content:res.data.msg,
  110. showCancel:false,
  111. success:function(){
  112. }
  113. })
  114. }
  115. },
  116. fail: function(res) {
  117. console.log(res)
  118. _this.$api.msg("请求异常");
  119. // _this.logining = false;
  120. // _this.data.pass = "";
  121. }
  122. })
  123. },
  124. },onReady() {
  125. }
  126. }
  127. </script>

演示视频

基于Java,Vue和UniApp安卓音乐APP管理系统软件

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

闽ICP备14008679号