order.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <template>
  2. <view class="container">
  3. <view class="mark" v-show="showDetail" @click="toShowDetail()"></view>
  4. <view class="list">
  5. <template v-if="orderList.length !== 0">
  6. <view class="messCard" v-for="item in orderList">
  7. <view class="field">
  8. <view class="header">
  9. <text>订单号:{{ item.orderNo }}</text>
  10. <text v-if="item.status == 2">缴费成功</text>
  11. <text v-if="item.status == 1" style="color: #ff8b02"
  12. >缴费失败</text
  13. >
  14. </view>
  15. <view class="content">
  16. <view class="mess-itm">
  17. <text>姓名:</text>
  18. <text>{{ item.studentName }}</text>
  19. </view>
  20. <view class="mess-itm">
  21. <text>学号:</text>
  22. <text>{{ item.payForIdentify }}</text>
  23. </view>
  24. <view class="mess-itm">
  25. <text>班级:</text>
  26. <text>{{ item.className }}</text>
  27. </view>
  28. <view class="mess-itm">
  29. <text class="time">{{ item.createTime }}</text>
  30. <text class="amount">实付款¥{{ item.orderAmount }}</text>
  31. </view>
  32. </view>
  33. <view class="footer">
  34. <view class="bt-item">
  35. <view
  36. ><button
  37. @click="putMess(item.orderNo)"
  38. v-if="item.status == 1"
  39. >
  40. 订单反馈
  41. </button>
  42. </view>
  43. <view
  44. ><button @click="toPay()" v-if="item.status == 1">
  45. 继续支付
  46. </button></view
  47. >
  48. <view><button @click="searchDetail()">查看详情</button></view>
  49. </view>
  50. </view>
  51. </view>
  52. <view class="fieldBg"></view>
  53. </view>
  54. </template>
  55. </view>
  56. <view class="detail" v-show="showDetail">
  57. <view class="top">
  58. <text>订单详情</text>
  59. <view class="close" @click="toShowDetail()">
  60. <view class="image"></view>
  61. </view>
  62. </view>
  63. <view class="content">
  64. <view class="mess-itm">
  65. <text>收费单位:</text>
  66. <text>南昌交通学院</text>
  67. </view>
  68. <view class="mess-itm">
  69. <text>姓名:</text>
  70. <text>{{ studentName }}</text>
  71. </view>
  72. <view class="mess-itm">
  73. <text>学号:</text>
  74. <text>{{ payForIdentify }}</text>
  75. </view>
  76. <view class="mess-itm">
  77. <text>专业:</text>
  78. <text>{{ majorName }}</text>
  79. </view>
  80. <view class="mess-itm">
  81. <text>班级:</text>
  82. <text>{{ className }}</text>
  83. </view>
  84. <view class="mess-itm">
  85. <text>缴费学年:</text>
  86. <text>{{ years }}</text>
  87. </view>
  88. <view class="mess-itm-pay" v-for="item in Arr">
  89. <text>{{ item.id }}:</text>
  90. <text>¥{{ item.money }}</text>
  91. </view>
  92. <view class="mess-itm">
  93. <text>总金额:</text>
  94. <text>¥{{ orderAmount }}</text>
  95. </view>
  96. </view>
  97. </view>
  98. </view>
  99. </template>
  100. <script>
  101. export default {
  102. data() {
  103. return {
  104. showDetail: false, //订单详情弹窗
  105. paySuccess: true, //缴费成功隐藏按钮
  106. orderList: [],
  107. studentName: "",
  108. payForIdentify: "",
  109. majorName: "",
  110. className: "",
  111. years: "",
  112. Arr: [],
  113. orderAmount: "",
  114. status: "",
  115. homeUrl: "https://jtishfw.ncjti.edu.cn/jiaofei/backendApi",
  116. };
  117. },
  118. created() {
  119. this.getOrderList();
  120. },
  121. methods: {
  122. toShowDetail() {
  123. this.showDetail = !this.showDetail;
  124. },
  125. searchDetail() {
  126. this.detailMess();
  127. this.showDetail = !this.showDetail;
  128. },
  129. //获取订单列表
  130. getOrderList() {
  131. let cardNumber = sessionStorage.getItem("cardNumber");
  132. let url = this.homeUrl + "/tuitionpayment/payorder/currentUserList";
  133. uni.request({
  134. url: url,
  135. data: {},
  136. header: {
  137. card_number: cardNumber,
  138. Accept: "application/json",
  139. "Content-Type": " application/x-www-form-urlencoded;charset=utf-8",
  140. "X-Requested-With": "XMLHttpRequest",
  141. },
  142. method: "GET",
  143. sslVerify: true,
  144. success: ({ data, statusCode, header }) => {
  145. console.log(data.data.list);
  146. this.orderList = data.data.list;
  147. let res = data.data.list[0];
  148. this.studentName = res.studentName;
  149. this.payForIdentify = res.payForIdentify;
  150. },
  151. fail: (error) => {},
  152. });
  153. },
  154. //查看详情
  155. detailMess() {
  156. let cardNumber = sessionStorage.getItem("cardNumber");
  157. let url =
  158. this.homeUrl +
  159. `/tuitionpayment/payableinfo/payableInfo/${this.payForIdentify}/${this.studentName}`;
  160. uni.request({
  161. url: url,
  162. header: {
  163. card_number: cardNumber,
  164. Accept: "application/json",
  165. "Content-Type": "application/x-www-form-urlencoded;charset=utf-8",
  166. "X-Requested-With": "XMLHttpRequest",
  167. },
  168. method: "GET",
  169. sslVerify: true,
  170. success: ({ data, statusCode, header }) => {
  171. let res = data.data;
  172. this.years = res.years;
  173. this.majorName = res.majorName;
  174. this.className = res.className;
  175. this.orderAmount = res.realPayAmount;
  176. this.getPayDetail(res.payItemDetail);
  177. },
  178. fail: (error) => {},
  179. });
  180. },
  181. //跳转支付页面
  182. toPay() {
  183. uni.navigateTo({ url: "/pages/Pay/pay" });
  184. },
  185. //获取学费明细
  186. getPayDetail(len) {
  187. //获取明细款项名称数组
  188. var arr = len.match(/[^\\u4e00-\\u9fa5]+/g);
  189. //过滤
  190. var itemIdArr = arr.filter(function (value) {
  191. return value !== ".";
  192. });
  193. //获取明细金额数组
  194. var itemMoneyArr = len.match(/([0-9]+\.[0-9]+)+/g);
  195. //拼接成对象数组
  196. var item = [];
  197. for (var i in (itemIdArr, itemMoneyArr)) {
  198. var c = {
  199. id: itemIdArr[i],
  200. money: itemMoneyArr[i],
  201. };
  202. item.push(c);
  203. }
  204. this.Arr = item;
  205. },
  206. },
  207. };
  208. </script>
  209. <style lang="less">
  210. @import url("./css/order.min.css");
  211. </style>