serve.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788
  1. <template>
  2. <view :style="colorStyle">
  3. <view class="my-order">
  4. <view class="nav acea-row row-around" style="position: fixed;top: 0;">
  5. <view class="item" :class="orderStatus === 0 ? 'on' : ''" @click="statusClick(0)">
  6. <view>待服务</view>
  7. <!-- <view class="num">{{ orderData.order_count || 0 }}</view> -->
  8. </view>
  9. <!-- <view class="item" :class="orderStatus === 1 ? 'on' : ''" @click="statusClick(1)">
  10. <view>进行中</view>
  11. <view class="num">{{ orderData.unpaid_count || 0 }}</view>
  12. </view> -->
  13. <view class="item" :class="orderStatus == 2 ? 'on' : ''" @click="statusClick(2)">
  14. <view>已完成</view>
  15. <!-- <view class="num">{{ orderData.unshipped_count || 0 }}</view> -->
  16. </view>
  17. <view class="item" :class="orderStatus == -1 ? 'on' : ''" @click="statusClick(-1)">
  18. <view>退款</view>
  19. <!-- <view class="num ">{{ orderData.received_count || 0 }}</view> -->
  20. </view>
  21. </view>
  22. <view class="nav">
  23. </view>
  24. <Loading :loaded="loaded" :loading="loading"></Loading>
  25. <view class="list">
  26. <view class="item" v-for="(item, index) in orderList" :key="index">
  27. <view @click="goOrderDetails(item.order_id)">
  28. <view class="title acea-row row-between-wrapper">
  29. <view class="acea-row row-middle">
  30. 订单ID:{{item.order_id}}
  31. </view>
  32. <!-- <view v-if="item._status._type == 9" class="font-color">线下付款,未支付</view>
  33. <view v-else-if="item._status._type == 0" class="font-color">待付款</view>
  34. <view v-else-if="item._status._type == 1 && (item.shipping_type == 1 || item.shipping_type == 3)" class="font-color">待发货
  35. <text v-if="item.refund.length">{{item.is_all_refund?',退款中':',部分退款中'}}</text>
  36. </view>
  37. <view v-else-if="item._status._type == 1 && (item.shipping_type == 2 || item.shipping_type == 4)" class="font-color">
  38. {{item.shipping_type == 2?'待核销':'待收货'}}
  39. <text v-if="item.refund.length">{{item.is_all_refund?',退款中':',部分退款中'}}</text>
  40. </view>
  41. <view v-else-if="item._status._type == 2" class="font-color">待收货
  42. <text v-if="item.refund.length">{{item.is_all_refund?',退款中':',部分退款中'}}</text>
  43. </view>
  44. <view v-else-if="item._status._type == 3" class="font-color">待评价
  45. <text v-if="item.refund.length">{{item.is_all_refund?',退款中':',部分退款中'}}</text>
  46. </view>
  47. <view v-else-if="item._status._type == 4" class="font-color">已完成
  48. <text v-if="item.refund.length">{{item.is_all_refund?',退款中':',部分退款中'}}</text>
  49. </view>
  50. <view v-else-if="item._status._type == -2" class="font-color">已退款
  51. </view>
  52. <view v-else-if="item._status._type == 5 && item.status == 0" class="font-color">待核销
  53. <text v-if="item.refund.length">{{item.is_all_refund?',退款中':',部分退款中'}}</text>
  54. </view>
  55. <view v-else-if="item._status._type == 5 && item.status == 5" class="font-color">部分核销
  56. <text v-if="item.refund.length">{{item.is_all_refund?',退款中':',部分退款中'}}</text>
  57. </view>
  58. <view v-else-if="item._status._type == -1" class="font-color">申请退款
  59. </view> -->
  60. </view>
  61. <view class="item-info acea-row row-between row-top" v-for="(items, index) in item.info"
  62. :key="index">
  63. <view class="pictrue">
  64. <image :src="items.slider_image"></image>
  65. </view>
  66. <view class="text acea-row row-between">
  67. <view class="name line2">{{ items.store_name }}</view>
  68. <view class="money">
  69. <view>¥{{ items.pay_price }}</view>
  70. <view>x1</view>
  71. <!-- <view v-if="items.refund_num && item._status._type != -2" class="return">{{ items.refund_num }}件退款中</view> -->
  72. </view>
  73. </view>
  74. </view>
  75. <view class="totalPrice showstore">
  76. <view class="">
  77. 下单时间: {{ showTime(item.add_time) }}
  78. </view>
  79. <view class="">
  80. 预约时间: {{ showTime(item.reservation_time) }}
  81. </view>
  82. </view>
  83. <view class="address acea-row row-between-wrapper" style="padding: 10rpx 30rpx;">
  84. <view class="addressCon">
  85. <view class='name acea-row row-middle'>
  86. <view class="nameCon line1 on">{{item.store.name || ''}}</view>
  87. </view>
  88. <view class="line1">
  89. {{item.store.detailed_address || ''}}
  90. </view>
  91. </view>
  92. <view class="icon acea-row row-middle">
  93. <view class="iconfont icon-dianhua" @click.stop="call(item.store.phone)"></view>
  94. <view class="iconfont icon-dingwei2" @click.stop="showMaoLocation(item.store)"></view>
  95. </view>
  96. </view>
  97. <view class="totalPrice">
  98. 共{{ item.info.length || 0 }}件商品,总金额
  99. <text class="money">¥{{ showTolPrice(item.info) }}</text>
  100. </view>
  101. </view>
  102. <view class="bottom acea-row row-right row-middle" v-if="item.status != 2">
  103. <!-- <view class="icon acea-row row-middle" style="justify-self: flex-start;">
  104. <view class="iconfont icon-dianhua" @click.stop="call(item.store.phone)"></view>
  105. <view class="iconfont icon-dingwei2" @click.stop="showMaoLocation(tem.store)"></view>
  106. </view> -->
  107. <view class="bnt cancelBnt" v-if="item.status == 0 || item.status==1"
  108. @click="cancelOrder(index, item.id)">取消订单</view>
  109. <view class="bnt cancelBnt" v-if="item.status == -1 && (item.refund_status == 1 || item.refund_status == 2 || item.refund_status == 3)">退款审核中</view>
  110. <!-- <view class="bnt bg-color" v-if="item._status._type == 0"
  111. @click="goPay(item.pay_price, item.order_id)">立即付款</view> -->
  112. <!-- <view class="bnt bg-color" v-else-if="item._status._type == 3"
  113. @click="goOrderDetails(item.order_id)">去评价</view> -->
  114. <!-- <view class="bnt bg-color"
  115. v-else-if="item.seckill_id < 1 && item.bargain_id < 1 && item.combination_id < 1 && item._status._type == 4"
  116. @click="goOrderDetails(item.order_id)">
  117. 再次购买
  118. </view> -->
  119. <!-- <view class="bnt cancelBnt" v-if="item._status._type == 4"
  120. @click="delOrder(item.order_id, index)">删除订单</view> -->
  121. <!-- <view class="bnt bg-color" @click="goOrderDetails(item.order_id)">查看详情</view> -->
  122. </view>
  123. </view>
  124. </view>
  125. <view class="loadingicon acea-row row-center-wrapper" v-if="orderList.length > 0">
  126. <text class="loading iconfont icon-jiazai" :hidden="loading == false"></text>
  127. {{ loadTitle }}
  128. </view>
  129. <view v-if="orderList.length == 0 && !loading">
  130. <emptyPage title="暂无订单信息~"></emptyPage>
  131. </view>
  132. </view>
  133. <home v-if="navigation"></home>
  134. <payment :payMode="payMode" :pay_close="pay_close" @onChangeFun="onChangeFun" :order_id="pay_order_id"
  135. :totalPrice="totalPrice"></payment>
  136. <!-- #ifdef MP -->
  137. <!-- <authorize v-if="isShowAuth" @authColse="authColse" @onLoadFun="onLoadFun"></authorize> -->
  138. <!-- #endif -->
  139. </view>
  140. </template>
  141. <script>
  142. import {
  143. getOrderList,
  144. orderData,
  145. orderCancel,
  146. orderDel,
  147. orderPay,
  148. SqRefund
  149. } from '@/api/order.js';
  150. import {
  151. getUserInfo,
  152. getServeOrder
  153. } from '@/api/user.js';
  154. import {
  155. openOrderSubscribe
  156. } from '@/utils/SubscribeMessage.js';
  157. import home from '@/components/home';
  158. import payment from '@/components/payment';
  159. import {
  160. toLogin
  161. } from '@/libs/login.js';
  162. import {
  163. mapGetters
  164. } from 'vuex';
  165. import emptyPage from '@/components/emptyPage.vue';
  166. import colors from '@/mixins/color.js';
  167. import Loading from '@/components/Loading/index.vue'
  168. export default {
  169. components: {
  170. Loading,
  171. payment,
  172. home,
  173. emptyPage
  174. },
  175. mixins: [colors],
  176. data() {
  177. return {
  178. itemList: ['不想买了', '信息填错了', '买错商品了', '卖家缺货'],
  179. loaded: false,
  180. loading: false, //是否加载中
  181. loadend: false, //是否加载完毕
  182. loadTitle: '加载更多', //提示语
  183. orderList: [], //订单数组
  184. orderData: {}, //订单详细统计
  185. orderStatus: 0, //订单状态
  186. page: 1,
  187. limit: 20,
  188. payMode: [{
  189. name: '微信支付',
  190. icon: 'icon-weixinzhifu',
  191. value: 'weixin',
  192. title: '使用微信快捷支付',
  193. payStatus: true
  194. },
  195. {
  196. name: '支付宝支付',
  197. icon: 'icon-zhifubao',
  198. value: 'alipay',
  199. title: '使用线上支付宝支付',
  200. payStatus: true
  201. },
  202. {
  203. name: '余额支付',
  204. icon: 'icon-yuezhifu',
  205. value: 'yue',
  206. title: '当前可用余额:',
  207. number: 0,
  208. payStatus: true
  209. }
  210. ],
  211. pay_close: false,
  212. pay_order_id: '',
  213. totalPrice: '0',
  214. isAuto: false, //没有授权的不会自动授权
  215. isShowAuth: false //是否隐藏授权
  216. };
  217. },
  218. computed: mapGetters(['isLogin']),
  219. onShow() {
  220. uni.removeStorageSync('form_type_cart');
  221. this.page = 1;
  222. this.loadend = false;
  223. this.orderList = [];
  224. if (this.isLogin) {
  225. this.getFun();
  226. } else {
  227. toLogin()
  228. }
  229. },
  230. /**
  231. * 生命周期函数--监听页面加载
  232. */
  233. onLoad(options) {
  234. if (options.status) this.orderStatus = (options.status == undefined && options.status != 0) ? '' : parseInt(
  235. options.status);
  236. },
  237. methods: {
  238. showTime(time) {
  239. var date = new Date(time * 1000);
  240. var year = date.getFullYear(); // 获取年份
  241. var month = ("0" + (date.getMonth() + 1)).slice(-2); // 获取月份(注意月份从 0 开始,需要加 1)
  242. var day = ("0" + date.getDate()).slice(-2); // 获取日期
  243. var hours = ("0" + date.getHours()).slice(-2); // 获取小时
  244. var minutes = ("0" + date.getMinutes()).slice(-2); // 获取分钟
  245. var seconds = ("0" + date.getSeconds()).slice(-2); // 获取秒钟
  246. var dateString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds; // 自定义时间格式
  247. return dateString
  248. },
  249. call(phone) {
  250. uni.makePhoneCall({
  251. phoneNumber: phone,
  252. });
  253. },
  254. showMaoLocation(e) {
  255. let self = this;
  256. // #ifdef H5
  257. if (self.$wechat.isWeixin()) {
  258. self.$wechat.seeLocation({
  259. latitude: Number(e.latitude),
  260. longitude: Number(e.longitude),
  261. name: e.name,
  262. scale: 13,
  263. address: `${e.address}-${e.detailed_address}`,
  264. }).then(res => {})
  265. } else {
  266. // #endif
  267. uni.openLocation({
  268. latitude: Number(e.latitude),
  269. longitude: Number(e.longitude),
  270. name: e.name,
  271. address: `${e.address}-${e.detailed_address}`,
  272. success: function() {
  273. Number
  274. }
  275. });
  276. // #ifdef H5
  277. }
  278. // #endif
  279. },
  280. showTolPrice(list) {
  281. let price = 0;
  282. list.forEach(item => {
  283. price += item.pay_price * 1
  284. })
  285. return price.toFixed(2)
  286. },
  287. getFun() {
  288. // this.getOrderData();
  289. this.getOrderList();
  290. this.getUserInfo();
  291. },
  292. onLoadFun() {
  293. this.getFun();
  294. this.isShowAuth = false;
  295. },
  296. // 授权关闭
  297. authColse: function(e) {
  298. this.isShowAuth = e;
  299. },
  300. /**
  301. * 事件回调
  302. *
  303. */
  304. onChangeFun: function(e) {
  305. let opt = e;
  306. let action = opt.action || null;
  307. let value = opt.value != undefined ? opt.value : null;
  308. action && this[action] && this[action](value);
  309. },
  310. /**
  311. * 获取用户信息
  312. *
  313. */
  314. getUserInfo: function() {
  315. let that = this;
  316. getUserInfo().then(res => {
  317. that.payMode[2].number = res.data.now_money;
  318. that.$set(that, 'payMode', that.payMode);
  319. });
  320. },
  321. /**
  322. * 关闭支付组件
  323. *
  324. */
  325. payClose: function() {
  326. this.pay_close = false;
  327. },
  328. /**
  329. * 获取订单统计数据
  330. *
  331. */
  332. getOrderData: function() {
  333. let that = this;
  334. orderData().then(res => {
  335. that.$set(that, 'orderData', res.data);
  336. that.payMode.map(item => {
  337. if (item.value == 'weixin') {
  338. item.payStatus = res.data.pay_weixin_open ? true : false;
  339. }
  340. if (item.value == 'alipay') {
  341. item.payStatus = res.data.ali_pay_status ? true : false;
  342. }
  343. if (item.value == 'yue') {
  344. item.payStatus = res.data.yue_pay_status == 1 ? true : false;
  345. }
  346. });
  347. //#ifdef MP
  348. this.payMode[1].payStatus = false;
  349. //#endif
  350. });
  351. },
  352. /**
  353. * 取消订单
  354. *
  355. */
  356. cancelOrder: function(index, order_id) {
  357. let that = this;
  358. if (!order_id)
  359. return that.$util.Tips({
  360. title: '缺少订单号无法取消订单'
  361. });
  362. // uni.showModal({
  363. // title: '取消订单',
  364. // content: '您是否确认取消此订单',
  365. // confirmText: '确认',
  366. // cancelText: '再想想',
  367. // success: (res) => {
  368. // if (res.confirm) {
  369. // orderCancel(order_id)
  370. // .then(res => {
  371. // return that.$util.Tips({
  372. // title: res.msg,
  373. // icon: 'success'
  374. // },
  375. // function() {
  376. // that.orderList.splice(index, 1);
  377. // that.$set(that, 'orderList', that.orderList);
  378. // that.$set(that.orderData, 'unpaid_count', that.orderData.unpaid_count - 1);
  379. // that.getOrderData();
  380. // }
  381. // );
  382. // })
  383. // .catch(err => {
  384. // return that.$util.Tips({
  385. // title: err
  386. // });
  387. // });
  388. // }
  389. // }
  390. // })
  391. uni.showActionSheet({
  392. itemList: that.itemList,
  393. success(e) {
  394. console.log(e)
  395. console.log(that.itemList[e.tapIndex])
  396. SqRefund({
  397. id: order_id
  398. }).then(res => {
  399. return that.$util.Tips({
  400. title: res.msg,
  401. icon: 'success'
  402. },
  403. function() {
  404. that.orderList.splice(index, 1);
  405. that.$set(that, 'orderList', that.orderList);
  406. that.$set(that.orderData, 'unpaid_count', that.orderData
  407. .unpaid_count - 1);
  408. that.getOrderData();
  409. }
  410. );
  411. }).catch(err => {
  412. return that.$util.Tips({
  413. title: err
  414. });
  415. });
  416. }
  417. })
  418. },
  419. /**
  420. * 打开支付组件
  421. *
  422. */
  423. goPay: function(pay_price, order_id) {
  424. this.$set(this, 'pay_close', true);
  425. this.$set(this, 'pay_order_id', order_id);
  426. this.$set(this, 'totalPrice', pay_price);
  427. },
  428. /**
  429. * 支付成功回调
  430. *
  431. */
  432. pay_complete: function() {
  433. this.loadend = false;
  434. this.page = 1;
  435. this.$set(this, 'orderList', []);
  436. this.pay_close = false;
  437. uni.navigateTo({
  438. url: '/pages/goods/order_pay_status/index?order_id=' + this.pay_order_id +
  439. '&msg=支付成功&type=3&totalPrice=' + this.totalPrice
  440. })
  441. this.pay_order_id = '';
  442. this.getOrderData();
  443. this.getOrderList();
  444. },
  445. /**
  446. * 支付失败回调
  447. *
  448. */
  449. pay_fail: function() {
  450. this.pay_close = false;
  451. this.pay_order_id = '';
  452. },
  453. /**
  454. * 去订单详情
  455. */
  456. goOrderDetails: function(order_id) {
  457. if (!order_id)
  458. return that.$util.Tips({
  459. title: '缺少订单号无法查看订单详情'
  460. });
  461. // #ifdef MP
  462. uni.showLoading({
  463. title: '正在加载'
  464. });
  465. openOrderSubscribe()
  466. .then(() => {
  467. uni.hideLoading();
  468. uni.navigateTo({
  469. url: '/pages/goods/order_details/index?order_id=' + order_id
  470. })
  471. })
  472. .catch(err => {
  473. uni.hideLoading();
  474. });
  475. // #endif
  476. // #ifndef MP
  477. uni.navigateTo({
  478. url: '/pages/goods/order_details/index?order_id=' + order_id
  479. });
  480. // #endif
  481. },
  482. /**
  483. * 切换类型
  484. */
  485. statusClick: function(status) {
  486. if (this.loading) return
  487. if (status === this.orderStatus) return;
  488. this.orderStatus = status;
  489. this.loadend = false;
  490. this.page = 1;
  491. this.$set(this, 'orderList', []);
  492. this.getOrderList();
  493. },
  494. /**
  495. * 获取订单列表
  496. */
  497. getOrderList: function() {
  498. let that = this;
  499. if (that.loadend) return;
  500. if (that.loading) return;
  501. that.loading = true;
  502. that.loadTitle = '加载更多';
  503. getServeOrder({
  504. status: that.orderStatus,
  505. page: that.page,
  506. limit: that.limit
  507. })
  508. .then(res => {
  509. let list = res.data.list || [];
  510. console.log(list, 'list')
  511. if (that.orderStatus == 0) {
  512. that.orderData.order_count = res.data.count;
  513. } else if (that.orderStatus == 1) {
  514. that.orderData.unpaid_count = res.data.count;
  515. } else if (that.orderStatus == 2) {
  516. that.orderData.unshipped_count = res.data.count;
  517. } else if (that.orderStatus == 3) {
  518. that.orderData.received_count = res.data.count;
  519. }
  520. let loadend = list.length < that.limit;
  521. that.orderList = that.$util.SplitArray(list, that.orderList);
  522. that.$set(that, 'orderList', that.orderList);
  523. that.loadend = loadend;
  524. that.loading = false;
  525. that.loadTitle = loadend ? '没有更多内容啦~' : '加载更多';
  526. that.page = that.page + 1;
  527. })
  528. .catch(err => {
  529. that.loading = false;
  530. that.loadTitle = '加载更多';
  531. });
  532. },
  533. /**
  534. * 删除订单
  535. */
  536. delOrder: function(order_id, index) {
  537. let that = this;
  538. uni.showModal({
  539. title: '删除订单',
  540. content: '确定删除该订单',
  541. success: function(res) {
  542. if (res.confirm) {
  543. orderDel(order_id)
  544. .then(res => {
  545. that.orderList.splice(index, 1);
  546. that.$set(that, 'orderList', that.orderList);
  547. that.$set(that.orderData, 'unpaid_count', that
  548. .orderData.unpaid_count - 1);
  549. that.getOrderData();
  550. return that.$util.Tips({
  551. title: '删除成功',
  552. icon: 'success'
  553. });
  554. })
  555. .catch(err => {
  556. return that.$util.Tips({
  557. title: err
  558. });
  559. });
  560. } else if (res.cancel) {
  561. return that.$util.Tips({
  562. title: '已取消'
  563. });
  564. }
  565. }
  566. });
  567. }
  568. },
  569. onReachBottom: function() {
  570. this.getOrderList();
  571. }
  572. };
  573. </script>
  574. <style scoped lang="scss">
  575. .my-order .header {
  576. height: 260rpx;
  577. padding: 0 30rpx;
  578. }
  579. .my-order .header .picTxt {
  580. height: 190rpx;
  581. }
  582. .my-order .header .picTxt .text {
  583. color: rgba(255, 255, 255, 0.8);
  584. font-size: 26rpx;
  585. font-family: 'Guildford Pro';
  586. }
  587. .my-order .header .picTxt .text .name {
  588. font-size: 34rpx;
  589. font-weight: bold;
  590. color: #fff;
  591. margin-bottom: 20rpx;
  592. }
  593. .my-order .header .picTxt .pictrue {
  594. width: 122rpx;
  595. height: 109rpx;
  596. }
  597. .my-order .header .picTxt .pictrue image {
  598. width: 100%;
  599. height: 100%;
  600. }
  601. .my-order .nav {
  602. background-color: #fff;
  603. width: 750rpx;
  604. height: 90rpx;
  605. border-radius: 6rpx;
  606. margin: 0 auto;
  607. }
  608. .my-order .nav .item {
  609. text-align: center;
  610. font-size: 26rpx;
  611. color: #282828;
  612. padding: 27rpx 0;
  613. border-bottom: 5rpx solid transparent;
  614. }
  615. .my-order .nav .item.on {
  616. /* #ifdef H5 || MP */
  617. font-weight: bold;
  618. /* #endif */
  619. /* #ifdef APP-PLUS */
  620. color: #000;
  621. /* #endif */
  622. border-color: var(--view-theme);
  623. }
  624. .my-order .nav .item .num {
  625. margin-top: 18rpx;
  626. }
  627. .my-order .list {
  628. width: 690rpx;
  629. margin: 14rpx auto 0 auto;
  630. }
  631. .my-order .list .item {
  632. background-color: #fff;
  633. border-radius: 6rpx;
  634. margin-bottom: 14rpx;
  635. }
  636. .my-order .list .item .title {
  637. height: 84rpx;
  638. padding: 0 30rpx;
  639. border-bottom: 1rpx solid #eee;
  640. font-size: 28rpx;
  641. color: #282828;
  642. }
  643. .my-order .list .item .title .sign {
  644. font-size: 24rpx;
  645. padding: 0 7rpx;
  646. height: 36rpx;
  647. margin-right: 15rpx;
  648. }
  649. .my-order .list .item .item-info {
  650. padding: 0 30rpx;
  651. margin-top: 22rpx;
  652. }
  653. .my-order .list .item .item-info .pictrue {
  654. width: 120rpx;
  655. height: 120rpx;
  656. }
  657. .my-order .list .item .item-info .pictrue image {
  658. width: 100%;
  659. height: 100%;
  660. border-radius: 6rpx;
  661. }
  662. .my-order .list .item .item-info .text {
  663. width: 486rpx;
  664. font-size: 28rpx;
  665. color: #999;
  666. }
  667. .my-order .list .item .item-info .text .name {
  668. width: 306rpx;
  669. color: #282828;
  670. height: 74rpx;
  671. }
  672. .my-order .list .item .item-info .text .money {
  673. text-align: right;
  674. }
  675. .my-order .list .item .item-info .text .money .return {
  676. // color: var(--view-priceColor);
  677. margin-top: 10rpx;
  678. font-size: 24rpx;
  679. }
  680. .my-order .list .item .totalPrice {
  681. font-size: 26rpx;
  682. color: #282828;
  683. text-align: right;
  684. margin: 27rpx 0 0 30rpx;
  685. padding: 0 30rpx 30rpx 0;
  686. border-bottom: 1rpx solid #eee;
  687. }
  688. .my-order .list .item .totalPrice .money {
  689. font-size: 28rpx;
  690. font-weight: bold;
  691. color: var(--view-priceColor);
  692. }
  693. .my-order .list .item .bottom {
  694. height: 107rpx;
  695. padding: 0 30rpx;
  696. }
  697. .my-order .list .item .bottom .bnt {
  698. width: 176rpx;
  699. height: 60rpx;
  700. text-align: center;
  701. line-height: 60rpx;
  702. color: #fff;
  703. border-radius: 50rpx;
  704. font-size: 27rpx;
  705. }
  706. .my-order .list .item .bottom .bnt.cancelBnt {
  707. border: 1rpx solid #ddd;
  708. color: #aaa;
  709. }
  710. .my-order .list .item .bottom .bnt~.bnt {
  711. margin-left: 17rpx;
  712. }
  713. .noCart {
  714. margin-top: 171rpx;
  715. padding-top: 0.1rpx;
  716. }
  717. .noCart .pictrue {
  718. width: 414rpx;
  719. height: 336rpx;
  720. margin: 78rpx auto 56rpx auto;
  721. }
  722. .noCart .pictrue image {
  723. width: 100%;
  724. height: 100%;
  725. }
  726. .line2 {
  727. word-break: break-all;
  728. }
  729. .showstore {
  730. border-bottom: none !important;
  731. text-align: left !important;
  732. padding-bottom: 10rpx !important;
  733. }
  734. .icon {
  735. .iconfont {
  736. width: 44rpx;
  737. height: 44rpx;
  738. background: var(--view-minorColorT);
  739. font-size: 20rpx;
  740. border-radius: 50%;
  741. text-align: center;
  742. line-height: 44rpx;
  743. color: var(--view-theme);
  744. margin-left: 26rpx;
  745. }
  746. }
  747. </style>