login.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814
  1. <template>
  2. <view>
  3. <template v-if="hasPlat(['sanitation'])">
  4. <view class="page-container-sanitation">
  5. <image :src="$getImages(configList.h5_login_bg.configValue||'/assetsMobile/images/loginBg2.png')" class="background-image-new"></image>
  6. <!-- <image :src="$getImages('/assetsMobile/images/loginBg2.png')" class="background-image"></image> -->
  7. <!-- <image :src="$getImages('/assetsMobile/images/logo.png')" class="logo-image"></image> -->
  8. <view class="login-content" style="background-color: transparent; z-index: 99; overflow: hidden;">
  9. <view class="welcome-copywriting">
  10. <!-- <image :src="$getImages('/assetsMobile/images/hi.png')" class="hi-img"></image> -->
  11. <text class="h5_login_title"
  12. v-if="configList.h5_login_title">{{ configList.h5_login_title.configValue || '欢迎登录!' }}</text>
  13. <text class="h5_login_subtitle" v-if="configList.h5_login_subtitle&&configList.h5_login_subtitle.isShow===1">{{configList.h5_login_subtitle.configValue || '智慧环卫管理系统'}}</text>
  14. </view>
  15. <view class="user-info">
  16. <view class="verification">
  17. <u--form :model="model" :rules="rules" ref="uForm" label-width="0">
  18. <u-form-item label=" " prop="loginForm.username">
  19. <view class="user-input">
  20. <image :src="$getImages('/assetsMobile/images/user.png')" class="img"></image>
  21. <u-input
  22. v-model="model.loginForm.username"
  23. placeholder-style="color:#CCCCCC;font-size: 30rpx"
  24. border="none"
  25. type="text"
  26. color="#333"
  27. :clearable="true"
  28. placeholder="请输入账号">
  29. </u-input>
  30. </view>
  31. </u-form-item>
  32. <u-form-item label=" " prop="loginForm.password">
  33. <view class="user-input">
  34. <image :src="$getImages('/assetsMobile/images/psw.png')" class="img"></image>
  35. <u-input
  36. v-model="model.loginForm.password"
  37. placeholder-style="color:#CCCCCC;font-size: 30rpx"
  38. border="none"
  39. :type="showPassword?'text':'password'"
  40. color="#333"
  41. :clearable="true"
  42. placeholder="请输入密码" />
  43. <image @click="showPassword=!showPassword" :src="showPassword?$getImages('/assetsMobile/images/enterprises/login/visiabled.png'):$getImages('/assetsMobile/images/enterprises/login/unVisiabled.png')" class="img-append"></image>
  44. </view>
  45. </u-form-item>
  46. <u-form-item label=" " prop="loginForm.code" v-if="captchaEnabled">
  47. <view class="user-input" style="width: 40%;">
  48. <u-input
  49. v-model="model.loginForm.code"
  50. placeholder-style="color:#CCCCCC;font-size: 30rpx"
  51. border="none"
  52. type="text"
  53. :clearable="true"
  54. placeholder="验证码" />
  55. </view>
  56. <view class="login-code">
  57. <image :src="codeUrl" @click="getCode" class="login-code-img"></image>
  58. </view>
  59. </u-form-item>
  60. <!-- 记住密码 -->
  61. <view class="login-remember">
  62. <u-checkbox-group>
  63. <u-checkbox size="16" activeColor="#2693FB" :checked="checked" inactiveColor="#39B2FC" labelColor="#ffffff"
  64. @change="checkboxChange" v-model="checked"
  65. label="记住密码"></u-checkbox>
  66. </u-checkbox-group>
  67. </view>
  68. <u-button type="primary" shape="circle" :custom-style="{
  69. width: '100%',
  70. border:'none'
  71. }" class="login-btn" @click="handleLogin">登录
  72. </u-button>
  73. </u--form>
  74. </view>
  75. </view>
  76. </view>
  77. </view>
  78. </template>
  79. <template v-else-if="hasPlat(['enterprises'])">
  80. <view class="page-container-enterprises">
  81. <view class="login-content" style="background-color: transparent; z-index: 99; overflow: hidden;">
  82. <template v-if="configList.h5_login_title">
  83. <view class="welcome-copywriting" >
  84. <text class="h5_login_title"
  85. v-if="configList.h5_login_title">{{ configList.h5_login_title.configValue || '欢迎登录' }}</text>
  86. <text class="h5_login_subtitle" v-if="configList.h5_login_subtitle&&configList.h5_login_subtitle.isShow===1">{{configList.h5_login_subtitle.configValue || '企事业车辆管理系统'}}</text>
  87. </view>
  88. <view class="bg-img">
  89. <image :src="$getImages(configList.h5_login_bg.configValue || '/assetsMobile/images/enterprises/login/loginBg.png')" class="background-image"></image>
  90. </view>
  91. </template>
  92. <view class="user-info">
  93. <view class="verification">
  94. <u--form :model="model" :rules="rules" ref="uForm" label-width="0">
  95. <u-form-item label=" " prop="loginForm.username">
  96. <view class="user-input">
  97. <image :src="$getImages('/assetsMobile/images/enterprises/login/acount.png')" class="img"></image>
  98. <u-input
  99. v-model="model.loginForm.username"
  100. placeholder-style="color:#CCCCCC;font-size: 32rpx"
  101. border="none"
  102. type="text"
  103. color="#333"
  104. :clearable="true"
  105. placeholder="请输入账号">
  106. </u-input>
  107. </view>
  108. </u-form-item>
  109. <u-form-item label=" " prop="loginForm.password">
  110. <view class="user-input">
  111. <image :src="$getImages('/assetsMobile/images/enterprises/login/password.png')" class="img"></image>
  112. <u-input
  113. v-model="model.loginForm.password"
  114. placeholder-style="color:#DDDDDD;font-size: 32rpx"
  115. border="none"
  116. :type="showPassword?'text':'password'"
  117. color="#333"
  118. :clearable="true"
  119. placeholder="请输入密码" />
  120. <image @click="showPassword=!showPassword" :src="showPassword?$getImages('/assetsMobile/images/enterprises/login/visiabled.png'):$getImages('/assetsMobile/images/enterprises/login/unVisiabled.png')" class="img-append"></image>
  121. </view>
  122. </u-form-item>
  123. <u-form-item label=" " prop="loginForm.code" v-if="captchaEnabled">
  124. <view class="user-input" style="width: 40%;">
  125. <u-input
  126. v-model="model.loginForm.code"
  127. placeholder-style="color:#DDDDDD;font-size: 32rpx"
  128. border="none"
  129. type="text"
  130. :clearable="true"
  131. placeholder="验证码" />
  132. </view>
  133. <view class="login-code">
  134. <image :src="codeUrl" @click="getCode" class="login-code-img"></image>
  135. </view>
  136. </u-form-item>
  137. <!-- 记住密码 -->
  138. <view class="login-remember">
  139. <u-checkbox-group>
  140. <u-checkbox size="16" activeColor="#4573FC" :checked="checked" inactiveColor="##4573FC" labelColor="#4573FC"
  141. @change="checkboxChange" v-model="checked" shape="circle"
  142. label="记住密码"></u-checkbox>
  143. </u-checkbox-group>
  144. </view>
  145. <u-button type="primary" shape="circle" :custom-style="{
  146. width: '100%',
  147. border:'none'
  148. }" class="login-btn" @click="handleLogin">登录
  149. </u-button>
  150. </u--form>
  151. </view>
  152. </view>
  153. </view>
  154. </view>
  155. </template>
  156. <template v-else>
  157. <view class="page-container">
  158. <image :src="$getImages(configList.h5_login_bg.configValue||'/assetsMobile/images/loginBg.png')" class="background-image"></image>
  159. <view class="login-content" style="background-color: transparent; z-index: 99; overflow: hidden;">
  160. <view class="welcome-copywriting">
  161. <text class="h5_login_title" v-if="configList.h5_login_title">{{configList.h5_login_title.configValue||'欢迎登录!'}}</text>
  162. <text class="h5_login_subtitle" v-if="configList.h5_login_subtitle&&configList.h5_login_subtitle.isShow===1">{{configList.h5_login_subtitle.configValue || ''}}</text>
  163. </view>
  164. <view class="user-info">
  165. <view class="verification">
  166. <u--form :model="model" :rules="rules" ref="uForm" label-width="0">
  167. <u-form-item label=" " prop="loginForm.username">
  168. <view class="user-input">
  169. <u-input
  170. v-model="model.loginForm.username"
  171. placeholder-style="color:#80A0C6;font-size: 30rpx"
  172. border="none"
  173. type="text"
  174. :clearable="true"
  175. placeholder="请输入账号"
  176. />
  177. </view>
  178. </u-form-item>
  179. <u-form-item label=" " prop="loginForm.password">
  180. <view class="user-input">
  181. <u-input
  182. v-model="model.loginForm.password"
  183. placeholder-style="color:#80A0C6;font-size: 30rpx"
  184. border="none"
  185. type="password"
  186. :clearable="true"
  187. placeholder="请输入密码"
  188. />
  189. </view>
  190. </u-form-item>
  191. <u-form-item label=" " prop="loginForm.code" v-if="captchaEnabled">
  192. <view class="user-input" style="width: 40%;">
  193. <u-input
  194. v-model="model.loginForm.code"
  195. placeholder-style="color:#80A0C6;font-size: 30rpx"
  196. border="none"
  197. type="text"
  198. :clearable="true"
  199. placeholder="验证码"
  200. />
  201. </view>
  202. <view class="login-code">
  203. <image :src="codeUrl" @click="getCode" class="login-code-img"></image>
  204. </view>
  205. </u-form-item>
  206. <u-button type="primary" shape="circle" :custom-style="{
  207. width: '100%',
  208. }" class="login-btn" @click="handleLogin">登录
  209. </u-button>
  210. </u--form>
  211. </view>
  212. </view>
  213. </view>
  214. </view>
  215. </template>
  216. </view>
  217. </template>
  218. <script>
  219. import { mapState } from 'vuex'
  220. import { getCodeImg } from '@/api/login'
  221. import { getToken } from '@/utils/auth'
  222. export default {
  223. data() {
  224. return {
  225. codeUrl: "",
  226. captchaEnabled: false,
  227. checked: false,//记住密码
  228. model: {
  229. loginForm: {
  230. username: "",
  231. password: "",
  232. code: "",
  233. uuid: '',
  234. client: "TQ-HW-MOBILE",
  235. }
  236. },
  237. rules: {
  238. 'loginForm.username': {
  239. type: 'string',
  240. required: true,
  241. message: '请输入账号',
  242. trigger: ['blur', 'change']
  243. },
  244. 'loginForm.password': {
  245. type: 'string',
  246. required: true,
  247. message: '请输入密码',
  248. trigger: ['blur', 'change']
  249. },
  250. 'loginForm.code': {
  251. type: 'string',
  252. required: true,
  253. message: '请输入验证码',
  254. trigger: ['blur', 'change']
  255. },
  256. },
  257. showPassword: false,
  258. }
  259. },
  260. created() {
  261. this.getCode()
  262. },
  263. onLoad: function (option) {
  264. // #ifdef H5
  265. if(process.env.NODE_ENV == "production") {
  266. if(this.hasPlat(['enterprises']) && this.hasHostPlat(['wxH5'])) {
  267. let {code} = option
  268. if (this.isNull(code) && !getToken()) {
  269. let appid = "wx0f491ff49441493e"; // 公众号ID
  270. // 回调页面
  271. let redirect_uri = encodeURI(`${window.location.protocol}//${window.location.host}/mobile/`);
  272. window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_base&#wechat_redirect`;
  273. } else {
  274. this.model.loginForm.authCode = code
  275. }
  276. }
  277. }
  278. // #endif
  279. if(process.env.NODE_ENV != "production") {
  280. this.model.loginForm.username = 'admin'
  281. this.model.loginForm.password = 'Gdtq1981%%'
  282. }
  283. // console.log(this.$PLATFORM,'thisthis')
  284. },
  285. onShow() {
  286. // console.log(this.hasPlat,'thisthisthis')
  287. //从本地存储中获取密码
  288. let loginFormInfo = uni.getStorageSync('loginFormInfo')
  289. if (loginFormInfo) {
  290. console.log('缓存的信息',loginFormInfo)
  291. let { username, password ,checked} = JSON.parse(loginFormInfo)
  292. this.model.loginForm.username = username
  293. this.model.loginForm.password = password
  294. this.checked = checked
  295. }
  296. },
  297. computed: {
  298. ...mapState('appConfig', ['configList'])
  299. },
  300. methods: {
  301. // 记住密码
  302. checkboxChange(e) {
  303. this.checked = e
  304. },
  305. // 获取图形验证码
  306. getCode() {
  307. getCodeImg().then(res => {
  308. console.log(res, 'res')
  309. this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled
  310. if (this.captchaEnabled) {
  311. this.codeUrl = 'data:image/gif;base64,' + res.img
  312. this.loginForm.uuid = res.uuid
  313. }
  314. })
  315. },
  316. // 登录方法
  317. async handleLogin() {
  318. this.$refs.uForm.validate().then(res => {
  319. this.pwdLogin()
  320. }).catch(errors => {
  321. console.log('校验失败', errors)
  322. })
  323. },
  324. // 密码登录
  325. async pwdLogin() {
  326. //保存密码到本地存储
  327. if (this.checked) {
  328. uni.setStorageSync('loginFormInfo', JSON.stringify({...this.model.loginForm,checked:this.checked}))
  329. } else { uni.removeStorageSync('loginFormInfo') }
  330. this.$store.dispatch('Login', this.model.loginForm).then(() => {
  331. this.$modal.closeLoading()
  332. this.loginSuccess()
  333. }).catch(() => {
  334. if (this.captchaEnabled) {
  335. this.getCode()
  336. }
  337. })
  338. },
  339. // 登录成功
  340. loginSuccess(result) {
  341. // 设置用户信息
  342. this.$store.dispatch('GetInfo').then(res => {
  343. uni.reLaunch({
  344. url: '/pages/index/index'
  345. })
  346. getApp().checkTabPer()
  347. })
  348. }
  349. },
  350. onReady() {
  351. this.$refs.uForm.setRules(this.rules)
  352. },
  353. }
  354. </script>
  355. <style lang="scss" scoped>
  356. @font-face {
  357. font-family: 'MaoKenTangYuan';
  358. /* 自定义的字体名称 */
  359. src: url('@/assets/fonts/MaoKenTangYuan.ttf') format('truetype');
  360. /* 字体文件路径及格式 */
  361. }
  362. .page-container-sanitation {
  363. font-family: PingFangSC, PingFang SC;
  364. height: 100%;
  365. width: 100%;
  366. height:100vh;
  367. background: linear-gradient(135deg, #49CDFC 0%, #2693FB 100%);
  368. .background-image-new{
  369. position: absolute;
  370. bottom: 0;
  371. right: 0;
  372. width: 100%;
  373. height: 100%;
  374. }
  375. .background-image {
  376. position: absolute;
  377. bottom: 0;
  378. right: 0;
  379. width: 100%;
  380. height: 362rpx;
  381. }
  382. .logo-image{
  383. width: 174rpx;
  384. height: 58rpx;
  385. position: absolute;
  386. top: 58rpx;
  387. right: 58rpx;
  388. }
  389. .login-content {
  390. background-color: transparent;
  391. z-index: 99;
  392. overflow: hidden;
  393. // 登录提示
  394. .welcome-copywriting {
  395. position: absolute;
  396. width: 100%;
  397. // top: 35%;
  398. top: 190rpx;
  399. height: auto;
  400. .hi-img{
  401. width: 92rpx;
  402. height: 92rpx;
  403. position: absolute;
  404. left: 24rpx;
  405. top: -72rpx;
  406. }
  407. text {
  408. width: 100%;
  409. float: left;
  410. padding: 0 60rpx 0 92rpx;
  411. box-sizing: border-box;
  412. font-family: YSBTH;
  413. font-weight: normal;
  414. font-size: 68rpx;
  415. color: #FFFFFF;
  416. line-height: 72rpx;
  417. text-align: left;
  418. font-style: normal;
  419. }
  420. .h5_login_subtitle{
  421. padding-left: 144rpx;
  422. }
  423. }
  424. //登录提示框
  425. .user-info {
  426. position: absolute;
  427. top: 50%;
  428. transform: translate(0,-50%);
  429. width: 100%;
  430. .verification {
  431. padding: 0 60rpx;
  432. .img{
  433. width: 36rpx;
  434. height: 36rpx;
  435. margin-right: 10rpx;
  436. }
  437. .img-append {
  438. width: 42rpx;
  439. height: 40rpx;
  440. margin-left: 16rpx;
  441. }
  442. .user-input {
  443. padding: 20rpx 48rpx;
  444. width: calc(100% - 96rpx);
  445. border-radius: 30px;
  446. // background-color: #EDF0F7;
  447. border-radius: 46rpx;
  448. border: 2rpx solid #B2E1FD;
  449. display: flex;
  450. justify-content: center;
  451. align-items: center;
  452. color: #FFFFFF;
  453. background-color: #fff;
  454. }
  455. .login-code {
  456. height: 38px;
  457. float: right;
  458. .login-code-img {
  459. height: 38px;
  460. position: absolute;
  461. margin-left: 10px;
  462. width: 200rpx;
  463. }
  464. }
  465. .login-btn {
  466. margin-top: 68rpx;
  467. background: linear-gradient(to right, #26E3B6, #2ED7FF);
  468. height: 96rpx;
  469. font-size: 36rpx;
  470. font-family: PingFangSC, PingFang SC;
  471. font-weight: 500;
  472. font-size: 32rpx;
  473. color: #fff;
  474. line-height: 96rpx;
  475. text-align: center;
  476. display: flex;
  477. justify-content: center;
  478. font-style: normal;
  479. }
  480. .login-remember {
  481. display: flex;
  482. align-items: center;
  483. margin-top: 28rpx;
  484. padding-left: 16rpx;
  485. /deep/ .u-checkbox__icon-wrap {
  486. background-color: rgba(57, 178, 252,0) !important;
  487. border: 2rpx solid #FFFFFF!important;
  488. }
  489. }
  490. }
  491. }
  492. }
  493. }
  494. .page-container-enterprises {
  495. font-family: PingFangSC, PingFang SC;
  496. height: 100%;
  497. width: 100%;
  498. height:100vh;
  499. background: #FFFFFF;
  500. .login-content {
  501. background-color: transparent;
  502. z-index: 99;
  503. overflow: hidden;
  504. // 登录提示
  505. .welcome-copywriting {
  506. position: absolute;
  507. width: 100%;
  508. top: 6%;
  509. // top: 110rpx;
  510. height: auto;
  511. text {
  512. width: 100%;
  513. float: left;
  514. padding: 0 54rpx 0 54rpx;
  515. box-sizing: border-box;
  516. font-family: YSBTH;
  517. font-weight: normal;
  518. font-size: 68rpx;
  519. color: #FFFFFF;
  520. line-height: 76rpx;
  521. text-align: left;
  522. font-style: normal;
  523. }
  524. .h5_login_title {
  525. font-family: PingFangSC, PingFang SC;
  526. font-weight: 500;
  527. font-size: 60rpx;
  528. color: #4573FC;
  529. line-height: 76rpx;
  530. text-align: left;
  531. font-style: normal;
  532. }
  533. .h5_login_subtitle{
  534. font-family: PingFangSC, PingFang SC;
  535. font-weight: 500;
  536. font-size: 40rpx;
  537. color: #4573FC;
  538. line-height: 76rpx;
  539. text-align: left;
  540. font-style: normal;
  541. }
  542. }
  543. .bg-img {
  544. position: absolute;
  545. top: 21%;
  546. width: 100%;
  547. display: flex;
  548. justify-content: center;
  549. align-items: center;
  550. .background-image {
  551. width: 578rpx;
  552. height: 458rpx;
  553. }
  554. }
  555. //登录提示框
  556. .user-info {
  557. position: absolute;
  558. top: 71%;
  559. transform: translate(0,-50%);
  560. width: 100%;
  561. .verification {
  562. padding: 0 74rpx;
  563. .img{
  564. width: 42rpx;
  565. height: 40rpx;
  566. margin-right: 16rpx;
  567. }
  568. .img-append {
  569. width: 42rpx;
  570. height: 40rpx;
  571. margin-left: 16rpx;
  572. }
  573. .user-input {
  574. padding: 20rpx 0rpx;
  575. width: calc(100%);
  576. border-radius: 0px;
  577. border-bottom: 2rpx solid #DDDDDD;
  578. display: flex;
  579. justify-content: center;
  580. align-items: center;
  581. font-family: PingFangSC, PingFang SC;
  582. font-weight: 400;
  583. font-size: 32rpx;
  584. color: #DDDDDD;
  585. line-height: 44rpx;
  586. text-align: left;
  587. font-style: normal;
  588. }
  589. .login-code {
  590. height: 38px;
  591. float: right;
  592. .login-code-img {
  593. height: 38px;
  594. position: absolute;
  595. margin-left: 10px;
  596. width: 200rpx;
  597. }
  598. }
  599. .login-btn {
  600. margin-top: 40rpx;
  601. background: #4573FC;
  602. border-radius: 40rpx;
  603. height: 80rpx;
  604. font-family: PingFangSC, PingFang SC;
  605. font-weight: 400;
  606. font-size: 36rpx;
  607. color: #FFFFFF;
  608. line-height: 80rpx;
  609. text-align: center;
  610. font-style: normal;
  611. }
  612. .login-remember {
  613. display: flex;
  614. align-items: center;
  615. margin-top: 28rpx;
  616. padding-left: 0rpx;
  617. /deep/ .u-checkbox-label--left {
  618. font-family: PingFangSC, PingFang SC;
  619. font-weight: 400;
  620. font-size: 28rpx;
  621. color: #4573FC;
  622. line-height: 40rpx;
  623. text-align: left;
  624. font-style: normal;
  625. }
  626. }
  627. }
  628. }
  629. }
  630. }
  631. .page-container {
  632. font-family: PingFangSC, PingFang SC;
  633. height: 100%;
  634. width: 100%;
  635. height:100vh;
  636. .background-image {
  637. position: absolute;
  638. top: 0;
  639. right: 0;
  640. width: 100%;
  641. height: 100%;
  642. }
  643. .login-content {
  644. background-color: transparent;
  645. z-index: 99;
  646. overflow: hidden;
  647. // 登录提示
  648. .welcome-copywriting {
  649. position: absolute;
  650. width: 100%;
  651. top: 35%;
  652. height: auto;
  653. text {
  654. width: 100%;
  655. float: left;
  656. padding: 0 90rpx 0 90rpx;
  657. color: #1990FF;
  658. box-sizing: border-box;
  659. // &:first-child {
  660. // font-size: 48rpx;
  661. // font-weight: 600;
  662. // margin-bottom: 20rpx;
  663. // }
  664. // &:last-child {
  665. // font-size: 40rpx;
  666. // font-weight: 600;
  667. // }
  668. }
  669. .h5_login_title {
  670. font-size: 48rpx;
  671. font-weight: 600;
  672. margin-bottom: 20rpx;
  673. }
  674. .h5_login_subtitle {
  675. font-size: 40rpx;
  676. font-weight: 600;
  677. }
  678. }
  679. //登录提示框
  680. .user-info {
  681. position: absolute;
  682. top: 48%;
  683. width: 100%;
  684. .verification {
  685. padding: 0 40rpx;
  686. .user-input {
  687. padding: 20rpx 48rpx;
  688. width: calc(100% - 96rpx);
  689. border-radius: 30px;
  690. background-color: #EDF0F7;
  691. display: flex;
  692. justify-content: center;
  693. align-items: center;
  694. }
  695. .login-code {
  696. height: 38px;
  697. float: right;
  698. .login-code-img {
  699. height: 38px;
  700. position: absolute;
  701. margin-left: 10px;
  702. width: 200rpx;
  703. }
  704. }
  705. .login-btn {
  706. margin-top: 20rpx;
  707. background: #1990FF;
  708. height: 96rpx;
  709. font-size: 36rpx;
  710. }
  711. }
  712. }
  713. }
  714. }
  715. </style>