"use strict"; /** * controller for User Profile Example */ app.controller("maintenanceManagementCtrl", [ "$rootScope", "$scope", "$state", "$timeout", "$interval", "$modal", "SweetAlert", "i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_user_data", "api_wechatfile", function ( $rootScope, $scope, $state, $timeout, $interval, $modal, SweetAlert, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular, api_user_data, api_wechatfile ) { $scope.langs = i18nService.getAllLangs(); $scope.lang = "zh-cn"; i18nService.setCurrentLang($scope.lang); var loginUser = $rootScope.user; $scope.xinzeng = true; $scope.shanchu = true; $scope.bianji = true; $scope.days60 = false; $scope.changeDays60 = function(){ $scope.refreshData("expand-right", $scope.fileData) } for (var i = 0; i < loginUser.menu.length; i++) { if (loginUser.menu[i].link == "add") { $scope.xinzeng = true; } if (loginUser.menu[i].link == "del") { $scope.shanchu = true; } if (loginUser.menu[i].link == "yuyue") { $scope.yuyue = true; } } $scope.gridOptions = {}; $scope.gridOptions.data = "myData"; $scope.gridOptions.enableColumnResizing = true; $scope.gridOptions.enableFiltering = true; $scope.gridOptions.enableGridMenu = true; $scope.gridOptions.enableRowSelection = true; $scope.gridOptions.showGridFooter = true; $scope.gridOptions.showColumnFooter = false; $scope.gridOptions.fastWatch = true; $scope.gridOptions.useExternalFiltering = true; $scope.gridOptions.useExternalPagination = true; $scope.gridOptions.paginationPageSizes = [10, 20, 50, 100]; $scope.gridOptions.paginationPageSize = 10; $scope.gridOptions.multiSelect = false; // $scope.gridOptions.rowTemplate = // '
'; $scope.gridOptions.rowIdentity = function (row) { return row.id; }; $scope.gridOptions.getRowIdentity = function (row) { return row.id; }; $scope.gridOptions.columnDefs = [ { name: "item", displayName: "序号", width: 50, enableFiltering: false, }, { name: "contractCode", displayName: "合同编号", width: "200", enableFiltering: false, }, { name: "contractName", displayName: "合同名称", width: "200", enableFiltering: false, }, { name: "company", displayName: "乙方", width: "200", enableFiltering: false, cellTemplate: "
" + '
{{row.entity.company ? row.entity.company.name : ""}}
' + "
", }, { name: "departmentDTO", displayName: "使用方", width: "200", enableFiltering: false, cellTemplate: "
" + '
{{row.entity.departmentDTO ? row.entity.departmentDTO.dept : ""}}
' + "
", }, { name: "startTime", displayName: "维保开始时间", width: "100", enableFiltering: false, cellTemplate: "
" + '
{{row.entity.startTime | date:"yyyy-MM-dd"}}
' + "
", }, { name: "totalYear", displayName: "维保年限", width: "100", enableFiltering: false, }, { name: "endTime", displayName: "维保结束时间", width: "100", enableFiltering: false, cellTemplate: "
" + '
{{row.entity.endTime | date:"yyyy-MM-dd"}}
' + "
", }, { name: "status", displayName: "状态", width: "90", enableFiltering: false, cellTemplate: "
" + '
{{row.entity.status ? row.entity.status.desc : ""}}
' + "
", }, { name: "remainingDay", displayName: "倒计时(天)", width: "100", enableFiltering: false, cellTemplate: "
" + '
{{row.entity.remainingDay}}
' + '
{{row.entity.remainingDay}}
' + '
{{row.entity.remainingDay}}
' + "
", }, { name: "操作", width: "200", cellTemplate: '
' + '快速续保' + '删除' + "
", enableFiltering: false, }, ]; $scope.transferDept = function (data) { if (data) { return data; } else { return "无"; } }; // 快速续保 $scope.saveData = function (selectdata) { console.log(selectdata); var modalInstance = $modal.open({ templateUrl: "assets/views/system/tpl/maintenancechange.html", controller: function ($scope, $rootScope, $modalInstance, api_user_data, api_wechatfile) { $scope.title = "快速续保"; $scope.isAdd = false; $scope.cancel = function () { $modalInstance.dismiss("cancel"); }; console.log(selectdata); $scope.maintenance = { id: selectdata.id, branch: selectdata.branch, contractCode: selectdata.contractCode, contractName: selectdata.contractName, company: selectdata.company, department: selectdata.departmentDTO, startTime: new Date(selectdata.startTime), totalYear: null, endTime: new Date(selectdata.endTime) }; console.log($scope.maintenance); $scope.minYYtime = null; $scope.maxYYtime = null; // 修改维保开始时间 $scope.changeStartTime = function(){ $scope.minYYtime = $scope.maintenance.startTime; if($scope.maintenance.startTime && $scope.maintenance.totalYear !== null){ $scope.maintenance.endTime = new Date(moment($scope.maintenance.startTime).add($scope.maintenance.totalYear,'years')); } } // 修改维保结束时间 $scope.changeEndTime = function(){ $scope.maxYYtime = $scope.maintenance.endTime; } // 修改维保年限 $scope.changeTotalYear = function(){ if($scope.maintenance.totalYear !== null){ $scope.maintenance.endTime = new Date(moment(new Date(selectdata.endTime)).add($scope.maintenance.totalYear,'years')); } } // 查询乙方 $scope.companyList = []; $scope.searchCompany = function(keyword = ''){ var postData = { idx: 0, sum: 10, company: { name: keyword, selectType: "pinyin_qs", }, }; api_user_data.fetchDataList("company", postData).then(function (data) { $scope.companyList = data.list || []; }); } $scope.searchCompany(); // 查询使用方 $scope.departmentList = []; $scope.searchDepartment = function(keyword = ''){ var postData = { idx: 0, sum: 10, department: { dept: keyword, selectType: "pinyin_qs", }, }; api_user_data.fetchDataList("department", postData).then(function (data) { $scope.departmentList = data.list || []; }); } // 查询状态 $scope.statusList = []; $scope.searchStatus= function(){ api_wechatfile.getDictionary({ "key": "maintenance_state", "type": "list" }).then(function (response) { $scope.statusList = response || []; $scope.searchDepartment(); }) } $scope.searchStatus(); // 保存 $scope.savercode = function (maintenance) { console.log(maintenance); if (maintenance && maintenance.contractCode && maintenance.contractName && maintenance.company && maintenance.department && maintenance.startTime && maintenance.totalYear && maintenance.endTime) { $modalInstance.close({maintenance: maintenance, $scope: $scope, $rootScope: $rootScope}); } else { SweetAlert.swal( { title: "失败!", text: "请填写必填项!", type: "error", confirmButtonColor: "#DD6B55", }, function () {} ); } }; }, resolve: { scope: function () { return $scope; }, }, }); modalInstance.result.then(function (selectedItems) { var selectedItem = selectedItems.maintenance; var scope = selectedItems.$scope; var rootScope = selectedItems.$rootScope; // var diffDay = moment(selectedItem.endTime).diff(moment(), 'days'); // var statusDTO; // if(diffDay < 0){ // statusDTO = scope.statusList.find(function(v){return v.value == 2}); // }else if(diffDay == 0){ // var diffHour = moment(selectedItem.endTime).diff(moment(), 'hours'); // if(diffHour > 0){ // statusDTO = scope.statusList.find(function(v){return v.value == 3}); // }else{ // statusDTO = scope.statusList.find(function(v){return v.value == 2}); // } // }else if(diffDay <= 60){ // statusDTO = scope.statusList.find(function(v){return v.value == 3}); // }else{ // statusDTO = scope.statusList.find(function(v){return v.value == 1}); // } var fildata = { maintenance: { id: selectedItem.id, contractCode: selectedItem.contractCode, contractName: selectedItem.contractName, company: selectedItem.company, department: selectedItem.department.id, startTime: moment(selectedItem.startTime).startOf('day').format('YYYY-MM-DD HH:mm:ss'), totalYear: selectdata.totalYear + selectedItem.totalYear, endTime: moment(selectedItem.endTime).startOf('day').format('YYYY-MM-DD HH:mm:ss'), // status: statusDTO, branch: selectedItem.branch, deleteFlag: 0, }, }; console.log(fildata); api_user_data.addData("maintenance", fildata).then(function (response) { if (response) { if (response.status == 200) { SweetAlert.swal( { title: "成功!", type: "success", }, function () { $scope.refreshData("expand-right", $scope.fileData); } ); } else { SweetAlert.swal({ title: "失败!", text: response.msg, type: "error", }); } } }); }); }; // 新增 $scope.addData = function () { var modalInstance = $modal.open({ templateUrl: "assets/views/system/tpl/maintenancechange.html", controller: function ($scope, $rootScope, $modalInstance, api_user_data, api_wechatfile) { $scope.title = "新增"; $scope.isAdd = true; $scope.cancel = function () { $modalInstance.dismiss("cancel"); }; $scope.maintenance = { contractCode: '', contractName: '', company: null, department: null, startTime:null, totalYear: null, endTime: null }; $scope.minYYtime = null; $scope.maxYYtime = null; // 修改维保开始时间 $scope.changeStartTime = function(){ $scope.minYYtime = $scope.maintenance.startTime; if($scope.maintenance.startTime && $scope.maintenance.totalYear !== null){ $scope.maintenance.endTime = new Date(moment($scope.maintenance.startTime).add($scope.maintenance.totalYear,'years')); } } // 修改维保结束时间 $scope.changeEndTime = function(){ $scope.maxYYtime = $scope.maintenance.endTime; } // 修改维保年限 $scope.changeTotalYear = function(){ if($scope.maintenance.startTime && $scope.maintenance.totalYear !== null){ $scope.maintenance.endTime = new Date(moment($scope.maintenance.startTime).add($scope.maintenance.totalYear,'years')); } } // 查询乙方 $scope.companyList = []; $scope.searchCompany = function(keyword = ''){ var postData = { idx: 0, sum: 10, company: { name: keyword, selectType: "pinyin_qs", }, }; api_user_data.fetchDataList("company", postData).then(function (data) { $scope.companyList = data.list || []; }); } $scope.searchCompany(); // 查询使用方 $scope.departmentList = []; $scope.searchDepartment = function(keyword = ''){ var postData = { idx: 0, sum: 10, department: { dept: keyword, selectType: "pinyin_qs", }, }; api_user_data.fetchDataList("department", postData).then(function (data) { $scope.departmentList = data.list || []; }); } // 查询状态 $scope.statusList = []; $scope.searchStatus= function(){ api_wechatfile.getDictionary({ "key": "maintenance_state", "type": "list" }).then(function (response) { $scope.statusList = response || []; $scope.searchDepartment(); }) } $scope.searchStatus(); // 保存 $scope.savercode = function (maintenance) { console.log(maintenance); if (maintenance && maintenance.contractCode && maintenance.contractName && maintenance.company && maintenance.department && maintenance.startTime && maintenance.totalYear && maintenance.endTime) { $modalInstance.close({maintenance: maintenance, $scope: $scope, $rootScope: $rootScope}); } else { SweetAlert.swal( { title: "新增失败!", text: "请填写必填项!", type: "error", confirmButtonColor: "#DD6B55", }, function () {} ); } }; }, }); modalInstance.result.then(function (selectedItems) { var selectedItem = selectedItems.maintenance; var scope = selectedItems.$scope; var rootScope = selectedItems.$rootScope; var branchId; if(rootScope.user.duty){ branchId = rootScope.user.duty.branch; }else if(rootScope.user.branch){ branchId = rootScope.user.branch.id; } // var diffDay = moment(selectedItem.endTime).diff(moment(), 'days'); // var statusDTO; // if(diffDay < 0){ // statusDTO = scope.statusList.find(function(v){return v.value == 2}); // }else if(diffDay == 0){ // var diffHour = moment(selectedItem.endTime).diff(moment(), 'hours'); // if(diffHour > 0){ // statusDTO = scope.statusList.find(function(v){return v.value == 3}); // }else{ // statusDTO = scope.statusList.find(function(v){return v.value == 2}); // } // }else if(diffDay <= 60){ // statusDTO = scope.statusList.find(function(v){return v.value == 3}); // }else{ // statusDTO = scope.statusList.find(function(v){return v.value == 1}); // } var fildata = { maintenance: { contractCode:selectedItem.contractCode, contractName: selectedItem.contractName, company: selectedItem.company, department: selectedItem.department.id, startTime: moment(selectedItem.startTime).startOf('day').format('YYYY-MM-DD HH:mm:ss'), totalYear: selectedItem.totalYear, endTime: moment(selectedItem.endTime).startOf('day').format('YYYY-MM-DD HH:mm:ss'), // status: statusDTO, branch: branchId, deleteFlag: 0, }, }; console.log(fildata); api_user_data.addData("maintenance", fildata).then(function (response) { if (response) { if (response.status == 200) { SweetAlert.swal( { title: "新增成功!", type: "success", }, function () { $scope.refreshData("expand-right", $scope.fileData); } ); } else { SweetAlert.swal({ title: "新增失败!", text: response.msg, type: "error", }); } } }); }); }; // 删除 $scope.removeData = function (rmData) { var modalInstance = $modal.open({ templateUrl: "assets/views/incident/tpl/acceptTask.tpl.html", controller: function ($scope, scope, $modalInstance, api_bpm_data) { var rmvList = []; $scope.title = "删除"; $scope.connect = "确定要删除?"; rmvList.push(rmData); $scope.ok = function () { $modalInstance.close(rmvList); }; $scope.cancel = function () { $modalInstance.dismiss("cancel"); }; }, size: "sm", resolve: { scope: function () { return $scope; }, }, }); modalInstance.result.then(function (selectedItem) { if (selectedItem) { if (selectedItem.length > 0) { console.log(selectedItem); api_user_data .rmvData("maintenance", [selectedItem[0].id]) .then(function (response) { if (response.status == 200) { SweetAlert.swal( { title: "删除成功!", type: "success", confirmButtonColor: "#007AFF", }, function () { $scope.myData = _.reject($scope.myData, function (o) { return _.includes(selectedItem, o.id); }); $scope.selected = { items: [], }; $scope.gridOptions.totalItems = $scope.gridOptions.totalItems - selectedItem.length; $scope.gridApi.grid.selection.selectedCount = 0; $scope.refreshData("expand-right", $scope.fileData); } ); } else { SweetAlert.swal({ title: "操作异常!", text: "系统异常,请稍后重试,或者联系管理员!", type: "error", }); } }); } } }); }; $scope.selected = { items: [], }; $scope.editted = { items: [], }; $scope.gridOptions.onRegisterApi = function (gridApi) { $scope.gridApi = gridApi; gridApi.pagination.on.paginationChanged( $scope, function (newPage, pageSize) { var filtersData = $scope.memoryfilterData; filtersData.idx = newPage - 1; filtersData.sum = pageSize; $scope.fileData.idx = newPage - 1; $scope.fileData.sum = pageSize; defaultFilterData = filtersData; $scope.refreshData("expand-right", $scope.fileData); } ); gridApi.selection.on.rowSelectionChanged($scope, function (scope) { scope.grid.appScope.selected.items = scope.entity; }); }; var defaultFilterData = { idx: 0, sum: 10, }; $scope.memoryfilterData = { idx: 0, sum: 10, }; $scope.fileData = { idx: 0, sum: 10, maintenance: {}, }; $scope.ldloading = {}; $scope.listData = []; $scope.refreshData = function (style, filterData) { $scope.selected.items = {}; $scope.ldloading[style.replace("-", "_")] = true; if (angular.isUndefined(filterData)) { filterData = defaultFilterData; } $scope.myData = []; $scope.selected = { items: [] }; if ($scope.gridApi) { $scope.gridApi.grid.selection.selectedCount = 0; } api_user_data.fetchDataList("maintenance", filterData).then( function (data) { 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; // var diffDay = moment($scope.myData[i].endTime).diff(moment(), 'days'); // var diffHour = moment($scope.myData[i].endTime).diff(moment(), 'hours'); // if(diffDay > 0 || (diffDay == 0 && diffHour > 0)){ // $scope.myData[i]["countdown"] = diffDay; // } } $scope.ldloading[style.replace("-", "_")] = false; }, function () { $scope.ldloading[style.replace("-", "_")] = false; } ); }; $scope.refreshData2 = function (style, filterData) { $scope.selected.items = {}; $scope.ldloading[style.replace("-", "_")] = true; if (angular.isUndefined(filterData)) { filterData = defaultFilterData; } // $scope.myData = []; $scope.selected = { items: [] }; if ($scope.gridApi) { $scope.gridApi.grid.selection.selectedCount = 0; } api_user_data.fetchDataList("maintenance", filterData).then( function (data) { 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; // var diffDay = moment($scope.myData[i].endTime).diff(moment(), 'days'); // var diffHour = moment($scope.myData[i].endTime).diff(moment(), 'hours'); // if(diffDay > 0 || (diffDay == 0 && diffHour > 0)){ // $scope.myData[i]["countdown"] = diffDay; // } } $scope.ldloading[style.replace("-", "_")] = false; }, function () { $scope.ldloading[style.replace("-", "_")] = false; } ); }; // 搜索 $scope.searchData = function () { $scope.refreshData("expand-right", $scope.fileData); }; // 清空 $scope.clean = function () { delete $scope.fileData.branch.dept; delete $scope.fileData.branch.address; delete $scope.fileData.branch.phone; delete $scope.fileData.branch.parent; delete $scope.fileData.branch.area; delete $scope.fileData.branch.place; $scope.refreshData("expand-right", $scope.fileData); }; // 获取单位下拉 $scope.model = {}; $scope.deptData = {}; // $scope.getDeptData=function(){ // var data={ // "idx":0, // "sum":1000 // } // api_user_data.fetchDataList('branch',data).then(function(res){ // $scope.deptData=res.list; // // console.log($scope.deptData) // }) // } // $scope.getDeptData(); $scope.refreshData("expand-right", $scope.fileData); $scope.timer = $interval(function () { $scope.refreshData2("expand-right", $scope.fileData); }, $rootScope.refreshTime); $scope.$on("$destroy", function () { $interval.cancel($scope.timer); }); }, ]);