diff --git a/package.json b/package.json index 6d0b9ab..c5b80b5 100755 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ }, "dependencies": { "babel-polyfill": "^6.26.0", + "blueimp-md5": "^2.10.0", "bootstrap": "^4.0.0", "bootstrap-datepicker": "^1.7.1", "chart.js": "^2.7.1", @@ -57,6 +58,7 @@ "fullcalendar": "^3.6.2", "jquery": "^3.2.1", "jquery-sparkline": "^2.4.0", + "jquery.cookie": "^1.4.1", "jvectormap": "^2.0.4", "load-google-maps-api": "^1.0.0", "lodash": "^4.17.4", diff --git a/src/assets/scripts/index.js b/src/assets/scripts/index.js index d448c1d..0e47e51 100755 --- a/src/assets/scripts/index.js +++ b/src/assets/scripts/index.js @@ -1,17 +1,21 @@ import '../styles/index.scss'; -import './masonry'; -import './charts'; -import './popover'; -import './scrollbar'; -import './search'; -import './sidebar'; -import './skycons'; -import './vectorMaps'; -import './chat'; -import './datatable'; -import './datepicker'; -import './email'; -import './fullcalendar'; -import './googleMaps'; +import './signin'; import './utils'; +import './sidebar'; + +// import './masonry'; +// import './charts'; +// import './popover'; +// import './scrollbar'; +// import './search'; +// import './skycons'; +// import './vectorMaps'; +// import './chat'; +// import './datatable'; +// import './datepicker'; +// import './email'; +// import './fullcalendar'; +// import './googleMaps'; + + diff --git a/src/assets/scripts/signin/index.js b/src/assets/scripts/signin/index.js new file mode 100644 index 0000000..6daa066 --- /dev/null +++ b/src/assets/scripts/signin/index.js @@ -0,0 +1,43 @@ +import * as $ from 'jquery'; +import util from '../util.js'; +const MD5 = require('blueimp-md5/js/md5'); + +export default (function () { + const $msg = $('#msg'); + + // Sidebar links + $('#signin').click(function (e) { + const $this = $(this), + $user = $('#user'), + $pwd = $('#pwd'); + + console.log($user) + if(!$user.val()){ + $msg.text('请输入用户名').show(); + return; + } + + if(!$pwd.val()){ + $msg.text('请输入密码').show(); + return; + } + + util.post('/auth/login', { + username: $user.val(), + password: MD5($pwd.val()) + }, (data)=>{ + if(data.status == "OK"){ + $.cookie('token', data.result); + location.href = "/index.html"; + }else if(data.status == "FAILED"){ + $msg.text(data.errMsg).show(); + } + }); + + }); + + // 开始输入隐藏消息 + $('#signin-form input').on('focus', function(){ + $msg.hide(); + }) +}()); diff --git a/src/assets/scripts/util.js b/src/assets/scripts/util.js new file mode 100644 index 0000000..7702daf --- /dev/null +++ b/src/assets/scripts/util.js @@ -0,0 +1,27 @@ +import * as $ from 'jquery'; +import 'jquery.cookie'; + +export default { + "post": function(url, data, success_callback, fail_callback){ + // data['token'] + $.ajax({ + "url": url, + "data": data, + "method": "POST", + "dataType": "json", + "headers": { + 'Authorization': "Bearer " + $.cookie('token') + }, + "statusCode": { + 403: function(e) { + alert( e.responseJSON.errMsg ); + location.href = "/signin.html"; + } + } + }).done(function( data, textStatus, jqXHR ) { + success_callback( data, textStatus, jqXHR ) + }).fail(function( data, textStatus, errorThrown ) { + fail_callback( data, textStatus, errorThrown ) + }) + } +} \ No newline at end of file diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index 6c7b16c..678ad44 100755 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -1,6 +1,6 @@ @import 'spec/settings/index'; @import 'spec/tools/index'; -@import "~bootstrap/scss/bootstrap"; +// "~"指node_modules文件夹(webpack-resolve-alias) +@import "~bootstrap/dist/css/bootstrap"; @import 'spec/index'; @import 'vendor/index'; - diff --git a/src/signin.ejs b/src/signin.ejs index e8e5f20..c66c6e8 100644 --- a/src/signin.ejs +++ b/src/signin.ejs @@ -17,15 +17,18 @@
-

Login

-
+

登录

+
- - + +
- - + + +
+
+
@@ -33,12 +36,12 @@
- + 登录
diff --git a/webpack/devServer.js b/webpack/devServer.js index 7fa9655..ff9d1ff 100755 --- a/webpack/devServer.js +++ b/webpack/devServer.js @@ -25,6 +25,18 @@ const devServer = { host : '0.0.0.0', disableHostCheck : true, // [1] overlay : true, + proxy: { + '/admin/*': { + target: 'http://localhost:1313', + changeOrigin: true, + secure: false + }, + '/auth/*': { + target: 'http://localhost:1313', + changeOrigin: true, + secure: false + } + }, stats: { assets : true, children : false,