pay-price-difference.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. var businessT = require('../../../../tool/business-tool.js')
  2. var sysT = require('../../../../tool/sys-tool.js')
  3. var url = require('../../../../constant/url.js')
  4. import Net from '../../../../tool/net.js'
  5. var net = new Net()
  6. var pay = require('../../../../public/pay.js')
  7. var businessType = require('../../../../public/business-type.js')
  8. Page({
  9. /**
  10. * 页面的初始数据
  11. */
  12. data: {
  13. scroll: true,
  14. isLoading: true,
  15. detailsView: {
  16. data: {},
  17. scroll: false,
  18. left: 0,
  19. hidden: true,
  20. animation: {},
  21. discountU: false,
  22. status: 1,
  23. sa: false
  24. },
  25. tab: {
  26. id: '1',
  27. animation: {}
  28. },
  29. // bgScrollView: {
  30. // scroll: false,
  31. // left: 0
  32. // },
  33. data: [[],[]],//bs1是只有左边按钮,2是右边有一按钮,3都展示
  34. bgAnimation: {}
  35. },
  36. tabChoose: businessT.action(function (sender) {
  37. if (sender.currentTarget.id == this.data.tab.id) {
  38. return
  39. }
  40. // this.data.bgScrollView.scroll = true;
  41. // this.setData({
  42. // bgScrollView: this.data.bgScrollView
  43. // })
  44. var animation = wx.createAnimation({
  45. duration: 300,
  46. timingFunction: 'ease',
  47. })
  48. var bgAnimation = wx.createAnimation({
  49. duration: 300,
  50. timingFunction: 'ease',
  51. })
  52. var w = sysT.sysInfo().windowWidth
  53. var s = sender.currentTarget.id - 1
  54. // if (sender.currentTarget.id == "1") {
  55. // animation.translateX(0).step()
  56. // this.data.bgScrollView.left = 0
  57. // } else {
  58. // animation.translateX(w / 2).step()
  59. // this.data.bgScrollView.left = sysT.sysInfo().windowWidth
  60. // }
  61. animation.translateX(s * w / 2).step()
  62. bgAnimation.translateX(-w * s).step()
  63. this.data.tab.id = sender.currentTarget.id
  64. this.data.tab.animation = animation.export()
  65. // this.data.bgScrollView.scroll = false;
  66. this.setData({
  67. tab: this.data.tab,
  68. bgAnimation: bgAnimation.export()
  69. // bgScrollView: this.data.bgScrollView
  70. })
  71. }),
  72. payAction: businessT.action(function (sender) {
  73. businessT.debugLog(sender)
  74. this.showDetails(sender.currentTarget.id)
  75. this.detailsScroll(1, false)
  76. }),
  77. showDetails: function (i) {
  78. if (!this.data.detailsView.hidden) {
  79. return
  80. }
  81. var data = this.data.data[0][i]
  82. this.data.detailsView.data = data
  83. this.data.detailsView.status = data.status
  84. this.data.detailsView.hidden = false
  85. //为了兼容iOS低版本系统,不能用bottom,所以计算margan-top的位置
  86. sysT.adaptor()
  87. businessT.debugLog(sysT.sysInfo().windowHeight)
  88. var s = this.data.detailsView.suffix == '-X' ? -1068 : -1000
  89. s = sysT.rpxToPx() * s
  90. this.data.detailsView.top = sysT.sysInfo().windowHeight - s
  91. this.setData({
  92. detailsView: this.data.detailsView,
  93. scroll: false
  94. })
  95. setTimeout(function () {
  96. var animation = wx.createAnimation({
  97. duration: 300,
  98. timingFunction: 'ease',
  99. })
  100. // animation.bottom('0rpx').step()
  101. animation.translateY(s).step()
  102. this.data.detailsView.animation = animation.export()
  103. this.setData({
  104. detailsView: this.data.detailsView
  105. })
  106. }.bind(this), 100)
  107. },
  108. hiddenDetails: businessT.action(function (sender) {
  109. var animation = wx.createAnimation({
  110. duration: 300,
  111. timingFunction: 'ease',
  112. })
  113. animation.translateY(0).step()
  114. this.data.detailsView.animation = animation.export()
  115. this.setData({
  116. detailsView: this.data.detailsView
  117. })
  118. setTimeout(function () {
  119. this.data.detailsView.hidden = true
  120. this.setData({
  121. detailsView: this.data.detailsView,
  122. scroll: true
  123. })
  124. }.bind(this), 300)
  125. }),
  126. detailsScroll: function (i, a) {
  127. this.data.detailsView.scroll = true
  128. this.data.detailsView.sa = a
  129. this.setData({
  130. detailsView: this.data.detailsView
  131. })
  132. this.data.detailsView.left = i * sysT.sysInfo().windowWidth
  133. this.data.detailsView.scroll = false;
  134. this.setData({
  135. detailsView: this.data.detailsView
  136. })
  137. },
  138. detailsConfirmPay: businessT.action(function (sender) {
  139. wx.showLoading({
  140. title: '正在提交订单',
  141. mask: true
  142. })
  143. pay.prepay({
  144. success: e => {
  145. this.createOrder()
  146. },
  147. fail: e => {
  148. wx.hideLoading()
  149. businessT.showFailTips(err, '提交订单失败')
  150. }
  151. })
  152. }),
  153. createOrder: function () {
  154. var data = this.data.detailsView.data
  155. net.connectNeedLogin({
  156. url: url.app_host + url.createPriceDifferencePaymentOrder,
  157. data: {
  158. added_no: data.added_no,
  159. pay_channel: 5
  160. },
  161. success: (err, res) => {
  162. pay.wxPay({
  163. data: res.data,
  164. success: e => {
  165. var pages = getCurrentPages()
  166. pages[0].route('../../public/pages/pay-success/pay-success?type=none')
  167. },
  168. fail: e => {
  169. wx.hideLoading()
  170. businessT.showFailTips(err, '提交订单失败')
  171. }
  172. })
  173. },
  174. fail: (err, res) => {
  175. wx.hideLoading()
  176. businessT.showFailTips(err, '提交订单失败')
  177. }
  178. }, true)
  179. },
  180. cancelAction: businessT.action(function (sender) {
  181. businessT.debugLog(sender)
  182. }),
  183. detailsAction: businessT.action(function (sender) {
  184. businessT.debugLog(sender)
  185. var t = Number(this.data.tab.id)
  186. var data = this.data.data[t - 1][sender.currentTarget.id]
  187. wx.showModal({
  188. title: '补缴月份',
  189. content: data.allMonths,
  190. confirmText: '我知道了',
  191. showCancel: false,
  192. confirmColor: '#3296FB',
  193. cancelColor: '#3296FB',
  194. })
  195. }),
  196. getOrderData: function () {
  197. wx.showLoading({
  198. title: '加载中',
  199. mask: true
  200. })
  201. net.connectNeedLogin({
  202. url: url.app_host + url.getPayPriceDifferenceList,
  203. data: {},
  204. success: (err, res) => {
  205. this.data.data = this.handleOrderData(res.data)
  206. businessT.debugLog(this.data.data)
  207. this.data.isLoading = false
  208. this.setData({
  209. data: this.data.data,
  210. isLoading: this.data.isLoading
  211. })
  212. wx.hideLoading()
  213. },
  214. fail: (err, res) => {
  215. wx.hideLoading()
  216. businessT.showFailTips(err, '加载失败')
  217. setTimeout(function () {
  218. wx.navigateBack({
  219. })
  220. }.bind(this), 1000)
  221. }
  222. }, true)
  223. },
  224. handleOrderData: function (data) {
  225. var w = []
  226. var f = []
  227. for (var i in data) {
  228. var item = data[i]
  229. item.orderListType = businessType.OrderListType.orderListTypePPD
  230. item.a = item.amount.toFixed(2)
  231. item.details = '查看补差额月份'
  232. if (item.title.indexOf('社保') != -1) {
  233. item.i = 's_pay_s'
  234. item.ct = '参保姓名\n所在城市\n补差额月份\n补差额原因'
  235. } else {
  236. item.i = 's_pay_a'
  237. item.ct = '购买人姓名\n所在城市\n补差额月份\n补差额原因'
  238. }
  239. var months = item.months.split(',')
  240. var allMonths = ''
  241. for (var i in months) {
  242. var m = months[i]
  243. var m = String(m).slice(0, 4) + '年' + String(m).slice(4, 6) + '月'
  244. if (Number(i) == months.length - 1) {
  245. allMonths = allMonths + m
  246. } else {
  247. allMonths = allMonths + m + '、'
  248. }
  249. }
  250. item.allMonths = allMonths
  251. var t = months.length + '个月'
  252. var reason = item.reason
  253. if (reason.length > 12) {
  254. reason = reason.substring(0, 12) + '...'
  255. }
  256. item.c = item.u_name + '\n' + item.city_name + '\n' + t + '\n' + reason
  257. if (item.status == 1) {
  258. item.s = {
  259. t: '等待付款',
  260. c: 'order-item-status-w'
  261. }
  262. item.bs = 2
  263. w.push(item)
  264. } else if (item.status == 2) {
  265. item.s = {
  266. t: '交易完成',
  267. c: 'order-item-status-f'
  268. }
  269. item.bs = 1
  270. f.push(item)
  271. }
  272. }
  273. return [w, f]
  274. },
  275. /**
  276. * 生命周期函数--监听页面加载
  277. */
  278. onLoad: function (options) {
  279. this.data.detailsView.suffix = sysT.suffixOfClass()
  280. this.getOrderData()
  281. },
  282. /**
  283. * 生命周期函数--监听页面初次渲染完成
  284. */
  285. onReady: function () {
  286. },
  287. /**
  288. * 生命周期函数--监听页面显示
  289. */
  290. onShow: function () {
  291. },
  292. /**
  293. * 生命周期函数--监听页面隐藏
  294. */
  295. onHide: function () {
  296. },
  297. /**
  298. * 生命周期函数--监听页面卸载
  299. */
  300. onUnload: function () {
  301. },
  302. /**
  303. * 页面相关事件处理函数--监听用户下拉动作
  304. */
  305. onPullDownRefresh: function () {
  306. },
  307. /**
  308. * 页面上拉触底事件的处理函数
  309. */
  310. onReachBottom: function () {
  311. },
  312. /**
  313. * 用户点击右上角分享
  314. */
  315. onShareAppMessage: function () {
  316. return {
  317. path: '/page/home/index',
  318. imageUrl: '../../../../icon/public/share_img.png',
  319. title: '自助缴社保公积金,覆盖200多个城市,专业团队操作'
  320. }
  321. }
  322. })