"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);
});
},
]);