123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606 |
- app.controller('LoginCtrl', ['$rootScope', '$scope', '$state', '$translate', '$localStorage', '$cookieStore', '$auth', '$window', '$document', '$timeout', '$filter', '$http', 'cfpLoadingBar', 'Restangular', 'api_login', 'api_is_category', 'SweetAlert', 'api_msg',
- function ($rootScope, $scope, $state, $translate, $localStorage, $cookieStore, $auth, $window, $document, $timeout, $filter, $http, cfpLoadingBar, Restangular, api_login, api_is_category, SweetAlert, api_msg) {
- $rootScope.app.layout.isNavbarFixed = false;
- $rootScope.app.layout.isSidebarFixed = false;
- //判断项目归属 start
- //因项目众多,前端为了加以区分,所以用域名加以判断,后期有更好的方式可以自行修改
- // 中南财大
- $rootScope.isZncd = document.domain === 'itsm.zuel.edu.cn';
- //判断项目归属 end
- // 是否单点登录
- $scope.isSSo = location.search.length > 0;
- //初始化,获取版本类别,处理人/处理科室-seimin
- $scope.isCategoryHandle = function () {
- api_is_category.isCategory({ "idx": 0, "sum": 1000 })
- .then(function (res) {
- if (res.status == 200) {
- //存储报修主体到缓存
- var list = res.list;
- var repairMain = list.find((v) => v.keyconfig == "repairMain"); //报修主体
- var incidentWithConsumable = list.find(
- (v) => v.keyconfig == "incidentWithConsumable"
- ); //是否绑定耗材
- var wxIncidentWithCmdb = list.find(
- (v) => v.keyconfig == "wxIncidentWithCmdb"
- ); //是否绑定资产
- sessionStorage.setItem(
- "repair_main",
- JSON.stringify(repairMain)
- );
- sessionStorage.setItem(
- "incidentWithConsumable",
- incidentWithConsumable.valueconfig
- );
- sessionStorage.setItem(
- "wxIncidentWithCmdb",
- wxIncidentWithCmdb.valueconfig
- );
- }
- })
- .catch(function (err) {
- console.log(err)
- })
- };
- $scope.loginBtn = {
- closeEl: '.close',
- modal: {
- templateUrl: 'assets/views/loginform.html',
- postion: 'center'
- }
- };
- // $scope.jry_ceshi=function(){
- // // alert('ok')
- // console.log('ok')
- // }
- $scope.choicevalue = 1
- $scope.choicelogin = function (e) {
- $scope.choicevalue = e;
- }
- $scope.login = function () {
- angular.element('.el-login').trigger('click');
- }
- // $scope.login();
- $scope.close = function () {
- console.log(angular.element('.el-login'));
- angular.element('.el-login').trigger('click');
- }
- $scope.loginForm = {
- username: "",
- // account:"",
- password: ""
- }
- $rootScope.app.isLoginFixed = true;
- $scope.validateUsername = function () {
- return $scope.loginForm.username == null || $scope.loginForm.username == "";
- }
- $scope.validatePassword = function () {
- return $scope.loginForm.password == null || $scope.loginForm.password == "";
- }
- $scope.formValid = function () {
- return $scope.loginForm.username == null || $scope.loginForm.username == "" || $scope.loginForm.password == null || $scope.loginForm.password == "";
- }
- $rootScope.$on('auth:invalid', function (ev) {
- $state.go('login.signin');
- });
- $scope.licensePassShow = false;
- $scope.licenseSoonShow = false;
- $scope.licenseTrialShow = false;
- $scope.licenseSurplusTime = 0;
- $scope.licensePassSub = function () {
- if ($scope.licenseIsAdmin) {
- $scope.licensePassShow = false;
- $state.go('login.license');
- } else {
- $scope.licensePassShow = false;
- }
- }
- $scope.licenseSoonShowSub = function () {
- $scope.licenseSoonShow = false;
- $rootScope.getpending();
- $state.go('app.dashboard');
- }
- $scope.licenseTrialSub = function () {
- $scope.licenseTrialShow = false;
- $rootScope.getpending();
- $state.go('app.dashboard');
- }
- $scope.licenseTrialActivation = function () {
- $state.go('login.license');
- }
- $scope.licenseIsAdmin = "";
- // 未读消息数量
- // $scope.noReadData=0
- // $rootScope.getMsgNum=function(id){
- // api_msg.msgDataList({idx: 0, sum: 1, messageStation: {readStatus: 0, userId: id}}).then(function(data) {
- // if (data.status == 200) {
- // $rootScope.noReadData=data.totalNum
- // } else {
- // $rootScope.noReadData=0
- // }
- // return $rootScope.noReadData
- // })
- // }
- //登录
- $scope.handleLoginClick = function (e) {
- // api_login.getLicense({}).then(function(res){
- // $auth.submitLogin($scope.loginForm)
- // var ssoStr = location.search.replace('?', '').split('&')[0].split('=')[1];
- var ssoStr = '';
- var ssoJson;
- if ($scope.isSSo) {
- ssoStr = location.search.replace('?', '').split('&')[0].split('=')[1];
- ssoStr = Base64.decode(decodeURIComponent(ssoStr));
- ssoJson = JSON.parse(ssoStr);
- }
- var postData = $scope.isSSo ? { username: ssoJson.a, password: ssoJson.u, t: false } : $scope.loginForm;
- api_login.login(postData)
- .then(function (resp) {
- console.log(resp);
- if ($scope.isSSo) {
- localStorage.setItem('isSSo', '1');//单点登录
- } else {
- localStorage.setItem('isSSo', '0');//正常登录
- }
- if (resp.state == "10000") {//license失效
- // console.log($scope.loginForm);
- if (resp.role) {
- for (var i = 0; i < resp.role.length; i++) {
- if (resp.role[i] == "admin general" || resp.role[i] == "admin") {
- $scope.licenseIsAdmin = true
- }
- }
- }
- if ($scope.licenseIsAdmin) {
- $scope.licensePassShow = true;
- // $state.go('login.license');
- } else {
- $scope.licensePassShow = true
- }
- } else {
- api_login.getLicense({}).then(function (res) {
- console.log(res);
- var subIsAdmin = "";
- if (resp.data && resp.data.user && resp.data.user.role) {
- for (var i = 0; i < resp.data.user.role.length; i++) {
- if (resp.data.user.role[i].rolecode == "admin") {
- var subIsAdmin = true
- }
- }
- }
- $scope.isCategoryHandle();//判断报修主体
- $scope.featureSum = res.featureSum;
- $scope.licenseSurplusTime = Number(res.featureSum) - Number(res.featureAlready);
- if (res.type == 1 && subIsAdmin) {
- $scope.licenseTrialShow = true;
- resp.data.user["menu"] = resp.data.menu;
- localStorage.setItem("jry_user", JSON.stringify(resp.data.user));
- localStorage.setItem("login_requester", JSON.stringify(resp.data.requester));
- $rootScope.user = JSON.parse(localStorage.getItem("jry_user"));
- $rootScope.login_requester = JSON.parse(localStorage.getItem("login_requester"));
- $rootScope.getMsgNum($rootScope.user.id)
- $rootScope.isFuwutai = false;//服务台人员和服务台经理才显示右上角呼叫功能
- if ($rootScope.user) {
- if($rootScope.user.role&&angular.isArray($rootScope.user.role)&&$rootScope.user.role.length){
- $rootScope.isFuwutai = $rootScope.user.role.some(function(v){
- return v.rolecode == 'call center';
- })
- }else{
- $rootScope.isFuwutai = false;
- }
- }
- if($rootScope.isFuwutai){
- localStorage.setItem("isFuwutai", 'true');
- }else{
- localStorage.removeItem('isFuwutai');
- }
- // $rootScope.userMenus = JSON.parse(localStorage.getItem("jry_user")).menu;
- var allJurisdiction = JSON.parse(localStorage.getItem("jry_user")).menu;
- var onlyMenu = [];
- // console.log(allJurisdiction);
- for (var i = 0; i < allJurisdiction.length; i++) {
- if (allJurisdiction[i].event == "1") {
- onlyMenu.push(allJurisdiction[i])
- }
- }
- // console.log(onlyMenu);
- $rootScope.userMenus = onlyMenu;
- var getMenus = function () {
- function convertListToTree(data, treeMap) {
- var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup
- var root = null; //Initially set our loop to null
- var parentNode = null;
- //loop over data
- for (var i = 0; i < data.length; i++) {
- // data[i].id = Number(data[i].id);
- var datum = data[i];
- //each node will have children, so let's give it a "children" poperty
- datum.children = [];
- //add an entry for this node to the map so that any future children can
- //lookup the parent
- idToNodeMap[datum.id] = datum;
- //Does this node have a parent?
- if (typeof datum.parentid === "undefined" || datum.parentid == null) {
- //Doesn't look like it, so this node is the root of the tree
- root = datum;
- treeMap[datum.id] = root;
- } else {
- //This node has a parent, so let's look it up using the id
- parentNode = idToNodeMap[datum.parentid];
- //We don't need this property, so let's delete it.
- //delete datum.parentid;
- //Let's add the current node as a child of the parent node.
- parentNode.children.push(datum);
- }
- }
- return root;
- }
- function convertParentToChildList(data) {
- var treeMap = {};
- var list = [];
- convertListToTree(data, treeMap);
- angular.forEach(treeMap, function (item) {
- list.push(item);
- });
- list = window._.sortBy(list, function (o) {
- return o.orders;
- });
- return list;
- }
- //if(userMenus.length==0){
- var userMenus = [];
- var idMapMenu = {};
- if ($rootScope.user) {
- if ($rootScope.user.menu) {
- console.log($rootScope.user.menu);
- var allJurisdiction2 = $rootScope.user.menu;
- var onlyMenu2 = [];
- for (var i = 0; i < allJurisdiction2.length; i++) {
- if (allJurisdiction2[i].event == "1") {
- onlyMenu2.push(allJurisdiction2[i])
- }
- }
- // userMenus = convertParentToChildList($rootScope.user.menu);
- userMenus = convertParentToChildList(onlyMenu2);
- }
- }
- //}
- $rootScope.userMenus = userMenus;
- if ($rootScope.userMenus.length > 0) {
- // getpending();
- // setInterval(getpending, 30000);
- }
- return userMenus;
- }
- getMenus();
- } else {
- if ($scope.licenseSurplusTime < 7 && subIsAdmin) {
- $scope.licenseSoonShow = true;
- // if (resp.error != 501 && resp.error != 400) {
- // $state.go('app.knowledge.forum');
- // $rootScope.app.isLoginFixed = false;
- // // console.log(resp);
- // // api_wechatfile.getDictionary({ "type": "list", "key": "hjzx_cornet" }).then(function(data) {
- // // $scope.runNumber = data;
- // // $scope.phone = $scope.runNumber[0].name;
- // // $rootScope.phoneChange($scope.phone);
- // // })
- // } else {
- // resp.error = "";
- // $scope.loginForm.password = "";
- // SweetAlert.swal("用户名或者密码验证失败,请重试!", "error");
- // // $rootScope.user=resp.user;
- // // $rootScope.menu=resp.menu;
- // }
- resp.data.user["menu"] = resp.data.menu;
- localStorage.setItem("jry_user", JSON.stringify(resp.data.user));
- localStorage.setItem("login_requester", JSON.stringify(resp.data.requester));
- $rootScope.user = JSON.parse(localStorage.getItem("jry_user"));
- $rootScope.login_requester = JSON.parse(localStorage.getItem("login_requester"));
- $rootScope.getMsgNum($rootScope.user.id)
- $rootScope.isFuwutai = false;//服务台人员和服务台经理才显示右上角呼叫功能
- if ($rootScope.user) {
- if($rootScope.user.role&&angular.isArray($rootScope.user.role)&&$rootScope.user.role.length){
- $rootScope.isFuwutai = $rootScope.user.role.some(function(v){
- return v.rolecode == 'call center';
- })
- }else{
- $rootScope.isFuwutai = false;
- }
- }
- if($rootScope.isFuwutai){
- localStorage.setItem("isFuwutai", 'true');
- }else{
- localStorage.removeItem('isFuwutai');
- }
- // $rootScope.userMenus = JSON.parse(localStorage.getItem("jry_user")).menu;
- var allJurisdiction = JSON.parse(localStorage.getItem("jry_user")).menu;
- var onlyMenu = [];
- // console.log(allJurisdiction);
- for (var i = 0; i < allJurisdiction.length; i++) {
- if (allJurisdiction[i].event == "1") {
- onlyMenu.push(allJurisdiction[i])
- }
- }
- // console.log(onlyMenu);
- $rootScope.userMenus = onlyMenu;
- var getMenus = function () {
- function convertListToTree(data, treeMap) {
- var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup
- var root = null; //Initially set our loop to null
- var parentNode = null;
- //loop over data
- for (var i = 0; i < data.length; i++) {
- // data[i].id = Number(data[i].id);
- var datum = data[i];
- //each node will have children, so let's give it a "children" poperty
- datum.children = [];
- //add an entry for this node to the map so that any future children can
- //lookup the parent
- idToNodeMap[datum.id] = datum;
- //Does this node have a parent?
- if (typeof datum.parentid === "undefined" || datum.parentid == null) {
- //Doesn't look like it, so this node is the root of the tree
- root = datum;
- treeMap[datum.id] = root;
- } else {
- //This node has a parent, so let's look it up using the id
- parentNode = idToNodeMap[datum.parentid];
- //We don't need this property, so let's delete it.
- //delete datum.parentid;
- //Let's add the current node as a child of the parent node.
- parentNode.children.push(datum);
- }
- }
- return root;
- }
- function convertParentToChildList(data) {
- var treeMap = {};
- var list = [];
- convertListToTree(data, treeMap);
- angular.forEach(treeMap, function (item) {
- list.push(item);
- });
- list = window._.sortBy(list, function (o) {
- return o.orders;
- });
- return list;
- }
- //if(userMenus.length==0){
- var userMenus = [];
- var idMapMenu = {};
- if ($rootScope.user) {
- if ($rootScope.user.menu) {
- console.log($rootScope.user.menu);
- var allJurisdiction2 = $rootScope.user.menu;
- var onlyMenu2 = [];
- for (var i = 0; i < allJurisdiction2.length; i++) {
- if (allJurisdiction2[i].event == "1") {
- onlyMenu2.push(allJurisdiction2[i])
- }
- }
- // userMenus = convertParentToChildList($rootScope.user.menu);
- userMenus = convertParentToChildList(onlyMenu2);
- }
- }
- //}
- $rootScope.userMenus = userMenus;
- if ($rootScope.userMenus.length > 0) {
- // getpending();
- // setInterval(getpending, 30000);
- }
- return userMenus;
- }
- getMenus();
- } else {
- if (resp.state == "500") {
- SweetAlert.swal("用户名或者密码验证失败,请重试!", "error");
- } else {
- // if (resp.error != 501 && resp.error != 400) {
- // $state.go('app.knowledge.forum');
- // $rootScope.app.isLoginFixed = false;
- // // console.log(resp);
- // // api_wechatfile.getDictionary({ "type": "list", "key": "hjzx_cornet" }).then(function(data) {
- // // $scope.runNumber = data;
- // // $scope.phone = $scope.runNumber[0].name;
- // // $rootScope.phoneChange($scope.phone);
- // // })
- // } else {
- // resp.error = "";
- // $scope.loginForm.password = "";
- // SweetAlert.swal("用户名或者密码验证失败,请重试!", "error");
- // // $rootScope.user=resp.user;
- // // $rootScope.menu=resp.menu;
- // }
- resp.data.user["menu"] = resp.data.menu;
- localStorage.setItem("jry_user", JSON.stringify(resp.data.user));
- localStorage.setItem("login_requester", JSON.stringify(resp.data.requester));
- $rootScope.user = JSON.parse(localStorage.getItem("jry_user"));
- $rootScope.login_requester = JSON.parse(localStorage.getItem("login_requester"));
- $rootScope.getMsgNum($rootScope.user.id)
- $rootScope.isFuwutai = false;//服务台人员和服务台经理才显示右上角呼叫功能
- if ($rootScope.user) {
- if($rootScope.user.role&&angular.isArray($rootScope.user.role)&&$rootScope.user.role.length){
- $rootScope.isFuwutai = $rootScope.user.role.some(function(v){
- return v.rolecode == 'call center';
- })
- }else{
- $rootScope.isFuwutai = false;
- }
- }
- if($rootScope.isFuwutai){
- localStorage.setItem("isFuwutai", 'true');
- }else{
- localStorage.removeItem('isFuwutai');
- }
- // $rootScope.userMenus = JSON.parse(localStorage.getItem("jry_user")).menu;
- var allJurisdiction = JSON.parse(localStorage.getItem("jry_user")).menu;
- var onlyMenu = [];
- // console.log(allJurisdiction);
- for (var i = 0; i < allJurisdiction.length; i++) {
- if (allJurisdiction[i].event == "1") {
- onlyMenu.push(allJurisdiction[i])
- }
- }
- // console.log(onlyMenu);
- $rootScope.userMenus = onlyMenu;
- var getMenus = function () {
- function convertListToTree(data, treeMap) {
- var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup
- var root = null; //Initially set our loop to null
- var parentNode = null;
- //loop over data
- for (var i = 0; i < data.length; i++) {
- // data[i].id = Number(data[i].id);
- var datum = data[i];
- //each node will have children, so let's give it a "children" poperty
- datum.children = [];
- //add an entry for this node to the map so that any future children can
- //lookup the parent
- idToNodeMap[datum.id] = datum;
- //Does this node have a parent?
- if (typeof datum.parentid === "undefined" || datum.parentid == null) {
- //Doesn't look like it, so this node is the root of the tree
- root = datum;
- treeMap[datum.id] = root;
- } else {
- //This node has a parent, so let's look it up using the id
- parentNode = idToNodeMap[datum.parentid];
- //We don't need this property, so let's delete it.
- //delete datum.parentid;
- //Let's add the current node as a child of the parent node.
- parentNode.children.push(datum);
- }
- }
- return root;
- }
- function convertParentToChildList(data) {
- var treeMap = {};
- var list = [];
- convertListToTree(data, treeMap);
- angular.forEach(treeMap, function (item) {
- list.push(item);
- });
- list = window._.sortBy(list, function (o) {
- return o.orders;
- });
- return list;
- }
- //if(userMenus.length==0){
- var userMenus = [];
- var idMapMenu = {};
- if ($rootScope.user) {
- if ($rootScope.user.menu) {
- console.log($rootScope.user.menu);
- var allJurisdiction2 = $rootScope.user.menu;
- var onlyMenu2 = [];
- for (var i = 0; i < allJurisdiction2.length; i++) {
- if (allJurisdiction2[i].event == "1") {
- onlyMenu2.push(allJurisdiction2[i])
- }
- }
- // userMenus = convertParentToChildList($rootScope.user.menu);
- userMenus = convertParentToChildList(onlyMenu2);
- }
- }
- //}
- $rootScope.userMenus = userMenus;
- if ($rootScope.userMenus.length > 0) {
- // getpending();
- // setInterval(getpending, 30000);
- }
- return userMenus;
- }
- getMenus();
- // if (!resp.error || resp.error != 500) {
- if (resp.data && resp.data.user && resp.data.user.id) {
- // console.log(resp.error);
- $rootScope.getpending();
- $state.go('app.dashboard');
- $rootScope.app.isLoginFixed = false;
- // console.log(resp);
- // api_wechatfile.getDictionary({ "type": "list", "key": "hjzx_cornet" }).then(function(data) {
- // $scope.runNumber = data;
- // $scope.phone = $scope.runNumber[0].name;
- // $rootScope.phoneChange($scope.phone);
- // })
- } else {
- resp.error = "";
- $scope.loginForm.password = "";
- SweetAlert.swal("用户名或者密码验证失败,请重试!", "error");
- // $rootScope.user=resp.user;
- // $rootScope.menu=resp.menu;
- };
- if($rootScope.isFuwutai){
- $rootScope.getExtnDirect();
- }
- }
- }
- }
- })
- }
- })
- .catch(function (resp) {
- $scope.loginForm.password = "";
- // SweetAlert.swal("系统错误,请重试!", "登录错误", "error");
- SweetAlert.swal("用户名或者密码验证失败,请重试!", "error");
- });
- // })
- };
- if ($scope.isSSo) {
- $scope.handleLoginClick();
- }
- $scope.handleloginEnter = function (e) {
- if (e.keyCode == 13) {
- $scope.handleLoginClick();
- }
- };
- $scope.viewType = "password";
- $scope.isPassword = true;
- $scope.toggleView = function () {
- $scope.isPassword = !$scope.isPassword;
- $scope.viewType = $scope.isPassword ? "password" : "text";
- }
- $scope.handleSignOutBtnClick = function () {
- $auth.signOut()
- .then(function (resp) {
- // handle success response
- })
- .catch(function (resp) {
- // handle error response
- });
- };
- }
- ]);
|