|
|
|
import { defineStore } from 'pinia';
|
|
|
|
import { http } from '/nerv-lib/saas';
|
|
|
|
import { useApi, HttpRequestConfig } from '/nerv-lib/use/use-api';
|
|
|
|
|
|
|
|
interface AppConfig {
|
|
|
|
projectType: string;
|
|
|
|
projectName: string;
|
|
|
|
baseApi: string;
|
|
|
|
timeout: number;
|
|
|
|
pagePermission: boolean;
|
|
|
|
actionPermission: boolean;
|
|
|
|
showProject: boolean;
|
|
|
|
resourceName: string;
|
|
|
|
useHistoryTag: boolean;
|
|
|
|
siderPosition: string; //菜单位置
|
|
|
|
userLoginApi: string; //登录接口
|
|
|
|
userCustomRouterGuard?: Function; //使用自己的路由守卫
|
|
|
|
userResourceApi: string; //获取资源接口
|
|
|
|
userInfoApi: string; //登录详情接口
|
|
|
|
enablePermissions: boolean; //是否开启权限
|
|
|
|
updatePassWordInfo?: object; //修改密码配置
|
|
|
|
headerBellInfo?: object;
|
|
|
|
customInitMessageCount?: Function; // 自定义消息数量获取事件
|
|
|
|
iframe?: false;
|
|
|
|
dropOut?: Function; //退出登录
|
|
|
|
defaultResource?: object; //默认权限
|
|
|
|
resourceInfo?: resourceInfoModul; //权限提交配置
|
|
|
|
strategyInfoApi?: string; // 获取系统密码策略
|
|
|
|
themeConfig?: object;
|
|
|
|
initThemeCoinfig?: boolean;
|
|
|
|
}
|
|
|
|
interface loginData {
|
|
|
|
userName: string;
|
|
|
|
password: string;
|
|
|
|
}
|
|
|
|
interface resourceInfoModul {
|
|
|
|
application: object;
|
|
|
|
token: string;
|
|
|
|
api: string;
|
|
|
|
dealReosurceList?: Function;
|
|
|
|
}
|
|
|
|
|
|
|
|
const { httpRequest } = useApi();
|
|
|
|
const requestConfig: HttpRequestConfig = { method: 'POST' };
|
|
|
|
|
|
|
|
export const appConfigStore = defineStore({
|
|
|
|
id: 'appConfig',
|
|
|
|
state(): AppConfig {
|
|
|
|
return {
|
|
|
|
projectType: 'web',
|
|
|
|
baseApi: '/api',
|
|
|
|
timeout: 15 * 1000,
|
|
|
|
pagePermission: true,
|
|
|
|
actionPermission: true,
|
|
|
|
userLoginApi: '',
|
|
|
|
siderPosition: 'top',
|
|
|
|
userResourceApi: '',
|
|
|
|
userInfoApi: '',
|
|
|
|
resourceName: '',
|
|
|
|
showProject: false,
|
|
|
|
useHistoryTag: false,
|
|
|
|
enablePermissions: false,
|
|
|
|
updatePassWordInfo: {},
|
|
|
|
dropOut: undefined,
|
|
|
|
iframe: false,
|
|
|
|
userCustomRouterGuard: undefined,
|
|
|
|
defaultResource: undefined,
|
|
|
|
headerBellInfo: {
|
|
|
|
isShow: false,
|
|
|
|
api: '',
|
|
|
|
toRouterName: '',
|
|
|
|
},
|
|
|
|
themeConfig: {},
|
|
|
|
initThemeCoinfig: false,
|
|
|
|
resourceInfo: {
|
|
|
|
application: {},
|
|
|
|
api: '',
|
|
|
|
token: '',
|
|
|
|
},
|
|
|
|
};
|
|
|
|
},
|
|
|
|
getters: {
|
|
|
|
getThemeConfig: (state: any) => state.themeConfig,
|
|
|
|
getHeaderBellInfo: (state: any) => state.headerBellInfo,
|
|
|
|
getInitThemeCoinfig: (state: any) => state.initThemeCoinfig,
|
|
|
|
},
|
|
|
|
actions: {
|
|
|
|
setInitThemeCoinfig(val: boolean) {
|
|
|
|
this.initThemeCoinfig = val;
|
|
|
|
},
|
|
|
|
setUserInfo(val: any) {
|
|
|
|
this.userBasicInfo = val;
|
|
|
|
},
|
|
|
|
setThemeConfig(val: any) {
|
|
|
|
this.themeConfig = val;
|
|
|
|
},
|
|
|
|
setConfig(config: AppConfig) {
|
|
|
|
Object.keys(config).forEach((key) => {
|
|
|
|
this[key] = config[key];
|
|
|
|
});
|
|
|
|
},
|
|
|
|
initDefaultResource(data: any) {
|
|
|
|
this.defaultResource = data;
|
|
|
|
},
|
|
|
|
setParams(config: Object) {
|
|
|
|
Object.keys(config).forEach((key) => {
|
|
|
|
this[key] = config[key];
|
|
|
|
});
|
|
|
|
},
|
|
|
|
userLogin(data: loginData) {
|
|
|
|
if (this.userLoginApi) {
|
|
|
|
console.log(data);
|
|
|
|
return httpRequest({ api: this.userLoginApi, params: data, pathParams: {}, requestConfig });
|
|
|
|
|
|
|
|
// return http.post(this.userLoginApi, data);
|
|
|
|
} else {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
},
|
|
|
|
userInfo() {
|
|
|
|
if (this.userInfoApi) {
|
|
|
|
return httpRequest({ api: this.userInfoApi, params: {}, pathParams: {}, requestConfig });
|
|
|
|
} else {
|
|
|
|
return { data: {} };
|
|
|
|
}
|
|
|
|
},
|
|
|
|
userResource(params = {}) {
|
|
|
|
if (this.userResourceApi) {
|
|
|
|
return httpRequest({
|
|
|
|
api: this.userResourceApi,
|
|
|
|
params,
|
|
|
|
pathParams: {},
|
|
|
|
requestConfig,
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
return { data: [] };
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|