'use strict'; app.controller('incidentListCtrl', ["$scope", "$http", "i18nService", "$rootScope", "$state", "$timeout", "moment", "$interval", "$modal", "$stateParams", "SweetAlert", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_bpm_domain", "api_text", "api_bpm_data", "api_user_data", "api_configure_data", '$parse', "$injector", "$aside", 'toaster', "api_configure_form", "api_cmdb", 'api_bpm', 'api_wechatfile','api_search_area','api_bpm_schedule','api_statistic','api_flow', 'api_simple', function ($scope, $http, i18nService, $rootScope, $state, $timeout, moment, $interval, $modal, $stateParams, SweetAlert, uiGridConstants, uiGridGroupingConstants, Restangular, api_bpm_domain, api_text, api_bpm_data, api_user_data, api_configure_data, $parse, $injector, $aside, toaster, api_configure_form, api_cmdb, api_bpm, api_wechatfile,api_search_area,api_bpm_schedule,api_statistic,api_flow,api_simple) { //保存报修主体 $scope.repairMain = JSON.parse(sessionStorage.getItem("repair_main")); $scope.wxIncidentWithCmdb = JSON.parse(sessionStorage.getItem("wxIncidentWithCmdb"));//资产 $scope.incidentWithConsumable = JSON.parse(sessionStorage.getItem("incidentWithConsumable"));//耗材 $rootScope.isFuwutai = JSON.parse(localStorage.getItem("isFuwutai")) ? true : false; // ----------------分割线 start----------------- console.log($state) // 显示隐藏 $scope.isDeployment = false; $scope.deploymentHandler = function(){ $scope.isDeployment = !$scope.isDeployment; console.log($('#filterSearch .incidentsearch:gt(7)')); if($scope.isDeployment){ $('#filterSearch .incidentsearch:gt(7)').css('display', 'inline-block'); }else{ $('#filterSearch .incidentsearch:gt(7)').css('display', 'none'); } } // -----------------分割线 end---------------- // 是否逾期seimin $scope.selectType = [ { id: '2', name: '是' }, { id: '0', name: '否' } ]; // /是否逾期 $scope.langs = i18nService.getAllLangs(); $scope.lang = 'zh-cn'; i18nService.setCurrentLang($scope.lang); $scope.myData = []; var loginUser = $rootScope.user; $scope.allFlag = false;//全部事件 $scope.daochu = false;//导出 for (var i = 0; i < loginUser.menu.length; i++) { if (loginUser.menu[i].link == "shijianliebiao_all") { $scope.allFlag = true } if (loginUser.menu[i].link == "shijianliebiao_daochu") { $scope.daochu = true } } var loginuserGroup = ""; for (var i = 0; i < $rootScope.user.group.length; i++) { if (i == 0) { loginuserGroup = $rootScope.user.group[i].id; } else { loginuserGroup = loginuserGroup + "," + $rootScope.user.group[i].id; } } // 处理人,受理人,转派人 var pdKey = $state.current.pdKey; $scope.gridOptions = {}; $scope.gridOptions.data = 'myData'; $scope.gridOptions.rowHeight = 54; $scope.gridOptions.enableColumnResizing = true; $scope.gridOptions.enableFiltering = false; $scope.gridOptions.enableGridMenu = true; $scope.gridOptions.enableSelectAll = true; $scope.gridOptions.enableRowSelection = true; $scope.gridOptions.showGridFooter = true; $scope.gridOptions.showColumnFooter = false; $scope.gridOptions.fastWatch = true; $scope.gridOptions.enableSorting = true; $scope.gridOptions.useExternalSorting = true; $scope.gridOptions.useExternalFiltering = false; $scope.gridOptions.useExternalPagination = true; $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100]; $scope.gridOptions.paginationPageSize = 10; $scope.gridOptions.multiSelect = true; var mun = $scope.gridOptions.paginationPageSize; $scope.gridOptions.rowTemplate = "
"; $scope.gridOptions.rowIdentity = function (row) { return row.id; }; $scope.gridOptions.getRowIdentity = function (row) { return row.id; }; $scope.transferColor = function (item) { var color = "icon iconfont icon-zhengchang greenfont"; if (item.colourInfo) { if (item.colourInfo.id == 1583) { color = "icon iconfont icon-yiyuqi redfont"; } else if (item.colourInfo.id == 1584) { color = "iconfont icon-yuqixinxiu orangefont"; } } return color; } $scope.transfertip = function (item) { var tip = "正常"; if (item.colourInfo) { if (item.colourInfo.id == 1583) { tip = "已逾期"; } else if (item.colourInfo.id == 1584) { tip = "即将逾期"; } else if (item.colourInfo.id == 1586) { tip = "正常"; } } return tip; } $scope.transferstatus = function (item) { var statecolor = "#fc4c58"; if (item.id == 2) { //待处理 statecolor = "#fc4c58"; } else if (item.id == 7) { //待审核 statecolor = "#fcb44c"; } else if (item.id == 3) { //请求重新指派 statecolor = "#ebf902"; } else if (item.id == 4) { //处理中 statecolor = "#0aa5f5"; } else if (item.id == 5) { //已解决 statecolor = "#2edbb8"; } else if (item.id == 6) { //已关闭 statecolor = "#bbbbbb"; } return statecolor; } if($scope.repairMain.valueconfig == 1){//报修人 $scope.gridOptions.columnDefs = [ { name: 'id', displayName: '', width: 35, cellTemplate: '
' + '
' + '' }, { name: 'item', displayName: '序号', width: 45, cellTemplate: '
' + '
{{row.entity.item}}
' + '
' }, { name: 'incidentsign', displayName: '事件单号', width: 120, cellTemplate: '
' + '
{{row.entity.incidentsign}}
' + '
' }, { name: 'requester.name', displayName: '报修人', width: '6%', minWidth: '90', enableSorting: false, cellTemplate: '
' + '
{{row.entity.requester.name}}
' + '
' }, { name: 'requester.account', displayName: '学工号', width: '6%', minWidth: '90', enableSorting: false, cellTemplate: '
' + '
{{row.entity.requester.account}}
' + '
' }, { name: 'contactsInformation', displayName: '联系电话', width: '105', cellTemplate: '
' + '
{{row.entity.contactsInformation}}
' + '
' }, { name: 'category', displayName: '故障现象', width: '10%', enableSorting: false, cellTemplate: '
' + '
{{row.entity.category.category}}
' + '
' }, { name: 'houseNumber', displayName: '区域地点', width: '14%', enableFiltering: false, cellTemplate: '
' }, { name: 'acceptUser.name', displayName: '受理人', width: '7%', minWidth: '80', enableSorting: false, cellTemplate: '
' + '
{{row.entity.acceptUser.name}}
' + '
' }, { name: 'acceptDate', displayName: '登记时间', width: '10%', minWidth: '140', enableFiltering: false, cellTemplate: '
{{grid.appScope.transferTime(row.entity.acceptDate)}}
' }, { name: 'groupORHandlerUser', displayName: '处理人/组', width: '10%', enableFiltering: false, cellTemplate: '
' + '
' + '{{row.entity.groupORHandlerUser}}
' + '
' }, { name: 'state.name', displayName: '状态', width: '7%', minWidth: '70', enableSorting: false, cellTemplate: '
' + '
{{row.entity.state.name}}
' + '
' }, { name: '操作', enableSorting: false, width: 500, cellTemplate: '', enableFiltering: false }, ]; if($scope.wxIncidentWithCmdb==1){ let index = $scope.gridOptions.columnDefs.findIndex(v=>v.name == 'contactsInformation'); $scope.gridOptions.columnDefs.splice(index,0,{ name: 'assetId', displayName: '资产', width: 120 },) } }else if($scope.repairMain.valueconfig == 2){//报修科室 $scope.gridOptions.columnDefs = [ { name: 'id', displayName: '', width: 35, cellTemplate: '
' + '
' + '' }, { name: 'row1', displayName: '序号', width: 45, cellTemplate: '
' + '
{{row.entity.item}}
' + '
' }, { name: 'row2', displayName: '单号|报修科室', width: 150, cellTemplate: '
' + '
{{row.entity.incidentsign || "无"}}
{{row.entity.department ? row.entity.department.dept : "无"}}
' + '
' }, { name: 'row3', displayName: '报修人|来电电话', width: 150, cellTemplate: '
' + '
{{row.entity.requester ? row.entity.requester.name : "无"}}
{{row.entity.incomingPhone || "无"}}
' + '
' }, { name: 'row5', displayName: '故障现象|区域地点', width: 350, cellTemplate: '
' + '
{{row.entity.description}}
' + '
' }, { name: 'row6', displayName: '受理人|处理人/组', width: 150, cellTemplate: '
' + '
{{row.entity.acceptUser ? row.entity.acceptUser.name : "无"}}
{{row.entity.groupORHandlerUser || "无"}}
' + '
' }, { name: 'row7', displayName: '登记时间|接单时间', width: 150, cellTemplate: '
' + '
{{grid.appScope.transferTime(row.entity.acceptDate)}}
{{grid.appScope.transferTime(row.entity.responseHandleTime)}}
' + '
' }, { name: 'row9', displayName: '状态|解决时间', width: 150, cellTemplate: '
' + '
{{row.entity.state.name}}{{row.entity.state.name}}{{row.entity.state.name}}{{row.entity.state.name}}
{{grid.appScope.transferTime(row.entity.handleTime)}}
' + '
' }, { name: 'row10', displayName: '最近维修记录', width: 140, cellTemplate: '
' + '
' + '
' }, { name: '操作', enableSorting: false, width: 196, cellTemplate: '', enableFiltering: false }, ]; } $scope.transferTime = function (time) { if(time){ return moment(time).format('YYYY-MM-DD HH:mm'); }else{ return '无'; } } $scope.transferHandlerLog = function (handlerLogs) { handlerLogs = angular.copy(handlerLogs); handlerLogs = handlerLogs.reverse(); if(handlerLogs.length){ if(handlerLogs[0].repairType && handlerLogs[0].expectedDate){ return handlerLogs[0].repairType.name+"
"+ moment(handlerLogs[0].expectedDate).format('MM月DD日前完成'); }else{ return '无'; } }else{ return '无'; } } $scope.endOpen = function ($event) { $event.preventDefault(); $event.stopPropagation(); $scope.startOpened = false; $scope.endOpened = !$scope.endOpened; }; $scope.startOpen = function ($event) { $event.preventDefault(); $event.stopPropagation(); $scope.endOpened = false; $scope.startOpened = !$scope.startOpened; }; $scope.othcode = {}; $scope.searchkeys = {deleted:false}; // 是否选择已删除 $scope.selectDeleted = function(e){ console.log($scope.searchkeys.deleteFlag); $scope.chiceIncident($scope.searchkeys,$scope.othcode.state); } $scope.my_data = []; 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++) { 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.parent === "undefined" || datum.parent == 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.parent.id]; //We don't need this property, so let's delete it. delete datum.parent; //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); }); return list; } $scope.my_tree = {}; $scope.select_treedata = []; // 报修科室 $scope.getDept = function (key) { var postData = { "idx": 0, "sum": 10 } if (key) { postData.department = { dept: key } } api_user_data.fetchDataList('department', postData).then(function (response) { if (response) { if (response.status = 200) { $scope.department = response.list; } } }) } $scope.getDept(); //树形图 // 将故障现象搜索结果返回的数据整理成children模式 function transform(nodes) { var treeConverter = { result: null, //转化后的结果,是根节点,所有节点都是从根节点长出来的 attributeName: 'id', //节点唯一标识符 needFind: true, //是否查询节点在result中已经存在,为了优化效率 transform: function (node) { //转化递归函数,参数:一个待插入节点 if (node.parent != null) { //该节点有父节点 var newNode = this.transform(node.parent); //递归进入,返回值为一个节点,用作父节点,该父节点必然存在于result中,这点由下面的算法可以控制 if (this.needFind) { for (var i = 0; i < newNode.children.length; i++) { //查找要插入的node子节点是否在newNode这个父节点中存在 if (newNode.children[i][this.attributeName] === node[this.attributeName]) { return newNode.children[i]; //存在的话直接返回newNode父节点内的该子节点,该子节点必然存在于result中,作为返回值它将被用作上级递归的newNode,因此newNode必然存在于result中 } } } this.needFind = false; //不存在的话,关闭之后递归的循环判断,因为待插入node节点不存在于result中,故而它的子节点一定不存在于result中,不用再循环判断 // delete node.parent; //删除该节点的parent属性,如果有的话 node.children = []; //因为确定是要新插入的节点,没有children:[]属性,故给该节点增加children:[]属性 newNode.children.push(node); //将该node节点push进newNode的子节点数组中 return node; //return该新插入节点,作为递归返回值给上层,用作newNode父节点,node存在于result中故newNode存在于result中 } else if (node.parent == null) { //该叶节点没有父节点,即为根节点 // delete node.parent; //删除该节点的parent属性,如果有的话 if (this.result == null) { //根节点不存在 node.children = []; //给该节点增加children:[]属性 return this.result = node; //该节点赋给result,并return根节点,作为返回值它将被用作上级递归的newNode,因此newNode必然存在于result中 } else { node.children = []; // 顶级去重 for (var i = 0; i < this.result.children.length; i++) { if (this.result.children[i][this.attributeName] === node[this.attributeName]) { return this.result.children[i]; } } this.result.children.push(node) return node // 直接return根节点,作为返回值它将被用作上级递归的newNode,因此newNode必然存在于result中 } } }, getWhole: function (nodes, attributeName) { //传入整个叶子节点数组,attributeName作为节点唯一标识符属性,返回整个转化结果 var _node = {}; _node.children = []; this.result = _node; //重置根节点 this.attributeName = attributeName == null ? 'id' : attributeName; //唯一标识符默认为“id” nodes = JSON.parse(JSON.stringify(nodes)); //复制出一个新的节点对象作为参数,保证不改变原有数据 nodes.forEach(item => { //循环调用转化方法 this.needFind = true; //重置开启节点是否已存在判断,保证不插入重复节点 this.transform(item); }) return this.result; //返回根节点 } } var result = treeConverter.getWhole(nodes); //调用 return result; } $scope.my_tree = {}; $rootScope.bala1 = $scope.try_async_load = function (s, fn) { if (s) { var filterKeyword = s.filterKeyword; } var postData = { "idx": 0, "sum": 1000, "incidentcategory": {}, } if (filterKeyword) { postData.incidentcategory = { selectType: "pinyin_qs", category: filterKeyword } } // 当前所属院区或责任科室 if($rootScope.user.duty){ postData.incidentcategory.duty = $rootScope.user.duty.id; }else if($rootScope.user.branch){ postData.incidentcategory.branch = $rootScope.user.branch.id; } $scope.my_data = []; $scope.doing_async = true; api_bpm_data.fetchDataList('incidentcategory', postData).then(function (response) { if (response.status == 200) { var data = response.list; if (filterKeyword) { data.forEach(e => { e.isExpanded = true; }) var li = transform(data).children; console.log(li) fn(li) return; } else { var objects = []; for (var i = 0; i < data.length; i++) { var object = {}; object.id = data[i].id; object.parent = data[i].parent; object.category = data[i].category; object.isExpanded = true; objects.push(object); } $scope.my_data = convertParentToChildList(objects); $scope.select_treedata = angular.copy($scope.my_data); } if ($scope.my_data.length > 0) { $scope.doing_async = false; } } else { SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }); }; $scope.my_data = []; 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++) { 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.parent === "undefined" || datum.parent == 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.parent.id]; //We don't need this property, so let's delete it. delete datum.parent; //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); }); return list; } $scope.try_async_load(); // 故障现象 $scope.onFilterCallback = function (item) { console.log(item); if (item.item) { $scope.searchkeys.levelCategory = item = undefined; } else { $scope.searchkeys.levelCategory = item; } } //状态 $scope.state = []; $scope.getIncidentStatus = function(){ api_wechatfile.getDictionary({ "type": "list", "key": "incident_status" }).then(function (response) { $scope.state = response || []; if(window.sessionStorage.getItem('isGoyuqi') === 'yes'){ $scope.selectTypeChange(); }else{ $scope.refreshData('expand-right'); } }) } $scope.clear = function () { $scope.searchkeys = {}; $scope.othcode = {}; $scope.try_async_load(); $scope.refreshData('expand-right'); $interval.cancel($scope.timer); $scope.timer = $interval(function () { $scope.jry_refresh() }, $rootScope.refreshTime); } // 刷新 $scope.jry_refresh = function () { var fildata = defaultFilterData; if (fildata.incident && fildata.incident.category) { delete fildata.incident.category } fildata.idx = $scope.jry_idx; fildata.sum = $scope.jry_sum; $scope.refreshData2('expand-right', fildata); console.log($scope.cifilter_classic); } // 搜索 $scope.chiceIncident = function (item, stateid) { if (stateid && stateid.id) { item.statusId = stateid.id; } else { item.statusId = undefined; } console.log(item) var fildata = defaultFilterData; if (!fildata.incident) { fildata['incident'] = {}; } if (item.acceptDate) { item.acceptDate = moment(item.acceptDate).format('YYYY-MM-DD 00:00:00'); } if (item.acceptDateEnd) { item.acceptDateEnd = moment(item.acceptDateEnd).format('YYYY-MM-DD 23:59:59') } var transitiondata = angular.copy(item); angular.extend(fildata.incident, transitiondata) $scope.memoryfilterData = fildata; console.log(fildata,78777); if($scope.searchstate === 'all'){ if(fildata.incident&&fildata.incident.selectType){ fildata.incident.selectType = fildata.incident.selectType.id; } }else{ if(fildata.incident&&fildata.incident.selectType){ delete fildata.incident.selectType; } } // /seimin $scope.refreshData('expand-right', fildata); $interval.cancel($scope.timer); $scope.timer = $interval(function () { $scope.jry_refresh() }, $rootScope.refreshTime); } //区域地点过滤 api_user_data.fetchDataList('area', { "idx": 0, "sum": 1000 }).then(function (response) { if (response) { if (response.status = 200) { $scope.outarea = response.list; } } }) //报修人 var getRequester = function () { api_user_data.fetchDataList('requester', { idx: 0, sum: 100 }).then(function (data) { // console.log(data); $scope.requester = data.list }); } getRequester(); //受理人,处理人 var getUser = function (fieldatas, it) { api_user_data.fetchDataList('user', fieldatas).then(function (data) { if (it == 1) { $scope.acceptUser = data.list; } else if (it == 2) { $scope.handlingPersonnelUser = data.list; } }); } //受理人过滤 $scope.onChangeacceptUser = function (key) { console.log(key) var filuser = { "idx": 0, "sum": 10, "user": { "name": key, 'selectType': "pinyin_qs" } } getUser(filuser, 1); } //处理人过滤 $scope.onChangehandling = function (key) { var filuser = { "idx": 0, "sum": 10, "user": { "name": key, 'selectType': "pinyin_qs" } } getUser(filuser, 2); } //报修科室过滤 $scope.onChangeDept = function (key) { $scope.getDept(key) } //地点区域过滤 $scope.onChangearea = function (data) { delete $scope.searchkeys.place; if ($scope.memoryfilterData.incident) { delete $scope.memoryfilterData.incident.place; } var fildata = { "idx": 0, "sum": 1000, "place": { area: { id: data.area.id } } }; api_user_data.fetchDataList('place', fildata).then(function (response) { if (response) { if (response.status = 200) { $scope.outplace = response.list; } } }) }; $scope.starttime = function (data) { return moment(new Date(data)).format('YYYY-MM-DD') } $scope.overtime = function (data) { return moment(new Date(data)).format('YYYY-MM-DD HH:mm') } $scope.areaplace = function (data) { var str = ''; str += '' + data.branchName + ''; str += (data.place ? (data.place.area ? data.place.area.area : '') : ''); str += (data.place ? (data.place.place ? data.place.place : '') : ''); str += (data.houseNumber ? data.houseNumber : ''); return str || '无'; } //录音 $scope.play = function (data) { console.log(data.callID) var modalInstance = $modal.open({ backdrop: "static", templateUrl: 'assets/views/incident/tpl/audio.html', controller: function ($rootScope, $scope, $modalInstance, $sce, $http, api_bpm_data) { // $rootScope.setbusy(); $scope.datasurl = ""; api_bpm_data.fetchDataList("callrecord", {idx: 0, sum: 1, callrecord: {callAccept: data.callID}}).then(function(data) { if(data.status == 200){ data.list = data.list || []; if(data.list.length){ $scope.audioUrl = $sce.trustAsResourceUrl(callIp+data.list[0].recordingFileName); } } }); $scope.download = function (contentId, filename) { $http({ url: "http://" + $scope.datasurl, method: 'GET', headers: { 'Content-type': 'application/octet-stream', }, responseType: 'arraybuffer' }).success(function (data, status, headers, config) { var file = new Blob([data], { type: 'application/octet-stream' }); //trick to download store a file having its URL var fileURL = URL.createObjectURL(file); var a = document.createElement('a'); a.href = fileURL; a.target = '_blank'; a.download = filename; document.body.appendChild(a); a.click(); }).error(function (data, status, headers, config) { // console.log(data); }); } $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; $modalInstance.close(); }, }); modalInstance.result.then(function (result) {}, function (reason) {}); }; //列表排序 $scope.gridOptions.onRegisterApi = function (gridApi) { $scope.gridApi = gridApi; var index = 0; var oldheader = {}; gridApi.grid.sortColumn = function (gridApi) { if (oldheader.field) { if (oldheader.field == gridApi.field) { } else { index = 0; } } index++; oldheader = gridApi; var fildata = $scope.memoryfilterData; if (index % 3 == 0) { delete $scope.memoryfilterData.incident; fildata = $scope.memoryfilterData; } else if (index % 3 == 1) { if (fildata.incident) { if (gridApi.field == "acceptDate") { angular.extend(fildata.incident, { "sort": gridApi.field }); } else { angular.extend(fildata.incident, { "sort": gridApi.field + " desc , _incident.acceptDate" }); } } else { if (gridApi.field == "acceptDate") { angular.extend(fildata, { 'incident': { "sort": gridApi.field } }); } else { angular.extend(fildata, { 'incident': { "sort": gridApi.field + " desc , _incident.acceptDate" } }); } } } else if (index % 3 == 2) { if (fildata.incident) { if (gridApi.field == "acceptDate") { angular.extend(fildata.incident, { "sort": gridApi.field, "order": "asc" }); } else { angular.extend(fildata.incident, { "sort": gridApi.field + " asc , _incident.acceptDate" }); } } else { if (gridApi.field == "acceptDate") { angular.extend(fildata, { 'incident': { "sort": gridApi.field, "order": "asc" } }); } else { angular.extend(fildata.incident, { "sort": gridApi.field + " asc , _incident.acceptDate" }); } } } $scope.refreshData('expand-right', fildata); } $scope.jry_idx = 0; $scope.jry_sum = 10; gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { var filtersData = $scope.memoryfilterData; filtersData.idx = newPage - 1; $scope.jry_idx = newPage - 1; filtersData.sum = pageSize; $scope.jry_sum = pageSize; }); $scope.Change = function (upTypes) { if (angular.isDefined($scope.selected.items)) { if (angular.isDefined(upTypes) && upTypes == 'upincident') { var data = { cancelUrl: 'app.incident.list', model: { problem: { title: $scope.selected.items.title, des: $scope.selected.items.description, proposePerson: $scope.selected.items.handlerUser, source: { id: 1, code: 1, name: ' 事件 ' }, incident: $scope.selected.items } } } $state.go('app.problem.incident', { pdKey: 'incident', dataId: $scope.selected.items.id, processInstanceId: $scope.selected.items.processInstanceId, 'model': JSON.stringify(data) }); } else if (angular.isDefined(upTypes) && upTypes == 'upchange') { var data = { cancelUrl: 'app.incident.list', model: { change: { title: $scope.selected.items.title, description: $scope.selected.items.description, requestingPerson: $scope.selected.items.handlerUser, source: { id: 1, code: 1, name: ' 事件 ' }, incident: $scope.selected.items } } } // var data={cancelUrl:'app.incident.list'} $state.go('app.change.incident', { pdKey: 'incident', dataId: $scope.selected.items.id, processInstanceId: $scope.selected.items.processInstanceId, 'model': JSON.stringify(data) }); } } } $scope.selected = { items: [] } gridApi.core.on.filterChanged($scope, function () { var grid = this.grid; if ($rootScope.user.group) { var filtersData = { idx: 0, sum: mun }; } else { var filtersData = { idx: 0, sum: mun }; } angular.forEach(grid.columns, function (item) { if (item.enableFiltering) { if (angular.isDefined(item.filters[0].term) && item.filters[0].term != '') { filtersData = $scope.memoryfilterData if (angular.isUndefined(filtersData['incident'])) { filtersData['incident'] = {}; } if (item.field == 'department.dept') { filtersData['incident']['department'] = {}; filtersData.incident.department['department'] = item.filters[0].term; } else if (item.field == 'handlingPersonnelUser.name') { filtersData['incident']['handlingPersonnelUser'] = {}; filtersData.incident.handlingPersonnelUser['name'] = item.filters[0].term; } else if (item.field == 'requester.account') { filtersData['incident']['requester'] = {}; filtersData.incident.requester['account'] = item.filters[0].term; } else if (item.field == 'acceptUser.name') { filtersData['incident']['acceptUser'] = {}; filtersData.incident.acceptUser['name'] = item.filters[0].term; } else { filtersData['incident'][item.field] = item.filters[0].term; } } } }); filtersData.idx = 0; $scope.memoryfilterData = filtersData; $scope.refreshData('expand-right', filtersData); }); }; //处理 $scope.selectRowFunction = function (model) { console.log(model) var modalInstance = $modal.open({ backdrop: false, templateUrl: 'assets/views/incident/tpl/doing.tpl.html', controller: function ($scope,$rootScope, $modalInstance, api_bpm_domain, modelData, currentUserId, Alert, api_user_data,api_category) { console.log(model,loginUser); $scope.model = model; $scope.postData = { handleCategory: undefined, closecode: undefined, handleDescription: '', synergetic: [], } $scope.incidentHandleCategoryList = []; $scope.incidentClosecodeList = []; $scope.synergeticList = []; // 获取处理方式 $scope.getIncidentHandleCategory = function(){ api_wechatfile.getDictionary({"key":"incident_handleCategory","type":"list"}).then(function (data) { $scope.incidentHandleCategoryList = data || []; }) } // 获取关闭代码 $scope.getIncidentClosecode = function(){ api_wechatfile.getDictionary({"key":"incident_closecode","type":"list"}).then(function (data) { $scope.incidentClosecodeList = data || []; }) } // 获取协同人 $scope.getSynergeticList = function(keyword = ''){ let postData = { "idx":0, "sum":10, "user":{ currentDuty: model.duty ? model.duty.id : undefined, name: keyword, selectType: "pinyin_qs" } }; api_simple.fetchDataList("user", postData).then(result => { if(result.status == 200){ $scope.synergeticList = result.list || []; }else{ $scope.synergeticList = []; } }) } // 初始化 $scope.getIncidentHandleCategory(); $scope.getIncidentClosecode(); $scope.getSynergeticList(); $scope.ok = function () { if (!$scope.postData.handleCategory){ Alert.swal({ title: "操作失败", text: "请选择处理方式!", type: "error" }); return; } if ($scope.model.category.hasSimple != 1 &&!$scope.postData.closecode){ Alert.swal({ title: "操作失败", text: "请选择关闭代码!", type: "error" }); return; } if ($scope.model.category.hasSimple != 1 &&!$scope.postData.handleDescription){ Alert.swal({ title: "操作失败", text: "请填写处理方案!", type: "error" }); return; } let postData = {incident: {...model, ...{ handleCategory: $scope.postData.handleCategory, closecode: $scope.postData.closecode, handleDescription: $scope.postData.handleDescription, synergetic: $scope.postData.synergetic.length ? $scope.postData.synergetic : undefined, }}}; $rootScope.isMask = true; api_flow.accept("doing", postData).then(function (response) { console.log(response) $rootScope.isMask = false; if (response.state == 200) { Alert.swal({ title: "操作成功!", confirmButtonColor: "#007AFF", type: "success" }); $modalInstance.close('success'); } else { Alert.swal({ title: "操作失败", text: "操作失败, 请稍后再试!", type: "error" }); } }); } $scope.cancel = function () { $modalInstance.dismiss('cancel'); } }, size: 'sm', resolve: { api_bpm: function () { return api_bpm; }, modelData: function () { return model; }, currentUserId: function () { return loginUser.id; }, Alert: function () { return SweetAlert; }, api_user_data: function () { return api_user_data; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem == 'success') { $scope.refreshData('expand-right', defaultFilterData); } }); }; //修改 $scope.changeClick = function (data) { $state.go('app.incident.detail', { formKey: 'incident_change', pdKey: 'incident', dataId: data.id, taskId: data.taskId, processInstanceId: data.processInstanceId }); }; //回访 $scope.visit = function (model) { console.log(model) var modalInstance = $modal.open({ backdrop: false, templateUrl: 'assets/views/incident/tpl/callback.tpl.html', controller: function ($scope,$rootScope, $modalInstance, api_bpm_domain, modelData, currentUserId, Alert, api_user_data,api_category) { console.log(model,loginUser); $scope.model = model; $scope.postData = { degree: undefined, visitRemarks: '', } $scope.degreeList = []; // 获取满意度评价 $scope.getDegree = function(){ api_wechatfile.getDictionary({"key":"incident_degree","type":"list"}).then(function (data) { $scope.degreeList = data || []; }) } // 初始化 $scope.getDegree(); $scope.ok = function () { if (!$scope.postData.degree){ Alert.swal({ title: "操作失败", text: "请选择满意度评价!", type: "error" }); return; } let postData = {incident: {...model, ...{ degree: $scope.postData.degree, visitRemarks: $scope.postData.visitRemarks, }}}; $rootScope.isMask = true; api_flow.accept("callback", postData).then(function (response) { console.log(response) $rootScope.isMask = false; if (response.state == 200) { Alert.swal({ title: "操作成功!", confirmButtonColor: "#007AFF", type: "success" }); $modalInstance.close('success'); } else { Alert.swal({ title: "操作失败", text: "操作失败, 请稍后再试!", type: "error" }); } }); } $scope.cancel = function () { $modalInstance.dismiss('cancel'); } }, size: 'sm', resolve: { api_bpm: function () { return api_bpm; }, modelData: function () { return model; }, currentUserId: function () { return loginUser.id; }, Alert: function () { return SweetAlert; }, api_user_data: function () { return api_user_data; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem == 'success') { $scope.refreshData('expand-right', defaultFilterData); } }); }; //导出 $scope.export = function () { console.log($scope.memoryfilterData) var filadata = angular.copy($scope.memoryfilterData); filadata.sum = 10000; console.log($scope.filadata) $http({ url: api_bpm_data.downDataModel("incident", 3).getRequestedUrl(), method: 'POST', data: JSON.stringify(filadata), headers: { 'Accept': '*/*' }, responseType: 'arraybuffer' }).success(function (data, status, headers, config) { var file = new Blob([data], { type: 'application/vnd.ms-excel' }); //trick to download store a file having its URL var fileURL = URL.createObjectURL(file); var a = document.createElement('a'); a.href = fileURL; a.target = '_blank'; a.download = '事件列表.xls'; document.body.appendChild(a); a.click(); }).error(function (data, status, headers, config) { // $scope.ldloading.zoom_in = false; console.log(data); }); } //接单 $scope.acceptTaskAction = function (model) { var modalInstance = $modal.open({ templateUrl: 'assets/views/incident/tpl/acceptTask.tpl.html', controller: function ($scope, $modalInstance, modelData, currentUserId, Alert) { $scope.title = "提示"; $scope.connect = "确认接单?"; $scope.ok = function () { console.log(model); $rootScope.isMask = true; api_flow.accept("receive", {incident: model}).then(function (response) { $rootScope.isMask = false; if (response.state == 200) { Alert.swal({ title: "操作成功!", confirmButtonColor: "#007AFF", type: "success" }); $modalInstance.close('success'); } else { Alert.swal({ title: "操作失败", text: "操作失败, 请稍后再试!", type: "error" }); } }); } $scope.cancel = function () { $modalInstance.dismiss('cancel'); } }, size: 'sm', resolve: { modelData: function () { return model; }, currentUserId: function () { return loginUser.id; }, Alert: function () { return SweetAlert; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem == 'success') { $scope.refreshData('expand-right', defaultFilterData); } }); } // 指派弹窗 $scope.toAssign = function (model) { console.log(model) var modalInstance = $modal.open({ backdrop: false, templateUrl: 'assets/views/incident/tpl/toAssign.tpl.html', controller: function ($scope,$rootScope, $modalInstance, api_bpm_domain, modelData, currentUserId, Alert, api_user_data,api_category) { console.log(model,loginUser); //获取组下面的用户 $scope.getUsers = function(groupId){ $scope.user = []; var postData = {}; if(groupId){ postData = { "idx": 0, "sum": 100, user: { groupdata:{id:groupId}, roledata: { rolecode: "first-line support" }, roledata2: { rolecode: "second-line support" }, selectType: "1", selectDetails:1, simple: true, } } }else{ postData = { "idx": 0, "sum": 100, user: { roledata: { rolecode: "first-line support" }, roledata2: { rolecode: "second-line support" }, selectType: "1", selectDetails:1, simple: true, } } } api_user_data.fetchDataList('user', postData).then(function (data) { $scope.user = data.list; }) } $scope.assign = { branch:undefined, duty:undefined, user:undefined, group:undefined, isRadioUser: 0, } $scope.hospitalList = []; $scope.dutyDeptList = []; $scope.user = []; $scope.group = []; $scope.isShowRadioUser = false; // 修改是否指派到人 $scope.changeRadioUser = function(){ $scope.assign.user = undefined; } // 获取院区 $scope.getHospitals = function(){ //跨科室转派 api_user_data.fetchDataList('branch', { "idx": 0, "sum": 100 }).then(function (data) { if(data.status == 200){ $scope.hospitalList = data.list; if($scope.assign.duty){ $scope.assign.branch = $scope.hospitalList.find(v=>v.id == $scope.assign.duty.branch); }else{ if($rootScope.user.duty){ // 当前的所属责任科室 $scope.assign.branch = $scope.hospitalList.find(v=>v.id == $rootScope.user.duty.branch); $scope.assign.duty = $rootScope.user.duty; $scope.changeDuty(); }else if($rootScope.user.branch){ // 当前的所属院区 $scope.assign.branch = $scope.hospitalList.find(v=>v.id == $rootScope.user.branch.id); } } }else{ SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }) } $scope.getHospitals(); // 修改院区 $scope.changeBranch = function(keyword){ if(keyword === undefined){ $scope.assign.duty = undefined; $scope.dutyDeptList = []; $scope.assign.group = undefined; $scope.group = []; $scope.assign.user = undefined; $scope.user = []; } if(!$scope.assign.branch){ $scope.dutyDeptList = []; return; } api_user_data.fetchDataList('dutyDepartment', { "idx": 0, "sum": 100, "dutyDepartment":{ branch:$scope.assign.branch.id, dept:keyword, selectType: "pinyin_qs" } }).then(function (data) { if(data.status == 200){ $scope.dutyDeptList = data.list; }else{ SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }) } // 修改责任科室 $scope.changeDuty = function(keyword){ if(keyword === undefined){ $scope.assign.user = undefined; $scope.user = []; $scope.assign.group = undefined; $scope.group = []; } api_user_data.fetchDataList('group', { "idx": 0, "sum": 9999, "group":{ duty:$scope.assign.duty, selectType: "nouser" } }).then(function (data) { if(data.status == 200){ $scope.group = data.list; }else{ SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }) } $scope.changeGroup = function(item){ // $scope.assign.group = item.id; $scope.assign.user = undefined; $scope.user = []; $scope.getUsers(item.id) } $scope.ok = function () { if ($scope.assign.isRadioUser == 1 && !$scope.assign.user){ Alert.swal({ title: "操作失败", text: "请选择转派对象信息!", type: "error" }); return; } if ($scope.assign.isRadioUser == 0 && !$scope.assign.group){ Alert.swal({ title: "操作失败", text: "请选择工作组!", type: "error" }); return; } let postData = {}; if($scope.assign.user && $scope.assign.user.id){ // 派人 postData ={ incident: {...model, ...{assignee: $scope.assign.user.id}} }; } else if($scope.assign.group && $scope.assign.group.id){ // 派组 postData ={ incident: {...model, ...{candidateGroups: $scope.assign.group.id}} }; } $rootScope.isMask = true; api_flow.accept("assign", postData).then(function (response) { console.log(response) $rootScope.isMask = false; if (response.state == 200) { Alert.swal({ title: "操作成功!", confirmButtonColor: "#007AFF", type: "success" }); $modalInstance.close('success'); } else { Alert.swal({ title: "操作失败", text: "操作失败, 请稍后再试!", type: "error" }); } }); } $scope.cancel = function () { $modalInstance.dismiss('cancel'); } }, size: 'sm', resolve: { api_bpm: function () { return api_bpm; }, modelData: function () { return model; }, currentUserId: function () { return loginUser.id; }, Alert: function () { return SweetAlert; }, api_user_data: function () { return api_user_data; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem == 'success') { $scope.refreshData('expand-right', defaultFilterData); } }); } // 转派弹窗 $scope.toTransfer = function (model) { console.log(model) var modalInstance = $modal.open({ backdrop: false, templateUrl: 'assets/views/incident/tpl/toTransfer.tpl.html', controller: function ($scope,$rootScope, $modalInstance, api_bpm_domain, modelData, currentUserId, Alert, api_user_data,api_category) { console.log(model,loginUser); $scope.assign = { duty:model.duty, user:undefined, group:undefined, isRadioGroup: 0, } $scope.user = []; $scope.group = []; //获取责任科室下面的用户 $scope.getUsers = function(){ $scope.user = []; var postData = { "idx": 0, "sum": 9999, user: { currentDuty: $scope.assign.duty.id, roledata: { rolecode: "first-line support" }, roledata2: { rolecode: "second-line support" }, selectType: "1", selectDetails:1, simple: true, } } api_user_data.fetchDataList('user', postData).then(function (data) { $scope.user = data.list; }) } $scope.getUsers(); //获取责任科室下面的组 $scope.getGroups = function(){ $scope.group = []; var postData = { "idx": 0, "sum": 9999, group: { duty: $scope.assign.duty, selectType: "nouser", } } api_user_data.fetchDataList('group', postData).then(function (data) { $scope.group = data.list; }) } $scope.getGroups(); // 修改是否转派到组 $scope.changeRadioGroup = function(){ $scope.assign.group = undefined; $scope.assign.user = undefined; } $scope.ok = function () { if ($scope.assign.isRadioGroup == 0 && !$scope.assign.user){ Alert.swal({ title: "操作失败", text: "请选择转派对象信息!", type: "error" }); return; } if ($scope.assign.isRadioGroup == 1 && !$scope.assign.group){ Alert.swal({ title: "操作失败", text: "请选择工作组!", type: "error" }); return; } let postData = {}; if($scope.assign.user && $scope.assign.user.id){ // 派人 postData ={ incident: {...model, ...{assignee: $scope.assign.user.id}} }; } else if($scope.assign.group && $scope.assign.group.id){ // 派组 postData ={ incident: {...model, ...{candidateGroups: $scope.assign.group.id}} }; } $rootScope.isMask = true; api_flow.accept("redeploy", postData).then(function (response) { console.log(response) $rootScope.isMask = false; if (response.state == 200) { Alert.swal({ title: "操作成功!", confirmButtonColor: "#007AFF", type: "success" }); $modalInstance.close('success'); } else { Alert.swal({ title: "操作失败", text: "操作失败, 请稍后再试!", type: "error" }); } }); } $scope.cancel = function () { $modalInstance.dismiss('cancel'); } }, size: 'sm', resolve: { api_bpm: function () { return api_bpm; }, modelData: function () { return model; }, currentUserId: function () { return loginUser.id; }, Alert: function () { return SweetAlert; }, api_user_data: function () { return api_user_data; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem == 'success') { $scope.refreshData('expand-right', defaultFilterData); } }); } // 删除事件 $scope.delSj = function(model){ console.log(model); SweetAlert.swal({ title: "确认删除?", text: "删除的数据不可恢复,请确认继续操作!", type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "继续删除", cancelButtonText: "取消操作", closeOnConfirm: false, closeOnCancel: false }, function (isConfirm) { if (isConfirm) { api_bpm_schedule.del(model.id).then(function (response) { if (response.status == 200) { SweetAlert.swal("操作成功!", "数据已经被删除.", "success"); $scope.refreshData('expand-right'); } else { SweetAlert.swal("操作失败!", "数据暂时无法被删除,请稍候重试", "error"); } }); } else { SweetAlert.swal("操作取消", "数据安全", "error"); } }); } // 继续创建 $scope.storageSj = function(model){ console.log(model); $rootScope.newOrder({incident: model}); } // 新增延期处理弹窗 $scope.toHandlerLog = function (model) { console.log(model) var modalInstance = $modal.open({ backdrop: false, templateUrl: 'assets/views/incident/tpl/toHandlerLog.tpl.html', controller: function ($scope, $modalInstance, api_bpm_domain,api_bpm_data, modelData, currentUserId, Alert, api_user_data,api_statistic) { console.log(model,loginUser); $scope.f = { maintenanceMode: '', estimatedNumberOfDays: '' } $scope.handlerLog = ''; $scope.user = []; $scope.logs = []; $scope.modes = []; $scope.getModes=function(){ var data={ "idx":0, "sum":999, dictionary:{key:'repair_type'} } api_statistic.tableData(data,"dictionary").then(function(res){ $scope.modes=res.list }) } $scope.getModes(); $scope.getLogs=function(){ var data={ "idx":0, "sum":999, dictionary:{key:'processingLog'} } api_statistic.tableData(data,"dictionary").then(function(res){ $scope.logs=res.list }) } $scope.getLogs(); $scope.copyTo = function(value){ $scope.handlerLog += value; } $scope.ok = function () { if (!$scope.f.maintenanceMode){ Alert.swal({ title: "操作失败", text: "请选择维修方式!", type: "error" }); return; } if (!$scope.f.estimatedNumberOfDays){ Alert.swal({ title: "操作失败", text: "请选择预估天数!", type: "error" }); return; } if (!$scope.handlerLog.trim()){ Alert.swal({ title: "操作失败", text: "请填写备注!", type: "error" }); return; } $rootScope.isMask = true; api_flow.accept("overtime", { incident: { ...model, ...{ currentLog: { remark: $scope.handlerLog, extra1: $scope.f.maintenanceMode.id, extra2: $scope.f.estimatedNumberOfDays, } } } }).then(function(response){ console.log(response) $rootScope.isMask = false; if (response.state == 200) { Alert.swal({ title: "操作成功!", confirmButtonColor: "#007AFF", type: "success" }); $modalInstance.close('success'); } else { Alert.swal({ title: "操作失败", text: "操作失败, 请稍后再试!", type: "error" }); } }); } $scope.cancel = function () { $modalInstance.dismiss('cancel'); } }, size: 'lg', resolve: { api_bpm: function () { return api_bpm; }, modelData: function () { return model; }, currentUserId: function () { return loginUser.id; }, Alert: function () { return SweetAlert; }, api_user_data: function () { return api_user_data; }, api_statistic: function () { return api_statistic; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem == 'success') { $scope.refreshData('expand-right', defaultFilterData); } }); } // 设置责任科室 $scope.setDuty = function (model) { console.log(model) var modalInstance = $modal.open({ backdrop: false, templateUrl: 'assets/views/incident/tpl/setDuty.tpl.html', controller: function ($scope,$rootScope, $modalInstance, api_bpm_domain, modelData, currentUserId, Alert, api_user_data,api_category) { console.log(model,loginUser); $scope.assign = { branch:undefined, duty:undefined, } $scope.hospitalList = []; $scope.dutyDeptList = []; // 获取院区 $scope.getHospitals = function(){ //跨科室转派 api_user_data.fetchDataList('branch', { "idx": 0, "sum": 100 }).then(function (data) { if(data.status == 200){ $scope.hospitalList = data.list; if($scope.assign.duty){ $scope.assign.branch = $scope.hospitalList.find(v=>v.id == $scope.assign.duty.branch); }else{ if($rootScope.user.duty){ // 当前的所属责任科室 $scope.assign.branch = $scope.hospitalList.find(v=>v.id == $rootScope.user.duty.branch); $scope.assign.duty = $rootScope.user.duty; $scope.changeDuty(); }else if($rootScope.user.branch){ // 当前的所属院区 $scope.assign.branch = $scope.hospitalList.find(v=>v.id == $rootScope.user.branch.id); } } }else{ SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }) } $scope.getHospitals(); // 修改院区 $scope.changeBranch = function(keyword){ if(keyword === undefined){ $scope.assign.duty = undefined; $scope.dutyDeptList = []; } if(!$scope.assign.branch){ $scope.dutyDeptList = []; return; } api_user_data.fetchDataList('dutyDepartment', { "idx": 0, "sum": 100, "dutyDepartment":{ branch:$scope.assign.branch.id, dept:keyword, selectType: "pinyin_qs" } }).then(function (data) { if(data.status == 200){ $scope.dutyDeptList = data.list; }else{ SweetAlert.swal({ title: "系统错误!", text: "请刷新重试!", type: "error" }); } }) } $scope.ok = function () { if (!$scope.assign.duty){ Alert.swal({ title: "操作失败", text: "请选择责任科室!", type: "error" }); return; } $rootScope.isMask = true; api_bpm_domain.changeIncidentDuty({orderId: model.id, dutyId: $scope.assign.duty.id}).then(function (response) { console.log(response) $rootScope.isMask = false; if (response.status == 200) { Alert.swal({ title: "操作成功!", confirmButtonColor: "#007AFF", type: "success" }); $modalInstance.close('success'); } else { Alert.swal({ title: "操作失败", text: "操作失败, 请稍后再试!", type: "error" }); } }); } $scope.cancel = function () { $modalInstance.dismiss('cancel'); } }, size: 'sm', resolve: { api_bpm: function () { return api_bpm; }, modelData: function () { return model; }, currentUserId: function () { return loginUser.id; }, Alert: function () { return SweetAlert; }, api_user_data: function () { return api_user_data; } } }); modalInstance.result.then(function (selectedItem) { if (selectedItem == 'success') { $scope.refreshData('expand-right', defaultFilterData); } }); } if ($stateParams.model) { if (JSON.parse($stateParams.model).searchType && JSON.parse($stateParams.model).searchType != null) { $scope.searchstate = JSON.parse($stateParams.model).searchType; } else { $scope.searchstate = "todo"; } } else { $scope.searchstate = "todo"; } if ($rootScope.user.group) { var defaultFilterData = { "idx": 0, "sum": mun }; } else { var defaultFilterData = { "idx": 0, "sum": mun }; } if (angular.isDefined($rootScope.search) && angular.isDefined($rootScope.search.incident)) { $scope.searchstate = $rootScope.search.incident; } $scope.ldloading = {}; //事件类型筛选 console.log($state); if($state.params.tab){ $scope.searchstate = $state.params.tab; }else{ $scope.searchstate = 'todo'; } $scope.onChange = function (searchstate) { $scope.isDisabledState = false; $scope.searchstate = searchstate; $scope.chiceIncident($scope.searchkeys,$scope.othcode.state); } // 是否逾期下拉框选择seimin $scope.selectTypeChange = function(){ console.log($scope.searchkeys.selectType,66666); if(window.sessionStorage.getItem('isGoyuqi') == 'yes'){ $scope.searchkeys.selectType = {id:'2',name:'是'}; } var ids = $scope.searchkeys.selectType.id if(defaultFilterData.incident){ defaultFilterData.incident.selectType = ids; }else{ defaultFilterData.incident = { selectType:ids }; } console.log(defaultFilterData,2222) $scope.onChange('all'); } //获取列表数据 $scope.refreshData = function (style, filterData) { console.log(filterData,9090) if (filterData && filterData.incident && filterData.incident.area) { filterData.incident.place = { id: filterData.incident.place ? filterData.incident.place.id : '', area: filterData.incident.area } delete filterData.incident.area } $scope.ldloading[style.replace('-', '_')] = true; if (angular.isUndefined(filterData)) { filterData = defaultFilterData; if($state.params.tab){ $scope.searchstate = $state.params.tab; filterData.idx = 0; $scope.gridOptions.paginationCurrentPage = 1 + filterData.idx; } if($state.params.date == 'today'){ $scope.othcode = {}; $scope.searchkeys.acceptDate = new Date(); $scope.searchkeys.acceptDateEnd = new Date(); filterData.incident = {acceptDate:moment().format('YYYY-MM-DD 00:00:00'),acceptDateEnd:moment().format('YYYY-MM-DD 23:59:59')}; }else{ $scope.searchkeys.acceptDate = undefined; $scope.searchkeys.acceptDateEnd = undefined; } if($state.params.state){ var obj = $scope.state.find(function(v){return $state.params.state == v.id}); $scope.othcode = {state:obj}; filterData.incident = {statusId: $state.params.state}; } } console.log(filterData,11111); if(window.sessionStorage.getItem('isGoyuqi') == 'yes'){ $scope.searchkeys.selectType = {id:'2',name:'是'}; if(filterData.incident&&filterData.incident.selectType){ filterData.incident.selectType = '2'; }else{ filterData.incident = { selectType : '2' } } window.sessionStorage.removeItem('isGoyuqi'); } $scope.myData = []; $scope.memoryfilterData = filterData; $scope.gridOptions['sum'] = filterData.sum; // 请求参数调整 if(!filterData.incident){ filterData.incident = {}; } if($rootScope.user.duty){ // 当前的所属责任科室 filterData.incident.duty = $rootScope.user.duty; }else if($rootScope.user.branch){ // 当前的所属院区 filterData.incident.branch = $rootScope.user.branch.id; } filterData.incident.queryTask = $scope.searchstate; filterData.incident.assignee = loginUser.id; if($scope.searchstate === 'todo' || $scope.searchstate === 'owns'){ filterData.incident.candidateGroups = loginuserGroup; }else{ delete filterData.incident.candidateGroups; } // 调用接口 api_user_data.fetchDataList('incident', filterData).then(function (data) { if (data.list) { var myData = Restangular.stripRestangular(data); $scope.gridOptions['totalItems'] = myData.totalNum; $scope.myData = myData.list; for (var i = 0; i < $scope.myData.length; i++) { $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum } } else { SweetAlert.swal({ title: "系统错误", text: "请稍后再试!", type: "error" }); } $scope.ldloading[style.replace('-', '_')] = false; }, function () { $scope.ldloading[style.replace('-', '_')] = false; }); }; $scope.refreshData2 = function (style, filterData) { $scope.ldloading[style.replace('-', '_')] = true; if (angular.isUndefined(filterData)) { filterData = defaultFilterData; } $scope.myData = []; $scope.memoryfilterData = filterData; $scope.gridOptions['sum'] = filterData.sum; // 请求参数调整 if(!filterData.incident){ filterData.incident = {}; } if($rootScope.user.duty){ // 当前的所属责任科室 filterData.incident.duty = $rootScope.user.duty; }else if($rootScope.user.branch){ // 当前的所属院区 filterData.incident.branch = $rootScope.user.branch.id; } filterData.incident.queryTask = $scope.searchstate; filterData.incident.assignee = loginUser.id; if($scope.searchstate === 'todo' || $scope.searchstate === 'owns'){ filterData.incident.candidateGroups = loginuserGroup; }else{ delete filterData.incident.candidateGroups; } //调用接口 api_user_data.fetchDataList('incident', filterData).then(function (data) { if (data.list) { var myData = Restangular.stripRestangular(data); $scope.gridOptions['totalItems'] = myData.totalNum; $scope.myData = myData.list; for (var i = 0; i < $scope.myData.length; i++) { $scope.myData[i]['item'] = i + 1 + filterData.idx * filterData.sum } } else { SweetAlert.swal({ title: "系统错误", text: "请稍后再试!", type: "error" }); } $scope.ldloading[style.replace('-', '_')] = false; }, function () { $scope.ldloading[style.replace('-', '_')] = false; }); }; // 进入页面时111 $scope.getIncidentStatus(); $scope.timer = $interval(function () { $scope.jry_refresh() }, $rootScope.refreshTime); $scope.$on('$destroy', function () { $interval.cancel($scope.timer) }); }]); //操作按钮权限控制 app.controller('IncidentOperCtrl', ['$rootScope', '$scope', '$state', function ($rootScope, $scope, $state) { var loginUser = $rootScope.user; $scope.user = $rootScope.user; $scope.chuli = false; $scope.qiangdan = false; $scope.huifang = false; $scope.delFlag = false; $scope.storageFlag = false; $scope.editFlag = false;//编辑 $scope.assignFlag = false;//指派 $scope.transferFlag = false;//转派 $scope.shijianliebiao_duty = false;//设置责任科室 for (var i = 0; i < loginUser.menu.length; i++) { if (loginUser.menu[i].link == "shijianliebiao_chuli") { $scope.chuli = true } if (loginUser.menu[i].link == "shijianliebiao_qiangdan") { $scope.qiangdan = true } if (loginUser.menu[i].link == "shijianliebiao_huifang") { $scope.huifang = true } if (loginUser.menu[i].link == "shijianliebiao_del") { $scope.delFlag = true } if (loginUser.menu[i].link == "shijianliebiao_build") { $scope.storageFlag = true } if (loginUser.menu[i].link == "shijianliebiao_edit") { $scope.editFlag = true } if (loginUser.menu[i].link == "shijianliebiao_assign") { $scope.assignFlag = true } if (loginUser.menu[i].link == "shijianliebiao_transfer") { $scope.transferFlag = true } if (loginUser.menu[i].link == "shijianliebiao_duty") { $scope.shijianliebiao_duty = true } } $scope.up = true; $scope.fuwutaiRenYuan = false;//服务台人员 for (var i = 0; i < $rootScope.user.role.length; i++) { if ($rootScope.user.role[i].role == '事件经理') { $scope.up = false; } if ($rootScope.user.role[i].id == 29701) { $scope.fuwutaiRenYuan = true; } } $rootScope.callid = $scope.item.callID; if ($scope.item.callID) { $scope.item.listen = true; } else { $scope.item.listen = false; } $rootScope.user.group.forEach(function (item, v) { if($scope.item.currentLog){ if (item.id == $scope.item.currentLog.groupId) { $scope.item.tiquPower = true; } } }) //修改页面显示判断 $scope.jry_modify = function (item) { var arrFlag = ['pending','handler']; var stateFlag = arrFlag.includes(item.state.value) return stateFlag && $scope.editFlag; } // 回访操作权限 for (var obj in $rootScope.user.role) { if ($rootScope.user.role[obj].rolecode == 'call center') { if ($scope.item.state.id == 1546) { $scope.item.huifang = true; } else {} } } $scope.edit = function () { $scope.colobject.grid.appScope.selectRowFunction($scope.item); } $scope.changeCenter = function () { $scope.colobject.grid.appScope.changeClick($scope.item); } $scope.visit = function () { $scope.colobject.grid.appScope.visit($scope.item); } // 指派 $scope.toAssign = function () { $scope.colobject.grid.appScope.toAssign($scope.item); } // 转派 $scope.toTransfer = function () { $scope.colobject.grid.appScope.toTransfer($scope.item); } // 删除事件 $scope.delSj = function () { $scope.colobject.grid.appScope.delSj($scope.item); } // 继续创建 $scope.storageSj = function () { $scope.colobject.grid.appScope.storageSj($scope.item); } // 新增延期处理 $scope.toHandlerLog = function () { $scope.colobject.grid.appScope.toHandlerLog($scope.item); } // 设置责任科室 $scope.setDuty = function () { $scope.colobject.grid.appScope.setDuty($scope.item); } $scope.play = function () { //record $scope.colobject.grid.appScope.play($scope.item); } $scope.handler = function () { $scope.colobject.grid.appScope.acceptTaskAction($scope.item); } //查看 $scope.toDetail = function (data) { console.log(data,$rootScope.isFuwutai); if($rootScope.isFuwutai){ //角色是服务台人员 $state.go('app.incident.incidentDetail', { id: data.id, }); }else{ window.open(location.origin+'/#/app/incident/incidentDetail/'+data.id); } }; }]); //操作按钮 app.directive('incidentoperator', function () { return { restrict: 'E', scope: { item: '=', colobject: '=' }, controller: 'IncidentOperCtrl', template: '
' + '查看' + // '编辑' + '删除' + '继续创建
' + '处理' + '接单' + '回访' + '指派' + '转派' + '延期处理' + '设置责任科室' + '
' }; });