login.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696
  1. <template>
  2. <div class="xs-lg ggshown">
  3. <img
  4. style="width:100%;height:100%;position:absolute;"
  5. src="../../../assets/img/icore-shown.png"
  6. />
  7. <section class="xs-lg-content xs-lg-mmw">
  8. <div class="xs-lg-bg">
  9. <div class="frame-area">
  10. <div class="desc-area" style="background: none;color: #fff;font-size: 13px;">安泰控股集团智能管控系统</div>
  11. <div style="position: absolute;left: 30px;width: 346px;top: 105px;">
  12. <el-form
  13. :inline="false"
  14. ref="loginForm"
  15. :model="loginForm"
  16. :rules="loginFormRules"
  17. class="xs-lg-form"
  18. >
  19. <el-form-item
  20. style="margin-bottom:20px"
  21. prop="loginName"
  22. >
  23. <el-input
  24. v-model="loginForm.loginName"
  25. placeholder="用户名"
  26. >
  27. <i
  28. class="oa-login-ibg oa-login-ibg1"
  29. slot="prefix"
  30. ></i>
  31. </el-input>
  32. </el-form-item>
  33. <el-form-item
  34. style="margin-bottom:20px"
  35. prop="password"
  36. >
  37. <el-input
  38. v-model="loginForm.password"
  39. :type="pwdShow ? 'text' : 'password'"
  40. placeholder="密码"
  41. @keyup.enter.native="loginSubmit('loginForm')"
  42. >
  43. <i
  44. class="oa-login-ibg oa-login-ibg2"
  45. slot="prefix"
  46. ></i>
  47. <i
  48. class="xs-icons xs-icons-see oa-login-ibg4"
  49. :class="{ 'xs-icons-see-reverse': !pwdShow }"
  50. @click="showPwd"
  51. slot="suffix"
  52. ></i>
  53. </el-input>
  54. </el-form-item>
  55. <el-form-item style="margin-bottom:20px">
  56. <el-button
  57. type="primary"
  58. class="xs-lg-btn"
  59. size=""
  60. @click="loginSubmit('loginForm')"
  61. :loading="loginBtnLoading"
  62. >登&nbsp;录</el-button>
  63. </el-form-item>
  64. </el-form>
  65. </div>
  66. </div>
  67. <div
  68. v-if="false"
  69. class="xs-lg-md"
  70. >
  71. <div class="login-bac">
  72. </div>
  73. <el-form
  74. :inline="false"
  75. ref="loginForm"
  76. :model="loginForm"
  77. :rules="loginFormRules"
  78. class="xs-lg-form"
  79. >
  80. <el-form-item
  81. style="margin-bottom:20px"
  82. prop="loginName"
  83. >
  84. <el-input
  85. v-model="loginForm.loginName"
  86. placeholder="用户名"
  87. >
  88. <i
  89. class="oa-login-ibg oa-login-ibg1"
  90. slot="prefix"
  91. ></i>
  92. </el-input>
  93. </el-form-item>
  94. <el-form-item
  95. style="margin-bottom:20px"
  96. prop="password"
  97. >
  98. <el-input
  99. v-model="loginForm.password"
  100. :type="pwdShow ? 'text' : 'password'"
  101. placeholder="密码"
  102. @keyup.enter.native="loginSubmit('loginForm')"
  103. >
  104. <i
  105. class="oa-login-ibg oa-login-ibg2"
  106. slot="prefix"
  107. ></i>
  108. <i
  109. class="xs-icons xs-icons-see oa-login-ibg4"
  110. :class="{ 'xs-icons-see-reverse': !pwdShow }"
  111. @click="showPwd"
  112. slot="suffix"
  113. ></i>
  114. </el-input>
  115. </el-form-item>
  116. <el-form-item style="margin-bottom:20px">
  117. <el-button
  118. type="primary"
  119. class="xs-lg-btn"
  120. size=""
  121. @click="loginSubmit('loginForm')"
  122. :loading="loginBtnLoading"
  123. >登&nbsp;录</el-button>
  124. </el-form-item>
  125. </el-form>
  126. </div>
  127. </div>
  128. </section>
  129. </div>
  130. </template>
  131. <script>
  132. import { cookieUserId, cookieTime, cookieUserName } from '@/config/config.js';
  133. import { setCookie, getCookie, formatDate } from '@/utils/util.js';
  134. import store from '@/store/index.js';
  135. import JsSHA from 'jssha'
  136. const shaObj = new JsSHA('SHA-1', 'TEXT', { encoding: 'UTF8' })
  137. export default {
  138. data () {
  139. return {
  140. store,
  141. loginBtnLoading: false,
  142. pwdShow: false,
  143. shaObj,
  144. loginForm: {
  145. loginName: '',
  146. password: '',
  147. postId: '',
  148. date: store.getters['index/login/workDate']
  149. },
  150. loginFormRules: {
  151. loginName: [
  152. { required: true, message: '请输入用户名', trigger: 'blur' }
  153. ],
  154. password: [
  155. { required: true, message: '请输入密码', trigger: 'blur' }
  156. ]// ,
  157. // postId: [
  158. // { required: true, message: '请选择岗位', trigger: 'change' }
  159. // ]
  160. }
  161. }
  162. },
  163. beforeCreate () {
  164. let token = getCookie('accessToken');
  165. if (token) {
  166. this.$router.push({ path: 'main' })
  167. }
  168. window.top.localStorage.setItem('ownPrivilege', '')
  169. },
  170. mounted () {
  171. // 从cookie中获取上一次的登录用户名,赋值给用户名
  172. if (getCookie('loginName')) {
  173. this.loginForm.loginName = getCookie('loginName');
  174. }
  175. },
  176. destroyed () {
  177. },
  178. methods: {
  179. loginSubmit (formName) {
  180. this.loginForm.loginName = this.loginForm.loginName.trim();
  181. this.$refs[formName].validate((valid) => {
  182. if (valid) {
  183. // if (this.loginForm.loginName === 'admin' && this.loginForm.password === '123456') {
  184. // // 前期无后台测试用
  185. // setCookie('accessToken', 'accessToken', cookieTime, '/');
  186. // setCookie('refreshToken', 'refreshToken', cookieTime, '/');
  187. // setCookie('loginName', this.loginForm.loginName);
  188. // setCookie('workDate', this.loginForm.date);
  189. // this.store.commit('userInfo', {
  190. // userName: this.loginForm.loginName
  191. // });
  192. // let sRedirect = this.$route.query.redirect;
  193. // if (sRedirect) {
  194. // this.$router.push({ path: sRedirect });
  195. // } else {
  196. // this.$router.push({ path: 'main' });
  197. // }
  198. // } else {
  199. // this.$message({
  200. // message: '账号或密码错误',
  201. // type: 'error'
  202. // });
  203. // }
  204. // /*
  205. // 登陆中 登录按钮不可用
  206. this.loginBtnLoading = true;
  207. let form = JSON.parse(JSON.stringify(this.loginForm));
  208. // this.shaObj.update(form.password)
  209. // form.password = this.shaObj.getHash('HEX')
  210. this.store.dispatch('index/login/login', form).then(res => {
  211. if (res.code === '0') {
  212. // 登录成功
  213. // 设置缓存信息
  214. setCookie('accessToken', res.data.accessToken, cookieTime, '/');
  215. setCookie('refreshToken', res.data.refreshToken, cookieTime, '/');
  216. setCookie('loginName', this.loginForm.loginName);
  217. setCookie('userId', res.data.user.userId);
  218. setCookie('userInfo', JSON.stringify(res.data.user));
  219. setCookie('account', res.data.user.userName);
  220. let sRedirect = this.$route.query.redirect;
  221. let userInfo = res.data.user;
  222. if (userInfo.sysCompanys) {
  223. // 公司列表过多时cookie存放失败,存至localStorage
  224. // setCookie('companys', JSON.stringify(userInfo.sysCompanys));
  225. // window.localStorage.setItem('sysGroup', JSON.stringify(userInfo.sysGroup));
  226. // window.localStorage.setItem('companys', JSON.stringify(userInfo.sysCompanys));
  227. if (userInfo.hasOwnProperty('sysCompanys')) {
  228. window.localStorage.setItem('companyId', userInfo.sysCompanys[0].id);
  229. }
  230. }
  231. console.log(sRedirect);
  232. if (sRedirect) {
  233. this.$router.push({ path: sRedirect });
  234. } else {
  235. this.$router.push({ path: 'main' }).catch(() => {});
  236. }
  237. } else {
  238. // 登录失败
  239. // 提示
  240. this.$message({
  241. message: res.message,
  242. type: 'error'
  243. });
  244. }
  245. this.loginBtnLoading = false;
  246. console.log(res.date)
  247. }).catch(() => {
  248. this.loginBtnLoading = false;
  249. });
  250. // */
  251. } else {
  252. return false;
  253. }
  254. });
  255. },
  256. showPwd () {
  257. this.pwdShow = !this.pwdShow;
  258. }
  259. }
  260. }
  261. </script>
  262. <!-- Add "scoped" attribute to limit CSS to this component only -->
  263. <style>
  264. .ggshown .el-button--primary,
  265. .ggshown .el-button--primary:hover {
  266. color: rgba(8, 129, 153) !important;
  267. background-color: rgba(0, 255, 170) !important;
  268. border-color: rgba(0, 255, 170) !important;
  269. }
  270. .ggshown .el-input__inner {
  271. color: #eded !important;
  272. /* padding-left: 80px !important; */
  273. -webkit-appearance: none;
  274. background-color: rgba(1, 1, 1, 0.1);
  275. background-image: none;
  276. /* border-radius: 4px; */
  277. border: 0px solid #dcdfe6;
  278. -webkit-box-sizing: border-box;
  279. box-sizing: border-box;
  280. color: #606266;
  281. display: inline-block;
  282. font-size: inherit;
  283. height: 50px;
  284. line-height: 40px;
  285. outline: 0;
  286. padding: 0 15px;
  287. -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
  288. transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
  289. width: 100%;
  290. }
  291. .ggshown input:-webkit-autofill {
  292. -webkit-text-fill-color: #eded !important;
  293. -webkit-box-shadow: 0 0 0 1000px transparent inset !important;
  294. background-color: transparent !important;
  295. background-image: none !important;
  296. -webkit-transition: background-color 50000s ease-in-out 0s !important;
  297. transition: background-color 50000s ease-in-out 0s !important;
  298. }
  299. .frame-area {
  300. position: absolute;
  301. right: 295px;
  302. width: 372px;
  303. height: 336px;
  304. top: 173px;
  305. background: url(../../../assets/img/icore-shown-frame.png) no-repeat;
  306. }
  307. .desc-area {
  308. position: absolute;
  309. left: 55px;
  310. width: 135px;
  311. height: 31px;
  312. top: 63px;
  313. background: url(../../../assets/img/icore-shown-desc.png) no-repeat;
  314. }
  315. .login-bac {
  316. height: 60px;
  317. background-image: url(../../../assets/img/login.png);
  318. }
  319. .xs-lg-mmw {
  320. margin: 0 auto;
  321. min-width: 1200px;
  322. max-width: 1920px;
  323. }
  324. .xs-lg {
  325. position: relative;
  326. height: 100%;
  327. width: 100%;
  328. min-width: 1200px;
  329. min-height: 600px;
  330. max-width: 1920px;
  331. /* background: url() 100% 100% no-repeat; */
  332. }
  333. .xs-lg-header {
  334. position: fixed;
  335. top: 0;
  336. left: 0;
  337. z-index: 2;
  338. width: 100%;
  339. height: 60px;
  340. overflow: hidden;
  341. background-image: url(../../../assets/img/ytg_tab.png);
  342. }
  343. .xs-lg-content {
  344. position: relative;
  345. padding-top: 60px;
  346. height: 100%;
  347. /* background: url(../../../assets/img/login/login-bg.png) center center */
  348. /* no-repeat; */
  349. }
  350. .xs-lg-bg {
  351. position: absolute;
  352. top: 0;
  353. left: 0;
  354. width: 100%;
  355. height: 100%;
  356. /* margin-top: -270px; */
  357. overflow: hidden;
  358. /* background: url(../../../assets/img/login/login_blue.png) center center */
  359. /* no-repeat; */
  360. }
  361. .xs-lg-line {
  362. display: inline-block;
  363. overflow: hidden;
  364. position: absolute;
  365. left: 50%;
  366. z-index: 1;
  367. height: 1px;
  368. background-color: #fff;
  369. -webkit-animation: line_fadeIn 8s ease-out 1.2s both infinite;
  370. animation: line_fadeIn 8s ease-out 1.2s both infinite;
  371. }
  372. @-webkit-keyframes line_fadeIn {
  373. 0% {
  374. opacity: 0;
  375. }
  376. 20% {
  377. opacity: 0.6;
  378. }
  379. 60% {
  380. opacity: 0.6;
  381. }
  382. 85% {
  383. opacity: 0;
  384. }
  385. 100% {
  386. opacity: 0;
  387. }
  388. }
  389. @keyframes line_fadeIn {
  390. 0% {
  391. opacity: 0;
  392. }
  393. 20% {
  394. opacity: 0.6;
  395. }
  396. 60% {
  397. opacity: 0.6;
  398. }
  399. 85% {
  400. opacity: 0;
  401. }
  402. 100% {
  403. opacity: 0;
  404. }
  405. }
  406. .xs-lg-line12 {
  407. width: 200px;
  408. margin-left: -655px;
  409. top: 270px;
  410. -webkit-transform: rotate3d(0, 0, 1, 126deg);
  411. transform: rotate3d(0, 0, 1, 126deg);
  412. -webkit-animation-delay: 1.2s;
  413. animation-delay: 1.2s;
  414. }
  415. .xs-lg-line13 {
  416. width: 200px;
  417. margin-left: -605px;
  418. top: 375px;
  419. -webkit-transform: rotate3d(0, 0, 1, 12deg);
  420. transform: rotate3d(0, 0, 1, 12deg);
  421. -webkit-animation-delay: 1.35s;
  422. animation-delay: 1.35s;
  423. }
  424. .xs-lg-line24 {
  425. width: 200px;
  426. margin-left: -520px;
  427. top: 177px;
  428. -webkit-transform: rotate3d(0, 0, 1, 167deg);
  429. transform: rotate3d(0, 0, 1, 167deg);
  430. -webkit-animation-delay: 1.5s;
  431. animation-delay: 1.5s;
  432. }
  433. .xs-lg-line35 {
  434. width: 250px;
  435. margin-left: -430px;
  436. top: 339px;
  437. -webkit-transform: rotate3d(0, 0, 1, 147deg);
  438. transform: rotate3d(0, 0, 1, 147deg);
  439. -webkit-animation-delay: 1.65s;
  440. animation-delay: 1.65s;
  441. }
  442. .xs-lg-line45 {
  443. width: 200px;
  444. margin-left: -365px;
  445. top: 210px;
  446. -webkit-transform: rotate3d(0, 0, 1, 45deg);
  447. transform: rotate3d(0, 0, 1, 45deg);
  448. -webkit-animation-delay: 1.8s;
  449. animation-delay: 1.8s;
  450. }
  451. .xs-lg-line56 {
  452. width: 200px;
  453. margin-left: -245px;
  454. top: 360px;
  455. -webkit-transform: rotate3d(0, 0, 1, 60deg);
  456. transform: rotate3d(0, 0, 1, 60deg);
  457. -webkit-animation-delay: 1.95s;
  458. animation-delay: 1.95s;
  459. }
  460. .xs-lg-line57 {
  461. width: 200px;
  462. margin-left: -215px;
  463. top: 210px;
  464. -webkit-transform: rotate3d(0, 0, 1, 145deg);
  465. transform: rotate3d(0, 0, 1, 145deg);
  466. -webkit-animation-delay: 2.1s;
  467. animation-delay: 2.1s;
  468. }
  469. .xs-lg-line58 {
  470. width: 300px;
  471. margin-left: -215px;
  472. top: 270px;
  473. -webkit-animation-delay: 2.25s;
  474. animation-delay: 2.25s;
  475. }
  476. .xs-lg-line68 {
  477. width: 250px;
  478. margin-left: -125px;
  479. top: 345px;
  480. -webkit-transform: rotate3d(0, 0, 1, 137deg);
  481. transform: rotate3d(0, 0, 1, 137deg);
  482. -webkit-animation-delay: 2.4s;
  483. animation-delay: 2.4s;
  484. }
  485. .xs-lg-line78 {
  486. width: 150px;
  487. margin-left: -35px;
  488. top: 205px;
  489. -webkit-transform: rotate3d(0, 0, 1, 145deg);
  490. transform: rotate3d(0, 0, 1, 60deg);
  491. -webkit-animation-delay: 2.55s;
  492. animation-delay: 2.55s;
  493. }
  494. .xs-lg-icon {
  495. display: inline-block;
  496. position: absolute;
  497. left: 50%;
  498. z-index: 2;
  499. }
  500. .xs-lg-icon1 {
  501. top: 315px;
  502. margin-left: -650px;
  503. width: 70px;
  504. height: 70px;
  505. background: url(../../../assets/img/login/login-list-icon1.png) center
  506. center no-repeat;
  507. -webkit-animation: aop_up 0.6s ease-out 0.5s both;
  508. animation: aop_up 0.6s ease-out 0.5s both;
  509. }
  510. .xs-lg-icon2 {
  511. top: 150px;
  512. margin-left: -550px;
  513. width: 94px;
  514. height: 94px;
  515. background: url(../../../assets/img/login/login-list-icon2.png) center
  516. center no-repeat;
  517. -webkit-animation: aop_up 0.6s ease-out 0.3s both;
  518. animation: aop_up 0.6s ease-out 0.3s both;
  519. }
  520. .xs-lg-icon3 {
  521. top: 340px;
  522. margin-left: -430px;
  523. width: 70px;
  524. height: 70px;
  525. background: url(../../../assets/img/login/login-list-icon3.png) center
  526. center no-repeat;
  527. -webkit-animation: aop_up 0.6s ease-out 0.5s both;
  528. animation: aop_up 0.6s ease-out 0.5s both;
  529. }
  530. .xs-lg-icon4 {
  531. top: 130px;
  532. margin-left: -350px;
  533. width: 55px;
  534. height: 55px;
  535. background: url(../../../assets/img/login/login-list-icon4.png) center
  536. center no-repeat;
  537. -webkit-animation: aop_up 0.6s ease-out 0.7s both;
  538. animation: aop_up 0.6s ease-out 0.7s both;
  539. }
  540. .xs-lg-icon5 {
  541. top: 220px;
  542. margin-left: -250px;
  543. width: 100px;
  544. height: 100px;
  545. background: url(../../../assets/img/login/login-list-icon5.png) center
  546. center no-repeat;
  547. -webkit-animation: aop_up 0.6s ease-out 0.3s both;
  548. animation: aop_up 0.6s ease-out 0.3s both;
  549. }
  550. .xs-lg-icon6 {
  551. top: 410px;
  552. margin-left: -130px;
  553. width: 55px;
  554. height: 55px;
  555. background: url(../../../assets/img/login/login-list-icon6.png) center
  556. center no-repeat;
  557. -webkit-animation: aop_up 0.6s ease-out 0.7s both;
  558. animation: aop_up 0.6s ease-out 0.7s both;
  559. }
  560. .xs-lg-icon7 {
  561. top: 100px;
  562. margin-left: -50px;
  563. width: 72px;
  564. height: 72px;
  565. background: url(../../../assets/img/login/login-list-icon7.png) center
  566. center no-repeat;
  567. -webkit-animation: aop_up 0.6s ease-out 0.5s both;
  568. animation: aop_up 0.6s ease-out 0.5s both;
  569. }
  570. .xs-lg-icon8 {
  571. top: 240px;
  572. margin-left: 50px;
  573. width: 55px;
  574. height: 55px;
  575. background: url(../../../assets/img/login/login-list-icon8.png) center
  576. center no-repeat;
  577. -webkit-animation: aop_up 0.6s ease-out 0.7s both;
  578. animation: aop_up 0.6s ease-out 0.7s both;
  579. }
  580. @-webkit-keyframes aop_up {
  581. 0% {
  582. -webkit-transform: translate3d(0, 150%, 0) scale(0.2, 0.2);
  583. transform: translate3d(0, 150%, 0) scale(0.2, 0.2);
  584. opacity: 0;
  585. }
  586. 100% {
  587. -webkit-transform: translate3d(0, 0, 0) scale(1, 1);
  588. transform: translate3d(0, 0, 0) scale(1, 1);
  589. opacity: 1;
  590. }
  591. }
  592. @keyframes aop_up {
  593. 0% {
  594. -webkit-transform: translate3d(0, 150%, 0) scale(0.2, 0.2);
  595. transform: translate3d(0, 150%, 0) scale(0.2, 0.2);
  596. opacity: 0;
  597. }
  598. 100% {
  599. -webkit-transform: translate3d(0, 0, 0) scale(1, 1);
  600. transform: translate3d(0, 0, 0) scale(1, 1);
  601. opacity: 1;
  602. }
  603. }
  604. .xs-lg-bgi {
  605. }
  606. .xs-lg-footer {
  607. text-align: center;
  608. padding: 20px 0 30px 0;
  609. }
  610. .xs-lg-footer > p {
  611. padding: 5px 0;
  612. }
  613. .xs-lg-md {
  614. background-color: #e5e5e5 !important;
  615. font-size: 12px;
  616. width: 340px;
  617. background-color: #fff;
  618. position: absolute;
  619. top: 10px;
  620. left: 57%;
  621. margin-left: 200px;
  622. box-shadow: 0 0 5px #666;
  623. border-radius: 0px;
  624. animation: fadeIn 0.4s ease-out 0.4s both;
  625. transition: box-shadow 0.4s ease-out;
  626. }
  627. .xs-lg-md:hover {
  628. box-shadow: 0 0 20px #666;
  629. }
  630. .xs-lg-md-h1 {
  631. font-size: 27px;
  632. font-family: cursive;
  633. font-weight: bold;
  634. color: #3d9df2;
  635. height: 60px;
  636. line-height: 60px;
  637. vertical-align: middle;
  638. text-align: center;
  639. border-bottom: 1px solid #e3e3e3;
  640. }
  641. .oa-login-form {
  642. box-sizing: border-box;
  643. padding: 30px 40px 50px;
  644. }
  645. .oa-login-fl {
  646. padding-bottom: 20px;
  647. }
  648. .oa-login-input {
  649. padding: 8px 10px 0 50px;
  650. width: 100%;
  651. height: 36px;
  652. line-height: 28px;
  653. vertical-align: middle;
  654. border: 0;
  655. border-bottom: 1px solid #d9d9d9;
  656. background-color: inherit;
  657. outline: none;
  658. font-size: 14px;
  659. }
  660. .oa-login-ibg {
  661. position: absolute;
  662. left: 15px;
  663. top: 15px;
  664. height: 20px;
  665. width: 20px;
  666. }
  667. .oa-login-ibg1 {
  668. background: url(../../../assets/img/icore-shown-user.png) center center
  669. no-repeat;
  670. }
  671. .oa-login-ibg2 {
  672. background: url(../../../assets/img/icore-shown-psw.png) center center
  673. no-repeat;
  674. }
  675. .oa-login-ibg3 {
  676. background: url(../../../assets/img/login/login-icon3.png) center center
  677. no-repeat;
  678. }
  679. .oa-login-ibg4 {
  680. position: absolute;
  681. right: 15px;
  682. top: 20px;
  683. }
  684. .oa-login-b {
  685. padding-top: 18px;
  686. }
  687. .xs-lg-btn {
  688. margin-top: 5px;
  689. width: 100%;
  690. height: 45px;
  691. font-size: 14px;
  692. border-radius: 0px;
  693. }
  694. </style>