details.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. <template>
  2. <view class="app-container">
  3. <view class="head u-flex-center" v-if="pageType == '1'">
  4. <image class="logo" v-if="info.image" :src="info.image" alt="" />
  5. <view class="name">{{ info.businessName }}</view>
  6. </view>
  7. <view class="line" v-if="pageType == '2'" style="height: 1rpx"></view>
  8. <view class="list">
  9. <view class="list-title u-flex-center">
  10. <view class="list-title-line"></view>
  11. <text class="list-title-text">订单信息</text>
  12. </view>
  13. <view class="list-item u-flex-center-sb" v-if="pageType == '2'">
  14. <text class="lable">订单状态:</text>
  15. <view class="value">
  16. <text v-if="info.orderStatus == 0" style="color: #ff0000"
  17. >待付款</text
  18. >
  19. <text v-else-if="info.orderStatus == 10">已付款</text>
  20. <text v-else-if="info.orderStatus == 70">退款中</text>
  21. <text v-else-if="info.orderStatus == 80">已退款</text>
  22. <text v-else-if="info.orderStatus == 100">已取消</text>
  23. <text v-else>--</text>
  24. </view>
  25. </view>
  26. <view class="list-item u-flex-center-sb" v-if="pageType != '2'">
  27. <text class="lable">金额:</text>
  28. <text class="num" v-if="info.payAmount != null"
  29. >¥{{ info.payAmount || 0 }}</text
  30. >
  31. <text class="value" v-else>--</text>
  32. </view>
  33. <view class="list-item u-flex-center-sb" v-if="pageType == '2'">
  34. <text class="lable">订单金额(元):</text>
  35. <text class="num" v-if="info.orderAmount != null"
  36. >¥{{ info.orderAmount || 0 }}</text
  37. >
  38. <text class="value" v-else>--</text>
  39. </view>
  40. <view class="list-item u-flex-center-sb">
  41. <text class="lable">用户手机号:</text>
  42. <text class="value">{{ info.userMobile || "--" }}</text>
  43. </view>
  44. <view class="list-item u-flex-center-sb">
  45. <text class="lable">支付方式:</text>
  46. <view class="value">
  47. <text v-if="info.payType == 0">微信</text>
  48. <text v-else-if="info.payType == 1">支付宝</text>
  49. <text v-else-if="info.payType == 10">微信</text>
  50. <text v-else-if="info.payType == 11">支付宝</text>
  51. <text v-else>--</text>
  52. </view>
  53. </view>
  54. <view class="list-item u-flex-center-sb">
  55. <text class="lable">下单时间:</text>
  56. <text class="value">{{ info.createTime || "--" }}</text>
  57. </view>
  58. <view class="list-item u-flex-center-sb" v-if="info.orderStatus == 0">
  59. <text class="lable">待付款:</text>
  60. <!-- <text class="value">26:12</text> -->
  61. <view class="value">
  62. <uv-count-down
  63. :time="handleTime(info.expireTime)"
  64. format="mm:ss"
  65. ></uv-count-down>
  66. </view>
  67. </view>
  68. <view class="list-item u-flex-center-sb" v-else>
  69. <text class="lable">付款时间:</text>
  70. <text class="value">{{ info.payTime || "--" }}</text>
  71. </view>
  72. </view>
  73. <view class="list" v-if="info.subsidyQueueVo">
  74. <view class="list-title u-flex-center">
  75. <view class="list-title-line"></view>
  76. <text class="list-title-text">补贴信息</text>
  77. </view>
  78. <view class="list-item u-flex-center-sb">
  79. <text class="lable">最多补贴金额(元):</text>
  80. <text class="value">{{
  81. info.subsidyQueueVo.shouldSubsidyAmount || "--"
  82. }}</text>
  83. </view>
  84. <view class="list-item u-flex-center-sb">
  85. <text class="lable">已补贴金额(元):</text>
  86. <text class="value">{{
  87. info.subsidyQueueVo.actualSubsidyAmount || "--"
  88. }}</text>
  89. </view>
  90. <view class="list-item u-flex-center-sb">
  91. <text class="lable">已补贴积分:</text>
  92. <text class="value">{{
  93. info.subsidyQueueVo.subsidyPoints || "--"
  94. }}</text>
  95. </view>
  96. <view class="list-item u-flex-center-sb">
  97. <text class="lable">排队时间 :</text>
  98. <text class="value">{{ info.subsidyQueueVo.queueTime || "--" }}</text>
  99. </view>
  100. </view>
  101. <view
  102. class="list"
  103. v-if="
  104. (info.orderStatus == 70 || info.orderStatus == 80) &&
  105. info.onlineRefundOrderVo
  106. "
  107. >
  108. <view class="list-title u-flex-center">
  109. <view class="list-title-line"></view>
  110. <text class="list-title-text">退款信息</text>
  111. </view>
  112. <view class="list-item u-flex-center-sb">
  113. <text class="lable">退款状态:</text>
  114. <text class="value" v-if="info.onlineRefundOrderVo.refundStatus == 0"
  115. >未退款</text
  116. >
  117. <text
  118. class="value"
  119. v-else-if="info.onlineRefundOrderVo.refundStatus == 5"
  120. >退款中</text
  121. >
  122. <text
  123. class="value"
  124. v-else-if="info.onlineRefundOrderVo.refundStatus == 10"
  125. >已退款</text
  126. >
  127. </view>
  128. <view class="list-item u-flex-center-sb" v-if="pageType == '2'">
  129. <text class="lable">退款申请时间:</text>
  130. <text class="value">{{
  131. info.onlineRefundOrderVo.refundApplyTime || "--"
  132. }}</text>
  133. </view>
  134. <view class="list-item u-flex-center-sb">
  135. <text class="lable">应退金额:</text>
  136. <text class="value">{{ info.onlineRefundOrderVo.payAmount || 0 }}</text>
  137. </view>
  138. <view class="list-item u-flex-center-sb">
  139. <text class="lable">退款金额(元):</text>
  140. <text class="value">{{
  141. info.onlineRefundOrderVo.refundAmount || 0
  142. }}</text>
  143. </view>
  144. <view class="list-item u-flex-center-sb">
  145. <text class="lable">退款完成时间 :</text>
  146. <text class="value">{{
  147. info.onlineRefundOrderVo.refundCompleteTime || "--"
  148. }}</text>
  149. </view>
  150. </view>
  151. </view>
  152. </template>
  153. <script setup>
  154. import { ref, reactive } from "vue";
  155. import { onLoad } from "@dcloudio/uni-app";
  156. import { onlineorderInfo_Api } from "@/api/order.js";
  157. import { getBusinessInfoId_Api } from "@/api/shop.js";
  158. const pageType = ref("1"); // 1:用户查看在线订单页面,2:商户查看在线订单页面
  159. const info = ref({});
  160. const getInfo = (id) => {
  161. uni.showLoading({
  162. title: "加载中...",
  163. });
  164. onlineorderInfo_Api(id)
  165. .then((res) => {
  166. uni.hideLoading();
  167. if (res.code == 200) {
  168. info.value = res.data || {};
  169. if (pageType.value == "1") {
  170. getBusinessInfoId_Api(res.data.businessId).then((res) => {
  171. if (res.code == 200) {
  172. info.value.image = res.data.image || {};
  173. }
  174. });
  175. }
  176. }
  177. })
  178. .catch((err) => {
  179. console.log(err);
  180. // uni.hideLoading();
  181. });
  182. };
  183. const handleTime = (time = "") => {
  184. if (!time) return 0;
  185. let endTime = new Date(time).getTime();
  186. let startTime = new Date().getTime();
  187. let num = endTime - startTime;
  188. return num > 0 ? num : 0;
  189. };
  190. onLoad((options) => {
  191. if (options.pageType) pageType.value = options.pageType;
  192. if (options.id) getInfo(options.id);
  193. });
  194. </script>
  195. <style lang="scss" scoped>
  196. .app-container {
  197. min-height: 100vh;
  198. padding-bottom: 30rpx;
  199. box-sizing: border-box;
  200. background-color: #f7f7f7;
  201. .head {
  202. background-color: #ffffff;
  203. padding: 32rpx 54rpx;
  204. box-sizing: border-box;
  205. .logo {
  206. width: 90rpx;
  207. height: 90rpx;
  208. border-radius: 10rpx;
  209. flex-shrink: 0;
  210. margin-right: 30rpx;
  211. }
  212. .name {
  213. font-size: 36rpx;
  214. color: #1a1a1a;
  215. font-weight: 700;
  216. }
  217. }
  218. .list {
  219. margin-top: 20rpx;
  220. background-color: #ffffff;
  221. border-radius: 24rpx;
  222. padding: 16rpx 30rpx 36rpx 30rpx;
  223. .list-title {
  224. .list-title-line {
  225. width: 8rpx;
  226. height: 32rpx;
  227. background: #eb5153;
  228. border-radius: 4rpx;
  229. margin-right: 15rpx;
  230. }
  231. .list-title-text {
  232. font-size: 30rpx;
  233. color: #1a1a1a;
  234. font-weight: 700;
  235. }
  236. }
  237. .list-item {
  238. font-size: 28rpx;
  239. padding-top: 20rpx;
  240. .value {
  241. color: #808080;
  242. }
  243. .num {
  244. color: #da4f4f;
  245. }
  246. }
  247. }
  248. }
  249. </style>