index.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. Vue.use(Vuex) // vue的插件机制
  4. // 模块
  5. import requestList from "./requestList.js";
  6. import addressDefault from "./addressDefault.js";
  7. // 共用工具
  8. import request from "@/common/request/index.js";
  9. import {
  10. appId,
  11. login,
  12. getUserProfile
  13. } from "@/common/device/index";
  14. const store = new Vuex.Store({
  15. state: {
  16. bind:0,
  17. face:"",
  18. name:"",
  19. openid:'',
  20. appId:"",
  21. customer_id:""
  22. },
  23. mutations: {
  24. increment(state, options) {
  25. Object.keys(options).forEach(item => state[item] = options[item])
  26. }
  27. },
  28. actions: {
  29. // 自动登录获取用户状态
  30. async codeSession({
  31. commit,
  32. state
  33. }, options) {
  34. var result = await login();
  35. let {
  36. code
  37. } = result;
  38. // 相关请求
  39. result = await request({
  40. url: "/customer/code2Session/",
  41. method: "post",
  42. data: {
  43. code,
  44. appid: appId,
  45. }
  46. });
  47. if (result.code != 0) return;
  48. let {
  49. openid,
  50. bind,
  51. customer_id = '',
  52. face = '',
  53. name = '',
  54. tel = '',
  55. token = '',
  56. cart_count=''
  57. } = result.data; //bind
  58. if (token) uni.setStorageSync('TOKEN', token);
  59. commit('increment', {
  60. appId,
  61. openid,
  62. cart_count,
  63. customer_id,
  64. bind,
  65. face,
  66. name,
  67. tel
  68. });
  69. },
  70. // 快捷登录
  71. async wxbind({
  72. commit,
  73. state
  74. }, options) {
  75. let {
  76. encryptedData,
  77. iv
  78. } = options;
  79. if( !encryptedData || !iv) return false;
  80. let {
  81. appId,
  82. openid
  83. } = state;
  84. let referrer=uni.getStorageSync('referrer') || '';
  85. var result = await request({
  86. url: "/customer/wxbind/",
  87. method: "post",
  88. data: {
  89. encryptedData,
  90. iv,
  91. appid: appId,
  92. openid,referrer
  93. }
  94. });
  95. if (result.code != 0) return;
  96. let {
  97. customer_id,
  98. face,
  99. name,
  100. tel,
  101. token
  102. } = result.data;
  103. uni.setStorageSync('TOKEN', token);
  104. commit('increment', {
  105. customer_id,
  106. bind: 1,
  107. face,
  108. name,
  109. tel,
  110. appId,
  111. openid
  112. });
  113. },
  114. // 用户更新资料
  115. async getUserProfile({
  116. commit,
  117. state
  118. }, options) {
  119. var result = await getUserProfile("完善用户登录资料!");
  120. let {
  121. encryptedData,
  122. iv
  123. } = result;
  124. let {
  125. appId,
  126. openid
  127. } = state;
  128. result = await request({
  129. method: "post",
  130. url: "/customer/setUserInfo/",
  131. data: {
  132. encryptedData,
  133. iv,
  134. appid: appId,
  135. openid
  136. }
  137. })
  138. if (result.code != 0) return;
  139. let {
  140. face,
  141. name
  142. } = result.data;
  143. // 相关请求
  144. commit('increment', {
  145. face,
  146. name
  147. });
  148. }
  149. },
  150. modules: {
  151. requestList,
  152. addressDefault
  153. },
  154. })
  155. export default store