rechargeorder.vue 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. <template>
  2. <base-page>
  3. <view class="goodslist">
  4. <view class="goodslist-box">
  5. <view class="goodslist-left">
  6. <view class="goods-title">
  7. 充值订单
  8. <text class="iconfont icongengduo1"></text>
  9. <!-- <view class="screen">
  10. 筛选
  11. <text class="iconfont iconxiala"></text>
  12. </view> -->
  13. </view>
  14. <view class="goods-search">
  15. <view class="search">
  16. <text class="iconfont icon31sousuo"></text>
  17. <input type="text" v-model="search_text" @input="search" placeholder="搜索订单号/流水号/买家" />
  18. </view>
  19. </view>
  20. <block v-if="!one_judge && order_list.length > 0">
  21. <scroll-view scroll-y="true" class="goods-list-scroll" :show-scrollbar="false" @scrolltolower="getOrderList">
  22. <view
  23. class="item"
  24. @click="getOrderDetail(item.order_id, index)"
  25. v-for="(item, index) in order_list"
  26. :key="index"
  27. :class="index == selectGoodsKeys ? 'itemhover' : ''"
  28. >
  29. <view class="title">
  30. <view>订单编号:{{ item.order_no }}</view>
  31. <view>充值订单</view>
  32. </view>
  33. <view class="total-money-num">
  34. <view class="member-info">
  35. <view>买家:</view>
  36. <view v-if="item.member_id">{{ item.nickname }}</view>
  37. <view v-else>散客</view>
  38. </view>
  39. <view class="box">
  40. <view>充值金额</view>
  41. <view>¥{{ item.face_value }}</view>
  42. </view>
  43. <view class="box">
  44. <view>实付金额</view>
  45. <view>¥{{ item.price }}</view>
  46. </view>
  47. </view>
  48. </view>
  49. </scroll-view>
  50. </block>
  51. <view class="notYet" v-else-if="!one_judge && order_list.length == 0">暂无数据</view>
  52. </view>
  53. <view class="goodslist-right">
  54. <view class="goods-title">订单详情</view>
  55. <view class="order-information" v-show="!one_judge">
  56. <block v-if="JSON.stringify(order_detail) != '{}'">
  57. <view class="order-status">充值订单</view>
  58. <view class="order-types">
  59. <view class="type type1">
  60. <view>订单编号:</view>
  61. <view>{{ order_detail.order_no }}</view>
  62. </view>
  63. <view class="type type1">
  64. <view>订单流水号:</view>
  65. <view>{{ order_detail.out_trade_no }}</view>
  66. </view>
  67. <view class="type type1">
  68. <view>买家:</view>
  69. <view v-if="order_detail.member_id">
  70. {{ order_detail.nickname }}
  71. <text class="look" @click="$util.redirectTo('/pages/member/list', { member_id: order_detail.member_id })">查看</text>
  72. </view>
  73. <view v-else>散客</view>
  74. </view>
  75. <view class="type type1">
  76. <view>实付金额:</view>
  77. <view>{{ order_detail.price }}</view>
  78. </view>
  79. <view class="type type1">
  80. <view>实付方式:</view>
  81. <view>{{ order_detail.pay_type_name }}</view>
  82. </view>
  83. <view class="type type1">
  84. <view>状态:</view>
  85. <view>{{ order_detail.status == 2 ? '已支付' : '未支付' }}</view>
  86. </view>
  87. <view class="type type1">
  88. <view>支付时间:</view>
  89. <view>{{ order_detail.pay_time > 0 ? $util.timeFormat(order_detail.pay_time) : '' }}</view>
  90. </view>
  91. <view class="type type1">
  92. <view>订单来源:</view>
  93. <view>{{ order_detail.order_from_name }}</view>
  94. </view>
  95. </view>
  96. <view class="other-information">
  97. <view class="title">其他信息</view>
  98. <view class="item-box">
  99. <view class="item">
  100. <view>套餐名称:</view>
  101. <view>{{ order_detail.recharge_name }}</view>
  102. </view>
  103. <view class="item">
  104. <view>充值面值:</view>
  105. <view>{{ order_detail.face_value }}</view>
  106. </view>
  107. <view class="item">
  108. <view>售价:</view>
  109. <view>{{ order_detail.buy_price }}</view>
  110. </view>
  111. <view class="item" v-if="order_detail.point > 0">
  112. <view>赠送积分:</view>
  113. <view>{{ order_detail.point }}</view>
  114. </view>
  115. <view class="item" v-if="order_detail.growth > 0">
  116. <view>赠送成长值:</view>
  117. <view>{{ order_detail.growth }}</view>
  118. </view>
  119. </view>
  120. <view class="goods-info" v-if="order_detail.coupon_list['data'].length > 0">
  121. <view class="title">赠送优惠券</view>
  122. <view class="table">
  123. <view class="table-th table-all">
  124. <view class="table-td" style="width:25%">优惠券名称</view>
  125. <view class="table-td" style="width:15%">类型</view>
  126. <view class="table-td" style="width:35%">优惠金额</view>
  127. <view class="table-td" style="width:25%;justify-content: flex-end;">有效期</view>
  128. </view>
  129. <block v-for="(item, index) in order_detail.coupon_list['data']" :key="index">
  130. <view class="table-tr table-all">
  131. <view class="table-td" style="width:25%">{{ item.coupon_name }}</view>
  132. <view class="table-td" style="width:15%">{{ item.type == 'reward' ? '满减券' : '折扣券' }}</view>
  133. <view class="table-td" style="width:40%" v-if="item.type == 'reward'">满{{ item.at_least }}元减{{ item.money }}</view>
  134. <view class="table-td" style="width:35%" v-if="item.type == 'discount'">
  135. 满{{ item.at_least }}元打{{ item.discount }}折
  136. <block v-if="item.discount_limit">(最多抵扣{{ item.discount_limit }}元)</block>
  137. </view>
  138. <view class="table-td uni-column" style="width:25%;text-align: right;align-items: flex-end;">
  139. <view v-if="item.end_time">{{ $util.timeFormat(item.end_time) }}</view>
  140. <view v-else>长期有效</view>
  141. </view>
  142. </view>
  143. </block>
  144. </view>
  145. </view>
  146. </view>
  147. </block>
  148. <block v-else><image class="cart-empty" :src="$util.img('public/uniapp/cashier/cart_empty.png')" mode="widthFix"></image></block>
  149. </view>
  150. </view>
  151. </view>
  152. </view>
  153. </base-page>
  154. </template>
  155. <script>
  156. import nsjournal from '@/components/ns-journal/ns-journal.vue';
  157. import unipopup from '@/components/uni-popup/uni-popup.vue';
  158. import nsremark from '@/components/ns-remark/ns-remark.vue';
  159. import nsjustmoney from '@/components/ns-justmoney/ns-justmoney.vue';
  160. export default {
  161. components: {
  162. nsjournal,
  163. nsremark,
  164. unipopup,
  165. nsjustmoney
  166. },
  167. data() {
  168. return {
  169. selectGoodsKeys: 0,
  170. // 订购日志所需列表数据
  171. list: [],
  172. //获取订单的页数
  173. page: 1,
  174. //每次获取订单的条数
  175. page_size: 8,
  176. // 订单搜索是用到的数据
  177. search_text: '',
  178. //订单类型
  179. trade_type: '',
  180. //初始时加载详情数据判断
  181. one_judge: true,
  182. // 订单列表数据
  183. order_list: [],
  184. //订单详情数据
  185. order_detail: {}
  186. };
  187. },
  188. onLoad(option) {
  189. this.order_type = option.order_type || '';
  190. /**
  191. * 获取订单列表数据
  192. */
  193. this.getOrderList();
  194. },
  195. watch: {},
  196. methods: {
  197. // 搜索
  198. search() {
  199. this.page = 1;
  200. this.order_list = [];
  201. this.one_judge = true;
  202. this.getOrderList();
  203. },
  204. /**
  205. * 获取订单列表
  206. */
  207. getOrderList() {
  208. this.$api.sendRequest({
  209. url: '/cashier/storeapi/recharge/orderpage',
  210. data: {
  211. page: this.page,
  212. page_size: this.page_size,
  213. search_text: this.search_text
  214. },
  215. success: res => {
  216. if (res.data.list.length == 0 && this.one_judge) {
  217. this.order_detail = {};
  218. this.one_judge = false;
  219. }
  220. if (res.code >= 0 && res.data.list.length != 0) {
  221. this.page += 1;
  222. if (this.order_list.length == 0) {
  223. this.order_list = res.data.list;
  224. } else {
  225. this.order_list = this.order_list.concat(res.data.list);
  226. }
  227. //初始时加载一遍详情数据
  228. if (this.one_judge) {
  229. this.getOrderDetail(this.order_list[0].order_id);
  230. }
  231. }
  232. }
  233. });
  234. },
  235. /**
  236. * 获取订单详情数据
  237. */
  238. getOrderDetail(order_id, keys = 0, callback) {
  239. this.selectGoodsKeys = keys;
  240. this.type = 'detail';
  241. this.$api.sendRequest({
  242. url: '/cashier/storeapi/recharge/orderdetail',
  243. data: {
  244. order_id
  245. },
  246. success: res => {
  247. if (res.code >= 0) {
  248. this.order_detail = res.data;
  249. if (typeof callback == 'function') {
  250. callback();
  251. }
  252. this.$forceUpdate();
  253. this.one_judge = false;
  254. }
  255. }
  256. });
  257. },
  258. /**
  259. * @param {Object} 订单功能 弹窗开启
  260. */
  261. open(remark) {
  262. this.$refs[remark].open();
  263. },
  264. /**
  265. * @param {Object} 订单曹组弹窗关闭
  266. */
  267. close(name) {
  268. this.$refs[name].close();
  269. }
  270. }
  271. };
  272. </script>
  273. <style scoped lang="scss">
  274. @import './public/css/orderlist.scss';
  275. .goodslist .goodslist-box .goodslist-right .order-information .goods-info {
  276. padding: 0.2rem 0;
  277. }
  278. </style>