1
0

config.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /**
  2. * 功能:应用配置
  3. * 作者:小莫唐尼
  4. * 邮箱:studio@925i.cn
  5. * 时间:2024年06月22日 12:00:44
  6. * 版本:v0.1.0
  7. */
  8. import {DefaultAppConfigs, getAppConfigs, getAppMockJson, setAppConfigs, setAppMockJson} from '@/config/index.js'
  9. import v2Config from '@/api/v2/all.config.js'
  10. import utils from '@/utils/index.js'
  11. import {setTokens} from "@/utils/token";
  12. export default {
  13. namespaced: true,
  14. state: {
  15. configs: getAppConfigs(),
  16. mockJson: getAppMockJson(),
  17. },
  18. getters: {
  19. getConfigs(state) {
  20. if (state.configs) return state.configs;
  21. return getAppConfigs()
  22. },
  23. getMockJson(state) {
  24. if (state.mockJson) return state.mockJson;
  25. return getAppMockJson()
  26. }
  27. },
  28. mutations: {
  29. setConfigs(state, data) {
  30. state.configs = data;
  31. setAppConfigs(data)
  32. },
  33. setMockJson(state, data) {
  34. setAppMockJson(data)
  35. state.mockJson = data;
  36. }
  37. },
  38. actions: {
  39. fetchConfigs({state, commit, dispatch}) {
  40. return new Promise(async (resolve, reject) => {
  41. try {
  42. const res = await v2Config.getAppConfigs()
  43. if (res) {
  44. commit('setConfigs', utils.deepMerge(DefaultAppConfigs, res))
  45. // 存储token
  46. if (res?.basicConfig?.tokenConfig) {
  47. setTokens(res.basicConfig.tokenConfig)
  48. }
  49. resolve(res)
  50. } else {
  51. dispatch("setDefaultAppSettings");
  52. reject()
  53. }
  54. } catch (e) {
  55. dispatch("setDefaultAppSettings");
  56. reject()
  57. }
  58. })
  59. },
  60. // 设置默认的数据
  61. setDefaultAppSettings({commit}) {
  62. commit('setConfigs', JSON.parse(JSON.stringify(DefaultAppConfigs)))
  63. },
  64. // 请求模拟数据
  65. fetchMockJson({state, commit, dispatch}) {
  66. return new Promise(async (resolve, reject) => {
  67. const mockJsonUrl = utils.checkUrl(state.configs.basicConfig.auditModeMockUrl)
  68. uni.request({
  69. url: mockJsonUrl,
  70. method: "GET",
  71. success: (res) => {
  72. commit('setMockJson', res.data)
  73. resolve({
  74. ok: true,
  75. data: res.data
  76. })
  77. },
  78. fail: (err) => {
  79. resolve({
  80. ok: false,
  81. data: err
  82. })
  83. }
  84. })
  85. })
  86. },
  87. }
  88. };