1. Http发送请求接口

关键类:net.mingsoft.people.action.web.PeopleActon.java

关键方法:PeopleActon.register(...)

1.1. 范例:注册新用户

范例中演示了账户注册,同时代码中也包含了手机号注册、邮箱注册的流程,具体看代码注释

<html>
<head>
    <meta charset="utf-8">
    <title>注册</title>
    <meta http-equiv="content-type" content="text/html"/>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
    <meta name="viewport"
          content="initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no,width=device-width"/>
    <meta name="format-detection" content="telephone=no"/>
    <meta name="app-mobile-web-app-capable" content="yes"/>
    <meta name="app-mobile-web-app-status-bar-style" content="black-translucent"/>
    <!--引入Vue-->
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    <!--通用图标-->
    <link rel="stylesheet" href="https://cdn.mingsoft.net/iconfont/iconfont.css"/>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <!-- 引入组件库 -->
    <script src="https://cdn.bootcss.com/qs/6.9.0/qs.min.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
    <script src="http://cdn.mingsoft.net/ms/1.0/ms.js"></script>
    <script src="http://cdn.mingsoft.net/ms/1.0/ms.http.js"></script>
    <script src="http://cdn.mingsoft.net/ms/1.0/ms.util.js"></script>
    <style>
        [v-cloak] {
            display: none;
        }
        .custom-body {
            width: 300px;
            margin: auto;
        }
    </style>
</head>
<body class="custom-body">
<div id="app" v-cloak>
    <div class="class-1">
        <div class="class-8">
            <div class="class-9">
                <div class="class-10 "></div>
                <div class="class-11">
                    <div class="class-12 "></div>
                    <div class="class-13 "></div>
                    <div class="class-14">
                        <div class="class-15 ">账号注册</div>
                    </div>
                    <el-form ref="form" :model="form" :rules="rules">
                        <div class="class-16">
                            <el-form-item class="class-17" prop="peopleName">
                                <el-input v-model="form.peopleName"
                                          :disabled="false"
                                          :style="{width: '100%'}"
                                          :clearable="true"
                                          placeholder="请输入用户名3-30字符">
                                </el-input>
                            </el-form-item>
                        </div>
                        <div class="class-18">
                            <el-form-item class="class-19 " prop="peoplePassword">
                                <el-input type="password" v-model="form.peoplePassword"
                                          :disabled="false"
                                          :style="{width: '100%'}"
                                          :clearable="true"
                                          show-password
                                          placeholder="请输入设置6-18位字母数字组成的密码">
                                </el-input>
                            </el-form-item>
                        </div>
                        <div class="class-20">
                            <el-form-item class="class-21 " prop="rePeoplePassword">
                                <el-input type="password" v-model="form.rePeoplePassword"
                                          :disabled="false"
                                          show-password
                                          :style="{width: '100%'}"
                                          :clearable="true"
                                          placeholder="请确认密码">
                                </el-input>
                            </el-form-item>
                        </div>
                        <div class="class-22">
                            <el-form-item class="class-23 " prop="rand_code">
                                <el-input v-model="form.rand_code"
                                          :disabled="false"
                                          :style="{width: '100%'}"
                                          :clearable="true"
                                          placeholder="请输入验证码">
                                </el-input>
                            </el-form-item>
                            <div class="class-24">
                                <img :src="verificationCode" @click="code"
                                     class="class-25 "/>
                            </div>
                            <div class="class-26">
                                <div class="class-27 ">看不清</div>
                                <div class="class-28 " @click="code">换一个</div>
                            </div>
                        </div>

                        <!--手机号注册,手机号注册把以下注释打开-->
                        <!--<div class="class-29">
                            <el-form-item class="class-30 " prop="peoplePhone">
                                <el-input v-model="form.peoplePhone"
                                          :disabled="false"
                                          :style="{width: '100%'}"
                                          :clearable="true"
                                          placeholder="请输入手机号">
                                </el-input>
                            </el-form-item>
                        </div>-->

                        <!--邮箱注册,若是邮箱注册把以下注释打开-->
                        <!--<div class="class-29">
                            <el-form-item class="class-30 " prop="peopleMail">
                                <el-input v-model="form.peopleMail"
                                          :disabled="false"
                                          :style="{width: '100%'}"
                                          :clearable="true"
                                          placeholder="请输入邮箱号">
                                </el-input>
                            </el-form-item>
                        </div>-->

                        <!--若是手机号注册或是邮箱注册,请把以下发送验证码注释打开-->
                        <!--<div class="class-31">
                            <el-form-item class="class-30 " prop="peopleCode">
                                <el-input v-model="form.peopleCode"
                                          :disabled="false"
                                          :style="{width: '100%'}"
                                          :clearable="true"
                                          placeholder="请输入验证码">
                                </el-input>
                            </el-form-item>
                            <div class="class-33">
                            </div>
                            <div class="class-35">
                                <el-button type="primary" @click="sendRandCode" class="class-36"
                                           :disabled="countdown ? true : false">
                                    <span v-text="countdown ? ''+countdown + 's重新发送':'获取验证码'"></span>
                                </el-button>
                            </div>
                        </div>-->
                    </el-form>
                    <div class="class-38">
                        <div @click="register"
                             class="class-39 ">
                            <el-button class="class-39" type="primary" :loading="operation"
                                       :disabled="form.peopleName && form.peoplePassword && form.rePeoplePassword &&  form.rand_code  ? false:true ">
                                注册
                            </el-button>
                        </div>
                    </div>

                </div>
            </div>
        </div>
    </div>
</div>
</body>
</html>
<script>
    var app = new Vue({
        el: '#app',
        watch: {},
        data() {
            let isExistsName = (rule, value, callback) => {
                var that = this;
                ms.http.post("/isExists.do", {
                    peopleName: that.form.peopleName,
                }).then(function (data) {
                    if (data.result) {
                        return callback("用户名已存在")
                    }
                    callback()
                });
// 在此处将callback传到验证方法中
            }
            return {
                operation: false,
                countdown: 0,//验证码计时
                form: {
                    peopleName: '',//用户名
                    peoplePassword: '',//密码
                    rePeoplePassword: '',//确认密码
                    peoplePhone: '',//手机号
                    peopleMail: '',//手机号
                    peopleCode: '',//验证码
                    rand_code: '',//图片验证码
                },
                registerDisabled: false,
                verificationCode: '',
                rules: {
                    peopleName: [
                        {required: true, message: '请输入用户名'},
                        {validator: isExistsName, trigger: 'blur'},
                        {min: 6, max: 12, message: '用户名由6至12个字符组成!', trigger: 'blur'},
                        {
                            validator: function (rule, value, callback) {
                                if (/[@#\$%\^&\*]+/g.test(value)) {
                                    callback('不能含有特殊字符')
                                }
                                callback();
                            },
                            trigger: ['blur']
                        }
                    ],
                    peoplePassword: [
                        {required: true, message: '请输入密码'},
                        {pattern: /^(?=.*[a-zA-Z])(?=.*[0-9])[A-Za-z0-9]{6,18}$/, message: '请输入6-18位由字母数字组成的密码'}
                    ],
                    rePeoplePassword: [{
                        validator: (rule, value, callback) => {
                            if(!value){
                                callback('请确认密码');
                            } else if (app.form.peoplePassword === value) {
                                callback();
                            } else {
                                callback('密码不一致');
                            }
                        }
                    }],
                    rand_code:[
                        {required: true, message: '请输入验证码'},
                    ],
                 peoplePhone:
                        [
                            {required: true, message: '请输入手机号'},
                            {
                                pattern: /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/,
                                message: '请输入正确的手机号',
                                trigger: 'blur'
                            }
                        ],
            },
         }
        },
        methods: {
            //注册
            register: function () {
                var target = this;
                target.$refs.form.validate((valid) => {
                if(valid) {
                    target.operation = true;
                    ms.http.post("/register.do", target.form).then(function (data) {
                        if (data.result != true) {
                            target.operation = false;
                            target.$notify.error(data.resultMsg);
                        } else {
                            target.$notify.success("注册成功!");

                        }
                    }).catch(function (err) {
                        console.log(err);
                    });
                }else {
                target.operation = false;
                target.$notify(fields[0].message);
            }
            })
                ;
            },
            //发送手机/邮箱验证码
            sendRandCode: function () {
                var that = this;
                that.$refs.form.validate((valid) => {
                    if(valid) {
                        if (that.countdown > 0) {
                            return;
                        }
                        ms.http.post("/isExists.do", {
                            peoplePhone: that.form.peoplePhone,
                        }).then(function (data) {
                            if (data.result) {
                                that.$notify.error("该手机号已绑定");
                            } else {
                                ms.http.post("/sendCode.do", {
                                    "modelCode": "sms",
                                    "type": "sms",
                                    //手机号注册时把以下注释打开
                                    //receive: that.form.peoplePhone,
                                    //邮箱注册时把以下注释打开
                                    //receive: that.form.peopleMail,
                                    "isSession": true,
                                    rand_code: that.form.rand_code,
                                }).then(function (data) {
                                    if (data.result) {
                                        that.$notify.success('验证码已发送');
                                        that.countdown = 60;
                                        that.countdownSubtract();
                                        that.registerDisabled = true;
                                    } else {
                                        that.$notify.error(data.resultMsg);
                                    }
                                });
                            }
                        });
                    }else{
                        that.$notify.error(fields[0].message);
            }
            })
                ;
            },
            //倒计时
            countdownSubtract: function () {
                if (this.countdown > 0) {
                    setTimeout(() => {
                        this.countdown -= 1;
                    this.countdownSubtract()
                },
                    1000
                )
                }
            },
            //验证码
            code: function () {
                this.verificationCode = "/code?t=" + new Date().getTime();
            }
        },
        created() {
            this.code();
        }
    })
</script>

Copyright © mingsoft.net 2019 all right reserved,powered by Gitbook该文件修订时间: 2020-02-21 21:11:22

results matching ""

    No results matching ""

    results matching ""

      No results matching ""