|
@@ -15,7 +15,7 @@ export interface WecomAuthResponse {
|
|
|
StatusCode: number;
|
|
StatusCode: number;
|
|
|
Data: {
|
|
Data: {
|
|
|
token: string; // AIToken
|
|
token: string; // AIToken
|
|
|
- roleIds: string[];
|
|
|
|
|
|
|
+ roleIds: string[];
|
|
|
};
|
|
};
|
|
|
Message?: string;
|
|
Message?: string;
|
|
|
}
|
|
}
|
|
@@ -88,24 +88,20 @@ export const doWecomLogin = async (code: string): Promise<void> => {
|
|
|
// 调用接口兑换 AIToken
|
|
// 调用接口兑换 AIToken
|
|
|
const res: WecomAuthResponse = await wecomAuth(formData);
|
|
const res: WecomAuthResponse = await wecomAuth(formData);
|
|
|
if (res && res.StatusCode === 200 && res.Data && res.Data.token) {
|
|
if (res && res.StatusCode === 200 && res.Data && res.Data.token) {
|
|
|
- // 登录成功:存储 AIToken
|
|
|
|
|
window.localStorage.setItem('AIToken', res.Data.token);
|
|
window.localStorage.setItem('AIToken', res.Data.token);
|
|
|
// 处理身份,身份可能为多个,只能按身份权限大小来固定为某个身份;
|
|
// 处理身份,身份可能为多个,只能按身份权限大小来固定为某个身份;
|
|
|
if (res.Data.roleIds && res.Data.roleIds.length > 0) {
|
|
if (res.Data.roleIds && res.Data.roleIds.length > 0) {
|
|
|
- let roleIds = res.Data.roleIds, agent = '';
|
|
|
|
|
- if (roleIds.includes('2')) {
|
|
|
|
|
- agent = 'stoneLikePaint';//服务商
|
|
|
|
|
- } else if (roleIds.includes('0')) {
|
|
|
|
|
- agent = 'ssb';//经销商
|
|
|
|
|
- } else if (roleIds.includes('4')) {
|
|
|
|
|
- agent = 'dg';//导购
|
|
|
|
|
- } else if (roleIds.includes('1')) {
|
|
|
|
|
- agent = 'hbs';//好邦手
|
|
|
|
|
- } else if (roleIds.includes('3')) {
|
|
|
|
|
- agent = 'goldShop';//金牌店
|
|
|
|
|
- }
|
|
|
|
|
- console.log("roleIds=", roleIds)
|
|
|
|
|
- console.log("agent=", agent)
|
|
|
|
|
|
|
+ // 使用位运算
|
|
|
|
|
+ const ROLE_CONFIG = [
|
|
|
|
|
+ { bit: 1 << 1, code: 'stoneLikePaint', desc: '服务商' }, // 2
|
|
|
|
|
+ { bit: 1 << 0, code: 'ssb', desc: '经销商' }, // 1
|
|
|
|
|
+ { bit: 1 << 3, code: 'dg', desc: '导购' }, // 8
|
|
|
|
|
+ { bit: 1 << 2, code: 'hbs', desc: '好邦手' }, // 4
|
|
|
|
|
+ { bit: 1 << 4, code: 'xlskf', desc: '新零售客服' } // 16
|
|
|
|
|
+ ];
|
|
|
|
|
+ const roleIds = res.Data.roleIds;
|
|
|
|
|
+ const matchRole = ROLE_CONFIG.find(item => (roleIds & item.bit) === item.bit);
|
|
|
|
|
+ const agent = matchRole && matchRole.code || 'xlskf';
|
|
|
window.localStorage.setItem('agentFrom', agent);
|
|
window.localStorage.setItem('agentFrom', agent);
|
|
|
window.localStorage.setItem('agentFromAI', agent);
|
|
window.localStorage.setItem('agentFromAI', agent);
|
|
|
}
|
|
}
|