share.helper.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // import { encrypt } from '@/common/crypto.js'
  2. /* 小程序码 */
  3. import store from '@/store/index.js'
  4. import { wxUnlimited } from '@/services/sellse.service.js'
  5. /*
  6. * queryStringify
  7. * 将url?k=v&k1=v1的序列化转成k-v对象
  8. */
  9. export function queryParse(query = '') {
  10. if (query.startsWith('?')) {
  11. query = query.slice(0)
  12. }
  13. const obj = Object.create(null)
  14. query.split('&').forEach(str => {
  15. const v = str.split('=')
  16. obj[v[0]] = v[1]
  17. })
  18. return obj
  19. }
  20. /* 生成二维码链接 */
  21. export const generateWxUnlimited = async (that, params) => {
  22. try {
  23. // 从服务端获取二维码arrayBuffer
  24. return await that.SellerService.wxUnlimited({
  25. page: params.pagePath,
  26. scene: params.queryStr, // codeQueryStr(params.queryStr)
  27. check_path: process.env.NODE_ENV === 'production', // 是否校验页面
  28. env_version: process.env.NODE_ENV === 'production' ? 'release' : 'trial', // 正式版 or 开发版
  29. width: 200, // 二维码宽度
  30. auto_color: false, // 自动颜色
  31. line_color: { 'r': 0, 'g': 0, 'b': 0 }, // 线条颜色
  32. is_hyaline: true // 透明底
  33. })
  34. } catch (e) {
  35. return Promise.reject(e)
  36. }
  37. }
  38. // 编码查询参数
  39. export function codeQueryStr(query = '') {
  40. const keys = Object.keys(queryKeyOfMap)
  41. return query.split('&').map(str => {
  42. return str.split('=').map((substr, index) => {
  43. if (!index) {
  44. return queryKeyOfMap[keys.find(item => substr === item)]
  45. } else {
  46. return substr
  47. }
  48. }).join('=')
  49. }).join('&')
  50. }
  51. // 反编码查询参数
  52. export function enCodeQueryStr(query) {
  53. const keys = Object.keys(enQueryKeyOfMap)
  54. return query.split('&').map(str => {
  55. return str.split('=').map((substr, index) => {
  56. if (!index) {
  57. return enQueryKeyOfMap[keys.find(item => substr === item)]
  58. } else {
  59. return substr
  60. }
  61. }).join('=')
  62. }).join('&')
  63. }