site.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. import * as API from '@/apis/buytickets.js'
  2. import * as Pay from '@/apis/weixin.js'
  3. import {
  4. wxPayJs
  5. } from '@/utils/wxpay'
  6. export default {
  7. data() {
  8. return {
  9. total:0,
  10. uid: '', //用户id ,有id是修改
  11. id: '', //车id
  12. type: 2,
  13. pnum: 0,
  14. pic:'',
  15. personNum:0,
  16. buy:false,
  17. up: {
  18. name: '',
  19. id: ''
  20. },
  21. down: {
  22. name: '请选择',
  23. id: ''
  24. },
  25. oplist:[],
  26. ticket: {
  27. price1: 0,
  28. price2: 0,
  29. },
  30. list:[
  31. {
  32. id:1,
  33. name:"儿童票"
  34. },{
  35. id:2,
  36. name:"成人票"
  37. }
  38. ],
  39. underLine: 1,
  40. op: {
  41. }
  42. }
  43. },
  44. methods: {
  45. radioGroupChange(){
  46. var ptotal=this.getTotal();
  47. ptotal+=parseFloat(this.pnum)
  48. this.total=ptotal;
  49. },
  50. getTotal(){
  51. var ptotal=0;
  52. for(var i in this.oplist){
  53. if(this.oplist[i].ticketType=="1"){
  54. ptotal+=parseFloat(this.ticket.price1*100)
  55. }
  56. if(this.oplist[i].ticketType=="2"){
  57. ptotal+=parseFloat(this.ticket.price2*100)
  58. }
  59. }
  60. return ptotal/100;
  61. },
  62. personDelete(){
  63. },
  64. deleteBtn() {
  65. this.$refs.common.setFnc(this.personDelete)
  66. this.$refs.common.confirm('是否删除该乘车人信息?')
  67. },
  68. select() {
  69. uni.navigateTo({
  70. url: '/pages/buytickets/selectSite?select=true&id=' + this.id
  71. })
  72. },
  73. submit(id) {
  74. this.$refs.common.showLoading();
  75. console.log("Pay+"+new Date().getTime())
  76. Pay.wxpay(id).then((response) => {
  77. if(!response.result){
  78. this.$refs.common.showLoading(false, response.message);
  79. return
  80. }
  81. var data = response.data
  82. var url = window.location.href.split("#")[0] + "/#/pages/buytickets/success";
  83. var obj = {
  84. ...data,
  85. url: url
  86. }
  87. console.log("Pay+"+new Date().getTime())
  88. wxPayJs(obj);
  89. }).catch(error => {
  90. this.$refs.common.showLoading(false, error);
  91. })
  92. },
  93. clickBtn(bl) {
  94. var obj = this.carhelp.get("form")
  95. //obj = this.carhelp.set("form", obj)
  96. this.$refs.common.showLoading();
  97. var arr=[]
  98. var arr2=[]
  99. for(var i in obj.oplist){
  100. arr.push(obj.oplist[i].id);
  101. }
  102. for(var i in this.oplist){
  103. arr2.push(this.oplist[i].ticketType);
  104. }
  105. var thisform={
  106. id:this.id,
  107. mergeOrderId:obj.mergeOrderId,
  108. openId:this.carhelp.getOpenId(),
  109. passengerIds:arr.join(),
  110. ticketUpStationId:this.up.id,
  111. ticketDownStationId:this.down.id,
  112. ticketTypes:arr2.join(),
  113. goodsTicket:this.pnum,
  114. totalFee:this.total
  115. }
  116. if(obj.op){
  117. }else{
  118. API.createPassengerOrder(thisform).then((response) => {
  119. if(this.buy||bl==true){
  120. this.submit(response.data.MergeOrderDTO.id);
  121. }else{
  122. obj.oplist=[];
  123. obj.ticket=null;
  124. obj = this.carhelp.set("form", obj)
  125. uni.reLaunch({
  126. url: '/pages/buytickets/home?id=' + this.id
  127. })
  128. }
  129. console.log(response)
  130. }).catch(error => {
  131. this.$refs.common.showLoading(false, error);
  132. })
  133. }
  134. },
  135. underLineChange(index) {
  136. this.underLine = index;
  137. console.log('当前值为: ' + index)
  138. },
  139. ticketAmount(){
  140. this.$refs.common.showLoading();
  141. var thisform={
  142. ticketUpStationId:this.up.id,
  143. ticketDownStationId:this.down.id,
  144. ticketDownStationName:this.down.name,
  145. price1:0,
  146. price2:0
  147. }
  148. thisform.ticketType=1;
  149. var obj= this.carhelp.get("form");
  150. API.ticketAmount(thisform).then((response) => {
  151. thisform.price1=response.data.price
  152. thisform.ticketType=2;
  153. API.ticketAmount(thisform).then((response2) => {
  154. thisform.price2=response2.data.price
  155. this.ticket=thisform;
  156. this.radioGroupChange()
  157. obj.ticket=thisform;
  158. this.carhelp.set("form",obj);
  159. this.$refs.common.showLoading(false);
  160. })
  161. }).catch(error => {
  162. this.$refs.common.showLoading(false, error);
  163. })
  164. },
  165. },onReady(){
  166. var obj = this.carhelp.get("form");
  167. if(this.uid && !obj.ticket){
  168. this.ticketAmount();
  169. }
  170. },
  171. onLoad(op) {
  172. this.id = op.id;
  173. var obj = this.carhelp.get("form");
  174. this.buy=obj.buy;
  175. this.oplist=obj.oplist;
  176. for(var i in this.oplist){
  177. if(!this.oplist[i].ticketType){
  178. this.oplist[i].ticketType="2"
  179. }
  180. }
  181. this.up.name = obj.oplist[0].upStationName;
  182. this.up.id = obj.oplist[0].upStationId;
  183. this.personNum=obj.oplist.length
  184. if (obj.ticket) {
  185. this.ticket = obj.ticket;
  186. this.radioGroupChange()
  187. this.down = {
  188. id: obj.ticket.ticketDownStationId,
  189. name: obj.ticket.ticketDownStationName
  190. }
  191. }
  192. }
  193. }