order.vue 7.3 KB

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