• 小程序之后台数据动态交互及WXS的使用 (5)


                                                    ⭐⭐ 小程序专栏:小程序开发专栏

                                                    ⭐⭐ 个人主页个人主页


    目录

    一.前言

    二.后台数据交互

      2.1 准备工作

     2.1 前台首页数据连接:

    三.WXS的使用

    今天就分享到这啦!!!


    一.前言

            本文章续前面的文章的前端界面进行后台数据的交互,因为使用的是前后端分离的模式进行的

    二.后台数据交互

            2.1 准备工作

            首先导入已经准备好的后台数据代码:

    接着要修改Maven:

     最后启动项目:选择MinoaApplication 启动项目,出现8080端口号即可

     测试:localhost:8080/wx/home/index

     2.1 前台首页数据连接:

      记住要关闭mockjs

    将路径改成后台的查询方法的路径:                                                                                      

    接着在utiles/util.js里面封装request请求,并导出来:

    1. /**
    2. * 封装微信的request请求
    3. */
    4. function request(url, data = {}, method = "GET") {
    5. return new Promise(function (resolve, reject) {
    6. wx.request({
    7. url: url,
    8. data: data,
    9. method: method,
    10. header: {
    11. 'Content-Type': 'application/json',
    12. },
    13. success: function (res) {
    14. if (res.statusCode == 200) {
    15. resolve(res.data);//会把进行中改变成已成功
    16. } else {
    17. reject(res.errMsg);//会把进行中改变成已失败
    18. }
    19. },
    20. fail: function (err) {
    21. reject(err)
    22. }
    23. })
    24. });
    25. }
    26. module.exports = {
    27. formatTime,request
    28. }

    最后在index.js里面写一个加载数据的方法,并在onload方法里面调用:

        需要引入utils:

    const utils = require("../../utils/util.js");
    1. // 加载会议信息
    2. loadMeetInfos(){
    3. utils.request(api.IndexUrl).then(res=>{
    4. console.info(res)
    5. this.setData({
    6. lists:res.data.infoList
    7. })
    8. });
    9. },
    10. onLoad() {
    11. if (wx.getUserProfile) {
    12. this.setData({
    13. canIUseGetUserProfile: true
    14. })
    15. }
    16. //调用
    17. this.loadSwiperImgs();
    18. this.loadMeetInfos();
    19. },

     可以看到仍然还存在很多问题,比如会议的状态不应该是数字,还有参加的人数,会议的时间等等,一些问题,现在就用WXS来解决其问题

    三.WXS的使用

            官网:小程序框架 / 视图层 / WXS (qq.com)icon-default.png?t=N7T8https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/        WXS(WeChat eXtensible Storage)是微信小程序提供的一种本地数据存储解决方案。它类似于浏览器的Web Storage API,可以在小程序端存储和读取数据,用于保存小程序的临时数据或用户个人数据。通过合理使用WXS,可以提升小程序的性能和用户体验。

    首先,在工具类utils下面建立一个comm.wxs文件

    会议状态的判断 ,并且导出:

    1. function getStateName(state){
    2. // 条件判断会议状态
    3. if(state ==1 ){
    4. return '待审核'
    5. }else if(state == 2){
    6. return '审核通过'
    7. }else if(state == 3){
    8. return '审核驳回'
    9. }else if(state == 4){
    10. return '待开会议'
    11. }else{
    12. return '其它'
    13. }
    14. }
    15. // 导出
    16. module.exports = {
    17. getStateName:getStateName,
    18. }

            首先在index.wxml文件中引入wxs:

             最后在前台调用该方法即可:

    1. <view class="state">{{tools.getStateName(item.state)}}view>

     统计参会人数 并导出:

    1. // 统计参会人数 字段(canyuze,liexize,zhuchiren)相加
    2. function getNum(canyuze,liexize,zhuchiren){
    3. // 用逗号拼接
    4. var person = canyuze + "," + liexize + "," + zhuchiren;
    5. // 进行分割并计算其长度,算出总人数
    6. return person.split(",").length;
    7. }
    8. // 导出
    9. module.exports = {
    10. getStateName:getStateName,
    11. getNum:getNum
    12. }

    在前台引用:

      <view class="join"><text class="list-num">{{tools.getNum(item.canyuze,item.liexize,item.zhichiren)}}</text>人报名</view>
               

    时间问题 并导出:

    1. // 时间的判断
    2. function formatDate(ts, option) {
    3. var date = getDate(ts)
    4. var year = date.getFullYear()
    5. var month = date.getMonth() + 1
    6. var day = date.getDate()
    7. var week = date.getDay()
    8. var hour = date.getHours()
    9. var minute = date.getMinutes()
    10. var second = date.getSeconds()
    11. //获取 年月日
    12. if (option == 'YY-MM-DD') return [year, month, day].map(formatNumber).join('-')
    13. //获取 年月
    14. if (option == 'YY-MM') return [year, month].map(formatNumber).join('-')
    15. //获取 年
    16. if (option == 'YY') return [year].map(formatNumber).toString()
    17. //获取 月
    18. if (option == 'MM') return [mont].map(formatNumber).toString()
    19. //获取 日
    20. if (option == 'DD') return [day].map(formatNumber).toString()
    21. //获取 年月日 周一 至 周日
    22. if (option == 'YY-MM-DD Week') return [year, month, day].map(formatNumber).join('-') + ' ' + getWeek(week)
    23. //获取 月日 周一 至 周日
    24. if (option == 'MM-DD Week') return [month, day].map(formatNumber).join('-') + ' ' + getWeek(week)
    25. //获取 周一 至 周日
    26. if (option == 'Week') return getWeek(week)
    27. //获取 时分秒
    28. if (option == 'hh-mm-ss') return [hour, minute, second].map(formatNumber).join(':')
    29. //获取 时分
    30. if (option == 'hh-mm') return [hour, minute].map(formatNumber).join(':')
    31. //获取 分秒
    32. if (option == 'mm-dd') return [minute, second].map(formatNumber).join(':')
    33. //获取 时
    34. if (option == 'hh') return [hour].map(formatNumber).toString()
    35. //获取 分
    36. if (option == 'mm') return [minute].map(formatNumber).toString()
    37. //获取 秒
    38. if (option == 'ss') return [second].map(formatNumber).toString()
    39. //默认 时分秒 年月日
    40. return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
    41. }
    42. function formatNumber(n) {
    43. n = n.toString()
    44. return n[1] ? n : '0' + n
    45. }
    46. function getWeek(n) {
    47. switch(n) {
    48. case 1:
    49. return '星期一'
    50. case 2:
    51. return '星期二'
    52. case 3:
    53. return '星期三'
    54. case 4:
    55. return '星期四'
    56. case 5:
    57. return '星期五'
    58. case 6:
    59. return '星期六'
    60. case 7:
    61. return '星期日'
    62. }
    63. }
    64. // 导出
    65. module.exports = {
    66. getStateName:getStateName,
    67. getNum:getNum,
    68. formatDate:formatDate
    69. }

    前端引用:

    1. <view class="list-info"><text>{{item.location}}text>|<text>{{tools.formatDate(item.starttime)}}text>view>

    效果:

    今天就分享到这啦!!!

  • 相关阅读:
    t检验(连续变量)和卡方检验(分类变量)
    Golang反射学习
    如何制作HTML网页设计【体育运动主题网站——中国篮球NBA】
    Unity学习笔记--使用 VisualStudio 反编译 dll 代码查看源码
    关于网站安全的一些讨论
    6条优势,anzo capital昂首资本相信MT5替代MT4的原因
    服务器(Linux)配置node环境及运行ts文件(express框架)
    Scala系列-4、scala中特质、柯里化、闭包等
    BitBake使用攻略--BitBake的语法知识二
    Jprofiler工具进行性能分析
  • 原文地址:https://blog.csdn.net/YZZdear/article/details/133957049