后台:Springboot+mybatis
前台:微信小程序
数据库:MySQL
插件:lombok
工具:idea、sqlyog、微信开发者工具、natapp内网穿透工具(手机端调试使用)
接口:聚合接口、腾讯地图
var that = this
//文字逐个显示
var story = "每个执着的人,都有一个信念:“终有一天,梦想能够到达的地方,脚步也能到达!”";
var i = 0;
var time = setInterval(function () {
var text = story.substring(0, i);
i++;
that.setData({
text: text
});
if (text.length == story.length) {
// console.log("定时器结束!");
clearInterval(time);
}
}, 300)
文字跑马灯的效果是我自己从网上百度来的,这个在网上其实有很多,诸位有兴趣可以自行百度,我这里只贴出代码,因为这并没有什么可讲的。
@Select("SELECT COUNT(1) FROM t_user WHERE name=#{name}")
int queryOneName(String name);
var index = opts.currentTarget.dataset.index;
// console.log('下标为:', opts.currentTarget.dataset.index)
var params = this.data.params[index];
console.log('参数为:', params);
onPullDownRefresh: function() {
// 显示顶部刷新图标
wx.showNavigationBarLoading();
page = page + 1;//顶部全局那里定义过了一个var page=1;
console.log('page:' + page);
wx.request({
url: '',//放聚合接口并传递参数
method: "GET",
success: e => {
console.log(e.data.result.data);
this.setData({
laughStories: e.data.result.data
})
// 隐藏导航栏加载框
wx.hideNavigationBarLoading();
// 停止下拉动作
wx.stopPullDownRefresh();
}
})
},
servicewechat.com
// pages/tianqi/tianqi.js
var app = getApp();
var qqMap = require('../../qqmap-wx-jssdk1.2/qqmap-wx-jssdk.min.js');
var qqmapsdk;
Page({
/**
* 页面的初始数据
*/
data: {
alldata: '',
future: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
var that = this;
qqmapsdk = new qqMap({
key: '' // 填自己申请的腾讯api的key;
});
//1、获取当前位置坐标
wx.getLocation({
type: 'wgs84',
success: function(res) {
// console.log("信息:", res);
//2、根据坐标获取当前位置名称,显示在顶部:腾讯地图逆地址解析
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function(e) {
//var location = e.result.address;
console.log("百度地图:", e.result.address_component.city);//这里下腾讯api提供给小程序的js包
var locity = e.result.address_component.city;
let str = locity;
console.log(str.replace("市", ""));
var locitynane = str.replace("市", "");
// 开始进行聚合接口请求 start
wx.request({
url: '',//聚合接口地址
success: function(e) {
console.log(e.data.result);
that.setData({
alldata: e.data.result,
future: e.data.result.future
})
}
}) // 聚合接口请求 end
},
fail:function(e){
console.log(e)
}
})
}
})
},
这里在做的时候还有个小问题,就是腾讯地图api获取到的地区数据是什么什么市,比如无锡市、南京市;而聚合接口这边要的是无锡、南京,我当时的第一反应是用正则去掉。百度了一会之后觉的太麻烦,既然小程序里有match这个方法,那我觉得应该也有replace,果不其然还真有。于是用replace把市换成了“”。
objectMultiArray: [ ['1', '4'], ['a1', 'a2', 'b1', 'b2', 'c1', 'c2'] ],
一个一个试出来的,这里最烦人 // console.log(this.data.objectMultiArray[0][this.data.multiIndex[0]]); //subject参数
// console.log(this.data.objectMultiArray[1][this.data.multiIndex[1]]); //model参数
//这里快搞死我了,妈的!
var subject = this.data.objectMultiArray[0][this.data.multiIndex[0]];
var model = this.data.objectMultiArray[1][this.data.multiIndex[1]];
四、个人页
做个人页的时候遇到的问题就是如何在页面刚一打开的时候,他里面就存在一个参数——传值。但是怎么传递了?我在前一篇博客里刚刚具体的阐述过,我放个超链接https://blog.csdn.net/Curtisjia/article/details/103076387,具体的实现思路是构建缓存。
wx.setStorage({
key: 'userInfo',
data: name
})//设置缓存
当时我的个人页的头像是自己上传的,上传头像功能也确实做出来了,在缓存那篇博客里也列出了源码,为什么取消这个功能了?是因为我后来发现一旦后台打开,后面用户提交的头像虽然可以传到本地,但是回调的时候却找不到图片,我后来经过测试发现,如果后台再重启,这个问题就会消失,这说明用户在服务开启之后提交到本地的头像不会回读,所以我就放弃了这个功能改用用户自己微信头像。
<open-data type="userAvatarUrl" style='border-radius:50%;overflow:hidden;display:block;height:25vw;width:25vw;margin-left:5vw'></open-data>
实现效果如下图
点击详情
详细用hidden属性隐藏起来,通过单双数点击判断
onclick:function(e){
// console.log(e);
// var i=0;
i=i+1;
// console.log(i);
if(i%2==1){
this.setData({
flag:false
})
}
else{
this.setData({
flag: true
})
}
},
wx.makePhoneCall({
phoneNumber: '',//电话号码
})
点击退出
tuichu: function() {
wx.reLaunch({
url: '../login/login'
})
//退出后清除缓存!
wx.clearStorage();
},
五、管理员登录页
登录成功之后的效果图
点击修改
点击删除
就删除了!
我以前学Java的时候倒也写过一些小项目(说项目这个词都有点亏心),但是独立性都不算很高。其实我的这个小程序也是面向百度写出来的,在所有的项目里,这个完整性最高耗时最长了(将近一个月),做完之后觉得自己不仅对小程序的了解更上了一层楼,对springboot也不再仅仅局限于普通的crud了,也巩固了自己以前的一些Java知识。更主要的是自己在心里树立起了一些信心把!
本身这个小程序做的并没有什么方向,这6个功能基本上都是聚合接口提供出来的免费接口,我自己懒得造数据,设计表。后面的话,也会依靠springboot做一些网页,到时候也会将自己做页面时遇到的问题和心得分享出来。感谢各位!