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;