shptjs/src/models/session/index.js

337 lines
13 KiB
JavaScript

import { httppost, httpget } from "../../utils/request";
import apiurl from "../apiurl";
import moment from "moment";
import { getUser, setLoginInfo, encrypt, removeLoginInfo } from "./utils";
import { message } from "antd";
import dbStorage from '../indexDb/index'
import { setTree,setTree123 } from '../../utils/tools'
const session = {
state: {
user: getUser(),
menu: [],
formParams: {},
geometry: {}
},
reducers: {
setUser(state, user) {
return {
...state,
user,
}
},
setMenu(state, menu) {
return {
...state,
menu,
}
},
setParams(state, formParams) {
return {
...state,
formParams,
}
},
setPolygon(state, geometry) {
return {
...state,
geometry,
}
}
},
effects: {
async auth({ loginName, password }) {
// 获取验证码
const { data: captcha } = await httppost(apiurl.service.sysuser.getCaptcha) || {};
if (!captcha) {
message.error('获取验证失败')
return false;
}
const keystr = moment().format("YYYYMMDDhhmmss");
// 给密码加密
const params = {
"captcha": captcha,
"aesKey": keystr,
"password": encrypt(password, `${keystr}HX`),
"username": loginName
}
const tokenData = await httppost(apiurl.service.sysuser.getToken, params) || {};
if (tokenData.code == 200) {
sessionStorage.setItem('token', tokenData.data.access_token);
return true
} else {
message.error('登陆失败')
return false;
}
// if (!tokenData.data) {
// message.error('登陆失败')
// return false;
// }
// const access_token = tokenData.data.access_token
// const userData = await httpget(apiurl.service.sysuser.getUser + access_token) || {};
// // this.getData(userData)
// const { data } = await httpget(`${apiurl.service.adcd.tree}/${userData.adcd}`) || {}
// dbStorage.setItem('dataTree',data)
// await setTree('dataTree',userData)
// await setTree123('dataTree123',userData)
// const im = new IMSDK();
// im.init({
// uid: uid,
// })
// .login()
// .onConnect((data, ctx) => {
// im.sendSingleMessage({
// data,
// onSuccess: (data) => { },
// onFail: (e) => { },
// onTimeout: (e) => { },
// });
// });
// openDB(userData.adcd).then(res => addData(res, 'link', data))
// if (userData) {
// setLoginInfo(userData);
// this.setUser(userData);
// return userData;
// }
return false;
},
async byToken(access_token) {
// // 获取验证码
// const { data: captcha } = await httppost(apiurl.service.sysuser.getCaptcha) || {};
// if (!captcha) {
// message.error('获取验证失败')
// return false;
// }
// const keystr = moment().format("YYYYMMDDhhmmss");
// // 给密码加密
// const params = {
// "captcha": captcha,
// "aesKey": keystr,
// "password": encrypt(password, `${keystr}HX`),
// "username": loginName
// }
// const tokenData = await httppost(apiurl.service.sysuser.getToken, params) || {};
// if (!tokenData.data) {
// message.error('登陆失败')
// return false;
// }
// const access_token = tokenData.data.access_token
const userData = await httpget(apiurl.service.sysuser.getUser + access_token) || {};
// // this.getData(userData)
// const { data } = await httpget(`${apiurl.service.adcd.tree}/${userData.adcd}`) || {}
// dbStorage.setItem('dataTree',data)
// await setTree('dataTree',userData)
// await setTree123('dataTree123',userData)
// const im = new IMSDK();
// im.init({
// uid: uid,
// })
// .login()
// .onConnect((data, ctx) => {
// im.sendSingleMessage({
// data,
// onSuccess: (data) => { },
// onFail: (e) => { },
// onTimeout: (e) => { },
// });
// });
// openDB(userData.adcd).then(res => addData(res, 'link', data))
if (userData) {
setLoginInfo(userData);
this.setUser(userData);
return true;
}
return false;
},
logout() {
removeLoginInfo();
this.setUser(null);
},
async loadMenu(user=2) {
// debugger;
if (!user) {
return;
}
//根据权限判断应该展示哪些菜单
const myMenu = [
// { id: 100, path: "/home", parent_id: -1, name: "首页", type: 0, order: 1 },
{
id: 201, redirect: "/xzqh/xzqhbg", parent_id: -1, name: "行政区划", type: 1, order: 1, children: [
{ id: 202, path: "/xzqh/xzqhbg", parent_id: 500, name: "行政区划变更", type: 0, order: 1,disadlevel:[0,1] },
{ id: 203, path: "/xzqh/yhjmwh", parent_id: 500, name: "沿河居民维护", type: 0, order: 1, },
{ id: 204, path: "/xzqh/xzqhcx", parent_id: 500, name: "行政区划查询", type: 0, order: 1, },
]
},
{
id: 301, redirect: "/yagl/yabg", parent_id: -1, name: "预案管理", type: 1, order: 1, children: [
{ id: 302, path: "/yagl/yabg", parent_id: 500, name: "预案变更", type: 0, order: 1 },
{ id: 303, path: "/yagl/yatjcx", parent_id: 500, name: "预案查询", type: 0, order: 1 },
{ id: 304, path: "/yagl/yatjtj", parent_id: 500, name: "预案统计", type: 0, order: 1 },
]
},
{
id: 401, redirect: "/fyzrr/zrrbg", parent_id: -1, name: "防御责任人", type: 1, order: 1, children: [
{ id: 402, path: "/fyzrr/zrrbg", parent_id: 500, name: "防御责任人变更", type: 0, order: 1,disadlevel:[0,1] },
{ id: 403, path: "/fyzrr/zrrcx", parent_id: 500, name: "防御责任人查询", type: 0, order: 1, },
]
},
{
id: 501, redirect: "/jczd/zdbg", parent_id: -1, name: "监测站点", type: 1, order: 1, children: [
{ id: 502, path: "/jczd/zdbg", parent_id: 500, name: "自动监测站点变更", type: 0, order: 1,disadlevel:[0,1] },
{ id: 503, path: "/jczd/zdsp", parent_id: 500, name: "自动监测站点复核审批", type: 0, order: 1,disadlevel:[0,2,3,4,5] },
{ id: 504, path: "/jczd/zdcx", parent_id: 500, name: "自动监测站点查询", type: 0, order: 1 },
]
},
{
id: 601, redirect: "/wxq/wxqbg", parent_id: -1, name: "危险区", type: 1, order: 1, children: [
{ id: 602, path: "/wxq/wxqbg", parent_id: 500, name: "危险区变更", type: 0, order: 1,disadlevel:[0,1] },
{ id: 603, path: "/wxq/wxqsp", parent_id: 500, name: "危险区复核审批", type: 0, order: 1,disadlevel:[0,2,3,4,5] },
{ id: 604, path: "/wxq/wxqcx", parent_id: 500, name: "危险区查询", type: 0, order: 1 },
]
},
{
id: 701, redirect: "/fzc/fzccx", parent_id: -1, name: "防治村", type: 1, order: 1, children: [
{ id: 702, path: "/fzc/fzccx", parent_id: 500, name: "防治村查询", type: 0, order: 1 },
]
},
{
id: 801, redirect: "/Yjyz/Bg", parent_id: -1, name: "预警阈值", type: 1, order: 1, children: [
{ id: 802, path: "/Yjyz/Bg", parent_id: 500, name: "预警阈值变更", type: 0, order: 1,disadlevel:[0,1] },
{ id: 803, path: "/Yjyz/Sp", parent_id: 500, name: "预警阈值复核审批", type: 0, order: 1,disadlevel:[0,2,3,4,5] },
{ id: 804, path: "/Yjyz/Cx", parent_id: 500, name: "预警阈值查询", type: 0, order: 1 },
]
},
{
id: 901, redirect: "/Yjgx/Bg", parent_id: -1, name: "预警关系", type: 1, order: 1, children: [
{ id: 902, path: "/Yjgx/Bg", parent_id: 500, name: "预警对象与测站关系变更", type: 0, order: 1,disadlevel:[0,1] },
{ id: 904, path: "/Yjgx/Sp", parent_id: 500, name: "预警对象与测站关系变更审批", type: 0, order: 1 ,disadlevel:[0,2,3,4,5]},
{ id: 903, path: "/Yjgx/Cx", parent_id: 500, name: "预警对象与测站关系查询", type: 0, order: 1 },
]
},
{
id: 101, redirect: "/Xly/Bg", parent_id: -1, name: "小流域", type: 1, order: 1, children: [
{ id: 102, path: "/Xly/Bg", parent_id: 500, name: "小流域变更", type: 0, order: 1, },
{ id: 103, path: "/Xly/Bdgx", parent_id: 500, name: "小流域与行政区关系变更", type: 0, order: 1 ,},
{ id: 104, path: "/Xly/Cgbb", parent_id: 500, name: "成果报表", type: 0, order: 1 , children:[
{ id: 105, path: "/Xly/Cgbb/Fzdx", parent_id: 500, name: "防治对象", type: 0, order: 1 },
{ id: 106, path: "/Xly/Cgbb/Dccg2", parent_id: 500, name: "跨沟调查成果", type: 0, order: 1 },
{ id: 107, path: "/Xly/Cgbb/Dccg3", parent_id: 500, name: "沟滩占地情况", type: 0, order: 1 },
// { id: 108, path: "/Xly/Cgbb/Dccg4", parent_id: 500, name: "外洪顶托集镇及村落", type: 0, order: 1 },
{ id: 109, path: "/Xly/Cgbb/Dccg5", parent_id: 500, name: "重点关注对象", type: 0, order: 1 },
{ id: 110, path: "/Xly/Cgbb/Fwjg", parent_id: 500, name: "房屋结构", type: 0, order: 1 },
{ id: 111, path: "/Xly/Cgbb/Wxdj", parent_id: 500, name: "危险地建", type: 0, order: 1 },
{ id: 112, path: "/Xly/Cgbb/Yhd", parent_id: 500, name: "隐患点名录", type: 0, order: 1 },
{ id: 113, path: "/Xly/Cgbb/Hsxc", parent_id: 500, name: "历史山洪灾害现场", type: 0, order: 1 },
{ id: 114, path: "/Xly/Cgbb/RelativeFzdx", parent_id: 500, name: "防治对象关联站点", type: 0, order: 1 },
{ id: 115, path: "/Xly/Cgbb/Hjm", parent_id: 500, name: "后河小流域横断面", type: 0, order: 1 },
{ id: 116, path: "/Xly/Cgbb/Zjm", parent_id: 500, name: "后河小流域纵断面", type: 0, order: 1 },
{ id: 117, path: "/Xly/Cgbb/Wjsc", parent_id: 500, name: "文件上传", type: 0, order: 1 },
]},
]
},
{
id: 111, redirect: "/fhrz/xzqh", parent_id: -1, name: "复核日志", type: 1, order: 1, children: [
{ id: 112, path: "/fhrz/xzqh", parent_id: 500, name: "行政区划", type: 0, order: 1 },
{ id: 113, path: "/fhrz/yhjm", parent_id: 500, name: "沿河居民户", type: 0, order: 1 },
{ id: 114, path: "/fhrz/yuan", parent_id: 500, name: "预案", type: 0, order: 1 },
{ id: 115, path: "/fhrz/fyzrr", parent_id: 500, name: "防御责任人", type: 0, order: 1 },
{ id: 116, path: "/fhrz/jczd", parent_id: 500, name: "监测站点", type: 0, order: 1 },
{ id: 117, path: "/fhrz/wxq", parent_id: 500, name: "危险区", type: 0, order: 1 },
{ id: 118, path: "/fhrz/yjyz", parent_id: 500, name: "预警阈值", type: 0, order: 1 },
{ id: 119, path: "/fhrz/yjgx", parent_id: 500, name: "预警关系", type: 0, order: 1 },
]
},
{
id:121, redirect: "/ptjs/czrz", parent_id: -1, name: "平台监视", type: 1, order: 1, children: [
{ id: 402, path: "/ptjs/czrz", parent_id: 500, name: "操作日志", type: 0, order: 1},
{ id: 403, path: "/ptjs/czdbl", parent_id: 500, name: "测站到报率", type: 0, order: 1},
]
},
]
let arr = myMenu.map((item,index)=>{
let obj=[]
item.children.map(it=>{
if(it.disadlevel){
if(it.disadlevel?.indexOf(user.adlevel) ==-1){
obj.push(it)
}
}else{
obj.push(it)
}
})
item.children = obj
item.redirect=item.children[0]?.path
return item
})
this.setMenu(arr)
// const { data } = await httpget(apiurl.sysmenu.usertree) || {}
// if (Array.isArray(data)) {
// const actionMap = {};
// const menu = trimMenuActions(actionMap, null, data);
// changeMenuIdToString(menu);
// this.setMenu({ menu, actionMap });
// } else {
// this.setMenu({});
// }
},
//获取表单数据
async getParams(params) {
this.setParams(params)
},
//清空表单
clearForm() {
this.setParams({})
this.setPolygon({})
},
//添加polygon
addPolygon(polygon) {
this.setPolygon(polygon)
},
//清空polygon
clearPolygon() {
this.setPolygon({})
}
}
}
export default session;