login.vue 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. <template>
  2. <div class="home-wrap">
  3. <!-- 注册页面 -->
  4. <div class="login-block" v-if="loginTab===0">
  5. <div class="contain">
  6. <!-- <h2>FX66&nbsp;欢迎您注册</h2>
  7. <h4>Welcome you to join</h4> -->
  8. <div class="tab-box">
  9. <span :class='{active:operateType=="email"}' @click="operateType='email'">邮箱注册</span>
  10. <span :class='{active:operateType=="mobile"}' @click="operateType='mobile'">手机注册</span>
  11. </div>
  12. <div class="login-line">
  13. <span v-if="operateType=='email'"><i class="iconfont icon-tubiao01"></i></span>
  14. <span class="areaBlock" v-if="operateType=='mobile'">
  15. <el-select class="areaSelect" v-model="area" placeholder="">
  16. <el-option
  17. v-for="item in areaOptions"
  18. :key="item.code"
  19. :label="item.ch_name"
  20. :value="item.code">
  21. </el-option>
  22. </el-select>
  23. </span>
  24. <input class="input" type="text" v-model="regParam.email" :placeholder="tipWord" @blur="checkPhoneNumber()">
  25. </div>
  26. <div class="yanz-line">
  27. <input class="input" type="text" v-model="regParam.code" placeholder="请输入验证码">
  28. <button v-if="codestate===0" @click="sendCode()">发送验证码</button>
  29. <button :class="{bgGrey:codestate===1}" v-if="codestate===1" disabled>已发送{{secondNum}}</button>
  30. <button v-if="codestate===2" @click="sendCode()">重新发送</button>
  31. </div>
  32. <div class="login-line">
  33. <span><i class="iconfont icon-mima"></i></span>
  34. <input class="input" type="password" v-model="regParam.password" placeholder="请输入您的密码">
  35. <i class="iconfont icon-keyboard keyboradIcon"></i>
  36. <!-- <el-input class="input" type="text" v-model="regParam.password" placeholder="请输入您的密码">
  37. <i slot="suffix-icon" class="iconfont icon-keyboard"></i>
  38. </el-input> -->
  39. </div>
  40. <div class="tip-line">
  41. <input v-model="tipNeed" class="input" type="checkbox" id="tip">
  42. <!-- <label for="tip">
  43. <span>我已了解风险提示!</span>
  44. </label> -->
  45. <span>我已了解<i @click="dialogVisible=true">风险提示</i>!</span>
  46. <div class="switch-box">
  47. <span class="cursor" @click="loginTab=1">立即登录!</span>
  48. </div>
  49. <p class="warning" v-show="isRegisted">*该邮箱已注册</p>
  50. <p class="warning" v-show="isError">*您输入的手机号有误,请重新输入</p>
  51. </div>
  52. <div class="submit-line">
  53. <!-- <button class="loginBtn">登录</button> -->
  54. <el-button class="regBtn" @click="goreg" :loading="regLoad">注册</el-button>
  55. </div>
  56. </div>
  57. </div>
  58. <!-- 登录页面 -->
  59. <div class="login-block" v-if="loginTab===1">
  60. <div class="contain">
  61. <!-- <h2>FX66&nbsp;欢迎您登录</h2>
  62. <h4>Welcome you to join</h4> -->
  63. <div class="tab-box">
  64. <span :class='{active:operateType=="email"}' @click="operateType='email'">邮箱登录</span>
  65. <span :class='{active:operateType=="mobile"}' @click="operateType='mobile'">手机登录</span>
  66. </div>
  67. <div class="login-line">
  68. <span v-if="operateType=='email'"><i class="iconfont icon-tubiao01"></i></span>
  69. <span class="areaBlock" v-if="operateType=='mobile'">
  70. <!-- <select v-model="area">
  71. <option :value="item.code" v-for="item in areaOptions">{{item.ch_name}}</option>
  72. </select> -->
  73. <el-select class="areaSelect" v-model="area" placeholder="">
  74. <el-option
  75. v-for="item in areaOptions"
  76. :key="item.code"
  77. :label="item.ch_name"
  78. :value="item.code">
  79. </el-option>
  80. </el-select>
  81. </span>
  82. <input class="input" v-model="loginParam.username" type="text" :placeholder="tipWord">
  83. </div>
  84. <div class="login-line">
  85. <span><i class="iconfont icon-mima"></i></span>
  86. <input class="input" v-model="loginParam.password" type="password" placeholder="请输入您的密码">
  87. </div>
  88. <!-- <div class="yanz-line">
  89. <input class="input" type="text" v-model="loginParam.password" placeholder="请输入验证码">
  90. <button v-if="codestate===0" @click="sendLoginCode()">发送验证码</button>
  91. <button :class="{bgGrey:codestate===1}" v-if="codestate===1">已发送{{secondNum}}</button>
  92. </div> -->
  93. <div class="tip-line">
  94. <span class="cursor" @click="toForgetPassWord()">忘记密码?</span>
  95. <div class="switch-box">
  96. <span class="cursor" @click="loginTab=0">立即注册!</span>
  97. </div>
  98. <!-- <p class="warning" v-show="">*该邮箱还未注册</p> -->
  99. </div>
  100. <div class="submit-line">
  101. <el-button class="loginBtn cursor" @click="gologin" :loading="buttonLoad">登录</el-button>
  102. </div>
  103. </div>
  104. </div>
  105. <!-- 手机or邮箱找回密码 -->
  106. <div class="login-block" v-if="loginTab===2">
  107. <div class="contain">
  108. <!-- <h2>找回密码</h2>
  109. <h4>Retrieve password</h4> -->
  110. <div class="tab-box">
  111. <span :class='{active:operateType=="mobile"}' @click="operateType='mobile'">手机找回</span>
  112. <span :class='{active:operateType=="email"}' @click="operateType='email'">邮箱找回</span>
  113. </div>
  114. <div class="login-line" v-if="operateType=='email'">
  115. <span><i class="iconfont icon-tubiao01"></i></span>
  116. <input class="input" v-model="setParam.username" type="text" placeholder="请输入您的邮箱">
  117. </div>
  118. <div v-if="operateType=='mobile'">
  119. <div class="login-line">
  120. <span v-if="operateType=='email'"><i class="iconfont icon-tubiao01"></i></span>
  121. <span class="areaBlock" v-if="operateType=='mobile'">
  122. <el-select class="areaSelect" v-model="area" placeholder="">
  123. <el-option
  124. v-for="item in areaOptions"
  125. :key="item.code"
  126. :label="item.ch_name"
  127. :value="item.code">
  128. </el-option>
  129. </el-select>
  130. </span>
  131. <input class="input" type="text" v-model="setParam.username" :placeholder="tipWord">
  132. </div>
  133. <div class="yanz-line">
  134. <input class="input" type="text" v-model="setParam.resettoken" placeholder="请输入验证码">
  135. <button v-if="codestate===0" @click="pwdSend()" :loading="codeLoad">发送验证码</button>
  136. <button :class="{bgGrey:codestate===1}" v-if="codestate===1">已发送{{secondNum}}</button>
  137. <button v-if="codestate===2" @click="pwdSend()">重新发送</button>
  138. </div>
  139. <div class="login-line">
  140. <span><i class="iconfont icon-mima"></i></span>
  141. <input class="input" type="password" v-model="setParam.password" placeholder="请输入您的新密码">
  142. <i class="iconfont icon-keyboard keyboradIcon"></i>
  143. </div>
  144. <div class="login-line">
  145. <span><i class="iconfont icon-mima"></i></span>
  146. <input class="input" type="password" v-model="setParam.password2" placeholder="请再次输入您的新密码">
  147. <i class="iconfont icon-keyboard keyboradIcon"></i>
  148. </div>
  149. </div>
  150. <div class="tip-line">
  151. <div class="switch-box">
  152. <span class="cursor" @click="loginTab=1">返回登录!</span>
  153. </div>
  154. <p class="warning" v-show="messageCodeisError">*短信验证码错误</p>
  155. </div>
  156. <div class="submit-line">
  157. <el-button class="loginBtn cursor" @click="" v-if="operateType=='email'" :loading="codeLoad">
  158. <span v-if="codestate===0" @click="pwdSend()">发送邮件</span>
  159. <span v-if="codestate===1">已发送{{secondNum}}</span>
  160. <span v-if="codestate===2" @click="pwdSend()">重新发送</span>
  161. </el-button>
  162. <el-button class="loginBtn cursor" @click="reSetPwd" v-if="operateType=='mobile'" :loading="setLoad">修改密码</el-button>
  163. </div>
  164. </div>
  165. </div>
  166. <!-- 邮箱找回密码 -->
  167. <div class="login-block" v-if="loginTab===4">
  168. <div class="contain">
  169. <h2>找回密码</h2>
  170. <h4>Retrieve password</h4>
  171. <div class="login-line">
  172. <span><i class="iconfont icon-tubiao01"></i></span>
  173. <input class="input" v-model="setParam.username" type="text" placeholder="请输入您的邮箱">
  174. </div>
  175. <div class="tip-line">
  176. <div class="switch-box">
  177. <span class="cursor" @click="loginTab=1">返回登录!</span>
  178. </div>
  179. </div>
  180. <div class="submit-line">
  181. <el-button class="loginBtn cursor" @click="" :loading="codeLoad">
  182. <span v-if="codestate===0" @click="pwdSend()">发送邮件</span>
  183. <span v-if="codestate===1">已发送{{secondNum}}</span>
  184. <span v-if="codestate===2" @click="pwdSend()">重新发送</span>
  185. </el-button>
  186. <!-- <el-button class="loginBtn cursor" @click="reSetPwd" v-if="operateType=='mobile'" :loading="setLoad">发送邮件</el-button> -->
  187. </div>
  188. </div>
  189. </div>
  190. <!-- 登录成功页面 -->
  191. <div class="login-block" v-if="loginTab===3">
  192. <div class="contain">
  193. <p class="user-msg">欢迎您,{{userInfo.base.username}}</p>
  194. <div class="whole-line">
  195. <button class="whole-btn cursor" @click="golink('/apply')">申请经纪商</button>
  196. <!-- <button class="whole-btn cursor" @click="golink('/tradecenter')">立即交易</button> -->
  197. </div>
  198. <div class="operate-line">
  199. <!-- <button class="deep cursor" @click="golink('/myassets')">充币</button>
  200. <button class="cursor" @click="golink('/myassets')">提币</button> -->
  201. </div>
  202. </div>
  203. </div>
  204. <el-dialog
  205. class="statement-box"
  206. title="FX66平台风险提示及免责声明"
  207. :visible.sync="dialogVisible">
  208. <publicWord></publicWord>
  209. <span slot="footer" class="dialog-footer">
  210. <el-button type="primary" @click="readSure()">我已阅读</el-button>
  211. </span>
  212. </el-dialog>
  213. </div>
  214. </template>
  215. <script>
  216. import {sublogion,sendEmail,sendCode,ajax,subloginup, getUserData,getcookie} from "../../assets/js/common.js"
  217. import bus from "../../assets/js/bus.js"
  218. import publicWord from "./public.vue"
  219. export default{
  220. data(){
  221. return{
  222. regLoad:false,
  223. buttonLoad:false,
  224. setLoad:false,
  225. codeLoad:false,
  226. dialogVisible:false,
  227. codestate:0,
  228. secondNum:60,
  229. reltime:"",
  230. loginTab:0,
  231. loginParam:{
  232. 'username':"",
  233. 'password':"",
  234. },
  235. regParam:{
  236. 'email':"",
  237. 'password':"",
  238. 'code':"",
  239. },
  240. setParam:{
  241. "username":"",
  242. 'password':"",
  243. "password2":"",
  244. "resettoken":"",
  245. },
  246. userInfo:{
  247. base:{}
  248. },
  249. operateType:"email",
  250. areaOptions:{},
  251. area:"86",
  252. gid:"",
  253. tipNeed:false,
  254. isRegisted:false,//邮箱是否已被注册
  255. isError:false, //手机号对不对
  256. messageCodeisError:false, //找回密码短信验证码错误
  257. }
  258. },
  259. components:{
  260. publicWord
  261. },
  262. computed:{
  263. tipWord:function(){
  264. let val="";
  265. if(this.operateType=="mobile"){
  266. val="请输入您的手机号码";
  267. }
  268. else{
  269. val="请输入您的邮箱";
  270. }
  271. return val;
  272. }
  273. },
  274. watch:{
  275. area(val){
  276. // console.log(val);
  277. },
  278. operateType(val){
  279. for(let x in this.loginParam){
  280. this.loginParam[x]="";
  281. }
  282. for(let x in this.regParam){
  283. this.regParam[x]="";
  284. }
  285. for(let x in this.setParam){
  286. this.setParam[x]="";
  287. }
  288. },
  289. loginTab(val){
  290. // console.log("val:"+val);
  291. this.area="86";
  292. //this.operateType="mobile";
  293. /*if(val!=2){
  294. this.operateType="mobile";
  295. }*/
  296. if(val===1){
  297. for(let x in this.loginParam){
  298. this.loginParam[x]="";
  299. }
  300. }
  301. if(val===0){
  302. for(let x in this.regParam){
  303. this.regParam[x]="";
  304. }
  305. }
  306. if(val===2||val===4){
  307. for(let x in this.setParam){
  308. this.setParam[x]="";
  309. }
  310. }
  311. }
  312. },
  313. mounted(){
  314. this.$nextTick(()=>{
  315. let token=getcookie("token");
  316. if(token){
  317. this.getUserInfo();
  318. this.loginTab=3;
  319. }
  320. else{
  321. this.loginTab=1;
  322. }
  323. bus.$on("goout",()=>{
  324. this.loginTab=1;
  325. });
  326. this.country();
  327. })
  328. },
  329. methods:{
  330. toForgetPassWord(){
  331. if(this.operateType=='mobile'){
  332. this.loginTab = 2;
  333. this.operateType='mobile'
  334. }else if(this.operateType=='email'){
  335. this.loginTab = 2;
  336. this.operateType='email'
  337. }
  338. },
  339. //正则表达式验证手机号码是否正确
  340. checkPhoneNumber(){
  341. if(this.operateType == 'mobile'){
  342. if(!(/^1[3|5|7|8][0-9]\d{4,8}$/.test(this.regParam.email))&&this.regParam.email!=''){
  343. this.isError = true;
  344. return false;
  345. }else{
  346. this.isError = false;
  347. }
  348. }
  349. },
  350. //重置密码
  351. reSetPwd(){
  352. // console.log("this.operateType :"+this.operateType);
  353. if(this.setParam.resettoken==""){
  354. this.$notify({
  355. title: '提示',
  356. message: '验证码不能为空',
  357. type: 'warning',
  358. duration:'1500'
  359. })
  360. return false;
  361. }
  362. if(this.setParam.password==""){
  363. this.$notify({
  364. title: '提示',
  365. message: '请输入新密码',
  366. type: 'warning',
  367. duration:'1500'
  368. })
  369. return false;
  370. }
  371. if(this.setParam.password2==""){
  372. this.$notify({
  373. title: '提示',
  374. message: '请再次输入新密码',
  375. type: 'warning',
  376. duration:'1500'
  377. })
  378. return false;
  379. }
  380. if(this.setParam.password!=this.setParam.password2){
  381. this.$notify({
  382. title: '提示',
  383. message: '两次输入的密码不同',
  384. type: 'warning',
  385. duration:'1500'
  386. })
  387. return false;
  388. }
  389. let postdata = {
  390. resettoken:this.setParam.resettoken,
  391. password:this.setParam.password,
  392. password2:this.setParam.password2,
  393. os:"web",
  394. type:"sms",
  395. };
  396. this.setLoad=true;
  397. ajax(this,this.extendApi.resetPwd,postdata,(data)=>{
  398. this.setLoad=false;
  399. if(data.code==200){
  400. this.$notify({
  401. title: '提示',
  402. message: '修改密码成功,请使用新密码登录',
  403. type: 'success',
  404. duration:'1500'
  405. });
  406. this.loginTab=1;
  407. this.messageCodeisError = false;
  408. }else if(data.code==1024){ //该状态码为 验证码错误
  409. this.messageCodeisError = true;
  410. }
  411. },'post');
  412. },
  413. //发送验证码
  414. pwdSend(){
  415. //this.operateType = "email"
  416. // console.log("this.operateType :"+this.operateType);
  417. if(this.setParam.username==""){
  418. this.$notify({
  419. title: '提示',
  420. message: this.tipWord,
  421. type: 'warning',
  422. duration:'1500'
  423. })
  424. return false;
  425. }
  426. let param={
  427. os:'web'
  428. };
  429. if(this.operateType=='email'){
  430. param.email=this.setParam.username;
  431. param.type="email";
  432. }
  433. else{
  434. param.mobile=this.setParam.username;
  435. param.area=this.area;
  436. param.type="sms";
  437. };
  438. this.codeLoad=true;
  439. ajax(this,this.extendApi.pwdSend,param,(data)=>{
  440. this.codeLoad=false;
  441. if(data.code==200){
  442. this.codestate=1;
  443. this.secondNum=60;
  444. clearInterval(this.reltime);
  445. this.reltime=setInterval(()=>{
  446. this.secondNum--;
  447. if(this.secondNum==0){
  448. clearInterval(this.reltime);
  449. this.codestate=2;
  450. this.secondNum=60;
  451. }
  452. }, 1000);
  453. }
  454. },'post');
  455. },
  456. readSure(){
  457. this.dialogVisible = false;
  458. this.tipNeed=true;
  459. },
  460. // 获取国家
  461. country(){
  462. ajax(this,this.extendApi.phoneCountry,'',(res)=>{
  463. if(res.code == 200){
  464. this.areaOptions = res.data;
  465. }
  466. },'GET');
  467. },
  468. golink(val){
  469. this.$router.push({path:val});
  470. },
  471. //注册时~发送验证码
  472. sendCode(){
  473. if(this.regParam.email==""){
  474. this.$notify({
  475. title: '提示',
  476. message: this.tipWord,
  477. type: 'warning',
  478. duration:'1500'
  479. })
  480. return false;
  481. };
  482. let param={};
  483. if(this.operateType=='email'){
  484. param={
  485. codetype:'validate',
  486. vparam:"FzmDateTime|FzmRandom",
  487. email:this.regParam.email
  488. };
  489. sendEmail(this,param,(data)=>{});
  490. }
  491. else{
  492. param={
  493. codetype:'validate',
  494. vparam:"FzmRandom",
  495. mobile:this.regParam.email,
  496. area:this.area
  497. };
  498. sendCode(this,param,(data)=>{});
  499. }
  500. },
  501. //登录时~发送验证码
  502. sendLoginCode(){
  503. if(this.loginParam.username==""){
  504. this.$notify({
  505. title: '提示',
  506. message: this.tipWord,
  507. type: 'warning',
  508. duration:'1500'
  509. })
  510. return false;
  511. };
  512. let param={};
  513. if(this.operateType=='email'){
  514. param={
  515. codetype:'validate',
  516. vparam:"FzmDateTime|FzmRandom",
  517. email:this.loginParam.username
  518. };
  519. sendEmail(this,param,(data)=>{});
  520. }
  521. else{
  522. param={
  523. codetype:'validate',
  524. vparam:"FzmRandom",
  525. mobile:this.loginParam.username,
  526. area:this.area
  527. };
  528. sendCode(this,param,(data)=>{});
  529. }
  530. },
  531. //注册按钮
  532. goreg(){
  533. //验证输入
  534. if(this.regParam.email==""){
  535. this.$notify({
  536. title: '提示',
  537. message: this.tipWord,
  538. type: 'warning',
  539. duration:'1500'
  540. })
  541. return false;
  542. };
  543. if(this.regParam.code==""){
  544. this.$notify({
  545. title: '提示',
  546. message: '验证码不能为空',
  547. type: 'warning',
  548. duration:'1500'
  549. })
  550. return false;
  551. };
  552. if(this.regParam.password==""){
  553. this.$notify({
  554. title: '提示',
  555. message: '密码不能为空',
  556. type: 'warning',
  557. duration:'1500'
  558. })
  559. return false;
  560. };
  561. if(this.tipNeed==false){
  562. this.$notify({
  563. title: '提示',
  564. message: '请阅读风险提示',
  565. type: 'warning',
  566. duration:'1500'
  567. })
  568. return false;
  569. }
  570. let param={};
  571. if(this.operateType=="email"){
  572. param={
  573. 'email':this.regParam.email,
  574. 'password':this.regParam.password,
  575. 'code':this.regParam.code,
  576. 'type':"email",
  577. 'checkmethod':"data",
  578. 'platform':'fx66',
  579. };
  580. }
  581. else{
  582. param={
  583. 'mobile':this.regParam.email,
  584. 'password':this.regParam.password,
  585. 'code':this.regParam.code,
  586. 'checkmethod':"data",
  587. 'type':"sms",
  588. 'area':this.area,
  589. 'platform':'fx66',
  590. };
  591. }
  592. this.regLoad=true;
  593. subloginup(this,param,(data)=>{
  594. this.regLoad=false;
  595. if(data.code==200){
  596. this.gologin('reg');
  597. this.isRegisted = false;
  598. this.$notify({
  599. title: '成功',
  600. message: '注册成功!',
  601. type: 'success',
  602. duration:'1500'
  603. })
  604. this.loginTab = 1;
  605. }else if(data.code == 1001&&this.operateType == 'email'){ //code=1001 代表该邮箱已被注册
  606. this.isRegisted = true;
  607. }
  608. })
  609. },
  610. //登录按钮
  611. gologin(state){
  612. if(state!='reg'){
  613. if(this.loginParam.username===""){
  614. this.$notify({
  615. title: '提示',
  616. message:this.tipWord,
  617. type: 'warning',
  618. duration:'1500'
  619. })
  620. return false;
  621. }
  622. if(this.loginParam.password===""){
  623. this.$notify({
  624. title: '提示',
  625. message: '密码不能为空',
  626. type: 'warning',
  627. duration:'1500'
  628. })
  629. return false;
  630. }
  631. }
  632. let param={
  633. 'redirect_uri':'http://33.cn',
  634. 'os':'web',
  635. 'platform':'fx66',
  636. };
  637. if(this.operateType=='mobile'){
  638. param.type="sms";
  639. param.area=this.area;
  640. if(state=='reg'){
  641. param.password=this.regParam.password;
  642. param.mobile=this.regParam.email;
  643. }
  644. else{
  645. param.password=this.loginParam.password;
  646. param.mobile=this.loginParam.username;
  647. }
  648. }
  649. else{
  650. param.type="email";
  651. if(state=='reg'){
  652. param.password=this.regParam.password;
  653. param.email=this.regParam.email;
  654. }
  655. else{
  656. param.password=this.loginParam.password;
  657. param.email=this.loginParam.username;
  658. }
  659. }
  660. this.buttonLoad=true;
  661. sublogion(this,'index',param,(data)=>{
  662. this.buttonLoad=false;
  663. if(data.code==200){
  664. this.$router.push("/index");
  665. }
  666. });
  667. },
  668. getUserInfo(){
  669. getUserData(this,(data)=>{
  670. this.userInfo.base=data.data.base;
  671. sessionStorage.setItem("username",data.data.base.username);
  672. bus.$emit("login","h1");
  673. });
  674. },
  675. }
  676. }
  677. </script>
  678. <style>
  679. .home-wrap{
  680. width: 1200px;
  681. margin: 0 auto;
  682. position:absolute;
  683. left: 50%;
  684. margin-left: -600px;
  685. top: 0;
  686. margin-top: 180px;
  687. .cursor{
  688. cursor: pointer;
  689. }
  690. .login-block{
  691. width: 390px;
  692. background-color: rgba(255,255,255,0.4);
  693. padding: 15px;
  694. position: absolute;
  695. right: 0;
  696. top: 0;
  697. z-index:50;
  698. .areaSelect{
  699. .el-input .el-input__icon{
  700. font-size: 8px !important;
  701. right: 2px;
  702. width: 14px;
  703. }
  704. input{
  705. padding: 0;
  706. padding-left: 4px;
  707. padding-right: 14px;
  708. font-size: 12px;
  709. border: none;
  710. }
  711. }
  712. .areaBlock{
  713. select{
  714. width: 100%;
  715. height: 96%;
  716. border: none;
  717. }
  718. }
  719. .tab-box{
  720. border-bottom: 2px solid #e5e5e5;
  721. margin-bottom: 30px;
  722. span{
  723. display: inline-block;
  724. font-size: 20px;
  725. color: #333;
  726. width: 110px;
  727. padding-bottom: 20px;
  728. cursor: pointer;
  729. }
  730. span.active{
  731. border-bottom: 2px solid #1a6fa6;
  732. margin-bottom: -2px;
  733. color: #1a6fa6;
  734. }
  735. }
  736. .user-msg{
  737. font-size: 25px;
  738. color: #1a6fa6;
  739. }
  740. .whole-line{
  741. margin-top: 50px;
  742. }
  743. .operate-line{
  744. padding-bottom: 50px;
  745. font-size: 0;
  746. button{
  747. width: 150px;
  748. height: 50px;
  749. font-size: 18px;
  750. line-height: 50px;
  751. background-color: transparent;
  752. border: 1px solid #d2d2d2;
  753. }
  754. button+button{
  755. margin-left: 20px;
  756. }
  757. .deep{
  758. background-color: #1a6fa6;
  759. color: #fff;
  760. }
  761. }
  762. .whole-btn{
  763. width: 100%;
  764. height: 50px;
  765. line-height: 50px;
  766. border:1px solid #d2d2d2;
  767. background-color: transparent;
  768. margin-bottom: 20px;
  769. font-size: 18px;
  770. }
  771. .contain{
  772. background-color: #fff;
  773. padding: 50px 20px 0 20px;
  774. color: #333;
  775. h2{
  776. font-size: 30px;
  777. line-height: 1;
  778. }
  779. h4{
  780. line-height: 1;
  781. font-size: 16px;
  782. color: #b0b0b0;
  783. margin-top: 7px;
  784. margin-bottom: 23px;
  785. }
  786. .login-line{
  787. position: relative;
  788. width: 310px;
  789. height: 50px;
  790. line-height: 50px;
  791. margin: 0 auto;
  792. border:1px solid #dcdcdc;
  793. text-align: left;
  794. margin-bottom: 10px;
  795. span{
  796. display: inline-block;
  797. width: 50px;
  798. height: 50px;
  799. text-align: center;
  800. border-right: 1px solid #dcdcdc;
  801. i{
  802. font-size: 24px;
  803. color: #ccc;
  804. }
  805. }
  806. .input{
  807. position: absolute;
  808. margin-top: 10px;
  809. padding-left: 10px;
  810. line-height: 30px;
  811. border:0;
  812. font-size: 14px;
  813. width: 250px;
  814. }
  815. .keyboradIcon{
  816. font-size: 30px;
  817. color: #B4B4B4;
  818. position: absolute;
  819. left: 270px;
  820. top: 0px;
  821. }
  822. }
  823. /* .input:focus .login-line{
  824. border: 1px solid #235ADA;
  825. } */
  826. .yanz-line{
  827. width: 310px;
  828. height: 50px;
  829. line-height: 50px;
  830. margin: 0 auto;
  831. text-align: left;
  832. margin-bottom: 10px;
  833. input{
  834. border:1px solid #dcdcdc;
  835. height: 50px;
  836. /*position: absolute;*/
  837. /*width: 250px;*/
  838. padding-left: 10px;
  839. line-height: 30px;
  840. font-size: 14px;
  841. }
  842. button{
  843. width: 130px;
  844. height: 50px;
  845. background: #ffe366;
  846. border: 0;
  847. position: absolute;
  848. /*margin-top: -2px;*/
  849. margin-left: 10px;
  850. font-size: 14px;
  851. color: #666;
  852. cursor: pointer;
  853. }
  854. .bgGrey{
  855. background-color: #eee;
  856. }
  857. }
  858. .tip-line{
  859. width: 310px;
  860. margin: 0 auto;
  861. margin-top: 10px;
  862. margin-bottom: 26px;
  863. text-align: left;
  864. line-height: 1;
  865. /* display: flex; */
  866. align-items: center;
  867. justify-content: space-between;
  868. font-size: 14px;
  869. input{
  870. margin-right: 10px;
  871. }
  872. i{
  873. color: #1a6fa6;
  874. cursor: pointer;
  875. font-style: normal;
  876. }
  877. .switch-box{
  878. /* flex:1; */
  879. display: inline-block;
  880. float: right;
  881. span{
  882. color: #1a6fa6;
  883. }
  884. }
  885. .warning{
  886. color:red;
  887. padding-top:10px;
  888. }
  889. }
  890. .submit-line{
  891. padding-bottom: 30px;
  892. font-size: 0;
  893. button{
  894. width: 150px;
  895. height: 50px;
  896. font-size: 18px;
  897. background-color: #1a6fa6;
  898. border: 0;
  899. color: #fff;
  900. border-radius: 0;
  901. }
  902. button+button{
  903. margin-left: 10px;
  904. }
  905. /*.loginBtn{
  906. }
  907. .regBtn{
  908. }*/
  909. }
  910. }
  911. }
  912. }
  913. </style>