微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)

简介: 微信小程序开发之会议OA首页后台数据交互(内带新知识点分享)



前言

       在前面的几期博客中我们都对会议OA项目进行一个布局以及数据模拟显示,都不是从后台实现数据库交互,显示的都是死数据。今天我来给大家带来有关实现小程序前端数据后台交互,其中还涉及其他新的知识点,请老铁们认真观看。

一、后台数据库交互

1.后台操作

1.1 导入会议OA后台项目

        将资料中的minoa项目导入到我们的IDEA开发工具中,并验证是否能获取后台数据库数据,选择该项目的pom.xml文件

        导入项目成之后还要检查Maven以及网络地址是否是阿里云的网址,通过点击右下角项目导入进度条查看

1.2 导入数据库文件以及配置数据库连接

        将数据库压缩包解压,在mysql数据库中新建一个mybatis_oapro数据库,在该数据库中运行文件

1.3 启动后台验证是否拿到数据库数据

       在MinoaApplication.java类中运行main方法即可,在网页中访问接口看是否有json数据显示。

2. 前台操作

2.1 关闭mock.js

       防止干扰我们实现后台交互

2.2  删除原有死数据及配置接口

2.3 定义函数访问获取后台数据

loadMeetingInfo(){
    let that=this;
    wx.request({
            url: api.IndexUrl,
            dataType: 'json',
            success(res) {
              console.log(res)
              that.setData({
                lists:res.data.data.infoList
              })
            }
          })
  },

调用函数

        因为我们后台数据库中没有图片,设置默认图片

页面效果

二、利用工具类优化代码

       在utils文件中的util.js文件封装一个函数用于方便使用请求后台数据方法

util.js

const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()
  return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
}
const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}
/**
 * 封装微信的request请求
 */
function request(url, data = {}, method = "GET") {
  return new Promise(function (resolve, reject) {
    wx.request({
      url: url,
      data: data,
      method: method,
      header: {
        'Content-Type': 'application/json',
      },
      success: function (res) {
        if (res.statusCode == 200) {
            resolve(res.data);//会把进行中改变成已成功
        } else {
          reject(res.errMsg);//会把进行中改变成已失败
        }
      },
      fail: function (err) {
        reject(err)
      }
    })
  });
}
module.exports = {
  formatTime,request
}

       在我们界面.js中应用工具类

        优化我们的请求代码

这就是我们优化后的请求方法,reqest()中填写请求路径,then中是绑定数据

三、 wxs的使用及完善页面显示

3.1 wxs的介绍

       在微信小程序中,WXS 是指微信小程序的自定义模板语言,全称是 “Weixin Script”。WXS 可以在小程序的 wxml 文件中使用,用于对数据进行处理和展示。它类似于 JavaScript,但相比之下更加简洁和轻量,适用于小程序的前端开发场景。

       通过 WXS,你可以进行一些简单的逻辑运算、数据格式化、条件判断等操作,方便地对数据进行处理和渲染。可以在 wxml 文件中使用 <wxs> 标签定义和引用 WXS 模块,并在模块中编写相应的逻辑代码。

模块

每一个 .wxs 文件和 <wxs> 标签都是一个单独的模块。

每个模块都有自己独立的作用域。即在一个模块里面定义的变量与函数,默认为私有的,对其他模块不可见。

一个模块要想对外暴露其内部的私有变量与函数,只能通过 module.exports 实现

3.2 使用wxs完善页面显示

       在utils文件下创建一个coom.wxs用于编写函数实现数据转换,定义所需函数

comm.wxs

// /pages/comm.wxs
// 将状态数字转为汉字
function getStateName(state){
   if(state == 1){
    return "待审核"
   }else if(state == 2){
    return "审核通过"
   }else if(state == 3){
    return "审核不通过"
   }else if(state == 4){
    return "待开会议"
   }
   return "未定"
}
// 计算参加会议的人数
function getPersonNum(canyuze,liexize,zhuchiren){
     var person = canyuze + "," + liexize + "," + zhuchiren;
     var personnum = [];
     personnum= person.split(",");
     var num =[];
     for (var i = 0; i < personnum.length; i++) {
      if (num.indexOf(personnum[i]) === -1) {
        num.push(personnum[i]);
      }
    }
    return num.length;
}
function formatDate(ts, option) {
  var date = getDate(ts)
  var year = date.getFullYear()
  var month = date.getMonth() + 1
  var day = date.getDate()
  var week = date.getDay()
  var hour = date.getHours()
  var minute = date.getMinutes()
  var second = date.getSeconds()
  //获取 年月日
  if (option == 'YY-MM-DD') return [year, month, day].map(formatNumber).join('-')
  //获取 年月
  if (option == 'YY-MM') return [year, month].map(formatNumber).join('-')
  //获取 年
  if (option == 'YY') return [year].map(formatNumber).toString()
  //获取 月
  if (option == 'MM') return  [mont].map(formatNumber).toString()
  //获取 日
  if (option == 'DD') return [day].map(formatNumber).toString()
  //获取 年月日 周一 至 周日
  if (option == 'YY-MM-DD Week')  return [year, month, day].map(formatNumber).join('-') + ' ' + getWeek(week)
  //获取 月日 周一 至 周日
  if (option == 'MM-DD Week')  return [month, day].map(formatNumber).join('-') + ' ' + getWeek(week)
  //获取 周一 至 周日
  if (option == 'Week')  return getWeek(week)
  //获取 时分秒
  if (option == 'hh-mm-ss') return [hour, minute, second].map(formatNumber).join(':')
  //获取 时分
  if (option == 'hh-mm') return [hour, minute].map(formatNumber).join(':')
  //获取 分秒
  if (option == 'mm-dd') return [minute, second].map(formatNumber).join(':')
  //获取 时
  if (option == 'hh')  return [hour].map(formatNumber).toString()
  //获取 分
  if (option == 'mm')  return [minute].map(formatNumber).toString()
  //获取 秒
  if (option == 'ss') return [second].map(formatNumber).toString()
  //默认 时分秒 年月日
  return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
function formatNumber(n) {
  n = n.toString()
  return n[1] ? n : '0' + n
}
function getWeek(n) {
  switch(n) {
      case 1:
      return '星期一'
      case 2:
      return '星期二'
      case 3:
      return '星期三'
      case 4:
      return '星期四'
      case 5:
      return '星期五'
      case 6:
      return '星期六'
      case 7:
      return '星期日'
  }
}
module.exports = {
  getStateName:getStateName,
  getPersonNum:getPersonNum,
  formatDate:formatDate
};

      在.wxml中引用coom.wxs文件,并使用函数

<wxs src="/utils/coom.wxs" module="tools" />

3.3 最终页面显示

 

        本期的博客分享到此结束,希望大家能够三连加关注博客,这是对博主最大的支持。后续会继续分享该项目的博客文章继续完善该项目

目录
相关文章
|
3月前
|
存储 安全 小程序
在微信小程序中使用 Vant 时如何确保数据的安全?
在微信小程序中使用 Vant 时如何确保数据的安全?
40 1
|
2月前
|
小程序 JavaScript 开发工具
|
2月前
|
缓存 小程序 UED
如何利用小程序的生命周期函数实现数据的加载和更新?
如何利用小程序的生命周期函数实现数据的加载和更新?
74 4
|
2月前
|
移动开发 小程序 数据可视化
微信小程序可视化开发工具之动态数据
微信小程序可视化开发工具之动态数据
44 3
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
633 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
726 1
|
2月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
130 7
ly~
|
3月前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
83 6
|
2月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
225 1
|
2月前
|
小程序 前端开发 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【10月更文挑战第3天】随着移动互联网的发展,微信小程序凭借便捷的用户体验和强大的社交传播能力,成为企业拓展业务的新渠道。本文探讨了小程序全栈开发中的身份认证与授权机制,包括手机号码验证、微信登录、第三方登录及角色权限控制等方法,并强调了安全性、用户体验和合规性的重要性,帮助开发者更好地理解和应用这一关键技术。
80 5