index.js 4.8 KB

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