'use strict'; /** * Clip-Two Main Controller */ app.controller('AppCtrl', ['$rootScope', '$scope', '$state', '$translate', '$localStorage', '$cookieStore', '$window', '$modal', '$document', '$timeout', '$filter', '$auth', 'cfpLoadingBar', 'DDP', 'deskNotification', 'Restangular', 'api_login', 'api_text', 'api_user_data', 'api_wechatfile', 'api_bpm_data', 'api_msg', 'Myservice', '$interval','jry_api_bpm', function($rootScope, $scope, $state, $translate, $localStorage, $cookieStore, $window, $modal, $document, $timeout, $filter, $auth, cfpLoadingBar, DDP, deskNotification, Restangular, api_login, api_text, api_user_data, api_wechatfile, api_bpm_data, api_msg, Myservice, $interval,jry_api_bpm) { // 未读消息数量seimin $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; } return $rootScope.noReadData }) } // Loading bar transition // ----------------------------------- // console.log("haha"); $rootScope.user = JSON.parse(localStorage.getItem("jry_user")); console.log($rootScope.user) if($rootScope.user){ $rootScope.getMsgNum($rootScope.user.id); } var $win = $($window); $rootScope.isMask = false; window.onbeforeunload = function() { $rootScope.statuscall = 0; $rootScope.statecall = 1; } // 所有列表自动刷新 $rootScope.refreshTime=30000; $interval(function() { $scope.jry_year = new Date().getFullYear(); $scope.jry_month = new Date().getMonth() + 1; $scope.jry_data = new Date().getDate(); $scope.jry_hours = new Date().getHours(); $scope.jry_minute = new Date().getMinutes(); $scope.jry_second = new Date().getSeconds(); // console.log($scope.jry_month) }, 1000) // $win.on('beforeunload', function() { return $state.go("login.signin"); }); // $auth.deleteData('auth_headers') // } $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) { if (isEmpty($auth.retrieveData('auth_headers'))) { // if (toState.name != "login.signin" && toState.name != "echart") { // event.preventDefault(); // $rootScope.app.isLoginFixed = true; // // $scope.lodingstyle = 'nodata'; // return $state.go("login.signin"); // } } // if (toState.name == "app.system.user.user") { // var isgoto = false; // if ($rootScope.user && $rootScope.user.menu) { // angular.forEach($rootScope.user.menu, function(item) { // if (item.link == toState.name) { // isgoto = true; // } else {} // }) // } // if (isgoto) { // } else { // $state.go("app.dashboard"); // } // } // if (toState.name != "app.incident.editor" && toState.name != "echart") { // if ($rootScope.status == 2 || $rootScope.status == 4 || $rootScope.status == 9) { // $rootScope.setidle(); // } // } cfpLoadingBar.start(); $auth.validateUser(); }); $rootScope.imUsrMap = {}; $rootScope.onlineUser = []; $rootScope.offlineUser = []; $rootScope.me = undefined; $rootScope.imscope = { sessions: [] } // var ws = new WebSocket('ws://192.168.3.51:8088/events'); // var register= {"msgtype":"login","adn":"1001"}; // ws.onopen = function() { ws.send(JSON.stringify(register));} // ws.onmessage = function(evt) { console.log(evt.data) } var ddp = new DDP('ws://115.156.150.70:3000/websocket'); $rootScope.getDirectMsgRoomId = function(mdId, toId) { //me.id,to.id var rid = [mdId, toId].sort().join(''); return rid; }; $rootScope.sendMessage = function(rid, msg, callback, error) { ddp.call('sendMessage', [{ 'rid': rid, 'msg': msg }]).then(callback, error); }; var pushNotification = function(notification) { deskNotification.showNotification(notification.title, { body: notification.body, icon: notification.icon || '../bower_components/HTML5-Desktop-Notifications/alert.ico', onClick: notification.callback || function onNotificationClicked() { // console.log('Notification clicked.'); }, autoClose: 4000 //auto close the notification after 4 seconds (you can manually close it via hide function) }, function onShow(error, hide) { if (error) { window.alert('Unable to show notification: ' + error.message); } else { // console.log('Notification Shown.'); setTimeout(function hideNotification() { // console.log('Hiding notification....'); hide(); //manually close the notification (you can skip this if you use the autoClose option) }, 5000); } }); } // $rootScope.subscribeRoomMessage = function(rid){ // ddp.subscribe('stream-room-messages',[rid, true]).then(function(){},function(reason){ // console.log('subscribe stream-room-messages:%o', reason); // }); // } $rootScope.filternotifyuser = []; $rootScope.$on('openroom', function(event, data, otheruser) { ddp.call('createDirectMessage', [otheruser]).then(function() {}, function(reason) { // console.log('createDirectMessage', reason); }); ddp.subscribe('stream-room-messages', [data.rid, true]).then(function() {}, function(reason) { // console.log('subscribe stream-room-messages:%o', reason); }); if ($rootScope.imUsrMap[data.from]['unread'].msgs) { $rootScope.imUsrMap[data.from]['unread'].msgs.clear; } $rootScope.filternotifyuser.push(data.from); }); $rootScope.$on("clip-two.toggled", function(e, target, newState, sameGroup) { if (newState == false && target == 'off-sidebar') { $rootScope.$broadcast('chatcloseroom'); //$rootScope.toggle("users"); //$rootScope.filternotifyuser = []; //ddp.unsubscribe('stream-room-messages'); } }); $rootScope.$on("closeroom", function(event, data) { $rootScope.filternotifyuser = []; ddp.unsubscribe('stream-room-messages'); }); var initImUser = function(email, token) { var ddpconnect = ddp.connect(); ddpconnect.then(function(data) { //console.log(data); if (data.session) { // ddp.call('createDirectMessage', [data.from, data.rid]).then(function() {}, function(reason) { // console.log('subscribe createDirectMessage'); // }); ddp.call('login', [{ user: { email: email }, password: token }]).then(function(data) { // console.log('login data: %o', data); if (data.id) { $rootScope.me = { id: data.id, token: data.token, expiry: data.tokenExpires }; //获取在线用户 ddp.subscribe('activeUsers'); ddp.subscribe('stream-notify-user', [$rootScope.me.id + '/notification', true]).then(function(result) { //console.log(result); }, function(reason) { // console.log('stream-notify-user error:%s', reason); }); // ddp.subscribe('stream-notify-user',[$rootScope.me.id+'/message',false]).then(function(result){ // console.log(result); // },function(reason){ // console.log('stream-notify-user error:', reason); // }); ddp.subscribe('messages', [$rootScope.me.id + '/message', true]).then(function() {}, function(reason) { // console.log('subscribe messages error:%s', reason); }); //'stream-notify-user',$rootScope.me.id+'/message' // ddp.call('sendmessage', []).then(function(msg){ // }) //console.log('Logged in!'); // ddp.subscribe('messages', [{rid:data.id,start:new Date()}]).then(function(submsg){ // console.log('subscribe messages-%s', submsg); // $rootScope.rocketchat_message = ddp.getCollection('rocketchat_message'); // },function(reason){ // console.log(reason); // }) } }, function(reason) { // console.log(reason); }); } else { } ddp.watch('users', function(changedDoc, message) { //console.log('users:%o',changedDoc); // if (message == 'method') { // console.log("1111111111111111111") // } if (message == 'added') { if (changedDoc.status && ($rootScope.me.id != changedDoc._id)) { if (changedDoc.status == 'away') { $rootScope.offlineUser.push(changedDoc); $rootScope.imUsrMap[changedDoc._id] = { state: 'away', username: changedDoc.username, index: $rootScope.offlineUser.length - 1, unread: { total: 0, msgs: [] } }; } else { $rootScope.onlineUser.push(changedDoc); $rootScope.imUsrMap[changedDoc._id] = { state: changedDoc.status, username: changedDoc.username, index: $rootScope.onlineUser.length - 1, unread: { total: 0, msgs: [] } }; } } else { //self } } else if (message == 'changed') { if ($rootScope.me.id != changedDoc._id) { if (!$rootScope.imUsrMap[changedDoc._id]) { if (changedDoc.status == 'away') { $rootScope.offlineUser.push(changedDoc); $rootScope.imUsrMap[changedDoc._id] = { state: 'away', username: changedDoc.username, index: $rootScope.offlineUser.length - 1, unread: { total: 0, msgs: [] } }; } else { $rootScope.onlineUser.push(changedDoc); $rootScope.imUsrMap[changedDoc._id] = { state: changedDoc.status, username: changedDoc.username, index: $rootScope.onlineUser.length - 1, unread: { total: 0, msgs: [] } }; } } if (changedDoc.status == 'away') { if ($rootScope.imUsrMap[changedDoc._id].state == 'away') { } else { $rootScope.offlineUser.push(changedDoc); $rootScope.onlineUser.splice($rootScope.imUsrMap[changedDoc._id].index, 1); window._.map(window._.slice($rootScope.onlineUser, $rootScope.imUsrMap[changedDoc._id].index), function(item, n) { $rootScope.imUsrMap[item._id].index = n; }) // $rootScope.onlineUser = window._.take($rootScope.onlineUser,$rootScope.imUsrMap[changedDoc._id].index).concat(window._.map(window._.slice($rootScope.onlineUser,$rootScope.imUsrMap[changedDoc._id].index+1),function(item){ // item.index = item.index - 1; // })) //.splice($rootScope.imUsrMap[changedDoc.id].index,1); $rootScope.imUsrMap[changedDoc._id] = { state: changedDoc.status, username: changedDoc.username, index: $rootScope.offlineUser.length }; } } else { if ($rootScope.imUsrMap[changedDoc._id].state == 'away') { $rootScope.onlineUser.push(changedDoc); $rootScope.offlineUser.splice($rootScope.imUsrMap[changedDoc._id].index, 1); window._.map(window._.slice($rootScope.offlineUser, $rootScope.imUsrMap[changedDoc._id].index), function(item, n) { $rootScope.imUsrMap[item._id].index = n; }) // $rootScope.offlineUser = window._.take($rootScope.offlineUser,$rootScope.imUsrMap[changedDoc._id].index).concat(window._.map(window._.slice($rootScope.offlineUser,$rootScope.imUsrMap[changedDoc._id].index+1),function(item){ // item.index = item.index - 1; // })) $rootScope.imUsrMap[changedDoc._id] = { state: changedDoc.status, username: changedDoc.username, index: $rootScope.onlineUser.length }; } else { } } } } else if (message == 'removed') { if ($rootScope.imUsrMap[changedDoc._id].state == 'away') { } else { $rootScope.onlineUser.splice($rootScope.imUsrMap[changedDoc._id].index, 1); $rootScope.offlineUser.splice($rootScope.imUsrMap[changedDoc._id].index, 1); window._.map(window._.slice($rootScope.offlineUser, $rootScope.imUsrMap[changedDoc._id].index), function(item, n) { $rootScope.imUsrMap[item._id].index = n; }); $rootScope.imUsrMap[changedDoc._id] = { state: changedDoc.status, username: changedDoc.username, index: $rootScope.onlineUser.length, unread: { total: 0, msgs: [] } }; } } }); ddp.watch('stream-notify-user', function(changedDoc, message) { if (message == 'changed') { if (changedDoc.eventName) { if (changedDoc.eventName.indexOf('/') > -1) { var [mineId, action] = changedDoc.eventName.split('/'); if (action == 'notification') { angular.forEach(changedDoc.args, function(item) { if ($rootScope.filternotifyuser.indexOf(item.payload.sender._id) > -1) { } else { // console.log("push notify message:%o", item); var r = angular.extend(item, { 'date': new Date() }) $rootScope.imUsrMap[item.payload.sender._id]['unread'].msgs.push(r); $rootScope.imUsrMap[item.payload.sender._id]['unread'].total++; pushNotification({ title: "您有新消息-来自" + item.payload.sender.username, body: r.text, callback: function() { window.focus(); $rootScope.toggle('off-sidebar'); } }) //toaster.pop('info', "您有新消息-来自"+item.payload.sender.username, r.text); } }) } } } } else { } //console.log('notify message %o, %o', changedDoc, message); }); ddp.watch('stream-room-messages', function(changedDoc, message) { if (message == 'changed') { //angular.forEach(changedDoc.args,function(item){ $rootScope.$broadcast(changedDoc.eventName + '-msgs', changedDoc.args); //}; // if(changedDoc.eventName){ // $rootScope.imUsrMap[eventName]=$rootScope.imUsrMap[eventName]||{}; // $rootScope.imUsrMap[eventName]['msgs']=$rootScope.imUsrMap[eventName]['msgs']||[]; // angular.forEach(changedDoc.args,function(item){ // $rootScope.imUsrMap[eventName].msgs.push(item); // }) // } } else { } // console.log('notify message %o, %o', changedDoc, message); }); ddp.watch('rocketchat_message', function(changedDoc, message) { // console.log('recieve rocketchat_message: %o-%o', changedDoc, message); }); }); } window.onunload = function() { } $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) { //$auth.validateUser(); //stop loading bar on stateChangeSuccess event.targetScope.$watch("$viewContentLoaded", function() { cfpLoadingBar.complete(); }); // scroll top the page on change state $document.scrollTo(0, 0); if (angular.element('.email-reader').length) { angular.element('.email-reader').animate({ scrollTop: 0 }, 0); } // Save the route title $rootScope.currTitle = $state.current.title; if (angular.isDefined($state.current.pdKey)) { $rootScope.pdKey = $state.current.pdKey; } // console.log($state.current.title); }); // State not found $rootScope.$on('$stateNotFound', function(event, unfoundState, fromState, fromParams) { //$rootScope.loading = false; if (angular.isUndefined($rootScope.user.id)) { $rootScope.loading = false; } // console.log(unfoundState.to); // "lazy.state" // console.log(unfoundState.toParams); // {a:1, b:2} // console.log(unfoundState.options); // {inherit:false} + default options }); $rootScope.isMousedown=false; $rootScope.changeRemoveClass=function(e){ $rootScope.isMousedown=true } $rootScope.returnRemoveClass=function(e){ $rootScope.isMousedown=false; } $rootScope.$on('auth:login-success', function(ev, data) { // $state.go('login.signin'); initImUser(data.email, data.msgUuid); getMenus(); //console.log(data); //$rootScope.user = data.user; //$rootScope.menus = data.menu; }); //$rootScope.$watch('$auth.user') // $rootScope.$on('auth:validation-success', function(ev, user) { // // console.log(user); // initImUser(user.email, user.msgUuid); // if ($rootScope.userMenus.length == 0) { // getMenus(); // } // //alert('Welcome ', user.email); // }); // $rootScope.$on('auth:invalid', function(ev) { // $state.go('login.signin'); // }); // $rootScope.$on('auth:validation-error', function(ev) { // $state.go('login.signin'); // //alert('Welcome ', user.email); // }); // $rootScope.$on('auth:session-expired', function(ev) { // //alert('Welcome ', user.email); // $state.go('login.signin'); // }); // $rootScope.$on('auth:logout-success', function(ev) { // //alert('goodbye'); // //delete $rootScope.user; // //delete $rootScope.menus; // $state.go('login.signin'); // }); // $rootScope.$on('auth:logout-error', function(ev) { // $state.go('login.signin'); // }); $rootScope.pageTitle = function() { // if($rootScope.currTitle){ // return $rootScope.app.name + ' - ' + $filter('translate')($rootScope.currTitle) || $rootScope.app.description; // }else{ // return $rootScope.app.name + ' - ' + $rootScope.app.description // } var perfix = "sidebar.nav."; var toTransKeypageTitle = perfix + $rootScope.currTitle; return $rootScope.app.name + ' - ' + ($filter('translate')(toTransKeypageTitle) || $rootScope.app.description); }; // $auth.validateUser(); // $auth.authenticate('local').then(function(resp){ // }).catch(function(resp){ // }) // if(angular.isDefined($rootScope.nickname)){ // api_login.sso($rootScope.nickname).then(function(response){ // var user = Restangular.stripRestangular(response); // if (user) { // if(angular.isUndefined(user.id)){ // }else{ // $rootScope.user = user; // } // } // }); // }else{ // var user= $cookieStore.get("userObm"); // if(user){ // $rootScope.user = user; // $rootScope.menus = $cookieStore.get("menuObm"); // }else{ // if(angular.isDefined($rootScope.nickname)){ // api_login.sso($rootScope.nickname).then(function(response){ // var data = Restangular.stripRestangular(response); // if (data) { // if(data.user){ // if(angular.isUndefined(data.user.id)){ // }else{ // $rootScope.user = data.user; // $rootScope.menus = data.menu; // $cookieStore.put("userObm", $rootScope.user); // $cookieStore.put("menuObm", $rootScope.menus); // $cookieStore.put("session", data.sessionId); // } // } // } // }); // }else{ // } // } //} $rootScope.getSession = function() { if ($auth.userIsAuthenticated()) { return $auth.retrieveData('auth_headers') /*return { 'access-token':$auth.retrieveData('auth_headers')['access-token'], 'expiry':$auth.retrieveData('auth_headers')['expiry'] };*/ } else { return undefined; } } $scope.includes = []; $rootScope.includesState = function(state) { //for test //return true; //return includes; if ($rootScope.user) { if ($rootScope.user.menu) { angular.forEach($rootScope.user.menu, function(item) { $scope.includes[item.link] = true; }); } } return $scope.includes[state]; } //大屏入口 $rootScope.opendashbord = function() { $state.go('echart'); } // $rootScope.authority=false; // console.log($rootScope.user) // if($rootScope.user.role){ // for(var i ;i<$rootScope.user.role.length;i++){ // if($rootScope.user.role[i].rolecode=='call center') { // $rootScope.authority=true; // }else{$rootScope.authority=false;} // } // } /* status[已签入:1/通话中:3/来电:2],state[示闲:1,示忙:2] */ // if (window.location.href && window.location.href.hash == "#/echart") { // } else { // // } // // 东经呼叫中心开始 // $rootScope.statuscall = 0; //话机状态 // $rootScope.statecall = 1; //示忙示闲 // $scope.login = false; //签入签出 // $rootScope.callout = false; //呼入呼出 // $scope.group = 2000; // $scope.phone = 1500; // $rootScope.start = function(phone, group) { // api_text.start(phone, $rootScope.user.id).then(function(data) { // var token = data.token; // $rootScope.takes = token; // api_text.logout($rootScope.takes, $rootScope.user.id).then(function(data) { if (data.errno == 0) {} }); // api_text.login($scope.group, token, $rootScope.user.id).then(function(data) { // if (data.errno == 0) { // $rootScope.setidle(); // $scope.login = true; // $rootScope.statuscall = 1; // $rootScope.callout = false; // // function hello() { // // var ws = new WebSocket('ws://192.168.3.49:28088/events'); // // ws.onopen = function() { ws.send(JSON.stringify(register)); }; // // }; // // window.setTimeout("hello()", 1000); // // var ws = new WebSocket('ws://192.168.77.57:28088/events'); // function reconnect() { // // var ws = new WebSocket('ws://192.168.3.49:28088/events'); // var ws = new WebSocket('ws://115.156.150.70:28088/events'); // var register = { "msgtype": "login", "adn": phone }; // ws.onopen = function() { // heartCheck.start(); // ws.send(JSON.stringify(register)); // }; // ws.onmessage = function(evt) { // heartCheck.reset(); // if (evt.data == "HeartBeat") { // } else { // var mydata = JSON.parse(evt.data); // $scope.filterData = []; // if (mydata.evttype == "callincome" && mydata.uud != "misc:callback") { // $rootScope.$apply(function() { // $rootScope.statuscall = 2; // }); // $rootScope.callout = false; // $rootScope.phone = mydata.ano; // var Notification = window.Notification; // Notification.requestPermission(); // var n = new Notification("你有来电", { // body: "来电号码:" + mydata.ano, // icon: '../bower_components/HTML5-Desktop-Notifications/alert.ico', // // onclick: function onNotificationClicked() { // // console.log('Notification clicked.'); // // } // }); // } else if (mydata.evttype == "callincome" && mydata.uud == "misc:callback") { // $rootScope.callout = true; // } else if (mydata.evttype == "ringstop") { // // $rootScope.status=7; // // $rootScope.$apply(function() { // $rootScope.statuscall = 1; // // }); // $rootScope.phone = "" // } else if (mydata.evttype == 'hookchanged' && $rootScope.callout) { // if (mydata.status && mydata.status == '1') { // $rootScope.$apply(function() { // $rootScope.statuscall = 1; // }); // $rootScope.phone = ""; // } else if (mydata.status && mydata.status != '1') { // $rootScope.$apply(function() { // $rootScope.statuscall = 3; // }); // } // } else if (mydata.evttype == 'hookchanged' && !$rootScope.callout) { // if ($rootScope.phone != "") { // if (mydata.status && mydata.status == '1') { //挂机 // $rootScope.$apply(function() { // $rootScope.statuscall = 1; // }); // console.log("挂机"); // console.log(mydata); // } else if (mydata.status && mydata.status != '1' && $rootScope.statecall != 2) { //摘机 // $rootScope.statuscall = 3; // api_text.setbusy($rootScope.takes).then(function(data) { // if (data.errno == 0) { // $rootScope.statecall = 2; // $scope.busy = true; // } // }) // console.log("摘机"); // console.log(mydata); // api_text.getcdrid($rootScope.takes).then(function(response) { // if (response.cdrid) { // var cdrid = response.cdrid; // // var response={cdrid:'219023836'} // var filterData = { "idx": 0, "sum": 10, "requester": { "mphone": $rootScope.phone, "telephone": $rootScope.phone, "selectType": 1 } } // api_user_data.fetchDataList('requester', filterData).then(function(data) { // var myData = Restangular.stripRestangular(data); // // $rootScope.phone=""; // if (myData.list.length == 0) { // var modalInstance = $modal.open({ // templateUrl: 'assets/views/customform/tpl/modal-add-callrequester.html', // controller: function($scope, $modalInstance, api_user_data) { // $scope.title = "新增报修人"; // $scope.requester = {}; // $scope.onChangeadd = function(searchData) { // $scope.searchKey = searchData.account; // // $scope.searchDataadd = searchData; // var requesdata = angular.copy(searchData) // // if (requesdata.mphone) { // // delete requesdata.mphone; // // } // if (requesdata.telephone) { // delete requesdata.telephone; // } // angular.extend($scope.requester, requesdata); // } // $scope.refreshUseradd = function(searchKey) { //请求人搜索 // $scope.requester.account = searchKey; // $scope.searchData = searchKey; // serchdataadd(searchKey); // } // $scope.getMydata = function(x) { // var reqestdatap = JSON.parse(x[0]) // // if ($scope.requester.mphone) { // // delete reqestdatap.mphone; // // } // if ($scope.requester.telephone) { // delete reqestdatap.telephone; // } // $scope.searchField = JSON.parse(x[0]).account; // angular.extend($scope.requester, reqestdatap); // } // $scope.getMydataone = function(x) { // $scope.searchField = x; // $scope.requester.account = x; // } // serchdataadd(); // function serchdataadd(searchKey) { // if (searchKey) { // var filterData = { // 'requester': { // 'searchKey': searchKey, // }, // idx: 0, // sum: 10 // }; // } else { // var filterData = { // idx: 0, // sum: 10 // }; // } // // serchdataadd(searchKey) // // if ($scope.model.requester && $scope.model.requester.requesterTypeDTO) { // // angular.extend(filterData.requester, { 'requesterTypeDTO': $scope.model.requester.requesterTypeDTO }) // // } // api_user_data.fetchDataList('requester', filterData).then(function(response) { // var myData = response; // $scope.myData = myData.list; // }); // } // // if ((/^1[34578]\d{9}$/.test($rootScope.phone))) { // // $scope.requester = { 'mphone': $rootScope.phone }; // // } else { // // $scope.requester = { 'telephone': $rootScope.phone }; // // } // $scope.requester = { 'telephone': $rootScope.phone }; // $scope.ok = function() { // $modalInstance.close($scope.requester); // }; // $scope.cancel = function() { // $modalInstance.dismiss('cancel'); // }; // }, // }); // modalInstance.result.then(function(selectedItem) { // if (selectedItem) { // if (selectedItem.telephone && !selectedItem.mphone) { // selectedItem.telephone = angular.copy(selectedItem.mphone); // delete selectedItem.mphone; // } // var data = { // 'requester': selectedItem // }; // api_user_data.addData('requester', data).then(function(response) { // if (response.status == 200) { // var data = { 'model': { 'requestershow': response.data, 'incident': { 'requester': response.data, 'area': response.areaDTO, 'place': response.placeDTO, 'houseNumber': response.houseNumber, 'callID': cdrid, 'source': { 'id': 1 } } } } // $state.go('app.incident.title', { 'model': JSON.stringify(data) }); // } // }) // } // }); // } else if (myData.list.length == 1) { // var data = { 'model': { 'requestershow': myData.list[0], 'incident': { 'requester': myData.list[0], 'area': myData.list[0].areaDTO, 'place': myData.list[0].placeDTO, 'houseNumber': myData.list[0].houseNumber, 'callID': cdrid, 'source': { 'id': 1 } } } } // $state.go('app.incident.title', { 'model': JSON.stringify(data) }); // } else { // var modalInstance = $modal.open({ // templateUrl: 'assets/views/createincident.html', // controller: function($scope, $modalInstance, api_user_data) { // $scope.title = "请确定报修人"; // $scope.requester = myData.list; // $scope.choice = function(requester) { // $modalInstance.dismiss('cancel'); // var data = { 'model': { 'requestershow': requester, 'incident': { 'requester': requester, 'area': requester.areaDTO, 'place': requester.placeDTO, 'houseNumber': requester.houseNumber, 'callID': cdrid, 'source': { 'id': 1 } } } } // $state.go('app.incident.title', { 'model': JSON.stringify(data) }); // }; // $scope.cancel = function() { // $modalInstance.dismiss('cancel'); // }; // }, // size: "lg" // }); // } // }); // } // }) // } // } // } // } // }; // var heartCheck = { // timeout: 12000, //60ms // timeoutObj: null, // serverTimeoutObj: null, // reset: function() { // clearTimeout(this.timeoutObj); // clearTimeout(this.serverTimeoutObj); // this.start(); // }, // start: function() { // var self = this; // this.timeoutObj = setTimeout(function() { // ws.send("HeartBeat"); // self.serverTimeoutObj = setTimeout(function() { // ws.close(); //如果onclose会执行reconnect,我们执行ws.close()就行了.如果直接执行reconnect 会触发onclose导致重连两次 // }, self.timeout) // }, this.timeout) // }, // } // ws.onclose = function(evt) { reconnect(); } // ws.onerror = function(evt) { reconnect(); }; // } // reconnect(); // } else { // var Notification = window.Notification; // Notification.requestPermission(); // var n = new Notification("签入失败!", { // body: data.errmsg, // icon: '../bower_components/HTML5-Desktop-Notifications/alert.ico', // // onclick: function onNotificationClicked() { // // console.log('Notification clicked.'); // // } // }); // } // }) // }) // } // // 东经呼叫中心结束 //话机呼叫中心--开始 $rootScope.getExtnDirect=function(){ var jry_data_dictionary={ key: "hjzx_cornet", type: "list" } api_wechatfile.getDictionary(jry_data_dictionary).then(function(res){ var websocket_url = "ws://192.168.3.122:29003/ola_socket"; var ola_queue = "10009"; //通话配置-队列配置-队列ID // var ola_extn = "1001"; //个人信息-座席分机号 $rootScope.jry_extnNumberSelect=[]; $rootScope.jry_extnNumberObj={}; $rootScope.jry_extnNumberSelect=res; $rootScope.jry_extnNumberObj.jry_extnNumber=$rootScope.jry_extnNumberSelect[0]; function log(msg) { //IE has no console if ('console' in window) console.log(msg); } function websocket_connect() { ola.connect(websocket_url); ola.onConnect = onConnect; ola.onClose = onClose; ola.onMessage = onMessage; } $(document).ready(function() { // if(ola_extn!=""){ if($rootScope.jry_extnNumberObj.jry_extnNumber){ websocket_connect(); } }); /* callbacks */ function onMessage(evt) { var phoneData = JSON.parse(evt.data); if (phoneData.event_type == "agent_state") { console.log(phoneData); if (phoneData.state == "busy") { $('#agent_state').append(" (" + phoneData.private_data + ")"); // 来电 if (phoneData.private_data == "ring") { console.log(phoneData); $rootScope.jry_state="laidian"; var Notification = window.Notification; Notification.requestPermission(); var n = new Notification("你有来电", { body: "来电号码:" + phoneData.ani, icon: '../bower_components/HTML5-Desktop-Notifications/alert.ico', }); // 摘机 } else if (phoneData.private_data == "answered") { $rootScope.jry_state="tonghuazhong"; var jry_findPhone=""; if(phoneData.ani){ jry_findPhone=phoneData.ani }else if(phoneData.dnis&&phoneData.other_answered){ jry_findPhone=phoneData.dnis } var filterData = { "idx": 0, "sum": 100, "requester": { "mphone": jry_findPhone, "telephone": jry_findPhone, "selectType": 1 } } api_user_data.fetchDataList('requester', filterData).then(function (data) { var myData = Restangular.stripRestangular(data); // $rootScope.phone=""; // 新增报修人 if (myData.list.length == 0) { var modalInstance = $modal.open({ templateUrl: 'assets/views/customform/tpl/modal-add-callrequester.html', controller: function ($scope, $modalInstance, api_user_data,SweetAlert,api_wechatfile) { $scope.title = "新增报修人"; $scope.requester = {}; $scope.onChangeadd = function (searchData) { $scope.searchKey = searchData.account; // $scope.searchDataadd = searchData; var requesdata = angular.copy(searchData) // if (requesdata.mphone) { // delete requesdata.mphone; // } if (requesdata.telephone) { delete requesdata.telephone; } angular.extend($scope.requester, requesdata); } $scope.refreshUseradd = function (searchKey) { //请求人搜索 $scope.requester.account = searchKey; $scope.searchData = searchKey; serchdataadd(searchKey); } $scope.getMydata = function (x) { var reqestdatap = JSON.parse(x[0]) // if ($scope.requester.mphone) { // delete reqestdatap.mphone; // } if ($scope.requester.telephone) { delete reqestdatap.telephone; } $scope.searchField = JSON.parse(x[0]).account; angular.extend($scope.requester, reqestdatap); } $scope.getMydataone = function (x) { $scope.searchField = x; $scope.requester.account = x; } serchdataadd(); function serchdataadd(searchKey) { if (searchKey) { var filterData = { 'requester': { 'searchKey': searchKey, }, idx: 0, sum: 10 }; } else { var filterData = { idx: 0, sum: 10 }; } api_user_data.fetchDataList('requester', filterData).then(function (response) { var myData = response; $scope.myData = myData.list; }); } api_user_data.fetchDataList('area', { idx: 0, sum: 100 }).then(function (response) { if (response.status == 200) { $scope.areas = response.list; } }) api_wechatfile.getDictionary({ "key":"requester_type", "type":"list" }).then(function (response) { // if (response.status == 200) { $scope.networktypes = response; // } }) $scope.requesterAreaid = ""; $scope.onChange = function (item) { $scope.requesterAreaid = item.id; $scope.requester.placeDTO = {}; api_user_data.fetchDataList('place', { place: { areaId: item.id }, idx: 0, sum: 1000 }).then(function (response) { if (response.status == 200) { $scope.places = response.list; } }) } //地点搜索 $scope.refresh = function (searchVal) { var faildata = {}; if ($scope.requesterAreaid) { faildata = { 'idx': 0, 'sum': 1000, 'place': { 'areaId': $scope.requesterAreaid, 'place': searchVal, 'selectType': 'pinyin_qs' } } } else { faildata = { 'idx': 0, 'sum': 1000, 'place': { 'place': searchVal, 'selectType': 'pinyin_qs' } } } api_user_data.fetchDataList('place', faildata).then(function (response) { $scope.places = response.list; delete $scope.requester.placeDTO; }) } $scope.requester = { 'telephone': jry_findPhone }; $scope.ok = function () { var reg1 = /^1[3456789][0-9]{9}$/; //手机号 var reg2 = /^((0\d{2,3})-)*(\d{7,8})(-(\d{3,}))?$/; //座机号 var flag1 = reg1.test($scope.requester.mphone); var flag2 = reg2.test($scope.requester.mphone); console.log($scope.requester) if (angular.isUndefined($scope.requester.name) || $scope.requester.name == null || $scope.requester.name == "") { SweetAlert.swal("报修人姓名未填!", "请填写报修人姓名", "error"); } else if (angular.isUndefined($scope.requester.requesterType)) { SweetAlert.swal("人员类型未填!", "请填写人员类型", "error"); } else if (angular.isUndefined($scope.requester.mphone) || $scope.requester.mphone == null || $scope.requester.mphone == "") { SweetAlert.swal("报修人电话未填!", "请填写报修人电话", "error"); } else { $modalInstance.close($scope.requester); } }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; }, }); modalInstance.result.then(function (selectedItem) { if (selectedItem) { if (selectedItem.telephone && !selectedItem.mphone) { selectedItem.telephone = angular.copy(selectedItem.mphone); delete selectedItem.mphone; } var data = { 'requester': selectedItem }; api_user_data.addData('requester', data).then(function (response) { if (response.status == 200) { var data = { 'model': { 'requestershow': response.data, 'incident': { 'requester': response.data, 'area': response.data.areaDTO, 'place': response.data.placeDTO, 'houseNumber': response.data.houseNumber, // 'callID': cdrid, 'source': { 'id': 1547 } } } } $state.go('app.incident.title', { 'model': JSON.stringify(data) }); } }) } }); } else if (myData.list.length == 1) { var data = { 'model': { 'requestershow': myData.list[0], 'incident': { 'requester': myData.list[0], 'area': myData.list[0].areaDTO, 'place': myData.list[0].placeDTO, 'houseNumber': myData.list[0].houseNumber, // 'callID': cdrid, 'source': { 'id': 1547 } } } } $state.go('app.incident.title', { 'model': JSON.stringify(data) }); } else { var modalInstance = $modal.open({ templateUrl: 'assets/views/createincident.html', controller: function ($scope, $modalInstance, api_user_data) { $scope.title = "请确定报修人"; $scope.requester = myData.list; $scope.choice = function (requester) { $modalInstance.dismiss('cancel'); var data = { 'model': { 'requestershow': requester, 'incident': { 'requester': requester, 'area': requester.areaDTO, 'place': requester.placeDTO, 'houseNumber': requester.houseNumber, // 'callID': cdrid, 'source': { 'id': 1547 } } } } $state.go('app.incident.title', { 'model': JSON.stringify(data) }); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; }, size: "lg" }); } }); } // 挂机 } else if(phoneData.state == "login"){ go_ready() }else if(phoneData.state == "logout"){ $rootScope.jry_state="weiqianru"; }else if(phoneData.state == "ready"){ // 来电挂机 if(phoneData.old_state=="busy"&&phoneData.private_data=="answered"){ go_break() }else{ $rootScope.jry_state="shixian"; } } // else if (data.old_state == "busy") { // } } else if (phoneData.event_type == "agent_caller_state") { // special feature, never mind if (phoneData.action == "in") { } else { } } else if (phoneData.event_type == "command/reply") { if (phoneData.phoneData && phoneData.phoneData.state) { } } } function onConnect() { console.log("websocket connected!"); // ola._extn = ola_extn; // ola.subscribe('ola.queue.' + ola_queue + '.' + ola_extn); // ola.subscribe('ola.caller.' + ola_extn); // ola.get_agent_state(ola_extn); ola._extn = $rootScope.jry_extnNumberObj.jry_extnNumber.name; ola.subscribe('ola.queue.' + ola_queue + '.' + $rootScope.jry_extnNumberObj.jry_extnNumber.name); ola.subscribe('ola.caller.' + $rootScope.jry_extnNumberObj.jry_extnNumber.name); ola.get_agent_state($rootScope.jry_extnNumberObj.jry_extnNumber.name); }; function onClose() { } function login() { // ola.login(ola_queue, ola_extn, {type: "onhook"}); console.log($rootScope.jry_extnNumberObj.jry_extnNumber); ola.login(ola_queue, $rootScope.jry_extnNumberObj.jry_extnNumber.name, {type: "onhook"}); } function logout() { ola.logout(); } function go_ready() { ola.go_ready(); } function go_break() { ola.go_break($('#break_reason').val()); $rootScope.jry_state="shimang"; } function answer() { ola.answer(); } function dial(dst) { ola.dial(dst); } $rootScope.dial=function(dst){ ola.dial(dst); } function conference(dst) { ola.conference(dst); } function conference_uuid(channel_uuid) { ola.conference_uuid(channel_uuid); } function hangup() { ola.hangup(); } function take_call(uuid) { // ola.take_call(ola_extn, uuid); ola.take_call($rootScope.jry_extnNumberObj.jry_extnNumber.name, uuid); } // 签入 $rootScope.jry_qianru=function(){ login(); } // 示闲 $rootScope.jry_shixian=function(){ go_ready() } // 示忙 $rootScope.jry_shimang=function(){ go_break() } // 签出 $rootScope.jry_qianchu=function(){ logout() } $rootScope.jry_bohao=function(res){ if($rootScope.jry_state=="weiqianru"){ // SweetAlert.swal({ // title: "拨打失败", // text: "请先签入!", // type: "error", // confirmButtonColor: "#DD6B55" // }); }else if($rootScope.jry_state=="shimang"){ // SweetAlert.swal({ // title: "拨打失败", // text: "请先示闲!", // type: "error", // confirmButtonColor: "#DD6B55" // }); }else{ dial(res); } } }) } $rootScope.jry_state="weiqianru"; $rootScope.getExtnDirect(); //话机呼叫中心--结束 // 未接来电 $scope.jry_getUnanswered=function(){ var jry_data={ idx:0, sum:999, "callRecord":{ "todayTime":new Date().getFullYear()+"-"+(new Date().getMonth()+1)+"-"+new Date().getDate()+" 00:00:00", "todayTimeEnd":new Date().getFullYear()+"-"+(new Date().getMonth()+1)+"-"+new Date().getDate()+" 23:59:59", } } api_bpm_data.fetchDataList("callRecord", jry_data).then(function(data) { // fo0h for(var i=0;i 4) { telephone = '9' + teleno; } else { // telephone = '*01' + teleno + '*'; telephone = teleno; } api_text.dialout($rootScope.takes, gid, telephone).then(function(data) { if (data.errno == 0) { // $rootScope.statuscall = 3; $rootScope.callout = true; // $rootScope.phone=teleno; } }) } // $scope.busy=false; $rootScope.setbusy = function() { api_text.setbusy($rootScope.takes).then(function(data) { if (data.errno == 0) { $rootScope.statecall = 2; $scope.busy = true; } }) } $rootScope.setidle = function() { api_text.setidle($rootScope.takes).then(function(data) { if (data.errno == 0) { $rootScope.statecall = 1; $scope.busy = false; } }) } $rootScope.inittrans = function(telephone) { api_text.inittrans(telephone, $rootScope.takes).then(function(data) { if (data.errno == 0) { // $scope.status=9 } }) } $rootScope.comptrans = function() { api_text.comptrans($rootScope.takes).then(function(data) { if (data.errno == 0) { $rootScope.statuscall = 1; } }) } $rootScope.takeup = function() { api_text.offhook($rootScope.takes).then(function(data) { if (data.errno == 0) { $rootScope.statuscall = 3; } }) } $rootScope.takedown = function() { api_text.onhook($rootScope.takes).then(function(data) { if (data.errno == 0) { $rootScope.statuscall = 1; } }) } $rootScope.saveData = function(selectdata) { var modalInstance = $modal.open({ templateUrl: 'assets/views/system/tpl/createknowledge.html', controller: function($scope, $modalInstance, api_bpm_data) { $scope.worktimedata = {}; $scope.worktimedata = selectdata; $scope.cancel = function() { $modalInstance.dismiss('cancel'); }; $scope.savercode = function(worktimedata) { var fildata = { "scheduleclass": { "id": selectdata.id, "code": worktimedata.code, "name": worktimedata.title, "person": worktimedata.person, "description": worktimedata.description, "startTime": worktimedata.startTime, "endTime": worktimedata.endTime, "shiftTime": selectdata.shiftTime, "succeedTime": selectdata.succeedTime, "isTemplate": worktimedata.isTemplate } } api_bpm_data.updData('scheduleclass', fildata).then(function(response) { if (response) { if (response.status == 200) { SweetAlert.swal({ title: "修改成功!", type: "success" }, function() { // $scope.refreshData('expand-right', defaultFilterData); }) } else { SweetAlert.swal({ title: "修改失败!", type: "error" }) } } }) $modalInstance.close(); } } }); } $rootScope.changepassword = function(data1, size) { var modalInstance = $modal.open({ templateUrl: 'assets/views/changepassword.html', controller: function($scope, $modalInstance, items, Restangular, SweetAlert) { $scope.passwordnull = function(originalPwd, pwd, pwd_2) { return originalPwd == undefined || pwd == undefined || pwd_2 == undefined || originalPwd == "" || pwd == "" || pwd_2 == "" || originalPwd == "null" || pwd == "null" || pwd_2 == "null"; } $scope.savepassword = function(originalPwd, pwd, pwd_2) { $modalInstance.dismiss('cancel'); // console.log('pwd=' + pwd + '+' + pwd_2); // if(angular.isDefined(pwd)&&angular.isDefined(pwd_2)){ if (pwd == pwd_2) { var data2 = {}; data2["originalPwd"] = originalPwd; data2["userid"] = $rootScope.user.id; data2["pwd"] = pwd; api_login.uppwd(data2).then(function(response) { var myData = Restangular.stripRestangular(response); if (myData.status == 200) { SweetAlert.swal({ title: "保存成功!", type: "success", confirmButtonColor: "#007AFF" }); } else { SweetAlert.swal({ title: "保存失败!", text: "输入旧密码错误,请重新输入!", type: "error" }); } }) } else { SweetAlert.swal({ title: "两次输入的新密码不相同!", text: "输入错误,请重新输入!", type: "error" }); } // }else{ // SweetAlert.swal({ // title: "密码不能为空!", // text: "请输入密码!", // type: "error" // }); // } } }, size: size, resolve: { items: function() { return { fetchItems: function(filterData, APIService) {} }; }, } }); } // $rootScope.getnochildpending = function() { // if ($rootScope.userMenus && $rootScope.userMenus.length > 0) { // angular.forEach($rootScope.userMenus, function(item) { // item.tipnum = 1; // }) // } // } // $rootScope.getchildpending = function(cantdata) { // if ($rootScope.userMenus && $rootScope.userMenus.length > 0) { // angular.forEach($rootScope.userMenus, function(item) { // item.tipnum = 1; // angular.forEach(item, function(index) { // index.tipnum = 18; // }) // }) // } // } $rootScope.getpending=function(){ if ($rootScope.userMenus && $rootScope.userMenus.length > 0) { if ($rootScope.user.group) { var groupArr=[]; for(var i=0;i<$rootScope.user.group.length;i++){ groupArr.push($rootScope.user.group[i].id) } api_bpm_data.getCount({ "assignee": $rootScope.user.id, "candidateGroups": groupArr.join(), "idx": 0, "sum": 1000 }).then(function(response) { angular.forEach($rootScope.userMenus, function(item, i) { item.tipshow = false; if (response) { if (response.hjzxCount > 0 || response.wechatWarningCount > 0) { if (item.id == 58) { item.tipshow = true; } } if (response.inspectionCount > 0) { if (item.id == 27) { item.tipshow = true; } } if (response.incidentCount > 0) { if (item.id == 2) { item.tipshow = true; } } if (response.releaseCount > 0) { if (item.id == 1215) { item.tipshow = true; } } if (response.solutionCount > 0) { if (item.id == 21) { item.tipshow = true; } } if (response.changeCount > 0) { if (item.id == 1212) { item.tipshow = true; } } if (response.problemCount > 0) { if (item.id == 1209) { item.tipshow = true; } } if (response.applicationForm > 0) { if (item.id == 1221) { item.tipshow = true; } } if ((parseInt(response.toReleaseCount) + parseInt(response.toAuditCount)) > 0) { if (item.id == 21) { item.tipshow = true; } } if (item.children) { angular.forEach(item.children, function(index) { if (response.hjzxCount && response.hjzxCount > 0) { if (index.id == 1208) { if (response.hjzxCount < 100) { index.tipnum = response.hjzxCount; } else { index.tipnum = "99+"; } } } if (response.wechatWarningCount && response.wechatWarningCount > 0) { if (index.id == 59) { if (response.wechatWarningCount < 100) { index.tipnum = response.wechatWarningCount; } else { index.tipnum = "99+"; } } } if (response.problemCount && response.problemCount > 0) { if (index.id == 1210) { if (response.problemCount < 100) { index.tipnum = response.problemCount; } else { index.tipnum = "99+"; } } } if (response.releaseCount && response.releaseCount > 0) { if (index.id == 1216) { if (response.releaseCount < 100) { index.tipnum = response.releaseCount; } else { index.tipnum = "99+"; } } } if (response.inspectionCount && response.inspectionCount > 0) { if (index.id == 147) { if (response.inspectionCount < 100) { index.tipnum = response.inspectionCount; } else { index.tipnum = "99+"; } } } if (response.solutionCount && response.solutionCount > 0) { if (index.id == 23) { if (response.solutionCount < 100) { index.tipnum = response.solutionCount; } else { index.tipnum = "99+"; } } } if (response.changeCount && response.changeCount > 0) { if (index.id == 1213) { if (response.changeCount < 100) { index.tipnum = response.changeCount; } else { index.tipnum = "99+"; } } } if (response.incidentCount && response.incidentCount > 0) { if (index.id == 3) { if (response.incidentCount < 100) { index.tipnum = response.incidentCount; } else { index.tipnum = "99+"; } } } if (response.applicationForm && response.applicationForm > 0) { if (index.id == 1231) { if (response.applicationForm < 100) { index.tipnum = response.applicationForm; } else { index.tipnum = "99+"; } } } if (response.toAuditCount && response.toReleaseCount && (parseInt(response.toReleaseCount) + parseInt(response.toAuditCount)) > 0) { if (index.id == 23) { if (parseInt(response.toReleaseCount) + parseInt(response.toAuditCount) < 100) { index.tipnum = parseInt(response.toReleaseCount) + parseInt(response.toAuditCount); } else { index.tipnum = "99+"; } } } }) } } }) // return $rootScope.userMenus; // $scope.recordpending = response.; // $scope.dashboardcount.knowledgedata = parseInt(response.toReleaseCount) + parseInt(response.toAuditCount); }) } else { // SweetAlert.swal("访问数据失败!", "该用户没有分配组", "error"); } } // console.log($rootScope.userMenus); } $rootScope.userMenus = []; 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) { var allJurisdiction2=$rootScope.user.menu; var onlyMenu2=[]; for(var i=0;i 0) { $rootScope.getpending(); // setInterval($rootScope.getpending(), 30000); } return userMenus; } setInterval(function(){ if ($rootScope.userMenus.length > 0){ $rootScope.getpending() $rootScope.getMsgNum($rootScope.user.id) } }, 5000); getMenus(); // console.log("$rootScope.nickname="+JSON.stringify($rootScope)); $rootScope.logout = function() { // var userid =data.id; // console.log(' userid='+JSON.stringify( userid)); $auth.signOut() .then(function(resp) { // $auth.deleteData('auth_headers') sessionStorage.clear(); localStorage.clear(); $state.go("login.signin"); }) .catch(function(resp) {}); //$cookieStore.remove("userObm"); //$cookieStore.remove("menuObm"); //$cookieStore.remove("session"); //$rootScope.user = undefined; //$rootScope.menus = undefined; //$rootScope.nickname = undefined; //window.location = "http://www.itsm.com:8080/itsm/dev/logout.jsp"; // //logout: function(noServerLogout){ // window.sessionStorage.clear(); // window.location = "https://www.yunwei.com:8443/cas/loginout"; // //}, } // 快速建单 $rootScope.newOrder=function(){ $state.go('app.newOrder'); } // save settings to local storage if (angular.isDefined($localStorage.layout)) { $scope.app.layout = $localStorage.layout; } else { $localStorage.layout = $scope.app.layout; } $scope.$watch('app.layout', function() { // save to local storage $localStorage.layout = $scope.app.layout; }, true); //global function to scroll page up $scope.toTheTop = function() { $document.scrollTopAnimated(0, 600); }; // angular translate // ---------------------- $scope.language = { // Handles language dropdown listIsOpen: false, // list of available languages available: { 'en': 'English', 'it_IT': 'Italiano', 'de_DE': 'Deutsch', 'zh_cn': 'Chinese' }, // display always the current ui language init: function() { var proposedLanguage = $translate.proposedLanguage() || $translate.use(); var preferredLanguage = $translate.preferredLanguage(); // we know we have set a preferred one in app.config $scope.language.selected = $scope.language.available[(proposedLanguage || preferredLanguage)]; }, set: function(localeId, ev) { $translate.use(localeId); $scope.language.selected = $scope.language.available[localeId]; $scope.language.listIsOpen = !$scope.language.listIsOpen; } }; $scope.language.init(); // Function that find the exact height and width of the viewport in a cross-browser way var viewport = function() { var e = window, a = 'inner'; if (!('innerWidth' in window)) { a = 'client'; e = document.documentElement || document.body; } return { width: e[a + 'Width'], height: e[a + 'Height'] }; }; // function that adds information in a scope of the height and width of the page $scope.getWindowDimensions = function() { return { 'h': viewport().height, 'w': viewport().width }; }; // Detect when window is resized and set some variables $scope.$watch($scope.getWindowDimensions, function(newValue, oldValue) { $scope.windowHeight = newValue.h; $scope.windowWidth = newValue.w; if (newValue.w >= 992) { $scope.isLargeDevice = true; } else { $scope.isLargeDevice = false; } if (newValue.w < 992) { $scope.isSmallDevice = true; } else { $scope.isSmallDevice = false; } if (newValue.w <= 768) { $scope.isMobileDevice = true; } else { $scope.isMobileDevice = false; } }, true); // Apply on resize $win.on('resize', function() { $scope.$apply(); }); $rootScope.app.layout.isNavbarFixed = false; $rootScope.app.layout.isSidebarFixed = false; $rootScope.app.layout.isFooterFixed = false; $scope.login_signquick = function(Requesteruserinform) { $rootScope.statuscall = 1; $scope.loginForm = { username: Requesteruserinform.username, password: Requesteruserinform.password } $auth.submitLogin($scope.loginForm) .then(function(resp) { localStorage.setItem("jry_user", JSON.stringify(resp)); $rootScope.user = JSON.parse(localStorage.getItem("jry_user")); // $rootScope.userMenus = JSON.parse(localStorage.getItem("jry_user")).menu; var allJurisdiction=JSON.parse(localStorage.getItem("jry_user")).menu; var onlyMenu=[]; for(var i=0;i -1; //判断是否Opera浏览器 var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器 var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器 var isSafari = userAgent.indexOf("Safari") > -1; //判断是否Safari浏览器 var isChrome = userAgent.indexOf("chrome") > -1; //判断是否Safari浏览器 if (isOpera) { $scope.checkchrome = '当前所用浏览器是Opera浏览器,'; // return alert("访问失败,当前所用浏览器是Opera浏览器,请用Chrome浏览器访问!"); } if (isIE) { $scope.checkchrome = '当前所用浏览器是IE浏览器,'; // return alert("访问失败,当前所用浏览器是IE浏览器,请用Chrome浏览器访问!"); } if (isFF) { $scope.checkchrome = '当前所用浏览器是火狐浏览器,'; // return alert("访问失败,当前所用浏览器是火狐浏览器,请用Chrome浏览器访问!"); } if (isSafari) { $scope.checkchrome = '当前所用浏览器是Safari浏览器,'; // return alert("访问失败,当前所用浏览器是Safari浏览器,请用Chrome浏览器访问!"); } if (isChrome) { // login_sign(); $rootScope.app.isChrome = false; // return alert("访问失败,当前所用浏览器是Chrome浏览器"); } else { $rootScope.app.isChrome = true; $scope.checkchrome = ''; // return alert("访问失败,请用Chrome浏览器访问!"); } // } // $scope.handleloginEnter = function(e) { // if (e.keyCode == 13) { // $scope.handleLoginClick(); // } // }; // if (document.getElementById("isWatch").value == "true") { // $scope.isHanderuser = true; // } else { // if (!JSON.parse(sessionStorage.getItem('header'))) { // $scope.isHanderuser = false; // $scope.login_sign(); // } // } // $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 // }); // }; // } // } // if (!isEmpty($auth.retrieveData('auth_headers'))) { // } else { // $scope.loginstart(); // } //websocket 信息中心 console.log(atmosphere) var socket = atmosphere; var subSocket; // We are now ready to cut the request var request = { url: 'ws://192.168.199.150:8080/messagestation/cache', contentType: "application/json", shared: true, // 标签共享 trackMessageLength: true, //校验数据完整性 transport: 'websocket' }; subSocket = socket.subscribe(request); request.onOpen = function(response) { console.log(response) subSocket.push(JSON.stringify({ login: $rootScope.user.id })); // alert("开始连接") }; request.onMessage = function(response) { var message = response.responseBody; // alert("连接成功") console.log(message) try { var json = JSON.parse(message); console.log(json.noRead) $scope.noReadData = json.noRead } catch (e) { console.log('呵呵哒: ', message); return; } }; request.onClose = function(response) { // alert("连接结束") } request.onError = function(response) { // alert('连接失败') }; //信息中心模态框 var loginUser = $rootScope.user; // if(loginUser){ // // 未读消息数量 // api_msg.msgDataList({idx: 0, sum: 1, messageStation: {readStatus: 0, userId: loginUser.id}}).then(function(data) { // if (data.status == 200) { // $scope.noReadData=data.totalNum // // $rootScope.option.all = $rootScope.all; // } else { // $scope.noReadData=0 // } // }) // } // $scope.noReadData=($rootScope.noReadData||0) // // $rootScope.all = 5; // setTimeout(function() { // console.log($scope.noReadData) // }, 500) $rootScope.wt_messages = function() { var modalInstance = $modal.open({ templateUrl: '../../../assets/views/wt_messages.html', controller: function($scope, $modalInstance) { $rootScope.msgData = { idx: 0, sum: 5, messageStation: { readStatus: 0, userId: $rootScope.user.id } } $scope.getMsgData = function() { api_msg.msgDataList($rootScope.msgData).then(function(data) { if (data) { $rootScope.msg = data.list $rootScope.all = data.pageCount; $scope.wt_msgData = data $rootScope.noReadData=data.totalNum } }) } $scope.getMsgData() $scope.message_type = 2; $scope.message_no = function(type) { //未读1 $scope.wt_msgData = {}; $scope.message_type = type; $rootScope.msgData.messageStation.readStatus = 0, // $rootScope.option.curr = 1; $rootScope.msgData.idx = 0; // console.log($rootScope.option.curr) api_msg.msgDataList($rootScope.msgData).then(function(data) { $scope.msg_yesType = true; if (data.status == 200) { $scope.msg_yesType = false $scope.wt_msgData = data $rootScope.msg = data.list $rootScope.all = data.pageCount; $rootScope.noReadData=data.totalNum; // $rootScope.option.all = $rootScope.all; } else { $scope.msg_yesType = true; } }) } $scope.message_yes = function(type) { //已读0 $scope.wt_msgData = {}; $scope.message_type = type; $rootScope.msgData.messageStation.readStatus = 1, $rootScope.msgData.idx = 0; // $rootScope.option.curr = 1; // console.log($rootScope.option.curr) api_msg.msgDataList($rootScope.msgData).then(function(data) { $scope.msg_noType = true; if (data.status == 200) { $scope.msg_noType = false $scope.wt_msgData = data $rootScope.msg = data.list; $rootScope.all = data.pageCount; // $rootScope.option.all = $rootScope.all; } else { $scope.msg_noType = true } }) }; $scope.sBtn = function() { // console.log($rootScope.msgData) // console.log($scope.wt_msgData) $rootScope.msgData.idx = $rootScope.msgData.idx - 1; console.log($rootScope.msgData) $scope.getMsgData() } $scope.xBtn = function() { // console.log($rootScope.msgData) // console.log($scope.wt_msgData) $rootScope.msgData.idx = $rootScope.msgData.idx + 1; console.log($rootScope.msgData) $scope.getMsgData() } $scope.redIn = function(data) { var start = moment(new Date()).format('YYYY-MM-DD HH:mm:ss') $scope.messageStation = { messageStation: { id: data.id, readStatus: 1, readTime: start } } api_msg.updateDataList($scope.messageStation).then(function(data) { console.log(data); if (data.status == 200) { $rootScope.msgData.messageStation.readStatus = 0, api_msg.msgDataList($rootScope.msgData).then(function(data) { $rootScope.msg = data.list $rootScope.all = data.pageCount; $rootScope.noReadData = data.totalNum; }) } }) }; }, size: 'lg', resolve: { } }) } } ]); //消息中心分页组件 app.controller('msgCtrl', ['$scope', '$rootScope', 'api_msg', 'Myservice', function($scope, $rootScope, api_msg, Myservice) { $rootScope.option = { curr: 1, //当前页数 all: $rootScope.all, //总页数 count: 5, //最多显示的页数,默认为10 //点击页数的回调函数,参数page为点击的页数 click: function(page) { $rootScope.msgData.idx = page - 1; //这里可以写跳转到某个页面等... api_msg.msgDataList($rootScope.msgData).then(function(data) { $rootScope.msg = data.list $rootScope.all = data.pageCount; $rootScope.option.all = $rootScope.all; }) } } }]); app.directive('myPagination', function() { return { restrict: 'EA', replace: true, rootScope: { option: '=pageOption' }, controller: 'msgCtrl', template: '
    ' + '
  • ' + '{{p}}' + '
  • ' + '
', link: function($rootScope) { //容错处理 if (!$rootScope.option.curr || isNaN($rootScope.option.curr) || $rootScope.option.curr < 1) $rootScope.option.curr = 1; if (!$rootScope.option.all || isNaN($rootScope.option.all) || $rootScope.option.all < 1) $rootScope.option.all = 1; if ($rootScope.option.curr > $rootScope.option.all) $rootScope.option.curr = $rootScope.option.all; if (!$rootScope.option.count || isNaN($rootScope.option.count) || $rootScope.option.count < 1) $rootScope.option.count = 10; //得到显示页数的数组 $rootScope.page = getRange($rootScope.option.curr, $rootScope.option.all, $rootScope.option.count); //绑定点击事件 $rootScope.pageClick = function(page) { if (page == '«') { page = parseInt($rootScope.option.curr) - 1; } else if (page == '»') { page = parseInt($rootScope.option.curr) + 1; } if (page < 1) page = 1; else if (page > $rootScope.option.all) page = $rootScope.option.all; //点击相同的页数 不执行点击事件 if (page == $rootScope.option.curr) return; if ($rootScope.option.click && typeof $rootScope.option.click === 'function') { $rootScope.option.click(page); $rootScope.option.curr = page; $rootScope.page = getRange($rootScope.option.curr, $rootScope.option.all, $rootScope.option.count); } }; //返回页数范围(用来遍历) function getRange(curr, all, count) { //计算显示的页数 // console.log(curr, all, count) curr = parseInt(curr); all = parseInt(all); count = parseInt(count); var from = curr - parseInt(count / 2); var to = curr + parseInt(count / 2) + (count % 2) - 1; //显示的页数容处理 if (from <= 0) { from = 1; to = from + count - 1; if (to > all) { to = all; } } if (to > all) { to = all; from = to - count + 1; if (from <= 0) { from = 1; } } var range = []; for (var i = from; i <= to; i++) { range.push(i); } range.push('»'); range.unshift('«'); return range; } } } }); app.service('Myservice', function() { return { }; }); // var bh=document.body.scrollHeight-window.innerHeight-window.pageYOffset; // console.log(bh) // if(bh>=0&&bh<=53){ // $('#sidebar').css('padding-bottom', (53-bh) + 'px') // }else{ // $('#sidebar').css('padding-bottom', 0 + 'px') // } window.onscroll = function () { if (window.pageYOffset >= 0 && window.pageYOffset <= 65) { $('#sidebar').css('padding-top', (65-window.pageYOffset) + 'px') }else{ $('#sidebar').css('padding-top', '0') } // console.log(window.pageYOffset) // console.log(window.innerHeight) // console.log(document.body.scrollHeight) // 底部padding // var bh=document.body.scrollHeight-window.innerHeight-window.pageYOffset; // console.log(bh) // if(bh>=0&&bh<=53){ // $('#sidebar').css('padding-bottom', (53-bh) + 'px') // }else{ // $('#sidebar').css('padding-bottom', 0 + 'px') // } }