config.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /*
  2. * @Author: fangqing lfangqing@126.com
  3. * @Date: 2023-10-17 13:45:04
  4. * @Description: 全局config 配置文件
  5. * @LastEditors: fangqing lfangqing@126.com
  6. * @LastEditTime: 2023-10-26 17:35:44
  7. */
  8. // 获取环境变量
  9. const ENV = import.meta.env
  10. // 配置文件
  11. let config = {
  12. }
  13. // 默认配置文件
  14. const configSource = {
  15. appCode: ENV.VITE_APP_CODE,
  16. // 项目标识代码
  17. projectCode: `${ENV.VITE_APP_CODE}_${ENV.VITE_APP_ENV}`,
  18. // 项目名
  19. projectName: ENV.VITE_APP_NAME,
  20. // 资源base地址
  21. base: ENV.VITE_BASE,
  22. // 接口代理URL路径
  23. baseUrl: ENV.VITE_BASE_URL,
  24. // 模拟数据接口路径
  25. mockBaseUrl: ENV.VITE_BASE_MOCK_URL,
  26. // 服务端接口路径
  27. serverUrl: ENV.VITE_BASE_SERVER_URL,
  28. //国际化默认语言
  29. globalI18n: "zh-cn",
  30. // 客户端id
  31. clientId: "pcManageId",
  32. // 客户端密钥
  33. clientSecret: "pcManageSecret",
  34. }
  35. /**
  36. * @description: 重置全局配置
  37. * @return {*} 局默认配置 configSource
  38. */
  39. const resetConfig = () => {
  40. config = { ...configSource }
  41. return config
  42. }
  43. resetConfig()
  44. /**
  45. * @description: 设置全局配置
  46. * @param {*} cfg 配置项
  47. * @return {*} 新的全局配置
  48. */
  49. const setConfig = cfg => {
  50. config = Object.assign(config, cfg)
  51. return config
  52. }
  53. /**
  54. * @description: 获取全局配置
  55. * @param {*} key 配置项
  56. * @return {*} 新的全局配置项
  57. */
  58. const getConfig = key => {
  59. if (typeof key === "string") {
  60. const arr = key.split(".")
  61. if (arr && arr.length) {
  62. let data = config
  63. arr.forEach(v => {
  64. if (data && typeof data[v] !== "undefined") {
  65. data = data[v]
  66. } else {
  67. data = null
  68. }
  69. })
  70. return data
  71. }
  72. }
  73. if (Array.isArray(key)) {
  74. const data = config
  75. if (key && key.length > 1) {
  76. let res = {}
  77. key.forEach(v => {
  78. if (data && typeof data[v] !== "undefined") {
  79. res[v] = data[v]
  80. } else {
  81. res[v] = null
  82. }
  83. })
  84. return res
  85. }
  86. return data[key]
  87. }
  88. return { ...config }
  89. }
  90. export { getConfig, setConfig, resetConfig }