当前位置:   article > 正文

小程序意见反馈界面(简洁版代码)_问题反馈小程序源码

问题反馈小程序源码

在开发个人中心页面时,意见反馈功能是必不可少的,下面介绍该功能的具体开发流程

1、首先看一下效果图

 2、WXML代码,分为三个部分,文本域(TextArea)、输入框(Input)、按钮(Button),

其中文本域限制了字数,50字以内。

  1. <!--pages/feedback/feedback.wxml-->
  2. <view class="opinion_wrap">
  3. <form bindsubmit="formSubmit">
  4. <view class="content_wrap">
  5. <view class="content">
  6. <textarea name="opinion" maxlength="50" value="{{content}}" auto-height placeholder-class="placeholder" placeholder="期待您的反馈,我们将会不断改进(50字以内)" />
  7. </view>
  8. </view>
  9. <view class="phone">
  10. <input name="contact" value="{{contact}}" placeholder-class="placeholder" placeholder="请留下您的手机号或邮箱,方便我们及时回复" />
  11. </view>
  12. <button formType="submit" hover-class="button_active" loading="{{loading}}">提交</button>
  13. </form>
  14. </view>

3、WXSS样式文件,主要使用了盒子阴影和圆角边框,个人比较喜欢简洁型的,看着舒服

  1. /* pages/feedback/feedback.wxss */
  2. page{
  3. background-color: white;
  4. }
  5. .content_wrap, .phone{
  6. width: 96%;
  7. background-color: #fff;
  8. border-radius: 10rpx;
  9. margin: 20rpx auto;
  10. box-shadow: 0px 0px 10px 2px rgb(0 0 0 / 8%);
  11. }
  12. .content{
  13. padding: 20rpx;
  14. margin: 0 auto;
  15. border-radius: 10rpx;
  16. }
  17. textarea{
  18. min-height: 300rpx;
  19. width: 100%;
  20. }
  21. input{
  22. margin-top: 30rpx;
  23. height: 100rpx;
  24. padding-left: 20rpx;
  25. background-color: #fff;
  26. }
  27. button{
  28. color: white;
  29. border: none;
  30. width: 85%;
  31. padding: 10rpx 0rpx;
  32. margin: 40rpx auto;
  33. background: #2b85e4;
  34. border-radius: 40rpx;
  35. font-size: 30rpx;
  36. }
  37. .button_active{
  38. background: #5cadff;
  39. }
  40. .placeholder{
  41. color: #b6b6b6;
  42. font-size: 14px;
  43. }

4、JS文件,提交表单触发formSumbit函数,函数的主要工作就是检查文本域是否为空,还有用户填写的手机号或者邮箱的格式是否正确,如果满足以上两个条件则将反馈信息和用户名以Post方式提交到后台,由后台将反馈信息存入到数据库。

这里面的逻辑代码需要一定的理解能力(其实也并不难),如果看不懂的,可以在评论区提问或者百度,坚持才可能胜利!

  1. Page({
  2. /**
  3. * 页面的初始数据
  4. */
  5. data: {
  6. loading: false,
  7. contact: '',
  8. contant: ''
  9. },
  10. formSubmit: function (e) {
  11. let _that = this;
  12. let content = e.detail.value.opinion;
  13. let contact = e.detail.value.contact;
  14. let regPhone = /^1[3578]\d{9}$/;
  15. let regEmail = /^[a-z\d_\-\.]+@[a-z\d_\-]+\.[a-z\d_\-]+$/i;
  16. if (content == "") {
  17. wx.showModal({
  18. title: '提示',
  19. content: '反馈内容不能为空!',
  20. })
  21. return false
  22. }
  23. if (contact == "") {
  24. wx.showModal({
  25. title: '提示',
  26. content: '手机号或者邮箱不能为空!',
  27. })
  28. return false
  29. }
  30. if(contact == "" && content == "") {
  31. wx.showModal({
  32. title: '提示',
  33. content: '反馈内容,手机号或者邮箱不能为空!',
  34. })
  35. return false
  36. }
  37. if ((!regPhone.test(contact) && !regEmail.test(contact)) || (regPhone.test(contact) && regEmail.test(contact))) { //验证手机号或者邮箱的其中一个对
  38. wx.showModal({
  39. title: '提示',
  40. content: '您输入的手机号或者邮箱有误!',
  41. })
  42. return false
  43. } else {
  44. this.setData({
  45. loading: true
  46. })
  47. var n = wx.getStorageSync("userinfo");
  48. let nickname;
  49. //当本地缓存的用户名称不为""或者null时,设置userinfo信息
  50. if(n.nickName != '' && n.nickName != null){
  51. nickname = n.nickName;
  52. }
  53. let status = false;
  54. wx.request({
  55. url: '后台api地址,需自行填写',
  56. method: 'POST',
  57. data: {
  58. "content": content,
  59. "contact": contact,
  60. "nickname":nickname
  61. },
  62. success: function (res) {
  63. if (res.data.code == 0) {
  64. wx.showToast({
  65. title: '反馈成功',
  66. icon: 'success',
  67. duration: 1000,
  68. success: function (res) {
  69. //提示框消失后返回上一级页面
  70. setTimeout(() => {
  71. wx.navigateBack({
  72. change: true,
  73. })
  74. }, 1200)
  75. }
  76. })
  77. }else{
  78. wx.showToast({
  79. title: '反馈失败,请稍后再试',
  80. icon: 'error',
  81. duration: 1200
  82. });
  83. }
  84. },
  85. fail: function () {
  86. wx.showToast({
  87. title: '请求失败~',
  88. icon: 'error',
  89. duration: 1500
  90. })
  91. }
  92. })
  93. return status;
  94. }
  95. },
  96. })

那么这里,我也把Java相关后端代码给到大家:

  1. @PostMapping("/add")
  2. public PublicInterface<Feedback> add(@RequestBody Feedback feedback){
  3. PublicInterface<Feedback> res = new PublicInterface<>();
  4. boolean flag = feedbackService.add(feedback);
  5. if (flag){
  6. res.setMsg("反馈成功!");
  7. }else {
  8. res.setCode(1);
  9. res.setMsg("反馈失败,请稍后再试");
  10. }
  11. return res;
  12. }

PublicInterface类

  1. import lombok.AllArgsConstructor;
  2. import lombok.Data;
  3. import lombok.NoArgsConstructor;
  4. import java.io.Serializable;
  5. import java.util.List;
  6. @Data
  7. @NoArgsConstructor
  8. @AllArgsConstructor
  9. public class PublicInterface<T> implements Serializable {
  10. //返回消息
  11. private String msg;
  12. //代码状态
  13. private int code;
  14. //回写数据
  15. private MyData data;
  16. //数据条数
  17. private int total;
  18. }

MyData类:

  1. import lombok.AllArgsConstructor;
  2. import lombok.Data;
  3. import lombok.NoArgsConstructor;
  4. import java.util.List;
  5. @Data
  6. @AllArgsConstructor
  7. @NoArgsConstructor
  8. public class MyData<T> {
  9. private List<T> list;
  10. //下一条记录的索引(获取壁纸时,接口需要)
  11. private int nextStart;
  12. }

这是个人开发的小程序,大家可以浏览一下在线效果图,里面就有反馈意见功能

 如果对您有帮助,欢迎收藏~

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

闽ICP备14008679号