zhanghua
2024-12-22 9d059f329e8d9fd629bdbf209e66ae7220155320
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// import ApolloClient from 'apollo-boost';
 
// const apolloClient = new ApolloClient({
//   uri: 'http://127.0.0.1:7001/graphql'
// })
import {
  MessageBox
} from 'element-ui'
// export default apolloClient;
// 定义不同请求地址
const EFORMURI = "/dream/graphql";
const IOTURI = "/dream/graphql";
// import ApolloClient from 'apollo-boost' //引入apollo-boost插件
import {
  ApolloClient
} from "apollo-client";
import {
  createHttpLink
} from "apollo-link-http";
import {
  InMemoryCache
} from "apollo-cache-inmemory";
import {
  ApolloLink
} from "apollo-link";
 
const httpLink = createHttpLink({
  uri: EFORMURI, //配置api调用连接
});
 
const middlewareLink = new ApolloLink((operation, forward) => {
  const user = JSON.parse(localStorage.getItem("user"))
  if (user) {
    operation.setContext({
      headers: {
        Authorization: user.jwtToken,
        // Authorization:'eyJhbGciOiJIUzI1NiJ9.eyJleHBUaW1lIjoiMjAyNC8wNy8zMSAxODoxMSIsInVzZXJJZCI6NDQsImp0aSI6ImVlMDM3NmFjLWQ5OTAtNDRkZS05YTVmLTUxYjhjMjc0YWNiOSIsImlhdCI6MTcyMjQxMzUwMSwic3ViIjoieWNsIiwiZXhwIjoxNzIyNDIwNzAxfQ.bSd0qag44dwXeJQpvryYJXEtrQ03-8MmHQWhgILGXO4',
        staffId: JSON.parse(localStorage.getItem("selectStaff")).id,
        playerId: user.players.length > 0 ?
          user.players[0].id : 0,
      },
    }); //request拦截器
 
    return forward(operation).map((response) => {
      return response;
    }); //response拦截器,但是此处并不能对错误响应进行拦截
  } else {
    MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
      confirmButtonText: '重新登录',
      cancelButtonText: '取消',
      type: 'warning'
    }).then(() => {
      location.href = '/#/login';
    })
  }
});
 
const authLink = middlewareLink.concat(httpLink);
 
const defaultOptions = {
  watchQuery: {
    fetchPolicy: "network-only",
    errorPolicy: "ignore",
  },
  query: {
    fetchPolicy: "network-only",
    errorPolicy: "all",
  },
};
 
const apolloClient = new ApolloClient({
  link: authLink,
  cache: new InMemoryCache(),
  connectToDevTools: true,
  // defaultOptions: defaultOptions,
});
// const apolloClient = new ApolloClient({
//   uri: 'https://countries.trevorblades.com/',
//   headers:{
//     Authorization: 'eyJhbGciOiJIUzI1NiJ9.eyJleHBUaW1lIjoiMjAyNC8wNy8yNSAxMTozOSIsInVzZXJJZCI6MSwianRpIjoiZGVkZWRlMWQtYTU4MC00NDkxLWI0YzAtMjA5ODRjYTk3NmE3IiwiaWF0IjoxNzIxODcxNTYyLCJzdWIiOiJ5Y2wiLCJleHAiOjE3MjE4Nzg3NjJ9.gvEk8RHvJD7QQjr83XVwPe9msqEeVITXg3hIJRaNubI',
//     staffId: "1680",
//     playerId: '3350',
//   }
// })
//导出实例
export default apolloClient;