index.js 4.6 KB

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