'use strict';
/**
* controller for User Profile Example
*/
app.controller('noticeCtrl', ["$rootScope", "$scope", "$state", "$timeout", "$interval", "$modal", "SweetAlert", "i18nService", "uiGridConstants", "uiGridGroupingConstants", "Restangular", "api_user_data", "api_login", "api_configure_data", function ($rootScope, $scope, $state, $timeout, $interval, $modal, SweetAlert, i18nService, uiGridConstants, uiGridGroupingConstants, Restangular, api_user_data, api_login, api_configure_data) {
$scope.langs = i18nService.getAllLangs();
$scope.lang = 'zh-cn';
i18nService.setCurrentLang($scope.lang);
var loginUser = $rootScope.user;
$scope.xinzeng = false;
$scope.shanchu = false;
$scope.bianji = false;
$scope.fabu = false;
$scope.chehui = false;
for (var i = 0; i < loginUser.menu.length; i++) {
if (loginUser.menu[i].link == "gonggaoliebiao_xinzeng") {
$scope.xinzeng = true
}
if (loginUser.menu[i].link == "gonggaoliebiao_shanchu") {
$scope.shanchu = true
}
if (loginUser.menu[i].link == "gonggaoliebiao_bianji") {
$scope.bianji = true
}
if (loginUser.menu[i].link == "gonggaoliebiao_fabu") {
$scope.fabu = true
}
if (loginUser.menu[i].link == "gonggaoliebiao_chehui") {
$scope.chehui = 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 = true;
$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;
}
$scope.transferStatus = function (flag) {
return (flag == 0) ? "有效" : "无效";
}
$scope.transfergroup = function (group) {
var groupData = '';
angular.forEach(group, function (item) {
if (groupData == '') {
groupData = item.groupName;
} else {
groupData = groupData + "/" + item.groupName;
}
})
return groupData;
}
//remote data
$scope.gridOptions.columnDefs = [{
name: 'item',
displayName: '序号',
enableFiltering: false,
width: 50
},
{
name: 'title',
displayName: '标题',
width: '25%',
enableFiltering: false
},
{
name: 'createUser.name',
displayName: '创建人',
width: '8%',
enableFiltering: false
},
// { name: 'areaDTO.area', displayName: '区域', width: '8%', enableFiltering: false },
// { name: 'placeDTO.place', displayName: '地点', width: '8%', enableFiltering: false },
{
name: 'dept.dept',
displayName: '发布科室',
width: '10%',
enableFiltering: false
},
{
name: 'statusName',
displayName: '状态',
width: '10%',
enableFiltering: false
},
{
name: 'createTime',
displayName: '创建时间',
width: '16%',
enableFiltering: false,
cellTemplate: '' +
'
{{grid.appScope.transferTime(row.entity.createTime)}}
' +
'
'
},
// { name: 'content', displayName: '内容', enableFiltering: false }
// '' , width:100, enableFiltering:false}
{
name: '操作',
enableFiltering: false,
minWidth: "300",
cellTemplate: '' +
'
编辑' +
'
删除' +
'
查看' +
'
发布' +
'
撤回' +
'
'
},
];
$scope.transferTime = function(time) {
return moment(time).format('YYYY-MM-DD HH:mm');
}
// 查看显示隐藏
$scope.showChehui = function (data) {
if (data.statusName == "已发布") {
return true
} else {
return false
}
}
// 发布显示隐藏
$scope.showFabu = function (data) {
if (data.statusName == "暂存" || data.statusName == "已撤销") {
return true
} else {
return false
}
}
// // 查看显示隐藏
// $scope.showChakan=function(data){
// if(data.statusName=="已发布"){
// return true
// }else{
// return false
// }
// }
// 删除显示隐藏
$scope.showShanchu = function (data) {
if (data.statusName == "暂存" || data.statusName == "已撤销") {
return true
} else {
return false
}
}
// 编辑显示隐藏
$scope.showBianji = function (data) {
if (data.statusName == "暂存" || data.statusName == "已撤销") {
return true
} else {
return false
}
}
//区域地点过滤
$scope.key = {};
api_user_data.fetchDataList('area', {
"idx": 0,
"sum": 1000
}).then(function (response) {
if (response) {
if (response.status = 200) {
$scope.outarea = response.list;
}
}
})
$scope.onChangearea = function (data) {
delete $scope.key.place;
if ($scope.memoryfilterData.incident) {
delete $scope.memoryfilterData.incident.place;
}
var fildata = {
"idx": 0,
"sum": 1000,
"place": {
areaId: data.area.id
}
};
api_user_data.fetchDataList('place', fildata).then(function (response) {
if (response) {
if (response.status = 200) {
$scope.outplace = response.list;
}
}
})
};
$scope.open = function ($event) {
$event.preventDefault();
$event.stopPropagation();
$scope.opened = !$scope.opened;
};
$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.getCreateUser = function () {
api_configure_data.fetchDataList("user", {
"idx": 0,
"sum": 1000,
"user":{
"simple":true,
engineer: 1,
}
}).then(function (res) {
$scope.createUserData = res.list
})
}
$scope.getCreateUser()
//列表操作按钮-编辑
$scope.saveData = function (data) {
var modelData = {
model: {
notice: data
}
};
$state.go('app.system.form', {
formKey: 'noticeEdi',
service: 'api_user_data',
model: JSON.stringify(modelData),
'isNoticeEdit': "true"
});
};
//列表操作按钮-查看
// $scope.onDblClick = function(data) {
// var modelfile = { model: { notice: data } };
// $state.go('app.system.form_editor', { formKey: 'noticeDetail', service: 'api_user_data', model: JSON.stringify(modelfile) });
// };
$scope.seeData = function (data) {
var modelfile = {
model: {
notice: data
}
};
$state.go('app.system.form_editor', {
formKey: 'noticeDetail',
service: 'api_user_data',
model: JSON.stringify(modelfile)
});
};
//列表操作按钮-新增
$scope.addData = function () {
// console.log(loginUser)
var modelData = {
model: {
notice: {
dept: {
id: loginUser.dept.id
}
}
}
};
$state.go('app.system.form', {
formKey: 'noticeEditor',
service: 'api_user_data',
model: JSON.stringify(modelData)
});
}
// 发布
$scope.release = function (data) {
var modalInstance = $modal.open({
templateUrl: 'assets/views/delete.html',
controller: function ($scope, scope, $modalInstance, api_bpm_data) {
$scope.title = '公告发布';
$scope.connect = '确定要发布此公告?';
$scope.ok = function () {
$modalInstance.close(data);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
},
size: 'sm',
resolve: {
scope: function () {
return $scope;
}
}
});
modalInstance.result.then(function (selectedItem) {
if (selectedItem) {
// console.log(selectedItem);
selectedItem.status = 1;
delete selectedItem.item;
delete selectedItem.statusName;
api_user_data.updData('notice', {
"notice": 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.gridOptions.totalItems = $scope.gridOptions.totalItems - selectedItem.length;
$scope.refreshData('expand-right', $scope.jry_fileData);
});
} else {
SweetAlert.swal({
title: "操作异常!",
text: "系统异常,请稍后重试,或者联系管理员!",
type: "error"
});
}
})
}
})
}
$scope.minTime = "";
$scope.maxTime = "";
// 搜索
$scope.searchData = function () {
if ($scope.minTime) {
$scope.jry_fileData.notice.createTime = moment($scope.minTime).format("YYYY-MM-DD HH:mm:ss")
}
if ($scope.maxTime) {
$scope.jry_fileData.notice.endTime = moment($scope.maxTime).format("YYYY-MM-DD HH:mm:ss")
}
$scope.refreshData('expand-right', $scope.jry_fileData);
}
// 清空
$scope.clean = function () {
delete $scope.jry_fileData.notice.title;
delete $scope.jry_fileData.notice.createTime;
$scope.minTime = "";
delete $scope.jry_fileData.notice.endTime;
$scope.maxTime = "";
delete $scope.jry_fileData.notice.createUser;
$scope.refreshData('expand-right', $scope.jry_fileData);
}
// 撤回
$scope.withdraw = function (data) {
var modalInstance = $modal.open({
templateUrl: 'assets/views/delete.html',
controller: function ($scope, scope, $modalInstance, api_bpm_data) {
$scope.title = '公告撤回';
$scope.connect = '确定要撤回此公告?';
$scope.ok = function () {
$modalInstance.close(data);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
},
size: 'sm',
resolve: {
scope: function () {
return $scope;
}
}
});
modalInstance.result.then(function (selectedItem) {
if (selectedItem) {
// console.log(selectedItem);
selectedItem.status = 2;
delete selectedItem.item;
delete selectedItem.statusName;
api_user_data.updData('notice', {
"notice": 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.gridOptions.totalItems = $scope.gridOptions.totalItems - selectedItem.length;
$scope.refreshData('expand-right', $scope.jry_fileData);
});
} else {
SweetAlert.swal({
title: "操作异常!",
text: "系统异常,请稍后重试,或者联系管理员!",
type: "error"
});
}
})
}
})
}
// 删除
$scope.removeData = function (data) {
var modalInstance = $modal.open({
templateUrl: 'assets/views/delete.html',
controller: function ($scope, scope, $modalInstance, api_bpm_data) {
var rmvList = [];
$scope.title = '公告删除';
$scope.connect = '确定要删除此公告?';
// angular.forEach(scope.selected.items, function(item) {
// rmvList.push(item.id);
// });
rmvList.push(data.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('notice', 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;
$scope.refreshData('expand-right', $scope.jry_fileData);
});
} else {
SweetAlert.swal({
title: "操作异常!",
text: "系统异常,请稍后重试,或者联系管理员!",
type: "error"
});
}
})
}
}
})
}
$scope.selected = {
items: []
}
$scope.editted = {
items: []
}
$scope.jry_fileData = {
"idx": 0,
"sum": 10,
"notice": {}
}
$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;
$scope.jry_fileData.idx = newPage - 1;
filtersData.sum = pageSize;
$scope.jry_fileData.sum = pageSize;
defaultFilterData = filtersData;
$scope.refreshData('expand-right', $scope.jry_fileData);
});
// gridApi.selection.on.rowSelectionChanged($scope, function(scope) {
// console.log("ok");
// var j = 0;
// for (var i = 0; i <= scope.grid.appScope.selected.items.length; i++) {
// if (scope.grid.appScope.selected.items[i] == scope.entity) {
// j++;
// break;
// }
// }
// // console.log("j="+j)
// if (j == 1) {
// scope.grid.appScope.selected.items.splice(i, 1);
// } else {
// scope.grid.appScope.selected.items.push(scope.entity)
// }
// });
// gridApi.selection.on.rowSelectionChangedBatch($scope, function(rows) {
// var selectitem = [];
// selectitem = angular.copy($scope.selected.items);
// for (var j = 0; j < rows.length; j++) {
// if (rows[j].isSelected == true) {
// selectitem.push(rows[j].entity);
// } else {
// delete selectitem[j];
// // rows.splice(j, 1);
// }
// }
// $scope.selected.items = [];
// for (var i = 0; i < selectitem.length; i++) {
// if (selectitem[i]) {
// $scope.selected.items.push(selectitem[i]);
// }
// }
// });
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
// var filtersData = {
// idx: 0,
// sum: 10
// };
var filtersData = $scope.memoryfilterData;
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
if (angular.isDefined(item.filters[0].term) && item.filters[0].term != '') {
if (angular.isUndefined(filtersData['user'])) {
filtersData['notice'] = {};
// filtersData['user']['flag'] = -1;
filtersData['notice'][item.field] = item.filters[0].term;
} else {
// filtersData.user.flag = -1;
filtersData.notice[item.field] = item.filters[0].term;
}
// filtersData['user']['flag'] = -1;
// filtersData['user'][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 = [];
// filterData['flag'] = -1;
// console.log("filterData=" + JSON.stringify(filterData))
api_user_data.fetchDataList('notice', 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.myData[i]['createTime'] = $scope.myData[i]['createTime'].split('.')[0];
if ($scope.myData[i].status == 1) {
$scope.myData[i]["statusName"] = "已发布"
} else if ($scope.myData[i].status == 2) {
$scope.myData[i]["statusName"] = "已撤销"
} else if ($scope.myData[i].status == 3) {
$scope.myData[i]["statusName"] = "暂存"
}
}
$scope.ldloading[style.replace('-', '_')] = false;
// console.log("$scope.myData="+JSON.stringify($scope.myData))
}, function () {
$scope.ldloading[style.replace('-', '_')] = false;
});
};
//获取数据2
$scope.refreshData2 = function (style, filterData) {
$scope.ldloading[style.replace('-', '_')] = true;
if (angular.isUndefined(filterData)) {
filterData = defaultFilterData;
}
if (angular.isDefined($scope.searchTypes)) {
filterData['searchType'] = $scope.searchTypes;
}
// filterData['flag'] = -1;
// console.log("filterData=" + JSON.stringify(filterData))
api_user_data.fetchDataList('notice', 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.myData[i]['createTime'] = $scope.myData[i]['createTime'].split('.')[0];
if ($scope.myData[i].status == 1) {
$scope.myData[i]["statusName"] = "已发布"
} else if ($scope.myData[i].status == 2) {
$scope.myData[i]["statusName"] = "已撤销"
} else if ($scope.myData[i].status == 3) {
$scope.myData[i]["statusName"] = "暂存"
}
}
$scope.ldloading[style.replace('-', '_')] = false;
// console.log("$scope.myData="+JSON.stringify($scope.myData))
}, function () {
$scope.ldloading[style.replace('-', '_')] = false;
});
};
$scope.timer = $interval(function () {
$scope.refreshData2('expand-right', $scope.jry_fileData);
}, $rootScope.refreshTime);
$scope.$on('$destroy', function () {
$interval.cancel($scope.timer)
})
$scope.refreshData('expand-right', defaultFilterData);
}]);