user.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188
  1. <template>
  2. <view class="container">
  3. <view class="vheigh"></view>
  4. <view class="user-top">
  5. <!-- #ifndef APP-PLUS -->
  6. <image src="http://yiqugo.oss-cn-hangzhou.aliyuncs.com/bf48a202304061504282861.png" mode=""
  7. class="user-top-bg"></image>
  8. <!-- #endif -->
  9. <!-- #ifdef APP-PLUS -->
  10. <image src="../../static/img/user-bg.png" mode="" class="user-top-bg"></image>
  11. <!-- #endif -->
  12. <view class="user-info" @click="navTo('/pages/set/set')">
  13. <view class="avatar">
  14. <image class="avatarimg" :src="userInfo.avatar || '/static/error/missing-face.png'" mode=""></image>
  15. <image v-if="sm != 0" class="real" src="../../static/img/real.png" mode=""></image>
  16. </view>
  17. <view class="name">{{ userInfo.nickname || '游客' }}</view>
  18. <view class="phone flex" v-if="userInfo.uid">
  19. <view class="phone-font">ID号:{{ userInfo.uid }}</view>
  20. </view>
  21. <view class="vip" v-if="userInfo.level_name">
  22. <image class="vip-bg" src="../../static/img/vip.png" mode=""></image>
  23. <view class="vip-title">{{ userInfo.level_name }}</view>
  24. </view>
  25. </view>
  26. <view class="sy-box flex" v-if="isShowIllegality" >
  27. <view class="sy-item" @click="navTo('/pages/user/mygs')">
  28. <view class="sy-item-val">{{ userInfo.profit > 0 ? userInfo.profit : '0' }}</view>
  29. <view class="sy-item-name">我的收益</view>
  30. </view>
  31. <view class="jg"></view>
  32. <view class="sy-item" @click="navTo('/pages/money/qudou')">
  33. <view class="sy-item-val">{{ userInfo.integral || '0.00' }}</view>
  34. <view class="sy-item-name">我的趣豆</view>
  35. </view>
  36. <view class="jg"></view>
  37. <view class="sy-item" @click="navTo('/pages/user/myAppointment')">
  38. <view class="sy-item-val">{{ userInfo.anticipate || '0.00' }}</view>
  39. <view class="sy-item-name">我的易趣卷</view>
  40. </view>
  41. <view class="jg"></view>
  42. <view class="sy-item" @click="navTo('/pages/user/mytihuo')">
  43. <view class="sy-item-val">{{ userInfo.good_integral || '0.00' }}</view>
  44. <view class="sy-item-name">提货积分</view>
  45. </view>
  46. </view>
  47. </view>
  48. <!-- <view class="qd-box flex">
  49. <image src="../../static/icon/uqd.png" mode=""></image>
  50. <view class="qd-info">
  51. <view class="" style="font-weight: bold;color: #0C1732;">签到领取积分</view>
  52. <view class="">已连续签到{{ actionDay }}天</view>
  53. <view class="">累计签到奖励{{ sum_integral }}趣豆</view>
  54. </view>
  55. <view class="qd-btn" :class="{ qded: qded }" @click="qded ? '' : goQd()">{{ qded ? '已签到' : '立即签到' }}</view>
  56. </view> -->
  57. <view class="tool-box flex" v-if="isShowIllegality">
  58. <view class="tool-item flex" v-for="itemt in toolList" :key="itemt.id" @click="useTool(itemt)"
  59. v-if="itemt.id != 't7' || userInfo.staff">
  60. <view class="tool-item-img">
  61. <image :src="itemt.img" mode="widthFix" :style="{ width: itemt.width, height: itemt.height }"
  62. class="tool-logo"></image>
  63. </view>
  64. <view class="tool-item-name">{{ itemt.name }}</view>
  65. </view>
  66. </view>
  67. <uni-list class="tool-list">
  68. <uni-list-item class="item" title="收款信息" @click="navTo('/pages/collection/collection')"
  69. thumb="/static/icon/user_page.png"></uni-list-item>
  70. <uni-list-item class="item" title="实名认证" @click="navTo('/pages/user/approve')"
  71. thumb="/static/icon/user_name.png"></uni-list-item>
  72. <uni-list-item class="item" title="收货地址" @click="navTo('/pages/set/address')"
  73. thumb="/static/icon/user_address.png"></uni-list-item>
  74. <uni-list-item class="item" title="客服" @click="openKf()" thumb="/static/icon/user_serve.png"></uni-list-item>
  75. <uni-list-item class="item" title="设置" @click="navTo('/pages/set/set')" thumb="/static/icon/user_set.png"></uni-list-item>
  76. <!-- #ifdef H5 -->
  77. <uni-list-item class="item" title="绑定手机" @click="navTo('/pages/set/phone')"
  78. thumb="/static/icon/user_bind.png"></uni-list-item>
  79. <!-- #endif -->
  80. <!-- <uni-list-item class="item" title="关于我们" @click="navTo('/pages/user/about')" thumb="/static/icon/img09.png"></uni-list-item> -->
  81. </uni-list>
  82. <view class="page-btm" style="padding-top: 20rpx;">©2022 杭州尚视拍卖有限公司 版权所有</view>
  83. <!-- #ifdef APP -->
  84. <view class="page-btm" >APP版本号{{wgtinfo.version}},最新版本号{{appversion}}</view>
  85. <!-- #endif -->
  86. <view class="page-btm" style="padding-bottom: 10rpx;">浙ICP备2022017146号-2</view>
  87. <uni-popup ref="popupkf" type="center">
  88. <view class="popup-box">
  89. <view class="img">
  90. <image src="../../static/img/img009.png" mode=""></image>
  91. </view>
  92. <view class="mian">
  93. <view class="delivery">
  94. <view class="title">已经为您定制专属客服</view>
  95. <image src="../../static/img/img010.png" mode=""></image>
  96. </view>
  97. <view class="nocancel">客服电话:{{ text }}</view>
  98. <view class="comfirm-box">
  99. <view class="cancel" @click="cancel">取消</view>
  100. <view class="comfirm" @click="comfirm(text)">复制微信</view>
  101. </view>
  102. </view>
  103. </view>
  104. </uni-popup>
  105. <uni-popup ref="popupqd" type="center">
  106. <view class="popup">
  107. <view class="popup-dox">
  108. <image class="popup-logo" src="../../static/img/sign-popup.png"></image>
  109. </view>
  110. <view class="popup-title">
  111. 获得
  112. <text>{{ today_integral }}</text>
  113. 趣豆
  114. </view>
  115. <view class="popup-btn" @click="closeQd">知道了</view>
  116. </view>
  117. <!-- <view class="close_icon" @click="close">
  118. <image src="../../static/img/Close.png"></image>
  119. </view> -->
  120. </uni-popup>
  121. <u-tabbar activeColor="#f42b4e" v-model="current" :list="tabbar"></u-tabbar>
  122. </view>
  123. </template>
  124. <script>
  125. import {
  126. tabbar1
  127. } from '@/utils/tabbar.js';
  128. import {
  129. mapState,
  130. mapMutations
  131. } from 'vuex';
  132. import uniList from '@/components/uni-list/uni-list.vue';
  133. import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
  134. import uniCopy from '@/components/js_sdk/xb-copy/uni-copy.js';
  135. import {
  136. orderData,
  137. getUserInfo,
  138. rate,
  139. apply_status
  140. } from '@/api/user.js';
  141. import {
  142. signList,
  143. integral,
  144. signUser
  145. } from '@/api/functionalUnit.js';
  146. import {
  147. saveUrl,
  148. interceptor
  149. } from '@/utils/loginUtils.js';
  150. // #ifdef APP-PLUS
  151. import {
  152. getUpApp
  153. } from '@/utils/upApp.js';
  154. // #endif
  155. let startY = 0,
  156. moveY = 0,
  157. pageAtTop = true;
  158. export default {
  159. components: {
  160. uniList,
  161. uniListItem
  162. },
  163. data() {
  164. return {
  165. // #ifdef APP
  166. wgtinfo:{
  167. version:'1.0.0'
  168. },//版本信息
  169. // #endif
  170. sm: 0, //是否已实名认证
  171. money: '', //保存当前月份
  172. year: '', //保存当前年份
  173. day: '', //保存当前日期
  174. current: 4,
  175. tabbar: tabbar1,
  176. qded: false, //是否已签到
  177. text: '18967672398', //客服微信
  178. actionDay: 0, //连续签到天数
  179. sum_integral: 0, //累计获得积分
  180. today_integral: '', //签到获得的数值
  181. tom_integral: '', //明天签到获得的数值
  182. tom_type: '', //签到获得的数值单位
  183. userDowm: 0, //卡片升级专属高度
  184. userMaxDowm: 0, //卡片最高高度
  185. toolList: [
  186. // {
  187. // id: 't1',
  188. // name: '新人通道',
  189. // width: '56rpx',
  190. // heigt: '54rpx',
  191. // img: '../../static/icon/tool-1.png',
  192. // path: '/pages/user/xrtd'
  193. // },
  194. {
  195. id: 't2',
  196. name: '邀请好友',
  197. width: '56rpx',
  198. heigt: '57rpx',
  199. img: '../../static/icon/tool-2.png',
  200. path: '/pages/user/shareQrCode'
  201. },
  202. {
  203. id: 't3',
  204. name: '我的粉丝',
  205. width: '68rpx',
  206. heigt: '53rpx',
  207. img: '../../static/icon/tool-3.png',
  208. path: '/pages/user/myfans'
  209. },
  210. {
  211. id: 't4',
  212. name: '我的订单',
  213. width: '55rpx',
  214. heigt: '54rpx',
  215. img: '../../static/icon/tool-4.png',
  216. path: '/pages/order/index'
  217. },
  218. {
  219. id: 't5',
  220. name: '我的商品',
  221. width: '50rpx',
  222. heigt: '58rpx',
  223. img: '../../static/icon/tool-5.png',
  224. path: '/pages/user/myproduct'
  225. },
  226. // #ifndef APP
  227. {
  228. id: 't6',
  229. name: '馆长申请',
  230. width: '59rpx',
  231. heigt: '56rpx',
  232. img: '../../static/icon/tool-6.png',
  233. path: '/pages/user/gzsq'
  234. },
  235. // #endif
  236. {
  237. id: 't7',
  238. name: '我的金豆',
  239. width: '59rpx',
  240. heigt: '56rpx',
  241. img: '../../static/icon/jindou.png',
  242. path: '/pages/user/myyue'
  243. }
  244. ]
  245. };
  246. },
  247. onShow() {
  248. // 判断是否已经登录
  249. if (this.hasLogin) {
  250. this.loadBaseData();
  251. // this.signUser();
  252. // this.loadList();
  253. // this.getData();
  254. // this.isSm();
  255. }
  256. // #ifdef APP
  257. if(this.appversion!==this.wgtinfo.version){
  258. getUpApp();
  259. }
  260. // #endif
  261. },
  262. onReady() {
  263. const that = this;
  264. // 初始化获取页面宽度
  265. uni.createSelectorQuery()
  266. .select('.container')
  267. .fields({
  268. size: true
  269. },
  270. data => {
  271. // 计算最多下拉的高度
  272. this.userDowm = Math.floor((data.width / 750) * 185);
  273. // 计算最大触发修改高度事件
  274. this.userMaxDowm = Math.floor((data.width / 750) * 250);
  275. }
  276. )
  277. .exec();
  278. // #ifdef APP
  279. plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
  280. that.wgtinfo = wgtinfo;
  281. });
  282. // #endif
  283. },
  284. computed: {
  285. ...mapState('user', ['userInfo', 'orderInfo', 'hasLogin']),
  286. ...mapState(["isShowIllegality","appversion"])
  287. },
  288. methods: {
  289. ...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
  290. getData(current) {
  291. const date = current ? new Date(current) : new Date();
  292. this.year = date.getFullYear(); //保存当前年份
  293. this.month = date.getMonth() + 1; //保存当前月份
  294. this.day = date.getDate(); //保存当前日期
  295. },
  296. isSm() {
  297. rate({}).then(e => {
  298. if (e.data.is_auth == 2) {
  299. this.sm = 1;
  300. }
  301. });
  302. },
  303. comfirm(text) {
  304. let obj = this;
  305. let content = text; //需要复制的内容
  306. console.log('复制的内容:', content);
  307. // content = typeof content === 'string' ? content : content.toString(); // 复制内容,必须字符串,数字需要转换为字符串
  308. const result = uniCopy(content);
  309. if (result === false) {
  310. uni.showToast({
  311. title: '不支持'
  312. });
  313. } else {
  314. uni.showToast({
  315. title: '复制成功',
  316. icon: 'none'
  317. });
  318. }
  319. },
  320. // 获取签到列表
  321. loadList() {
  322. let obj = this;
  323. let present = this.day; //保存当前天数用于后续计算
  324. let actionDay = 0; //用于计算活跃天数
  325. let arr = []; //保存返回数组;
  326. signList({
  327. page: 1,
  328. limit: 31
  329. }).then(e => {
  330. arr = e.data.map((e, ind) => {
  331. let time = e.add_time.split('-');
  332. let day = parseInt(time[2].replace(/^0/i, ''));
  333. let year = time[0];
  334. let month = +time[1];
  335. if (obj.year == year && obj.month == month) {
  336. return day;
  337. }
  338. });
  339. // 判断今天是否已经签到
  340. if (arr[0] == this.day) {
  341. this.qded = true;
  342. }
  343. });
  344. },
  345. //获取签到用户信息
  346. signUser() {
  347. signUser({
  348. all: 1
  349. }).then(({
  350. data
  351. }) => {
  352. this.actionDay = data.sign_num; //连续签到天数
  353. this.sum_integral = data.sum_integral; //累计总积分
  354. });
  355. },
  356. // 加载初始数据
  357. loadBaseData() {
  358. getUserInfo({})
  359. .then(({
  360. data
  361. }) => {
  362. this.setUserInfo(data);
  363. // 获取用户数据完毕后在获取订单数据防止多次跳转到登录页
  364. orderData({})
  365. .then(({
  366. data
  367. }) => {
  368. this.setOrderInfo(data);
  369. })
  370. .catch(e => {
  371. this.setOrderInfo({
  372. complete_count: 0, //完成
  373. received_count: 0, //待收货
  374. unshipped_count: 0, //待发货
  375. order_count: 0, //订单总数
  376. unpaid_count: 0 //待付款
  377. });
  378. });
  379. })
  380. .catch(e => {
  381. console.log(e);
  382. });
  383. },
  384. /**
  385. * 统一跳转接口,拦截未登录路由
  386. * navigator标签现在默认没有转场动画,所以用view
  387. */
  388. navTo(url) {
  389. const obj = this;
  390. if (!this.hasLogin) {
  391. // 保存地址
  392. saveUrl();
  393. // 登录拦截
  394. interceptor();
  395. } else {
  396. if (url == '/pages/user/approve') {
  397. rate({})
  398. .then(e => {
  399. console.log(e);
  400. if (e.data.is_auth == null) {
  401. uni.navigateTo({
  402. url
  403. });
  404. }
  405. if (e.data.is_auth == 0) {
  406. uni.navigateTo({
  407. url
  408. });
  409. }
  410. if (e.data.is_auth == 1) {
  411. // this.$api.msg('正在审核中请耐心等待');
  412. uni.navigateTo({
  413. url
  414. });
  415. }
  416. if (e.data.is_auth == 2) {
  417. this.$api.msg('已通过实名认证,无需再实名认证');
  418. }
  419. if (e.data.is_auth == 3) {
  420. uni.navigateTo({
  421. url
  422. });
  423. // uni.showModal({
  424. // title: '提示',
  425. // content: '申请失败,原因' + e.data.off + '是否重新申请',
  426. // success: function(res) {
  427. // if (res.confirm) {
  428. // uni.navigateTo({
  429. // url
  430. // });
  431. // } else if (res.cancel) {
  432. // console.log('用户点击取消');
  433. // }
  434. // }
  435. // });
  436. }
  437. })
  438. .catch(e => {
  439. return;
  440. });
  441. } else if (url == '/pages/user/gzsq') {
  442. apply_status({})
  443. .then(e => {
  444. if (e.data.status != 0) {
  445. if (e.data.status == 3) {
  446. uni.showModal({
  447. title: '提示',
  448. content: '申请失败是否重新申请',
  449. success: function(res) {
  450. if (res.confirm) {
  451. uni.navigateTo({
  452. url
  453. });
  454. } else if (res.cancel) {
  455. console.log('用户点击取消');
  456. }
  457. }
  458. });
  459. } else {
  460. obj.$api.msg(e.data.str);
  461. }
  462. } else {
  463. uni.navigateTo({
  464. url
  465. });
  466. }
  467. })
  468. .catch(e => {});
  469. } else {
  470. uni.navigateTo({
  471. url,
  472. fail() {
  473. uni.switchTab({
  474. url
  475. });
  476. }
  477. });
  478. }
  479. }
  480. },
  481. useTool(e) {
  482. this.navTo(e.path);
  483. },
  484. // 签到弹窗
  485. goQd() {
  486. integral({})
  487. .then(e => {
  488. this.integral = console.log(e);
  489. // 改为已签到
  490. this.qded = true;
  491. this.today_integral = e.data.integral;
  492. this.actionDay++;
  493. this.sum_integral = +this.sum_integral + +e.data.integral;
  494. this.$refs.popupqd.open();
  495. })
  496. .catch(e => {
  497. console.log(e);
  498. });
  499. },
  500. // 关闭签到弹窗
  501. closeQd() {
  502. this.$refs.popupqd.close();
  503. },
  504. // 打开客服
  505. openKf() {
  506. this.$refs.popupkf.open();
  507. },
  508. // 关闭客服
  509. cancel() {
  510. this.$refs.popupkf.close();
  511. }
  512. }
  513. };
  514. </script>
  515. <style lang="scss">
  516. %flex-center {
  517. display: flex;
  518. flex-direction: column;
  519. justify-content: center;
  520. align-items: center;
  521. }
  522. %section {
  523. display: flex;
  524. justify-content: space-around;
  525. align-content: center;
  526. background: #fff;
  527. border-radius: 10rpx;
  528. }
  529. .container,
  530. page {
  531. min-height: 100%;
  532. height: auto;
  533. background-color: $page-color-base;
  534. }
  535. .vheigh {
  536. height: var(--status-bar-height);
  537. background-color: $base-color;
  538. }
  539. .user-section {
  540. height: 435rpx;
  541. padding: 15rpx 30rpx 0;
  542. position: relative;
  543. .bg {
  544. position: absolute;
  545. left: 0;
  546. top: 0;
  547. width: 100%;
  548. height: 100%;
  549. background-color: $base-color;
  550. }
  551. }
  552. .user-info-box {
  553. height: 180rpx;
  554. color: white;
  555. display: flex;
  556. align-items: center;
  557. justify-content: space-between;
  558. position: relative;
  559. z-index: 1;
  560. .detail {
  561. height: 130rpx;
  562. .portrait-box {
  563. height: 100%;
  564. .portrait {
  565. width: 130rpx;
  566. height: 100%;
  567. border: 5rpx solid #fff;
  568. border-radius: 50%;
  569. }
  570. }
  571. .info-box {
  572. margin-left: 20rpx;
  573. line-height: 1.5;
  574. .username {
  575. font-size: $font-lg + 6rpx;
  576. height: 100%;
  577. }
  578. }
  579. }
  580. .config {
  581. font-size: 48rpx;
  582. height: 130rpx;
  583. .setting {
  584. margin-right: 51rpx;
  585. }
  586. }
  587. }
  588. .vip-card-box {
  589. display: flex;
  590. flex-direction: column;
  591. color: #f7d680;
  592. height: 240rpx;
  593. background: linear-gradient(left, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.8));
  594. border-radius: 16rpx 16rpx 0 0;
  595. overflow: hidden;
  596. position: relative;
  597. padding: 20rpx 24rpx;
  598. .card-bg {
  599. position: absolute;
  600. top: 20rpx;
  601. right: 0;
  602. width: 380rpx;
  603. height: 260rpx;
  604. }
  605. .b-btn {
  606. position: absolute;
  607. right: 20rpx;
  608. top: 16rpx;
  609. width: 132rpx;
  610. height: 40rpx;
  611. text-align: center;
  612. line-height: 40rpx;
  613. font-size: 22rpx;
  614. color: #36343c;
  615. border-radius: 20px;
  616. background: linear-gradient(left, #f9e6af, #ffd465);
  617. z-index: 1;
  618. }
  619. .tit {
  620. font-size: $font-base + 2rpx;
  621. color: #f7d680;
  622. margin-bottom: 28rpx;
  623. .iconfont {
  624. color: #f6e5a3;
  625. margin-right: 16rpx;
  626. }
  627. }
  628. .e-b {
  629. font-size: $font-sm;
  630. color: #d8cba9;
  631. margin-top: 10rpx;
  632. }
  633. }
  634. .cover-container {
  635. background: $page-color-base;
  636. margin-top: -150rpx;
  637. padding: 0 30rpx;
  638. position: relative;
  639. background: #f5f5f5;
  640. padding-bottom: 20rpx;
  641. .arc {
  642. position: absolute;
  643. left: 0;
  644. top: -34rpx;
  645. width: 100%;
  646. height: 36rpx;
  647. }
  648. }
  649. .tj-sction {
  650. @extend %section;
  651. .tj-item {
  652. @extend %flex-center;
  653. flex-direction: column;
  654. height: 140rpx;
  655. font-size: $font-sm;
  656. color: #75787d;
  657. }
  658. .num {
  659. font-size: $font-lg;
  660. color: $font-color-dark;
  661. margin-bottom: 8rpx;
  662. }
  663. }
  664. .item-box {
  665. border-radius: 10rpx;
  666. background-color: white;
  667. margin-top: 20rpx;
  668. .box-title {
  669. line-height: 1;
  670. padding: 30rpx;
  671. .title {
  672. font-size: $font-lg;
  673. font-weight: bold;
  674. }
  675. .link {
  676. font-size: $font-base - 2rpx;
  677. color: $font-color-light;
  678. }
  679. }
  680. .order-section {
  681. @extend %section;
  682. padding: 28rpx 0;
  683. .order-item {
  684. @extend %flex-center;
  685. width: 120rpx;
  686. height: 120rpx;
  687. border-radius: 10rpx;
  688. font-size: $font-sm;
  689. color: $font-color-dark;
  690. }
  691. .iconfont {
  692. font-size: 48rpx;
  693. margin-bottom: 18rpx;
  694. color: #fa436a;
  695. }
  696. .icon-shouhoutuikuan {
  697. font-size: 44rpx;
  698. }
  699. .icon {
  700. height: 50rpx;
  701. width: 48rpx;
  702. margin-bottom: 18rpx;
  703. background-size: 100%;
  704. background-repeat: no-repeat;
  705. background-position: center;
  706. .icon-img {
  707. width: 100%;
  708. height: 100%;
  709. }
  710. }
  711. }
  712. }
  713. .history-section {
  714. // padding: 30rpx 0 0;
  715. margin-top: 20rpx;
  716. background: #fff;
  717. border-radius: 10rpx;
  718. .sec-header {
  719. display: flex;
  720. align-items: center;
  721. font-size: $font-base;
  722. color: $font-color-dark;
  723. line-height: 40rpx;
  724. margin-left: 30rpx;
  725. padding-top: 30rpx;
  726. .iconfont {
  727. font-size: 44rpx;
  728. color: $color-red;
  729. margin-right: 16rpx;
  730. line-height: 40rpx;
  731. }
  732. }
  733. .h-list {
  734. white-space: nowrap;
  735. padding: 30rpx 30rpx 0;
  736. .h-list-image {
  737. display: inline-block;
  738. width: 160rpx;
  739. height: 160rpx;
  740. margin-right: 20rpx;
  741. border-radius: 10rpx;
  742. }
  743. }
  744. }
  745. .user-top {
  746. height:620rpx;
  747. position: relative;
  748. .user-top-bg {
  749. width: 750rpx;
  750. height: 660rpx;
  751. // width: 100%;
  752. // position: absolute;
  753. }
  754. .user-info {
  755. width: 750rpx;
  756. position: absolute;
  757. top: 66rpx;
  758. display: flex;
  759. flex-direction: column;
  760. justify-content: center;
  761. align-items: center;
  762. .avatar {
  763. position: relative;
  764. width: 134rpx;
  765. height: 134rpx;
  766. border-radius: 50%;
  767. .avatarimg {
  768. border-radius: 50%;
  769. width: 134rpx;
  770. height: 134rpx;
  771. }
  772. .real {
  773. position: absolute;
  774. bottom: 0;
  775. left: 10rpx;
  776. width: 120rpx;
  777. height: 34rpx;
  778. }
  779. }
  780. .name {
  781. margin-top: 20rpx;
  782. font-size: 32rpx;
  783. font-family: PingFang SC;
  784. font-weight: bold;
  785. color: #ffffff;
  786. }
  787. .phone {
  788. justify-content: start;
  789. margin-top: 13rpx;
  790. font-size: 30rpx;
  791. font-family: PingFang SC;
  792. font-weight: 500;
  793. color: #ffffff;
  794. .green {
  795. margin-left: 12rpx;
  796. position: relative;
  797. width: 100rpx;
  798. height: 40rpx;
  799. .green-bg {
  800. position: absolute;
  801. top: 0;
  802. left: 0;
  803. right: 0;
  804. width: 100%;
  805. height: 100%;
  806. }
  807. .green-title {
  808. line-height: 30rpx;
  809. text-align: center;
  810. position: relative;
  811. z-index: 10;
  812. font-size: 20rpx;
  813. font-family: PingFang SC;
  814. font-weight: 500;
  815. // color: #93794b;
  816. color: #fff;
  817. }
  818. }
  819. }
  820. .vip {
  821. margin-top: 20rpx;
  822. position: relative;
  823. width: 120rpx;
  824. height: 40rpx;
  825. .vip-bg {
  826. position: absolute;
  827. top: 0;
  828. left: 0;
  829. right: 0;
  830. width: 100%;
  831. height: 100%;
  832. }
  833. .vip-title {
  834. width: 120rpx;
  835. line-height: 40rpx;
  836. text-align: center;
  837. position: relative;
  838. z-index: 10;
  839. font-size: 20rpx;
  840. font-family: PingFang SC;
  841. font-weight: 500;
  842. color: #93794b;
  843. }
  844. }
  845. }
  846. .sy-box {
  847. position: absolute;
  848. bottom: 105rpx;
  849. height: 148rpx;
  850. width: 750rpx;
  851. .sy-item {
  852. flex-grow: 1;
  853. text-align: center;
  854. font-size: 28rpx;
  855. font-family: PingFang SC;
  856. font-weight: 500;
  857. color: #ffffff;
  858. .sy-item-val {}
  859. }
  860. .jg {
  861. width: 2rpx;
  862. height: 68rpx;
  863. background-color: #fff;
  864. }
  865. }
  866. }
  867. .qd-box {
  868. width: 690rpx;
  869. height: 210rpx;
  870. background: #ffffff;
  871. box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
  872. border-radius: 20rpx;
  873. margin: -105rpx auto 30rpx;
  874. position: relative;
  875. padding: 0 40rpx;
  876. font-size: 26rpx;
  877. font-family: PingFang SC;
  878. font-weight: 500;
  879. color: #666666;
  880. image {
  881. flex-shrink: 0;
  882. width: 65rpx;
  883. height: 68rpx;
  884. }
  885. .qd-info {
  886. flex-grow: 1;
  887. padding-left: 24rpx;
  888. line-height: 46rpx;
  889. }
  890. .qd-btn {
  891. width: 190rpx;
  892. height: 80rpx;
  893. line-height: 80rpx;
  894. border-radius: 20px;
  895. background: #dc262b;
  896. border-radius: 20rpx;
  897. text-align: center;
  898. font-size: 32rpx;
  899. font-family: PingFang SC;
  900. font-weight: 500;
  901. color: #ffffff;
  902. }
  903. .qded {
  904. background: #e8e8e8;
  905. color: #999999;
  906. }
  907. }
  908. .tool-box {
  909. padding-top: 30rpx;
  910. padding-bottom: 46rpx;
  911. width: 690rpx;
  912. background: #ffffff;
  913. box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
  914. border-radius: 20rpx;
  915. margin: 30rpx auto;
  916. flex-wrap: wrap;
  917. justify-content: flex-start;
  918. align-content: space-around;
  919. margin-top: -100rpx;
  920. z-index: 10;
  921. position: relative;
  922. .tool-item {
  923. // width: 20%;
  924. flex-grow: 1;
  925. height: 120rpx;
  926. flex-shrink: 0;
  927. flex-direction: column;
  928. align-content: space-between;
  929. justify-content: center;
  930. font-size: 28rpx;
  931. font-family: PingFang SC;
  932. font-weight: 500;
  933. color: #0c1732;
  934. .tool-item-img {
  935. width: 68rpx;
  936. height: 90rpx;
  937. position: relative;
  938. flex-shrink: 0;
  939. .tool-logo {
  940. position: absolute;
  941. width: 56rpx;
  942. height: 56rpx;
  943. top: 0;
  944. left: 0;
  945. bottom: 0;
  946. right: 0;
  947. margin: auto;
  948. }
  949. }
  950. .tool-item-name {
  951. display: inline-block;
  952. font-size: 26rpx;
  953. }
  954. }
  955. }
  956. .tool-list {
  957. width: 690rpx;
  958. margin: auto;
  959. background: transparent;
  960. .item{
  961. background: #ffffff;
  962. border-radius: 20rpx;
  963. box-shadow: 0px 0px 20rpx 0px rgba(50, 50, 52, 0.06);
  964. margin-bottom: 10rpx;
  965. }
  966. }
  967. .popup-box {
  968. width: 522rpx;
  969. height: 605rpx;
  970. background-color: #ffffff;
  971. border-radius: 20rpx;
  972. position: relative;
  973. .img {
  974. position: relative;
  975. top: -56rpx;
  976. left: 0;
  977. width: 522rpx;
  978. height: 132rpx;
  979. display: flex;
  980. justify-content: center;
  981. image {
  982. border-radius: 20rpx 20rpx 0 0;
  983. width: 450rpx;
  984. height: 132rpx;
  985. }
  986. }
  987. .mian {
  988. margin-top: -44rpx;
  989. display: flex;
  990. flex-direction: column;
  991. align-items: center;
  992. // padding: 32rpx 32rpx;
  993. background-color: #ffffff;
  994. border-radius: 0 0 20rpx 20rpx;
  995. text-align: center;
  996. .delivery {
  997. font-size: 40rpx;
  998. color: #333333;
  999. display: flex;
  1000. align-items: center;
  1001. flex-direction: column;
  1002. .title {}
  1003. image {
  1004. margin-top: 48rpx;
  1005. width: 172rpx;
  1006. height: 160rpx;
  1007. }
  1008. }
  1009. .nocancel {
  1010. font-size: 32rpx;
  1011. color: #333333;
  1012. margin-top: 14rpx;
  1013. }
  1014. .comfirm-box {
  1015. margin-top: 52rpx;
  1016. display: flex;
  1017. // margin-bottom: 32rpx;
  1018. // justify-content: space-around;
  1019. .cancel {
  1020. display: flex;
  1021. align-items: center;
  1022. justify-content: center;
  1023. width: 197rpx;
  1024. height: 74rpx;
  1025. border: 1px solid #dcc786;
  1026. border-radius: 38rpx;
  1027. font-size: 32rpx;
  1028. color: #605128;
  1029. }
  1030. .comfirm {
  1031. margin-left: 32rpx;
  1032. display: flex;
  1033. align-items: center;
  1034. justify-content: center;
  1035. width: 197rpx;
  1036. height: 74rpx;
  1037. background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
  1038. border-radius: 38px;
  1039. font-size: 32rpx;
  1040. color: #605128;
  1041. }
  1042. }
  1043. }
  1044. }
  1045. .popup {
  1046. width: 560rpx;
  1047. padding-bottom: 45rpx;
  1048. background-color: #ffffff;
  1049. border-radius: 15rpx;
  1050. text-align: center;
  1051. line-height: 1;
  1052. .popup-dox {
  1053. position: relative;
  1054. .popup-logo {
  1055. margin: -160rpx auto 0;
  1056. width: 400rpx;
  1057. height: 200rpx;
  1058. }
  1059. }
  1060. .popup-title {
  1061. margin-top: 85rpx;
  1062. font-size: 40rpx;
  1063. font-family: PingFang SC;
  1064. font-weight: bold;
  1065. color: #2a2a2a;
  1066. text {
  1067. font-size: 56rpx;
  1068. color: #e83f30;
  1069. }
  1070. }
  1071. .popup-tip {
  1072. margin-top: 20rpx;
  1073. font-size: 28rpx;
  1074. font-family: PingFang SC;
  1075. font-weight: 500;
  1076. color: #8c8c8c;
  1077. text {
  1078. color: #e83f30;
  1079. }
  1080. }
  1081. .popup-btn {
  1082. margin: 58rpx auto 0;
  1083. width: 270rpx;
  1084. height: 66rpx;
  1085. background: #f0c838;
  1086. border-radius: 34rpx;
  1087. text-align: center;
  1088. line-height: 66rpx;
  1089. font-size: 36rpx;
  1090. font-family: Source Han Sans CN;
  1091. font-weight: 500;
  1092. color: #ffffff;
  1093. }
  1094. }
  1095. .page-btm {
  1096. background-color: #f5f5f5;
  1097. font-size: 20rpx;
  1098. text-align: center;
  1099. color: #d6d6d8;
  1100. }
  1101. </style>