index.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. // #ifndef VUE3
  2. import Vue from 'vue'
  3. import Vuex from 'vuex'
  4. Vue.use(Vuex)
  5. const store = new Vuex.Store({
  6. // #endif
  7. // #ifdef VUE3
  8. import {
  9. createStore
  10. } from 'vuex'
  11. const store = createStore({
  12. // #endif
  13. state: {
  14. hasLogin: false,
  15. isUniverifyLogin: false,
  16. loginProvider: "",
  17. openid: null,
  18. testvuex: false,
  19. colorIndex: 0,
  20. colorList: ['#FF0000', '#00FF00', '#0000FF'],
  21. noMatchLeftWindow: true,
  22. active: 'componentPage',
  23. leftWinActive: '/pages/component/view/view',
  24. activeOpen: '',
  25. menu: [],
  26. univerifyErrorMsg: '',
  27. standing: 'teacher',
  28. stuId: '',
  29. info: {
  30. role: {
  31. title: '体育老师',
  32. id: 1
  33. },
  34. id: 1,
  35. school_id : 1,
  36. },
  37. historyList: [],
  38. roleInfo:{},
  39. teacher_id : '',
  40. teacherInfo : {},
  41. },
  42. mutations: {
  43. login(state, provider) {
  44. state.hasLogin = true;
  45. state.loginProvider = provider;
  46. },
  47. logout(state) {
  48. state.hasLogin = false
  49. state.openid = null
  50. },
  51. setOpenid(state, openid) {
  52. state.openid = openid
  53. },
  54. setTestTrue(state) {
  55. state.testvuex = true
  56. },
  57. setTestFalse(state) {
  58. state.testvuex = false
  59. },
  60. setColorIndex(state, index) {
  61. state.colorIndex = index
  62. },
  63. setMatchLeftWindow(state, matchLeftWindow) {
  64. state.noMatchLeftWindow = !matchLeftWindow
  65. },
  66. setActive(state, tabPage) {
  67. state.active = tabPage
  68. },
  69. setLeftWinActive(state, leftWinActive) {
  70. state.leftWinActive = leftWinActive
  71. },
  72. setActiveOpen(state, activeOpen) {
  73. state.activeOpen = activeOpen
  74. },
  75. setMenu(state, menu) {
  76. state.menu = menu
  77. },
  78. setStanding(state, standing) {
  79. state.standing = standing
  80. },
  81. setUniverifyLogin(state, payload) {
  82. typeof payload !== 'boolean' ? payload = !!payload : '';
  83. state.isUniverifyLogin = payload;
  84. },
  85. setUniverifyErrorMsg(state, payload = '') {
  86. state.univerifyErrorMsg = payload
  87. },
  88. setInfo(state, info) {
  89. state.info = info
  90. },
  91. setStuId(state, id) {
  92. state.stuId = id
  93. },
  94. setHistoryList(state, list) {
  95. state.historyList = list
  96. },
  97. setRoleInfo(state, data) {
  98. state.roleInfo = data
  99. },
  100. setTeacherInfo(state, data) {
  101. state.teacherInfo = data
  102. state.teacher_id=data.id
  103. uni.setStorageSync('teacherInfo', data)
  104. },
  105. },
  106. getters: {
  107. currentColor(state) {
  108. return state.colorList[state.colorIndex]
  109. }
  110. },
  111. actions: {
  112. // lazy loading openid
  113. getUserOpenId: async function({
  114. commit,
  115. state
  116. }) {
  117. return await new Promise((resolve, reject) => {
  118. if (state.openid) {
  119. resolve(state.openid)
  120. } else {
  121. uni.login({
  122. success: (data) => {
  123. commit('login')
  124. setTimeout(function() { //模拟异步请求服务器获取 openid
  125. const openid = '123456789'
  126. console.log(
  127. 'uni.request mock openid[' +
  128. openid + ']');
  129. commit('setOpenid', openid)
  130. resolve(openid)
  131. }, 1000)
  132. },
  133. fail: (err) => {
  134. console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务',
  135. err)
  136. reject(err)
  137. }
  138. })
  139. }
  140. })
  141. },
  142. getPhoneNumber: function({
  143. commit
  144. }, univerifyInfo) {
  145. return new Promise((resolve, reject) => {
  146. uni.request({
  147. url: 'https://97fca9f2-41f6-449f-a35e-3f135d4c3875.bspapp.com/http/univerify-login',
  148. method: 'POST',
  149. data: univerifyInfo,
  150. success: (res) => {
  151. const data = res.data
  152. if (data.success) {
  153. resolve(data.phoneNumber)
  154. } else {
  155. reject(res)
  156. }
  157. },
  158. fail: (err) => {
  159. reject(res)
  160. }
  161. })
  162. })
  163. }
  164. }
  165. })
  166. export default store