You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.7 KiB

6 months ago
6 months ago
6 months ago
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import user from '@/store/modules/user'
  4. import getters from './getters'
  5. import { getConfigList } from '@/api/system/configList'
  6. import { getPersonalInfo } from "@/api/system/personal.js"
  7. Vue.use(Vuex)
  8. const store = new Vuex.Store({
  9. state : {
  10. price_config : {},
  11. configList : {},
  12. position : {},//用户选择的定位信息
  13. buyInfo : {
  14. teacher : null,//用户选择的购买老师
  15. },//用户选择的购买信息
  16. userInfo : {},//用户信息
  17. //会员泽口
  18. memberRate : 1,
  19. //技师等级规则列表
  20. teacherLevelList : [],
  21. },
  22. mutations : {
  23. // 初始化配置
  24. initConfig(state) {
  25. const price_config = uni.getStorageSync('price_config')
  26. if(price_config){
  27. state.price_config = price_config
  28. }
  29. const teacherLevelList = uni.getStorageSync('teacherLevelList')
  30. if(teacherLevelList){
  31. state.teacherLevelList = teacherLevelList
  32. }
  33. getConfigList().then(res => {
  34. const configList = {
  35. ...state.configList,
  36. }
  37. state.teacherLevelList = []
  38. res.forEach(n => {
  39. configList[n.paramCode] = n.paramValueText;
  40. configList[n.paramCode + '_keyValue'] = n.keyValue;
  41. if(n.paramCode == 'price_config'){
  42. state.price_config = JSON.parse(n.paramValueText)
  43. uni.setStorageSync('price_config', state.price_config)
  44. }
  45. if(n.paramClass == 'order_mall'){
  46. state.teacherLevelList.push(n)
  47. }
  48. });
  49. uni.setStorageSync('teacherLevelList', state.teacherLevelList)
  50. console.log('state.teacherLevelList', state.teacherLevelList)
  51. state.configList = configList
  52. uni.$emit('initConfig', state.configList)
  53. })
  54. },
  55. setPosition(state, position){
  56. state.position = position;
  57. },
  58. setUserInfo(state, userInfo){
  59. state.userInfo = userInfo;
  60. },
  61. getUserInfo(state){
  62. getPersonalInfo().then(res=>{
  63. if(res&&(res.id || res.id === 0)){
  64. state.userInfo = res;
  65. let memberDiscountKey = ['', 'new', 'regular', 'silver', 'gold']
  66. let key = memberDiscountKey[res.levelKey]
  67. if (state.price_config && key) {
  68. state.memberRate = state.price_config.memberDiscount[key] || 1
  69. }
  70. }
  71. })
  72. },
  73. },
  74. modules: {
  75. user
  76. },
  77. getters
  78. })
  79. export default store