uniapp+node.js前后端平台的小区反馈(社区管理平台的小程序)

@TOC


👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!


0前提

温馨提示:我做的思路可能是复杂化了或者说代码写的不规范,如果你觉得可以更加简便的话欢迎分享到评论区或者自己改写一下我的代码,我的后端是写的很简单的没有什么路由分发是直接写的,你可以自由优化,以及在需要验证用户是否登录和验证用户token是否正确的我没有进行验证,你们可以自行添加 小程序的其他部分你可以看看我往期的文章

1.一些准备

1.1表

反馈表feedback

字段名称 类型(长度) 允许空 主键 外键 自增 唯一 说明
id int 反馈id
title varchar(20) 标题
content varchar(20) 内容
images varchar(200) 详情表
userId int 用户id
communityId int 小区id
creatTime timestamp 创建时间
updateTime timestamp 更新时间

1.2总体思路

描述:在平台上有多个小区,每个小区都有一个小区反馈的小区反馈页,用户可以在小区反馈页进行反馈小区存在的问题以及平台存在的问题,这些反馈将由超级管理员和小区管理在后台管理端进行查看(进一步的写法是这个小区反馈还可以进行回复,就是像一个个工单,用户进行反馈,管理员在管理端进行回复,用户在管理员回复之后可以查看这个反馈被回复的信息)

实现:反馈的内容有反馈标题,反馈内容和反馈图片,标题和内容就用v-model双向绑定就好了,反馈图片的话就需要用到uniapp本身提供的图片上传功能(这个图片上传功能进一步完善是需要开启一下cos储存,将图片储存你的云仓库里面去,这样子公网才能进行访问),同时反馈的下方还可以加入联系平台的方式,让这个反馈页面更加具有帮助性

2.前端

前端:用户填写完标题和内容以及上传图片之后,点击发布反馈,发布反馈时检查一下内容是否填写,用户填写了之后才能进行发布请求

代码实现:

cpp 复制代码
   
    // 选择图片进行上传
    chooseImage() {
      uni.chooseImage({
        count: 1,
        sizeType: ['original', 'compressed'],
        sourceType: ['album', 'camera'],
        success: (res) => {
          const tempFilePaths = res.tempFilePaths;
          this.images.push(tempFilePaths[0]);
        }
      });
    },
    // 提交反馈
    async submitFeedback() {
      if (!this.feedback.title || !this.feedback.content) {
        uni.showToast({
          title: '请填写完整信息',
          icon: 'none'
        });
        return;
      }
      this.feedback.images = this.images.join(',');
      const res = await this.$myRequest({
        method: 'post',
        url: '/fafankui',
        data: {
          title: this.feedback.title,
          content: this.feedback.content,
          images: this.feedback.images,
          userId: this.$store.state.user.id,
          communityId: this.$store.state.communityId
        }
      });
      uni.showToast({
        title: '反馈提交成功',
        icon: 'success'
      });
      // 清空表单数据和已上传图片
      this.feedback.title = '';
      this.feedback.content = '';
      this.feedback.images = '';
      this.images = [];
      setTimeout(() => {
        uni.navigateBack();
      }, 1000); // 延迟1秒(1000毫秒)后执行navigateBack
    }

3.后端

后端:接受前端用户传来小区反馈信息,保存到小区反馈表里面(接口编写逻辑:接口名字-接收前端传值-sql语句-sql操作-返回信息) 代码实现:

cpp 复制代码
// 发布反馈的接口
app.post('/fafankui', (req, res) => {
  // 从请求体中获取反馈数据
  const {
    title,
    content,
    images,
    userId,
    communityId
  } = req.body;

  // 将反馈数据插入到数据库中
  const query = 'INSERT INTO feedback (title, content, images, userId, communityId) VALUES (?, ?, ?, ?, ?)';
  connection.query(query, [title, content, images, userId, communityId], (err, results) => {
    if (err) {
      console.log(err);
      return res.json({
        error: '提交反馈失败,请稍后重试',
      });
    }
    // 返回成功消息
    res.json({
      success: '反馈提交成功',
    });
  });
});

4.验证结果

相关推荐
程序员黑豆几秒前
Java正则表达式详解
java·前端·ai编程
程序员爱钓鱼5 分钟前
Go break、continue、goto 详解
后端·面试·go
凤山老林1 小时前
复杂检索引擎落地:Spring Boot + Elasticsearch 数据同步与高阶查询实战
spring boot·后端·elasticsearch
笃行3508 小时前
SQLServer数据迁移之后,那张报表还能不能秒出
后端
不可求~9 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
LucianaiB9 小时前
别再被 AI 骗了:我把腾讯云 4 个 Skill 做成了个「AI 打假侦探」,过程的一个小配置坑惨了我
后端
candyTong10 小时前
Claude Code 如何恢复一段会话
后端·架构·ai编程
En^_^Joy11 小时前
Django项目配置全攻略:settings配置文件
后端·python·django
AC赳赳老秦12 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
谢慧琼12 小时前
2026零基础做企业网站,低成本搭建官方网站
服务器·前端·javascript