login_html.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. $(document).ready(function () {
  2. //禁用文本复制
  3. document.onselectstart = function () {
  4. return false;
  5. }
  6. //禁用鼠标右箭
  7. document.oncontextmenu = function () {
  8. return false;
  9. }
  10. 数据提交 = function(name = '地址',json = '数据',result = '回调') {
  11. $.post('http://localhost:13131/'+name,json,function(data){
  12. result(data);
  13. })
  14. }
  15. 滑动显示 = function (table1 = '标签一',time = '时间') {
  16. $(table1).css({
  17. overflow:'hidden',
  18. cursor:'pointer',
  19. }).find('div').css({
  20. width:$(table1).width(),
  21. height:$(table1).height(),
  22. background:'rgba(44,62,80,.4)',
  23. marginTop:$(table1).height()-$(table1).find('span').height(),
  24. cursor:'pointer',
  25. }).find('*').css({
  26. width:$(table1).width(),
  27. color:'#FFF',
  28. margin:'5px',
  29. textAlign:'left',
  30. });
  31. $(table1).hover(function(){
  32. $(this).find('div').animate({
  33. marginTop:'0px',
  34. },time)
  35. },function(){
  36. $(this).find('div').animate({
  37. marginTop:$(this).height()-$(this).find('span').height(),
  38. },time);
  39. });
  40. }
  41. alert_s = function(value = '类容'){
  42. $('body').append(`
  43. <div id="alert" style="background:transparent;
  44. left:0px;
  45. right:0px;
  46. top:0px;
  47. bottom:0px;
  48. margin:auto;
  49. text-align: center;
  50. position:fixed;
  51. z-index:999999;">
  52. <div style="text-align: center;position:absolute;
  53. left:0px;right:0px;top:0px;bottom:0px;margin:auto;
  54. width:150px;height:35px;border-radius:5px;background: rgba(0,0,0,0.3)">
  55. <span style="height:35px;line-height:35px;color: #ffffff;font-size: 13px">${value}</span>
  56. </div>
  57. </div>`);
  58. setTimeout(function () {
  59. $('#alert').remove();
  60. },500)
  61. }
  62. //----------------------------------------------------------------------------------------------
  63. Vue.component('login',{
  64. template:`
  65. <div type="login" v-on:click="on.button.exit()" v-bind:style="style.box" align="center">
  66. <div v-bind:style="style.frame">
  67. <label v-bind:style="style.label">
  68. <span v-bind:style="style.head">登录</span>
  69. </label>
  70. <label v-bind:style="style.label">
  71. <span v-bind:style="style.i">*</span>
  72. <span v-bind:style="style.title">账号</span>
  73. <input maxlength="9" v-on:focus="on.input.focus()" v-on:blur="on.input.blur()" v-bind:style="style.input"/>
  74. </label>
  75. <span v-bind:style="style.info"></span>
  76. <label v-bind:style="style.label">
  77. <span v-bind:style="style.i">*</span>
  78. <span v-bind:style="style.title">密码</span>
  79. <input maxlength="16" v-on:focus="on.input.focus()" v-on:blur="on.input.blur()" v-bind:style="style.input"/>
  80. </label>
  81. <span v-bind:style="style.info"></span>
  82. <label v-bind:style="style.label">
  83. <button v-on:click="on.button.QR_code()" v-bind:style="[style.button,style.button[2]]">扫码</button>
  84. <button v-on:click="on.button.login()" v-bind:style="[style.button,style.button[2]]">登录</button>
  85. <button v-on:click="on.button.exit()" type="quit" v-bind:style="[style.button,style.button[1]]">关闭</button>
  86. </label>
  87. <label v-bind:style="style.qr.box">
  88. <img v-bind:style="style.qr.img" width="100" height="100" alt=""/>
  89. <br/>
  90. <button v-on:click="on.button.account_login()" v-bind:style="style.qr.button" >账号登录</button>
  91. </label>
  92. </div>
  93. </div>`,
  94. data:function () {
  95. return {
  96. style:{
  97. box:{
  98. width:'100%',
  99. height:'100%',
  100. position:'fixed',
  101. zIndex:$('*').length * 2,
  102. background:'rgba(0,0,0,.2)'
  103. },
  104. frame:{
  105. display:'inline-grid',
  106. position: 'absolute',
  107. top:0,
  108. bottom:0,
  109. left:0,
  110. right:0,
  111. margin:'auto',
  112. width:'300px',
  113. height:'200px',
  114. borderRadius:'2.5px',
  115. padding:'20px 50px',
  116. background: '#FFF',
  117. },
  118. label:{
  119. height:'30px',
  120. },
  121. head:{
  122. lineHeight: '24px',
  123. fontSize: '18px',
  124. color: '#303133',
  125. },
  126. i:{
  127. color:'red',
  128. },
  129. title:{
  130. letterSpacing: '2.5px',
  131. marginRight:'5px',
  132. fontSize:'14px',
  133. color: '#606266',
  134. height:'30px',
  135. lineHeight:'30px',
  136. },
  137. input:{
  138. padding: '5px 10px',
  139. width: '200px',
  140. height: '20px',
  141. border:'1px solid #c3c3c3',
  142. borderRadius: '2.5px',
  143. outline:'none',
  144. },
  145. button:{
  146. cursor:'pointer',
  147. marginRight: '15px',
  148. float:'right',
  149. height:'30px',
  150. width:'70px',
  151. border:'none',
  152. borderRadius:'2.5px',
  153. outline: 'none',
  154. 1:{
  155. border:'1px solid #c3c3c3',
  156. background:'#FFF',
  157. color:'black'
  158. },
  159. 2:{
  160. border:'1px solid #409EFF',
  161. background:'#409EFF',
  162. color:'#FFF'
  163. }
  164. },
  165. info:{
  166. textAlign:'left',
  167. margin:'0 70px',
  168. height:'15px',
  169. letterSpacing:'2px',
  170. lineHeight: '15px',
  171. color:'red',
  172. fontSize: '10px',
  173. },
  174. qr:{
  175. box:{
  176. display:'none',
  177. height:'150px',
  178. },
  179. img:{
  180. borderRadius:'2.5px',
  181. },
  182. button:{
  183. cursor: 'pointer',
  184. marginTop:'15px',
  185. height:'30px',
  186. background:'#FFF',
  187. border:'1px solid #c3c3c3',
  188. outline:'none',
  189. width:'150px',
  190. }
  191. }
  192. },
  193. on:{
  194. input:{
  195. focus:function () {
  196. event.target.style.borderColor = '#409EFF';
  197. },
  198. blur:function () {
  199. var input = event.target;
  200. var info = $(input).parent('label').next('span')[0];
  201. var title = $(input).prev('span')[0].innerText;
  202. if ($(input).val() === defaultStatus||$(input).val()===null){
  203. info.innerText = title+'不能为空';
  204. } else if ($(input).val().indexOf(' ') !== -1){
  205. info.innerText = title+'不能包含空格';
  206. } else {
  207. info.innerText = '';
  208. }
  209. input.style.borderColor = '#c3c3c3';
  210. }
  211. },
  212. button:{
  213. exit:function () {
  214. if ($("div[type='login']").is(event.target) || $("button[type='quit']").is(event.target)){
  215. $("div[type='login']").css('display','none');
  216. }
  217. },
  218. login:function () {
  219. var message = $(event.target).parent('label').prevAll('label');
  220. var account = $(message[1]).find('input').val();
  221. var password = $(message[0]).find('input').val();
  222. var account_info = $(message[1]).next('span')[0];
  223. var password_info = $(message[0]).next('span')[0];
  224. var account_title = $(message[1]).find('span').eq(1).text();
  225. var password_title = $(message[0]).find('span').eq(1).text();
  226. if (account === defaultStatus||account===null){
  227. account_info.innerText = account_title+'不能为空';
  228. } else if (account.indexOf(' ') !== -1){
  229. account_info.innerText = password_title+'不能包含空格';
  230. }
  231. if (password === defaultStatus||password ===null){
  232. password_info.innerText = password_title+'不能为空';
  233. } else if (password.indexOf(' ') !== -1){
  234. password_info.innerText = password_title+'不能包含空格';
  235. }
  236. if (account !== defaultStatus
  237. &&account!==null
  238. &&account.indexOf(' ') === -1
  239. &&password !== defaultStatus
  240. &&password !==null
  241. &&password.indexOf(' ') === -1){
  242. $.post('http://127.0.0.1:13141/login',{
  243. account:account,
  244. password:password,
  245. },function (data) {
  246. alert_s(data.msg);
  247. if (data.error === 1){
  248. $.cookie('uuid',data.uuid,{exports:15});
  249. document.location.href = document.location.href;
  250. }
  251. })
  252. }
  253. },
  254. QR_code:function(){
  255. let qr_info = {
  256. time:new Date(),
  257. }
  258. $(event.target).parent('label').next('label').find('img').attr('src','http://qrs.kegood.com/?url='+JSON.stringify(qr_info))
  259. $(event.target).parent('label').parent('div').find('label').css('display','none')
  260. $(event.target).parent('label').parent('div').find('label')[0].style.display = 'block';
  261. $(event.target).parent('label').parent('div').find('label')[4].style.display = 'block';
  262. },
  263. account_login:function () {
  264. $(event.target).parent('label').parent('div').find('label').css('display','block')
  265. $(event.target).parent('label').parent('div').find('label')[4].style.display = 'none';
  266. }
  267. }
  268. }
  269. };
  270. }
  271. });
  272. new Vue({
  273. el:'#ifame'
  274. })
  275. })