applet.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817
  1. <template>
  2. <view class="login-container" :style="'height: '+phoneHeight+'px;'">
  3. <!-- 取到code后登录 -->
  4. <view class="p-30-75" v-if="is_login==1">
  5. <view class="login_topbpx">
  6. <view class="login_tit">登录</view>
  7. </view>
  8. <view class="group-bd">
  9. <view class="form-level d-s-c">
  10. <view class="val flex-1 input_botom"><input type="text" style="font-size: 18px" v-model="newUser_no" placeholder="请填写会员号" />
  11. </view>
  12. </view>
  13. <view class="form-level d-s-c" v-if="!is_code">
  14. <view class="val flex-1 input_botom"><input type="text" style="font-size: 18px" password="true" v-model="newPassWord"
  15. placeholder="请输入密码" /></view>
  16. </view>
  17. </view>
  18. </view>
  19. <view class="p-30-75" v-if="is_login==0">
  20. <view class="login_topbpx">
  21. <view class="login_tit">重置密码</view>
  22. <view class="login_top"><text class="red" @click="is_login=1">立即登录</text></view>
  23. </view>
  24. <view class="group-bd">
  25. <view class="form-level d-s-c">
  26. <view class="val flex-1 input_botom"><input type="text" style="font-size: 18px" v-model="resetpassword.mobile"
  27. placeholder="请填写手机号/会员号" :disabled="is_send" /></view>
  28. </view>
  29. <view class="form-level d-s-c">
  30. <view class="val flex-1 input_botom"><input type="text" style="font-size: 18px" password="true"
  31. v-model="resetpassword.password" placeholder="请输入密码" /></view>
  32. </view>
  33. <view class="form-level d-s-c">
  34. <view class="val flex-1 input_botom"><input type="text" style="font-size: 18px" password="true"
  35. v-model="resetpassword.repassword" placeholder="请确认密码" /></view>
  36. </view>
  37. <view class="form-level d-s-c">
  38. <view class="val flex-1 d-b-c input_botom">
  39. <input class="flex-1" type="number" style="font-size: 18px" v-model="resetpassword.code" placeholder="请填写验证码" />
  40. <button class="get-code-btn" type="default" @click="sendCode"
  41. :disabled="is_send">{{ send_btn_txt }}</button>
  42. </view>
  43. </view>
  44. </view>
  45. </view>
  46. <view v-if="is_login==1" style="font-size: 14px;color:#C0C0C0;" class="gray6 p-0-75" :class="is_code?'d-e-c':'d-b-c'">
  47. <view v-if="!is_code" @click="is_login=0">忘记密码?</view>
  48. <!-- <view @click="isCode()">{{is_code?'使用密码登录':'使用验证码登录'}}</view> -->
  49. </view>
  50. <view style="padding-top: 80rpx;" class="btns p-30-75" v-if="is_login==1"><button @click="formSubmit"
  51. :disabled="!isRead">登录</button></view>
  52. <view style="padding-top: 80rpx;" class="btns p-30-75" v-if="is_login==0"><button
  53. @click="resetpasswordSub">重置密码</button></view>
  54. </view>
  55. </template>
  56. <script>
  57. export default {
  58. data() {
  59. return {
  60. /*表单数据对象*/
  61. formData: {
  62. /*手机号*/
  63. mobile: '',
  64. /*验证码*/
  65. code: '',
  66. },
  67. loging_password: '',
  68. register: {
  69. mobile: '',
  70. password: '',
  71. repassword: '',
  72. code: '',
  73. user_no: ''
  74. },
  75. resetpassword: {
  76. mobile: '',
  77. password: '',
  78. repassword: '',
  79. code: ''
  80. },
  81. /*是否已发验证码*/
  82. is_send: false,
  83. /*发送按钮文本*/
  84. send_btn_txt: '获取验证码',
  85. /*当前秒数*/
  86. second: 60,
  87. ip: '',
  88. isShow: true,
  89. is_login: 1,
  90. is_code: true,
  91. phoneHeight: 0,
  92. isRead: true,
  93. nickName: '',
  94. avatarUrl: '',
  95. gender: '',
  96. province: '',
  97. country: '',
  98. city: '',
  99. openid: '',
  100. referee_id: '',
  101. newOpenId: '',
  102. newUser_no: '',
  103. newPassWord: '',
  104. };
  105. },
  106. onLoad(e) {
  107. console.log('co', e)
  108. this.newOpenId = e.openid
  109. this.getData();
  110. this.is_code = false
  111. this.nickName = this.getQueryStringArgs().nickName
  112. this.avatarUrl = this.getQueryStringArgs().avatarUrl
  113. this.gender = this.getQueryStringArgs().gender
  114. this.province = this.getQueryStringArgs().province
  115. this.country = this.getQueryStringArgs().country
  116. this.city = this.getQueryStringArgs().city
  117. this.openid = this.getQueryStringArgs().openid
  118. this.referee_id = this.getQueryStringArgs().referee_id
  119. // console.log(this.getQueryStringArgs().nickName, 'nickName')
  120. // console.log(this.getQueryStringArgs().avatarUrl, 'avatarUrl')
  121. // console.log(this.getQueryStringArgs().gender, 'gender')
  122. // console.log(this.getQueryStringArgs().province, 'province')
  123. // console.log(this.getQueryStringArgs().country, 'country')
  124. // console.log(this.getQueryStringArgs().openid, 'openid')
  125. // console.log(this.getQueryStringArgs().referee_id, 'referee_id')
  126. // console.log(this.getQueryStringArgs().city, 'city')
  127. // console.log(window.location.href)
  128. },
  129. onShow() {
  130. this.init()
  131. },
  132. methods: {
  133. getQueryStringArgs() {
  134. var qs = (location.search.length > 0 ? location.search.substring(1) : ""),
  135. args = {},
  136. items = qs.length ? qs.split("&") : [],
  137. item = null,
  138. name = null,
  139. value = null,
  140. i = 0,
  141. len = items.length;
  142. for (i = 0; i < len; i++) {
  143. item = items[i].split("=");
  144. name = decodeURIComponent(item[0]);
  145. value = decodeURIComponent(item[1]);
  146. if (name.length) {
  147. args[name] = value;
  148. }
  149. }
  150. return args;
  151. },
  152. /*初始化*/
  153. init() {
  154. let self = this;
  155. uni.getSystemInfo({
  156. success(res) {
  157. self.phoneHeight = res.windowHeight;
  158. }
  159. });
  160. },
  161. getData() {
  162. let self = this;
  163. self._get('user.userapple/policy', {}, function(res) {
  164. self.service = res.data.service;
  165. self.privacy = res.data.privacy;
  166. });
  167. },
  168. /*提交*/
  169. formSubmit() {
  170. let self = this;
  171. if (!self.nickName) {
  172. self.nickName = ''
  173. }
  174. if (!self.avatarUrl) {
  175. self.avatarUrl = ''
  176. }
  177. if (!self.gender) {
  178. self.gender = ''
  179. }
  180. if (!self.province) {
  181. self.province = ''
  182. }
  183. if (!self.country) {
  184. self.country = ''
  185. }
  186. if (!self.city) {
  187. self.city = ''
  188. }
  189. if (!self.openid) {
  190. self.openid = ''
  191. }
  192. if (!self.referee_id) {
  193. self.referee_id = ''
  194. }
  195. let formdata = {
  196. mobile: self.formData.mobile,
  197. nickName: self.nickName,
  198. avatarUrl: self.avatarUrl,
  199. gender: self.gender,
  200. province: self.province,
  201. country: self.country,
  202. city: self.city,
  203. openid: self.openid,
  204. referee_id: self.referee_id,
  205. }
  206. let url = ''
  207. // if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(self.formData.mobile)) {
  208. // console.log(self.formData.mobile)
  209. // uni.showToast({
  210. // title: '手机有误,请重填!',
  211. // duration: 2000,
  212. // icon: 'none'
  213. // });
  214. // return;
  215. // }
  216. if (!self.newUser_no) {
  217. uni.showToast({
  218. title: '会员号不能为空',
  219. duration: 2000,
  220. icon: 'none'
  221. });
  222. return;
  223. }
  224. if (self.newPassWord == '') {
  225. uni.showToast({
  226. title: '密码不能为空!',
  227. duration: 2000,
  228. icon: 'none'
  229. });
  230. return;
  231. }
  232. if (!self.isRead) {
  233. uni.showToast({
  234. title: '请同意并勾选协议内容',
  235. duration: 2000,
  236. icon: 'none'
  237. });
  238. return;
  239. }
  240. uni.showLoading({
  241. title: '正在提交'
  242. });
  243. self._post('user.userweb/accountlogin', {
  244. openid: self.newOpenId,
  245. user_no: self.newUser_no,
  246. password: self.newPassWord
  247. },
  248. result => {
  249. // 记录token user_id
  250. uni.setStorageSync('token', result.data.token);
  251. uni.setStorageSync('user_id', result.data.user_id);
  252. // 获取登录前页面
  253. let url = '/' + uni.getStorageSync('currentPage');
  254. let pageOptions = uni.getStorageSync('currentPageOptions');
  255. if (Object.keys(pageOptions).length > 0) {
  256. url += '?';
  257. for (let i in pageOptions) {
  258. url += i + '=' + pageOptions[i] + '&';
  259. }
  260. url = url.substring(0, url.length - 1);
  261. }
  262. // 执行回调函数
  263. self.gotoPage(url);
  264. },
  265. false,
  266. () => {
  267. uni.hideLoading();
  268. }
  269. );
  270. },
  271. /*注册*/
  272. registerSub() {
  273. let self = this;
  274. if (!self.nickName) {
  275. self.nickName = ''
  276. }
  277. if (!self.avatarUrl) {
  278. self.avatarUrl = ''
  279. }
  280. if (!self.gender) {
  281. self.gender = ''
  282. }
  283. if (!self.province) {
  284. self.province = ''
  285. }
  286. if (!self.country) {
  287. self.country = ''
  288. }
  289. if (!self.city) {
  290. self.city = ''
  291. }
  292. if (!self.openid) {
  293. self.openid = ''
  294. }
  295. if (!self.referee_id) {
  296. self.referee_id = ''
  297. }
  298. if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(self.register.mobile)) {
  299. console.log(self.register.mobile)
  300. uni.showToast({
  301. title: '手机有误,请重填!',
  302. duration: 2000,
  303. icon: 'none'
  304. });
  305. return;
  306. }
  307. if (self.register.code == '') {
  308. uni.showToast({
  309. title: '验证码不能为空!',
  310. duration: 2000,
  311. icon: 'none'
  312. });
  313. return;
  314. }
  315. if (self.register.user_no == '') {
  316. uni.showToast({
  317. title: '会员号不能为空!',
  318. duration: 2000,
  319. icon: 'none'
  320. });
  321. return;
  322. }
  323. if (self.register.password.length < 6) {
  324. uni.showToast({
  325. title: '密码至少6位数!',
  326. duration: 2000,
  327. icon: 'none'
  328. });
  329. return;
  330. }
  331. if (self.register.password !== self.register.repassword) {
  332. uni.showToast({
  333. title: '两次密码输入不一致!',
  334. duration: 2000,
  335. icon: 'none'
  336. });
  337. return;
  338. }
  339. if (!self.isRead) {
  340. uni.showToast({
  341. title: '请同意并勾选协议内容',
  342. duration: 2000,
  343. icon: 'none'
  344. });
  345. return;
  346. }
  347. self.register.invitation_id = uni.getStorageSync('invitation_id') ? uni.getStorageSync('invitation_id') :
  348. 0;
  349. self.register.reg_source = 'h5';
  350. // self.register.referee_id = uni.getStorageSync('referee_id');
  351. self.register.nickName = self.nickName;
  352. self.register.avatarUrl = self.avatarUrl;
  353. self.register.gender = self.gender;
  354. self.register.province = self.province;
  355. self.register.country = self.country;
  356. self.register.city = self.city;
  357. self.register.openid = self.openid;
  358. self.register.referee_id = self.referee_id;
  359. uni.showLoading({
  360. title: '正在提交'
  361. });
  362. self._post(
  363. 'user.useropen/register',
  364. self.register,
  365. result => {
  366. uni.showToast({
  367. title: '注册成功',
  368. duration: 3000
  369. })
  370. self.formData.mobile = self.register.mobile;
  371. self.register = {
  372. mobile: '',
  373. password: '',
  374. repassword: '',
  375. code: ''
  376. };
  377. self.second = 0;
  378. self.changeMsg();
  379. self.is_login = 1;
  380. },
  381. false,
  382. () => {
  383. uni.hideLoading();
  384. }
  385. );
  386. },
  387. resetpasswordSub() {
  388. let self = this;
  389. if (!self.nickName) {
  390. self.nickName = ''
  391. }
  392. if (!self.avatarUrl) {
  393. self.avatarUrl = ''
  394. }
  395. if (!self.gender) {
  396. self.gender = ''
  397. }
  398. if (!self.province) {
  399. self.province = ''
  400. }
  401. if (!self.country) {
  402. self.country = ''
  403. }
  404. if (!self.city) {
  405. self.city = ''
  406. }
  407. if (!self.openid) {
  408. self.openid = ''
  409. }
  410. if (!self.referee_id) {
  411. self.referee_id = ''
  412. }
  413. // if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(self.resetpassword.mobile)) {
  414. // uni.showToast({
  415. // title: '手机有误,请重填!',
  416. // duration: 2000,
  417. // icon: 'none'
  418. // });
  419. // return;
  420. // }
  421. if (!self.resetpassword.mobile) {
  422. uni.showToast({
  423. title: '手机号/会员号不能为空',
  424. duration: 2000,
  425. icon: 'none'
  426. });
  427. return;
  428. }
  429. if (self.resetpassword.code == '') {
  430. uni.showToast({
  431. title: '验证码不能为空!',
  432. duration: 2000,
  433. icon: 'none'
  434. });
  435. return;
  436. }
  437. if (self.resetpassword.password.length < 6) {
  438. uni.showToast({
  439. title: '密码至少6位数!',
  440. duration: 2000,
  441. icon: 'none'
  442. });
  443. return;
  444. }
  445. if (self.resetpassword.password !== self.resetpassword.repassword) {
  446. uni.showToast({
  447. title: '两次密码输入不一致!',
  448. duration: 2000,
  449. icon: 'none'
  450. });
  451. return;
  452. }
  453. self.resetpassword.nickName = self.nickName;
  454. self.resetpassword.avatarUrl = self.avatarUrl;
  455. self.resetpassword.gender = self.gender;
  456. self.resetpassword.province = self.province;
  457. self.resetpassword.country = self.country;
  458. self.resetpassword.city = self.city;
  459. self.resetpassword.openid = self.openid;
  460. self.resetpassword.referee_id = self.referee_id;
  461. uni.showLoading({
  462. title: '正在提交'
  463. });
  464. self._post(
  465. 'user.useropen/resetpassword',
  466. self.resetpassword,
  467. result => {
  468. uni.showToast({
  469. title: '重置成功',
  470. duration: 3000
  471. })
  472. self.formData.mobile = self.resetpassword.mobile;
  473. self.resetpassword = {
  474. mobile: '',
  475. password: '',
  476. repassword: '',
  477. code: ''
  478. };
  479. self.second = 0;
  480. self.changeMsg();
  481. self.is_login = 1;
  482. },
  483. false,
  484. () => {
  485. uni.hideLoading();
  486. }
  487. );
  488. },
  489. isCode() {
  490. if (this.is_code) {
  491. this.$set(this, 'is_code', false)
  492. } else {
  493. this.$set(this, 'is_code', true)
  494. }
  495. console.log(this.is_code)
  496. },
  497. /*发送短信*/
  498. sendCode() {
  499. let self = this;
  500. if (self.is_login == 1) {
  501. // if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(self.formData.mobile)) {
  502. // uni.showToast({
  503. // title: '手机有误,请重填!',
  504. // duration: 2000,
  505. // icon: 'none'
  506. // });
  507. // return;
  508. // }
  509. if (!self.formData.mobile) {
  510. uni.showToast({
  511. title: '手机号/会员号不能为空',
  512. duration: 2000,
  513. icon: 'none'
  514. });
  515. return;
  516. }
  517. } else if (self.is_login == 2) {
  518. if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(self.register.mobile)) {
  519. uni.showToast({
  520. title: '手机有误,请重填!',
  521. duration: 2000,
  522. icon: 'none'
  523. });
  524. return;
  525. }
  526. } else if (self.is_login == 0) {
  527. // if (!/^1(3|4|5|6|7|8|9)\d{9}$/.test(self.resetpassword.mobile)) {
  528. // uni.showToast({
  529. // title: '手机有误,请重填!',
  530. // duration: 2000,
  531. // icon: 'none'
  532. // });
  533. // return;
  534. // }
  535. if (!self.resetpassword.mobile) {
  536. uni.showToast({
  537. title: '手机号/会员号不能为空',
  538. duration: 2000,
  539. icon: 'none'
  540. });
  541. return;
  542. }
  543. }
  544. let type = 'register'
  545. let mobile = self.register.mobile
  546. if (self.is_login == 1) {
  547. type = 'login';
  548. mobile = self.formData.mobile;
  549. } else if (self.is_login == 0) {
  550. type = 'login';
  551. mobile = self.resetpassword.mobile;
  552. }
  553. self._post(
  554. 'user.useropen/sendCode', {
  555. mobile: mobile,
  556. type: type
  557. },
  558. result => {
  559. if (result.code == 1) {
  560. uni.showToast({
  561. title: '发送成功'
  562. });
  563. self.is_send = true;
  564. self.changeMsg();
  565. }
  566. }
  567. );
  568. },
  569. /*改变发送验证码按钮文本*/
  570. changeMsg() {
  571. if (this.second > 0) {
  572. this.send_btn_txt = this.second + '秒';
  573. this.second--;
  574. setTimeout(this.changeMsg, 1000);
  575. } else {
  576. this.send_btn_txt = '获取验证码';
  577. this.second = 60;
  578. this.is_send = false;
  579. }
  580. },
  581. xieyi(type) {
  582. let url = '';
  583. if (type == 'service') {
  584. url = this.service;
  585. } else {
  586. url = this.privacy;
  587. }
  588. uni.navigateTo({
  589. url: '/pages/webview/webview?url=' + url
  590. });
  591. }
  592. }
  593. };
  594. </script>
  595. <style lang="scss" scoped>
  596. page {
  597. background-color: #FFFFFF;
  598. }
  599. .p-30-75 {
  600. padding: 30rpx 75rpx;
  601. }
  602. .p-0-75 {
  603. padding: 0 75rpx;
  604. }
  605. .t-r {
  606. text-align: right;
  607. }
  608. .login-container {
  609. position: relative;
  610. background: #ffffff;
  611. }
  612. .login-container input {
  613. height: 88rpx;
  614. line-height: 88rpx;
  615. }
  616. .wechatapp {
  617. padding: 80rpx 0 48rpx;
  618. border-bottom: 1rpx solid #e3e3e3;
  619. margin-bottom: 72rpx;
  620. text-align: center;
  621. }
  622. .wechatapp .header {
  623. width: 190rpx;
  624. height: 190rpx;
  625. border: 2px solid #fff;
  626. margin: 0rpx auto 0;
  627. border-radius: 50%;
  628. overflow: hidden;
  629. box-shadow: 1px 0px 5px rgba(50, 50, 50, 0.3);
  630. }
  631. .auth-title {
  632. color: #585858;
  633. font-size: 34rpx;
  634. margin-bottom: 40rpx;
  635. }
  636. .auth-subtitle {
  637. color: #888;
  638. margin-bottom: 88rpx;
  639. font-size: 28rpx;
  640. }
  641. .login-btn {
  642. padding: 0 20rpx;
  643. }
  644. .login-btn button {
  645. height: 88rpx;
  646. line-height: 88rpx;
  647. background: #04be01;
  648. color: #fff;
  649. font-size: 30rpx;
  650. border-radius: 999rpx;
  651. text-align: center;
  652. }
  653. .no-login-btn {
  654. margin-top: 20rpx;
  655. padding: 0 20rpx;
  656. }
  657. .no-login-btn button {
  658. height: 88rpx;
  659. line-height: 88rpx;
  660. background: #dfdfdf;
  661. color: #fff;
  662. font-size: 30rpx;
  663. border-radius: 999rpx;
  664. text-align: center;
  665. }
  666. .get-code-btn {
  667. width: 200rpx;
  668. height: 80rpx;
  669. line-height: 76rpx;
  670. padding: 0rpx 30rpx;
  671. border-radius: 40rpx;
  672. white-space: nowrap;
  673. // border: 1rpx solid $dominant-color;
  674. background-color: #FFFFFF;
  675. color: $dominant-color;
  676. font-size: 30rpx;
  677. }
  678. .get-code-btn[disabled='true'] {
  679. // border: 1rpx solid #cccccc;
  680. background-color: #FFFFFF;
  681. }
  682. .btns button {
  683. height: 90rpx;
  684. line-height: 90rpx;
  685. font-size: 34rpx;
  686. border-radius: 45rpx;
  687. background-color: $dominant-color;
  688. color: #ffffff;
  689. }
  690. .login_topbpx {
  691. padding: 181rpx 0;
  692. padding-bottom: 110rpx;
  693. }
  694. .login_tit {
  695. font-size: 52rpx;
  696. font-weight: 600;
  697. margin-bottom: 33rpx;
  698. }
  699. .login_top {
  700. font-size: 24rpx;
  701. color: #adafb3;
  702. }
  703. .input_botom {
  704. border-bottom: 1px solid #f4f4f4;
  705. }
  706. .bottom_nav {
  707. width: 100%;
  708. position: absolute;
  709. bottom: 100rpx;
  710. }
  711. .bottom-box {
  712. width: 70%;
  713. margin: 0 auto;
  714. }
  715. .other_tit {
  716. height: 1rpx;
  717. background-color: #CACACA;
  718. width: 100%;
  719. line-height: 1rpx;
  720. text-align: center;
  721. }
  722. .weixin_box {
  723. background-color: #04BE01;
  724. border-radius: 50%;
  725. width: 80rpx;
  726. height: 80rpx;
  727. line-height: 80rpx;
  728. text-align: center;
  729. }
  730. .weixin_box .icon-weixin {
  731. font-size: 40rpx;
  732. color: #FFFFFF;
  733. }
  734. // .btns .bg-green{
  735. // background-color: #04BE01;
  736. // }
  737. .agreement {
  738. border-radius: 50%;
  739. width: 28rpx;
  740. height: 28rpx;
  741. border: 2rpx solid #EE1413;
  742. background: #fff;
  743. position: relative;
  744. margin-right: 10rpx;
  745. box-sizing: border-box;
  746. }
  747. .agreement.active::after {
  748. content: '';
  749. width: 16rpx;
  750. height: 16rpx;
  751. background-color: #EE1413;
  752. border-radius: 50%;
  753. position: absolute;
  754. left: 0;
  755. top: 0;
  756. right: 0;
  757. bottom: 0;
  758. margin: auto;
  759. }
  760. .skip {
  761. position: absolute;
  762. top: 80rpx;
  763. right: 30rpx;
  764. font-size: 28rpx;
  765. color: #999999;
  766. }
  767. </style>