user.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902
  1. <template>
  2. <view class="container">
  3. <!-- #ifdef APP-PLUS -->
  4. <view class="bar-height"></view>
  5. <!-- #endif -->
  6. <!-- <scroll-view class="content-box" scroll-y="true"> -->
  7. <view class="user-section">
  8. <view class="bg">
  9. <image src="../../static/user/ground.png" mode=""></image>
  10. </view>
  11. <!-- top -->
  12. <view class="user-box">
  13. <view class="detail" @click="navTo('/pages/userinfo/userinfo')">
  14. <image class="portrait" :src="userInfo.avatar || '/static/error/missing-face.png'"></image>
  15. <view class="username">{{ userInfo.nickname || '游客' }}</view>
  16. <view class="uservip">
  17. {{userInfo.level == 1?'会员':userInfo.level == 2?'副店长':'店长'}}
  18. </view>
  19. </view>
  20. <view class="sy-box flex">
  21. <view class="sy-item" @click="navTo('/pages/wallet/wallet')">
  22. <view class="sy-item-val">{{userInfo.now_money|| 0}}</view>
  23. <view class="sy-item-name">我的余额</view>
  24. </view>
  25. <view class="jg"></view>
  26. <view class="sy-item" @click="navTo('/pages/award/award')">
  27. <view class="sy-item-val">{{userInfo.brokerage_price|| 0}}</view>
  28. <view class="sy-item-name">我的奖金</view>
  29. </view>
  30. <view class="jg"></view>
  31. <view class="sy-item" @click="navTo('/pages/scoreAccumulate/scoreAccumulate')">
  32. <view class="sy-item-val">{{userInfo.integral||0}}</view>
  33. <view class="sy-item-name">我的积分</view>
  34. </view>
  35. <view class="jg"></view>
  36. <view class="sy-item" @click="navTo('/pages/coupon/consumer')">
  37. <view class="sy-item-val">{{userInfo.consumer || 0}}</view>
  38. <view class="sy-item-name">我的消费券</view>
  39. </view>
  40. </view>
  41. </view>
  42. <!-- 会员卡功能 -->
  43. </view>
  44. <view class="my-order">
  45. <view class="box-title flex borde-b">
  46. <view class="title"><text>我的订单</text></view>
  47. <view class="link" @click="navTo('/pages/order/order?state=5')" hover-class="common-hover"><text
  48. class="iconfont iconenter"></text></view>
  49. </view>
  50. <view class="order-section">
  51. <view class="order-item" @click="navTo('/pages/order/order?state=1')" hover-class="common-hover"
  52. :hover-stay-time="50">
  53. <view class=" icon1 position-relative">
  54. <image class="icon-img" src="/static/icon/i2.png" mode="aspectFit"></image>
  55. <view class="corner" v-if="orderInfo.unshipped_count > 0">
  56. <text>{{ orderInfo.unshipped_count }}</text>
  57. </view>
  58. </view>
  59. <text>待发货</text>
  60. </view>
  61. <view class="order-item" @click="navTo('/pages/order/order?state=2')" hover-class="common-hover"
  62. :hover-stay-time="50">
  63. <view class="icon1 position-relative">
  64. <image class="icon-img" src="/static/icon/i3.png" mode="aspectFit"></image>
  65. <view class="corner" v-if="orderInfo.received_count > 0">
  66. <text>{{ orderInfo.received_count }}</text>
  67. </view>
  68. </view>
  69. <text>待收货</text>
  70. </view>
  71. <view class="order-item" @click="navTo('/pages/order/order?state=3')" hover-class="common-hover"
  72. :hover-stay-time="50">
  73. <view class="icon1 position-relative">
  74. <image class="icon-img" src="/static/icon/i4.png" mode="aspectFit"></image>
  75. <view class="corner" v-if="orderInfo.evaluated_count > 0">
  76. <text>{{ orderInfo.evaluated_count }}</text>
  77. </view>
  78. </view>
  79. <text>待评价</text>
  80. </view>
  81. <view class="order-item" @click="navTo('/pages/order/refundOrder?state=0')" hover-class="common-hover"
  82. :hover-stay-time="50">
  83. <view class=" icon1 position-relative">
  84. <image class="icon-img" src="/static/icon/i1.png" mode="aspectFit"></image>
  85. </view>
  86. <text>退款</text>
  87. </view>
  88. </view>
  89. </view>
  90. <view class="my-order">
  91. <view class="box-title flex borde-b">
  92. <view class="title"><text>我的单数</text></view>
  93. </view>
  94. <view class="order-section">
  95. <view class="order-item">
  96. <view class="order-num">
  97. {{userInfo.suit_num || 0}}
  98. </view>
  99. <text>套装单数</text>
  100. </view>
  101. <view class="xian"></view>
  102. <view class="order-item">
  103. <view class="order-num">
  104. {{userInfo.recommend_suit_num || 0}}
  105. </view>
  106. <text>直推单数</text>
  107. </view>
  108. <view class="xian"></view>
  109. <view class="order-item">
  110. <view class="order-num">
  111. {{userInfo.group_suit_num || 0}}
  112. </view>
  113. <text>团队单数</text>
  114. </view>
  115. </view>
  116. </view>
  117. <view class="list-box" v-if="isShowIllegality">
  118. <view class="user-list flex" @click="navTo('/pages/shareQrCode/index')">
  119. <image src="../../static/user/u1.png" mode="" class="left-img"></image>
  120. <view class="">邀请海报</view>
  121. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  122. </view>
  123. <view class="user-list flex" @click="navTo('/pages/myteam/myteam')">
  124. <image src="../../static/user/u2.png" mode="widthFix" class="left-img"></image>
  125. <view class="">我的推广</view>
  126. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  127. </view>
  128. <view class="user-list flex" @click="navTo('/pages/set/phone')">
  129. <image src="../../static/user/u3.png" mode="widthFix" class="left-img"></image>
  130. <view class="">绑定手机号</view>
  131. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  132. </view>
  133. <view class="user-list flex" @click="navTo('/pages/favorites/favorites')">
  134. <image src="../../static/user/u4.png" mode="widthFix" class="left-img"></image>
  135. <view class="">我的收藏</view>
  136. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  137. </view>
  138. <view class="user-list flex" @click="openKf()">
  139. <image src="../../static/user/u5.png" mode="widthFix" class="left-img"></image>
  140. <view class="">客服中心</view>
  141. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  142. </view>
  143. <view class="user-list flex" @click="navTo('/pages/address/address')">
  144. <image src="../../static/user/u6.png" mode="widthFix" class="left-img"></image>
  145. <view class="">收货地址</view>
  146. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  147. </view>
  148. <view class="user-list flex" @click="navTo('/pages/userinfo/userinfo')">
  149. <image src="../../static/user/u7.png" mode="widthFix" class="left-img"></image>
  150. <view class="">设置</view>
  151. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  152. </view>
  153. <view class="user-list flex" @click="navTo('/pages/myteam/myteamQian')">
  154. <image src="../../static/user/u8.png" mode="widthFix" class="left-img"></image>
  155. <view class="">百业推广</view>
  156. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  157. </view>
  158. <view class="user-list flex" v-if="userInfo.service == 1 || type==1"
  159. @click="navTo('/pages/merchant/merchant')">
  160. <image src="../../static/user/u9.png" mode="widthFix" class="left-img"></image>
  161. <view class="">商家入口</view>
  162. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  163. </view>
  164. <view class="user-list flex" v-if="userInfo.service == 1 || type==1" @click="openewm()">
  165. <image src="../../static/user/u11.png" mode="widthFix" class="left-img"></image>
  166. <view class="">商家收款码</view>
  167. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  168. </view>
  169. <view class="user-list flex" @click="navTo('/pages/merchant/becomeShop')">
  170. <image src="../../static/user/u10.png" mode="widthFix" class="left-img"></image>
  171. <view class="">商家入驻{{type==-1?'':type==0?'(审核中)':type==1?'(成功)':'(失败)'}}</view>
  172. <image src="../../static/user/right.png" mode="" class="right-img"></image>
  173. </view>
  174. </view>
  175. <uni-popup ref="popupkf" type="center">
  176. <view class="popup-box">
  177. <view class="img">
  178. <image src="../../static/img/img009.png" mode=""></image>
  179. </view>
  180. <view class="mian">
  181. <view class="delivery">
  182. <view class="title">已经为您定制专属客服</view>
  183. <image src="../../static/img/img010.png" mode=""></image>
  184. </view>
  185. <view class="nocancel">客服VX:{{ text }}</view>
  186. <view class="comfirm-box">
  187. <view class="cancel" @click="cancel">取消</view>
  188. <view class="comfirm" @click="comfirm(text)">复制微信</view>
  189. </view>
  190. </view>
  191. </view>
  192. </uni-popup>
  193. <uni-popup ref="ewm" type="center">
  194. <view class="hym-wrap">
  195. <view class="hym-tit">
  196. 收款码地址
  197. </view>
  198. <view class="hym-val">
  199. <tki-qrcode :key="hym" cid="tki-qrcode-canvas" ref="qrcode" :val="hym" :size="300" unit="upx"
  200. background="#ffffff" foreground="#333333" pdground="#333333" icon="" :iconSize="0" :lv="3"
  201. :onval="true" :loadMake="true" :usingComponents="true" />
  202. </view>
  203. </view>
  204. </uni-popup>
  205. </view>
  206. </template>
  207. <script>
  208. import uniPopup from '@/components/uni-popup/uni-popup.vue';
  209. import {
  210. verification,
  211. storeIndex
  212. } from '@/api/merchant.js';
  213. import {
  214. mapState,
  215. mapMutations
  216. } from 'vuex';
  217. import uniList from '@/components/uni-list/uni-list.vue';
  218. import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
  219. import {
  220. orderData,
  221. } from '@/api/user.js';
  222. import {
  223. getUserInfo
  224. } from '@/api/login.js';
  225. import tkiQrcodes from '@/components/tki-qrcode/tki-qrcode.vue';
  226. let startY = 0,
  227. moveY = 0,
  228. pageAtTop = true;
  229. export default {
  230. components: {
  231. uniList,
  232. uniListItem,
  233. uniPopup,
  234. tkiQrcodes
  235. },
  236. data() {
  237. return {
  238. type: -1, //-1无事发生0审核中1成功2失败
  239. hym: '', //会员编号
  240. orderinfo: {
  241. complete_count: 0,
  242. received_count: 0,
  243. unshipped_count: 0,
  244. order_count: 0
  245. },
  246. // 判断是否已经点击过一次取消关注公众号
  247. watchful: true,
  248. card: '',
  249. pwd: '',
  250. text: '111',
  251. qrsize: 80, // 二维码大小
  252. cid: 'tki-qrcode-canvas', //canvasId,页面存在多个二维码组件时需设置不同的ID
  253. size: 500, //生成的二维码大小
  254. unit: 'upx', //大小单位尺寸
  255. // show: true,//默认使用组件中的image标签显示二维码
  256. val: '', //要生成的内容
  257. background: '#ffffff', //二维码背景色
  258. foreground: '#333333', //二维码前景色
  259. pdground: '#333333', //二维码角标色
  260. icon: '', //二维码图标URL(必须是本地图片,网络图需要先下载至本地)
  261. iconSize: 40, //二维码图标大小
  262. lv: 3, //容错级别
  263. onval: true, //监听val值变化自动重新生成二维码
  264. loadMake: false, //组件初始化完成后自动生成二维码,val需要有值
  265. usingComponents: false, //是否使用了自定义组件模式(主要是为了修复非自定义组件模式时 v-if 无法生成二维码的问题)
  266. showLoading: true, //是否显示loading
  267. loadingText: '二维码生成中', //loading文字
  268. src: '', // 二维码生成后的图片地址或base64
  269. ratio: 1, //页面比例用于计算
  270. ctxSrc: '', //要显示的图片
  271. loading: true, //是否载入图片中
  272. };
  273. },
  274. onShow() {
  275. // 判断是否已经登录
  276. if (this.hasLogin) {
  277. this.loadBaseData();
  278. }
  279. },
  280. onReady() {
  281. // 初始化获取页面宽度
  282. uni.createSelectorQuery()
  283. .select('.container')
  284. .fields({
  285. size: true
  286. },
  287. data => {
  288. // 计算最多下拉的高度
  289. this.userDowm = Math.floor((data.width / 750) * 200);
  290. // 计算最大触发修改高度事件
  291. this.userMaxDowm = Math.floor((data.width / 750) * 250);
  292. }
  293. )
  294. .exec();
  295. },
  296. computed: {
  297. ...mapState('user', ['userInfo', 'orderInfo', 'hasLogin']),
  298. jcdj() {
  299. if (this.userInfo.award_level_info != null) {
  300. if (this.userInfo.group_level_info != null) {
  301. return this.userInfo.award_level_info.id < this.userInfo.group_level_info.id ? this.userInfo
  302. .award_level_info.name : this.userInfo.group_level_info.name
  303. } else {
  304. return this.userInfo.award_level_info.name
  305. }
  306. } else {
  307. if (this.userInfo.group_level_info != null) {
  308. return this.userInfo.group_level_info.name
  309. } else {
  310. return '无'
  311. }
  312. }
  313. },
  314. // #ifdef H5
  315. ...mapState(['weichatObj']),
  316. // #endif
  317. ...mapState(['isShowIllegality', 'canChange', 'storeInfo', 'baseURL'])
  318. },
  319. methods: {
  320. ...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
  321. // 加载初始数据
  322. loadBaseData() {
  323. let obj = this;
  324. getUserInfo({})
  325. .then(({
  326. data
  327. }) => {
  328. orderData({})
  329. .then(({
  330. data
  331. }) => {
  332. obj.setOrderInfo(data);
  333. })
  334. .catch(e => {
  335. obj.setOrderInfo({
  336. complete_count: 0, //完成
  337. received_count: 0, //待收货
  338. unshipped_count: 0, //待发货
  339. order_count: 0, //订单总数
  340. unpaid_count: 0 //待付款
  341. });
  342. });
  343. obj.setUserInfo(data);
  344. // 判断是否已经关注公众号
  345. if (data.wechat.subscribe == 0 && obj.watchful) {
  346. uni.showModal({
  347. title: '温馨提醒',
  348. content: '为提供更好的服务,请关注公众号。',
  349. success: res => {
  350. obj.watchful = false;
  351. // 判断是否点击了确认
  352. if (res.confirm) {
  353. uni.navigateTo({
  354. url: '/pages/shareQrCode/wechatQr'
  355. });
  356. }
  357. }
  358. });
  359. }
  360. })
  361. .catch(e => {
  362. console.log(e);
  363. });
  364. storeIndex({}).then(e => {
  365. if (!e.data.apply) {
  366. obj.type = -1;
  367. if (e.data.store_info) {
  368. obj.type = 1;
  369. }
  370. } else {
  371. obj.type = e.data.apply.status;
  372. }
  373. })
  374. },
  375. openKf() {
  376. this.$refs.popupkf.open();
  377. },
  378. openewm() {
  379. this.hym = this.baseURL + '/index/pages/received/ipad?token=' + uni.getStorageSync('token');
  380. this.$refs.ewm.open();
  381. },
  382. // 关闭客服
  383. cancel() {
  384. this.$refs.popupkf.close();
  385. },
  386. comfirm(text) {
  387. console.log(text);
  388. const result = this.uniCopy(text);
  389. if (result === false) {
  390. uni.showToast({
  391. title: '不支持'
  392. });
  393. } else {
  394. uni.showToast({
  395. title: '复制成功',
  396. icon: 'none'
  397. });
  398. }
  399. this.$refs.popupkf.close();
  400. },
  401. uniCopy(content) {
  402. /**
  403. * 小程序端 和 app端的复制逻辑
  404. */
  405. //#ifndef H5
  406. uni.setClipboardData({
  407. data: content,
  408. success: function() {
  409. console.log('success');
  410. return true;
  411. }
  412. });
  413. //#endif
  414. /**
  415. * H5端的复制逻辑
  416. */
  417. // #ifdef H5
  418. if (!document.queryCommandSupported('copy')) {
  419. //为了兼容有些浏览器 queryCommandSupported 的判断
  420. // 不支持
  421. return false;
  422. }
  423. let textarea = document.createElement('textarea');
  424. textarea.value = content;
  425. textarea.readOnly = 'readOnly';
  426. document.body.appendChild(textarea);
  427. textarea.select(); // 选择对象
  428. textarea.setSelectionRange(0, content.length); //核心
  429. let result = document.execCommand('copy'); // 执行浏览器复制命令
  430. textarea.remove();
  431. return result;
  432. // #endif
  433. },
  434. /**
  435. * 统一跳转接口,拦截未登录路由
  436. * navigator标签现在默认没有转场动画,所以用view
  437. */
  438. navTo(url) {
  439. if (!this.hasLogin) {
  440. url = '/pages/public/login';
  441. // #ifdef H5
  442. let weichatBrowser = uni.getStorageSync('weichatBrowser');
  443. // 判断是否为微信浏览器
  444. if (weichatBrowser) {
  445. url = '/pages/public/wxLogin';
  446. }
  447. // #endif
  448. // #ifdef MP-WEIXIN
  449. url = '/pages/public/wxLogin';
  450. // #endif
  451. }
  452. uni.navigateTo({
  453. url
  454. });
  455. },
  456. }
  457. };
  458. </script>
  459. <style lang="scss">
  460. %flex-center {
  461. display: flex;
  462. flex-direction: column;
  463. justify-content: center;
  464. align-items: center;
  465. }
  466. %section {
  467. display: flex;
  468. justify-content: space-around;
  469. align-content: center;
  470. background: #fff;
  471. border-radius: 10rpx;
  472. }
  473. .container {
  474. height: 100%;
  475. background-color: #f8f8f8;
  476. /* #ifdef APP-PLUS */
  477. .bar-height {
  478. height: var(--status-bar-height);
  479. background-color: $base-color;
  480. }
  481. /* #endif */
  482. }
  483. .content-box {
  484. height: 100%;
  485. }
  486. .user-section {
  487. padding: 60rpx 0 0 0;
  488. position: relative;
  489. .bg {
  490. position: absolute;
  491. height: 228rpx;
  492. width: 100%;
  493. left: 0;
  494. top: 0;
  495. image {
  496. width: 100%;
  497. height: 100%;
  498. }
  499. // background-color: $base-color;
  500. }
  501. }
  502. .user-box {
  503. padding: 54rpx 0 40rpx;
  504. position: relative;
  505. z-index: 0;
  506. margin: 0 auto;
  507. width: 90%;
  508. background-color: #ffffff;
  509. border-radius: 20rpx;
  510. }
  511. .detail {
  512. display: flex;
  513. flex-direction: column;
  514. align-items: center;
  515. justify-content: center;
  516. .portrait {
  517. width: 130rpx;
  518. height: 130rpx;
  519. border-radius: 50%;
  520. }
  521. .username {
  522. color: black;
  523. margin-top: 20rpx;
  524. font-size: $font-lg + 6rpx;
  525. height: 100%;
  526. }
  527. .uservip {
  528. display: flex;
  529. align-items: center;
  530. justify-content: center;
  531. margin-top: 10rpx;
  532. background: url('../../static/img/vip-bg.png') 100%/contain no-repeat;
  533. padding: 6rpx 72rpx;
  534. font-size: 20rpx;
  535. font-family: PingFang SC;
  536. font-weight: 500;
  537. color: #93794B;
  538. }
  539. }
  540. .cover-container {
  541. display: flex;
  542. flex-direction: column;
  543. background: $page-color-base;
  544. padding: 0 30rpx;
  545. position: relative;
  546. background: #f5f5f5;
  547. padding-bottom: 20rpx;
  548. margin-top: -110rpx;
  549. }
  550. .tj-sction {
  551. @extend %section;
  552. .tj-item {
  553. @extend %flex-center;
  554. flex-direction: column;
  555. height: 140rpx;
  556. font-size: $font-sm;
  557. color: #75787d;
  558. }
  559. .num {
  560. font-size: $font-lg;
  561. color: $font-color-dark;
  562. margin-bottom: 8rpx;
  563. }
  564. }
  565. .my-order {
  566. width: 690rpx;
  567. margin: 20rpx auto 0;
  568. border-radius: 20rpx;
  569. }
  570. .box-title {
  571. line-height: 1;
  572. padding: 30rpx;
  573. background: #ffffff;
  574. .title {
  575. font-size: $font-lg;
  576. font-weight: bold;
  577. }
  578. .link {
  579. font-size: $font-base - 2rpx;
  580. color: $font-color-light;
  581. }
  582. }
  583. // .order{
  584. // margin-top: 70rpx;
  585. // }
  586. .order-section {
  587. @extend %section;
  588. padding: 40rpx 0;
  589. align-items: center;
  590. .order-item {
  591. @extend %flex-center;
  592. // width: 120rpx;
  593. width: 25%;
  594. border-radius: 10rpx;
  595. font-size: $font-sm;
  596. color: $font-color-dark;
  597. }
  598. .xian {
  599. height: 30rpx;
  600. width: 1rpx;
  601. background: #000000;
  602. }
  603. .order-num {
  604. font-size: $font-sm + 10rpx;
  605. margin-bottom: 10rpx;
  606. }
  607. .iconfont {
  608. font-size: 48rpx;
  609. margin-bottom: 18rpx;
  610. color: #fa436a;
  611. }
  612. .icon-shouhoutuikuan {
  613. font-size: 44rpx;
  614. }
  615. .icon {
  616. height: 88rpx;
  617. width: 90rpx;
  618. margin-bottom: 18rpx;
  619. background-size: 100%;
  620. background-repeat: no-repeat;
  621. background-position: center;
  622. .icon-img {
  623. width: 100%;
  624. height: 100%;
  625. }
  626. }
  627. .icon1 {
  628. height: 50rpx;
  629. width: 48rpx;
  630. margin-bottom: 18rpx;
  631. background-size: 100%;
  632. background-repeat: no-repeat;
  633. background-position: center;
  634. .icon-img {
  635. width: 100%;
  636. height: 100%;
  637. }
  638. }
  639. }
  640. .history-section {
  641. // padding: 30rpx 0 0;
  642. margin-top: 20rpx;
  643. background: #fff;
  644. border-radius: 10rpx;
  645. .sec-header {
  646. display: flex;
  647. align-items: center;
  648. font-size: $font-base;
  649. color: $font-color-dark;
  650. line-height: 40rpx;
  651. margin-left: 30rpx;
  652. padding-top: 30rpx;
  653. .iconfont {
  654. font-size: 44rpx;
  655. color: $color-red;
  656. margin-right: 16rpx;
  657. line-height: 40rpx;
  658. }
  659. }
  660. .h-list {
  661. white-space: nowrap;
  662. padding: 30rpx 30rpx 0;
  663. image {
  664. display: inline-block;
  665. width: 160rpx;
  666. height: 160rpx;
  667. margin-right: 20rpx;
  668. border-radius: 10rpx;
  669. }
  670. }
  671. }
  672. .sy-box {
  673. padding: 30rpx 0 40rpx;
  674. line-height: 1;
  675. .sy-item {
  676. width: 30%;
  677. flex-grow: 1;
  678. text-align: center;
  679. font-size: 24rpx;
  680. font-family: PingFang SC;
  681. font-weight: 500;
  682. color: #3bbc88;
  683. .sy-item-val {
  684. font-size: 36rpx;
  685. font-family: PingFang SC;
  686. font-weight: bold;
  687. color: #333333;
  688. }
  689. .sy-item-name {
  690. font-size: 24rpx;
  691. font-family: PingFang SC;
  692. font-weight: 500;
  693. color: #666666;
  694. margin-top: 16rpx;
  695. }
  696. }
  697. .jg {
  698. width: 1rpx;
  699. height: 58rpx;
  700. background: #EEEEEE;
  701. }
  702. }
  703. .list-box {
  704. width: 690rpx;
  705. margin: 20rpx auto 0;
  706. padding: 8rpx;
  707. }
  708. .user-list {
  709. border-radius: 28rpx;
  710. background: #ffffff;
  711. margin: 20rpx 0 0;
  712. width: 100%;
  713. background: #ffffff;
  714. padding: 30rpx 25rpx;
  715. .left-img {
  716. width: 40rpx;
  717. height: 40rpx;
  718. }
  719. view {
  720. padding-left: 20rpx;
  721. flex-grow: 1;
  722. font-size: 29rpx;
  723. font-weight: bold;
  724. color: #5d5d5d;
  725. }
  726. .right-img {
  727. width: 13rpx;
  728. height: 23rpx;
  729. }
  730. }
  731. .popup-box {
  732. width: 522rpx;
  733. height: 605rpx;
  734. background-color: #ffffff;
  735. border-radius: 20rpx;
  736. position: relative;
  737. .img {
  738. position: relative;
  739. top: -56rpx;
  740. left: 0;
  741. width: 522rpx;
  742. height: 132rpx;
  743. display: flex;
  744. justify-content: center;
  745. image {
  746. border-radius: 20rpx 20rpx 0 0;
  747. width: 450rpx;
  748. height: 132rpx;
  749. }
  750. }
  751. .mian {
  752. margin-top: -44rpx;
  753. display: flex;
  754. flex-direction: column;
  755. align-items: center;
  756. // padding: 32rpx 32rpx;
  757. background-color: #ffffff;
  758. border-radius: 0 0 20rpx 20rpx;
  759. text-align: center;
  760. .delivery {
  761. font-size: 40rpx;
  762. color: #333333;
  763. display: flex;
  764. align-items: center;
  765. flex-direction: column;
  766. image {
  767. margin-top: 48rpx;
  768. width: 172rpx;
  769. height: 160rpx;
  770. }
  771. }
  772. .nocancel {
  773. font-size: 32rpx;
  774. color: #333333;
  775. margin-top: 14rpx;
  776. }
  777. .comfirm-box {
  778. margin-top: 52rpx;
  779. display: flex;
  780. // margin-bottom: 32rpx;
  781. // justify-content: space-around;
  782. .cancel {
  783. display: flex;
  784. align-items: center;
  785. justify-content: center;
  786. width: 197rpx;
  787. height: 74rpx;
  788. border: 1px solid #dcc786;
  789. border-radius: 38rpx;
  790. font-size: 32rpx;
  791. color: #605128;
  792. }
  793. .comfirm {
  794. margin-left: 32rpx;
  795. display: flex;
  796. align-items: center;
  797. justify-content: center;
  798. width: 197rpx;
  799. height: 74rpx;
  800. background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
  801. border-radius: 38px;
  802. font-size: 32rpx;
  803. color: #605128;
  804. }
  805. }
  806. }
  807. }
  808. .hym-wrap {
  809. width: 500rpx;
  810. height: 500rpx;
  811. background-color: #fff;
  812. text-align: center;
  813. border-radius: 20rpx;
  814. .hym-tit {
  815. color: $base-color;
  816. padding: 20rpx 0;
  817. font-size: 48rpx;
  818. }
  819. .hym-val {
  820. width: 300rpx;
  821. height: 300rpx;
  822. margin: auto;
  823. }
  824. .hym-num {
  825. font-size: 28rpx;
  826. font-weight: bold;
  827. padding-top: 20rpx;
  828. }
  829. }
  830. </style>