user.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867
  1. <template>
  2. <view class="container">
  3. <view class="vheigh"></view>
  4. <view class="top-image">
  5. </view>
  6. <!-- #ifdef H5 -->
  7. <view class="user-set flex">
  8. </view>
  9. <!-- #endif -->
  10. <view class="user-wrap">
  11. <view class="info-left flex">
  12. <view class="user-name">
  13. <image :src="userInfo.avatar || '../../static/error/missing-face.png'" mode=""></image>
  14. <view class="user-font">
  15. <view class="name clamp">{{ userInfo.nickname || '游客' }}</view>
  16. <view class="phone" v-if="isPhone">{{ getPhone }}</view>
  17. <!-- <view class="phone" ></view> -->
  18. <view class="phone" v-if="userInfo.uid">UID:{{ userInfo.uid }} {{getFh}}</view>
  19. <view class="phone" v-if="userInfo.uid">累计佣金:{{userInfo.sum_brokerage}}</view>
  20. </view>
  21. </view>
  22. <view class="kpi" v-show="userInfo.uid && userInfo.level!=0">
  23. <image style="width: 34rpx; height: 34rpx; margin-right: 8rpx;" src="../../static/icon/vip.png"
  24. mode=""></image> <span v-if="userInfo.is_bonus==1">联合创始人</span><span
  25. v-else><span>{{userInfo.is_vip==1?'钻石':''}}</span>VIP</span>
  26. </view>
  27. </view>
  28. <view class="info-right">
  29. <view class="item-item" @click="navTo('/pages/money/wallet')">
  30. <view class="item-num">{{ userInfo.now_money || 0}}</view>
  31. <view class="item-font">我的钱包</view>
  32. </view>
  33. <view class="" style="width: 1rpx;height: 100rpx;background: #EEEEEE;">
  34. </view>
  35. <view class="item-item" @click="navTo('/user/page/cash')">
  36. <view class="item-num">{{userInfo.brokerage_price || '0'}}</view>
  37. <view class="item-font">我的佣金</view>
  38. </view>
  39. <view class="" style="width: 1rpx;height: 100rpx;background: #EEEEEE;">
  40. </view>
  41. <view class="item-item" @click="navTo('/user/page/team')">
  42. <view class="item-num">{{all || '0'}}</view>
  43. <view class="item-font">我的推广</view>
  44. </view>
  45. </view>
  46. </view>
  47. <view class="haoyue-box">
  48. <view class="vip-box">
  49. <view class="box-top">
  50. 积分
  51. </view>
  52. <view class="box-bottom">
  53. {{userInfo.vip_point || '0'}}
  54. </view>
  55. </view>
  56. <view class="vip-box">
  57. <view class="box-top">
  58. 个人消费金额
  59. </view>
  60. <view class="box-bottom">
  61. {{(userInfo.self_achievement || 0).toFixed(2) || 0}}
  62. </view>
  63. </view>
  64. <view class="vip-box">
  65. <view class="box-top">
  66. 团队累计金额
  67. </view>
  68. <view class="box-bottom">
  69. {{(userInfo.group_achievement || 0).toFixed(2) || 0}}
  70. </view>
  71. </view>
  72. <!-- <view class="item-item">
  73. <view class="item-font">积分</view>
  74. <view class="item-num">{{userInfo.vip_point || '0'}}</view>
  75. </view> -->
  76. <!-- <view class="item-item">
  77. <view class="item-font">个人消费金额</view>
  78. <view class="item-num">{{(userInfo.self_achievement || 0).toFixed(2) || 0}}</view>
  79. </view>
  80. <view class="item-item">
  81. <view class="item-font">团队累计金额</view>
  82. <view class="item-num">{{(userInfo.group_achievement || 0).toFixed(2) || 0}}</view>
  83. </view> -->
  84. </view>
  85. <view class="main-box">
  86. <view class="title flex" @click="navTo('/pages/order/order?state=0')">
  87. <view class="title-left">
  88. <image class="title-icon" src="../../static/user/user10.png" mode=""></image>
  89. <view class="title-font">我的订单</view>
  90. </view>
  91. <image class="title-right" src="../../static/user/user04.png" mode=""></image>
  92. </view>
  93. <view class="main flex">
  94. <view class="oitem" @click="navTo('/pages/order/order?state=0')">
  95. <image class="oitem-image" src="../../static/user/user01.png" mode=""></image>
  96. <view class="oitem-font">待付款</view>
  97. </view>
  98. <view class="oitem" @click="navTo('/pages/order/order?state=1')">
  99. <image class="oitem-image" src="../../static/user/user03.png" mode=""></image>
  100. <view class="oitem-font">待发货</view>
  101. </view>
  102. <view class="oitem" @click="navTo('/pages/order/order?state=2')">
  103. <image class="oitem-image" src="../../static/user/user02.png" mode=""></image>
  104. <view class="oitem-font">待收货</view>
  105. </view>
  106. <view class="oitem" @click="navTo('/pages/order/order?state=3')">
  107. <image class="oitem-image" src="../../static/user/user07.png" mode=""></image>
  108. <view class="oitem-font">已完成</view>
  109. </view>
  110. </view>
  111. </view>
  112. <!-- #ifndef MP-WEIXIN -->
  113. <view class="main-box yulan" v-if="liulan.length>0">
  114. <view class="title flex">
  115. <view class="title-left">
  116. <image class="title-icon" src="../../static/user/user10.png" mode=""></image>
  117. <view class="title-font">我的销售</view>
  118. </view>
  119. <image class="title-right" mode=""></image>
  120. </view>
  121. <view class="main flex">
  122. <mosowe-swiper
  123. :lists="liulan"
  124. :touchable="true"
  125. vertical
  126. imageKey="avatar"
  127. textKey="nickname"
  128. imageshop="image"
  129. name="pname"
  130. time='add_time'
  131. swiperType="imageTextLine"
  132. :height="80"></mosowe-swiper>
  133. </view>
  134. </view>
  135. <!-- #endif -->
  136. <uni-list class="tool-list">
  137. <uni-list-item title="vip积分充值" @click="navTo('/pages/money/vipRecharge')" thumb="/static/user/user18.png">
  138. </uni-list-item>
  139. <uni-list-item title="我的优惠券" @click="navTo('/user/page/myCoupon')" thumb="/static/user/g-2.png">
  140. </uni-list-item>
  141. <uni-list-item v-if="userInfo.hx>0" title="门店管理" @click="navTo('/user/page/merchant/merchant')" thumb="/index/static/tabBar/tab-cate-current.png">
  142. </uni-list-item>
  143. <uni-list-item title="推广中心" @click="navToo('/user/page/user_promotion')" thumb="/static/user/user08.png">
  144. </uni-list-item>
  145. <uni-list-item title="我的收藏" @click="navTo('/user/page/favorites')" thumb="/static/user/user11.png">
  146. </uni-list-item>
  147. <uni-list-item title="客服中心" @click="openKf()" thumb="/static/user/user09.png"></uni-list-item>
  148. <uni-list-item title="设置" @click="navTo('/pages/set/userinfo')" thumb="/static/user/user13.png"></uni-list-item>
  149. </uni-list>
  150. <uni-popup ref="popupkf" type="center">
  151. <view class="popup-box">
  152. <view class="img">
  153. <image src="https://hy.liuniu946.com/app/img/img009.png" mode=""></image>
  154. </view>
  155. <view class="mian">
  156. <view class="delivery">
  157. <view class="title">已经为您定制专属客服</view>
  158. <image src="https://hy.liuniu946.com/app/img/img010.png" mode=""></image>
  159. </view>
  160. <view class="nocancel">客服VX:{{userInfo.wxid}}</view>
  161. <view class="comfirm-box">
  162. <view class="cancel" @click="cancel">取消</view>
  163. <view class="comfirm" @click="comfirm(userInfo.wxid)">复制微信</view>
  164. </view>
  165. </view>
  166. </view>
  167. </uni-popup>
  168. </view>
  169. </template>
  170. <script>
  171. import {
  172. tabbar1
  173. } from '@/utils/tabbar.js';
  174. import {
  175. mapState,
  176. mapMutations
  177. } from 'vuex';
  178. import uniList from '@/components/uni-list/uni-list.vue';
  179. import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
  180. import mosoweSwiper from '@/components/mosowe-swiper/mosowe-swiper.vue'
  181. import {
  182. getbrowse,
  183. orderData,
  184. getUserInfo,
  185. myspread,
  186. getUser
  187. } from '@/api/user.js';
  188. import {
  189. saveUrl,
  190. interceptor
  191. } from '@/utils/loginUtils.js';
  192. let startY = 0,
  193. moveY = 0,
  194. pageAtTop = true;
  195. export default {
  196. components: {
  197. mosoweSwiper,
  198. uniList,
  199. uniListItem
  200. },
  201. ...mapState('user', ['hasLogin', 'userInfo']),
  202. data() {
  203. return {
  204. liulan:[],
  205. isPhone: false,
  206. all: 0, //推荐人数
  207. current: 4,
  208. tabbar: tabbar1,
  209. qded: false, //是否已签到
  210. text: '', //客服微信
  211. today_integral: '', //签到获得的数值
  212. today_type: '', //签到获得的数值单位
  213. tom_integral: '', //明天签到获得的数值
  214. tom_type: '', //签到获得的数值单位
  215. userDowm: 0, //卡片升级专属高度
  216. userMaxDowm: 0, //卡片最高高度
  217. toolList: [{
  218. id: 't1',
  219. name: '新人通道',
  220. width: '56rpx',
  221. heigt: '54rpx',
  222. img: '../../static/icon/tool-1.png',
  223. path: '/user/page/xrtd'
  224. },
  225. {
  226. id: 't2',
  227. name: '邀请好友',
  228. width: '56rpx',
  229. heigt: '57rpx',
  230. img: '../../static/icon/tool-2.png',
  231. path: '/user/page/shareQrCode'
  232. },
  233. {
  234. id: 't3',
  235. name: '我的粉丝',
  236. width: '68rpx',
  237. heigt: '53rpx',
  238. img: '../../static/icon/tool-3.png',
  239. path: '/user/page/myfans'
  240. },
  241. {
  242. id: 't4',
  243. name: '我的订单',
  244. width: '55rpx',
  245. heigt: '54rpx',
  246. img: '../../static/icon/tool-4.png',
  247. path: '/pages/order/order'
  248. },
  249. {
  250. id: 't5',
  251. name: '我的商品',
  252. width: '50rpx',
  253. heigt: '58rpx',
  254. img: '../../static/icon/tool-5.png',
  255. path: '/pages/order/order'
  256. },
  257. {
  258. id: 't6',
  259. name: '馆长申请',
  260. width: '59rpx',
  261. heigt: '56rpx',
  262. img: '../../static/icon/tool-6.png',
  263. path: '/user/page/gzsq'
  264. }
  265. ]
  266. };
  267. },
  268. onShow() {
  269. // 判断是否已经登录
  270. if (this.hasLogin) {
  271. this.loadBaseData();
  272. myspread({}).then(({
  273. data
  274. }) => {
  275. console.log(data, '推荐人');
  276. this.all = data.total;
  277. })
  278. getbrowse().then(e=>{
  279. console.log(e,'888888888888888888888888')
  280. this.liulan=e.data
  281. console.log(this.liulan)
  282. })
  283. }else {
  284. this.loadBaseData();
  285. }
  286. },
  287. onReady() {
  288. // 初始化获取页面宽度
  289. uni.createSelectorQuery()
  290. .select('.container')
  291. .fields({
  292. size: true
  293. },
  294. data => {
  295. // 计算最多下拉的高度
  296. this.userDowm = Math.floor((data.width / 750) * 185);
  297. // 计算最大触发修改高度事件
  298. this.userMaxDowm = Math.floor((data.width / 750) * 250);
  299. }
  300. )
  301. .exec();
  302. },
  303. computed: {
  304. ...mapState('user', ['userInfo', 'orderInfo', 'hasLogin']),
  305. getPhone() {
  306. if (this.userInfo.phone) {
  307. this.isPhone = true
  308. let reg = /^(\d{3})\d{4}(\d{4})$/;
  309. return this.userInfo.phone.replace(reg, '$1****$2')
  310. } else {
  311. this.isPhone = false
  312. }
  313. },
  314. getFh() {
  315. //具体分红权益
  316. return this.userInfo.vipsum
  317. }
  318. },
  319. methods: {
  320. ...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
  321. shaoma() {
  322. uni.scanCode({
  323. success(e) {
  324. console.log(e,'e++++++++++++')
  325. }
  326. });
  327. },
  328. // 加载初始数据
  329. loadBaseData() {
  330. console.log(this.userInfo, 'info');
  331. getUserInfo({})
  332. .then(({
  333. data
  334. }) => {
  335. this.setUserInfo(data);
  336. // 获取用户数据完毕后在获取订单数据防止多次跳转到登录页
  337. orderData({})
  338. .then(({
  339. data
  340. }) => {
  341. this.setOrderInfo(data);
  342. })
  343. .catch(e => {
  344. this.setOrderInfo({
  345. complete_count: 0, //完成
  346. received_count: 0, //待收货
  347. unshipped_count: 0, //待发货
  348. order_count: 0, //订单总数
  349. unpaid_count: 0 //待付款
  350. });
  351. });
  352. let a = uni.getStorageSync(
  353. 'jynickname'
  354. )
  355. if (a == 1 && this.userInfo.nickname == '微信用户') {
  356. uni.setStorageSync('jynickname', 2)
  357. uni.showModal({
  358. title: '提示',
  359. content: '您的昵称为默认昵称“微信用户”,是否立即修改?',
  360. complete(res) {
  361. if (res.confirm) {
  362. uni.navigateTo({
  363. url: '/pages/set/userinfo'
  364. })
  365. }
  366. }
  367. })
  368. }
  369. })
  370. .catch(e => {
  371. console.log(e);
  372. });
  373. },
  374. /**
  375. * 统一跳转接口,拦截未登录路由
  376. * navigator标签现在默认没有转场动画,所以用view
  377. */
  378. navTo(url) {
  379. console.log(url);
  380. let pages = getCurrentPages();
  381. console.log(pages, 'pages');
  382. let prevPage = pages[pages.length - 2]
  383. console.log(prevPage, 'pages2');
  384. // if (!this.hasLogin) {
  385. // // 保存地址
  386. // saveUrl();
  387. // // 登录拦截
  388. // interceptor();
  389. // } else {
  390. uni.navigateTo({
  391. url
  392. });
  393. // }
  394. },
  395. navToo(url) {
  396. // let pages = getCurrentPages();
  397. // console.log(pages, 'pages');
  398. // let prevPage = pages[pages.length - 2]
  399. // console.log(prevPage, 'pages2');
  400. if (this.userInfo.is_promoter != 0) {
  401. uni.navigateTo({
  402. url
  403. });
  404. } else {
  405. this.$api.msg('需下单后成为推广员方可推广!')
  406. }
  407. },
  408. useTool(e) {
  409. this.navTo(e.path);
  410. },
  411. // 签到弹窗
  412. goQd() {
  413. this.$refs.popupqd.open();
  414. this.qded = true;
  415. },
  416. // 关闭签到弹窗
  417. closeQd() {
  418. this.$refs.popupqd.close();
  419. },
  420. // 打开客服
  421. openKf() {
  422. this.$refs.popupkf.open();
  423. },
  424. // 关闭客服
  425. cancel() {
  426. this.$refs.popupkf.close();
  427. },
  428. comfirm(e) {
  429. console.log(e)
  430. uni.setClipboardData({
  431. data: e,
  432. success: function() {
  433. console.log('复制成功');
  434. }
  435. });
  436. }
  437. }
  438. };
  439. </script>
  440. <style lang="scss">
  441. /* #ifdef MP-WEIXIN */
  442. .tool-list {
  443. width:80% !important;
  444. margin: auto;
  445. margin-top: 20rpx;
  446. background: #ffffff;
  447. box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
  448. border-radius: 20rpx;
  449. }
  450. /* #endif */
  451. /* #ifdef H5 */
  452. .tool-list {
  453. width:690rpx;
  454. margin: auto;
  455. margin-top: 20rpx;
  456. background: #ffffff;
  457. box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
  458. border-radius: 20rpx;
  459. }
  460. /* #endif */
  461. .mosowe-swiper{
  462. height: 240rpx;
  463. }
  464. .yulan{
  465. overflow: hidden;
  466. height: 240rpx;
  467. }
  468. %flex-center {
  469. display: flex;
  470. flex-direction: column;
  471. justify-content: center;
  472. align-items: center;
  473. }
  474. %section {
  475. display: flex;
  476. justify-content: space-around;
  477. align-content: center;
  478. background: #fff;
  479. border-radius: 10rpx;
  480. }
  481. .container,
  482. page {
  483. min-height: 100%;
  484. height: auto;
  485. background-color: $page-color-base;
  486. }
  487. .vheigh {
  488. height: var(--status-bar-height);
  489. background-color: $base-color;
  490. }
  491. .top-image {
  492. border-bottom-left-radius: 80rpx;
  493. border-bottom-right-radius: 80rpx;
  494. position: absolute;
  495. top: 0;
  496. left: 0;
  497. right: 0;
  498. height: 230rpx;
  499. background-color: #F75022;
  500. }
  501. .popup-box {
  502. width: 522rpx;
  503. height: 605rpx;
  504. background-color: #ffffff;
  505. border-radius: 20rpx;
  506. position: relative;
  507. .img {
  508. position: relative;
  509. top: -56rpx;
  510. left: 0;
  511. width: 522rpx;
  512. height: 132rpx;
  513. display: flex;
  514. justify-content: center;
  515. image {
  516. border-radius: 20rpx 20rpx 0 0;
  517. width: 450rpx;
  518. height: 132rpx;
  519. }
  520. }
  521. .mian {
  522. margin-top: -44rpx;
  523. display: flex;
  524. flex-direction: column;
  525. align-items: center;
  526. // padding: 32rpx 32rpx;
  527. background-color: #ffffff;
  528. border-radius: 0 0 20rpx 20rpx;
  529. text-align: center;
  530. .delivery {
  531. font-size: 40rpx;
  532. color: #333333;
  533. display: flex;
  534. align-items: center;
  535. flex-direction: column;
  536. image {
  537. margin-top: 48rpx;
  538. width: 172rpx;
  539. height: 160rpx;
  540. }
  541. }
  542. .nocancel {
  543. font-size: 32rpx;
  544. color: #333333;
  545. margin-top: 14rpx;
  546. }
  547. .comfirm-box {
  548. margin-top: 52rpx;
  549. display: flex;
  550. // margin-bottom: 32rpx;
  551. // justify-content: space-around;
  552. .cancel {
  553. display: flex;
  554. align-items: center;
  555. justify-content: center;
  556. width: 197rpx;
  557. height: 74rpx;
  558. border: 1px solid #F75022;
  559. border-radius: 38rpx;
  560. font-size: 32rpx;
  561. color: #333;
  562. }
  563. .comfirm {
  564. margin-left: 32rpx;
  565. display: flex;
  566. align-items: center;
  567. justify-content: center;
  568. width: 197rpx;
  569. height: 74rpx;
  570. background: linear-gradient(-90deg, #F75022 0%, #FF8B6C 100%);
  571. border-radius: 38px;
  572. font-size: 32rpx;
  573. color: #fff;
  574. }
  575. }
  576. }
  577. }
  578. .popup {
  579. width: 560rpx;
  580. padding-bottom: 45rpx;
  581. background-color: #ffffff;
  582. border-radius: 15rpx;
  583. text-align: center;
  584. line-height: 1;
  585. .popup-dox {
  586. position: relative;
  587. .popup-logo {
  588. margin: -160rpx auto 0;
  589. width: 400rpx;
  590. height: 200rpx;
  591. }
  592. }
  593. .popup-title {
  594. margin-top: 85rpx;
  595. font-size: 40rpx;
  596. font-family: PingFang SC;
  597. font-weight: bold;
  598. color: #2a2a2a;
  599. text {
  600. font-size: 56rpx;
  601. color: #e83f30;
  602. }
  603. }
  604. .popup-tip {
  605. margin-top: 20rpx;
  606. font-size: 28rpx;
  607. font-family: PingFang SC;
  608. font-weight: 500;
  609. color: #8c8c8c;
  610. text {
  611. color: #e83f30;
  612. }
  613. }
  614. .popup-btn {
  615. margin: 58rpx auto 0;
  616. width: 270rpx;
  617. height: 66rpx;
  618. background: #f0c838;
  619. border-radius: 34rpx;
  620. text-align: center;
  621. line-height: 66rpx;
  622. font-size: 36rpx;
  623. font-family: Source Han Sans CN;
  624. font-weight: 500;
  625. color: #ffffff;
  626. }
  627. }
  628. .user-wrap {
  629. position: relative;
  630. z-index: 10;
  631. width: 690rpx;
  632. // height: 283rpx;
  633. background: #ffffff;
  634. box-shadow: 0px 4rpx 13rpx 0px rgba(229, 229, 229, 0.46);
  635. border-radius: 20rpx;
  636. padding: 34rpx 0 0;
  637. margin: auto;
  638. .info-left {
  639. padding-left: 34rpx;
  640. .user-name {
  641. display: flex;
  642. align-items: center;
  643. image {
  644. width: 120rpx;
  645. height: 120rpx;
  646. border-radius: 50%;
  647. }
  648. .user-font {
  649. padding-left: 34rpx;
  650. .name {
  651. width: 250rpx;
  652. font-size: 40rpx;
  653. font-family: Source Han Sans CN;
  654. font-weight: 400;
  655. color: #333333;
  656. }
  657. .phone {
  658. margin-top: 10rpx;
  659. font-size: 20rpx;
  660. font-family: PingFang SC;
  661. font-weight: 500;
  662. color: #999999;
  663. }
  664. }
  665. }
  666. .kpi {
  667. display: flex;
  668. align-items: center;
  669. background: #f5eede;
  670. border-radius: 30rpx 0px 0px 30rpx;
  671. padding: 18rpx 24rpx;
  672. font-size: 26rpx;
  673. font-family: PingFang SC;
  674. font-weight: bold;
  675. color: #c6914e;
  676. }
  677. }
  678. .info-right {
  679. display: flex;
  680. justify-content: space-around;
  681. align-items: center;
  682. margin: 30rpx 0;
  683. padding: 0 34rpx;
  684. .item-item {
  685. padding-bottom: 20rpx;
  686. width: 33%;
  687. display: flex;
  688. justify-content: center;
  689. flex-direction: column;
  690. align-items: center;
  691. .item-num {
  692. font-size: 36rpx;
  693. font-weight: bold;
  694. color: #333333;
  695. }
  696. .item-font {
  697. margin-top: 18rpx;
  698. font-size: 22rpx;
  699. font-weight: 500;
  700. color: #666666;
  701. }
  702. }
  703. }
  704. }
  705. .haoyue-box {
  706. margin: 20rpx 30rpx;
  707. height: 100rpx;
  708. border-radius: 20rpx;
  709. background: #fff;
  710. display: flex;
  711. justify-content: space-around;
  712. align-items: center;
  713. .vip-box {
  714. display: flex;
  715. flex-direction: column;
  716. align-items: center;
  717. .box-top {
  718. font-size: 30rpx;
  719. line-height: 50rpx;
  720. font-weight: 500;
  721. }
  722. .box-bottom {
  723. font-weight: 500;
  724. }
  725. }
  726. .item-item {
  727. width: 33%;
  728. text-align: center;
  729. }
  730. }
  731. .user-set {
  732. justify-content: flex-end;
  733. view {
  734. flex-shrink: 0;
  735. }
  736. padding: 30rpx;
  737. image {
  738. height: 40rpx;
  739. width: 40rpx;
  740. }
  741. }
  742. .main-box {
  743. margin: 20rpx auto 0;
  744. width: 690rpx;
  745. background: #ffffff;
  746. box-shadow: 0px 4rpx 14rpx 0px rgba(229, 229, 229, 0.46);
  747. border-radius: 20rpx;
  748. .title {
  749. display: flex;
  750. justify-content: space-between;
  751. align-items: center;
  752. padding: 24rpx;
  753. border-bottom: 1px solid #EEEEEE;
  754. .title-left {
  755. display: flex;
  756. align-items: center;
  757. .title-icon {
  758. width: 32rpx;
  759. height: 32rpx;
  760. }
  761. .title-font {
  762. margin-left: 20rpx;
  763. font-size: 28rpx;
  764. font-family: PingFang SC;
  765. font-weight: bold;
  766. color: #333333;
  767. }
  768. }
  769. .title-right {
  770. width: 14rpx;
  771. height: 24rpx;
  772. }
  773. }
  774. .main {
  775. padding: 30rpx 0 20rpx;
  776. .oitem {
  777. width: 25%;
  778. display: flex;
  779. flex-direction: column;
  780. align-items: center;
  781. .oitem-image {
  782. height: 50rpx;
  783. width: 48rpx;
  784. }
  785. .oitem-font {
  786. margin-top: 20rpx;
  787. font-size: 24rpx;
  788. font-family: PingFang SC;
  789. font-weight: 500;
  790. color: #333333;
  791. }
  792. }
  793. }
  794. }
  795. </style>