useProject.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { computed, ref, watch } from 'vue'
  2. import { useAppStore } from '~src/store'
  3. import { isNullES } from 'js-fast-way'
  4. import { setElementMainColor } from 'js-fast-way'
  5. export function useProject() {
  6. const useAppState = useAppStore()
  7. const projectId = ref(useAppState.getProjectId)
  8. const contractId = ref(useAppState.getContractId)
  9. const projectInfo = ref(useAppState.getProjectInfo)
  10. const contractInfo = ref(useAppState.getContractInfo)
  11. watch(() => [
  12. useAppState.getProjectId, useAppState.getContractId,
  13. useAppState.getProjectInfo, useAppState.getContractInfo,
  14. ], ([pid, cid, pinfo, cinfo]) => {
  15. projectId.value = pid
  16. contractId.value = cid
  17. projectInfo.value = pinfo
  18. contractInfo.value = cinfo
  19. setYunNanTheme(pid)
  20. }, { deep: true })
  21. const isAppLoading = computed(() => {
  22. return !isNullES(projectId.value) && !isNullES(contractId.value)
  23. })
  24. const setYunNanTheme = (pid)=>{
  25. console.log( projectId.value, ' projectId.value ')
  26. const id = '1891312830718746625'
  27. let isYunNan = pid === id
  28. if (isYunNan) {
  29. setElementMainColor('#409eff')
  30. let colorName = 'blue'
  31. let theme = 'light'
  32. document.documentElement.setAttribute('class', `${theme} color-${colorName}`)
  33. return
  34. }
  35. }
  36. return {
  37. projectId,
  38. contractId,
  39. projectInfo,
  40. contractInfo,
  41. isAppLoading,
  42. }
  43. }