wxJsApi.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import wx from 'weixin-js-sdk'
  2. import * as API_WeiXin from '$project/apis/weixin'
  3. import * as API_Common from '$project/apis/common'
  4. //获取微信配置
  5. export function getWxConfig(jsApiList) {
  6. var jsApiList = jsApiList || ['chooseImage', 'getLocalImgData', 'scanQRCode'];
  7. let promise = (jsApiList => {
  8. return new Promise((resolve, reject) => {
  9. console.log(jsApiList);
  10. API_WeiXin.getConfig().then(response => {
  11. var wxconfig = response.wxConfig;
  12. console.log(wxconfig.nonceStr)
  13. wx.config({
  14. debug: false, // 开启调试模式,
  15. appId: wxconfig.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
  16. timestamp: wxconfig.timestamp, // 必填,生成签名的时间戳
  17. nonceStr: wxconfig.nonceStr, // 必填,生成签名的随机串
  18. signature: wxconfig.signature, // 必填,签名,见附录1
  19. jsApiList: jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  20. });
  21. wx.ready(function() {
  22. resolve(response);
  23. })
  24. wx.error(function(res) {
  25. reject('微信api配置出错');
  26. });
  27. }).catch(error => {
  28. mui.toast(error);
  29. reject(error);
  30. })
  31. })
  32. })(jsApiList)
  33. return promise;
  34. }
  35. //选择图片
  36. export function chooseImage() {
  37. let promise = new Promise((resolve, reject) => {
  38. wx.chooseImage({
  39. count: 1,
  40. sizeType: ['compressed'],
  41. sourceType: ['album', 'camera'],
  42. success: function(res) {
  43. var localIds = res.localIds;
  44. console.log(localIds);
  45. wx.getLocalImgData({
  46. localId: localIds[0],
  47. success: function(res) {
  48. resolve(res);
  49. }
  50. });
  51. }
  52. });
  53. });
  54. return promise;
  55. }
  56. //上传图片
  57. export function uploadPic(imgBase64) {
  58. let promise = new Promise((resolve, reject) => {
  59. var formData = new FormData();
  60. formData.append('photoName', '1.jpg');
  61. formData.append('photoBase64Data', imgBase64);
  62. console.log(formData);
  63. console.log(typeof formData);
  64. API_Common.uploadBase64(formData).then(response => {
  65. resolve(response);
  66. }).catch(error => {
  67. mui.toast(error);
  68. reject(error);
  69. })
  70. });
  71. return promise;
  72. }
  73. //获取坐标
  74. export function getLocation() {
  75. let promise = new Promise((resolve, reject) => {
  76. wx.ready(function() {
  77. wx.getLocation({
  78. type: 'gcj02', // 默认为wgs84的gps坐标,可传入'gcj02'
  79. success: function(res) {
  80. resolve(res);
  81. },
  82. faile: function(res) {
  83. reject(res);
  84. },
  85. complete() {}
  86. })
  87. })
  88. })
  89. return promise;
  90. }
  91. //扫描二维码
  92. export function scanQRCode(needResult) {
  93. var needResult = needResult || 1;
  94. let promise = new Promise((resolve, reject) => {
  95. wx.scanQRCode({
  96. needResult: needResult,
  97. scanType: ["qrCode"],
  98. success: function(res) {
  99. var url = res.resultStr;
  100. resolve(url);
  101. },
  102. faile: function(res) {
  103. reject(res);
  104. },
  105. complete() {}
  106. })
  107. });
  108. return promise;
  109. }