'use strict';
app.controller('hc_consumablesCtrl', ["$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_cmdb", "api_cmdb2", "api_cmdb3", "api_cmdb4", 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_cmdb, api_cmdb2, api_cmdb3, api_cmdb4) {
$scope.ceshi = "耗材系统";
$scope.langs = i18nService.getAllLangs();
$scope.lang = 'zh-cn';
i18nService.setCurrentLang($scope.lang);
$scope.myData = [];
var loginUser = $rootScope.user;
// 监听编辑在库数量
$scope.$watch('hc_eject_inventoryNum', function(val, oldval) {
var zhengze = /^\w{0,5}$/;
if (!zhengze.exec(val)) {
$scope.hc_eject_inventoryNum = oldval;
}
});
// 监听下拉框搜索
$scope.$watch('select_val.search_data', function(val) {
if (val == undefined) {
$scope.wt_data_display = true;
} else if (val.name == '全部') {
wt_data = { consumable: {} };
$scope.wt_data_display = false;
if ($scope.fenye == undefined) {
$scope.fenye = 0
};
$scope.memoryfilterData = {
idx: $scope.fenye,
sum: 10
}
//获取列表数据
$scope.refreshData = function(style, filterData) {
// var data1={idx: 0, sum: 10};
var pdKey = "consumable";
$scope.myData = [];
api_cmdb3.fetchDataList(pdKey, filterData).then(function(data) {
// console.log(data.list);
if (data.list) {
var myData = Restangular.stripRestangular(data);
var list = [];
$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.refreshData('expand-right', $scope.memoryfilterData);
} else {
wt_data = { consumable: { "name": val.name } };
$scope.wt_data_display = false;
if ($scope.fenye == undefined) {
$scope.fenye = 0
};
$scope.memoryfilterData = {
idx: $scope.fenye,
sum: 10,
consumable: { "name": val.name }
}
//获取列表数据
$scope.refreshData = function(style, filterData) {
var pdKey = "consumable";
$scope.myData = [];
// $scope.gridOptions['sum'] = filterData.sum;
api_cmdb3.fetchDataList(pdKey, filterData).then(function(data) {
// console.log(data.list);
if (data.list) {
var myData = Restangular.stripRestangular(data);
var list = [];
$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.refreshData('expand-right', $scope.memoryfilterData);
}
})
$scope.new_data = function() {
$scope.myData = [];
$scope.refreshData('expand-right', $scope.memoryfilterData);
}
var pdKey = $state.current.pdKey;
$rootScope.hc_eject_big = false; //编辑弹出框
$rootScope.hc_eject_sma = false; //编辑弹出框
$rootScope.hc_toedit = "new_top";
// 关闭编辑弹出框
$scope.close = function() {
$rootScope.hc_eject_big = false; //编辑弹出框
$rootScope.hc_eject_sma = false; //编辑弹出框
$rootScope.hc_toedit = "new_top";
$scope.select_updata_name = {}; //编辑下拉框名称
$scope.select_updata_guige = {}; //编辑下拉框规格
$scope.select_updata_pinpai = {}; //编辑下拉框品牌
}
$scope.select_updata_name = {}; //编辑下拉框名称
$scope.select_updata_guige = {}; //编辑下拉框规格
$scope.select_updata_pinpai = {}; //编辑下拉框品牌
// 名称
$scope.$watch('hc_eject_name_caozuo', function(val) {
if (val != undefined) {
// console.log(val);
$scope.hc_eject_name = val;
}
})
// 下拉框名称
$scope.$watch('select_updata_name.updata_name', function(val) {
// console.log(val);
if (val == undefined) {
} else {
$scope.hc_eject_name = val.name;
// 耗材查询品牌
$scope.refreshDat_pinpai = function() {
var dat = {
"key": "pinpai",
parent: val.id
}
api_cmdb4.fetchDataList(dat).then(function(data) {
$scope.updata_pinpai = data;
});
}
$scope.refreshDat_pinpai();
// 耗材查询规格
$scope.refreshDat_guige = function() {
var dat = {
"key": "guige",
parent: val.id
}
api_cmdb4.fetchDataList(dat).then(function(data) {
$scope.updata_guige = data;
});
}
$scope.refreshDat_guige();
}
})
// 规格
$scope.$watch('hc_eject_specification_caozuo', function(val) {
$scope.hc_eject_specification = val;
})
// 下拉框规格
$scope.$watch('select_updata_guige.updata_guige', function(val) {
// console.log(val);
if (val == undefined) {
} else {
$scope.hc_eject_specification = val.name;
}
})
// 品牌
$scope.$watch('hc_eject_brandModel_caozuo', function(val) {
$scope.hc_eject_brandModel = val;
})
// 下拉框品牌
$scope.$watch('select_updata_pinpai.updata_pinpai', function(val) {
// console.log(val);
if (val == undefined) {
} else {
$scope.hc_eject_brandModel = val.name;
}
})
// 在库数量
$scope.$watch('hc_eject_inventoryNum_caozuo', function(val) {
$scope.hc_eject_inventoryNum = val;
})
// 入库数量
$scope.$watch('hc_eject_inventorySum_caozuo', function(val) {
$scope.hc_eject_inventorySum = val;
})
// 编辑保存按钮
$scope.preservation = function() {
if ($scope.add_virtualMachinesNum == '') {
SweetAlert.swal({
title: "保存失败",
text: "必填数据不能为空!",
type: "error"
});
} else {
var pdKey = "consumable";
var edit_data = {
"consumable": {
"name": $scope.hc_eject_name,
"brandModel": $scope.hc_eject_brandModel,
"specification": $scope.hc_eject_specification,
"inventoryNum": $scope.hc_eject_inventoryNum,
"inventorySum": $scope.hc_eject_inventorySum,
"id": $rootScope.hc_eject_id_caozuo
}
};
api_cmdb3.preservation(pdKey, edit_data).then(function(data) {
if (data.status == 200) {
$scope.refreshData = function(style, filterData) {
var pdKey = "consumable";
$scope.myData = [];
$scope.gridOptions['sum'] = filterData.sum;
api_cmdb3.fetchDataList(pdKey, filterData).then(function(data) {
// console.log(data.list);
if (data.list) {
var myData = Restangular.stripRestangular(data);
var list = [];
$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.refreshData('expand-right', defaultFilterData);
SweetAlert.swal({
title: "修改成功",
confirmButtonColor: "#007AFF",
type: "success"
});
$rootScope.hc_eject_big = false; //编辑弹出框
$rootScope.hc_eject_sma = false; //编辑弹出框
$rootScope.hc_toedit = "new_top";
$scope.select_updata_name = {}; //编辑下拉框名称
$scope.select_updata_guige = {}; //编辑下拉框规格
$scope.select_updata_pinpai = {}; //编辑下拉框品牌
}
})
}
}
$scope.gridOptions = {};
$scope.gridOptions.data = 'myData';
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableFiltering = false;
$scope.gridOptions.enableGridMenu = false;
$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 == 1) {
color = "icon iconfont icon-yiyuqi redfont";
} else if (item.colourInfo.id == 2) {
color = "iconfont icon-yuqixinxiu yellofont";
}
} else {
// color = "white";
}
return color;
}
$scope.transfertip = function(item) {
var tip = "正常";
if (item.colourInfo) {
if (item.colourInfo.id == 1) {
tip = "逾期";
} else if (item.colourInfo.id == 2) {
tip = "即将逾期";
}
} else {
// color = "white";
}
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;
}
// 双击查看
$scope.onDblClick=function(row){
$state.go('app.means.consumables_see', { idd: row.entity.id })
}
$scope.gridOptions.columnDefs = [{
name: 'item',
displayName: '序号',
width: 49,
cellTemplate: '' +
'
{{row.entity.item}}
' +
'
'
},
{
name: 'name',
displayName: '耗材分类',
width: 144,
cellTemplate: '' +
'
{{row.entity.name}}
' +
'
'
},
{
name: 'brandModel',
displayName: '品牌型号',
width: 250,
cellTemplate: '' +
'
{{row.entity.brandModel}}
' +
'
'
},
{
name: 'specification',
displayName: '规格',
width: 100,
cellTemplate: '' +
'
{{row.entity.specification}}
' +
'
'
},
{
name: 'inventoryNum',
displayName: '在库数量',
width: 150,
cellTemplate: '' +
'
{{row.entity.inventoryNum}}
' +
'
'
},
{
name: 'inventorySum',
displayName: '入库总数量',
width: 150,
cellTemplate: '' +
'
{{row.entity.inventorySum}}
' +
'
'
},
{
name: 'updateTime',
displayName: '最后更新时间',
width: 255,
cellTemplate: '' +
'
{{row.entity.updateTime}}
' +
'
'
},
{
name: '操作',
enableSorting: false,
width: 172,
cellTemplate: '',
enableFiltering: false
},
];
$scope.value = 10;
$scope.decrement = function() {
$scope.value = $scope.value - 1;
};
$scope.record = function() {
api_text.record($rootScope.takes).then(function(data) {
if (data.errno == 0) {
$scope.busy = false;
}
})
};
$scope.parameters = null;
$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.othcode = {};
var items = [];
$scope.selected = {
items: []
};
$scope.select_val = {}; //下拉框查询
//列表排序
$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) {
// index = 0;
} 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);
}
gridApi.pagination.on.paginationChanged($scope, function(newPage, pageSize) {
var filtersData = $scope.memoryfilterData;
$scope.fenye = newPage - 1;
filtersData.idx = newPage - 1;
filtersData.sum = pageSize;
$scope.refreshData('expand-right', filtersData);
});
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 == 'requester.name') {
filtersData['incident']['requester'] = {};
filtersData.incident.requester['accountName'] = 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);
});
};
var items = [];
//当前人是否分组
if ($rootScope.user.group) {
if ($rootScope.user.group.length == 0) {
SweetAlert.swal("访问失败!", "当前登录人未分配工作组,无权限访问,请添加工作组后重试。", "error");
} else {
$scope.memoryfilterData = defaultFilterData = {
"idx": 0,
"sum": mun
};
}
} else {
$scope.memoryfilterData = defaultFilterData = {
"idx": 0,
"sum": mun
};
}
var wt_data = {};
//导出
$scope.hc_export = function() {
if ($scope.wt_data_display == true) {
SweetAlert.swal({
title: "导出失败",
text: "请选择分类!",
type: "error"
});
} else {
var filadata = angular.copy($scope.memoryfilterData);
filadata.sum = 10000;
var wt_url = api_cmdb3.exportData("downDataModel/consumable/1", wt_data).getRequestedUrl()
$http({
url: wt_url,
method: 'POST',
data: JSON.stringify(wt_data),
headers: {
'Accept': '*/*'
},
responseType: 'arraybuffer'
}).success(function(data, status, headers, config) {
// $scope.ldloading.zoom_in = false;
var file = new Blob([data], {
type: 'application/vnd.ms-excel'
});
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);
});
}
};
if ($stateParams.model) {
if (JSON.parse($stateParams.model).searchType && JSON.parse($stateParams.model).searchType != null) {
$scope.searchTypes = JSON.parse($stateParams.model).searchType;
} else {
$scope.searchTypes = "todo";
}
} else {
$scope.searchTypes = "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)) {
defaultFilterData['searchType'] = $rootScope.search.incident;
$scope.searchTypes = $rootScope.search.incident;
}
if ($rootScope['cmdbs'] != 'incident') { $rootScope.idx = 1 }
if (angular.isDefined($rootScope.idx) && $rootScope.cmdbs != "false") {
$rootScope['cmdbs'] = 'incident';
defaultFilterData.idx = $rootScope.idx - 1;
} else { $rootScope.cmdbs = ""; }
$scope.ldloading = {};
//获取列表数据
var pdKey = "consumable";
$scope.refreshData = function(style, filterData) {
// var pdKey = "consumable";
$scope.myData = [];
$scope.gridOptions['sum'] = filterData.sum;
api_cmdb3.fetchDataList(pdKey, filterData).then(function(data) {
// console.log(data.list);
if (data.list) {
var myData = Restangular.stripRestangular(data);
var list = [];
$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.refreshDat_name = function() {
var dat = {
"key": "haocaifenlei"
}
api_cmdb4.fetchDataList(dat).then(function(data) {
$scope.search_data = data;
$scope.search_data.unshift({ 'name': '全部' });
});
};
// 耗材查询分类修改
$scope.refreshDat_name_updata = function() {
var dat = {
"key": "haocaifenlei"
}
api_cmdb4.fetchDataList(dat).then(function(data) {
$scope.updata_name = data;
});
};
$scope.refreshDat_name();
$scope.refreshDat_name_updata();
// $scope.refreshDat_pinpai();
// $scope.refreshDat_guige();
$scope.refreshData('expand-right', defaultFilterData);
}]);
//操作按钮权限控制
app.controller('hc_caozuoCtrl', ['$rootScope', '$http', '$scope', '$modal', '$state', function($rootScope, $http, $scope, $modal, $state) {
// 编辑按钮
$scope.edit = function() {
$rootScope.hc_eject_name_caozuo = $scope.item.name; //耗材名称
$rootScope.hc_eject_brandModel_caozuo = $scope.item.brandModel; //耗材品牌型号
$rootScope.hc_eject_specification_caozuo = $scope.item.specification; //耗材规格
$rootScope.hc_eject_inventoryNum_caozuo = $scope.item.inventoryNum; //耗材在库数量
$rootScope.hc_eject_inventorySum_caozuo = $scope.item.inventorySum; //耗材入库数量
$rootScope.hc_eject_id_caozuo = $scope.item.id; //耗材id
$rootScope.hc_eject_big = true; //编辑弹出框
$rootScope.hc_eject_sma = true; //编辑弹出框
$rootScope.hc_toedit = "new_after";
};
//查看按钮
$scope.see = function() {
// console.log($scope.item.id);
// idd=$scope.item.id;
$state.go('app.means.consumables_see', { idd: $scope.item.id })
}
}]);
//操作
app.directive('wtt', function() {
return {
restrict: 'E',
scope: {
item: '=',
colobject: '='
},
controller: 'hc_caozuoCtrl',
template: ''
};
});