index.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. // pages/index/index.js
  2. import { homePage } from '../../api/index'
  3. import { userEntityRecharge } from '../../api/charge'
  4. import { createQRcode } from "../../api/document";
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. locationStr: '定位地址…',
  11. useNumber: 0, // 剩余预约次数
  12. documentVos: [], // 档案信息
  13. cardNo: '',
  14. cardSecret: '',
  15. scanTimer: null,
  16. scanOverShow: false,
  17. scanResMsg: '',
  18. scanSuccess: true,
  19. baseStr: 'data:image/jpg;base64,',
  20. QRCodeBase64: '',
  21. qrcodeDialog: false
  22. },
  23. onShow () {
  24. this.initIndexData()
  25. },
  26. onPullDownRefresh () {
  27. wx.vibrateShort({
  28. type: 'medium'
  29. })
  30. this.initIndexData(true)
  31. },
  32. // 获取首页信息
  33. initIndexData (pullDownRefresh = false) {
  34. wx.showLoading({
  35. title: '加载中...',
  36. mask: true
  37. })
  38. homePage({}).then(hoemRes => {
  39. wx.hideLoading()
  40. if (pullDownRefresh) {
  41. wx.stopPullDownRefresh()
  42. }
  43. var response = hoemRes.data.documentVos
  44. response.map(item => {
  45. item.birthDay = item.birthday.split(' ')[0]
  46. })
  47. this.setData({
  48. useNumber: hoemRes.data.useNumber,
  49. documentVos: response
  50. })
  51. }).catch(e => {
  52. wx.hideLoading()
  53. wx.showModal({
  54. content: e,
  55. confirmColor: '#333',
  56. showCancel: false
  57. })
  58. })
  59. },
  60. // 打开地图选择位置。
  61. openMap () {
  62. wx.chooseLocation()
  63. },
  64. /**
  65. * 处理套餐 购买 or 预约
  66. * useNumber: 0-购买 1-预约
  67. * **/
  68. handlePackage () {
  69. var type = this.data.useNumber > 0 ? 1 : 0
  70. switch (type) {
  71. case 0:
  72. wx.navigateTo({
  73. url: '/pages/buy/buy',
  74. })
  75. break;
  76. case 1:
  77. wx.navigateTo({
  78. url: '/pages/appointment/appointment',
  79. })
  80. break;
  81. }
  82. },
  83. // 点击全部档案
  84. handleAllFile () {
  85. wx.navigateTo({
  86. url: '/pages/myFile/myFile',
  87. })
  88. },
  89. // 添加检测人
  90. handleAddCheck () {
  91. wx.navigateTo({
  92. url: '/pages/createFile/createFile?form=index',
  93. })
  94. },
  95. handleScanCode () {
  96. wx.navigateTo({
  97. url: '/pages/exchange/exchange?form=index',
  98. })
  99. return
  100. var that = this
  101. wx.scanCode({
  102. onlyFromCamera: true,
  103. scanType: ['barCode','qrCode'],
  104. success (res) {
  105. wx.vibrateShort({
  106. type: 'medium',
  107. })
  108. var response = res.result
  109. if (response.indexOf('|') !== -1) {
  110. var code = response.split('|')[0]
  111. var password = response.split('|')[1]
  112. that.setData({
  113. cardNo: code,
  114. cardSecret: password
  115. })
  116. var scantime = setTimeout(() => {
  117. that.userEntityRechargeFn()
  118. }, 500);
  119. that.setData({
  120. scanTimer: scantime
  121. })
  122. } else {
  123. wx.showModal({
  124. content: '请扫描正确的二维码',
  125. confirmColor: '#333',
  126. showCancel: false
  127. })
  128. }
  129. }
  130. })
  131. },
  132. // 重新扫描
  133. handleRescan () {
  134. this.setData({
  135. scanOverShow: false,
  136. scanResMsg: '',
  137. scanSuccess: true
  138. })
  139. this.handleScanCode()
  140. },
  141. // 实体卡充值
  142. userEntityRechargeFn () {
  143. var that = this
  144. clearTimeout(that.data.scanTimer)
  145. wx.showLoading({
  146. title: '充值中...',
  147. mask: true
  148. })
  149. var data = {
  150. cardNo: that.data.cardNo,
  151. cardSecret: that.data.cardSecret
  152. }
  153. userEntityRecharge(data).then(res => {
  154. wx.hideLoading()
  155. console.log(res);
  156. this.setData({
  157. scanOverShow: true,
  158. scanResMsg: res.msg,
  159. scanSuccess: true
  160. })
  161. }).catch(e => {
  162. wx.hideLoading()
  163. this.setData({
  164. scanOverShow: true,
  165. scanResMsg: e,
  166. scanSuccess: false
  167. })
  168. })
  169. },
  170. onClickHide () {
  171. this.setData({
  172. scanOverShow: false
  173. })
  174. },
  175. noop () {},
  176. // 去预约
  177. handleAppointment () {
  178. wx.navigateTo({
  179. url: '/pages/appointment/appointment?form=index',
  180. })
  181. },
  182. handleShowQRCode (e) {
  183. var that = this
  184. var id = e.currentTarget.dataset.id
  185. wx.showLoading({
  186. title: '生成中...'
  187. })
  188. createQRcode({ documentId: id }).then(res => {
  189. wx.hideLoading()
  190. that.setData({
  191. QRCodeBase64: that.data.baseStr + res.data,
  192. qrcodeDialog: true
  193. })
  194. }).catch(e => {
  195. wx.hideLoading()
  196. wx.showModal({
  197. content: e,
  198. confirmColor: '#333',
  199. showCancel: false
  200. })
  201. })
  202. },
  203. handleCloseQRCode (e) {
  204. this.setData({
  205. qrcodeDialog: false,
  206. QRCodeBase64: ''
  207. })
  208. }
  209. })