在日常开发中,后端主要提供数据以及处理业务逻辑,前端主要提供页面布局以及数据展示。后端程序员对于页面布局接触比较少,但是小程序有健全的文档说明、页面布局也相对简单,实现上去相对简单一些。而且小程序相对于安卓或则IOS初审机制也相对简单一些。本文介绍怎样实现一个简单获取IP归属地的小程序。
效果展示
页面主要有两个功能:
页面布局从上往下分成三部份:
实现步骤
将三个布局从上往下,从上往下依次编撰,并配置款式和布局解读。
顶部展示(第一部分)
实现疗效:
设置一个红色布局,设置白色背景,宽度为100%,高度为330rpx。
"height: 100%;width: 100%;">
"width: 100%;height: 330rpx;background-color: #6e74dd">
2、 里面分成两个布局,左边显示文字,右边显示一个小图标。
详情代码:
# xwml
"ip_intro left_float">
"font-size:x-large">IP地址归属地
"padding-top: 3%;">一键查询 快速方便
"left_float intro_icon">
"width: 80px;height: 80px;" src="/images/ip_search.png" mode="heightFix">
# wxss
.left_float {
float: left;
}
.ip_intro {
padding-left: 5%;
padding-top: 10%;
color: white;
}
.intro_icon {
padding-left: 25%;
margin-top: 8%;
}
效果展示:
中间展示(第二部份)
实现疗效:
详情代码:
# wxml
"clean_float local_div">
"left_float">
"local_bar">
"left_float local_text">
当前IP地址:{{localIp}}
"margin-top: 12rpx;">归属地:{{localAddress}}
# wxss
.clean_float {
clear:both;
}
.local_div {
width: 90%;
height: 130rpx;
margin: 0 auto;
background-color: #ffffff;
margin-top: -10%;
border-radius: 10px;
}
.local_bar {
margin-left: 30rpx;
margin-top: 50rpx;
border-radius: 2px;
width: 8rpx;
height: 50rpx;
background-color: #6e74dd;
}
.local_text {
font-size: small;
margin-left: 25rpx;
margin-top: 35rpx;
}
# js
data: {
localIp: "---",
localAddress: "---"
}
var that = this;
wx.request({
url: "htts://www.jeremy7.cn/springboot-schedule/holiday/ip-address",
success (res){
var data = res.data;
that.setData({
localAddress:data.address,
localIp:data.ip
})
}
})
效果展示:
尾部部份(第三部份)
实现疗效:
尾部部份是IP归属地的查询,根据用户输入的IP查询归属地。
详情代码如下:
# wxml
"ip_find">
"ip_find_text">IP归属地查询
"ip_input" type="text" bindinput="changeIp"/>
"ip_find_btn">
"findAddress">查询
"result_div" wx:if="{{showResult}}">
"left_float">
"local_bar">
"left_float local_text">
当前IP地址:{{resultIp}}
"margin-top: 12rpx;">归属地:{{resultAddress}}
# wxss
.ip_find {
width: 90%;
height: 700rpx;
margin: 0 auto;
background-color: #ffffff;
margin-top: 20px;
border-radius: 10px;
}
.ip_input {
height: 78rpx;
background-color: #F5F5F5;
width: 90%;
margin: 30rpx auto;
border-radius: 24px;
text-align: center;
line-height:78rpx;
}
.ip_find_text {
padding-top: 28px;
padding-left: 20px;
font-weight: bolder;
}
.ip_find_btn {
height: 78rpx;
background-color: #6e74dd;
width: 90%;
margin: 0 auto;
border-radius: 24px;
text-align: center;
line-height:78rpx;
}
# js
findAddress() {
var that = this;
var searchIp = this.data.searchIp;
console.log(searchIp);
var valid = that.isValidIP(searchIp);
if(!valid) {
wx.showToast({
title: "请填写正确 IP",
icon: 'none',
duration: 2000
})
return;
}
that.searchAddress(searchIp);
},
searchAddress(searchIp) {
var that = this;
wx.request({
url: "htts://www.jeremy7.cn/springboot-schedule/holiday/ip-address",
data: {
ip:searchIp
},
success (res){
var data = res.data;
var data = res.data;
that.setData({
resultAddress:data.address,
resultIp:data.ip,
showResult:true
})
}
})
},
// 验证 IP 规格合法
isValidIP(ip) {
var reg = /^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$/;
return reg.test(ip);
},
changeIp: function (e){
this.setData({
searchIp: e.detail.value
})
},
总结小程序展示
打开陌陌扫一扫,查看你的IP归属地:
原文始发于微信公众号(小码Code):后端程序员实现一个IP归属地的小程序