form.vue 6.67 KB
<template>
<div >
<div class="message_box">
   <div class="p">
       <b>姓名</b><br>
       <p class="name_border"> <input  type="text" v-model = "name"  id="name"></p>
        <span>{{msgname}}</span>
    </div>
    <div class="p">
        <b>联系电话</b><br>
        <p class="name_border"><input type="text" v-model = "phone"  id="phone"></p>
        <span>{{msgphone}}</span>
    </div>
    <div class="p">
        <b>公司名称(选填)</b><br>
        <p class="name_border"><input  type="text" v-model = "company"  id="company"></p>
         <span>{{msgcompany}}</span>
    </div>
    <div class="p">
         <b>职位(选填)</b><br>
        <p class="name_border"><input  type="text" v-model = "job" id="job"></p>
        <span>{{msgjob}}</span>
    </div>
    
</div>
<footer @click="handleClick()" class="obtn">提交</footer>
 <div  style="background:rgba(0,0,0,.5);width:100%;height:100%;position:fixed;top:0;display:none;" class="close_box">
       <div class="msg">
           <img src="" alt="">
       </div>
       <div class="close" @click="handleBtnClose">
           <img src="http://gxbfile-gs.gaoxiaobang.com/Huixuexi/close.png" alt="">
       </div>
    </div>
    </div>
</template>
<script>
import list from '@/assets/json/homecenter.json';
import axios from 'axios';
import qs from 'querystring'




export default {
	name: 'forms',
	components: {},
    data(){
		return {
            name:"",
            phone:"",
            company:"",
            job:"",
            msgname: "",
            msgphone: "",
            msgcompany: "",
            msgjob: "",
            activity: ""
		}
  },
    methods: {
     checkname:function(){
         var myreg = /^[\u4e00-\u9fa5]{1,20}|[a-zA-Z\\.\\s]{1,20}$/
        if(this.name==""){
            this.msgname = "用户名不能为空";
            return false;
        }else if (!myreg.test($("#name").val() )){
             this.msgname = "输入正确姓名";
               return false;
        }else{
            this.msgname = "";
            return true;
        }
    },
    checkphone:function(){
        var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}|(19[0-9]{1})))+\d{8})$/; 
        if(this.phone==""){
            this.msgphone="手机号不能为空";
            return false;
        }else if(!myreg.test($("#phone").val())){
            this.msgphone="请输入有效的手机号码";
            return false;
        }else{
             this.msgphone="";
            return true;
        }
    }, 
    checkcompany: function() {
        var myreg = /^[\u4E00-\u9FA5a-zA-Z]+$/;
        if(this.company=="") {
            return true;
        } else if(!myreg.test($("#company").val())) {
            this.msgcompany="请输入正确的公司名称";
            return false;
        }else {
            return true;
        }

    } , 
    checkjob: function() {
        var myreg = /^[\u4E00-\u9FA5a-zA-Z]+$/;
        if(this.job == "") {
             return true;
        }else if(!myreg.test($("#job").val())) {
            this.msgjob="请输入正确的职位";
            return false;
        }else {
            return true;
        }
    } ,
    dateFormate (fmt) {
    var date = new Date();
    var o = {
      "M+": date.getMonth() + 1, //月份
      "d+": date.getDate(), //日
      "H+": date.getHours(), //小时
      "m+": date.getMinutes(), //分
      "s+": date.getSeconds(), //秒
      "q+": Math.floor((date.getMonth() + 3) / 3), //季度
      "S": date.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
      if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
  },
     handleClick() {
        var that = this;
        var bname =   this.checkname() ;
        var bphone  = this.checkphone() ;
        var bcompany =  this.checkcompany();
        var bnjob =  this.checkjob();
        var index =  this.$route.query.id
        switch(index) {
            case 0: this.activity = '科技成果转化讲座';  break;
            case 1: this.activity = '健康、智能医疗与数据科学';  break;
            case 2: this.activity = '拥有力的制度自信';  break;
            case 3: this.activity = '历史经验与前景展望';  break;
        }
        if(bname && bphone && bcompany && bnjob) {
             var data = qs.stringify({
                name: this.name,
                phone: this.phone,
                companyName: this.company,
                position: this.job,
                activity: this.activity,
                token: this.$route.query.token,
                time: that.dateFormate('yyyy-MM-dd HH:mm:ss')
            });
            axios({
                method:'post',
                url:this.$config.baseURL+'signActivity',
                headers: {
                'Content-Type': 'application/x-www-form-urlencoded'
                },
                data:data,
            })
            .then(function (res) {
               if(res.data.status == 200) {
                $(".msg img").attr("src","http://gxbfile-gs.gaoxiaobang.com/Huixuexi/success1.png")
                $(".close_box").show();
               }else if(res.data.status == 400) {
                //    alert(res.data.msg)
                $(".msg img").attr("src","http://gxbfile-gs.gaoxiaobang.com/Huixuexi/fail1.png")
                $(".close_box").show();
               }
            })
            .catch(function(error){
            })
        }else{
          console.log("错误")
        }
     },
     handleBtnClose() {
         $(".close_box").hide();
     }
    },
    created() {
        this.$share.initWx('/activePage')
    },
     mounted() {
      document.querySelector('body').setAttribute('style', 'background-color:#F5F9FC;')
    }
}
</script>

<style lang="" scoped>
input{border: 1px solid #999;margin:1%;}
footer{color:#fff;font-size:.32rem;text-align: center;position: fixed;bottom:0;width:100%;height:1rem;line-height: 1rem;
background:url(http://gxbfile-gs.gaoxiaobang.com/Huixuexi/footer.png) no-repeat center;background-size: cover;}
.msg {width:5rem;position:fixed;margin:auto;left:0;right:0;margin-top:40%;}
.msg img{width:100%;height:100%;}
.close{width: 100%;position: fixed;right: 18%;margin-top: 46%;text-align: right;}
.close img{width:.6rem;}
.message_box{padding:0 .4rem;}
.message_box input{width: 100%;border: none;height: .8rem;margin:0;border-radius:.1rem;}
.p{margin-top:.4rem;}
span{color:red;font-size:.24rem;padding-left:1%;margin-top:.1rem;display: block;}
.name_border{border-radius:.1rem;box-shadow:0px 0px 5px 5px rgba(0,0,0,0.04);margin-top:.1rem;}
</style>