You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

515 lines
23 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// 引用Cookie
import Cookie from './cookie';
// 引用公共方法
import PublicFn from './public';
import interfaceConfig from './axios-config';
import Base64 from './base64'
const isSZUpload = true;//是否使用苏州版本上传附件地址
const isCloud = true;//是否云环境 插入图片资源接口路径切换
PublicFn.isSZUpload = isSZUpload;
PublicFn.isCloud = isCloud;
/**
* 配置信息 - 公共方法
* @type {{}}
*/
const ConfigFn = {
getContextHtmlPath: () => {//获取桶名信息
// eslint-disable-next-line no-debugger
let pathName = document.location.pathname;
let index = pathName.substr(1).indexOf("/");
let result = pathName.substr(0, index + 1);
if (result != "/dsideal_yy") {
result = pathName.substr(0, 0);
}
return result;
},
/**
* 获取host路径,Ip+端口
* https协议需要优化
*/
getServerUrl: () => {
return document.location.origin;
},
/**
* 自url地址后面获取需要的参数值
* @param name
* @returns {null}
*/
getQueryString: (name) => {
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
let r = window.location.search.substr(1).match(reg);
if (r !== null)
return unescape(r[2]);
return null;
},
/**
* 设置登录用户角色信息对象,
* 1是否为当前角色下的管理员truefalse
* 2是否为当前角色下的班主任truefalse
* @param _type:单位id101 - 省102 - 市103 - 区/县104 - 校;
*/
checkYthRole: (_type) => {
_type = Number(_type);
// 定义role对象
let _userRole = {
isAdmin: false,// 是否为管理员
isTeachDirector: false,//教务管理
isClassDirector: false // 是否为班主任
};
// 获取role列表
let _roles = BaseConfig.person_info_my.roles;
if (_roles && _roles.length > 0) {
// 循环遍历
for (let i = 0; i < _roles.length; i++) {
// 判断是否为省级管理员
if (_type === 101 && _roles[i].role_code === "PROVINCE_BUREAU_ADMIN") {
_userRole.isAdmin = true;
}
// 判断是否为市级管理员
if (_type === 102 && _roles[i].role_code === "CITY_BUREAU_ADMIN") {
_userRole.isAdmin = true;
}
// 判断是否为区/县管理员
if (_type === 103 && _roles[i].role_code === "DISTRICT_BUREAU_ADMIN") {
_userRole.isAdmin = true;
}
// 判断是否为校级管理员
if (_type === 104 && _roles[i].role_code === "SCHOOL_ADMIN") {
_userRole.isAdmin = true;
}
// 是否为当前学校下的教务主任
if (_type === 104 && _roles[i].role_code === "GLRJ_JWCZR") {
_userRole.isTeachDirector = true;
}
if (_type === 104 && _roles[i].role_code === "BZR") {
_userRole.isClassDirector = true;
}
if ((_type === 108 || _type === 109 || _type === 110) && _roles[i].role_code === "EDUASSIST_BUREAU_ADMIN") {
_userRole.isAdmin = true;
}
}
}
// 返回
return _userRole;
},
/**
* 获取登录用户权限数据
*/
getPersonInfo_I: () => {
if (Cookie.get("person_id")) {
let _param = {
"person_id": BaseConfig.userInfo.person_id_cookie,
"identity_id": BaseConfig.userInfo.identity_id_cookie
};
let _person_info_my = {};
// 请求接口路径
let url = "";
if(isSZUpload){
url = "intellioa/sys/cloudPlatform/getPersonInfo";
}else {
url = "person/getPersonInfo";
}
interfaceConfig.callInterface([{
//url: "person/getPersonInfo",
url: url,
method: "get",
params: _param,
isTestLogin: true
}], (result) => {
if (result[0].status === 200) {
let data = result[0].data;
// eslint-disable-next-line no-debugger
// 标识是否获取
BaseConfig.personInfoMy = true;
// 处理用户相关信息 - 临时保存
_person_info_my['person_name'] = data.table_List.person_name;
_person_info_my['sheng_id'] = data.table_List.province_id;
_person_info_my['sheng_name'] = data.table_List.province_name;
_person_info_my['shi_id'] = data.table_List.city_id;
_person_info_my['shi_name'] = data.table_List.city_name;
_person_info_my['qu_id'] = data.table_List.district_id;
_person_info_my['qu_name'] = data.table_List.district_name;
_person_info_my['bureau_id'] = data.table_List.bureau_id;
_person_info_my['bureau_name'] = data.table_List.bureau_name;
_person_info_my['login_name'] = data.table_List.login_name;
_person_info_my['tel'] = data.table_List.TEL;
_person_info_my['email'] = data.table_List.email || data.table_List.EMAIL;
_person_info_my['identity_num'] = data.table_List.identity_num;
_person_info_my['dep_id'] = data.table_List.dep_id;
_person_info_my['dep_name'] = data.table_List.dep_name;
_person_info_my['branch_school'] = data.table_List.branch_school;
_person_info_my['school_type'] = data.table_List.school_type;
if (data.table_List.bureau_type === 2) {
_person_info_my['xiao_id'] = data.table_List.bureau_id;
_person_info_my['xiao_name'] = data.table_List.bureau_name;
_person_info_my['bureau_iid'] = 104;
} else if (data.table_List.bureau_type === 7) {//教辅单位
// let _url_tea = BaseConfig.url_path_action_login + "/admin/new_base/getLevelOfJf";
// 创建common实体类
let _param_tea = { "org_id": parseInt(_person_info_my['bureau_id']) };
// let _common_tea = new Common(_url_tea, _param_tea);
interfaceConfig.callInterface([{
// url: "admin/new_base/getLevelOfJf",
url: "intellioa/sys/cloudPlatform/getLevelOfJf",
method: "get",
params: _param_tea,
isTestLogin: true
}], (data_tea) => {
if (data_tea[0].success) {
if (data_tea.level === 1) {//省级教辅单位
_person_info_my['bureau_iid'] = 110;
BaseConfig.person_info_my['bureau_iid'] = 110;
if (window.person_info_my) {
window.person_info_my["bureau_iid"] = 110;
} else {
window.person_info_my = { "bureau_iid": 110 };
}
} else if (data_tea.level === 2) {//市级教辅单位
_person_info_my['bureau_iid'] = 109;
BaseConfig.person_info_my['bureau_iid'] = 109;
if (window.person_info_my) {
window.person_info_my["bureau_iid"] = 109;
} else {
window.person_info_my = { "bureau_iid": 109 };
}
} else if (data_tea.level === 3) {//区级教辅单位
_person_info_my['bureau_iid'] = 108;
BaseConfig.person_info_my['bureau_iid'] = 108;
if (window.person_info_my) {
window.person_info_my["bureau_iid"] = 108;
} else {
window.person_info_my = { "bureau_iid": 108 };
}
}
}
})
}
else {
switch (_person_info_my['bureau_id']) {
case _person_info_my['sheng_id']:
_person_info_my['bureau_iid'] = 101;
break;
case _person_info_my['shi_id']:
_person_info_my['bureau_iid'] = 102;
break;
case _person_info_my['qu_id']:
_person_info_my['bureau_iid'] = 103;
break;
}
}
_person_info_my['roles'] = data.table_List.roles;
_person_info_my['cur_role'] = data.table_List.roles[0];
_person_info_my['personlogin_name'] = data.table_List.login_name;
_person_info_my['person_name'] = data.table_List.person_name;
if (BaseConfig.userInfo.identity_id_cookie === 6) {
_person_info_my['class_id'] = data.table_List.class_id;
_person_info_my['class_name'] = data.table_List.class_name;
}
if (BaseConfig.userInfo.identity_id_cookie === 7) {
_person_info_my['student_id'] = data.table_List.student_id;
_person_info_my['class_id'] = data.table_List.class_id;
_person_info_my['class_name'] = data.table_List.class_name;
}
//兼容移动端微信、Appcookie中没有值得问题
// if (isShowInMobile){
// let token = Cookie.get("token");
let Days = 30 * 12; //cookie 将被保存一年
let exp = new Date(); //获得当前时间
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); //换成毫秒
Cookie.set("person_name", Base64.encode(data.table_List.person_name));
Cookie.set("token", data.table_List.token);
// }
//兼容结束
BaseConfig.userInfo.person_name_cookie = data.table_List.person_name;
BaseConfig.userInfo.person_name = data.table_List.person_name;
BaseConfig.person_info_my = PublicFn.extendedObject(BaseConfig.person_info_my, _person_info_my);
window.person_info_my = BaseConfig.person_info_my
if (!BaseConfig.pt_type || BaseConfig.pt_type === "") {
interfaceConfig.callInterface([{
url: 'golbal/getValueByKey',
//url:"intellioa/sys/cloudPlatform/getValueByKey",
params: { key: 'common.server.location' },
method: 'get',
isTestLogin: false
}], (res) => {
if (res[0].status === 200) {
let env = res[0].data;
BaseConfig.pt_type = env["common.server.location"];
window.pt_type = env["common.server.location"]
BaseConfig.ConfigFn.setParamsValue();
}
})
}
}
})
}
},
/*
* 设置依赖于pt_type的公共变量的值
* */
setParamsValue: () => {
// 判断云板还是局版,并配置相关地址
if (BaseConfig.pt_type === "1") {
//素材服务器IP地址
// BaseConfig.url_path_down = "http://dsideal-yy.oss-cn-qingdao.aliyuncs.com/";
BaseConfig.url_path_down = window.location.protocol + "//video.edusoa.com/";
//资源上传地址
// BaseConfig.url_path = "http://dsideal-yy.oss-cn-qingdao.aliyuncs.com";
BaseConfig.url_path = "https://dsideal.obs.cn-north-1.myhuaweicloud.com";
//资源上传地址后缀
BaseConfig.url_path_suffix = "down/Material/";
//图片预览地址
BaseConfig.url_path_img = "down/Material/";
//上传地址(缩略图等)
// BaseConfig.url_path_other = "http://dsideal-yy.oss-cn-qingdao.aliyuncs.com";
BaseConfig.url_path_other = "https://dsideal.obs.cn-north-1.myhuaweicloud.com";
//游戏资源地址 周枫
BaseConfig.url_path_game = "down/Game/";
//专题资源地址 周枫
BaseConfig.url_path_zt = "down/Zhuanti/";
//图片预览压缩请求地址
BaseConfig.STATIC_IMAGE_PRE = window.location.protocol + "//image.edusoa.com/";
//专题资源地址 wzt
BaseConfig.zt_url_path_down = 'down/Zhuanti/';
BaseConfig.game_url_path_down = 'down/Game/';
//微课app
BaseConfig.wkapp_url_path_down = 'down/dzsb/apk/';
//游戏移动端 apk ios windows
BaseConfig.game_app_url_path_down = 'down/App/';
} else {
//图片上传地址(头像等)
BaseConfig.url_path_img_head = "down/Image/";
BaseConfig.url_path_down = BaseConfig.url_path_html + "/html/";// demo:/dsideal_yy/html/
//局版资源上传路径 周枫
BaseConfig.url_path_suffix = "down/Material/";
if(isSZUpload){
BaseConfig.url_path = BaseConfig.url_path_action_login + "/dsideal_yy/ypt/intellioa/java/sys/cloudPlatform/plupload";
}else {
BaseConfig.url_path = BaseConfig.url_path_action_login + "/res/plupload/";
}
//局版图片预览路径 周枫
BaseConfig.url_path_img = "thumb/Material/";
//图片预览压缩请求地址
BaseConfig.STATIC_IMAGE_PRE = BaseConfig._action_path + "/dsideal_yy/html/";
BaseConfig.zt_url_path_down = 'down/Zhuanti/';
BaseConfig.game_url_path_down = 'down/Game/';
//微课app
BaseConfig.wkapp_url_path_down = 'down/dzsb/apk/';
//游戏移动端 apk ios windows
BaseConfig.game_app_url_path_down = 'down/App/';
}
/*** 相关参数配置信息 - 如:是局版还是云版 -- end **************/
}
};
/**
* 配置信息
* @type {{}}
*/
const BaseConfig = {
version: "v1.0.0",// 版本号
isLogin: false, // 是否登录
page_number: 1,// 默认分页数,第几页
showCount: 10,// 显示的分页块数
page_size: 10// 分页时每页显示的条数
};
/**
* 当前登录用户的person_id和identity_id
*/
BaseConfig.userInfo = {
// 用户id
person_id: Cookie.get("person_id"),
person_id_cookie: Cookie.get("person_id"),
// 登录用户名称
person_name_cookie: Cookie.get("person_name"),
// 用户角色
identity_id: Cookie.get("identity_id"),
identity_id_cookie: Cookie.get("identity_id")
};
/**
* 当前登录人信息对象数据,该参数中包含当前登录人的所有数据
* @type {{}}
*/
BaseConfig.person_info_my = {
spatialProperties: "",// 空间属性student - 学生空间teacher - 教师空间bureauEdu - 局空间
loginUserRole: { // 登录用户角色信息对象
isAdmin: false,// 当前登录用户是否为当前角色下的管理员默认false
isTeachDirector: false,// 当前登录用户是否为当前学校下的教务主任默认false
isClassDirector: false // 当前登录用户是否为当前角色下的班主任。默认false
},
admin_list: [],// 管辖范围 - 地区结构管理员
bureau_id: "",// 所属单位id
bureau_iid: "",// 所属单位类型100 - 全国101 - 省102 - 市103 - 区/县104 - 校105 - 班
bureau_name: "",// 所属单位名称
email: "",// 邮件
dep_id: "",//部门id
dep_name: "",//部门名称
identity_num: "",// 用户身份id
isTeacherRole: "",// 是否是教职工
login_name: "",// 登录用户名
person_name: "",// 用户名
personlogin_name: "",//
class_id: "",// 所属班级id
qu_id: "",// 所属区id
qu_name: "",// 所属区名称
roles: [],// 角色列表
cur_role: null,//当前角色
sheng_id: "",// 所属省id
sheng_name: "",// 所属省名称
shi_id: "",// 所属市id
shi_name: "",// 所属市名称
space_avatar_fileid: "",// 头像图片地址
tel: "",// 电话号码
topOrgIid: "", // 最高部署级别表示100 - 全国101 - 省102 - 市103 - 区/县104 - 校
xiao_id: "",// 所属校id
xiao_name: "",// 所属校名称
branch_school: []//分校数组
};
// 用来标识是否获取了personInfo信息
BaseConfig.personInfoMy = false;
/*** 相关参数配置信息 - 如:是局版还是云版 -- start **************/
// 页面链接地址
BaseConfig.url_path_html = ConfigFn.getContextHtmlPath();
// 路径一级域名
BaseConfig.url_origin = window.location.origin + "/";
// contextpath
BaseConfig.contextpath = ConfigFn.getContextHtmlPath();
//未登录时调用的action路径
BaseConfig.url_path_action_login = BaseConfig.contextpath;
// 前台action路径
BaseConfig.url_path_action = BaseConfig.contextpath + "/ypt";
//后台action路径
BaseConfig.url_path_action_ht = BaseConfig.contextpath + "/management";
//访问地址后台上传后跳转的action用到
BaseConfig._action_path = ConfigFn.getServerUrl();
// 展示空间主页面地址
BaseConfig.spaceMainUrl = BaseConfig.url_path_html + "/html/space/main/main.html";
// 云版还是局版,配置参数;获取该字段参
// 数值,调用的接口需要在外部调用
BaseConfig.pt_type = "";
// 判断是否获取父页面中的top.window.pt_type
if (top.window) {
BaseConfig.pt_type = top.window.pt_type;
ConfigFn.setParamsValue();
}
/*********************** 管理软件配置信息 -- start *****************/
BaseConfig.managementInfo = {
// 基础数据
baseServer_url: BaseConfig.url_path_html + "/base-server/a",
// 学生评价
xspj_url: BaseConfig.url_path_html + "/business_xspj_interface/a",
// 排选课
jwgl_url: BaseConfig.url_path_html + "/business_jwgl_interface/a"
};
/*********************** 统计分析平台配置信息 -- start *****************/
BaseConfig.statisticalInfo = {
// 基础信息模块
baseInfoUrl: BaseConfig.url_path_html + "/dsideal_bda/baseinfo"
};
/*************************** 以下处理BaseConfig中相关参数的业务逻辑 --- start ********************************/
/********* 判断当前访问的用户信息,并保存 ****************/
if (ConfigFn.getQueryString("id") !== null && ConfigFn.getQueryString("identity_id") !== null) {
BaseConfig.userInfo.person_id = ConfigFn.getQueryString("id");
BaseConfig.userInfo.identity_id = ConfigFn.getQueryString("identity_id");
}
/********************* 根据当前cookie判断是否登录如果未登录并记录 *********************/
if (Cookie.get("person_id") !== null && Cookie.get("person_id") !== undefined && Cookie.get("person_id") !== "") {
BaseConfig.isLogin = true;
} else {
BaseConfig.isLogin = false;
}
/**
* 获取当前登录用户的信息对象
* 1判断当前项目是否被iframe嵌入到空间框架中如果被嵌入person_info_my对象信息数据从外部获取如果获取到则不调用接口获取数据
* 2: 如果没有被嵌入则调取接口,获取当前登录用户信息数据
*/
if (!BaseConfig.personInfoMy) {
if (top.window && top.window.person_info_my) {
BaseConfig.person_info_my = top.window.person_info_my;
BaseConfig.person_info_my['cur_role'] = BaseConfig.person_info_my.roles[0];
window.person_info_my = top.window.person_info_my;
// 标识是否获取
BaseConfig.personInfoMy = true;
} else {
// 获取登录用户信息权限
ConfigFn.getPersonInfo_I();
}
}
/**
* 判断当前空间属性,是学生空间、教职工空间还是局版空间
* 规则:
* 判断Cookie中的identityId - BaseConfig.userInfo.identity_id_cookie;该值有可能为字符串或者整形,所以使用时需要强转为字符串后判断
* 1如果该值为5证明当前用户角色为教师而教师中分教职工角色和局职工角色
* 2如果该值为6证明当前用户角色为学生则为学生空间
*/
// 如果角色为5 - 教师
if ((BaseConfig.userInfo.identity_id + '') === "5") {
// 判断为教职工还是局
if (BaseConfig.person_info_my.isTeacherRole) {
// 教职工
BaseConfig.person_info_my.spatialProperties = "teacher";
} else {
// 局
BaseConfig.person_info_my.spatialProperties = "bureauEdu";
}
} else if ((BaseConfig.userInfo.identity_id + '') === "6") {
// 如果角色id为6- 学生
BaseConfig.person_info_my.spatialProperties = "student";
}
// 判断登录用户角色相关信息,是否为管理员,班主任
BaseConfig.person_info_my.loginUserRole = ConfigFn.checkYthRole(BaseConfig.person_info_my.bureau_iid);
/************ 判断当前登录用户角色(学生空间,教师空间),显示不通的主题样式 --- start ***********/
if (BaseConfig.person_info_my.spatialProperties === "student") {// 学生空间
PublicFn.setStyleSheet('student.main', 'themeStyle');
} else if (BaseConfig.person_info_my.spatialProperties === "teacher") {// 教师空间
PublicFn.setStyleSheet('teacher.main', 'themeStyle');
} else if (BaseConfig.person_info_my.spatialProperties === "bureauEdu") {// 局空间
PublicFn.setStyleSheet('main', 'themeStyle');
}
/************ 判断当前登录用户角色(学生空间,教师空间),显示不通的主题样式 --- end ***********/
/**
* 各个项目路径配置的地址
* @type {{brightLife: string, newTabWindow: string}}
*/
BaseConfig.projectUrl = {
// 慧生活
brightLife: BaseConfig.url_path_html + "/pro_integration/reactProject/officeSystem/",
// 新开窗口newTabWindow项目的路径
newTabWindow: window.location.origin + BaseConfig.url_path_html + "/pro_integration/reactProject/newTabWindow/"
};
// console.log("BaseConfig")
// console.log(BaseConfig)
// 添加方法库
BaseConfig.ConfigFn = ConfigFn;
BaseConfig.isSZUpload = isSZUpload;//是否苏州版本上传附件方式
BaseConfig.isCloud = isCloud;//是否云环境
export default BaseConfig;