master
zjnbshifox 4 days ago
parent 71258e224b
commit ef2045078e

@ -0,0 +1,603 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
<title>红色教育</title>
<script src="/vue.min.js"></script>
<script src="/axios.min.js"></script>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="/index.css?640523">
<link rel="stylesheet" href="__IMG__/lunbo/swiper.min.css">
<link rel="stylesheet" href="__IMG__/lunbo/demo.css">
<script src="__IMG__/lunbo/swiper.min.js"></script>
<style>
.tabs {
display: flex;
}
.tabs ul {
list-style-type: none;
display: flex;
}
.tabs ul li {
padding: 0px 10px;
height: 50px;
line-height: 50px;
text-align: center;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
font-size: 18px;
color: rgba(0,0,0,0.45)
}
.tabs ul .isactive {
color: #000;
border-bottom: 4px solid red;
z-index: 9;
}
.blue .left{
background: #02b9f6 !important;
}
.blue .right{
background: #02b9f6 !important;
}
.tongTitle2{
color: #333333; font-size: 16px;font-weight: bold; text-align: left;
margin-left:15px;
background: url("__IMG__/bg3.png") no-repeat left bottom;
}
</style>
</head>
<body><div id="app" :class="bodyOver?'van-over':''" >
<!-- <div class="toptitle">国防爱国主义教育</div>-->
<img src="__IMG__/red.jpg" style="width:100%;display: block" />
<!-- <div class="bottomDiv" style="padding-top: 20px;">-->
<!-- <div class="beforeCon">-->
<!-- <div class="title"><img src="__IMG__/icon2.png" />前言<img src="__IMG__/icon1.png" /></div>-->
<!-- <div class="content">-->
<!-- 通过严格、系统的国防爱国主义教育,提高学生的政治觉悟,激发爱国热情,发扬革命英雄主义精神,培养艰苦奋斗,刻苦耐劳的坚强毅力和集体主义精神,增强国防观念和组织纪律性,养成良好的学风和生活作风,提高自理自立能力,领悟"立德、力学、力行、立新"的真正含义,掌握基本军事知识与技能。-->
<!-- </div>-->
<!-- </div>-->
<!-- <div style="font-weight: bold;text-align: center">-->
<!-- <div style="display: inline;position:relative;text-align: center;">-->
<!-- <img src="__IMG__/jicon0.png" style="position: absolute;left:-30px;"/>-->
<!-- 在这里你将会<br />得到</div>-->
<!-- <div style="clear: both;"></div>-->
<!-- </div>-->
<!-- <div style="display: flex;margin-top: 30px;">-->
<!-- <div style="flex: 1;margin:10px 5px 10px 10px;background: #F5F1F4;">-->
<!-- <div style="color:#298A52;font-size: 14px;text-align: center">-->
<!-- <div style="margin: 0 auto;margin-top:-20px;"><img src="__IMG__/jicon1.png" /></div>-->
<!-- 培养爱国主义精神</div>-->
<!-- <div style="color:#666666;font-size: 12px;padding: 5px;">充分认清加强国防建设,增强国家综合国力的重大意义,要不断增强努力学习,抱效祖国的责任感和使命感。</div>-->
<!-- </div>-->
<!-- <div style="flex: 1;margin:10px 10px 10px 5px;background: #F5F1F4;">-->
<!-- <div style="color:#298A52;font-size: 14px;text-align: center">-->
<!-- <div style="margin: 0 auto;margin-top:-20px;"><img src="__IMG__/jicon2.png" /></div>-->
<!-- 增强国防观念</div>-->
<!-- <div style="color:#666666;font-size: 12px;padding: 5px;">对中学生进行国防观念教育,对于进一步激发青少年爱国热情,增强建设祖国、保卫祖国的责任感,更好地担负起时代赋予的历史使命,是十分重要和必要的。 </div>-->
<!-- </div>-->
<!-- </div>-->
<div class="tongTitle2">
报名须知
</div>
<div class="tongContent">
①缴费报名前请先确认红色教育时间及学校,再点击“马上报名”,进入页面后按照栏目信息提示填写学生缴费信息,确认无误后点击“提交信息”,进入页面后再次确认报名信息无误后点击“确认提交”,最后进入页面确认无误后点击“确认支付”。<br/>
</div>
<div class="tongTitle2">
红色教育时间及学校报名
</div>
<div class="tongContent">
<div class="tabs">
<ul>
{for start=":date('Y')*-1" end="-2020" }
<li><span class="tabSpan" @click="chooseYear($event)">{$i*-1}年</span></li>
{/for}
</ul>
</div>
<div class="content blue" id="yearcontent">
</div>
<!--1-1-->
<!-- {volist name="$data['son']" id="vo"}
{if condition="$vo['max_num'] eq $vo['buy_num']"}
<div class="enroll">
<div class="left">{$vo['title']}</div>
<div class="middle">
<div>报名人数{$vo['buy_num']}</div>
<div class="progress">
<div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>
</div>
<div>{$vo['start_time']}-{$vo['end_time']}</div>
</div>
<div class="right">
已满营
</div>
</div>
{else /}
{if condition="$vo['end_time'].' 16' < date('Y-m-d H')"}
<div class="enroll">
<div class="left">{$vo['title']}</div>
<div class="middle">
<div>报名人数{$vo['buy_num']}</div>
<div class="progress">
<div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>
</div>
<div>{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}</div>
</div>
<div class="right">已截止</div>
</div>
{else /}
<div class="enroll">
<div class="left">{$vo['title']}</div>
<div class="middle">
<div>报名人数{$vo['buy_num']}</div>
<div class="progress">
<div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>
</div>
<div>{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}</div>
</div>
<div class="right" data-title="{$vo['title']}" data-start_time="{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}" data-school="{$vo['title']}" data-style="{$vo['style']}" data-id="{$vo['id']}" @click="enroll($event)">马上报名</div>
</div>
{/if}
{/if}
{/volist} -->
<!--活动1结束-->
</div>
<!-- <div class="tongContent">-->
<!-- &lt;!&ndash;1-1&ndash;&gt;-->
<!-- {volist name="$data['son']" id="vo"}-->
<!-- {if condition="$vo['max_num'] eq $vo['buy_num']"}-->
<!-- <div class="enroll">-->
<!-- <div class="left">{$vo['title']}</div>-->
<!-- <div class="middle">-->
<!-- <div>报名人数{$vo['buy_num']}</div>-->
<!-- <div class="progress">-->
<!-- <div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>-->
<!-- </div>-->
<!-- <div>{$vo['start_time']}-{$vo['end_time']}</div>-->
<!-- </div>-->
<!-- <div class="right">-->
<!-- 已满营-->
<!-- </div>-->
<!-- </div>-->
<!-- {else /}-->
<!-- {if condition="$vo['end_time'].' 16' < date('Y-m-d H')"}-->
<!-- <div class="enroll">-->
<!-- <div class="left">{$vo['title']}</div>-->
<!-- <div class="middle">-->
<!-- <div>报名人数{$vo['buy_num']}</div>-->
<!-- <div class="progress">-->
<!-- <div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>-->
<!-- </div>-->
<!-- <div>{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}</div>-->
<!-- </div>-->
<!-- <div class="right">已截止</div>-->
<!-- </div>-->
<!-- {else /}-->
<!-- <div class="enroll">-->
<!-- <div class="left">{$vo['title']}</div>-->
<!-- <div class="middle">-->
<!-- <div>报名人数{$vo['buy_num']}</div>-->
<!-- <div class="progress">-->
<!-- <div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>-->
<!-- </div>-->
<!-- <div>{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}</div>-->
<!-- </div>-->
<!-- <div class="right" data-title="{$vo['title']}" data-time="{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}" data-style="{$vo['style']}" data-school="{$vo['title']}" data-id="{$vo['id']}" @click="enroll($event)">马上报名</div>-->
<!-- </div>-->
<!-- {/if}-->
<!-- {/if}-->
<!-- {/volist}-->
<!-- &lt;!&ndash;活动1结束&ndash;&gt;-->
<!--</div>-->
<!--弹窗显示-->
<div class="pop_bg" v-show="popShow" @click="enrollClose">
</div>
<div class="pop_con" v-show="popShow">
<div class="close" @click="enrollClose"><img src="__IMG__/iconClose.png" /></div>
<div style="margin:0 20px;">
<div class="list" style="color:red;font-weight: 500;font-size: 16px;">{{addForm.school}}</div>
<div class="list">活动时间:{{start_time}}</div>
<!--<div class="list">活动价格:{{price}}</div>-->
<div style="align-items:center; display: -webkit-flex;justify-content:center; display: -webkit-flex;margin:20px 0px;">
<div style="height: 1px;border-top:1px solid #E6E6E6;flex: 1;"></div>
<div style="margin:0 10px;font-size: 12px;color: #666666">信息填写</div>
<div style="height: 1px;border-top:1px solid #E6E6E6;flex: 1;"></div>
</div>
<div :class="canSub===false?'myInput':'myInput inputDis'" style="display:flex;align-items: center;">性别<span>*</span>
<div style="width:20px;"></div><input style='width: 16px;height:16px;' value="1" v-model='addForm.sex' type="radio" />
<div style="width:20px;"></div><input style='width: 16px;height:16px;' value="2" v-model='addForm.sex' type="radio" />
</div>
<div :class="canSub===false?'myInput':'myInput inputDis'">
姓名<span>*</span><input @blur="handleInput" class='inputText' v-model='addForm.name' type="text" :readonly="canSub===false ? false : 'readonly'"/></div>
<div :class="canSub===false?'myInput':'myInput inputDis'">学校<span>*</span><input @blur="handleInput" class='inputText' v-model='addForm.school' type="text" readonly="'readonly'"/></div>
<div :class="canSub===false?'myInput':'myInput inputDis'">班级<span>*</span>
<!--<input @blur="handleInput" class='inputText' v-model='addForm.grade' placeholder="例如:高一2班" type="text" :readonly="canSub===false ? false : 'readonly'"/>-->
<select @blur="handleInput" class='inputText' v-model='addForm.grade' :readonly="canSub===false ? false : 'readonly'">
<option value="">请选择班级</option>
<option v-for="item in acClass" :value="item.name">{{item.name}}</option></select>
</div>
<div :class="canSub===false?'myInput':'myInput inputDis'">手机<span>*</span><input @blur="handleInput" class='inputText' v-model='addForm.phone' type="text" :readonly="canSub===false ? false : 'readonly'"/></div>
<!--<div :class="canSub===false?'myInput':'myInput inputDis'">身份证<span>*</span><input @blur="handleInput" class='inputText' v-model='addForm.sfz' type="text" :readonly="canSub===false ? false : 'readonly'"/></div>-->
</div>
<div class="myBottom">
<div v-if="!canSub" :class="canSubBg===true?'myInputSub shiColor':'myInputSub'" @click="submitData">提交信息</div>
<div v-if="canSub" class="myInputSub kongColor" @click="canSub=false">修改信息</div>
<div v-if="canSub" class="myInputSub shiColor" @click.once="submitPay">确认提交</div>
</div>
</div>
</div></body>
<script>
new Vue({
el: '#app',
data: {
popShow:false,
title:'',
start_time:'',
style:'',
price:'',
acClass:[],
addForm:{
'name':'',
'sex':0,//1男2女
'school':'',
'grade':'',
'phone':'',
'sfz':'',
'id':''
},
canSub:false,//是否能提交
canSubBg:false,//改变背景颜色
bodyOver:false,//不允许body滚动
time:""
},
mounted () {
let arr = document.getElementsByClassName('tabSpan')
arr[0].classList.add('isactive')
let date = new Date()
this.getYearSchool(date.getFullYear())
// this.getData()
},
methods:{
// 选择年份
chooseYear(e){
let yearcontent = document.getElementById('yearcontent')
let year = e.target.innerText.substring(0,4)
console.log(e.target.innerText.substring(0,4))
if (year % 2 === 0) {
yearcontent.classList.add('green')
yearcontent.classList.remove('blue')
} else {
yearcontent.classList.add('blue')
yearcontent.classList.remove('green')
}
let arr = document.getElementsByClassName('tabSpan')
for (let i = 0; i < arr.length; i++) {
arr[i].classList.remove('isactive')
}
e.srcElement.classList.add('isactive')
this.getYearSchool(year)
},
getData () {
let content = document.getElementsByClassName('tongContent')
let yearcontent = document.getElementById('yearcontent')
console.log(this.datas)
this.datas.forEach((item, index) => {
let listGroup = ''
let divs = document.createElement('div')
divs.classList.add('enroll')
if (item.max_num === item.buy_num) {
console.log(12312313)
listGroup += "<div class='left'>" + item.title + "</div>\
<div class='middle'>\
<div>报名人数" + item.buy_num + "</div>\
<div class='progress'>\
<div class='progressSon' style='width:" + item.buy_num / item.max_num * 100 + '%' + "'></div>\
</div>\
<div>" + item.start_time + '-' + item.end_tiem + "</div>\
</div>\
<div class='right'>\
已满营\
</div>"
} else {
console.log(2222)
if (this.judgeDate(item.end_time)) {
console.log(3333)
listGroup += "<div class='left'>" + item.title + "</div>\
<div class='middle'>\
<div>报名人数" + item.buy_num + "</div>\
<div class='progress'>\
<div class='progressSon' style='width:" + item.buy_num / item.max_num *100 + '%' + "'></div>\
</div>\
<div>" + item.start_time_temp + "</div>\
</div>\
<div class='right'>\
已截止\
</div>"
} else {
console.log(444)
listGroup += "<div class='left'>" + item.title + "</div>\
<div class='middle'>\
<div>报名人数" + item.buy_num + "</div>\
<div class='progress'>\
<div class='progressSon' style='width:" + item.buy_num / item.max_num *100 + '%' + "'></div>\
</div>\
<div>" + item.start_time_temp + "</div>\
</div>\
<div class='right click' id='" +index + "'>马上报名</div>"
}
}
divs.innerHTML = listGroup
yearcontent.appendChild(divs)
})
let that = this
let clicks = document.getElementsByClassName('click')
for (let i = 0; i < clicks.length; i++) {
clicks[i].onclick = function (e) {
let index = this.id
console.log(this.id)
console.log(that.datas[index])
that.title = that.datas[index].title;
that.start_time = that.datas[index].start_time + '-' + that.datas[index].end_time;
that.style = that.datas[index].style;
that.price = that.datas[index].price;
that.addForm.id =that.datas[index].id;
that.addForm.school = that.datas[index].title;
console.log(that.title,that.start_time,that.style,that.addForm.id)
that.popShow = true
that.bodyOver = true
//去获取班级
axios.post('/index.php/index/index/getClass',{aid:that.addForm.id}).then(res=>{
console.log(res)
that.acClass=res.data
}).catch(function (error) { // 请求失败处理
// console.log(error);
});
}
}
},
getYearSchool (v) {
let content = document.getElementById('yearcontent')
$(content).empty()
//获取当年学校
axios.post('/index.php/index/index/redYear',{year: v}).then(res=>{
console.log(res)
if (res.data.code == 0) {
this.datas= []
console.log(this.datas)
res.data.data & res.data.data.forEach(item => {
// let obj = {
// id: item.id,
// title: item.title,
// min_num: item.min_num,
// max_num: item.max_num,
// price: item.price,
// style: item.style,
// parentid: item.parentid,
// sonid: item.sonid,
// buy_num: item.buy_num,
// start_time_temp: item.start_time_temp,
// start_time: this.dates(item.start_time),
// end_time: this.dates(item.end_tiem)
// }
this.datas.push(item)
})
}
this.getData()
}).catch(function (error) { // 请求失败处理
// console.log(error);
});
},
// 判断是否截止
judgeDate (endTime) {
let Time = new Date()
let arr = Time.toLocaleDateString().split('/')
let nowtime = ''
arr.forEach((item, index) => {
nowtime += this.zero(item)
if (index !== arr.length - 1) {
nowtime += '-'
}
})
let endtime = endTime
// let nowtime = Number(nowTime.split('月')[0])
if (endtime < nowtime) {
return true
}
return false
},
zero (str) {
if (Number(str) < 10) {
return '0' + str
}
return str
},
handleInput(){
//判断是否可以提交
if(!this.addForm.name){
return false;
}
if(!this.addForm.sex){
return false;
}
if(!this.addForm.school){
return false;
}
if(!this.addForm.grade){
return false;
}
if(!this.addForm.phone){
return false;
}
// if(!this.addForm.sfz){
// return false;
// }
//改变背景
this.canSubBg=true
},
selectThis(active){
this.active=active
},
enroll(e){
this.title=e.target.dataset.title;
this.time=e.target.dataset.time;
this.start_time=e.target.dataset.start_time;
this.style=e.target.dataset.style;
this.price=e.target.dataset.price;
this.addForm.id=e.target.dataset.id;
this.addForm.school=e.target.dataset.school;
console.log(this.title,this.start_time,this.style,this.addForm.id)
this.popShow=true
this.bodyOver=true
//去获取班级
axios.post('/index.php/index/index/getClass',{aid:this.addForm.id}).then(res=>{
this.acClass=res.data
}).catch(function (error) { // 请求失败处理
// console.log(error);
});
},
enrollClose(){
this.popShow=false
this.bodyOver=false
},
submitData(){
if(!this.addForm.name){
alert('请填写姓名')
return false;
}
if(!this.addForm.school){
alert('请填写学校')
return false;
}
if(!this.addForm.grade){
alert('请填写班级')
return false;
}
if(!this.addForm.grade){
alert('请填写手机')
return false;
}
if(!this.addForm.sex){
alert('请选择性别')
return false;
}
// if(!this.addForm.sfz){
// alert('请填写身份证')
// return false;
// }
this.canSub=true
},
submitPay(){
axios.post('/index.php/index/index/insertOrder',this.addForm).then(res=>{
console.log(res)
if(res.data.code=='SUCCESS'){
//调用支付
location.href = "{:HTTP}{:SITE_URL}/index.php/index/index/dopay/id/"+res.data.id;
}else{
alert(res.data.msg)
}
}).catch(function (error) { // 请求失败处理
console.log(error);
});
}
},
})
$('.pop_bg').css('height',$(window).height())
// $('#app').css('height',$(window).height())
// $('#app').css('overflow','auto')
// 判断设备类型
var judgeDeviceType = function() {
var ua = window.navigator.userAgent.toLocaleLowerCase();
var isIOS = /iphone|ipad|ipod/.test(ua);
var isAndroid = /android/.test(ua);
return {
isIOS: isIOS,
isAndroid: isAndroid
}
}()
// 监听输入框的软键盘弹起和收起事件
function listenKeybord($input) {
if (judgeDeviceType.isIOS) {
// IOS 键盘弹起IOS 和 Android 输入框获取焦点键盘弹起
$input.addEventListener('focus', function() {
console.log('IOS 键盘弹起啦!');
// IOS 键盘弹起后操作
}, false)
// IOS 键盘收起IOS 点击输入框以外区域或点击收起按钮,输入框都会失去焦点,键盘会收起,
$input.addEventListener('blur', () => {
console.log('IOS 键盘收起啦!');
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
// IOS 键盘收起后操作
})
}
// Andriod 键盘收起Andriod 键盘弹起或收起页面高度会发生变化,以此为依据获知键盘收起
if (judgeDeviceType.isAndroid) {
var originHeight = document.documentElement.clientHeight || document.body.clientHeight;
window.addEventListener('resize', function() {
var resizeHeight = document.documentElement.clientHeight || document.body.clientHeight;
if (originHeight < resizeHeight) {
console.log('Android 键盘收起啦!');
// Android 键盘收起后操作
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
} else {
console.log('Android 键盘弹起啦!');
// Android 键盘弹起后操作
}
originHeight = resizeHeight;
}, false)
}
}
var $inputs = document.querySelectorAll('.inputText');
for (var i = 0; i < $inputs.length; i++) {
listenKeybord($inputs[i]);
}
</script>
</html>

@ -0,0 +1,371 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
<title>夏令营报名</title>
<script src="/vue.min.js"></script>
<script src="/axios.min.js"></script>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<link rel="stylesheet" type="text/css" href="/index.css?640523">
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="app" class='summer' >
<!-- <div class="title center">夏令营报名</div> -->
<!-- 选择课程 -->
<el-row class="titleRow align-center" style="margin-top: 50px;">
<span class="text right">
选择课程:
</span>
<el-col :span='20'>
<el-select v-model="curriculum" placeholder="请选择" @change='selectCurriculum'>
<el-option
v-for="item in curriculumOpts"
:key="item.name"
:label="item.name"
:value="item.name">
</el-option>
</el-select>
</el-col>
</el-row>
<!-- 选择课程 几期 -->
<el-row class="titleRow">
<span class="text right" style="line-height: 28px;">
选择课程:
</span>
<el-col :span='20' class="flex flex-wrap">
<div v-for='(item, index) in stage' :key='index' @click='select(item)' class="stage" :class="item.id === selectStage ? 'activeStage' : '' ">
{{item.name}}
</div>
</el-col>
</el-row>
<!-- 活动时间 -->
<el-row class="titleRow align-center">
<span class="text right">
活动时间:
</span>
<el-col :span='20'>
{{activeTime}}
</el-col>
</el-row>
<!-- 报名截止: -->
<el-row class="titleRow align-center">
<span class="text right">
报名截止:
</span>
<el-col :span='20'>
{{endTime}}
</el-col>
</el-row>
<!-- 分割线 -->
<div class="flex align-center" style="margin: 40px 0px 20px">
<div class="divider"></div>
<div style="margin: 0px 15px">信息填写</div>
<div class="divider"></div>
</div>
<!-- 姓名 -->
<div class="infoRow align-center">
<span class="text right">
<span class="red " >*</span>
姓名
</span>
<el-col :span='16'>
<el-input v-model='name' placeholder='请输入学生姓名'></el-input>
</el-col>
</div>
<!-- 性别 -->
<div class="infoRow align-center">
<span class="text right" >
<span class="red " >*</span>
性别
</span>
<el-col :span='16'>
<el-radio v-model="sex" label="1"></el-radio>
<el-radio v-model="sex" label="2"></el-radio>
</el-col>
</div>
<!-- 手机 -->
<div class="infoRow align-center">
<span class="text right">
<span class="red " >*</span>
手机
</span>
<el-col :span='16'>
<el-input v-model='phone' placeholder='请填写手机号'></el-input>
</el-col>
</div>
<!-- 学校 -->
<div class="infoRow align-center">
<span class="text right">
学校
</span>
<el-col :span='16'>
<el-input v-model='school' placeholder='请填写学校名称'></el-input>
</el-col>
</div>
<!-- 班级 -->
<div class="infoRow align-center">
<span class="text right">
班级
</span>
<el-col :span='16'>
<el-input v-model='studentClass' placeholder='请填写班级'></el-input>
</el-col>
</div>
<el-row class="flex btnBox" v-if='btnStatus'>
已截止报名
</el-row>
<el-row class="flex btnBox" v-else>
<el-button class="btn" @click='submit' >提交信息</el-button>
</el-row>
</div>
</body>
<script>
new Vue({
el: '#app',
data: {
newDate: '',
dataList: [],
curriculum: '',
curriculumOpts: [],
selectStage: '',
stage: [],
activeTime: '',
endTime: '',
name: null,
sex: '1',
phone: '',
school: '',
studentClass: '',
btnStatus: false
},
created () {
let data = new Date()
this.newDate = data.getFullYear() + '-' + this.buling(data.getMonth() + 1) + '-' + this.buling(data.getDate())
this.getData()
},
watch: {
endTime(val) {
console.log(val)
if (val <= this.newDate) {
this.btnStatus = true
} else {
this.btnStatus = false
}
}
},
methods:{
buling (val) {
if (Number(val) < 10) {
return '0' + val
}
return val
},
getData () {
axios.post('/index.php/index/index/orderList',{type:1}).then(res=>{
console.log(res)
this.dataList = res.data
this.curriculumOpts = []
this.stage = []
if (res.data) {
res.data.forEach(item => {
let obj = {
name: item.title
}
this.curriculumOpts.push(obj)
})
this.curriculum = res.data[0].title
res.data[0].son.forEach(item => {
let obj = {
id: item.id,
name: item.title,
start_time_temp: item.start_time_temp,
end_time: item.start_time
}
this.stage.push(obj)
})
this.selectStage = res.data[0].son[0].id
this.activeTime = res.data[0].son[0].start_time_temp
this.endTime = res.data[0].son[0].start_time + ' 00:00'
}
})
},
submitData(){
if(!this.name){
alert('请填写姓名')
return false;
}
if(!this.phone){
alert('请填写手机')
return false;
}
if(!this.sex){
alert('请选择性别')
return false;
}
return true
},
selectCurriculum (val) {
this.dataList.forEach(item => {
if (val === item.title) {
this.stage = []
this.selectStage = item.son[0].id
item.son.forEach(items => {
let obj = {
id: items.id,
name: items.title,
start_time_temp: items.start_time_temp,
end_time: items.start_time
}
this.stage.push(obj)
})
this.activeTime = this.stage[0].start_time_temp
this.endTime = this.stage[0].end_time + ' 00:00'
}
})
},
// 选择第几期
select (val) {
console.log(val)
this.selectStage = val.id
this.activeTime = val.start_time_temp
this.endTime = val.end_time + ' 00:00'
},
submit () {
let pass = this.submitData()
if (pass) {
let params = {
id: this.selectStage,
grade: this.studentClass,
name: this.name,
school: this.school,
sex: this.sex,
phone: this.phone,
type: 2
}
axios.post('/index.php/index/index/insertOrder',params).then(res=>{
console.log(res)
if(res.data.code=='SUCCESS'){
//调用支付
// location.href = "{:HTTP}{:SITE_URL}/index.php/index/index/summerpay/"+res.data.id
location.href = "{:HTTP}{:SITE_URL}/index.php/index/index/dopay/id/"+res.data.id;
}else{
alert(res.data.msg)
}
}).catch(function (error) { // 请求失败处理
console.log(error)
})
}
},
},
})
</script>
<style scoped>
* {
padding: 0px;
margin: 0px;
}
.red {
color: red;
}
.flex {
display: flex;
}
.flex-wrap {
flex-wrap: wrap;
}
.center {
text-align: center;
}
.right {
text-align: right;
}
.align-center{
align-items: center;
}
.summer{
position: relative;
padding: 0px 15px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
height: 100vh;
}
.title{
margin-top: 10px;
margin-bottom: 30px;
width: 100%;
height: 25px;
font-size: 18px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
line-height: 25px;
}
.titleRow{
display: flex;
margin-bottom: 20px;
}
.summer .text{
width: 100px;
}
.el-select .el-input__inner{
border-radius: 30px;
height: 34px;
line-height: 34px;
}
.el-select .el-input__icon{
line-height: 24px;
}
.infoRow .el-input {
height: 34px;
line-height: 34px;
}
.stage{
margin-right: 10px;
margin-bottom: 10px;
background: #F8F8F8;
padding: 4px 20px;
background: #F8F8F8;
border-radius: 4px;
}
.activeStage{
background: #5FD19B;
color: white;
}
.divider{
flex-grow: 1;
height: 1px;
background: #E6E6E6;
}
.infoRow{
display: flex;
margin-bottom: 20px;
}
.infoRow .text{
width: 80px;
margin-right: 10px;
}
.btnBox{
margin-top: 50px;
display: flex;
justify-content: center;
}
.el-button{
width: 300px;
height: 40px;
border-radius: 17px;
background: linear-gradient(#5FD19B, #31A462);
color: #FFFFFF;
}
</style>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

@ -0,0 +1,603 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"/>
<title>红色教育</title>
<script src="/vue.min.js"></script>
<script src="/axios.min.js"></script>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="/index.css?640523">
<link rel="stylesheet" href="__IMG__/lunbo/swiper.min.css">
<link rel="stylesheet" href="__IMG__/lunbo/demo.css">
<script src="__IMG__/lunbo/swiper.min.js"></script>
<style>
.tabs {
display: flex;
}
.tabs ul {
list-style-type: none;
display: flex;
}
.tabs ul li {
padding: 0px 10px;
height: 50px;
line-height: 50px;
text-align: center;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
font-size: 18px;
color: rgba(0,0,0,0.45)
}
.tabs ul .isactive {
color: #000;
border-bottom: 4px solid red;
z-index: 9;
}
.blue .left{
background: #02b9f6 !important;
}
.blue .right{
background: #02b9f6 !important;
}
.tongTitle2{
color: #333333; font-size: 16px;font-weight: bold; text-align: left;
margin-left:15px;
background: url("__IMG__/bg3.png") no-repeat left bottom;
}
</style>
</head>
<body><div id="app" :class="bodyOver?'van-over':''" >
<!-- <div class="toptitle">国防爱国主义教育</div>-->
<img src="__IMG__/red.jpg" style="width:100%;display: block" />
<!-- <div class="bottomDiv" style="padding-top: 20px;">-->
<!-- <div class="beforeCon">-->
<!-- <div class="title"><img src="__IMG__/icon2.png" />前言<img src="__IMG__/icon1.png" /></div>-->
<!-- <div class="content">-->
<!-- 通过严格、系统的国防爱国主义教育,提高学生的政治觉悟,激发爱国热情,发扬革命英雄主义精神,培养艰苦奋斗,刻苦耐劳的坚强毅力和集体主义精神,增强国防观念和组织纪律性,养成良好的学风和生活作风,提高自理自立能力,领悟"立德、力学、力行、立新"的真正含义,掌握基本军事知识与技能。-->
<!-- </div>-->
<!-- </div>-->
<!-- <div style="font-weight: bold;text-align: center">-->
<!-- <div style="display: inline;position:relative;text-align: center;">-->
<!-- <img src="__IMG__/jicon0.png" style="position: absolute;left:-30px;"/>-->
<!-- 在这里你将会<br />得到</div>-->
<!-- <div style="clear: both;"></div>-->
<!-- </div>-->
<!-- <div style="display: flex;margin-top: 30px;">-->
<!-- <div style="flex: 1;margin:10px 5px 10px 10px;background: #F5F1F4;">-->
<!-- <div style="color:#298A52;font-size: 14px;text-align: center">-->
<!-- <div style="margin: 0 auto;margin-top:-20px;"><img src="__IMG__/jicon1.png" /></div>-->
<!-- 培养爱国主义精神</div>-->
<!-- <div style="color:#666666;font-size: 12px;padding: 5px;">充分认清加强国防建设,增强国家综合国力的重大意义,要不断增强努力学习,抱效祖国的责任感和使命感。</div>-->
<!-- </div>-->
<!-- <div style="flex: 1;margin:10px 10px 10px 5px;background: #F5F1F4;">-->
<!-- <div style="color:#298A52;font-size: 14px;text-align: center">-->
<!-- <div style="margin: 0 auto;margin-top:-20px;"><img src="__IMG__/jicon2.png" /></div>-->
<!-- 增强国防观念</div>-->
<!-- <div style="color:#666666;font-size: 12px;padding: 5px;">对中学生进行国防观念教育,对于进一步激发青少年爱国热情,增强建设祖国、保卫祖国的责任感,更好地担负起时代赋予的历史使命,是十分重要和必要的。 </div>-->
<!-- </div>-->
<!-- </div>-->
<div class="tongTitle2">
报名须知
</div>
<div class="tongContent">
①缴费报名前请先确认红色教育时间及学校,再点击“马上报名”,进入页面后按照栏目信息提示填写学生缴费信息,确认无误后点击“提交信息”,进入页面后再次确认报名信息无误后点击“确认提交”,最后进入页面确认无误后点击“确认支付”。<br/>
</div>
<div class="tongTitle2">
红色教育时间及学校报名
</div>
<div class="tongContent">
<div class="tabs">
<ul>
{for start=":date('Y')*-1" end="-2020" }
<li><span class="tabSpan" @click="chooseYear($event)">{$i*-1}年</span></li>
{/for}
</ul>
</div>
<div class="content blue" id="yearcontent">
</div>
<!--1-1-->
<!-- {volist name="$data['son']" id="vo"}
{if condition="$vo['max_num'] eq $vo['buy_num']"}
<div class="enroll">
<div class="left">{$vo['title']}</div>
<div class="middle">
<div>报名人数{$vo['buy_num']}</div>
<div class="progress">
<div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>
</div>
<div>{$vo['start_time']}-{$vo['end_time']}</div>
</div>
<div class="right">
已满营
</div>
</div>
{else /}
{if condition="$vo['end_time'].' 16' < date('Y-m-d H')"}
<div class="enroll">
<div class="left">{$vo['title']}</div>
<div class="middle">
<div>报名人数{$vo['buy_num']}</div>
<div class="progress">
<div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>
</div>
<div>{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}</div>
</div>
<div class="right">已截止</div>
</div>
{else /}
<div class="enroll">
<div class="left">{$vo['title']}</div>
<div class="middle">
<div>报名人数{$vo['buy_num']}</div>
<div class="progress">
<div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>
</div>
<div>{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}</div>
</div>
<div class="right" data-title="{$vo['title']}" data-start_time="{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}" data-school="{$vo['title']}" data-style="{$vo['style']}" data-id="{$vo['id']}" @click="enroll($event)">马上报名</div>
</div>
{/if}
{/if}
{/volist} -->
<!--活动1结束-->
</div>
<!-- <div class="tongContent">-->
<!-- &lt;!&ndash;1-1&ndash;&gt;-->
<!-- {volist name="$data['son']" id="vo"}-->
<!-- {if condition="$vo['max_num'] eq $vo['buy_num']"}-->
<!-- <div class="enroll">-->
<!-- <div class="left">{$vo['title']}</div>-->
<!-- <div class="middle">-->
<!-- <div>报名人数{$vo['buy_num']}</div>-->
<!-- <div class="progress">-->
<!-- <div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>-->
<!-- </div>-->
<!-- <div>{$vo['start_time']}-{$vo['end_time']}</div>-->
<!-- </div>-->
<!-- <div class="right">-->
<!-- 已满营-->
<!-- </div>-->
<!-- </div>-->
<!-- {else /}-->
<!-- {if condition="$vo['end_time'].' 16' < date('Y-m-d H')"}-->
<!-- <div class="enroll">-->
<!-- <div class="left">{$vo['title']}</div>-->
<!-- <div class="middle">-->
<!-- <div>报名人数{$vo['buy_num']}</div>-->
<!-- <div class="progress">-->
<!-- <div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>-->
<!-- </div>-->
<!-- <div>{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}</div>-->
<!-- </div>-->
<!-- <div class="right">已截止</div>-->
<!-- </div>-->
<!-- {else /}-->
<!-- <div class="enroll">-->
<!-- <div class="left">{$vo['title']}</div>-->
<!-- <div class="middle">-->
<!-- <div>报名人数{$vo['buy_num']}</div>-->
<!-- <div class="progress">-->
<!-- <div class="progressSon" style="width: {$vo['buy_num']/$vo['max_num']*100}%"></div>-->
<!-- </div>-->
<!-- <div>{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}</div>-->
<!-- </div>-->
<!-- <div class="right" data-title="{$vo['title']}" data-time="{$vo['start_time']|strtotime|date='n月j日',###}-{$vo['end_time']|strtotime|date='n月j日',###}" data-style="{$vo['style']}" data-school="{$vo['title']}" data-id="{$vo['id']}" @click="enroll($event)">马上报名</div>-->
<!-- </div>-->
<!-- {/if}-->
<!-- {/if}-->
<!-- {/volist}-->
<!-- &lt;!&ndash;活动1结束&ndash;&gt;-->
<!--</div>-->
<!--弹窗显示-->
<div class="pop_bg" v-show="popShow" @click="enrollClose">
</div>
<div class="pop_con" v-show="popShow">
<div class="close" @click="enrollClose"><img src="__IMG__/iconClose.png" /></div>
<div style="margin:0 20px;">
<div class="list" style="color:red;font-weight: 500;font-size: 16px;">{{addForm.school}}</div>
<div class="list">活动时间:{{start_time}}</div>
<!--<div class="list">活动价格:{{price}}</div>-->
<div style="align-items:center; display: -webkit-flex;justify-content:center; display: -webkit-flex;margin:20px 0px;">
<div style="height: 1px;border-top:1px solid #E6E6E6;flex: 1;"></div>
<div style="margin:0 10px;font-size: 12px;color: #666666">信息填写</div>
<div style="height: 1px;border-top:1px solid #E6E6E6;flex: 1;"></div>
</div>
<div :class="canSub===false?'myInput':'myInput inputDis'" style="display:flex;align-items: center;">性别<span>*</span>
<div style="width:20px;"></div><input style='width: 16px;height:16px;' value="1" v-model='addForm.sex' type="radio" />
<div style="width:20px;"></div><input style='width: 16px;height:16px;' value="2" v-model='addForm.sex' type="radio" />
</div>
<div :class="canSub===false?'myInput':'myInput inputDis'">
姓名<span>*</span><input @blur="handleInput" class='inputText' v-model='addForm.name' type="text" :readonly="canSub===false ? false : 'readonly'"/></div>
<div :class="canSub===false?'myInput':'myInput inputDis'">学校<span>*</span><input @blur="handleInput" class='inputText' v-model='addForm.school' type="text" readonly="'readonly'"/></div>
<div :class="canSub===false?'myInput':'myInput inputDis'">班级<span>*</span>
<!--<input @blur="handleInput" class='inputText' v-model='addForm.grade' placeholder="例如:高一2班" type="text" :readonly="canSub===false ? false : 'readonly'"/>-->
<select @blur="handleInput" class='inputText' v-model='addForm.grade' :readonly="canSub===false ? false : 'readonly'">
<option value="">请选择班级</option>
<option v-for="item in acClass" :value="item.name">{{item.name}}</option></select>
</div>
<div :class="canSub===false?'myInput':'myInput inputDis'">手机<span>*</span><input @blur="handleInput" class='inputText' v-model='addForm.phone' type="text" :readonly="canSub===false ? false : 'readonly'"/></div>
<!--<div :class="canSub===false?'myInput':'myInput inputDis'">身份证<span>*</span><input @blur="handleInput" class='inputText' v-model='addForm.sfz' type="text" :readonly="canSub===false ? false : 'readonly'"/></div>-->
</div>
<div class="myBottom">
<div v-if="!canSub" :class="canSubBg===true?'myInputSub shiColor':'myInputSub'" @click="submitData">提交信息</div>
<div v-if="canSub" class="myInputSub kongColor" @click="canSub=false">修改信息</div>
<div v-if="canSub" class="myInputSub shiColor" @click.once="submitPay">确认提交</div>
</div>
</div>
</div></body>
<script>
new Vue({
el: '#app',
data: {
popShow:false,
title:'',
start_time:'',
style:'',
price:'',
acClass:[],
addForm:{
'name':'',
'sex':0,//1男2女
'school':'',
'grade':'',
'phone':'',
'sfz':'',
'id':''
},
canSub:false,//是否能提交
canSubBg:false,//改变背景颜色
bodyOver:false,//不允许body滚动
time:""
},
mounted () {
let arr = document.getElementsByClassName('tabSpan')
arr[0].classList.add('isactive')
let date = new Date()
this.getYearSchool(date.getFullYear())
// this.getData()
},
methods:{
// 选择年份
chooseYear(e){
let yearcontent = document.getElementById('yearcontent')
let year = e.target.innerText.substring(0,4)
console.log(e.target.innerText.substring(0,4))
if (year % 2 === 0) {
yearcontent.classList.add('green')
yearcontent.classList.remove('blue')
} else {
yearcontent.classList.add('blue')
yearcontent.classList.remove('green')
}
let arr = document.getElementsByClassName('tabSpan')
for (let i = 0; i < arr.length; i++) {
arr[i].classList.remove('isactive')
}
e.srcElement.classList.add('isactive')
this.getYearSchool(year)
},
getData () {
let content = document.getElementsByClassName('tongContent')
let yearcontent = document.getElementById('yearcontent')
console.log(this.datas)
this.datas.forEach((item, index) => {
let listGroup = ''
let divs = document.createElement('div')
divs.classList.add('enroll')
if (item.max_num === item.buy_num) {
console.log(12312313)
listGroup += "<div class='left'>" + item.title + "</div>\
<div class='middle'>\
<div>报名人数" + item.buy_num + "</div>\
<div class='progress'>\
<div class='progressSon' style='width:" + item.buy_num / item.max_num * 100 + '%' + "'></div>\
</div>\
<div>" + item.start_time + '-' + item.end_tiem + "</div>\
</div>\
<div class='right'>\
已满营\
</div>"
} else {
console.log(2222)
if (this.judgeDate(item.end_time)) {
console.log(3333)
listGroup += "<div class='left'>" + item.title + "</div>\
<div class='middle'>\
<div>报名人数" + item.buy_num + "</div>\
<div class='progress'>\
<div class='progressSon' style='width:" + item.buy_num / item.max_num *100 + '%' + "'></div>\
</div>\
<div>" + item.start_time_temp + "</div>\
</div>\
<div class='right'>\
已截止\
</div>"
} else {
console.log(444)
listGroup += "<div class='left'>" + item.title + "</div>\
<div class='middle'>\
<div>报名人数" + item.buy_num + "</div>\
<div class='progress'>\
<div class='progressSon' style='width:" + item.buy_num / item.max_num *100 + '%' + "'></div>\
</div>\
<div>" + item.start_time_temp + "</div>\
</div>\
<div class='right click' id='" +index + "'>马上报名</div>"
}
}
divs.innerHTML = listGroup
yearcontent.appendChild(divs)
})
let that = this
let clicks = document.getElementsByClassName('click')
for (let i = 0; i < clicks.length; i++) {
clicks[i].onclick = function (e) {
let index = this.id
console.log(this.id)
console.log(that.datas[index])
that.title = that.datas[index].title;
that.start_time = that.datas[index].start_time + '-' + that.datas[index].end_time;
that.style = that.datas[index].style;
that.price = that.datas[index].price;
that.addForm.id =that.datas[index].id;
that.addForm.school = that.datas[index].title;
console.log(that.title,that.start_time,that.style,that.addForm.id)
that.popShow = true
that.bodyOver = true
//去获取班级
axios.post('/index.php/index/index/getClass',{aid:that.addForm.id}).then(res=>{
console.log(res)
that.acClass=res.data
}).catch(function (error) { // 请求失败处理
// console.log(error);
});
}
}
},
getYearSchool (v) {
let content = document.getElementById('yearcontent')
$(content).empty()
//获取当年学校
axios.post('/index.php/index/index/redYear',{year: v}).then(res=>{
console.log(res)
if (res.data.code == 0) {
this.datas= []
console.log(this.datas)
res.data.data & res.data.data.forEach(item => {
// let obj = {
// id: item.id,
// title: item.title,
// min_num: item.min_num,
// max_num: item.max_num,
// price: item.price,
// style: item.style,
// parentid: item.parentid,
// sonid: item.sonid,
// buy_num: item.buy_num,
// start_time_temp: item.start_time_temp,
// start_time: this.dates(item.start_time),
// end_time: this.dates(item.end_tiem)
// }
this.datas.push(item)
})
}
this.getData()
}).catch(function (error) { // 请求失败处理
// console.log(error);
});
},
// 判断是否截止
judgeDate (endTime) {
let Time = new Date()
let arr = Time.toLocaleDateString().split('/')
let nowtime = ''
arr.forEach((item, index) => {
nowtime += this.zero(item)
if (index !== arr.length - 1) {
nowtime += '-'
}
})
let endtime = endTime
// let nowtime = Number(nowTime.split('月')[0])
if (endtime < nowtime) {
return true
}
return false
},
zero (str) {
if (Number(str) < 10) {
return '0' + str
}
return str
},
handleInput(){
//判断是否可以提交
if(!this.addForm.name){
return false;
}
if(!this.addForm.sex){
return false;
}
if(!this.addForm.school){
return false;
}
if(!this.addForm.grade){
return false;
}
if(!this.addForm.phone){
return false;
}
// if(!this.addForm.sfz){
// return false;
// }
//改变背景
this.canSubBg=true
},
selectThis(active){
this.active=active
},
enroll(e){
this.title=e.target.dataset.title;
this.time=e.target.dataset.time;
this.start_time=e.target.dataset.start_time;
this.style=e.target.dataset.style;
this.price=e.target.dataset.price;
this.addForm.id=e.target.dataset.id;
this.addForm.school=e.target.dataset.school;
console.log(this.title,this.start_time,this.style,this.addForm.id)
this.popShow=true
this.bodyOver=true
//去获取班级
axios.post('/index.php/index/index/getClass',{aid:this.addForm.id}).then(res=>{
this.acClass=res.data
}).catch(function (error) { // 请求失败处理
// console.log(error);
});
},
enrollClose(){
this.popShow=false
this.bodyOver=false
},
submitData(){
if(!this.addForm.name){
alert('请填写姓名')
return false;
}
if(!this.addForm.school){
alert('请填写学校')
return false;
}
if(!this.addForm.grade){
alert('请填写班级')
return false;
}
if(!this.addForm.grade){
alert('请填写手机')
return false;
}
if(!this.addForm.sex){
alert('请选择性别')
return false;
}
// if(!this.addForm.sfz){
// alert('请填写身份证')
// return false;
// }
this.canSub=true
},
submitPay(){
axios.post('/index.php/index/index/insertOrder',this.addForm).then(res=>{
console.log(res)
if(res.data.code=='SUCCESS'){
//调用支付
location.href = "{:HTTP}{:SITE_URL}/index.php/index/index/dopay/id/"+res.data.id;
}else{
alert(res.data.msg)
}
}).catch(function (error) { // 请求失败处理
console.log(error);
});
}
},
})
$('.pop_bg').css('height',$(window).height())
// $('#app').css('height',$(window).height())
// $('#app').css('overflow','auto')
// 判断设备类型
var judgeDeviceType = function() {
var ua = window.navigator.userAgent.toLocaleLowerCase();
var isIOS = /iphone|ipad|ipod/.test(ua);
var isAndroid = /android/.test(ua);
return {
isIOS: isIOS,
isAndroid: isAndroid
}
}()
// 监听输入框的软键盘弹起和收起事件
function listenKeybord($input) {
if (judgeDeviceType.isIOS) {
// IOS 键盘弹起IOS 和 Android 输入框获取焦点键盘弹起
$input.addEventListener('focus', function() {
console.log('IOS 键盘弹起啦!');
// IOS 键盘弹起后操作
}, false)
// IOS 键盘收起IOS 点击输入框以外区域或点击收起按钮,输入框都会失去焦点,键盘会收起,
$input.addEventListener('blur', () => {
console.log('IOS 键盘收起啦!');
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
// IOS 键盘收起后操作
})
}
// Andriod 键盘收起Andriod 键盘弹起或收起页面高度会发生变化,以此为依据获知键盘收起
if (judgeDeviceType.isAndroid) {
var originHeight = document.documentElement.clientHeight || document.body.clientHeight;
window.addEventListener('resize', function() {
var resizeHeight = document.documentElement.clientHeight || document.body.clientHeight;
if (originHeight < resizeHeight) {
console.log('Android 键盘收起啦!');
// Android 键盘收起后操作
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
} else {
console.log('Android 键盘弹起啦!');
// Android 键盘弹起后操作
}
originHeight = resizeHeight;
}, false)
}
}
var $inputs = document.querySelectorAll('.inputText');
for (var i = 0; i < $inputs.length; i++) {
listenKeybord($inputs[i]);
}
</script>
</html>
Loading…
Cancel
Save