123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696 |
- (function ($) {
- $.fn.userLogin = function (param) {
- var html = '<div id="userLogin">' +
- '<div class="cover-content">' +
- '<div class="login">' +
- '<div class="left"><p class="loginBg"></p></div>' +
- '<ul class="right">' +
- '<li class="head">' +
- // '<span class="passWay active">密码登录</span>' +
- // '<span class="msgWay">短信登录</span>' +
- // '<p class="weixin">微信</p>' +
- // '<p class="qq">QQ</p>' +
- // '<p class="weibo">微博</p>' +
- // '<img src="../userLogin/images/wx.png" alt="微信" class="weixin">' +
- // '<img src="../userLogin/images/qq.png" alt="QQ" class="qq">' +
- // '<img src="../userLogin/images/weibo.png" alt="微博" class="weibo">' +
- '<button class="close"></button>' +
- '</li>' +
- '<li><input type="text" placeholder="请输入用户名" class="user"></li>' +
- '<li class="passShow show"><input type="password" placeholder="请输入密码" class="lock"></li>' +
- '<li class="msgShow"><input type="text" placeholder="请输入验证码" class="yzm"><button class="getYzm">获取短信验证码</button><div class="btn_cov"></div></li>' +
- '<li><button class="loginBtn">登录</button></li>' +
- '<li class="other"></li>' +// <button class="fl forgetPass">忘记密码</button> <button class="openReg fr">免费注册</button>
- '</ul>' +
- '</div>' +
- '<div class="regist">' +
- '<li class="para"><span class="menu">用户名</span><span class="redAlert">请输入用户名</span><input type="text" placeholder="请输入用户名" class="regName"></li>' +
- '<li class="para"><span class="menu">手机号</span><span class="redAlert">请输入手机号</span><input type="text" placeholder="可用于登录和找回密码" class="regNum"></li>' +
- '<li class="para"><span class="menu">密码</span><span class="redAlert">请输入密码</span><input type="password" placeholder="请设置登录密码" class="regPass"></li>' +
- '<li class="para li_cover"><span class="menu">验证码</span><span class="redAlert">请输入验证码</span><input type="text" placeholder="请输入验证码" class="yzm"><button class="getYzm">获取短信验证码</button><div class="btn_cov"></div></li>' +
- '<li class="xieyi"><span class="check"></span>阅读并接受《<a href="yonghuXieyi.html" target="_blank">MAPPLUS用户协议</a>》<span class="redAlert">请阅读协议及声明</span></li>' +
- '<li class="zhuce"><button class="regBtn">注册</button></li>' +
- '<li class="queding"><button class="queding">确定</button></li>' +
- '<li class="other">我已注册,现在去<button class="openLogin">登录</button></li>' +
- '<li class="back"><button class="openLogin">返回登录</button></li>' +
- '</div>' +
- '<div class="tip"></div>' +
- '</div>' +
- '</div>';
- $(this).append(html);
- //当前正在浏览的方式: pc/mobile
- var curNumCode = "sinup";
- function setTip(type, str) {
- $("#userLogin .tip").html(str)
- $("#userLogin .tip").addClass(type)
- $("#userLogin .tip").show()
- setTimeout(function () {
- $("#userLogin .tip").hide()
- $("#userLogin .tip").removeClass(type)
- $("#userLogin .tip").html("")
- }, 4000);
- }
- var cookie = {
- /**
- * 设置cookie
- * @type {Function}
- * @param name {String} 名称
- * @param value {String} 值
- * @param days {Number} 过期时间(天)
- * @example
- */
- set: function (name, value, days) {
- document.cookie = name + "=" + value;
- },
- /**
- * 获取cookie
- * @type {Function}
- * @param name {String} 名称
- * @returns {null|String} 返回值
- * @example
- */
- get: function (name) {
- var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
- arr = document.cookie.match(reg);
- if (arr) {
- return arr[2];
- } else {
- return null;
- }
- },
- /**
- * 删除cookie
- * @type {Function}
- * @param name {String} 名称
- * @example
- */
- del: function (name) {
- var exp = new Date();
- exp.setTime(exp.getTime() - 1);
- var cval = this.get(name);
- if (cval !== null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
- }
- }
- function uuid4() {
- var text = "";
- var length = [8, 4, 4, 4, 12];
- var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- for (var j = 0; j < 5; j++) {
- for (var i = 0; i < length[j]; i++) {
- text += possible.charAt(Math.floor(Math.random() * possible.length));
- }
- if (j < 3) {
- text += "-"
- }
- }
- return text;
- }
- function getQueryString(name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
- var r = window.location.search.substr(1).match(reg);
- if (r != null) return decodeURI(r[2]);
- return '';
- };
- //判断接口中是否有session,如果有设置session
- if (getQueryString('session')) {
- session = getQueryString('session');
- cookie.del('session');
- cookie.set('session', session);
- var href = window.location.origin;
- window.location.replace(href);
- } else {
- session = uuid4();
- }
- var isLoad = false
- // $.ajax({
- // type: "get",
- // dataType: 'jsonp',
- // url: param.userServer + '/v1.0/user/me',
- // success: function (data) {
- // if (data.status == 401) {
- // isLoad = false
- // cookie.del('session');
- // cookie.set('session', session);
- // var callData = {
- // isLoad: isLoad,
- // userInfo: data.data
- // }
- // if (param.callback)
- // param.callback(callData)
- // } else {
- // //$("#userLogin").addClass('hide');
- // isLoad = true
- // if (param.callback)
- // var callData = {
- // isLoad: isLoad,
- // userInfo: data.data
- // }
- // getCurUserJWT(callData)
- // }
- // },
- // error: function (data) {
- // console.log(data)
- // }
- // });
- /**
- * 2024年1月31日10:40:41-add-刘梦祥
- * 1、判断地址栏是否有token
- * 2、验证token
- * 3、成功的话就默认用户登录
- * 4、不成功的话就跳转到他们的统一赋能平台
- */
- function inspectUrl() {
- const url = location.search
- let urlToken = "";
- if (url.indexOf("?token=") != -1) {
- urlToken = url.split("?token=")[1];
- verifyToken(urlToken);
- } else {
- goToLoginView();
- }
- }
- // 验证token
- function verifyToken(urlToken) {
- $.ajax({
- type: "POST",
- dataType: "json",
- url: "http://10.235.246.232:8000/api/sso/token/check?sysCode=87c9eb71-80dd-4b6a-8d1b-c1f1beafbb1b&secret=VEK0XKTF6VURFR8CAMKGZ4ZVMIP2N7O7&token=" + urlToken,
- success: function (result) {
- if (result.code == 0) {
- userLogin();
- } else {
- goToLoginView();
- }
- },
- error: function (err) {
- goToLoginView();
- }
- });
- }
- // 跳转到统一用户登录页面
- function goToLoginView() {
- window.open("http://10.235.246.232/web/ssologin?sysCode=87c9eb71-80dd-4b6a-8d1b-c1f1beafbb1b&callbackUrl=http://10.235.245.174:2024/", "_self");
- // window.open("http://10.235.246.232/web/ssologin?sysCode=87c9eb71-80dd-4b6a-8d1b-c1f1beafbb1b&callbackUrl=http://127.0.0.1:10152/", "_self");
- }
- if (localStorage.getItem("systemToken")) {
- $.ajax({
- type: "GET",
- headers: {
- token: localStorage.getItem("systemToken"),
- },
- dataType: "json",
- url: param.userServer + '/oauth/user/validateToken',
- success: function (result) {
- if (result.code == 200) {
- if (param.callback) {
- var callData = {
- isLoad: true,
- userInfo: JSON.parse(localStorage.getItem("userInfo"))
- }
- param.callback(callData)
- }
- } else {
- localStorage.removeItem("systemToken")
- localStorage.removeItem("userInfo")
- if (param.callback) {
- var callData = {
- isLoad: false
- }
- param.callback(callData)
- inspectUrl();
- }
- }
- },
- error: function (err) {
- localStorage.removeItem("systemToken")
- localStorage.removeItem("userInfo")
- if (param.callback) {
- var callData = {
- isLoad: false
- }
- param.callback(callData)
- inspectUrl();
- }
- }
- });
- } else {
- inspectUrl();
- }
- /**
- * [getCurUserJWT description]
- * 获取当前用户的jwt
- * @return {[type]} [description]
- */
- function getCurUserJWT(calldata) {
- $.ajax({
- type: "post",
- url: param.userServer + '/v1.0/user/jwt',
- success: function (data) {
- if (data.status == 0) {
- calldata.jwt = data.data;
- param.callback(calldata)
- }
- },
- error: function (data) {
- console.log(data)
- }
- });
- }
- /**
- * 交互
- */
- $("#userLogin .close").bind('click', function () {
- // $("#userLogin").addClass("hide");
- $("#userLogin").hide("hide");
- })
- //注册
- $("#userLogin .openReg").bind('click', function () {
- $("#userLogin .login").hide();
- $("#userLogin .regist").show();
- $("#userLogin .regist li.queding").hide();
- $("#userLogin .regist .zhuce, #userLogin .regist .xieyi, #userLogin .regist .other").show();
- $("#userLogin .regist .para").eq(0).show();
- $("#userLogin .regist .back").hide();
- curNumCode = "sinup";
- })
- //忘记密码
- $("#userLogin .forgetPass").bind('click', function () {
- $("#userLogin .regist").show();
- $("#userLogin .login").hide();
- $("#userLogin .regist li.queding").show();
- $("#userLogin .regist .zhuce, #userLogin .regist .xieyi, #userLogin .regist .other").hide();
- $("#userLogin .regist .para").eq(0).hide();
- $("#userLogin .regist .back").show();
- curNumCode = "forgetPass";
- })
- //登录
- $("#userLogin .openLogin").bind('click', function () {
- $("#userLogin .login").show();
- $("#userLogin .regist").hide();
- })
- //复选框
- $("#userLogin .autoLogin,#userLogin .check").bind('click', function () {
- if ($(this).hasClass('active')) {
- $(this).removeClass('active');
- } else {
- $(this).addClass('active');
- }
- })
- //登录方式
- $("#userLogin .head .passWay").bind('click', function () {
- $("#userLogin .head span").removeClass('active');
- $(this).addClass('active');
- $("#userLogin .passShow").addClass('show');
- $("#userLogin .msgShow").removeClass('show');
- $("#userLogin .login .user").attr("placeholder", "请输入用户名");
- })
- $("#userLogin .head .msgWay").bind('click', function () {
- $("#userLogin .head span").removeClass('active');
- $(this).addClass('active');
- $("#userLogin .msgShow").addClass('show');
- $("#userLogin .passShow").removeClass('show');
- $("#userLogin .login .user").attr("placeholder", "请输入手机号").text("");
- })
- // 协议
- $("#userLogin .regist li.xieyi a").bind('click', function () {
- $("#xieyi").addClass('active')
- })
- $("#xieyi .close").bind('click', function () {
- $("#xieyi").removeClass('active')
- })
- /**
- * 交互结束
- */
- /**
- * 请求开始
- */
- //重置密码
- $("#userLogin .regist button.queding").bind('click', function () {
- var shouji = $("#userLogin .regist .regNum").val();
- var mima = $("#userLogin .regist .regPass").val();
- var yanzhengma = $("#userLogin .regist .yzm").val();
- if (shouji.length > 0 && mima.length > 0 && yanzhengma.length > 0) {
- $.ajax({
- url: param.userServer + '/v1.0/user/mobile/reset_password',
- method: 'POST',
- dataType: 'json',
- data: {
- mobile: shouji,
- password: mima,
- code: yanzhengma
- }
- }).done(function (data) {
- console.log(data);
- if (data.status == 0) {
- setTip("success", "重置密码成功")
- $("#userLogin .regist").hide();
- $("#userLogin .login").show();
- $("#userLogin .regist li").show();
- $("#userLogin .regist li.queding").hide();
- } else {
- setTip("warning", data.message)
- }
- })
- } else {
- setTip("warning", '请填写正确信息')
- }
- })
- //注册获取验证码
- $("#userLogin .regist .getYzm").bind('click', function () {
- var num = $("#userLogin .regist .regNum").val();
- //验证手机号
- var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
- if (!reg.test(num)) {
- setTip("warning", '请输入正确的手机号')
- } else {
- if (curNumCode == "sinup") {
- var url = param.userServer + '/v1.0/user/mobile/register/code';
- } else {
- var url = param.userServer + '/v1.0/user/mobile/reset_password/code';
- }
- $.ajax({
- url: url,
- method: 'POST',
- dataType: 'json',
- data: {
- mobile: num
- }
- }).done(function (data) {
- console.log(data);
- if (data.status == 0) {
- showNumCover();
- setTip("success", '获取成功')
- } else {
- setTip("warning", data.message)
- }
- })
- }
- })
- //注册
- $("#userLogin .regist .regBtn").bind('click', function () {
- var check = $("#userLogin .regist .check").hasClass('active');
- if (!check) {
- $("#userLogin .regist .xieyi .redAlert").addClass('show');
- } else {
- $("#userLogin .regist .xieyi .redAlert").removeClass('show');
- }
- var redAlert = $("#userLogin .regist .para .redAlert");
- for (let i = 0; i < redAlert.length; i++) {
- if (redAlert.eq(i).next().val().length < 1) {
- redAlert.eq(i).addClass('show');
- } else {
- redAlert.eq(i).removeClass('show');
- }
- if (redAlert.eq(i).next().hasClass('regNum') && redAlert.eq(i).next().val().length < 11) {
- redAlert.eq(i).text('请输入正确的手机号').addClass('show');
- } else if (redAlert.eq(i).next().hasClass('regNum') && redAlert.eq(i).next().val().length >= 11) {
- var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
- if (!reg.test(redAlert.eq(i).next().val())) {
- setTip("warning", '请输入正确的手机号')
- } else {
- redAlert.eq(i).text('请输入手机号').removeClass('show');
- }
- }
- if (redAlert.eq(i).next().hasClass('regPass') && redAlert.eq(i).next().val().length < 6) {
- redAlert.eq(i).text('密码不得少于6位').addClass('show');
- } else if (redAlert.eq(i).next().hasClass('regPass') && redAlert.eq(i).next().val().length >= 6) {
- redAlert.eq(i).text('请输入密码').removeClass('show');
- }
- }
- if (!redAlert.hasClass('show') && check) {
- $.ajax({
- url: param.userServer + '/v1.0/user/mobile/register',
- method: 'POST',
- dataType: 'json',
- data: {
- username: $("#userLogin .regist .regName").val(),
- mobile: $("#userLogin .regist .regNum").val(),
- password: $("#userLogin .regist .regPass").val(),
- code: $("#userLogin .regist .yzm").val(),
- referer_src: document.title
- }
- }).done(function (data) {
- console.log(data);
- if (data.status == 0) {
- // ONEMAP.C.publisher.publish({
- // type: 'success',
- // message: '获取成功'
- // }, 'noteBar::add');
- setTip("success", '获取成功')
- } else {
- // ONEMAP.C.publisher.publish({
- // type: 'warning',
- // message: data.message
- // }, 'noteBar::add');
- setTip("warning", data.message)
- }
- })
- }
- })
- function showNumCover() {
- $("#userLogin .btn_cov").show();
- var i = 60;
- $("#userLogin .btn_cov").html(i + '秒后再次发送');
- setTimeout(function () {
- $("#userLogin .btn_cov").hide();
- clearInterval(interval);
- }, 60000)
- var interval = setInterval(function () {
- i--;
- $("#userLogin .btn_cov").html(i + '秒后再次发送');
- }, 1000)
- }
- //登录获取验证码
- $("#userLogin .login .getYzm").bind('click', function () {
- var phoneNum = $("#userLogin .login .user").val();
- //验证手机号
- var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
- if (!reg.test(phoneNum)) {
- // ONEMAP.C.publisher.publish({
- // type: 'warning',
- // message: '请输入正确的手机号'
- // }, 'noteBar::add');
- setTip("warning", "请输入正确的手机号!")
- } else {
- $.ajax({
- url: param.userServer + '/v1.0/user/mobile/login/code',
- method: 'POST',
- dataType: 'json',
- data: {
- mobile: phoneNum
- }
- }).done(function (data) {
- console.log(data);
- if (data.status == 0) {
- // ONEMAP.C.publisher.publish({
- // type: 'success',
- // message: '获取成功'
- // }, 'noteBar::add');
- showNumCover();
- setTip("success", "获取成功!")
- } else {
- // ONEMAP.C.publisher.publish({
- // type: 'warning',
- // message: data.message
- // }, 'noteBar::add');
- setTip("warning", data.message)
- }
- })
- }
- })
- $("#userLogin .login .lock").bind('keydown', function (e) {
- if (e.keyCode === 13) {
- userLogin();
- }
- });
- //登录
- $("#userLogin .login .loginBtn").bind('click', function () {
- userLogin();
- })
- function userLogin() {
- // var userEmail = $("#userLogin .login .user").val();
- // var psd = $("#userLogin .login .lock").val();
- var userEmail = "user001";
- var psd = "1234567890";
- $.ajax({
- url: param.userServer + '/oauth/user/login',
- method: 'POST',
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded;'
- },
- data: {
- userName: userEmail,
- password: psd,
- clientId: 0
- }
- }).done(function (data) {
- var result = JSON.parse(data);
- var content = result.content;
- content.name = content.username;
- content.nickname = content.username;
- if (result.code === 200) {
- localStorage.setItem("systemToken",
- result.message
- );
- localStorage.setItem("userInfo",
- JSON.stringify(content)
- );
- $("#userLogin").hide();
- var callData = {
- isLoad: true,
- userInfo: content
- }
- if (param.callback)
- param.callback(callData)
- setTimeout(() => {
- window.location.reload();
- }, 500);
- ONEMAP.C.publisher.publish({
- type: 'success',
- message: '登录成功!'
- }, 'noteBar::add');
- } else {
- var callData = {
- isLoad: false,
- }
- if (param.callback)
- param.callback(callData)
- ONEMAP.C.publisher.publish({
- type: 'error',
- message: '登录失败!'
- }, 'noteBar::add');
- }
- }).error(function (data) {
- // ONEMAP.C.publisher.publish({
- // type: 'warning',
- // message: '该用户尚未注册'
- // }, 'noteBar::add');
- // setTip("warning", '登录失败!')
- var callData = {
- isLoad: false,
- }
- if (param.callback)
- param.callback(callData)
- ONEMAP.C.publisher.publish({
- type: 'error',
- message: '登录失败!'
- }, 'noteBar::add');
- })
- return;
- // 通过验证码
- if ($("#userLogin .msgShow").hasClass('show')) {
- var phoneNum = $("#userLogin .login .user").val();
- var yzm = $("#userLogin .login .yzm").val();
- //验证手机号
- var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
- if (!reg.test(phoneNum)) {
- // ONEMAP.C.publisher.publish({
- // type: 'warning',
- // message: '请输入正确的手机号'
- // }, 'noteBar::add');
- setTip("warning", "请输入正确的手机号")
- } else if (yzm.length < 1) {
- // ONEMAP.C.publisher.publish({
- // type: 'warning',
- // message: '请输入验证码'
- // }, 'noteBar::add');
- setTip("warning", "请输入验证码")
- } else {
- $.ajax({
- url: param.userServer + '/v1.0/user/mobile/login',
- method: 'POST',
- dataType: 'json',
- headers: {
- "Cookie": session,
- },
- data: {
- mobile: phoneNum,
- code: yzm
- }
- }).done(function (data) {
- console.log(data);
- if (data.status == 0) {
- setTip("warning", '登录成功');
- window.location.reload();
- } else {
- // ONEMAP.C.publisher.publish({
- // type: 'warning',
- // message: data.message
- // }, 'noteBar::add');
- setTip("warning", data.message)
- }
- })
- }
- } else if ($("#userLogin .passShow").hasClass('show')) {
- var userEmail = $("#userLogin .login .user").val();
- var psd = $("#userLogin .login .lock").val();
- // shell示例
- // curl -v -XPOST 'http://202.107.245.52:3010/account/login' -H "Content-Type: application/json" -d '{"username": "admin", "password": "admin888"}'
- // curl -v 'http://202.107.245.52:3010/v1.0/user/me' -H 'Cookie: session=08eb5ff4-49a8-4efa-b725-228ceb24cda2'
- $.ajax({
- type: "POST",
- dataType: 'json',
- url: param.userServer + '/account/login', //3010
- contentType: 'application/json',
- headers: {
- "Cookie": session,
- },
- data: JSON.stringify({
- "username": userEmail,
- "password": psd
- })
- }).done(function (data) {
- if (data.meta.code == 400) {
- setTip("warning", '用户名或密码错误');
- return false;
- }
- window.location.reload();
- }).error(function (data) {
- // ONEMAP.C.publisher.publish({
- // type: 'warning',
- // message: '该用户尚未注册'
- // }, 'noteBar::add');
- setTip("warning", '该用户尚未注册!')
- })
- }
- }
- //微信登录
- $("#userLogin .login p.weixin").bind('click', function () {
- window.location.replace(param.userServer + '/oauth_client/weixin/login?next=' + param.system);
- })
- $("#userLogin .login p.qq").bind('click', function () {
- window.location.replace(param.userServer + '/oauth_client/qq/login?next=' + param.system);
- })
- $("#userLogin .login p.weibo").bind('click', function () {
- window.location.replace(param.userServer + '/oauth_client/weibo/login?next=' + param.system);
- })
- this.logout = function () {
- cookie.del('session');
- window.location.reload();
- }
- return this;
- }
- })(jQuery)
|