orderDetail.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808
  1. <template>
  2. <view style="height: 100%;" :class="['qn-page-' + theme]">
  3. <u-navbar v-if="navFixed" title="订单详情" title-color="#ffffff" back-icon-color="#ffffff" :border-bottom="false" :background="{ backgroundImage: primaryJb }"></u-navbar>
  4. <view class="box">
  5. <view class="top-view primary-btn">
  6. <uniStatusBar></uniStatusBar>
  7. <view class="nav-bar">
  8. <text @click="backPage" class="nv-back ibonfont ibonfanhui"></text>
  9. <text class="title-text">订单详情</text>
  10. </view>
  11. <view class="order-status-view clearfix">
  12. <view class="float_left">
  13. <view class="order-status-text">
  14. <text v-if="order_detail.deliveryName === '上门自提' && order_detail.orderStatus >= 3">自提码:{{ order_detail.verifyCode }}</text>
  15. <text v-else>
  16. {{
  17. order_detail.orderStatus === 1
  18. ? '待付款'
  19. : order_detail.orderStatus === 2
  20. ? '待付款'
  21. : order_detail.orderStatus === 3
  22. ? '待发货'
  23. : order_detail.orderStatus === 4
  24. ? '待收货'
  25. : order_detail.orderStatus === 5
  26. ? '已完成'
  27. : order_detail.orderStatus === 6
  28. ? '已关闭'
  29. : order_detail.orderStatus === 7
  30. ? '取消审核中'
  31. : ''
  32. }}
  33. </text>
  34. <view class="children-order-status">
  35. {{
  36. order_detail.orderStatus === 1
  37. ? '请尽快付款,宝贝才能快些到您身边哦'
  38. : order_detail.orderStatus === 2
  39. ? '请尽快付款,宝贝才能快些到您身边哦'
  40. : order_detail.orderStatus === 3
  41. ? order_detail.deliveryType === 2
  42. ? '请尽快前往自提点取货'
  43. : '正在为您紧急备货中……'
  44. : order_detail.orderStatus === 4
  45. ? '确认宝贝无误后再签收哦!'
  46. : order_detail.orderStatus === 5
  47. ? '本次交易已完成,祝您购物愉快'
  48. : order_detail.orderStatus === 6
  49. ? '本次交易已关闭'
  50. : order_detail.orderStatus === 7
  51. ? '您已发起取消订单,请等待审核'
  52. : ''
  53. }}
  54. </view>
  55. </view>
  56. </view>
  57. <view class="float_right">
  58. <text
  59. class="ibonfont order-icon"
  60. :class="[
  61. order_detail.orderStatus === 1
  62. ? 'ibondaifukuan1'
  63. : order_detail.orderStatus === 2
  64. ? 'ibondaifukuan1'
  65. : order_detail.orderStatus === 3
  66. ? 'ibondaifahuo1'
  67. : order_detail.orderStatus === 4
  68. ? 'ibondaishouhuo'
  69. : order_detail.orderStatus === 5
  70. ? 'ibonyiwancheng'
  71. : order_detail.orderStatus === 6
  72. ? 'ibonjiaoyiguanbix'
  73. : order_detail.orderStatus === 7
  74. ? 'ibonjiaoyiguanbix'
  75. : ''
  76. ]"
  77. ></text>
  78. </view>
  79. </view>
  80. </view>
  81. <u-alert-tips
  82. v-if="order_detail.extends && order_detail.extends.cancelRejectReason"
  83. type="warning"
  84. :description="`取消订单发起被拒:${order_detail.extends.cancelRejectReason}`"
  85. ></u-alert-tips>
  86. <!-- 快递信息 -->
  87. <view class="address-view" v-if="order_detail.orderStatus > 3 && order_detail.deliveryType === 1" @click="goPage('/pagesT/order/orderLogistics?id=' + order_id)">
  88. <text class="ibonfont ibonwuliu ad-icon"></text>
  89. <view v-if="express_list.length > 0">
  90. <text class="title" style="font-size: 28rpx;">{{ express_list[0].context }}</text>
  91. <br />
  92. <text class="subtitle">{{ express_list[0].time }}</text>
  93. </view>
  94. <view v-else>
  95. <text class="title" style="font-size: 28rpx;">商品已下单</text>
  96. <br />
  97. <text class="subtitle">{{ $_utils.formatDate(order_detail.createTime) }}</text>
  98. </view>
  99. <text class="ibonfont ibonjinru ibonjinru-icon"></text>
  100. </view>
  101. <!-- 收货地址 -->
  102. <view class="address-view clearfix" v-if="order_detail.receiveData && [1, 3].includes(order_detail.deliveryType)">
  103. <text class="ibonfont ibondizhi2 ad-icon"></text>
  104. <view>
  105. <text class="title">{{ order_detail.receiveData.realName || '--' }} {{ order_detail.receiveData.mobile || '' }}</text>
  106. <br />
  107. <text class="subtitle">
  108. 地址:{{ order_detail.receiveData.area.provinceName || '' }}{{ order_detail.receiveData.area.cityName || ''
  109. }}{{ order_detail.receiveData.area.districtName || '' }}{{ order_detail.receiveData.address || '' }}
  110. </text>
  111. </view>
  112. </view>
  113. <!-- 自提点信息 -->
  114. <view class="address-view clearfix" v-if="order_detail.deliveryType === 2">
  115. <text class="ibonfont ibondizhi2 ad-icon"></text>
  116. <view>
  117. <text class="title">{{ selfRuleData.name }} {{ selfRuleData.mobile }}</text>
  118. <br />
  119. <text class="subtitle" v-if="selfRuleData.startTime && selfRuleData.endTime">营业时间:{{ selfRuleData.startTime }}-{{ selfRuleData.endTime }}</text>
  120. <text class="subtitle" v-else>营业时间:全天</text>
  121. <text class="subtitle" style="padding-left:10rpx ;">{{ selfRuleData.day.join(',') }}</text>
  122. <br />
  123. <text class="subtitle">地址:{{ selfRuleData.provinceName }}{{ selfRuleData.cityName }}{{ selfRuleData.districtName }}{{ selfRuleData.address }}</text>
  124. </view>
  125. </view>
  126. <!-- 物流信息 -->
  127. <view
  128. class="address-view clearfix"
  129. v-if="order_detail.deliveryType === 3 && order_detail.orderStatus > 3 && order_detail.orderStatus !== 6 && order_detail.logisticsData"
  130. >
  131. <text class="ibonfont ibonwuliu ad-icon"></text>
  132. <view>
  133. <text class="title">{{ order_detail.logisticsData.name || '匿名司机' }}</text>
  134. <text @click="callphone(order_detail.logisticsData.truckTel)" style="margin-left: 50rpx;" class="title">{{ order_detail.logisticsData.truckTel }}</text>
  135. <text @click="callphone(order_detail.logisticsData.truckTel)" class="ibonfont ibondianhua primary-color"></text>
  136. <br />
  137. <text class="subtitle">车牌号:{{ order_detail.logisticsData.truckName }}</text>
  138. <br />
  139. <text class="subtitle">备注:{{ order_detail.logisticsData.remark }}</text>
  140. </view>
  141. </view>
  142. <!-- 商品信息 -->
  143. <view class="goods-view view-main">
  144. <view class="shop-name clearfix">
  145. <view class="float_left">
  146. <image class="shop-logo" :src="order_detail.shopLogo" mode=""></image>
  147. <text>{{ order_detail.shopName }}</text>
  148. </view>
  149. </view>
  150. <block v-for="(it, gindex) in order_detail.goodsData" :key="gindex">
  151. <view class="goods-li clearfix" @click="goPage(`/pagesT/product/product?id=${it.goodsId}`)">
  152. <image class="goods-img float_left" :src="it.images[0]" mode="aspectFill"></image>
  153. <view class="float_right goods-right">
  154. <view class="goods-name">{{ it.goodsName }}</view>
  155. <view class="goods-descrip" v-if="it.isEq === 5">
  156. <view class="desc-li">
  157. <text style="padding-right: 6upx;">{{ it.u_1 }};</text>
  158. </view>
  159. <view class="desc-li">
  160. <text class="icon-jia">下单:</text>
  161. <text class="goods-num">{{ it.u_1_buy }}{{ it.u_1 }}</text>
  162. </view>
  163. <!-- <view class="desc-li" v-if="order_detail.orderStatus === 4 || order_detail.orderStatus === 5">
  164. <text class="icon-jia">发货:</text>
  165. <text class="goods-num">{{ Number(it.outNum) }}{{ it.u_1 }}</text>
  166. </view> -->
  167. </view>
  168. <view class="goods-descrip">
  169. <view class="desc-li">
  170. <text style="padding-right: 6upx;">{{ it.unitName }};</text>
  171. <block v-for="(ip, indexSP) in it.specGroup" :key="indexSP">
  172. <text>{{ ip.specValueName }};</text>
  173. </block>
  174. </view>
  175. <view class="desc-li">
  176. <text class="icon-jia">下单:</text>
  177. <text class="goods-num">{{ it.buyNum }}{{ it.unitName }}</text>
  178. </view>
  179. <view class="desc-li" v-if="order_detail.orderStatus === 4 || order_detail.orderStatus === 5">
  180. <text class="icon-jia">发货:</text>
  181. <text class="goods-num">{{ Number(it.outNum) }}{{ it.unitName }}</text>
  182. </view>
  183. </view>
  184. <view class="goods-price clearfix">
  185. <view class="float_left">
  186. <block v-if="it.isEq === 5">
  187. <text class="price primary-color">¥{{ it.originPrice }}</text>
  188. <text class="primary-color" style="font-size: 22rpx;">/{{ it.u_1 }}</text>
  189. </block>
  190. <text class="price primary-color" v-else>¥{{ it.price }}</text>
  191. </view>
  192. <!-- <view class="float_right" v-if="order_detail.orderStatus === 5">
  193. <u-button
  194. v-if="it.returnStatus === 0"
  195. @click="goPage(`/pagesT/order/ReturnSales?orderId=${order_id}&goodsId=${it.goodsId}&skuId=${it.skuId}`)"
  196. size="mini"
  197. plain
  198. >
  199. 售后
  200. </u-button>
  201. <u-button v-else @click="goPage(`/pagesT/order/ReturnOrder`)" size="mini" plain>{{ it.returnStatus === 1 ? '售后中' : '已售后' }}</u-button>
  202. </view> -->
  203. </view>
  204. </view>
  205. </view>
  206. </block>
  207. </view>
  208. <view class="view-main order-info-view">
  209. <view class="order-info-tit">费用明细</view>
  210. <view class="order-info-cont">
  211. <view class="clearfix info-item">
  212. <text class="subtitle float_left">商品总额</text>
  213. <text class="money-val float_right">¥{{ order_detail.totalMoney || 0 }}</text>
  214. </view>
  215. <view class="clearfix info-item">
  216. <text class="subtitle float_left">订单优惠</text>
  217. <text class="money-val float_right">¥{{ order_detail.orderPreferential || 0 }}</text>
  218. </view>
  219. <view class="clearfix info-item">
  220. <text class="subtitle float_left">优惠券优惠</text>
  221. <text class="money-val float_right">¥{{ order_detail.preferential || 0 }}</text>
  222. </view>
  223. <view class="clearfix info-item">
  224. <text class="subtitle float_left">会员卡优惠</text>
  225. <text class="money-val float_right">¥{{ order_detail.vipDiscount || 0 }}</text>
  226. </view>
  227. <view class="clearfix info-item">
  228. <text class="subtitle float_left">退款金额</text>
  229. <text class="money-val float_right">¥{{ order_detail.retMoney || 0 }}</text>
  230. </view>
  231. <view class="clearfix info-item">
  232. <text class="subtitle float_left">运费</text>
  233. <text class="money-val float_right">¥{{ order_detail.expressMoney || 0 }}</text>
  234. </view>
  235. </view>
  236. <view class="order-price-view">
  237. <text v-if="parseInt(order_detail.payStatus) !== 5">应付款:</text>
  238. <text v-else>实付款:</text>
  239. <text class="price primary-color">¥{{ order_detail.payAmount || 0 }}</text>
  240. </view>
  241. </view>
  242. <view class="view-main order-info-view" v-if="!order_detail.payTypeMsg">
  243. <view class="order-info-tit">支付明细</view>
  244. <view class="order-info-cont">
  245. <view v-for="(item, index) in order_detail.extends.admixPayData" :key="index" class="clearfix info-item">
  246. <text class="subtitle float_left">{{ item.title || '' }}</text>
  247. <text class="money-val float_right">¥{{ item.payMoney || 0 }}</text>
  248. </view>
  249. </view>
  250. </view>
  251. <view class="view-main order-info-view">
  252. <view class="order-info-tit">订单信息</view>
  253. <view class="order-info-cont">
  254. <view class="order-info-li">
  255. <view class="clearfix info-item">
  256. <text class="subtitle float_left">订单编号:</text>
  257. <text class="titledetail float_right">{{ order_detail.no }}</text>
  258. </view>
  259. <view class="clearfix info-item">
  260. <text class="subtitle float_left">下单时间:</text>
  261. <text class="titledetail float_right">{{ $_utils.formatDate(order_detail.createTime) }}</text>
  262. </view>
  263. <view class="clearfix info-item" v-if="order_detail.extends && order_detail.extends.cancelReason">
  264. <text class="subtitle float_left">订单取消:</text>
  265. <text class="titledetail float_right">{{ order_detail.extends.cancelReason }}</text>
  266. </view>
  267. </view>
  268. <view class="order-info-li order-money-view">
  269. <view class="clearfix info-item">
  270. <text class="subtitle float_left">配送方式</text>
  271. <text class="money-val float_right">{{ order_detail.deliveryName }}</text>
  272. </view>
  273. <view class="clearfix info-item">
  274. <text class="subtitle float_left">支付方式</text>
  275. <view class="money-val float_right" v-if="order_detail.payTypeMsg">{{ order_detail.payTypeMsg }}</view>
  276. <view class="money-val float_right" v-else>
  277. <text v-for="(item, index) in order_detail.extends.admixPayData" :key="index">{{ item.title }};</text>
  278. </view>
  279. </view>
  280. <block v-if="order_detail.extends.bankData && order_detail.extends.bankData.image">
  281. <view class="clearfix info-item">
  282. <text class="subtitle float_left">账户名称</text>
  283. <view class="money-val float_right">{{ order_detail.extends.bankData.name }}</view>
  284. </view>
  285. <view class="clearfix info-item">
  286. <text class="subtitle float_left">开户行</text>
  287. <view class="money-val float_right">{{ order_detail.extends.bankData.bankName }}</view>
  288. </view>
  289. <view class="clearfix info-item">
  290. <text class="subtitle float_left">银行账号</text>
  291. <view class="money-val float_right">{{ order_detail.extends.bankData.accountNumber }}</view>
  292. </view>
  293. <view class="clearfix info-item">
  294. <text class="subtitle float_left">打款凭证</text>
  295. <view class="money-val float_right" @click="previewImage(order_detail.extends.bankData.image)">
  296. <image style="width: 150rpx;height: 200rpx;" :src="order_detail.extends.bankData.image" mode="heightFix"></image>
  297. </view>
  298. </view>
  299. </block>
  300. </view>
  301. </view>
  302. </view>
  303. <view class="view-main order-info-view">
  304. <view class="order-info-tit">备注</view>
  305. <view style="font-size: 28upx;">{{ order_detail.remark || '--' }}</view>
  306. </view>
  307. </view>
  308. <view class="clearfix botton-btn-view" v-if="[1, 2, 3, 4, 5].includes(order_detail.orderStatus)">
  309. <block v-if="[1, 2, 4, 5].includes(order_detail.orderStatus) || (order_detail.orderStatus === 3 && order_detail.auditStatus === 1)">
  310. <view class="btnS float_right primary-btn" v-if="order_detail.payType.indexOf('4') > -1 && [1, 2].includes(order_detail.orderStatus)" @click="upBankPic">
  311. 上传凭证
  312. </view>
  313. <!-- #ifdef APP-PLUS||MP-WEIXIN||H5 -->
  314. <view
  315. class="btnS float_right primary-btn"
  316. v-if="parseInt(order_detail.payStatus) !== 5 && order_detail.orderStatus !== 5 && order_detail.payType.indexOf('4') === -1"
  317. @click="gopay"
  318. >
  319. 去付款
  320. </view>
  321. <!-- #endif -->
  322. <!-- 出库状态等于5 的时候可以确认收货 以及出库状态等于6加上退款状态等于5的状态可以确认收货 -->
  323. <!-- (order_detail.orderStatus === 4 && order_detail.outStatus === 6 && order_detail.isRet === 5) -->
  324. <view
  325. class="btnS float_right primary-btn"
  326. v-if="
  327. (order_detail.orderStatus === 4 && order_detail.outStatus === 5) ||
  328. (order_detail.orderStatus === 4 && order_detail.outStatus === 6 )
  329. "
  330. @click="confirmOrder"
  331. >
  332. 确认收货
  333. </view>
  334. <view class="btnS float_right primary-btn" v-if="order_detail.orderStatus === 5" @click="againPay">再次购买</view>
  335. </block>
  336. <view @click="cancelOrder" class="clearBtnS float_right" v-if="[1, 2].includes(order_detail.orderStatus) || (order_detail.orderStatus === 3 && isCancelOrder === 5)">
  337. 取消订单
  338. </view>
  339. </view>
  340. <CancelOrder @confirm="cancelOrderConfirm" :cancelbeforeOrderStatus="order_detail.orderStatus" :payStatus='order_detail.payStatus' :orderId="order_id" @close="closeCancel" :show="cancel_show"></CancelOrder>
  341. </view>
  342. </template>
  343. <script>
  344. import uniStatusBar from '@/components/uni-status-bar/uni-status-bar.vue';
  345. import CancelOrder from './CancelOrder.vue';
  346. export default {
  347. components: {
  348. uniStatusBar,
  349. CancelOrder
  350. },
  351. data() {
  352. return {
  353. navFixed: false,
  354. cancel_show: false,
  355. express_list: [],
  356. order_id: 0,
  357. price: '',
  358. selfRuleData: {},
  359. order_detail: {
  360. receiveData: {
  361. area: {}
  362. },
  363. deliveryName: ''
  364. },
  365. no: '',
  366. // 再次购买的goodsData
  367. goodsData: [],
  368. tmplIds: []
  369. };
  370. },
  371. computed: {
  372. // 是否在发货前可以取消订单
  373. isCancelOrder() {
  374. return this.$store.state.baseSet.cancelOrder || 5;
  375. }
  376. },
  377. async onLoad(options) {
  378. this.order_id = options.id;
  379. // #ifdef MP-WEIXIN
  380. this.getSettingDataByMessageId();
  381. // #endif
  382. },
  383. async onShow() {
  384. await this.getOrderInfoById();
  385. if (this.order_detail.deliveryNo) {
  386. await this.getExpressInfoByOrderId();
  387. }
  388. },
  389. onPageScroll(val) {
  390. this.navFixed = val.scrollTop > 5;
  391. },
  392. methods: {
  393. async getExpressInfoByOrderId() {
  394. await this.$u.api.getExpressInfoByOrderId(this.order_id).then(data => {
  395. this.express_list = data.data.list;
  396. });
  397. },
  398. // 再次购买
  399. againPay() {
  400. // if (this.$store.state.baseSet.personnelReview === 5) {
  401. // 验证账户状态
  402. this.userAudit();
  403. if (!this.isUserAudit) {
  404. return;
  405. }
  406. // }
  407. this.goodsData = this.order_detail.goodsData.map(item => {
  408. let obj = {};
  409. if (item.isEq === 5) {
  410. obj = {
  411. goodsId: item.goodsId,
  412. buyNum: item.u_1_buy,
  413. shopId: item.shopId,
  414. skuId: item.uId_1,
  415. source: this.$common.source(),
  416. goodsBasicId: item.goodsBasicId
  417. };
  418. } else {
  419. obj = {
  420. goodsId: item.goodsId,
  421. buyNum: item.buyNum,
  422. shopId: item.shopId,
  423. skuId: item.skuId,
  424. source: this.$common.source(),
  425. goodsBasicId: item.goodsBasicId
  426. };
  427. }
  428. return obj;
  429. });
  430. this.$u.api
  431. .addCart({
  432. goodsData: this.goodsData
  433. })
  434. .then(res => {
  435. this.goPage('/pages/cart/cart', 'switchTab');
  436. });
  437. },
  438. // 获取订单详情
  439. async getOrderInfoById() {
  440. await this.$u.api
  441. .getOrderInfoById(this.order_id)
  442. .then(data => {
  443. this.order_detail = data.data;
  444. this.selfRuleData = JSON.parse(data.data.selfRuleData);
  445. this.price = this.order_detail.totalMoney;
  446. this.no = this.order_detail.no;
  447. })
  448. .catch(err => {
  449. setTimeout(() => {
  450. uni.navigateBack();
  451. }, 1500);
  452. });
  453. },
  454. // 去支付
  455. gopay() {
  456. const price = this.order_detail.payStatus === 3 ? this.order_detail.notPayMoney : this.order_detail.payAmount;
  457. uni.navigateTo({
  458. url: `/pagesT/money/pay?id=${this.order_id}&price=${price}&no=${this.no}&payType=${this.order_detail.payType}`
  459. });
  460. },
  461. // 上传打款凭证
  462. upBankPic() {
  463. const price = this.order_detail.payStatus === 3 ? this.order_detail.notPayMoney : this.order_detail.payAmount;
  464. this.goPage(`/pagesT/money/BankPay?orderId=${this.order_detail.id}&payAmount=${price}`, 'redirectTo');
  465. },
  466. closeCancel() {
  467. this.cancel_show = false;
  468. },
  469. //取消订单
  470. cancelOrder() {
  471. // #ifdef MP-WEIXIN
  472. if (this.tmplIds.length) {
  473. uni.requestSubscribeMessage({
  474. tmplIds: this.tmplIds,
  475. success: res => {
  476. this.cancelHandel();
  477. },
  478. fail: res => {
  479. this.cancelHandel();
  480. }
  481. });
  482. } else {
  483. this.cancelHandel();
  484. }
  485. // #endif
  486. // #ifdef APP-PLUS||H5
  487. this.cancelHandel();
  488. // #endif
  489. },
  490. cancelHandel() {
  491. this.cancel_show = true;
  492. },
  493. cancelOrderConfirm() {
  494. this.getOrderInfoById();
  495. },
  496. confirmOrder() {
  497. uni.showModal({
  498. title: '提示',
  499. content: '确定要确认收货吗?',
  500. success: res => {
  501. if (res.confirm) {
  502. this.$u.api
  503. .updateOrderStatus(this.order_id, {
  504. orderStatus: 5
  505. })
  506. .then(res => {
  507. this.$api.msg('操作成功');
  508. this.getOrderInfoById();
  509. });
  510. }
  511. }
  512. });
  513. },
  514. previewImage(image) {
  515. // 预览图片
  516. uni.previewImage({
  517. urls: [image],
  518. longPressActions: {
  519. itemList: ['发送给朋友', '保存图片', '收藏']
  520. }
  521. });
  522. },
  523. // 获取消息模版ID
  524. getSettingDataByMessageId() {
  525. this.$u.api
  526. .getSettingDataByMessageId({
  527. id: [5]
  528. })
  529. .then(res => {
  530. if (res.data.length > 0) {
  531. this.tmplIds = res.data.map(item => {
  532. return item.weixinTemplateId;
  533. });
  534. }
  535. });
  536. }
  537. }
  538. };
  539. </script>
  540. <style lang="scss">
  541. .top-view {
  542. background: $base-btn-bg;
  543. .nav-bar {
  544. padding: 24upx 0;
  545. position: relative;
  546. .nv-back {
  547. position: absolute;
  548. top: 24upx;
  549. color: #ffffff;
  550. left: 24upx;
  551. font-size: 40rpx;
  552. }
  553. .title-text {
  554. font-size: 32upx;
  555. color: #fff;
  556. display: inline-block;
  557. width: 100%;
  558. text-align: center;
  559. height: 40upx;
  560. }
  561. }
  562. .order-status-view {
  563. color: #fff;
  564. font-size: 36upx;
  565. padding: 40upx;
  566. .order-icon {
  567. margin-right: 10upx;
  568. font-size: 80upx;
  569. opacity: 0.9;
  570. }
  571. .children-order-status {
  572. font-size: 24upx;
  573. font-weight: 300;
  574. padding-top: 10upx;
  575. }
  576. }
  577. }
  578. .box {
  579. width: 100%;
  580. // overflow-y: scroll;
  581. padding-bottom: 140upx;
  582. // height: 100%;
  583. // margin-bottom: 130upx;
  584. background: $page-color-base;
  585. .view-main {
  586. margin-bottom: 24upx;
  587. background: #fff;
  588. // border-radius: 12upx;
  589. padding: 24upx;
  590. }
  591. .goods-view {
  592. padding: 24upx 0;
  593. .shop-name {
  594. color: #333;
  595. font-weight: bold;
  596. font-size: 24upx;
  597. padding: 0 24upx 24upx;
  598. line-height: 30upx;
  599. .shop-logo {
  600. width: 30upx;
  601. height: 30upx;
  602. vertical-align: middle;
  603. margin-right: 10upx;
  604. }
  605. .order-status {
  606. color: $uni-color-primary;
  607. }
  608. }
  609. .goods-li:last-child {
  610. margin-bottom: 0;
  611. }
  612. .goods-li {
  613. background: #fafafa;
  614. padding: 30upx 20upx;
  615. margin-bottom: 20upx;
  616. .goods-img {
  617. width: 180upx;
  618. height: 180upx;
  619. border-radius: 16rpx;
  620. }
  621. .goods-right {
  622. width: 500upx;
  623. margin-left: 20upx;
  624. .goods-name {
  625. color: #333;
  626. font-size: 32upx;
  627. margin-bottom: 19upx;
  628. text-overflow: -o-ellipsis-lastline;
  629. overflow: hidden;
  630. text-overflow: ellipsis;
  631. display: -webkit-box;
  632. -webkit-line-clamp: 1;
  633. line-clamp: 1;
  634. -webkit-box-orient: vertical;
  635. }
  636. .goods-descrip {
  637. font-size: 24upx;
  638. color: #6c6c6c;
  639. margin-bottom: 10upx;
  640. display: flex;
  641. .desc-li {
  642. flex: 3;
  643. text-align: center;
  644. &:first-child {
  645. text-align: left;
  646. }
  647. &:last-child {
  648. text-align: right;
  649. }
  650. }
  651. }
  652. .goods-price {
  653. .price {
  654. color: $price-color;
  655. font-size: 40upx;
  656. }
  657. .sku {
  658. font-size: 22upx;
  659. font-weight: 300;
  660. color: #666;
  661. }
  662. .icon-jia {
  663. color: #666;
  664. font-size: 24upx;
  665. }
  666. .goods-num {
  667. font-size: 24upx;
  668. }
  669. }
  670. }
  671. }
  672. }
  673. }
  674. .address-view {
  675. font-size: 32upx;
  676. position: relative;
  677. padding: 24upx;
  678. padding-left: 80upx;
  679. margin-bottom: 24rpx;
  680. background: #fff;
  681. .subtitle {
  682. font-size: 28upx;
  683. color: #6c6c6c;
  684. }
  685. .ad-icon {
  686. position: absolute;
  687. top: 50%;
  688. left: 24upx;
  689. color: #666666;
  690. font-size: 36upx;
  691. transform: translateY(-50%);
  692. }
  693. .ibondianhua {
  694. font-size: 36rpx;
  695. margin-left: 20rpx;
  696. }
  697. .ibonjinru-icon {
  698. position: absolute;
  699. top: 50%;
  700. right: 14upx;
  701. color: #999999;
  702. font-size: 28upx;
  703. transform: translateY(-50%);
  704. }
  705. }
  706. .order-info-view {
  707. // font-size: 24upx;
  708. color: #3c3c3c;
  709. .order-info-tit {
  710. font-size: 28upx;
  711. padding-bottom: 20upx;
  712. }
  713. .order-info-cont {
  714. font-size: 24upx;
  715. .info-item {
  716. padding-bottom: 10upx;
  717. .subtitle {
  718. color: #666;
  719. }
  720. }
  721. }
  722. .order-info-li {
  723. border-bottom: 1upx solid #eee;
  724. padding-bottom: 24upx;
  725. margin-bottom: 24upx;
  726. .info-item {
  727. padding-bottom: 10upx;
  728. .subtitle {
  729. color: #666;
  730. }
  731. }
  732. }
  733. .order-price-view {
  734. text-align: right;
  735. padding: 20upx 24upx 0;
  736. margin-top: 20upx;
  737. border-top: 1upx solid #eee;
  738. font-size: 26upx;
  739. .price {
  740. color: $price-color;
  741. padding-left: 6upx;
  742. font-size: 32upx;
  743. font-weight: 600;
  744. }
  745. }
  746. }
  747. .botton-btn-view {
  748. background: #fff;
  749. position: fixed;
  750. box-shadow: 0upx -2upx 10upx 0upx rgba(136, 136, 136, 0.24);
  751. left: 0;
  752. bottom: 0;
  753. width: 100%;
  754. padding: 20upx;
  755. font-size: 28upx;
  756. .btnS {
  757. width: 200upx;
  758. line-height: 64upx;
  759. color: #ffffff;
  760. text-align: center;
  761. height: 64upx;
  762. border-radius: 10upx;
  763. margin-left: 10rpx;
  764. }
  765. .clearBtnS {
  766. width: 200upx;
  767. line-height: 64upx;
  768. color: #6e6e6e;
  769. text-align: center;
  770. margin-right: 10upx;
  771. height: 64upx;
  772. background: rgba(241, 241, 241, 1);
  773. border-radius: 10upx;
  774. }
  775. }
  776. .circleSty {
  777. display: inline-block;
  778. background-color: #9e9e9e;
  779. width: 20upx;
  780. height: 20upx;
  781. border-radius: 50%;
  782. margin-left: 20upx;
  783. }
  784. .subOrder {
  785. position: absolute;
  786. top: -10upx;
  787. left: 60upx;
  788. }
  789. </style>