user.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029
  1. <template>
  2. <view class="container">
  3. <view class="vheigh"></view>
  4. <view class="top-image">
  5. <image src="../../static/icon/user-top.png" mode=""></image>
  6. </view>
  7. <view class="" style="height: 100rpx;"></view>
  8. <view class="user-box">
  9. <view class="user-info flex">
  10. <image class="avatar" :src="userInfo.avatar" mode="" v-if="userInfo.avatar"
  11. @click="navTo('/pages/set/userinfo')"></image>
  12. <image class="avatar" src="../../static/error/missing-face.png" mode="" v-else
  13. @click="navTo('/pages/set/userinfo')"></image>
  14. <view class="user-name-id">
  15. <view class="user-name clamp2">{{ userInfo.phone || '游客'}}</view>
  16. <!-- <view class="user-id" v-if="userInfo && userInfo.uid">
  17. UID: {{userInfo.uid}}
  18. </view> -->
  19. <view class="user-shop flex" v-if="userInfo.uid">
  20. <view class="user-shop-item" v-if="userInfo.level> 0 " style="width: 180rpx;">
  21. <image class="user-shop-icon" :src="showLevel(userInfo.level)" mode=""
  22. style="width: 180rpx;"></image>
  23. <!-- <view class="user-shopname" style="padding-left: 70rpx;">
  24. {{userInfo.level_name}}
  25. </view> -->
  26. </view>
  27. </view>
  28. </view>
  29. </view>
  30. <view class="user-money flex">
  31. <view class="user-money-item" @click="navTo('/pages/user/yue')">
  32. <view class="user-money-num">{{ userInfo.now_money*1 || 0 }}</view>
  33. <view class="user-money-font"> 我的余额</view>
  34. </view>
  35. <view class="user-xian"></view>
  36. <view class="user-money-item" @click="navTo('/pages/user/award')">
  37. <view class="user-money-num">{{ userInfo.brokerage_price*1 || 0 }}</view>
  38. <view class="user-money-font">我的佣金</view>
  39. </view>
  40. <view class="user-xian"></view>
  41. <view class="user-money-item" @click="navTo('/pages/user/team')">
  42. <view class="user-money-num">{{ spread*1 || 0 }}</view>
  43. <view class="user-money-font">我的推广</view>
  44. </view>
  45. </view>
  46. </view>
  47. <!-- -->
  48. <view class="main-box">
  49. <view class="title flex" @click="navTo('/pages/order/order?state=0')">
  50. <view class="title-left">
  51. <view class="title-font">我的订单</view>
  52. </view>
  53. <image class="title-right" src="../../static/icon/back.png" mode=""></image>
  54. </view>
  55. <view class="main flex">
  56. <view class="oitem" @click="navTo('/pages/order/order?state=0')">
  57. <image class="oitem-image" src="../../static/icon/o1.png" mode=""></image>
  58. <view class="oitem-font">待付款</view>
  59. </view>
  60. <view class="oitem" @click="navTo('/pages/order/order?state=1')">
  61. <image class="oitem-image" src="../../static/icon/o2.png" mode=""></image>
  62. <view class="oitem-font">待发货</view>
  63. </view>
  64. <view class="oitem" @click="navTo('/pages/order/order?state=2')">
  65. <image class="oitem-image" src="../../static/icon/o3.png" mode=""></image>
  66. <view class="oitem-font">待收货</view>
  67. </view>
  68. <view class="oitem" @click="navTo('/pages/order/order?state=3')">
  69. <image class="oitem-image" src="../../static/icon/o4.png" mode=""></image>
  70. <view class="oitem-font">已完成</view>
  71. </view>
  72. </view>
  73. </view>
  74. <!-- <view class="user-list flex" @click="smsh" v-if="userInfo && userInfo.uid && userInfo.adminid">
  75. <image src="../../static/icon/scend.png" mode="" class="left-img"></image>
  76. <view class="">
  77. 扫码核销
  78. </view>
  79. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  80. </view> -->
  81. <!-- <view class="user-list flex" @click="gorz" v-if="userInfo && userInfo.uid && userInfo.is_real != 2">
  82. <image src="../../static/icon/u1.png" mode="" class="left-img"></image>
  83. <view class="">
  84. 实名认证
  85. </view>
  86. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  87. </view> -->
  88. <!-- <view class="user-list flex" @click="navTo('/pages/user/sqdl')">
  89. <image src="../../static/icon/u2.png" mode="" class="left-img"></image>
  90. <view class="">
  91. 银行卡绑定
  92. </view>
  93. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  94. </view> -->
  95. <!-- <view class="user-list flex" @click="navTo('/pages/user/userCard')">
  96. <image src="../../static/icon/u2.png" mode="" class="left-img"></image>
  97. <view class="">
  98. 我的卡券
  99. </view>
  100. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  101. </view> -->
  102. <!-- <view class="user-list flex" @click="navTo('/pages/user/sz')">
  103. <image src="../../static/icon/jf.png" mode="" class="left-img"></image>
  104. <view class="">
  105. 我的积分({{userInfo.integral || '0'}})
  106. </view>
  107. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  108. </view> -->
  109. <view class="user-list flex" @click="navTo('/pages/user/shareQrCode')">
  110. <image src="../../static/icon/u3.png" mode="" class="left-img"></image>
  111. <view class="">
  112. 推广海报
  113. </view>
  114. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  115. </view>
  116. <!-- <view class="user-list flex" @click="navTo('/pages/user/team')">
  117. <image src="../../static/icon/gn1.png" mode="" class="left-img"></image>
  118. <view class="">
  119. 我的推广
  120. </view>
  121. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  122. </view> -->
  123. <view class="user-list flex" @click="navTo('/pages/set/address')">
  124. <image src="../../static/icon/u4.png" mode="" class="left-img"></image>
  125. <view class="">
  126. 收货地址
  127. </view>
  128. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  129. </view>
  130. <view class="user-list flex" @click="openKf()">
  131. <image src="../../static/icon/u5.png" mode="" class="left-img"></image>
  132. <view class="">
  133. 客服
  134. </view>
  135. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  136. </view>
  137. <view class="user-list flex" @click="navTo('/pages/set/userinfo')">
  138. <image src="../../static/icon/u6.png" mode="" class="left-img"></image>
  139. <view class="">
  140. 设置
  141. </view>
  142. <image src="../../static/icon/back.png" mode="" class="right-img"></image>
  143. </view>
  144. <view class="" style="height: 20rpx;">
  145. </view>
  146. <uni-popup ref="popupkf" type="center">
  147. <view class="popup-box">
  148. <view class="img">
  149. <image src="../../static/img/img009.png" mode=""></image>
  150. </view>
  151. <view class="mian">
  152. <view class="delivery">
  153. <view class="title">已经为您定制专属客服</view>
  154. <image src="../../static/img/img010.png" mode=""></image>
  155. </view>
  156. <view class="nocancel">客服VX:{{ text }}</view>
  157. <view class="comfirm-box">
  158. <view class="cancel" @click="cancel">取消</view>
  159. <view class="comfirm" @click="comfirm(text)">复制微信</view>
  160. </view>
  161. </view>
  162. </view>
  163. </uni-popup>
  164. </view>
  165. </template>
  166. <script>
  167. import {
  168. orderVerific
  169. } from '@/api/index.js'
  170. import {
  171. toScanCode
  172. } from '@/components/scan.js'
  173. // #ifdef H5
  174. import weixinObj from "@/plugin/jweixin-module/index.js";
  175. // #endif
  176. import {
  177. mapState,
  178. mapMutations
  179. } from 'vuex';
  180. import uniList from '@/components/uni-list/uni-list.vue';
  181. import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
  182. import {
  183. orderData,
  184. getUserInfo,
  185. check,
  186. getLevelList,
  187. goHx,
  188. myspread
  189. } from '@/api/user.js';
  190. import {
  191. saveUrl,
  192. interceptor
  193. } from '@/utils/loginUtils.js';
  194. let startY = 0,
  195. moveY = 0,
  196. pageAtTop = true;
  197. export default {
  198. components: {
  199. uniList,
  200. uniListItem
  201. },
  202. data() {
  203. return {
  204. spread: 0,
  205. jhe: 0,//进货额
  206. listList: [], //等级列表
  207. current: 2,
  208. id: '', //是否已签到
  209. store_name: '',
  210. achievement: '',
  211. code: '',
  212. levelList: [],
  213. text: '', //客服微信
  214. hxcode: '', //核销码
  215. hxLoading: false
  216. };
  217. },
  218. onShow() {
  219. // 判断是否已经登录
  220. // if (this.hasLogin) {
  221. // this.loadBaseData();
  222. // }
  223. this.loadBaseData();
  224. },
  225. filters: {
  226. phone(e) {
  227. var subStr1 = e.substr(0, 3);
  228. var subStr2 = e.substr(e.length - 4, 4);
  229. var subStr = subStr1 + '...' + subStr2;
  230. e = subStr;
  231. return e;
  232. }
  233. },
  234. onReady() {
  235. // 初始化获取页面宽度
  236. uni.createSelectorQuery()
  237. .select('.container')
  238. .fields({
  239. size: true
  240. },
  241. data => {
  242. // 计算最多下拉的高度
  243. this.userDowm = Math.floor((data.width / 750) * 185);
  244. // 计算最大触发修改高度事件
  245. this.userMaxDowm = Math.floor((data.width / 750) * 250);
  246. }
  247. )
  248. .exec();
  249. },
  250. computed: {
  251. ...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
  252. },
  253. methods: {
  254. ...mapMutations('user', ['setUserInfo']),
  255. myspread() {
  256. myspread().then(res => {
  257. console.log(res)
  258. this.spread = res.data.total + res.data.totalLevel
  259. })
  260. },
  261. getLevelList() {
  262. getLevelList().then(res => {
  263. console.log(res);
  264. this.listList = res.data.list
  265. })
  266. },
  267. showLevel(val) {
  268. let data = this.listList.find(item => item.grade == val)
  269. console.log(data);
  270. if (data) {
  271. return data.icon
  272. } else {
  273. return ''
  274. }
  275. },
  276. close() {
  277. this.hxcode = ''
  278. this.$refs.popuphx.close()
  279. },
  280. qhx() {
  281. let that = this
  282. if (that.hxLoading) {
  283. return
  284. }
  285. if (that.hxcode == '') {
  286. return that.$api.msg('请输入核销码')
  287. }
  288. that.hxLoading = true
  289. goHx({
  290. verify_code: that.hxcode,
  291. }).then(res => {
  292. uni.showToast({
  293. title: '核销成功',
  294. mask: true,
  295. duration: 1500
  296. });
  297. that.close()
  298. that.hxLoading = false
  299. }).catch(err => [
  300. that.hxLoading = false
  301. ])
  302. },
  303. // 扫码
  304. smsh() {
  305. let that = this
  306. // #ifdef H5
  307. try {
  308. weixinObj.scanQRCode({
  309. needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
  310. scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
  311. success: function(res) {
  312. that.hxcode = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
  313. that.$refs.popuphx.open()
  314. }
  315. });
  316. } catch (err) {
  317. that.$refs.popuphx.open()
  318. }
  319. // #endif
  320. // #ifndef H5
  321. uni.scanCode({
  322. success: (res) => {
  323. this.hxcode = res.result
  324. this.$refs.popuphx.open()
  325. }
  326. })
  327. // #endif
  328. },
  329. gorz() {
  330. if (!this.hasLogin) {
  331. saveUrl();
  332. interceptor();
  333. } else {
  334. // uni.navigateTo({
  335. // url
  336. // });
  337. if (this.userInfo.is_real == 0) {
  338. this.navTo('/pages/user/smrz')
  339. } else if (this.userInfo.is_real == 1) {
  340. uni.showModal({
  341. title: "提示",
  342. content: '您提交的资料正在审核中,请耐心等待审核'
  343. })
  344. }
  345. }
  346. },
  347. sqdl() {
  348. if (this.hasLogin) {
  349. if (this.userInfo.enroll_status == 1) {
  350. uni.showModal({
  351. title: "提示",
  352. content: '您提交的申请正在审核中,请耐心等待审核'
  353. })
  354. } else {
  355. this.navTo('/pages/user/sqdl')
  356. }
  357. } else {
  358. this.navTo('/pages/user/sqdl')
  359. }
  360. },
  361. sao() {
  362. let obj = this;
  363. // #ifndef H5
  364. uni.scanCode({
  365. success(e) {
  366. obj.code = e.result;
  367. obj.$refs.popuphx.open();
  368. console.log(obj.$refs.popuphx);
  369. }
  370. });
  371. // #endif
  372. },
  373. comfirm(text) {
  374. console.log(text);
  375. const result = this.uniCopy(text);
  376. if (result === false) {
  377. uni.showToast({
  378. title: '不支持'
  379. });
  380. } else {
  381. uni.showToast({
  382. title: '复制成功',
  383. icon: 'none'
  384. });
  385. }
  386. this.$refs.popupkf.close();
  387. },
  388. uniCopy(content) {
  389. /**
  390. * 小程序端 和 app端的复制逻辑
  391. */
  392. //#ifndef H5
  393. uni.setClipboardData({
  394. data: content,
  395. success: function() {
  396. console.log('success');
  397. return true;
  398. }
  399. });
  400. //#endif
  401. /**
  402. * H5端的复制逻辑
  403. */
  404. // #ifdef H5
  405. if (!document.queryCommandSupported('copy')) {
  406. //为了兼容有些浏览器 queryCommandSupported 的判断
  407. // 不支持
  408. return false;
  409. }
  410. let textarea = document.createElement('textarea');
  411. textarea.value = content;
  412. textarea.readOnly = 'readOnly';
  413. document.body.appendChild(textarea);
  414. textarea.select(); // 选择对象
  415. textarea.setSelectionRange(0, content.length); //核心
  416. let result = document.execCommand('copy'); // 执行浏览器复制命令
  417. textarea.remove();
  418. return result;
  419. // #endif
  420. },
  421. // 加载初始数据
  422. loadBaseData() {
  423. const obj = this
  424. getUserInfo({})
  425. .then(({
  426. data
  427. }) => {
  428. obj.setUserInfo(data);
  429. obj.getLevelList()
  430. obj.myspread()
  431. })
  432. .catch(e => {
  433. console.log(e);
  434. });
  435. },
  436. /**
  437. * 统一跳转接口,拦截未登录路由
  438. * navigator标签现在默认没有转场动画,所以用view
  439. */
  440. navTo(url) {
  441. console.log(url);
  442. if (!this.hasLogin) {
  443. // 保存地址
  444. saveUrl();
  445. // 登录拦截
  446. interceptor();
  447. } else {
  448. uni.navigateTo({
  449. url
  450. });
  451. }
  452. },
  453. close() {
  454. this.$refs.popuphx.close();
  455. this.code = '';
  456. },
  457. // 打开客服
  458. openKf() {
  459. this.$refs.popupkf.open();
  460. },
  461. // 关闭客服
  462. cancel() {
  463. this.$refs.popupkf.close();
  464. },
  465. // 打开绑定
  466. open() {
  467. this.$refs.gspass.open();
  468. },
  469. cast() {
  470. set_waiter({
  471. uid: this.id
  472. })
  473. .then(e => {
  474. this.$api.msg('绑定成功');
  475. this.$refs.gspass.close();
  476. this.id = '';
  477. })
  478. .catch(err => {
  479. this.$refs.gspass.close();
  480. this.id = '';
  481. });
  482. },
  483. cancelpass() {
  484. this.$refs.gspass.close();
  485. this.id = '';
  486. }
  487. }
  488. };
  489. </script>
  490. <style lang="scss">
  491. %flex-center {
  492. display: flex;
  493. flex-direction: column;
  494. justify-content: center;
  495. align-items: center;
  496. }
  497. %section {
  498. display: flex;
  499. justify-content: space-around;
  500. align-content: center;
  501. background: #fff;
  502. border-radius: 10rpx;
  503. }
  504. .container,
  505. page {
  506. min-height: 100%;
  507. height: auto;
  508. background-color: $page-color-base;
  509. }
  510. .vheigh {
  511. height: var(--status-bar-height);
  512. background-color: $base-color;
  513. }
  514. .top-image {
  515. position: absolute;
  516. top: 0;
  517. left: 0;
  518. right: 0;
  519. height: 228rpx;
  520. image {
  521. width: 100%;
  522. height: 100%;
  523. }
  524. }
  525. .popup-box {
  526. width: 522rpx;
  527. height: 605rpx;
  528. background-color: #ffffff;
  529. border-radius: 20rpx;
  530. position: relative;
  531. .img {
  532. position: relative;
  533. top: -56rpx;
  534. left: 0;
  535. width: 522rpx;
  536. height: 132rpx;
  537. display: flex;
  538. justify-content: center;
  539. image {
  540. border-radius: 20rpx 20rpx 0 0;
  541. width: 450rpx;
  542. height: 132rpx;
  543. }
  544. }
  545. .mian {
  546. margin-top: -44rpx;
  547. display: flex;
  548. flex-direction: column;
  549. align-items: center;
  550. // padding: 32rpx 32rpx;
  551. background-color: #ffffff;
  552. border-radius: 0 0 20rpx 20rpx;
  553. text-align: center;
  554. .delivery {
  555. font-size: 40rpx;
  556. color: #333333;
  557. display: flex;
  558. align-items: center;
  559. flex-direction: column;
  560. image {
  561. margin-top: 48rpx;
  562. width: 172rpx;
  563. height: 160rpx;
  564. }
  565. }
  566. .nocancel {
  567. font-size: 32rpx;
  568. color: #333333;
  569. margin-top: 14rpx;
  570. }
  571. .comfirm-box {
  572. margin-top: 52rpx;
  573. display: flex;
  574. // margin-bottom: 32rpx;
  575. // justify-content: space-around;
  576. .cancel {
  577. display: flex;
  578. align-items: center;
  579. justify-content: center;
  580. width: 197rpx;
  581. height: 74rpx;
  582. border: 1px solid #dcc786;
  583. border-radius: 38rpx;
  584. font-size: 32rpx;
  585. color: #605128;
  586. }
  587. .comfirm {
  588. margin-left: 32rpx;
  589. display: flex;
  590. align-items: center;
  591. justify-content: center;
  592. width: 197rpx;
  593. height: 74rpx;
  594. background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
  595. border-radius: 38px;
  596. font-size: 32rpx;
  597. color: #605128;
  598. }
  599. }
  600. }
  601. }
  602. .user-box {
  603. position: relative;
  604. z-index: 2;
  605. width: 690rpx;
  606. margin: 0 auto;
  607. /* #ifdef MP-WEIXIN */
  608. margin: -100rpx auto 0;
  609. /* #endif */
  610. background: #ffffff;
  611. box-shadow: 0px 4rpx 13rpx 0px rgba(229, 229, 229, 0.46);
  612. border-radius: 20rpx;
  613. display: flex;
  614. flex-direction: column;
  615. align-items: center;
  616. padding: 54rpx 0 30rpx;
  617. line-height: 1;
  618. position: relative;
  619. .u-set {
  620. position: absolute;
  621. top: 85rpx;
  622. right: 40rpx;
  623. width: 44rpx;
  624. height: 44rpx;
  625. }
  626. .user-info {
  627. flex-direction: column;
  628. justify-content: flex-start;
  629. width: 100%;
  630. padding-left: 40rpx;
  631. .avatar {
  632. border-radius: 50%;
  633. width: 132rpx;
  634. height: 132rpx;
  635. background-color: #eee;
  636. margin-right: 18rpx;
  637. }
  638. .user-uid {
  639. padding-top: 10rpx;
  640. font-size: 24rpx;
  641. font-weight: 500;
  642. color: #666666;
  643. }
  644. }
  645. .user-name {
  646. text-align: center;
  647. width: 300rpx;
  648. margin-top: 14rpx;
  649. // font-size: 30rpx;
  650. font-size: $ltl-size-big;
  651. font-family: PingFang SC;
  652. font-weight: bold;
  653. color: #333333;
  654. }
  655. .user-id {
  656. text-align: center;
  657. font-size: 28rpx;
  658. padding: 10rpx 0;
  659. }
  660. .user-shop {
  661. margin-top: 10rpx;
  662. display: flex;
  663. justify-content: flex-start;
  664. align-items: center;
  665. .user-shop-item {
  666. position: relative;
  667. margin: 0 auto;
  668. width: 180rpx;
  669. height: 55rpx;
  670. .user-shop-icon {
  671. position: absolute;
  672. top: 0;
  673. left: 0;
  674. right: 0;
  675. width: 180rpx;
  676. height: 55rpx;
  677. }
  678. .user-shopname {
  679. padding-left: 60rpx;
  680. position: relative;
  681. z-index: 2;
  682. font-size: 30rpx;
  683. font-weight: 500;
  684. color: #977843;
  685. line-height: 55rpx;
  686. text-align: left;
  687. }
  688. }
  689. }
  690. }
  691. .main-box {
  692. margin: 20rpx auto 0;
  693. width: 710rpx;
  694. background: #ffffff;
  695. box-shadow: 0px 4rpx 14rpx 0px rgba(229, 229, 229, 0.46);
  696. border-radius: 20rpx;
  697. .title {
  698. display: flex;
  699. justify-content: space-between;
  700. align-items: center;
  701. padding: 24rpx;
  702. border-bottom: 1px solid #eeeeee;
  703. .title-left {
  704. display: flex;
  705. align-items: center;
  706. .title-icon {
  707. width: 32rpx;
  708. height: 32rpx;
  709. }
  710. .title-font {
  711. margin-left: 20rpx;
  712. font-size: 30rpx;
  713. font-family: PingFang SC;
  714. font-weight: bold;
  715. color: #333333;
  716. }
  717. }
  718. .title-right {
  719. width: 14rpx;
  720. height: 24rpx;
  721. }
  722. }
  723. .main {
  724. padding: 50rpx 0 30rpx;
  725. .jg {
  726. width: 1px;
  727. height: 100rpx;
  728. background: #eeeeee;
  729. }
  730. .item {
  731. padding-bottom: 20rpx;
  732. width: 25%;
  733. display: flex;
  734. flex-direction: column;
  735. align-items: center;
  736. .item-num {
  737. font-size: 36rpx;
  738. font-family: PingFang SC;
  739. font-weight: bold;
  740. color: #333333;
  741. }
  742. .item-font {
  743. margin-top: 18rpx;
  744. font-size: 22rpx;
  745. font-family: PingFang SC;
  746. font-weight: 500;
  747. color: #666666;
  748. }
  749. }
  750. .oitem {
  751. width: 33%;
  752. display: flex;
  753. flex-direction: column;
  754. align-items: center;
  755. .oitem-image {
  756. height: 40rpx;
  757. width: 42rpx;
  758. }
  759. .oitem-font {
  760. margin-top: 20rpx;
  761. font-size: 24rpx;
  762. font-family: PingFang SC;
  763. font-weight: 500;
  764. color: #333333;
  765. }
  766. }
  767. }
  768. }
  769. .tool-list {
  770. width: 690rpx;
  771. margin: 20rpx auto 0;
  772. background: #ffffff;
  773. box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
  774. border-radius: 20rpx;
  775. }
  776. .psw-wrapper {
  777. width: 548rpx;
  778. padding: 20rpx 0;
  779. background-color: #ffffff;
  780. border-radius: 15rpx 15rpx;
  781. .psw-title {
  782. width: 100%;
  783. font-size: 35rpx;
  784. padding: 0 0 40rpx;
  785. text-align: center;
  786. font-weight: 800;
  787. }
  788. .psw-content {
  789. width: 100%;
  790. font-size: 32rpx;
  791. text-align: center;
  792. }
  793. .psw-price {
  794. font-weight: bold;
  795. font-size: 68rpx;
  796. text-align: center;
  797. padding-top: 10rpx;
  798. }
  799. .psw-jg {
  800. height: 1px;
  801. width: 500rpx;
  802. background-color: #eee;
  803. margin: auto;
  804. }
  805. .psw-paytype {
  806. justify-content: space-between;
  807. padding: 10rpx 25rpx 30rpx;
  808. font-size: 26rpx;
  809. }
  810. .psw-ipt {
  811. display: block;
  812. background-color: #dce3ed;
  813. height: 90rpx;
  814. width: 464rpx;
  815. padding-left: 30rpx;
  816. margin: 0 auto;
  817. font-size: 80rpx;
  818. }
  819. .psw-btn text {
  820. display: inline-block;
  821. text-align: center;
  822. width: 50%;
  823. padding-top: 29rpx;
  824. font-size: 35rpx;
  825. }
  826. .psw-qd {
  827. color: #ff4c4c;
  828. }
  829. }
  830. .hx-wrapper {
  831. width: 536rpx;
  832. height: 630rpx;
  833. position: relative;
  834. // background-color: #fff;
  835. .hx-img {
  836. width: 536rpx;
  837. height: 281rpx;
  838. image {
  839. width: 536rpx;
  840. height: 281rpx;
  841. }
  842. }
  843. .hx-close {
  844. position: absolute;
  845. left: 243rpx;
  846. bottom: -80rpx;
  847. width: 52rpx;
  848. height: 52rpx;
  849. image {
  850. width: 52rpx;
  851. height: 52rpx;
  852. }
  853. }
  854. .hx-body {
  855. width: 536rpx;
  856. height: 349rpx;
  857. background-color: #fff;
  858. border-radius: 0 0 10rpx 10rpx;
  859. .hx-title {
  860. width: 536rpx;
  861. font-size: 36rpx;
  862. font-weight: 500;
  863. color: #333333;
  864. line-height: 1;
  865. padding-top: 42rpx;
  866. text-align: center;
  867. }
  868. input {
  869. width: 439rpx;
  870. height: 68rpx;
  871. background: #dbf3e9;
  872. border-radius: 10rpx;
  873. margin: 39rpx auto 0;
  874. padding-left: 26rpx;
  875. .hx-placeholder {
  876. font-size: 26rpx;
  877. font-weight: 500;
  878. color: #ff4c4c;
  879. }
  880. }
  881. .hx-btn {
  882. margin: 44rpx auto 0;
  883. width: 353rpx;
  884. height: 71rpx;
  885. background: $base-color;
  886. border-radius: 34rpx;
  887. font-size: 36rpx;
  888. font-weight: 500;
  889. color: #f8f9f9;
  890. line-height: 71rpx;
  891. text-align: center;
  892. }
  893. }
  894. }
  895. .user-list {
  896. width: 691rpx;
  897. height: 104rpx;
  898. background: #FFFFFF;
  899. box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
  900. border-radius: 28rpx;
  901. margin: 20rpx auto;
  902. padding: 0 25rpx;
  903. .left-img {
  904. width: 40rpx;
  905. height: 40rpx;
  906. }
  907. view {
  908. padding-left: 20rpx;
  909. flex-grow: 1;
  910. font-size: 29rpx;
  911. font-weight: bold;
  912. color: #5D5D5D;
  913. }
  914. .right-img {
  915. width: 13rpx;
  916. height: 23rpx;
  917. }
  918. }
  919. .sqdl {
  920. display: block;
  921. width: 689rpx;
  922. margin: 20rpx auto 20rpx;
  923. }
  924. .user-money {
  925. width: 100%;
  926. margin-top: 50rpx;
  927. justify-content: center;
  928. .user-money-item {
  929. width: 50%;
  930. display: flex;
  931. flex-direction: column;
  932. justify-content: center;
  933. align-items: center;
  934. .user-money-num {
  935. font-size: 36rpx;
  936. font-weight: bold;
  937. }
  938. .user-money-font {
  939. margin-top: 20rpx;
  940. font-size: 24rpx;
  941. font-weight: 500;
  942. }
  943. }
  944. .user-xian {
  945. width: 1px;
  946. height: 77rpx;
  947. background: #eeeeee;
  948. }
  949. }
  950. </style>