order-detail.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707
  1. <template>
  2. <app-layout>
  3. <view v-if="is_show && orderDetail" class='order-detail-box'>
  4. <app-order-banner v-if="istype!=2&&istype!=1" :title='orderDetail.status_text'></app-order-banner>
  5. <view>
  6. <!-- 兼容旧版本数据 -->
  7. <block v-if='orderDetail.is_send == 1 && orderDetail.detailExpress.length == 0 && orderDetail.express && orderDetail.express_no'>
  8. <view class='express-box'>
  9. <app-order-express :pageUrl='getPageUrl' :express='orderDetail.express' :express_no='orderDetail.express_no'>
  10. </app-order-express>
  11. </view>
  12. </block>
  13. <block v-else-if='orderDetail.is_send == 1 && orderDetail.detailExpress.length == 1&&istype!=2&&istype!=1'>
  14. <view class='express-box'>
  15. <template v-if="orderDetail.detailExpress[0].send_type == 1">
  16. <app-order-express :pageUrl='getPageUrl' :express='orderDetail.detailExpress[0].express' :express_no='orderDetail.detailExpress[0].express_no'
  17. :merchant_remark='orderDetail.detailExpress[0].merchant_remark'>
  18. </app-order-express>
  19. </template>
  20. <template v-else>
  21. 物流信息: 其它方式({{orderDetail.detailExpress[0].express_content}})
  22. </template>
  23. </view>
  24. </block>
  25. <block v-else-if='orderDetail.detailExpress.length >= 1&&istype!=2&&istype!=1'>
  26. <app-jump-button :url="getPageUrl">
  27. <view class='e-box dir-left-nowrap cross-center'>
  28. <view class='dir-top-nowrap box-grow-1 text'>
  29. 该订单已拆成多个包裹发货,点击查看详情
  30. </view>
  31. <image class='box-grow-0 img' src='/static/image/icon/arrow-right.png'></image>
  32. </view>
  33. </app-jump-button>
  34. </block>
  35. <view v-if='orderDetail.name && orderDetail.mobile && orderDetail.address' class='address-box dir-top'>
  36. <view class='dir-left-nowrap'>
  37. <view class='box-grow-1'>联系人: {{orderDetail.name}}</view>
  38. <view class='box-grow-0'>{{orderDetail.mobile}}</view>
  39. </view>
  40. <view v-if='orderDetail.send_type != 1' class='text'>收货地址: {{orderDetail.address}}</view>
  41. </view>
  42. <view v-if='orderDetail.send_type == 1' class='store-info-box dir-left-nowrap'>
  43. <view class='box-grow-1 dir:top'>
  44. <view>门店名称: {{orderDetail.store.name}}</view>
  45. <view>联系电话: {{orderDetail.store.mobile}}</view>
  46. <view>门店地址: {{orderDetail.store.address}}</view>
  47. </view>
  48. <view class='box-grow-0 cross-center'>
  49. <view @click='navigation(orderDetail.store)' class='box-grow-0 detail-btn' size='mini'>
  50. 导航
  51. </view>
  52. </view>
  53. </view>
  54. <template v-if="orderDetail.send_type == 2">
  55. <view class="order-info-box dir-left-wrap delivery cross-center" v-if="orderDetail.city">
  56. <image src="/static/image/icon/deliveryman.png" class="box-grow-0 deliveryman"></image>
  57. <view class="box-grow-1 content">
  58. <view class="delivery-tips">配送员</view>
  59. <view v-if="orderDetail.city.name.length > 6 || orderDetail.city.mobile.length > 11">
  60. <view class="mr-16 t-omit">{{orderDetail.city.name}}</view>
  61. <view class="t-omit">{{orderDetail.city.mobile}}</view>
  62. </view>
  63. <view v-else>
  64. <view class="mr-16" style="display: inline-block">{{orderDetail.city.name}}</view>
  65. <text>{{orderDetail.city.mobile}}</text>
  66. </view>
  67. </view>
  68. <view class="box-grow-0 delivery-mobile cross-center main-right" @click="mobile">
  69. <image src="/static/image/icon/store-tel.png" class="mobile"></image>
  70. </view>
  71. </view>
  72. <view class="order-info-box dir-top-wrap" v-if="orderDetail.delivery_config">
  73. <view>发货地址: {{orderDetail.delivery_config.address.address}}</view>
  74. <view>{{orderDetail.delivery_config.explain}}</view>
  75. </view>
  76. </template>
  77. <view class='order-info-box dir-top-wrap' v-if="istype!=2&&istype!=1">
  78. <view class='dir-left-nowrap cross-center'>
  79. <view class='box-grow-1'>订单编号: {{orderDetail.order_no}}</view>
  80. <view @click='copyText(orderDetail.order_no)' class='box-grow-0 detail-btn' size='mini'>复制
  81. </view>
  82. </view>
  83. <view>下单时间: {{orderDetail.created_at}}</view>
  84. <block>
  85. <view v-if="orderDetail.pay_type == 1">支付方式: 线上支付</view>
  86. <view v-if="orderDetail.pay_type == 2">支付方式: 货到付款</view>
  87. <view v-if="orderDetail.pay_type == 3">支付方式: 余额支付</view>
  88. </block>
  89. <block v-if="orderDetail.is_send && orderDetail.sign != 'scan_code_pay'">
  90. <view v-if="orderDetail.send_type == 0">发货方式: 快递发货</view>
  91. <view v-if="orderDetail.send_type == 1">发货方式: 到店自提</view>
  92. <view v-if="orderDetail.send_type == 2">发货方式: 同城配送</view>
  93. </block>
  94. </view>
  95. <template v-if="orderDetail.sign === 'advance'">
  96. <view class="preferential-box dir-top-nowrap">
  97. <view class='dir-left-nowrap item' style="margin-bottom: 28rpx;">
  98. <text class='box-grow-1' style="font-size: 28rpx;">
  99. 商品总额:¥{{orderDetail.total_goods_original_price}},定金¥{{orderDetail.advance_order.deposit}}抵扣¥{{orderDetail.advance_order.swell_deposit}}
  100. </text>
  101. </view>
  102. <view class="item-box">
  103. <view class="dir-left-nowrap item ">
  104. <text class='box-grow-1' style="color: #ff4544;font-size: 24rpx;">阶段一</text>
  105. </view>
  106. <view class="dir-left-nowrap item " style="margin-top: 20rpx;">
  107. <text class='box-grow-1' style="color: #666666;font-size: 28rpx;">
  108. 定金
  109. </text>
  110. <text class='box-grow-0'>¥{{orderDetail.advance_order.deposit}}</text>
  111. </view>
  112. </view>
  113. <view class="item-box" style="margin-top:24rpx;">
  114. <view class="dir-left-nowrap item ">
  115. <text class='box-grow-1' style="color: #ff4544;font-size: 24rpx;">阶段二</text>
  116. </view>
  117. <view class="dir-left-nowrap item " style="margin-top: 20rpx;">
  118. <text class='box-grow-1' style="color: #666666;font-size: 28rpx;">
  119. 尾款
  120. </text>
  121. <text class='box-grow-0'>¥{{orderDetail.total_price}}</text>
  122. </view>
  123. <view class="dir-left-nowrap item " style="margin-top: 20rpx;" v-if="orderDetail.member_discount_price > 0">
  124. <text class='box-grow-1' style="color: #666666;font-size: 28rpx;">
  125. 会员折扣
  126. </text>
  127. <text class='box-grow-0'>-¥{{orderDetail.member_discount_price}}</text>
  128. </view>
  129. <view class="dir-left-nowrap item " style="margin-top: 20rpx;" v-if="orderDetail.advance_order.preferential_price > 0">
  130. <text class='box-grow-1' style="color: #666666;font-size: 28rpx;">
  131. 活动优惠
  132. </text>
  133. <text class='box-grow-0'>-¥{{orderDetail.advance_order.preferential_price}}</text>
  134. </view>
  135. <view class="dir-left-nowrap item " style="margin-top: 20rpx;" v-if="orderDetail.coupon_discount_price > 0">
  136. <text class='box-grow-1' style="color: #666666;font-size: 28rpx;">
  137. 优惠券优惠
  138. </text>
  139. <text class='box-grow-0'>-¥{{orderDetail.coupon_discount_price}}</text>
  140. </view>
  141. <view class="dir-left-nowrap item " style="margin-top: 20rpx;" v-if="orderDetail.integral_deduction_price > 0">
  142. <text class='box-grow-1' style="color: #666666;font-size: 28rpx;">
  143. 积分抵扣
  144. </text>
  145. <text class='box-grow-0'>-¥{{orderDetail.integral_deduction_price}}</text>
  146. </view>
  147. <view class="dir-left-nowrap item " style="margin-top: 20rpx;">
  148. <text class='box-grow-1' style="color: #666666;font-size: 28rpx;">
  149. 运费
  150. </text>
  151. <text class='box-grow-0'>¥{{orderDetail.express_price}}</text>
  152. </view>
  153. </view>
  154. <view class="dir-left-nowrap item main-right" style="margin:28rpx 0 ;">
  155. <text class='box-grow-0' style="font-size: 28rpx;">合计:¥{{orderDetail.total_pay_price}}
  156. </text>
  157. </view>
  158. </view>
  159. </template>
  160. <view class='preferential-box dir-top-wrap' v-if="orderDetail.sign !== 'advance'">
  161. <view class='dir-left-nowrap item'>
  162. <view class='box-grow-1'>商品总额</view>
  163. <view class='box-grow-0'>¥{{orderDetail.total_goods_original_price}}</view>
  164. </view>
  165. <!-- 插件额外优惠 -->
  166. <view v-if="orderDetail.plugin_data && sign !== 'advance'">
  167. <view v-for='item in orderDetail.plugin_data' :key="item.id" class='dir-left-nowrap item'>
  168. <view class='box-grow-1'>{{item.label}}</view>
  169. <view class='box-grow-0'>-¥{{item.value}}</view>
  170. </view>
  171. </view>
  172. <view v-if='orderDetail.coupon_discount_price > 0' class='dir-left-nowrap item'>
  173. <view class='box-grow-1'>优惠券抵扣</view>
  174. <view class='box-grow-0'>-¥{{orderDetail.coupon_discount_price}}</view>
  175. </view>
  176. <view v-if='orderDetail.integral_deduction_price > 0' class='dir-left-nowrap item'>
  177. <view class='box-grow-1'>积分抵扣</view>
  178. <view class='box-grow-0'>-¥{{orderDetail.integral_deduction_price}}</view>
  179. </view>
  180. <view v-if="orderDetail.member_deduction_price_count > 0 && sign !== 'advance'" class='dir-left-nowrap item'>
  181. <view class='box-grow-1'>会员折扣</view>
  182. <view class='box-grow-0'>-¥{{orderDetail.member_deduction_price_count}}</view>
  183. </view>
  184. <view class='dir-left-nowrap item' v-if="orderDetail.sign !== 'advance'&&istype!=2&&istype!=1">
  185. <view class='box-grow-1'>运费</view>
  186. <view class='box-grow-0'>¥{{orderDetail.express_price}}</view>
  187. </view>
  188. <view v-if='orderDetail.remark' class='dir-top-nowrap item'>
  189. <view class='box-grow-1'>买家留言:</view>
  190. <view class='box-grow-0 t-extra-small-color'>{{orderDetail.remark}}</view>
  191. </view>
  192. </view>
  193. <view class='order-price-box cross-center dir-right-nowrap' v-if="orderDetail.sign !== 'advance'&&istype!=2&&istype!=1">
  194. <view>
  195. 合计:
  196. <text class='price'>¥
  197. <text>{{orderDetail.total_pay_price}}</text>
  198. </text>
  199. </view>
  200. </view>
  201. <view class='goods-box composition' v-if="sign == 'composition'">
  202. <view class="composition-item" v-for='(list, idx) in orderDetail.composition_list' :key='idx'>
  203. <view class="main-between composition-title">
  204. <view class="composition-type" v-if="list.type == 1">固定套餐</view>
  205. <view class="composition-type" v-else>搭配套餐</view>
  206. <view>套餐总价 ¥{{list.total_price}}</view>
  207. </view>
  208. <view class="goods-list" v-for='(item, index) in list.goods_list' :key='index'>
  209. <app-order-goods-info :plugin="list.type == 2 ?sign : ''" v-if="list.show || index == 0" style="width:100%;"
  210. :goods='item'></app-order-goods-info>
  211. <block v-if='orderDetail.is_send == 1 && (list.show || index == 0)'>
  212. <view class='dir-left-nowrap sale-box'>
  213. <view class='box-grow-1'></view>
  214. <view class='box-grow-0 dir-top-nowrap'>
  215. <!-- 无售后记录 且 未超过售后时间 才可申请售后 -->
  216. <block v-if='!item.refund'>
  217. <app-jump-button v-if='orderDetail.is_sale == 0' :url="`/pages/order/refund/refund?id=${item.id}&sign=${orderDetail.sign}`">
  218. <view size='mini' class='sale-server detail-btn'>申请售后</view>
  219. </app-jump-button>
  220. </block>
  221. <block v-else>
  222. <text class='refund-status'>已申请售后({{item.refund.status_text}})</text>
  223. </block>
  224. </view>
  225. </view>
  226. </block>
  227. </view>
  228. <view class="composition-open main-center">
  229. <view @click="toggle(idx)" class="composition-btn">
  230. <text>{{list.show ? '点击收起套餐详情' : '点击展开套餐详情'}}</text>
  231. <image v-if="!list.show" src="/static/image/icon/icon-down.png"></image>
  232. <image v-else src="/static/image/icon/icon-up.png"></image>
  233. </view>
  234. </view>
  235. </view>
  236. </view>
  237. <view class='goods-box' v-else>
  238. <view v-for='(item, index) in orderDetail.detail' :key='index'>
  239. <app-jump-button :url="item.goods_info.page_url">
  240. <app-order-goods-info style="width:100%;" :goods='item.goods_info'></app-order-goods-info>
  241. </app-jump-button>
  242. <block v-if='orderDetail.is_send == 1'>
  243. <view class='dir-left-nowrap sale-box'>
  244. <view class='box-grow-1'></view>
  245. <view class='box-grow-0 dir-top-nowrap'>
  246. <!-- 无售后记录 且 未超过售后时间 才可申请售后 -->
  247. <block v-if='!item.refund'>
  248. <app-jump-button v-if='orderDetail.is_sale == 0' :url="`/pages/order/refund/refund?id=${item.id}&sign=${orderDetail.sign}`">
  249. <view size='mini' class='sale-server detail-btn'>申请售后</view>
  250. </app-jump-button>
  251. </block>
  252. <block v-else>
  253. <text class='refund-status'>已申请售后({{item.refund.status_text}})</text>
  254. </block>
  255. </view>
  256. </view>
  257. </block>
  258. </view>
  259. </view>
  260. <block v-if='(orderDetail.is_pay == 1 || orderDetail.pay_type == 2) && orderDetail.is_send == 0 && orderDetail.status == 1 && orderDetail.detailExpressRelation.length == 0 && orderDetail.cancel_status != 1'>
  261. <view class='action-box dir-left-nowrap'>
  262. <view class='box-grow-1'></view>
  263. <text v-if='orderDetail.cancel_status == 2' class='cancel-text'>申请退款中</text>
  264. <view v-else @click='cancel(orderDetail)' class='box-grow-0 btn'>申请退款</view>
  265. </view>
  266. </block>
  267. </view>
  268. </view>
  269. </app-layout>
  270. </template>
  271. <script>
  272. import appOrderGoodsInfo from "../../../components/page-component/app-order-goods-info/app-order-goods-info.vue";
  273. import appOrderExpress from "../../../components/page-component/app-order-express/app-order-express.vue";
  274. import appOrderBanner from "../../../components/page-component/app-order-banner/app-order-banner.vue";
  275. import order from "../order.js";
  276. import AppJumpButton from "../../../components/basic-component/app-jump-button/app-jump-button.vue";
  277. export default {
  278. components: {
  279. AppJumpButton,
  280. "app-order-goods-info": appOrderGoodsInfo,
  281. "app-order-express": appOrderExpress,
  282. "app-order-banner": appOrderBanner,
  283. },
  284. data() {
  285. return {
  286. order_id: null,
  287. orderDetail: {
  288. detailExpressRelation: [],
  289. detailExpress: [],
  290. },
  291. is_show: false,
  292. advance_order: {
  293. goods_num: 0
  294. },
  295. detail: [],
  296. sign: '',
  297. istype: ""
  298. }
  299. },
  300. computed: {
  301. getPageUrl() {
  302. let orderDetail = this.orderDetail;
  303. if (orderDetail.is_send == 1 && orderDetail.detailExpress.length == 0) {
  304. let coverPic = '';
  305. orderDetail.detail.forEach(function(item, index) {
  306. if (index === 0) {
  307. coverPic = item.goods_info.pic_url;
  308. }
  309. });
  310. return `/pages/order/express-detail/express-detail?express=${orderDetail.express}&customer_name=${orderDetail.customer_name}&express_no=${orderDetail.express_no}&cover_pic=${coverPic}`
  311. } else if (orderDetail.is_send == 1 && orderDetail.detailExpress.length == 1) {
  312. let express = orderDetail.detailExpress[0].express;
  313. let express_no = orderDetail.detailExpress[0].express_no;
  314. let customer_name = orderDetail.detailExpress[0].customer_name;
  315. let cover_pic = orderDetail.detailExpress[0].expressRelation[0].orderDetail.goods_info.goods_attr.cover_pic;
  316. return `/pages/order/express-detail/express-detail?express=` + express + `&customer_name=` + customer_name +
  317. `&express_no=` + express_no + `&cover_pic=` + cover_pic
  318. } else if (orderDetail.detailExpress.length >= 1) {
  319. return '/pages/order/express-list/express-list?order_id=' + orderDetail.id;
  320. }
  321. }
  322. },
  323. methods: {
  324. toggle(index) {
  325. this.orderDetail.composition_list[index].show = !this.orderDetail.composition_list[index].show;
  326. this.$forceUpdate();
  327. },
  328. getOrderDetail() {
  329. let self = this;
  330. self.$showLoading();
  331. self.$request({
  332. url: self.$api.order.detail,
  333. data: {
  334. id: self.order_id,
  335. }
  336. }).then(response => {
  337. console.log(response)
  338. this.istype = response.data.detail.detail[0].order.goods_type
  339. console.log(this.istype)
  340. self.$hideLoading();
  341. self.is_show = true;
  342. if (response.code == 0) {
  343. self.orderDetail = response.data.detail;
  344. if (self.sign == 'composition') {
  345. for (let i in self.orderDetail.composition_list) {
  346. self.orderDetail.composition_list[i].show = false;
  347. }
  348. }
  349. } else {
  350. uni.showModal({
  351. title: '',
  352. content: response.msg,
  353. showCancel: false,
  354. });
  355. }
  356. }).catch(() => {
  357. self.$hideLoading();
  358. });
  359. },
  360. copyText(orderNo) {
  361. order.copyText(orderNo)
  362. },
  363. navigation(store) {
  364. uni.openLocation({
  365. latitude: parseFloat(store.latitude),
  366. longitude: parseFloat(store.longitude),
  367. name: store.name,
  368. address: store.address,
  369. })
  370. },
  371. // 取消 | 申请退款
  372. cancel(e) {
  373. let self = this;
  374. uni.showModal({
  375. title: '提示',
  376. content: '是否取消订单?',
  377. success: function(res) {
  378. if (res.confirm) {
  379. self.$subscribe(self.orderDetail.template_message_list).then(response => {
  380. self.cancelAction(e);
  381. }).catch(res => {
  382. self.cancelAction(e);
  383. });
  384. }
  385. }
  386. });
  387. },
  388. cancelAction(e) {
  389. let self = this;
  390. uni.showLoading({
  391. title: '取消中'
  392. });
  393. self.$request({
  394. url: self.$api.order.cancel,
  395. data: {
  396. id: e.id
  397. }
  398. }).then(response => {
  399. uni.hideLoading();
  400. if (response.code === 0) {
  401. if (self.sign === 'advance') {
  402. self.$request({
  403. url: self.$api.advance.order_detail,
  404. method: 'get',
  405. data: {
  406. id: self.order_id,
  407. }
  408. }).then(response => {
  409. self.is_show = true;
  410. if (response.code === 0) {
  411. self.orderDetail = response.data.detail;
  412. } else {
  413. uni.showModal({
  414. title: '',
  415. content: response.msg,
  416. showCancel: false,
  417. });
  418. }
  419. })
  420. } else {
  421. self.getOrderDetail();
  422. }
  423. } else {
  424. uni.showModal({
  425. title: '',
  426. content: response.msg,
  427. showCancel: false,
  428. });
  429. }
  430. }).catch(() => {
  431. uni.hideLoading();
  432. });
  433. },
  434. mobile: function() {
  435. uni.makePhoneCall({
  436. phoneNumber: this.orderDetail.city.mobile,
  437. })
  438. },
  439. },
  440. onLoad(options) {
  441. this.order_id = options.id;
  442. this.sign = options.sign;
  443. },
  444. onShow() {
  445. let self = this;
  446. let interval = setInterval(function() {
  447. if (self.sign === 'advance') {
  448. self.$request({
  449. url: self.$api.advance.order_detail,
  450. method: 'get',
  451. data: {
  452. id: self.order_id,
  453. }
  454. }).then(response => {
  455. self.is_show = true;
  456. if (response.code === 0) {
  457. self.orderDetail = response.data.detail;
  458. } else {
  459. uni.showModal({
  460. title: '',
  461. content: response.msg,
  462. showCancel: false,
  463. });
  464. }
  465. })
  466. } else {
  467. self.getOrderDetail();
  468. }
  469. clearInterval(interval);
  470. }, 300);
  471. }
  472. }
  473. </script>
  474. <style scoped lang="scss">
  475. .order-detail-box {
  476. font-size: $uni-font-size-general-one;
  477. color: $uni-general-color-one;
  478. position: absolute;
  479. width: 100%;
  480. height: 100%;
  481. }
  482. .express-box {
  483. background: #fff;
  484. padding: 32#{rpx} 24#{rpx};
  485. margin-bottom: 20#{rpx};
  486. }
  487. .address-box {
  488. background: #fff;
  489. padding: 32#{rpx} 24#{rpx};
  490. margin-bottom: 20#{rpx};
  491. }
  492. .address-box .text {
  493. margin-top: 10#{rpx};
  494. }
  495. .order-info-box {
  496. background: #fff;
  497. padding: 32#{rpx} 24#{rpx};
  498. margin-bottom: 20#{rpx};
  499. &.delivery {
  500. .deliveryman {
  501. width: #{72rpx};
  502. height: #{72rpx};
  503. display: block;
  504. margin-right: #{24rpx};
  505. }
  506. .delivery-tips {
  507. font-size: $uni-font-size-weak-one;
  508. color: $uni-general-color-two;
  509. margin-bottom: #{16rpx};
  510. }
  511. .mr-16 {
  512. margin-right: #{16rpx};
  513. }
  514. .delivery-mobile {
  515. width: #{96rpx};
  516. border-left: #{1rpx} solid #e2e2e2;
  517. .mobile {
  518. width: #{40rpx};
  519. height: #{40rpx};
  520. display: block;
  521. }
  522. }
  523. .content {
  524. width: #{500rpx};
  525. }
  526. }
  527. }
  528. .store-info-box {
  529. background: #fff;
  530. padding: 32#{rpx} 24#{rpx};
  531. margin-bottom: 20#{rpx};
  532. }
  533. .preferential-box {
  534. background: #fff;
  535. padding: 32#{rpx} 24#{rpx};
  536. border-bottom: 1#{rpx} solid $uni-weak-color-one;
  537. }
  538. .preferential-box .item {
  539. margin: 5#{rpx} 0;
  540. }
  541. .order-price-box {
  542. height: 100#{rpx};
  543. background: #fff;
  544. padding: 32#{rpx} 24#{rpx};
  545. margin-bottom: 20#{rpx};
  546. }
  547. .goods-box {
  548. background: #fff;
  549. padding: 32#{rpx} 24#{rpx};
  550. margin-bottom: 20#{rpx};
  551. &.composition {
  552. padding: 0;
  553. padding-bottom: #{8rpx};
  554. margin-bottom: 0;
  555. background-color: #f7f7f7;
  556. }
  557. .composition-item {
  558. margin-bottom: #{20rpx};
  559. background-color: #fff;
  560. .composition-open {
  561. text-align: center;
  562. background-color: #fff;
  563. height: #{84rpx};
  564. .composition-btn {
  565. display: inline-block;
  566. border: #{2rpx} solid #bbbbbb;
  567. font-size: #{24rpx};
  568. color: #999999;
  569. padding: 0 #{24rpx};
  570. margin: #{12rpx} 0 #{16rpx};
  571. height: #{56rpx};
  572. line-height: #{54rpx};
  573. border-radius: #{28rpx};
  574. image {
  575. width: #{22rpx};
  576. height: #{12rpx};
  577. margin-left: #{16rpx};
  578. }
  579. }
  580. }
  581. .goods-list {
  582. padding: 0 #{24rpx};
  583. }
  584. .composition-title {
  585. height: #{80rpx};
  586. line-height: #{80rpx};
  587. padding: 0 #{24rpx};
  588. font-size: #{28rpx};
  589. color: #353535;
  590. margin-bottom: #{24rpx};
  591. border-bottom: #{2rpx} solid #e2e2e2;
  592. .composition-type {
  593. color: #f39800;
  594. }
  595. }
  596. }
  597. }
  598. .goods-box .sale-server {
  599. margin-top: 20#{rpx};
  600. }
  601. .goods-box .sale-box {
  602. padding-bottom: 15#{rpx};
  603. }
  604. .goods-box .refund-status {
  605. margin-top: 15#{rpx};
  606. color: $uni-important-color-black;
  607. }
  608. .action-box {
  609. background: #fff;
  610. padding: 32#{rpx} 24#{rpx};
  611. .cancel-text {
  612. font-size: $uni-font-size-import-two;
  613. }
  614. .btn {
  615. border: 1#{rpx} solid #bbbbbb;
  616. border-radius: 30#{rpx};
  617. padding: 10#{rpx} 30#{rpx};
  618. }
  619. }
  620. .detail-btn {
  621. border: 1#{rpx} solid #bbbbbb;
  622. border-radius: 30#{rpx};
  623. padding: 10#{rpx} 30#{rpx};
  624. }
  625. .e-box {
  626. width: 100%;
  627. height: #{100rpx};
  628. padding: 0 #{24rpx};
  629. background: #ffffff;
  630. margin-bottom: #{20rpx};
  631. .img {
  632. width: 12#{rpx};
  633. height: 24#{rpx};
  634. }
  635. .express-name {
  636. margin-bottom: 15#{rpx};
  637. }
  638. .text {
  639. color: #353535;
  640. font-size: #{28rpx};
  641. }
  642. }
  643. .advance {
  644. width: #{702rpx};
  645. border-radius: #{16rpx};
  646. background-color: #f7f7f7;
  647. padding: #{32rpx 24rpx};
  648. .title {
  649. font-size: #{24rpx};
  650. color: #ff4544;
  651. margin-bottom: #{15rpx};
  652. }
  653. }
  654. .item-box {
  655. border: #{1rpx} solid #c2c2c2;
  656. padding: #{24rpx};
  657. border-radius: #{16rpx};
  658. width: #{702rpx};
  659. }
  660. </style>