integral_order_details.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783
  1. <template>
  2. <view :style="viewColor">
  3. <view class='order-details'>
  4. <view class='header acea-row row-middle'>
  5. <view class='pictrue'>
  6. <image v-if="orderInfo.paid == 0" :src="domain+'/static/order_2.gif'"></image>
  7. <image v-else :src="domain+'/static/order_'+(orderInfo.status+1)+'.gif'"></image>
  8. </view>
  9. <view v-if="orderInfo.status == 0 && orderInfo.paid == 0" class='data'>
  10. <view class='state'>请在{{orderInfo.cancel_time}}前完成支付!</view>
  11. <view>{{orderInfo.add_time_y}}<text class='time'>{{orderInfo.create_time}}</text></view>
  12. </view>
  13. <view v-else class='data'>
  14. <view class='state'>
  15. <block v-if="orderInfo.status == 0 && orderInfo.paid == 1">待发货</block>
  16. <block v-if="orderInfo.status == 1">待收货</block>
  17. <block v-if="orderInfo.status == 3">已完成</block>
  18. </view>
  19. <view>{{orderInfo.pay_time}}</view>
  20. </view>
  21. </view>
  22. <view>
  23. <view class='address'>
  24. <view class='name'>{{orderInfo.real_name}}<text class='phone'>{{orderInfo.user_phone}}</text></view>
  25. <view>{{orderInfo.user_address}}</view>
  26. </view>
  27. <view class='line'>
  28. <image :src="`${domain}/static/images/line.jpg`"></image>
  29. </view>
  30. </view>
  31. <view class="orderGoods" :class="orderInfo.product_type == 0?'':'on'">
  32. <view class='total'>共{{orderInfo.total_num}}件商品</view>
  33. <view class='goodWrapper'>
  34. <view class='item acea-row row-between-wrapper' v-for="(item, index) in orderInfo.orderProduct" @click="jumpCon(item)">
  35. <view class='pictrue'>
  36. <image v-if="item.cart_info" :src='(item.cart_info.productArr && item.cart_info.productArr.image) || item.cart_info.product.image'></image>
  37. </view>
  38. <view class='text'>
  39. <view class='acea-row row-between-wrapper'>
  40. <view class='name line1'>{{item.cart_info.product.store_name}}</view>
  41. <view class='num'>x {{item.product_num}}</view>
  42. </view>
  43. <view class='attr line1'>{{item.cart_info.productAttr.sku || '默认'}}</view>
  44. <view class='money'>
  45. {{item.integral}}积分 <text v-if="item.product_price > 0">+{{item.product_price}}元</text>
  46. </view>
  47. </view>
  48. </view>
  49. </view>
  50. </view>
  51. <!-- 送货 -->
  52. <view class="wrapper" v-if="orderInfo.delivery_type == 2">
  53. <view class='item acea-row row-between'>
  54. <view>配送方式:</view>
  55. <view class='conter'>送货</view>
  56. </view>
  57. <view class='item acea-row row-between'>
  58. <view>配送员:</view>
  59. <view class='conter'>{{orderInfo.delivery_name}}</view>
  60. </view>
  61. <view class='item acea-row row-between'>
  62. <view>联系电话:</view>
  63. <view class='conter'>{{orderInfo.delivery_id}}</view>
  64. </view>
  65. </view>
  66. <view class='wrapper'>
  67. <view class='item acea-row row-between'>
  68. <view>订单编号:</view>
  69. <view class='conter acea-row row-middle row-right'>{{orderInfo.order_sn}}
  70. <!-- #ifndef H5 -->
  71. <text class='copy' @tap='copy'>复制</text>
  72. <!-- #endif -->
  73. <!-- #ifdef H5 -->
  74. <text class='copy copy-data' :data-clipboard-text="orderInfo.order_sn">复制</text>
  75. <!-- #endif -->
  76. </view>
  77. </view>
  78. <view class='item acea-row row-between'>
  79. <view>下单时间:</view>
  80. <view class='conter'>{{orderInfo.create_time}}</view>
  81. </view>
  82. <view class='item acea-row row-between'>
  83. <view>支付状态:</view>
  84. <view class='conter'>{{orderInfo.paid == 1 ? '已支付' : '未支付'}}</view>
  85. </view>
  86. <view class='item acea-row row-between'>
  87. <view>支付积分:</view>
  88. <view class='conter'>{{orderInfo.integral}}积分</view>
  89. </view>
  90. <view class='item acea-row row-between'>
  91. <view>支付金额:</view>
  92. <view class='conter'>¥{{orderInfo.pay_price}}</view>
  93. </view>
  94. <view class='item acea-row row-between'>
  95. <view>备注信息:</view>
  96. <view class='conter'>{{orderInfo.mark}}</view>
  97. </view>
  98. <view class='item acea-row row-between' v-if="orderInfo.delivery_type === 'express'">
  99. <view>快递单号:</view>
  100. <view class='conter'>{{orderInfo.delivery_id}}</view>
  101. </view>
  102. <view class='item acea-row row-between' v-if="orderInfo.delivery_type === 'express'">
  103. <view>快递公司:</view>
  104. <view class='conter'>{{orderInfo.delivery_name}}</view>
  105. </view>
  106. <view class='item acea-row row-between' v-if="orderInfo.delivery_type === 'send'">
  107. <view>送货人电话:</view>
  108. <view class='conter'>{{orderInfo.delivery_id}}</view>
  109. </view>
  110. <view class='item acea-row row-between' v-if="orderInfo.delivery_type === 'send'">
  111. <view>配送人姓名:</view>
  112. <view class='conter'>{{orderInfo.delivery_name}}</view>
  113. </view>
  114. </view>
  115. <view style='height:120rpx;'></view>
  116. <view v-if="orderInfo.status==1 || orderInfo.status==3" class='footer acea-row row-right row-middle'>
  117. <navigator class='bnt cancel' hover-class='none'
  118. v-if="orderInfo.status==1 && orderInfo.delivery_id && orderInfo.delivery_type == 1"
  119. :url="'/pages/users/goods_logistics/index?orderId='+ orderInfo.order_id">查看物流
  120. </navigator>
  121. <view v-if="orderInfo.status == 3 && orderInfo.paid == 1" class="bnt cancel" @click="delOrder(orderInfo.order_id)">删除</view>
  122. <view class='bnt bg-colort' v-if="orderInfo.status==1 && orderInfo.paid==1" @click='confirmOrder'>确认收货</view>
  123. </view>
  124. <view v-else-if="orderInfo.status==0 && orderInfo.paid==0" class='footer acea-row row-right row-middle'>
  125. <view class='bnt bg-colort' @click='pay_open()'>立即付款</view>
  126. </view>
  127. </view>
  128. <payment :payMode='payMode' :pay_close="pay_close" :returnUrl="'/pages/points_mall/integral_order_details?order_id='+order_id" @onChangeFun='onChangeFun' :order_id="pay_order_id" :totalPrice='totalPrice'></payment>
  129. </view>
  130. </template>
  131. <script>
  132. // +----------------------------------------------------------------------
  133. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  134. // +----------------------------------------------------------------------
  135. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  136. // +----------------------------------------------------------------------
  137. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  138. // +----------------------------------------------------------------------
  139. // | Author: CRMEB Team <admin@crmeb.com>
  140. // +----------------------------------------------------------------------
  141. import { integralOrderDetail, integralOrderDelete, integralOrderTake } from '@/api/points_mall.js';
  142. import { openOrderRefundSubscribe } from '@/utils/SubscribeMessage.js';
  143. import { HTTP_REQUEST_URL } from '@/config/app';
  144. import { getUserInfo } from '@/api/user.js';
  145. import orderGoods from "@/components/orderGoods";
  146. import ClipboardJS from "@/plugin/clipboard/clipboard.js";
  147. import payment from '@/components/payment';
  148. import { configMap } from "@/utils";
  149. import { toLogin } from '@/libs/login.js';
  150. import { mapGetters } from "vuex";
  151. export default {
  152. components: {
  153. orderGoods,
  154. payment
  155. },
  156. data() {
  157. return {
  158. order_id: '',
  159. evaluate: 0,
  160. orderInfo: {
  161. }, //订单详情
  162. isGoodsReturn: false, //是否为退款订单
  163. status: {}, //订单底部按钮状态
  164. isClose: false,
  165. payMode: [{
  166. name: "微信支付",
  167. icon: "icon-weixinzhifu",
  168. value: 'wechat',
  169. title: '微信快捷支付',
  170. payStatus: 1
  171. },
  172. {
  173. name: "支付宝支付",
  174. icon: "icon-zhifubao",
  175. value: 'alipay',
  176. title: '支付宝支付',
  177. payStatus: this.$store.getters.globalData.alipay_open
  178. },
  179. {
  180. name: "余额支付",
  181. icon: "icon-yuezhifu",
  182. value: 'balance',
  183. title: '可用余额:',
  184. number: 0,
  185. payStatus: this.$store.getters.globalData.yue_pay_status
  186. },
  187. ],
  188. pay_close: false,
  189. pay_order_id: '',
  190. totalPrice: '0',
  191. routineContact: '0',
  192. domain: HTTP_REQUEST_URL,
  193. };
  194. },
  195. watch: {
  196. alipay_open(n){
  197. this.payMode[1].payStatus = n
  198. },
  199. yue_pay_status(n){
  200. this.payMode[2].payStatus = n
  201. }
  202. },
  203. computed: {
  204. ...mapGetters(['isLogin','viewColor']),
  205. ...configMap(['alipay_open', 'yue_pay_status']),
  206. },
  207. onLoad: function(options) {
  208. if (options.order_id) {
  209. this.$set(this, 'order_id', options.order_id);
  210. }
  211. },
  212. onShow() {
  213. uni.removeStorageSync('form_type_cart');
  214. if (this.isLogin) {
  215. this.getOrderInfo();
  216. this.getUserInfo();
  217. } else {
  218. toLogin();
  219. }
  220. },
  221. onHide: function() {
  222. this.isClose = true;
  223. },
  224. onReady: function() {
  225. // #ifdef H5
  226. this.$nextTick(function() {
  227. const clipboard = new ClipboardJS(".copy-data");
  228. clipboard.on("success", () => {
  229. this.$util.Tips({
  230. title: '复制成功'
  231. });
  232. });
  233. });
  234. // #endif
  235. },
  236. methods: {
  237. openSubcribe: function(e) {
  238. let page = e;
  239. uni.showLoading({
  240. title: '正在加载',
  241. })
  242. openOrderRefundSubscribe().then(res => {
  243. uni.hideLoading();
  244. uni.navigateTo({
  245. url: page,
  246. });
  247. }).catch(() => {
  248. uni.hideLoading();
  249. });
  250. },
  251. /**
  252. * 关闭支付组件
  253. *
  254. */
  255. payClose: function() {
  256. this.pay_close = false;
  257. },
  258. /**
  259. * 打开支付组件
  260. *
  261. */
  262. pay_open: function() {
  263. this.pay_close = true;
  264. this.pay_order_id = this.orderInfo.group_order_id.toString();
  265. this.totalPrice = this.orderInfo.pay_price;
  266. },
  267. /**
  268. * 支付成功回调
  269. *
  270. */
  271. pay_complete: function() {
  272. this.pay_close = false;
  273. this.pay_order_id = '';
  274. uni.redirectTo({
  275. url:'/pages/users/order_list/index?status=1'
  276. })
  277. },
  278. /**
  279. * 支付失败回调
  280. *
  281. */
  282. pay_fail: function() {
  283. this.pay_close = false;
  284. this.pay_order_id = '';
  285. },
  286. /**
  287. * 事件回调
  288. *
  289. */
  290. onChangeFun: function(e) {
  291. let opt = e;
  292. let action = opt.action || null;
  293. let value = opt.value != undefined ? opt.value : null;
  294. (action && this[action]) && this[action](value);
  295. },
  296. /**
  297. * 获取用户信息
  298. *
  299. */
  300. getUserInfo: function() {
  301. let that = this;
  302. getUserInfo().then(res => {
  303. that.payMode[2].number = res.data.now_money;
  304. })
  305. },
  306. /**
  307. * 获取订单详细信息
  308. *
  309. */
  310. getOrderInfo: function() {
  311. let that = this;
  312. uni.showLoading({
  313. title: "正在加载中"
  314. });
  315. integralOrderDetail(this.order_id).then(res => {
  316. uni.hideLoading();
  317. that.$set(that, 'orderInfo', res.data);
  318. that.orderInfo.status = res.data.status==2 ? 3 : res.data.status
  319. }).catch(err => {
  320. uni.hideLoading();
  321. that.$util.Tips({
  322. title: err
  323. }, '/pages/points_mall/exchange_record');
  324. });
  325. },
  326. /**
  327. *
  328. * 剪切订单号
  329. */
  330. // #ifndef H5
  331. copy: function() {
  332. let that = this;
  333. uni.setClipboardData({
  334. data: that.orderInfo.order_sn,
  335. success: function(res){
  336. }
  337. });
  338. },
  339. // #endif
  340. /**
  341. * 去商品详情
  342. */
  343. jumpCon: function(item) {
  344. uni.navigateTo({
  345. url: '/pages/points_mall/integral_goods_details?id=' + item.cart_info.product.product_id
  346. })
  347. },
  348. confirmOrder: function() {
  349. let that = this;
  350. uni.showModal({
  351. title: '确认收货',
  352. content: '是否确认收货?',
  353. success: function(res) {
  354. if (res.confirm) {
  355. integralOrderTake(that.order_id
  356. ).then(res => {
  357. return that.$util.Tips({
  358. title: '操作成功',
  359. icon: 'success'
  360. }, function() {
  361. that.getOrderInfo();
  362. });
  363. }).catch(err => {
  364. return that.$util.Tips({
  365. title: err
  366. });
  367. })
  368. }
  369. }
  370. })
  371. },
  372. /**
  373. * 删除订单
  374. */
  375. delOrder: function(order_id) {
  376. let that = this;
  377. uni.showModal({
  378. title: '提示',
  379. content: '确定删除该记录吗?',
  380. success: function (res) {
  381. if (res.confirm) {
  382. integralOrderDelete(order_id).then(res=>{
  383. return that.$util.Tips({
  384. title: '删除成功',
  385. icon: 'success'
  386. }, {
  387. tab: 3,
  388. url: 1
  389. });
  390. }).catch(err => {
  391. return that.$util.Tips({
  392. title: err
  393. });
  394. })
  395. } else if (res.cancel) {
  396. console.log('用户点击取消');
  397. }
  398. }
  399. });
  400. },
  401. }
  402. }
  403. </script>
  404. <style scoped lang="scss">
  405. .order-details .header {
  406. padding: 0 30rpx;
  407. height: 150rpx;
  408. background-image: linear-gradient(90deg, var(--view-bntColor21) 0%,var(--view-bntColor22) 100%);
  409. }
  410. .order-details .header .pictrue {
  411. width: 110rpx;
  412. height: 110rpx;
  413. }
  414. .order-details .header .pictrue image {
  415. width: 100%;
  416. height: 100%;
  417. }
  418. .order-details .header .data {
  419. color: rgba(255, 255, 255, 0.8);
  420. font-size: 24rpx;
  421. margin-left: 27rpx;
  422. }
  423. .order-details .header .data .state {
  424. font-size: 30rpx;
  425. font-weight: bold;
  426. color: #fff;
  427. margin-bottom: 7rpx;
  428. }
  429. .qs-btn {
  430. width: auto;
  431. height: 60rpx;
  432. text-align: center;
  433. line-height: 60rpx;
  434. border-radius: 50rpx;
  435. color: #fff;
  436. font-size: 27rpx;
  437. padding: 0 3%;
  438. color: #aaa;
  439. border: 1px solid #ddd;
  440. margin-right: 20rpx;
  441. }
  442. .goodCall {
  443. color: #e93323;
  444. text-align: center;
  445. width: 100%;
  446. height: 86rpx;
  447. padding: 0 30rpx;
  448. border-bottom: 1rpx solid #eee;
  449. font-size: 30rpx;
  450. line-height: 86rpx;
  451. background: #fff;
  452. .icon-kefu {
  453. font-size: 36rpx;
  454. margin-right: 15rpx;
  455. }
  456. /* #ifdef MP */
  457. button {
  458. display: flex;
  459. align-items: center;
  460. justify-content: center;
  461. height: 86rpx;
  462. font-size: 30rpx;
  463. color: #e93323;
  464. }
  465. /* #endif */
  466. }
  467. .order-details .header {
  468. padding: 0 30rpx;
  469. height: 150rpx;
  470. }
  471. .order-details .header.on {
  472. background-color: #666 !important;
  473. }
  474. .order-details .header .pictrue {
  475. width: 110rpx;
  476. height: 110rpx;
  477. }
  478. .order-details .header .pictrue image {
  479. width: 100%;
  480. height: 100%;
  481. }
  482. .order-details .header .data {
  483. color: rgba(255, 255, 255, 0.8);
  484. font-size: 24rpx;
  485. margin-left: 27rpx;
  486. }
  487. .order-details .header .data.on {
  488. margin-left: 0;
  489. }
  490. .order-details .header .data .state {
  491. font-size: 30rpx;
  492. font-weight: bold;
  493. color: #fff;
  494. margin-bottom: 7rpx;
  495. }
  496. .order-details .header .data .time {
  497. margin-left: 20rpx;
  498. }
  499. .order-details .nav {
  500. background-color: #fff;
  501. font-size: 26rpx;
  502. color: #282828;
  503. padding: 25rpx 0;
  504. }
  505. .order-details .nav .navCon {
  506. padding: 0 40rpx;
  507. }
  508. .order-details .nav .on {
  509. color: #e93323;
  510. }
  511. .order-details .nav .progress {
  512. padding: 0 65rpx;
  513. margin-top: 10rpx;
  514. }
  515. .order-details .nav .progress .line {
  516. width: 100rpx;
  517. height: 2rpx;
  518. background-color: #939390;
  519. }
  520. .order-details .nav .progress .iconfont {
  521. font-size: 25rpx;
  522. color: #939390;
  523. margin-top: -2rpx;
  524. }
  525. .order-details .address {
  526. font-size: 26rpx;
  527. color: #868686;
  528. background-color: #fff;
  529. padding: 35rpx 30rpx;
  530. }
  531. .order-details .address .name {
  532. font-size: 30rpx;
  533. color: #282828;
  534. margin-bottom: 15rpx;
  535. }
  536. .order-details .address .name .phone {
  537. margin-left: 40rpx;
  538. }
  539. .order-details .line {
  540. width: 100%;
  541. height: 3rpx;
  542. }
  543. .order-details .line image {
  544. width: 100%;
  545. height: 100%;
  546. display: block;
  547. }
  548. .order-details .wrapper {
  549. background-color: #fff;
  550. margin-top: 12rpx;
  551. padding: 30rpx;
  552. }
  553. .order-details .wrapper .item {
  554. font-size: 28rpx;
  555. color: #282828;
  556. }
  557. .order-details .wrapper .item~.item {
  558. margin-top: 20rpx;
  559. }
  560. .order-details .wrapper .item .conter {
  561. color: #868686;
  562. width: 460rpx;
  563. text-align: right;
  564. }
  565. .order-details .wrapper .item .conter .copy {
  566. font-size: 20rpx;
  567. color: #333;
  568. border-radius: 17rpx;
  569. border: 1rpx solid #666;
  570. display: flex;
  571. align-items: center;
  572. justify-content: center;
  573. width: 70rpx;
  574. height: 36rpx;
  575. margin-left: 24rpx;
  576. }
  577. .order-details .wrapper .actualPay {
  578. border-top: 1rpx solid #eee;
  579. margin-top: 30rpx;
  580. padding-top: 30rpx;
  581. }
  582. .order-details .wrapper .actualPay .money {
  583. font-weight: bold;
  584. font-size: 30rpx;
  585. }
  586. .order-details .footer {
  587. width: 100%;
  588. height: 100rpx;
  589. position: fixed;
  590. bottom: 0;
  591. left: 0;
  592. background-color: #fff;
  593. padding: 0 30rpx;
  594. box-sizing: border-box;
  595. }
  596. .order-details .footer .bnt {
  597. width: 150rpx;
  598. height: 60rpx;
  599. text-align: center;
  600. line-height: 60rpx;
  601. border-radius: 50rpx;
  602. color: #fff;
  603. font-size: 27rpx;
  604. }
  605. .order-details .footer .bnt.cancel {
  606. color: #aaa;
  607. border: 1rpx solid #ddd;
  608. }
  609. .order-details .footer .bnt~.bnt {
  610. margin-left: 18rpx;
  611. }
  612. .order-details .footer .bg-colort {
  613. background-color: var(--view-theme);
  614. }
  615. .order-details .writeOff {
  616. background-color: #fff;
  617. margin-top: 13rpx;
  618. padding-bottom: 30rpx;
  619. }
  620. .order-details .writeOff .title {
  621. font-size: 30rpx;
  622. color: #282828;
  623. height: 87rpx;
  624. border-bottom: 1px solid #f0f0f0;
  625. padding: 0 30rpx;
  626. line-height: 87rpx;
  627. }
  628. .order-details .writeOff .grayBg {
  629. background-color: #f2f5f7;
  630. width: 590rpx;
  631. height: 384rpx;
  632. border-radius: 20rpx 20rpx 0 0;
  633. margin: 50rpx auto 0 auto;
  634. padding-top: 55rpx;
  635. position: relative;
  636. }
  637. .order-details .writeOff .grayBg .written {
  638. position: absolute;
  639. top: 0;
  640. right: 0;
  641. width: 60rpx;
  642. height: 60rpx;
  643. }
  644. .order-details .writeOff .grayBg .written image {
  645. width: 100%;
  646. height: 100%;
  647. }
  648. .order-details .writeOff .grayBg .pictrue {
  649. width: 290rpx;
  650. height: 290rpx;
  651. margin: 0 auto;
  652. }
  653. .order-details .writeOff .grayBg .pictrue image {
  654. width: 100%;
  655. height: 100%;
  656. display: block;
  657. }
  658. .order-details .writeOff .gear {
  659. width: 590rpx;
  660. height: 30rpx;
  661. margin: 0 auto;
  662. }
  663. .order-details .writeOff .gear image {
  664. width: 100%;
  665. height: 100%;
  666. display: block;
  667. }
  668. .order-details .writeOff .num {
  669. background-color: #f0c34c;
  670. width: 590rpx;
  671. height: 84rpx;
  672. color: #282828;
  673. font-size: 48rpx;
  674. margin: 0 auto;
  675. border-radius: 0 0 20rpx 20rpx;
  676. text-align: center;
  677. padding-top: 4rpx;
  678. }
  679. .order-details .writeOff .rules {
  680. margin: 46rpx 30rpx 0 30rpx;
  681. border-top: 1px solid #f0f0f0;
  682. padding-top: 10rpx;
  683. }
  684. .order-details .writeOff .rules .item {
  685. margin-top: 20rpx;
  686. }
  687. .order-details .writeOff .rules .item .rulesTitle {
  688. font-size: 28rpx;
  689. color: #282828;
  690. }
  691. .order-details .writeOff .rules .item .rulesTitle .iconfont {
  692. font-size: 30rpx;
  693. color: #333;
  694. margin-right: 8rpx;
  695. margin-top: 5rpx;
  696. }
  697. .order-details .writeOff .rules .item .info {
  698. font-size: 28rpx;
  699. color: #999;
  700. margin-top: 7rpx;
  701. }
  702. .order-details .writeOff .rules .item .info .time {
  703. margin-left: 20rpx;
  704. }
  705. .order-details .map {
  706. height: 86rpx;
  707. font-size: 30rpx;
  708. color: #282828;
  709. line-height: 86rpx;
  710. border-bottom: 1px solid #f0f0f0;
  711. margin-top: 13rpx;
  712. background-color: #fff;
  713. padding: 0 30rpx;
  714. }
  715. .order-details .map .place {
  716. font-size: 26rpx;
  717. width: 176rpx;
  718. height: 50rpx;
  719. border-radius: 25rpx;
  720. line-height: 50rpx;
  721. text-align: center;
  722. }
  723. .order-details .map .place .iconfont {
  724. font-size: 27rpx;
  725. height: 27rpx;
  726. line-height: 27rpx;
  727. margin: 2rpx 3rpx 0 0;
  728. }
  729. .order-details .address .name .iconfont {
  730. font-size: 34rpx;
  731. margin-left: 10rpx;
  732. }
  733. .refund {
  734. padding: 0 30rpx 30rpx;
  735. margin-top: 24rpx;
  736. background-color: #fff;
  737. .title {
  738. display: flex;
  739. align-items: center;
  740. font-size: 30rpx;
  741. color: #333;
  742. height: 86rpx;
  743. border-bottom: 1px solid #f5f5f5;
  744. image {
  745. width: 32rpx;
  746. height: 32rpx;
  747. margin-right: 10rpx;
  748. }
  749. }
  750. .con {
  751. padding-top: 25rpx;
  752. font-size: 28rpx;
  753. color: #868686;
  754. }
  755. }
  756. .orderGoods {
  757. background-color: #fff;
  758. margin-top: 12rpx;
  759. &.on{
  760. margin-top: 0;
  761. }
  762. }
  763. .orderGoods .total {
  764. width: 100%;
  765. height: 86rpx;
  766. padding: 0 30rpx;
  767. border-bottom: 2rpx solid #f0f0f0;
  768. font-size: 30rpx;
  769. color: #282828;
  770. line-height: 86rpx;
  771. box-sizing: border-box;
  772. }
  773. .goodWrapper .item .text .money{
  774. color: var(--view-theme);
  775. }
  776. </style>