// 'use strict';
/**
* controller for User Profile Example
*/
app.controller('adminUserListCtrl_requ', ["$rootScope", "$scope", "$http", "$state", "FileUploader", "$timeout", "$interval", "$modal", "SweetAlert", "i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_user_data", function($rootScope, $scope, $http, $state, FileUploader, $timeout, $interval, $modal, SweetAlert, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular, api_user_data) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = 'zh-cn';
i18nService.setCurrentLang($scope.lang);
var loginUser = $rootScope.user;
//$scope.allright=false;
//$scope.allrightnot=true;
$scope.gridOptions = {};
$scope.gridOptions.data = 'myData';
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = true;
$scope.gridOptions.enableGridMenu = false;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = false;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.fastWatch = true;
$scope.gridOptions.useExternalFiltering = true;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10];
$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.transferRole = function(roles) {
var tempValue = "";
angular.forEach(roles, function(item) {
if (tempValue != "") {
tempValue = tempValue + "/";
}
tempValue = tempValue + item.role;
})
return tempValue;
}
//remote data
$scope.gridOptions.columnDefs = [{
name: 'item',
displayName: '序号',
width: 50,
enableFiltering: false,
cellTemplate: '' +
'
{{row.entity.item}}
' +
'
'
},
{ name: 'name', displayName: '姓名', width: '10%', enableFiltering: false },
// { name: 'studentNo', displayName: '学号', width: 120 },
{ name: 'account', displayName: '学工号', width: '15%', enableFiltering: false },
{ name: 'dept.dept', displayName: '部门', width: '15%', enableFiltering: false },
{ name: 'mphone', displayName: '电话', width: '15%', enableFiltering: false },
// { name: 'areaDTO.area', displayName: '区域', width: '12%', enableFiltering: false },
// { name: 'placeDTO.place', displayName: '地点', width: '12%', enableFiltering: false },
{
name: '编辑',
cellTemplate: '',
enableFiltering: false
}
];
//导入
$scope.importopen = function() { //导入触发事件
var modalInstance = $modal.open({
templateUrl: 'assets/views/import.html',
controller: function($scope, $modalInstance, FileUploader) {
var importUploader = $scope.importUploader = new FileUploader({
url: api_user_data.jry_importData().getRequestedUrl(),
});
// importUploader.filters.push({
// name: 'customFilter',
// fn: function(item /*{File|FileLikeObject}*/ , options) {
// var type = item.name.slice(item.name.lastIndexOf('.') + 1);
// //var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';
// return (type == 'xlsx');
// }
// });
importUploader.filters.push({
name: 'customFilter',
fn: function(item /*{File|FileLikeObject}*/ , options) {
this.queue = [];
return this.queue.length < 2;
}
});
importUploader.onWhenAddingFileFailed = function(item /*{File|FileLikeObject}*/ , filter, options) {
console.info('onWhenAddingFileFailed', item, filter, options);
};
importUploader.onAfterAddingFile = function(fileItem) {
console.info('onAfterAddingFile', fileItem);
};
importUploader.onAfterAddingAll = function(addedFileItems) {
console.info('onAfterAddingAll', addedFileItems);
};
importUploader.onProgressItem = function(fileItem, progress) {
console.info('onProgressItem', fileItem, progress);
};
importUploader.onProgressAll = function(progress) {
console.info('onProgressAll', progress);
};
importUploader.onSuccessItem = function(fileItem, response, status, headers) {
if (response.status == 200) {
SweetAlert.swal({
title: "导入成功!",
confirmButtonColor: "#007AFF",
type: "success"
}, function() {
// $scope.ldloading.contract_overlay = false;
$rootScope.isMask = false;
$scope.refreshData('expand-right', defaultFilterData);
});
} else {
// $scope.ldloading.contract_overlay = false;
$rootScope.isMask = false;
SweetAlert.swal({
title: "导入失败!",
text: response.error,
type: "error"
})
}
console.info('onSuccessItem', fileItem, response, status, headers);
};
importUploader.onErrorItem = function(fileItem, response, status, headers) {
console.info('onErrorItem', fileItem, response, status, headers);
SweetAlert.swal({
title: "系统错误!",
text: "系统错误,请稍候重试!",
type: "error"
});
};
importUploader.onCancelItem = function(fileItem, response, status, headers) {
console.info('onCancelItem', fileItem, response, status, headers);
};
importUploader.onCompleteItem = function(fileItem, response, status, headers) {
console.info('onCompleteItem', fileItem, response, status, headers);
};
importUploader.onCompleteAll = function() {
console.info('onCompleteAll');
};
$scope.ldloading = {};
$rootScope.isMask = false;
$scope.import = function(style) {
// $scope.ldloading[style.replace('-', '_')] = true;
$modalInstance.dismiss('cancel');
$rootScope.isMask = true;
importUploader.onBeforeUploadItem = function(item) {
angular.extend(item.headers, $rootScope.getSession());
// item.formData[0]['filename'] = item.file.name;
// item.formData[0]['type'] = "requester";
item.formData.push({ 'fileName': item.file.name });
item.formData.push({ 'type': "requester" });
console.info('onBeforeUploadItem', item);
};
importUploader.uploadAll();
}
$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
},
size: 'sm',
resolve: {
importUploader: function() {
return $scope.importUploader;
}
}
});
modalInstance.result.then(function(selectedItem) {
if (selectedItem) {}
})
}
//导出
$scope.openmodel = function() {
var modalInstance = $modal.open({
templateUrl: 'assets/views/system/tpl/getdown.html',
controller: function($scope, $modalInstance) {
$scope.key = {};
$scope.title = '报修人导入模版下载';
$scope.lable = '下载模版版本';
$scope.onChange = function(key) {
$scope.key = key;
}
$scope.downmodel = [{ id: 1, name: "EXCEL2003版(xls)" }, { id: 2, name: "EXCEL2007及以上版(xlsx)" }]
$scope.ok = function() {
$modalInstance.close($scope.key);
};
$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
},
size: 'sm',
});
modalInstance.result.then(function(selectedItem) {
if (selectedItem) {
var selectedItemId = "";
if (selectedItem.id == 2) {
selectedItemId = ".xlsx";
}
var type = "requester";
var month = 0;
$http({
url: api_user_data.downDataModel(type, month).getRequestedUrl(),
method: 'GET',
headers: {
'Accept': '*/*'
},
responseType: 'arraybuffer'
}).success(function(data, status, headers, config) {
var file = new Blob([data], {
// type : 'application/octet-stream'
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 = "报修人" + selectedItemId;
document.body.appendChild(a);
a.click();
}).error(function(data, status, headers, config) {
console.log(data);
});
}
});
}
//修改
$scope.saveData = function(data) {
if(data.place){
var modelData = {
model: {
requester: {
"id": data.id,
"account": data.account,
"name": data.name,
"gender": data.gender,
"email": data.email,
"mphone": data.mphone,
"deptName": data.deptName,
"telephone": data.telephone,
"dept": data.dept,
"area": data.place.area,
"place": data.place,
"studentNo": data.studentNo,
"houseNumber": data.houseNumber,
"requesterTypeDTO": data.requesterTypeDTO
}
}
};
}else{
var modelData = {
model: {
requester: {
"id": data.id,
"account": data.account,
"name": data.name,
"gender": data.gender,
"email": data.email,
"mphone": data.mphone,
"deptName": data.deptName,
"telephone": data.telephone,
"dept": data.dept,
// "area": data.place.area,
"place": data.place,
"studentNo": data.studentNo,
"houseNumber": data.houseNumber,
"requesterTypeDTO": data.requesterTypeDTO
}
}
};
}
$state.go('app.system.user.requester', { formKey: 'system_edit_requester', service: 'api_user_data', model: JSON.stringify(modelData) });
};
//新增
$scope.addData = function() {
$state.go('app.system.user.requester', { formKey: 'system_edit_requester', service: 'api_user_data' })
}
$scope.removeData = function() {
var modalInstance = $modal.open({
templateUrl: 'assets/views/delete.html',
controller: function($scope, scope, $modalInstance, api_bpm_data) {
var rmvList = [];
$scope.title = '报修人删除';
$scope.connect = '确定要删除此报修人?';
rmvList.push(scope.selected.items[0].id);
$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) {
api_user_data.rmvData('requester', selectedItem).then(function(response) {
if (response.data) {
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;
});
} else {
SweetAlert.swal({
title: "操作异常!",
text: "系统异常,请稍后重试,或者联系管理员!",
type: "error"
});
}
})
}
}
})
}
$scope.selected = {
items: []
}
$scope.editted = {
items: []
}
$scope.gridOptions.onRegisterApi = function(gridApi) {
$scope.gridApi = gridApi;
// gridApi.edit.on.afterCellEdit($scope,function(rowEntity, colDef, newValue, oldValue){
// console.log(rowEntity);
// });
gridApi.pagination.on.paginationChanged($scope, function(newPage, pageSize) {
var filtersData = $scope.memoryfilterData;
filtersData.idx = newPage - 1;
filtersData.sum = pageSize;
defaultFilterData = filtersData;
$scope.refreshData('expand-right', filtersData);
});
// gridApi.selection.on.rowSelectionChanged($scope, function(data) {
// data.grid.appScope.selected.items = data.entity
// });
gridApi.selection.on.rowSelectionChanged($scope, function(data) {
if (data.isSelected) {
data.grid.appScope.selected.items[0] = data.entity;
} else {
if (data.grid.appScope.selected.items[0].id == data.entity.id) {
data.grid.appScope.selected.items = [];
}
}
});
gridApi.core.on.filterChanged($scope, function() {
var grid = this.grid;
var filtersData = {
idx: 0,
sum: 10
};
angular.forEach(grid.columns, function(item) {
if (item.enableFiltering) {
if (angular.isDefined(item.filters[0].term) && item.filters[0].term != '') {
if (angular.isUndefined(filtersData['requester'])) {
filtersData['requester'] = {};
}
filtersData['requester'][item.field] = item.filters[0].term;
}
}
});
$scope.memoryfilterData = filtersData;
$scope.refreshData('expand-right', filtersData);
});
};
var defaultFilterData = {
"idx": 0,
"sum": 10
};
$scope.memoryfilterData = {
"idx": 0,
"sum": 10
}
$scope.ldloading = {};
$scope.refresh = function(style, filterData) {
$scope.selected = { items: [] };
if ($scope.gridApi) {
// $scope.gridApi.grid.options.paginationCurrentPage = 0;
$scope.gridApi.grid.selection.selectedCount = 0;
}
$scope.refreshData('expand-right', defaultFilterData);
}
$scope.refreshData = function(style, filterData) {
$scope.ldloading[style.replace('-', '_')] = true;
if (angular.isUndefined(filterData)) {
filterData = defaultFilterData;
}
if (angular.isDefined($scope.searchTypes)) {
filterData['searchType'] = $scope.searchTypes;
}
$scope.myData = [];
// if ($scope.gridApi) {
// $scope.gridApi.grid.options.paginationCurrentPage = 0;
// $scope.gridApi.grid.selection.selectedCount = 0;
// }
api_user_data.fetchDataList('requester', 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
}
$scope.ldloading[style.replace('-', '_')] = false;
}, function() {
$scope.ldloading[style.replace('-', '_')] = false;
});
};
$scope.refreshData('expand-right', defaultFilterData);
}]);