投票小程序

大家好,我是一名刚入职的前端小白,如果此篇文档有什么说得不对的,望多多包涵!

在开发前,必须要有相应的知识储备,如vue,vue在小程序中是非常非常重要的,很多写法都是要基于vue来做,里面也是有组件的引用、生命周期等等,所以说还是要多学点知识

在正式开发时,公司已经有了一套投票的后端接口,前端只有一套h5代码,没法拿过来直接用,只能一步一步写静态页面,大概花了一天半把静态页面全部写完,后面的话就是我自己对接口了,对接口js部分也是本项目最头疼的部分

因为接口本来就有,所以公司的java后端就直接把本项目要用到数据库甩给我,让我在数据库里找接口

如上图所示,本项目所用到的表,就大致几个选手表、用户表、活动表、作品表等等,所谓的让我找接口就是每张表的表名首字母大写然后前面加一个get就是接口的路径,我虽然是小白,但我也清楚单纯这些接口只有查询的,而没有提交的,比如报名,投票等,应该用那个接口呢?

带着这些疑惑我只能去那个h5代码中寻找答案,还好我的基础比较好,接口也全部被我找齐,当我开始写登录时,我居然傻到按照h5vue的写法去写,完全忘了微信小程序有一套自己的登录流程,如下:

还好发现接口一直报错,反应过来了,也相应的修改过来了

   //登入
      wx.login({
        success: (res)=>{
             if(res.code){
               wx.request({
                 url: host+'getOpenid',
                 data: {json: res.code},
                 method: 'POST',
                 header: {
                   'content-type': 'application/x-www-form-urlencoded'
                 },
                 success: (ress)=>{
                  //  console.log(ress)
                   var openid=ress.data.data.openid
                   wx.setStorageSync('userOpenId',openid);  
              //      getEnter({qopenid: openid})
              // .then(res0=> {
              //  console.log(res0)
                 getUser({
                  sqlstr:"order by id desc",
                  openid: openid,
                })
              // })
              .then(res => {
                console.log(res)
                if (res.length > 0) {
                  wx.setStorageSync('user', res[0]); 
                  // wx.setStorageSync('inviteType', res.inviteType);
                }else console.log('新用户');
              })
                 }
               })
             }else{
               console.log("获取用户失败",res.errMsg)
              }
        }
      })

在这个项目中我觉得最难的地方是报名这块,特别是上传作品这块,还好最后也都解决了

//点击上传图片
  addImage(){
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album','camera'],
      camera: "back",
      success: (res)=>{
        // console.log(res)
        var str=""
        res.tempFiles.forEach((item)=>{
              str+=item.tempFilePath+","
        })
        str=str.slice(0,str.length-1)
        console.log(str)
              wx.uploadFile({  
            url: 'https://tp.rongjikeji.club/tphd/uploadImg',
            filePath: str,
            name: 'file',
            success:(ress)=>{
          //  console.log(res)
    this.setData({
      'form.productions': (JSON.parse(ress.data).data).join()
    })
      }
          }) 
    
       this.setData({
        leaveImage: res.tempFiles,
       }) 
       if(this.data.leaveImage.length===5){
         this.setData({
          showImage: false,
         })
      }
      }
    })
  },

本项目中其他功能也都算简单,大致都完成了,

总结: 在项目中如果遇到了没写过的功能,不要害怕,用平常心态去做,在网上查一查,就一定可以完成,加油,前端人!!!

很抱歉,我无法在此提供完整的Java投票小程序代码,因为它需要根据您的具体需求进行编写和定制。但是,我可以为您提供一个简单的Java投票小程序的代码示例,以帮助您开始。 这是一个基于Java Web框架Spring Boot的简单投票小程序的代码示例: ```java // 投票选项实体类 @Entity public class Option { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int count; // getters and setters } // 投票主题实体类 @Entity public class Topic { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @OneToMany(cascade = CascadeType.ALL, mappedBy = "topic") private List<Option> options; // getters and setters } // 投票服务接口 public interface VoteService { List<Topic> getAllTopics(); Topic getTopicById(Long id); void vote(Long topicId, Long optionId); } // 投票服务实现类 @Service public class VoteServiceImpl implements VoteService { @Autowired private TopicRepository topicRepository; @Autowired private OptionRepository optionRepository; @Override public List<Topic> getAllTopics() { return topicRepository.findAll(); } @Override public Topic getTopicById(Long id) { return topicRepository.findById(id).orElse(null); } @Override public void vote(Long topicId, Long optionId) { Option option = optionRepository.findById(optionId).orElse(null); if (option != null) { option.setCount(option.getCount() + 1); optionRepository.save(option); } } } // 投票控制器 @RestController public class VoteController { @Autowired private VoteService voteService; @GetMapping("/topics") public List<Topic> getAllTopics() { return voteService.getAllTopics(); } @GetMapping("/topics/{id}") public Topic getTopicById(@PathVariable Long id) { return voteService.getTopicById(id); } @PostMapping("/vote") public void vote(@RequestParam Long topicId, @RequestParam Long optionId) { voteService.vote(topicId, optionId); } } // 应用程序入口 @SpringBootApplication public class VoteApplication { public static void main(String[] args) { SpringApplication.run(VoteApplication.class, args); } } ``` 这个示例程序演示了如何使用Spring Boot开发一个简单的投票小程序,其中包括投票选项实体类、投票主题实体类、投票服务接口和实现类、投票控制器以及应用程序入口。 请注意,这只是一个简单的示例程序,实际的投票小程序需要根据您的具体需求进行编写和定制。希望这个示例程序可以帮助您开始编写自己的Java投票小程序
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值