美文网首页
《微信小程序开发从入门到实战》学习二十七

《微信小程序开发从入门到实战》学习二十七

作者: 阿宅白石 | 来源:发表于2023-11-22 10:56 被阅读0次

    3.4 开发参与投票页面

    3.4.2 借用伪造数据开发功能

    为了便于开发,新建一个编译模式:

    之前没看文章,每次都习惯性填完投票创建的信息提交再跳转看效果。好累。 添加变异模式开发真方便。

    另外,点击提交后没跳转到投票页面,通过uni-app路由跳转(redirectTo、navigateTo)不生效_uni.redirectto不生效_小玲子小玲子的博客-CSDN博客

    发现自己的redirectTo方法中的url属性值前面没加上/,现在已经改了《微信小程序开发从入门到实战》二十六,书中代码没问题,自己粗心大意没控制住,哎。

    接下来修改pages/vote/vote.js文件的代码:

    // pages/vote/vote.js

    Page({

      /**

       * 页面的初始数据

       */

      data: {

        voteID:'',

        type:'',

        voteTitle: '',

        voteDesc: '',

        optionList: [],

        endDate: '', //用于保存截止日期

        isAnonymous: false,

        isExpired: false, 

        pickedOption:[] //当前用户选择的选项

      },

      /**

       * 生命周期函数--监听页面加载

       */

      onLoad(options) {

        const voteID = options.voteID //通过页面路径参数获取投票ID

        this.getVoteDateFromServer(voteID) //从服务器端获取投票信息

      },

      checkExpired(endDate){

        const now = new Date()

        const nowYear = now.getFullYear() 

        const nowMonth = now.getMonth() + 1 

        const nowDay = now.getDate()

        const endDateArray = endDate.split('-') //将字符串分隔成字符数组,分隔符为-

        const endYear = Number(endDateArray[0]) //取字符数组中的年份,并将数据类型转换为number

        const endMonth = Number(endDateArray[1]) //取字符数组中的月份,并将数据类型转换为number

        const endDay = Number(endDateArray[2]) //取字符数组中的日期,并将数据类型转换为number

        //判断是不是年份超了

        if(nowYear > endYear){

          return true

        }

        //判断是不是月份超了

        if((nowYear === endYear) && (nowMonth > endMonth)){

          return true

        }

        //判断是不是日期超了

        if((nowYear === endYear) && (nowMonth === endMonth) && (nowDay === endDay)){

          return true

        }

        //其他情况一定超了 

        return false

      },

      getVoteDateFromServer(voteID) {

        if(voteID === 'test'){ //如果投票ID为test,则伪造一些测试数据

          const voteData = {

            type:'radioVote',

            voteTitle: '测试数据投票标题',

            voteDesc: '测试数据投票描述',

            optionList: ['测试数据选项1','测试数据选项2','测试数据选项3','测试数据选项4'],

            endDate: '2023-12-30', //用于保存截止日期

            isAnonymous: false

          }

          /* 以上是伪造的测试数据*/

          const isExpired = this.checkExpired(voteData.endDate) //检查投票是否已经过期

          this.setData({

            voteID,

            type: voteData.type,

            voteTitle: voteData.voteTitle,

            voteDesc: voteData.voteDesc,

            optionList: voteData.optionList,

            endDate: voteData.endDate,

            isAnonymous: voteData.isAnonymous,

            isExpired

          })

        }else{

          // TODO 真的从服务端获取投票信息

        }

      },

    })

    借用的伪造的测试数据完成了数据的加载。现在将这些逻辑层的数据在视图层进行展示了。

    3.4.2 借用伪造数据开发功能完成。

    3.4.3 使用radio单项选择器组件敬请期待。

    相关文章

      网友评论

          本文标题:《微信小程序开发从入门到实战》学习二十七

          本文链接:https://www.haomeiwen.com/subject/kigiwdtx.html