index - 副本.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. <template>
  2. <view v-if="isShowView">
  3. <view class="info">
  4. <view class="info-c">
  5. <view class="status ddflex">
  6. <image src="../static/images/dai_sy.png"></image>
  7. {{ detail.state > 3 && detail.state < 7 ? '待核销' : '已核销' }}
  8. </view>
  9. <view class="infos">
  10. <view class="shop ddflex" v-if="detail.merchantName">
  11. <image src="../static/images/dpico.png"></image>
  12. {{ detail.merchantName }}
  13. </view>
  14. <view v-for="(items, index) in deliverListss" :key="index">
  15. <view class="product ddflex" v-for="(item, index1) in items.extendDTOList" :key="index1">
  16. <image :src="item.pic" mode="aspectFill"></image>
  17. <view class="fflex">
  18. <view class="pro-tit">{{ item.productName }}</view>
  19. <view class="specs" v-if="item.specsList && item.specsList.length > 0">
  20. 规格
  21. <text v-for="(itemGuige, index2) in item.specsList" :key="index2">{{ itemGuige.value }}</text>
  22. </view>
  23. <view class="pro-opt ddflex">
  24. <view class="price">
  25. <text>¥</text>
  26. {{ item.money }}
  27. </view>
  28. <view class="count">×{{ item.deliverQuantity }}</view>
  29. </view>
  30. </view>
  31. </view>
  32. </view>
  33. <view v-if="detail.state > 3 && detail.state < 7" class="code ddflex">
  34. <u-qrcode ref="qrcode" canvas-id="qrcode" :value="'HX'+detail.code" size="170"></u-qrcode>
  35. </view>
  36. <!-- <view class="code-info ddflex">
  37. <view class="fflex">
  38. <view class="code-sta">
  39. <text>{{ detail.state > 3 && detail.state < 7 ? '待核销' : '已核销' }}</text>
  40. </view>
  41. <view class="code-ma">{{ detail.code }}</view>
  42. </view>
  43. <block v-if="detail.state != 1 && detail.state != 8 && detail.state != 9 && detail.state != 10">
  44. <block v-if="detail.state >= 30 && detail.state <= 43"></block>
  45. <view v-else class="tk-btn" @tap="detail.isRefundStock == 1 ? refundmod() : refundmods()">申请售后</view>
  46. </block>
  47. </view> -->
  48. </view>
  49. </view>
  50. </view>
  51. <view class="det">
  52. <view class="li ddflex">
  53. <view class="label">订单编号</view>
  54. <view class="item fflex">{{ detail.id }}</view>
  55. </view>
  56. <view class="li ddflex">
  57. <view class="label">创建时间</view>
  58. <view class="item fflex">{{ detail.createDate }}</view>
  59. </view>
  60. <view class="li ddflex" v-if="detail.deliverTime">
  61. <view class="label">核销时间</view>
  62. <view class="item fflex">{{ detail.deliverTime }}</view>
  63. </view>
  64. <view class="li ddflex">
  65. <view class="label">订单金额</view>
  66. <view class="priceitem fflex">¥{{ detail.money }}</view>
  67. </view>
  68. <view class="li ddflex" v-if="detail.discountMoney && detail.orderType != 11">
  69. <view class="label">优惠券</view>
  70. <view class="priceitem fflex">-¥{{ detail.discountMoney }}</view>
  71. </view>
  72. <view class="li ddflex" v-if="detail.balancePayMoney">
  73. <view class="label">余额扣除</view>
  74. <view class="priceitem fflex">-¥{{ detail.balancePayMoney }}</view>
  75. </view>
  76. <view class="li ddflex">
  77. <view class="label">{{ detail.state == 1 || detail.state == 8 ? '应付' : '实付' }}金额</view>
  78. <view class="priceitem fflex">¥{{ detail.payMoney }}</view>
  79. </view>
  80. </view>
  81. <view style="height: 130rpx;"></view>
  82. <view class="bot">
  83. <block v-if="detail.state != 1 && detail.state != 8 && detail.state != 9 && detail.state != 10">
  84. <block v-if="detail.state >= 30 && detail.state <= 43"></block>
  85. <view v-else class="sta-btn" @tap="detail.isRefundStock == 1 ? refundmod() : refundmods()">申请售后</view>
  86. </block>
  87. </view>
  88. <!-- 申请售后弹窗 -->
  89. <view class="ceng" v-if="popShow" @click="cancel()"></view>
  90. <view class="popup" v-if="popShow">
  91. <view class="pop-tit">提示</view>
  92. <view class="pop-tip">当前{{ detail.stateName }},如有售后问题,请咨询客服</view>
  93. <view class="pop-btn dflex">
  94. <view class="pop-cancel" @click="cancel()">取消</view>
  95. <button open-type="contact" class="pop-contact">咨询客服</button>
  96. </view>
  97. </view>
  98. </view>
  99. </template>
  100. <script>
  101. const req = require('../../utils/request.js');
  102. const api = require('../../utils/api.js');
  103. const app = getApp();
  104. export default {
  105. data() {
  106. return {
  107. isShowView:false,
  108. bottomBlankHeight: app.globalData.isIPhoneX ? 68 : 0,
  109. picUrlss: req.public.picUrls,
  110. id: '',
  111. params: {},
  112. code: '',
  113. deliverListss: '',
  114. detail: '',
  115. popShow: false
  116. };
  117. },
  118. onLoad(options) {
  119. this.id = options.id;
  120. this.getDetail();
  121. },
  122. onReachBottom() {},
  123. methods: {
  124. getDetail() {
  125. req.getRequest(
  126. '/api/order/detail',
  127. {
  128. id: this.id
  129. },
  130. data => {
  131. this.deliverListss = data.deliverList;
  132. data.refund = data.products.filter(it => it.quantity - (it.refundStock ? it.refundStock : 0) > 0).length;
  133. this.detail = data;
  134. this.isShowView=true;
  135. }
  136. );
  137. },
  138. getStateText() {
  139. if (this.detail.state > 1) {
  140. }
  141. // <view :class="'li ' + (state > 1 && state < 20 ? 'ing' : '')">
  142. // <text></text>
  143. // {{ mode != 1 ? stateName : '待自提' }}
  144. // </view>
  145. // <view :class="'li ' + (state > 3 && state < 20 ? 'ing' : '')" v-if="mode != 1">
  146. // <text></text>
  147. // 待收货
  148. // </view>
  149. // <view :class="'li ' + ((mode != 1 && state == 7) || (mode == 1 && state == 6) ? 'ing' : '')">
  150. // <text></text>
  151. // {{ mode != 1 ? '已完成' : '已自提' }}
  152. // </view>
  153. },
  154. refundmod(event) {
  155. //申请退款
  156. uni.navigateTo({
  157. url: '/mine/refund/refundType/refundType?id=' + this.id
  158. });
  159. },
  160. refundmods() {
  161. this.popShow = true;
  162. },
  163. cancel() {
  164. this.popShow = false;
  165. },
  166. getData() {
  167. req.getRequest(api.card_detail, { id: this.id }, data => {
  168. if (data.showProduct.specs && data.showProduct.specs !== 'DEFAULT_SKU') {
  169. data.showProduct.specs = JSON.parse(data.showProduct.specs);
  170. } else {
  171. data.showProduct.specs = '';
  172. }
  173. this.params = data;
  174. });
  175. },
  176. checks(item, index) {
  177. let pageList = this.pageList;
  178. if (pageList[index].isShow) {
  179. pageList[index].isShow = false;
  180. this.pageList = JSON.parse(JSON.stringify(pageList));
  181. } else {
  182. pageList.map((it, dx) => {
  183. if (dx == index) it.isShow = true;
  184. else it.isShow = false;
  185. return it;
  186. });
  187. this.pageList = JSON.parse(JSON.stringify(pageList));
  188. }
  189. },
  190. createCode(item) {
  191. this.currentCard = item;
  192. this.isShowCard = true;
  193. },
  194. hideCardPop() {
  195. this.isShowCard = false;
  196. },
  197. copyCode() {
  198. uni.setClipboardData({
  199. data: this.currentCard.code,
  200. success() {
  201. req.msg('复制成功');
  202. }
  203. });
  204. },
  205. jumpUrl(url) {
  206. uni.navigateTo({
  207. url: url
  208. });
  209. },
  210. scanCode() {
  211. uni.scanCode({
  212. success: function(res) {
  213. console.log('条码类型:' + res.scanType);
  214. console.log('条码内容:' + res.result);
  215. uni.navigateTo({
  216. url: '/mine/secondCard/secondCard?code=' + res.result
  217. });
  218. }
  219. });
  220. }
  221. }
  222. };
  223. </script>
  224. <style>
  225. @import './index.css';
  226. </style>