当前位置:   article > 正文

基于微信小程序的新冠疫苗预约小程序_http.request('config/list', 'get

http.request('config/list', 'get

文末联系获取源码

开发语言:Java

框架:ssm

JDK版本:JDK1.8

服务器:tomcat7

数据库:mysql 5.7/8.0

数据库工具:Navicat11

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.3.9

浏览器:谷歌浏览器

小程序框架:uniapp

小程序开发软件:HBuilder X

小程序运行软件:微信开发者

一、前言介绍 

网络的广泛应用给生活带来了十分的便利。所以把新冠疫苗预约管理与现在网络相结合,利用java技术建设新冠疫苗预约小程序,实现新冠疫苗预约的信息化。则对于进一步提高新冠疫苗预约管理发展,丰富新冠疫苗预约管理经验能起到不少的促进作用。

新冠疫苗预约小程序能够通过互联网得到广泛的、全面的宣传,让尽可能多的用户了解和熟知新冠疫苗预约小程序的便捷高效,不仅为群众提供了服务,而且也推广了自己,让更多的群众了解自己。对于新冠疫苗预约而言,若拥有自己的系统,通过系统得到更好的管理,同时提升了形象。

本系统设计的现状和趋势,从需求、结构、数据库等方面的设计到系统的实现,分别为管理员和用户的实现。论文的内容从系统的设计、描述、实现、分析、测试方面来表明开发的过程。本系统根据现实情况来选择一种可行的开发方案,借助java编程语言和MySQL数据库等实现系统的全部功能,接下来对系统进行测试,测试系统是否有漏洞和测试用户权限来完善系统,最终系统完成达到相关标准。

二、功能结构

为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该新冠疫苗预约小程序的功能结构图如下所示:

 

三、小程序端

3.1登录

用户通过输入账号和密码,选择角色并点击登录进行系统登录操作,如图 

3.2用户注册

在用户注册页面通过填写用户账号、密码、确认密码、用户姓名、性别、年龄、用户手机等信息进行注册操作;如图 

用户登陆小程序端,可以对首页、疫苗信息、公告信息、我的等功能进行详细操作,如图 

3.3疫苗信息

在疫苗信息页面可以查看疫苗名称、图片、疫苗分类、接种费用、疫苗数量、适合人群、接种地点、接种时间、详情等信息,并进行预约或收藏操作;如图

3.4用户

在我的页面可以对个人中心、疫苗预约、我的收藏管理等详细信息进行操作,如图

3.5用户信息

在用户信息页面通过填写用户账号、密码、用户姓名、性别、年龄、头像、用户手机等详细信息进行保存或退出登录操作,如图

四、管理员功能模块

管理员登录,管理员通过输入用户名、密码,选择角色并点击登录进行系统登录操作,如图

4.1首页

管理员登陆系统后,可以对首页、个人中心、用户管理、疫苗分类管理、疫苗信息管理、疫苗预约管理、系统管理等功能进行相应操作,如图 

4.2用户管理

在用户管理页面可以对索引、用户账号、用户姓名、性别、年龄、头像、用户手机等内容进行详情、修改或删除等操作,如图 

4.3疫苗分类管理

在疫苗分类管理页面可以对索引、疫苗分类等内容进行修改或删除操作,如图 

4.4疫苗信息管理

在疫苗信息管理页面可以对索引、疫苗名称、封面图片、疫苗分类、接种费用、疫苗数量、适合人群、接种地点、接种时间等内容进行详情、修改或删除等操作,如图 

 

4.5疫苗预约管理

在疫苗预约管理页面可以对索引、预约编号、疫苗名称、封面图片、疫苗分类、接种地点、接种时间、适合人群、疫苗数量、接种费用、预约时间、用户账号、用户姓名、年龄、性别、备注、是否支付、审核回复、审核等内容进行详情,修改和删除操作,如图 

4.6系统管理

在公告信息页面可以对索引、标题、图片等内容进行详情,修改和删除操作;还可以对轮播图管理进行详细操作;如图 

 

五、部分核心代码

5.1登录系统主要代码 

  1. form.on('submit(login)', function(data) {
  2. data = data.field;
  3. if (vue.roles.length!=1) {
  4. if (!data.role) {
  5. layer.msg('请选择登录用户类型', {
  6. time: 2000,
  7. icon: 5
  8. });
  9. return false;
  10. }
  11. } else {
  12. data.role = vue.roles[0].tableName;
  13. }
  14. http.request(data.role + '/login', 'get', data, function(res) {
  15. layer.msg('登录成功', {
  16. time: 2000,
  17. icon: 6
  18. });
  19. // 登录凭证
  20. localStorage.setItem('Token', res.token);
  21. var roleName = "";
  22. if(typeof(jquery('#role:checked').attr('title')) == "undefined") {
  23. roleName = vue.roles[0].roleName;
  24. } else {
  25. roleName = jquery('#role:checked').attr('title');
  26. }
  27. localStorage.setItem('role', roleName);
  28. // 当前登录用户角色
  29. localStorage.setItem('userTable', data.role);
  30. localStorage.setItem('sessionTable', data.role);
  31. // 用户名称
  32. localStorage.setItem('adminName', data.username);
  33. http.request(data.role + '/session', 'get', {}, function(res) {
  34. // 用户id
  35. localStorage.setItem('userid', res.data.id);
  36. if(res.data.vip) {
  37. localStorage.setItem('vip', res.data.vip);
  38. }
  39. // 路径访问设置
  40. window.location.href = '../../index.html';
  41. })
  42. });
  43. return false
  44. });
  45. });
  46. /**
  47. * 跳转登录
  48. * @param {Object} tablename
  49. */
  50. function registerClick(tablename) {
  51. window.location.href = '../' + tablename + '/register.html?tablename=' + tablename;
  52. }

 5.2用户注册主要代码

  1. */
  2. @IgnoreAuth
  3. @RequestMapping("/register")
  4. public R register(@RequestBody YonghuEntity yonghu){
  5. //ValidatorUtils.validateEntity(yonghu);
  6. YonghuEntity user = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuming", yonghu.getYonghuming()));
  7. if(user!=null) {
  8. return R.error("注册用户已存在");
  9. }
  10. Long uId = new Date().getTime();
  11. yonghu.setId(uId);
  12. yonghuService.insert(yonghu);
  13. return R.ok();
  14. }

  5.3小程序端首页主要代码

  1. methods: {
  2. jump(url) {
  3. if (this.queryIndex == 0) {
  4. localStorage.setItem('indexQueryCondition', document.getElementById("dianyingxinxidianyingmingcheng").value);
  5. }
  6. jump(url)
  7. },
  8. queryChange(event) {
  9. this.queryIndex = event.target.value;
  10. if (this.queryIndex == 0) {
  11. this.dianyingxinxidianyingmingcheng = this.queryList[event.target.value].queryName;
  12. }
  13. }
  14. }
  15. });
  16. layui.use(['layer', 'form', 'element', 'carousel', 'http', 'jquery'], function() {
  17. var layer = layui.layer;
  18. var element = layui.element;
  19. var form = layui.form;
  20. var carousel = layui.carousel;
  21. var http = layui.http;
  22. var jquery = layui.jquery;
  23. vue.baseurl=http.baseurl;
  24. // 获取轮播图 数据
  25. http.request('config/list', 'get', {
  26. page: 1,
  27. limit: 5
  28. }, function(res) {
  29. if (res.data.list.length > 0) {
  30. let swiperList = [];
  31. res.data.list.forEach(element => {
  32. if (element.value != null) {
  33. swiperList.push({
  34. img: http.baseurl + element.value
  35. });
  36. }
  37. });
  38. vue.swiperList = swiperList;
  39. vue.$nextTick(() => {
  40. carousel.render({
  41. elem: '#test1',
  42. width: '89.6%',
  43. height: '500px',
  44. arrow: 'hover',
  45. anim: 'default',
  46. autoplay: 'true',
  47. interval: '3000',
  48. indicator: 'inside'
  49. });
  50. })
  51. // vue.$nextTick(()=>{
  52. // window.xznSlide();
  53. // });
  54. }
  55. });
  56. http.request('news/list', 'get', {
  57. page: 1,
  58. order: 'desc'
  59. }, function(res) {
  60. var newsList = res.data.list;
  61. for(var i = 0; i<newsList.length; i++) {
  62. let d = newsList[i].addtime.split(' ')
  63. d = d[0].split('-')
  64. newsList[i].year = d[0]
  65. newsList[i].month = d[1] + '-' + d[2]
  66. }
  67. vue.newsList = newsList;
  68. if (newsList.length > 0 && newsList.length <= 2) {
  69. vue.leftNewsList = res.data.list
  70. } else {
  71. var leftNewsList = []
  72. for (let i = 0; i <= 2; i++) {
  73. leftNewsList.push(newsList[i]);
  74. }
  75. vue.leftNewsList = leftNewsList
  76. }
  77. if (newsList.length > 2 && newsList.length <= 8) {
  78. var rightNewsList = []
  79. for (let i = 3; i <= newsList.length; i++) {
  80. rightNewsList.push(newsList[i]);
  81. }
  82. vue.rightNewsList = rightNewsList
  83. }
  84. let flag = 10;
  85. let options = {"navigation":{"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"},"slidesPerView":5,"loop":true,"spaceBetween":20,"autoplay":{"delay":3000,"disableOnInteraction":false}}
  86. options.pagination = {el:'null'}
  87. if(flag == 3) {
  88. vue.$nextTick(() => {
  89. new Swiper('#newsnews', options)
  90. })
  91. }
  92. if(flag == 6) {
  93. let sixSwiper = {
  94. loop: true,
  95. speed: 2500,
  96. slidesPerView: 3,
  97. spaceBetween: 10,
  98. centeredSlides: true,
  99. watchSlidesProgress: true,
  100. autoplay: {
  101. delay: 0,
  102. stopOnLastSlide: false,
  103. disableOnInteraction: false
  104. }
  105. }
  106. vue.$nextTick(() => {
  107. new Swiper('#new-list-6', sixSwiper)
  108. })
  109. }
  110. });
  111. // 获取推荐信息
  112. var autoSortUrl = "dianyingxinxi/autoSort";
  113. if(localStorage.getItem('userid')!=null) {
  114. autoSortUrl = "dianyingxinxi/autoSort2";
  115. }
  116. http.request(autoSortUrl, 'get', {
  117. page: 1,
  118. limit: 3 * 1
  119. }, function(res) {
  120. vue.dianyingxinxiRecommend = res.data.list
  121. let flag = 1;
  122. let options = {"navigation":{"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"},"slidesPerView":5,"loop":true,"spaceBetween":20,"autoplay":{"delay":3000,"disableOnInteraction":false}}
  123. options.pagination = {el:'null'}
  124. if(flag == 3) {
  125. vue.$nextTick(() => {
  126. new Swiper('#recommenddianyingxinxi', options)
  127. })
  128. }
  129. if(flag == 5) {
  130. vue.$nextTick(() => {
  131. var swiper = new Swiper('#recommend-five-swiperdianyingxinxi', {
  132. loop: true,
  133. speed: 500,
  134. slidesPerView: 5,
  135. spaceBetween: 10,
  136. autoplay: {"delay":3000,"disableOnInteraction":false},
  137. centeredSlides: true,
  138. watchSlidesProgress: true,
  139. on: {
  140. setTranslate: function() {
  141. slides = this.slides
  142. for (i = 0; i < slides.length; i++) {
  143. slide = slides.eq(i)
  144. progress = slides[i].progress
  145. // slide.html(progress.toFixed(2)); //看清楚progress是怎么变化的
  146. slide.css({
  147. 'opacity': '',
  148. 'background': ''
  149. });
  150. slide.transform(''); //清除样式
  151. slide.transform('scale(' + (1.5 - Math.abs(progress) / 4) + ')');
  152. }
  153. },
  154. setTransition: function(transition) {
  155. for (var i = 0; i < this.slides.length; i++) {
  156. var slide = this.slides.eq(i)
  157. slide.transition(transition);
  158. }
  159. },
  160. },
  161. navigation: {"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"},
  162. pagination: {"el":".swiper-pagination","clickable":true},
  163. });
  164. })
  165. }
  166. });
  167. });

 

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

闽ICP备14008679号