user.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999
  1. <template>
  2. <view class="container">
  3. <view class="title-box">
  4. <view class="title-img">
  5. <image :src="userInfo.avatar" mode=""></image>
  6. </view>
  7. <view class="title-tit">
  8. <view class="title-top">
  9. {{userInfo.nickname || '游客'}}
  10. </view>
  11. <view class="title-bottom">
  12. {{userInfo.phone}}
  13. </view>
  14. </view>
  15. </view>
  16. <!-- <view class="address-box">
  17. <view class="address-text">
  18. 区块链地址:{{name}}
  19. </view>
  20. <view class="fuzhi" @click="cope(name)">
  21. 复制
  22. </view>
  23. </view> -->
  24. <!-- <view class="btm" style="height: 44px;"></view> -->
  25. <view class="main-box">
  26. <view class="title flex" @click="navTo('/pages/order/order?state=0')">
  27. <view class="title-left">
  28. <!-- <image class="title-icon" src="../../static/user/user5.png" mode=""></image> -->
  29. <view class="title-font">我的订单</view>
  30. </view>
  31. <image class="title-right" src="../../static/user/back.png" mode=""></image>
  32. </view>
  33. <view class="main flex">
  34. <view class="oitem" @click="navTo('/pages/order/order?state=0')">
  35. <image class="oitem-image" src="../../static/user/dfk.png" mode=""></image>
  36. <view class="oitem-font">待付款</view>
  37. </view>
  38. <view class="oitem" @click="navTo('/pages/order/order?state=1')">
  39. <image class="oitem-image" src="../../static/user/dfh.png" mode=""></image>
  40. <view class="oitem-font">待发货</view>
  41. </view>
  42. <view class="oitem" @click="navTo('/pages/order/order?state=2')">
  43. <image class="oitem-image" src="../../static/user/dsh.png" mode=""></image>
  44. <view class="oitem-font">待收货</view>
  45. </view>
  46. <view class="oitem" @click="navTo('/pages/order/order?state=3')">
  47. <image class="oitem-image" src="../../static/user/dfk.png" mode=""></image>
  48. <view class="oitem-font">已完成</view>
  49. </view>
  50. </view>
  51. </view>
  52. <view class="manage-box">
  53. <view class="manage" @click="navTo('/pages/money/wallet')">
  54. <view class="flex-center">
  55. <image src="../../static/user/user06.png" mode="widthFix"></image>
  56. </view>
  57. <view class="manage-title">
  58. 钱包
  59. </view>
  60. </view>
  61. <view class="manage" @click="navTo('/pages/user/myvip')">
  62. <view class="flex-center">
  63. <image src="../../static/user/user12.png" mode="widthFix"></image>
  64. </view>
  65. <view class="manage-title">
  66. 加盟
  67. </view>
  68. </view>
  69. <view class="manage" @click="navTo('/pages/user/personal')">
  70. <view class="flex-center">
  71. <image src="../../static/user/user08.png" mode="widthFix"></image>
  72. </view>
  73. <view class="manage-title">
  74. 实名认证
  75. </view>
  76. </view>
  77. <view class="manage" @click="navTo('/pages/user/shareQrCode')">
  78. <view class="flex-center">
  79. <image src="../../static/user/user05.png" mode="widthFix"></image>
  80. </view>
  81. <view class="manage-title">
  82. 邀请好友
  83. </view>
  84. </view>
  85. <view class="manage" @click="kfOpen()">
  86. <view class="flex-center">
  87. <image src="../../static/user/kf.png" mode="widthFix"></image>
  88. </view>
  89. <view class="manage-title">
  90. 联系客服
  91. </view>
  92. </view>
  93. <view class="manage" @click="navTo('/pages/user/feedback')">
  94. <view class="flex-center">
  95. <image src="../../static/user/user09.png" mode="widthFix"></image>
  96. </view>
  97. <view class="manage-title">
  98. 提交意见
  99. </view>
  100. </view>
  101. <view class="manage" @click="navTo('/pages/set/set')">
  102. <view class="flex-center">
  103. <image src="../../static/user/user07.png" mode="widthFix"></image>
  104. </view>
  105. <view class="manage-title">
  106. 设置
  107. </view>
  108. </view>
  109. <!-- <view class="manage" @click="navTo('/pages/user/about')">
  110. <view class="flex-center">
  111. <image src="../../static/user/user09.png" mode="widthFix"></image>
  112. </view>
  113. <view class="manage-title">
  114. 关于我们
  115. </view>
  116. </view> -->
  117. </view>
  118. <view class="navbar">
  119. <view class="nav-item" v-for="(item,index) in navList" :class="{current:tabCurrentIndex===index}"
  120. @click="navGet(index)">
  121. {{item.text}}
  122. </view>
  123. </view>
  124. <view v-for="(navitem,key) in navList" v-if="key==tabCurrentIndex">
  125. <scroll-view scroll-y="true" class="uni-scroll-view-content ">
  126. <u-empty v-if="navitem.orderList && navitem.orderList.length == 0 && navitem.loaded"></u-empty>
  127. <view class="flex dy-list">
  128. <view class="box-content" v-for="item in navitem.orderList">
  129. <view class="img">
  130. <image :src="item.class_info.uri" mode=""></image>
  131. </view>
  132. <view class="content-title">
  133. <view class="title">
  134. <view class="text clamp">
  135. {{item.class_info.name}}
  136. </view>
  137. <view class="zm" v-if="item.hang!=null">
  138. 转卖中
  139. </view>
  140. </view>
  141. <view class="content-price">
  142. <view class="price">
  143. ¥{{item.price}}
  144. <!-- ¥{{item.class_info.name}} -->
  145. </view>
  146. <view class="" v-show="tabCurrentIndex!=1">
  147. <view class="button" @click="navPop(item)" v-if="item.hang==null ">
  148. 卖出
  149. </view>
  150. <view class="button" @click="qxMai(item.hang.id)" v-else>
  151. 取消卖出
  152. </view>
  153. </view>
  154. </view>
  155. </view>
  156. </view>
  157. </view>
  158. <uni-load-more :status="navitem.loadingType"
  159. v-if="!(navitem.orderList.length == 0 && navitem.loaded)"></uni-load-more>
  160. </scroll-view>
  161. </view>
  162. <!-- <swiper :current="tabCurrentIndex" duration="300" class="swiper-box" :style="{ height: height }"
  163. @change="changeTab">
  164. <swiper-item v-for="navitem in navList">
  165. <scroll-view scroll-y="true" class="uni-scroll-view-content ">
  166. <u-empty v-if="navitem.orderList && navitem.orderList.length == 0 && navitem.loaded"></u-empty>
  167. <view class="flex dy-list">
  168. <view class="box-content" v-for="item in navitem.orderList">
  169. <view class="img">
  170. <image :src="item.class_info.uri" mode=""></image>
  171. </view>
  172. <view class="content-title">
  173. <view class="title">
  174. <view class="text clamp">
  175. {{item.class_info.name}}
  176. </view>
  177. <view class="zm" v-if="item.hang!=null">
  178. 转卖中
  179. </view>
  180. </view>
  181. <view class="content-price">
  182. <view class="price">
  183. ¥{{item.price}}
  184. </view>
  185. <view class="" v-show="tabCurrentIndex!=1">
  186. <view class="button" @click="navPop(item)" v-if="item.hang==null ">
  187. 卖出
  188. </view>
  189. <view class="button" @click="qxMai(item.hang.id)" v-else>
  190. 取消卖出
  191. </view>
  192. </view>
  193. </view>
  194. </view>
  195. </view>
  196. </view>
  197. <uni-load-more :status="navitem.loadingType"
  198. v-if="!(navitem.orderList.length == 0 && navitem.loaded)"></uni-load-more>
  199. </scroll-view>
  200. </swiper-item>
  201. </swiper> -->
  202. <!-- 客服 -->
  203. <uni-popup ref="popupkf" type="center">
  204. <view class="popup-box">
  205. <view class="img">
  206. <image src="../../static/img/img009.png" mode=""></image>
  207. </view>
  208. <view class="mian">
  209. <view class="delivery">
  210. <view class="title">已经为您定制专属客服</view>
  211. <image src="../../static/img/img010.png" mode=""></image>
  212. </view>
  213. <view class="nocancel">客服VX:{{ text }}</view>
  214. <view class="comfirm-box">
  215. <view class="cancel" @click="kfClose()">取消</view>
  216. <view class="comfirm" @click="comfirm(text)">复制微信</view>
  217. </view>
  218. </view>
  219. </view>
  220. </uni-popup>
  221. <uni-popup ref="maipop" type="center">
  222. <view class="mai-box">
  223. <view class="mai-title">
  224. 卖出价格
  225. </view>
  226. <input type="number" v-model="money" placeholder="请输入">
  227. <view class="mai-button">
  228. <view class="button-left" @click="maiClose()">
  229. 取消
  230. </view>
  231. <view class="button-right" @click="buy()">
  232. 确定
  233. </view>
  234. </view>
  235. </view>
  236. </uni-popup>
  237. <uni-popup ref="qumaipop" type="center">
  238. <view class="mai-box">
  239. <view class="mai-title">
  240. 提示
  241. </view>
  242. <view class="mai-title">
  243. 您正在转卖这件藏品确认取消卖出?
  244. </view>
  245. <view class="mai-button">
  246. <view class="button-left" @click="maiClose()">
  247. 取消
  248. </view>
  249. <view class="button-right" @click="quxbuy(item)">
  250. 确定
  251. </view>
  252. </view>
  253. </view>
  254. </uni-popup>
  255. </view>
  256. </template>
  257. <script>
  258. import {
  259. sell,
  260. qxgd
  261. } from '@/api/order.js'
  262. import uEmpty from '@/uview-ui/components/u-empty/u-empty.vue'
  263. import {
  264. mapState,
  265. mapMutations
  266. } from 'vuex';
  267. import uniList from '@/components/uni-list/uni-list.vue';
  268. import uniListItem from '@/components/uni-list-item/uni-list-item.vue';
  269. import {
  270. userinfo,
  271. orderData,
  272. getUserInfo,
  273. getMyNft,
  274. myGdList
  275. } from '@/api/user.js';
  276. import {
  277. saveUrl,
  278. interceptor
  279. } from '@/utils/loginUtils.js';
  280. export default {
  281. components: {
  282. uniList,
  283. uniListItem,
  284. uEmpty
  285. },
  286. data() {
  287. return {
  288. id: 0,
  289. item: '', //当前选中要操作卖出商品的数据
  290. money: '', //卖出价格
  291. // 头部图高度
  292. tabCurrentIndex: 0,
  293. navList: [{
  294. state: 0,
  295. text: '我拥有的',
  296. loadingType: 'more',
  297. orderList: [],
  298. page: 1,
  299. limit: 10,
  300. loaded: false
  301. }, {
  302. state: 1,
  303. text: '我卖出的',
  304. loadingType: 'more',
  305. orderList: [],
  306. page: 1,
  307. limit: 10,
  308. loaded: false
  309. }],
  310. };
  311. },
  312. onShow() {
  313. if (this.hasLogin) {
  314. this.loadBaseData();
  315. // 返回页面刷新我的挂单数据
  316. this.navList = [{
  317. state: 0,
  318. text: '我拥有的',
  319. loadingType: 'more',
  320. orderList: [],
  321. page: 1,
  322. limit: 10,
  323. loaded: false
  324. }, {
  325. state: 1,
  326. text: '我卖出的',
  327. loadingType: 'more',
  328. orderList: [],
  329. page: 1,
  330. limit: 10,
  331. loaded: false
  332. }]
  333. // 获取我的挂单
  334. this.getMyNft()
  335. } else {
  336. this.loadBaseData();
  337. }
  338. },
  339. onReady() {
  340. },
  341. computed: {
  342. ...mapState('user', ['userInfo', 'orderInfo', 'hasLogin'])
  343. },
  344. methods: {
  345. ...mapMutations('user', ['setUserInfo', 'setOrderInfo']),
  346. loadBaseData() {
  347. getUserInfo({})
  348. .then(({
  349. data
  350. }) => {
  351. this.setUserInfo(data);
  352. // 获取用户数据完毕后在获取订单数据防止多次跳转到登录页
  353. orderData({})
  354. .then(({
  355. data
  356. }) => {
  357. this.setOrderInfo(data);
  358. })
  359. .catch(e => {
  360. this.setOrderInfo({
  361. complete_count: 0, //完成
  362. received_count: 0, //待收货
  363. unshipped_count: 0, //待发货
  364. order_count: 0, //订单总数
  365. unpaid_count: 0 //待付款
  366. });
  367. });
  368. })
  369. .catch(e => {
  370. console.log(e);
  371. });
  372. },
  373. navPop(item) {
  374. this.item = item
  375. this.$refs.maipop.open()
  376. },
  377. buy() {
  378. let obj = this
  379. console.log(obj.item, 'item');
  380. if (obj.price == '') {
  381. obj.$api.msg('请输入价格')
  382. return
  383. }
  384. sell({
  385. price: obj.money
  386. }, obj.item.id).then(res => {
  387. console.log(res, 'res');
  388. uni.showModal({
  389. title: '成功',
  390. content: '挂售成功!',
  391. showCancel: false,
  392. });
  393. obj.$refs.maipop.close()
  394. })
  395. },
  396. //取消卖出弹窗
  397. qxMai(item) {
  398. this.$refs.qumaipop.open()
  399. console.log(item, 'id');
  400. this.id = item
  401. },
  402. // 取消挂单
  403. quxbuy() {
  404. qxgd({}, this.id).then(res => {
  405. console.log(res, "取消挂单");
  406. this.$refs.qumaipop.close()
  407. uni.showModal({
  408. title: '成功',
  409. content: '已成功取消挂单',
  410. showCancel: false,
  411. });
  412. })
  413. },
  414. navGet(index) {
  415. this.tabCurrentIndex = index
  416. this.getMyNft('tab')
  417. },
  418. //swiper切换
  419. changeTab(e) {
  420. this.tabCurrentIndex = e.target.current
  421. this.getMyNft('tab')
  422. },
  423. async loadData(sourse) {},
  424. navTo(url) {
  425. if (url == '') {
  426. this.$api.msg('敬请期待');
  427. }
  428. //判断是否登录了,没有等去,请去登录
  429. if (!this.hasLogin) {
  430. //保存地址
  431. saveUrl();
  432. // 登录拦截
  433. interceptor();
  434. // uni.showModal({
  435. // title:'去登录'
  436. // })
  437. // uni.navigateTo({
  438. // url,
  439. // fail() {
  440. // uni.switchTab({
  441. // url
  442. // });
  443. // }
  444. // });
  445. } else {
  446. uni.navigateTo({
  447. url,
  448. fail() {
  449. uni.switchTab({
  450. url
  451. });
  452. }
  453. });
  454. }
  455. },
  456. kfOpen() {
  457. this.$refs.popupkf.open();
  458. },
  459. kfClose() {
  460. this.$refs.popupkf.close();
  461. },
  462. maiClose() {
  463. this.$refs.maipop.close();
  464. this.$refs.qumaipop.close();
  465. },
  466. getMyNft(type) {
  467. let obj = this
  468. let index = obj.tabCurrentIndex
  469. let navitem = obj.navList[index]
  470. if (type == 'tab' && navitem.loaded) {
  471. return
  472. }
  473. if (navitem.loadingType == 'loading' || navitem.loadingType == 'noMore') {
  474. return
  475. }
  476. navitem.loadingType = 'loading'
  477. if (index == 0) {
  478. getMyNft({
  479. page: navitem.page,
  480. limit: navitem.limit
  481. }).then(res => {
  482. // console.log(res, 'res');
  483. navitem.orderList = navitem.orderList.concat(res.data.list)
  484. navitem.page++
  485. if (res.data.list.length == navitem.limit) {
  486. navitem.loadingType = 'more'
  487. } else {
  488. navitem.loadingType = 'noMore'
  489. }
  490. obj.$set(navitem, 'loaded', true)
  491. })
  492. }
  493. if (index == 1) {
  494. console.log('get22')
  495. myGdList({
  496. page: navitem.page,
  497. limit: navitem.limit,
  498. status: 2,
  499. }).then(res => {
  500. navitem.orderList = navitem.orderList.concat(res.data.list)
  501. console.log(navitem.orderList, 'navitem.orderList');
  502. navitem.page++
  503. if (res.data.list.length == navitem.limit) {
  504. navitem.loadingType = 'more'
  505. } else {
  506. navitem.loadingType = 'noMore'
  507. }
  508. obj.$set(navitem, 'loaded', true)
  509. })
  510. }
  511. }
  512. }
  513. };
  514. </script>
  515. <style lang="scss">
  516. page,
  517. .container {
  518. width: 750rpx;
  519. height: 100%;
  520. background: #111111;
  521. }
  522. .mai-box {
  523. display: flex;
  524. flex-direction: column;
  525. align-items: center;
  526. justify-content: space-around;
  527. width: 582rpx;
  528. height: 377rpx;
  529. background: #FFFFFF;
  530. border-radius: 20rpx;
  531. .mai-title {
  532. margin: 0 60rpx;
  533. font-size: 42rpx;
  534. font-weight: 500;
  535. color: #0C1732;
  536. line-height: 56rpx;
  537. }
  538. input {
  539. width: 494rpx;
  540. height: 90rpx;
  541. font-size: 40rpx;
  542. background: rgba(199, 212, 255, 0.3500);
  543. border-radius: 10rpx;
  544. text-align: center;
  545. }
  546. .mai-button {
  547. display: flex;
  548. width: 90%;
  549. justify-content: space-between;
  550. .button-left {
  551. text-align: center;
  552. width: 248rpx;
  553. height: 78rpx;
  554. border: 2rpx solid #A581FF;
  555. border-radius: 10rpx;
  556. font-size: 34rpx;
  557. font-weight: 500;
  558. color: #A581FF;
  559. line-height: 78rpx;
  560. }
  561. .button-right {
  562. text-align: center;
  563. width: 248rpx;
  564. height: 78rpx;
  565. background: linear-gradient(270deg, #6E8DF7, #9977F6);
  566. border-radius: 10rpx;
  567. font-size: 34rpx;
  568. font-weight: 500;
  569. color: #FFFFFF;
  570. line-height: 78rpx;
  571. }
  572. }
  573. }
  574. .title-box {
  575. margin: 80rpx 0 40rpx 0;
  576. display: flex;
  577. align-items: center;
  578. .title-img {
  579. width: 100rpx;
  580. height: 100rpx;
  581. border-radius: 50%;
  582. overflow: hidden;
  583. image {
  584. width: 100%;
  585. height: 100%;
  586. }
  587. }
  588. .title-tit {
  589. margin-left: 30rpx;
  590. .title-top {
  591. font-size: 36rpx;
  592. font-weight: 500;
  593. color: #FFFFFF;
  594. line-height: 50rpx;
  595. }
  596. .title-bottom {
  597. font-size: 22rpx;
  598. font-weight: 500;
  599. color: #FFFFFF;
  600. line-height: 40rpx;
  601. }
  602. }
  603. }
  604. .address-box {
  605. display: flex;
  606. justify-content: space-between;
  607. align-items: center;
  608. margin: 0 30rpx;
  609. height: 60rpx;
  610. background: #181818;
  611. border: 2rpx solid #7D5FA4;
  612. border-radius: 8rpx;
  613. font-size: 20rpx;
  614. font-weight: 500;
  615. line-height: 61rpx;
  616. color: #5C5EE5;
  617. .address-text {
  618. margin: 0 25rpx;
  619. width: 520rpx;
  620. white-space: nowrap;
  621. text-overflow: ellipsis;
  622. overflow: hidden;
  623. }
  624. .fuzhi {
  625. width: 86rpx;
  626. height: 40rpx;
  627. border-radius: 10rpx;
  628. border: 2px solid #7D5FA4;
  629. text-align: center;
  630. line-height: 32rpx;
  631. margin-right: 40rpx;
  632. }
  633. }
  634. .manage-box {
  635. margin: 30rpx auto;
  636. width: 690rpx;
  637. display: flex;
  638. justify-content: left;
  639. background: #181818;
  640. border-radius: 30rpx;
  641. flex-wrap: wrap;
  642. .manage {
  643. display: flex;
  644. flex-direction: column;
  645. align-items: center;
  646. margin: 30rpx 0 20rpx;
  647. width: 25%;
  648. .flex-center {
  649. min-height: 60rpx;
  650. }
  651. image {
  652. width: 42rpx;
  653. margin-bottom: 15rpx;
  654. }
  655. .manage-title {
  656. font-size: 24rpx;
  657. font-weight: 500;
  658. color: #FFFFFF;
  659. line-height: 42rpx;
  660. }
  661. }
  662. }
  663. .vheigh {
  664. height: var(--status-bar-height);
  665. }
  666. .navbar {
  667. margin-top: 30rpx;
  668. display: flex;
  669. justify-content: space-around;
  670. font-size: 24rpx;
  671. font-family: PingFang SC;
  672. font-weight: 500;
  673. color: #999999;
  674. line-height: 42rpx;
  675. .current {
  676. color: #5C5EE5;
  677. }
  678. }
  679. .uni-scroll-view-content {
  680. height: 100%;
  681. flex-wrap: wrap;
  682. }
  683. .box {
  684. display: flex;
  685. // justify-content: space-around;
  686. flex-wrap: wrap;
  687. width: 750rpx
  688. }
  689. .box-content {
  690. width: 330rpx;
  691. height: 415rpx;
  692. // margin:0 15rpx 50rpx ;
  693. .img {
  694. width: 330rpx;
  695. height: 280rpx;
  696. image {
  697. width: 100%;
  698. height: 100%;
  699. }
  700. }
  701. .content-title {
  702. z-index: 99;
  703. display: flex;
  704. margin-top: -10rpx;
  705. padding: 20rpx;
  706. flex-direction: column;
  707. border-bottom-left-radius: 10rpx;
  708. border-bottom-right-radius: 10rpx;
  709. border: 2rpx solid #533A6A;
  710. // box-shadow: 0px 0px 20rpx 0px rgba(79,59,103,0.0600);
  711. .title {
  712. display: flex;
  713. align-items: center;
  714. // font-size: 39rpx;
  715. // font-weight: bold;
  716. // color: #FFFFFF;
  717. // margin-bottom: 20rpx;
  718. }
  719. .zm {
  720. flex-shrink: 0;
  721. // margin: 10rpx;
  722. // width: 63rpx;
  723. display: inline-block;
  724. // padding: 2rpx;
  725. // height: 30rpx;
  726. // border: 1rpx solid #5C5EE5;
  727. margin-left: 10rpx;
  728. border-radius: 5rpx;
  729. font-size: 16rpx;
  730. font-weight: 500;
  731. color: #5C5EE5;
  732. // line-height: 30rpx;
  733. text-align: center;
  734. }
  735. .text {
  736. color: #FFFFFF;
  737. font-size: 24rpx;
  738. margin: 10rpx 0;
  739. }
  740. }
  741. .content-price {
  742. display: flex;
  743. justify-content: space-between;
  744. .price {
  745. font-size: 30rpx;
  746. font-family: PingFang SC;
  747. font-weight: 500;
  748. color: #FFFFFF;
  749. }
  750. .button {
  751. width: 104rpx;
  752. height: 35rpx;
  753. background: linear-gradient(270deg, #6E8DF7, #9977F6);
  754. border-radius: 18rpx;
  755. font-size: 20rpx;
  756. font-weight: 500;
  757. color: #FFFFFF;
  758. line-height: 35rpx;
  759. text-align: center;
  760. }
  761. }
  762. }
  763. .popup-box {
  764. width: 522rpx;
  765. height: 605rpx;
  766. background-color: #ffffff;
  767. border-radius: 20rpx;
  768. position: relative;
  769. .img {
  770. position: relative;
  771. top: -56rpx;
  772. left: 0;
  773. width: 522rpx;
  774. height: 132rpx;
  775. display: flex;
  776. justify-content: center;
  777. image {
  778. border-radius: 20rpx 20rpx 0 0;
  779. width: 450rpx;
  780. height: 132rpx;
  781. }
  782. }
  783. .mian {
  784. margin-top: -44rpx;
  785. display: flex;
  786. flex-direction: column;
  787. align-items: center;
  788. // padding: 32rpx 32rpx;
  789. background-color: #ffffff;
  790. border-radius: 0 0 20rpx 20rpx;
  791. text-align: center;
  792. .delivery {
  793. font-size: 40rpx;
  794. color: #333333;
  795. display: flex;
  796. align-items: center;
  797. flex-direction: column;
  798. .title {}
  799. image {
  800. margin-top: 48rpx;
  801. width: 172rpx;
  802. height: 160rpx;
  803. }
  804. }
  805. .nocancel {
  806. font-size: 32rpx;
  807. color: #333333;
  808. margin-top: 14rpx;
  809. }
  810. .comfirm-box {
  811. margin-top: 52rpx;
  812. display: flex;
  813. // margin-bottom: 32rpx;
  814. // justify-content: space-around;
  815. .cancel {
  816. display: flex;
  817. align-items: center;
  818. justify-content: center;
  819. width: 197rpx;
  820. height: 74rpx;
  821. border: 1px solid #dcc786;
  822. border-radius: 38rpx;
  823. font-size: 32rpx;
  824. color: #605128;
  825. }
  826. .comfirm {
  827. margin-left: 32rpx;
  828. display: flex;
  829. align-items: center;
  830. justify-content: center;
  831. width: 197rpx;
  832. height: 74rpx;
  833. background: linear-gradient(-90deg, #d1ba77 0%, #f7e8ad 100%);
  834. border-radius: 38px;
  835. font-size: 32rpx;
  836. color: #605128;
  837. }
  838. }
  839. }
  840. }
  841. .main-box {
  842. margin: 30rpx auto;
  843. width: 690rpx;
  844. background: #181818;
  845. // box-shadow: 0px 4rpx 14rpx 0px rgba(229, 229, 229, 0.46);
  846. border-radius: 20rpx;
  847. .title {
  848. display: flex;
  849. justify-content: space-between;
  850. align-items: center;
  851. padding: 24rpx;
  852. border-bottom: 1px solid #2f2f2f;
  853. .title-left {
  854. display: flex;
  855. align-items: center;
  856. .title-icon {
  857. width: 32rpx;
  858. height: 32rpx;
  859. }
  860. .title-font {
  861. margin-left: 20rpx;
  862. font-size: 28rpx;
  863. font-family: PingFang SC;
  864. font-weight: bold;
  865. color: #fff;
  866. }
  867. }
  868. .title-right {
  869. width: 14rpx;
  870. height: 24rpx;
  871. }
  872. }
  873. .main {
  874. padding: 50rpx 0 30rpx;
  875. .jg {
  876. width: 1px;
  877. height: 100rpx;
  878. background: #EEEEEE;
  879. }
  880. .item {
  881. padding-bottom: 20rpx;
  882. width: 25%;
  883. display: flex;
  884. flex-direction: column;
  885. align-items: center;
  886. .item-num {
  887. font-size: 36rpx;
  888. font-family: PingFang SC;
  889. font-weight: bold;
  890. color: #333333;
  891. }
  892. .item-font {
  893. margin-top: 18rpx;
  894. font-size: 22rpx;
  895. font-family: PingFang SC;
  896. font-weight: 500;
  897. color: #666666;
  898. }
  899. }
  900. .oitem {
  901. width: 25%;
  902. display: flex;
  903. flex-direction: column;
  904. align-items: center;
  905. .oitem-image {
  906. height: 50rpx;
  907. width: 48rpx;
  908. }
  909. .oitem-font {
  910. margin-top: 20rpx;
  911. font-size: 24rpx;
  912. font-family: PingFang SC;
  913. font-weight: 500;
  914. color: #fff;
  915. }
  916. }
  917. }
  918. }
  919. .dy-list {
  920. flex-wrap: wrap;
  921. padding: 30rpx;
  922. }
  923. </style>