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

编程入门 行业动态 更新时间:2024-10-15 00:22:51

微信小程序开发之会议OA首页后台数据交互(内带新<a href=https://www.elefans.com/category/jswz/34/1770093.html style=知识点分享)"/>

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

目录

前言

一、后台数据库交互

1.后台操作

1.1 导入会议OA后台项目

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

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

2. 前台操作

2.1 关闭mock.js

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

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

页面效果 

 二、利用工具类优化代码

 util.js

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

3.1 wxs的介绍

模块

 3.2 使用wxs完善页面显示

 comm.wxs

3.3 最终页面显示

 ​编辑


前言

        在前面的几期博客中我们都对会议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() + 1const 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() + 1var 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 最终页面显示

 

 

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

 

更多推荐

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

本文发布于:2023-12-06 07:35:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1666888.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:知识点   首页   程序开发   后台   会议

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!