state.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { reactive } from 'vue';
  2. type status = 'init' | 'login' | 'logout' | 'error';
  3. // 是否允许点击空白位置关闭弹窗
  4. export const modalClickMask = false;
  5. export const state = reactive({
  6. user: {
  7. status: 'init' as status,
  8. data: {} as any
  9. },
  10. application: window.matchMedia('(display-mode: standalone)').matches, // 是否在应用里面
  11. navBarHeight: 0, // 状态栏高度
  12. ossUploadUrl: 'https://ks3-cn-beijing.ksyuncs.com/'
  13. });
  14. // 预览上传到oss的地址
  15. export const getOssUploadUrl = (bucket: string) => {
  16. const tmpBucket = bucket || 'gym';
  17. return `https://${tmpBucket}.ks3-cn-beijing.ksyuncs.com/`;
  18. };
  19. export const setLoginInit = () => {
  20. state.user.status = 'init';
  21. state.user.data = null;
  22. };
  23. export const setLogin = (data: any) => {
  24. state.user.status = 'login';
  25. state.user.data = data;
  26. };
  27. export const setLogout = () => {
  28. state.user.status = 'logout';
  29. state.user.data = null;
  30. };
  31. export const setLoginError = () => {
  32. state.user.status = 'error';
  33. state.user.data = null;
  34. };