scan.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. const {
  2. default: api
  3. } = require("../../js/api");
  4. const utils = require('../../utils/util')
  5. Page({
  6. data: {
  7. isLoggedIn: false,
  8. site:{},
  9. userInfo: {},
  10. scanTitle: '扫码加油',
  11. scanTip: '请扫描加油机键盘上的二维码',
  12. isDriver:''
  13. },
  14. /**
  15. * 生命周期函数--监听页面加载
  16. */
  17. onLoad(options) {
  18. },
  19. onShow(){
  20. this.getSiteInfo()
  21. },
  22. switchTomonitoringScreen() {
  23. wx.navigateTo({
  24. url:'/pages/driver/monitoringScreen/monitoringScreen',
  25. fail: (err) => {
  26. console.error('跳转失败', err);
  27. // 如果是tab页,可以使用switchTab
  28. if (err.errMsg.includes('tab page')) {
  29. wx.switchTab({
  30. url: page
  31. });
  32. } else {
  33. // 尝试使用 redirectTo
  34. wx.redirectTo({
  35. url: page
  36. });
  37. }
  38. }
  39. });
  40. },
  41. switchToDriver() {
  42. const app = getApp();
  43. // 假设全局用户角色存储在 app.globalData.userRole 中
  44. // 这里模拟切换:如果当前是 'admin'(司机端),则切为普通用户,反之亦然
  45. const currentRole = app.globalData.userRole || 'user';
  46. const newRole = currentRole === 'admin' ? 'user' : 'admin';
  47. // 更新全局数据
  48. app.globalData.userRole = newRole;
  49. // 更新当前页面的 data 中的 userRole,以便底部 tab-bar 刷新
  50. this.setData({ userRole: newRole });
  51. // 可选:根据新角色刷新页面数据(如重新获取站点信息等)
  52. // 例如调用 this.updateTabs() 重新生成底部导航
  53. // this.updateTabs();
  54. // 提示用户切换成功
  55. app.globalData.isDriver = 'admin';
  56. wx.navigateTo({
  57. url:'/pages/driver/jieban/jieba',
  58. fail: (err) => {
  59. console.error('跳转失败', err);
  60. // 如果是tab页,可以使用switchTab
  61. if (err.errMsg.includes('tab page')) {
  62. wx.switchTab({
  63. url: page
  64. });
  65. } else {
  66. // 尝试使用 redirectTo
  67. wx.redirectTo({
  68. url: page
  69. });
  70. }
  71. }
  72. });
  73. },
  74. /** 获取站点信息 */
  75. getSiteInfo(){
  76. api.request_GetSiteInfo().then(res => {
  77. if(res.data.statusCode == 203) {
  78. console.log("获取站点信息失败",res)
  79. return
  80. }
  81. const app = getApp();
  82. console.log("站点信息",res)
  83. var formatePhone = utils.formatPhone(res.data.data.userInfo.userPhoneNumber);
  84. app.globalData.userInfo = res.data.data.userInfo;
  85. console.log("站点信息 app.globalData.userInfo",app.globalData.userInfo)
  86. debugger
  87. //var isdeiver = res.data.data.userInfo.isDriver == 'admin' ? true : false;
  88. this.setData({
  89. isLoggedIn: true,
  90. isDriver:res.data.data.userInfo.isDriver,
  91. site:res.data.data.site,
  92. userInfo: {
  93. userAddress:res.data.data.userInfo.userAddress,
  94. userAvatarUrl:res.data.data.userInfo.userAvatarUrl,
  95. userPhoneNumber:formatePhone,
  96. userName:res.data.data.userInfouserName
  97. },
  98. scanTitle: '扫码加油',
  99. scanTip: '请扫码加油机键盘上的二维码'
  100. })
  101. }).catch(err => {
  102. console.log("获取站点信息失败",err)
  103. })
  104. },
  105. onChooseAvatar(e) {
  106. debugger
  107. const { avatarUrl } = e.detail; // 头像临时路径
  108. this.setData({
  109. isLoggedIn: true,
  110. site:res.data.data.site,
  111. userInfo: {
  112. userAddress:'',
  113. userAvatarUrl:avatarUrl,
  114. userPhoneNumber:'',
  115. userName:''
  116. },
  117. scanTitle: '扫码加油',
  118. scanTip: '请扫码加油机键盘上的二维码'
  119. })
  120. // 上传头像到服务器(可选)
  121. },
  122. toLoginOrOrderPage: function () {
  123. if (!this.data.isLoggedIn) {
  124. wx.navigateTo({
  125. url: '../login/login'
  126. })
  127. } else {
  128. wx.navigateTo({
  129. url: '../history/history?paymentMode=' + this.data.site.paymentMode,
  130. })
  131. }
  132. },
  133. // 打开扫码功能
  134. scanCode: function () {
  135. wx.showLoading({
  136. title: '正在跳转',
  137. })
  138. const that = this;
  139. wx.scanCode({
  140. success(res) {
  141. console.log("扫码内容",res.result)
  142. const scanStr = res.result;
  143. if(scanStr.includes('yuwxapp')) {
  144. const id = scanStr.split('yuwxapp?id=')[1];
  145. wx.redirectTo({
  146. url: '../quantify/quantify?id=' + id,
  147. fail(err){
  148. wx.showToast({
  149. title: '跳转页面失败',
  150. icon: 'none'
  151. });
  152. }
  153. })
  154. return
  155. }
  156. if(scanStr.includes('wxapp')) {
  157. const id = scanStr.split('wxapp?id=')[1];
  158. wx.redirectTo({
  159. url: '../TransactionPage/TransactionPage?id=' + id,
  160. fail(err){
  161. wx.showToast({
  162. title: '跳转页面失败',
  163. icon: 'none'
  164. });
  165. }
  166. })
  167. }
  168. },
  169. fail(err) {
  170. console.error('扫码失败:', err);
  171. wx.showToast({
  172. title: '扫码失败',
  173. icon: 'none'
  174. });
  175. }
  176. });
  177. }
  178. });