"use strict";
/**
* controller for User Profile Example
*/
app.controller("inspectReportCtrl", [
"$rootScope",
"$scope",
"$state",
"$timeout",
"$interval",
"$modal",
"SweetAlert",
"i18nService",
"uiGridConstants",
"uiGridGroupingConstants",
"Restangular",
"api_bpm_schedule",
"api_bpm_data",
"api_bpm",
"api_wechatfile",
"api_configure_data",
"moment",
function (
$rootScope,
$scope,
$state,
$timeout,
$interval,
$modal,
SweetAlert,
i18nService,
uiGridConstants,
uiGridGroupingConstants,
Restangular,
api_bpm_schedule,
api_bpm_data,
api_bpm,
api_wechatfile,
api_configure_data,
moment
) {
$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.zantingzhixing = false;
// for (var i = 0; i < loginUser.menu.length; i++) {
// if (loginUser.menu[i].link == "xunjianjihua_xinzeng") {
// $scope.xinzeng = true
// }
// if (loginUser.menu[i].link == "xunjianjihua_shanchu") {
// $scope.shanchu = true
// }
// if (loginUser.menu[i].link == "xunjianjihua_bianji") {
// $scope.bianji = true
// }
// if (loginUser.menu[i].link == "xunjianjihua_zantingzhixing") {
// $scope.zantingzhixing = true
// }
// }
// 打印
$scope.print = function () {
console.log(Print);
Print("#print", {
padding:'5 5',
afterprint: () => {},
cancel: () => {},
});
// 保证打印正好铺满A4高度
let A4height = 297; // A4高度297mm
let ctxpage = document.querySelectorAll(".fm");
ctxpage.forEach((i, k) => {
let eachpage_mm = px2mm(i.clientHeight); // 单位px转mm
console.log(k + "页高度px:", i.clientHeight, "高度mm:", eachpage_mm);
//高度大于A4,则按比例缩小打印区域
if (eachpage_mm > A4height) {
let zoom = A4height / eachpage_mm;
console.log(k + "页zoom:", zoom);
i.style.zoom = zoom;
}
});
};
//获取计划主题和批次号,级联
$scope.titles = [];
$scope.batchNos = [];
$scope.isMask = true;
$scope.queryList = { title: "", batchNo: "" };
$scope.getInfo = function () {
var postData = {
idx: 0,
sum: 9999,
inspection: {},
};
api_bpm.fetchDataList("inspection", postData).then(function (result) {
if (result.status == 200) {
$scope.titles = result.list.map((v) => ({
id: v.id,
title: v.title,
batchNos: v.batchNos,
}));
$scope.batchNos = [];
}
});
};
$scope.getInfo();
//选择计划主题
$scope.changeTitle = function () {
console.log($scope.queryList.title);
$scope.queryList.batchNo = "";
if ($scope.queryList.title.batchNos) {
$scope.batchNos = $scope.queryList.title.batchNos.map((v) => ({
id: v,
name: v,
}));
}
};
//选择计划主题和批次号,确定
$scope.onClick = function () {
if (!$scope.queryList.title || !$scope.queryList.batchNo) {
SweetAlert.swal({
title: "数据为空",
text: "请填写必选项",
type: "warning",
});
return;
}
$scope.isMask = false;
console.log($scope.queryList)
$scope.fileData = {
idx: 0,
sum: 10,
batchNo: $scope.queryList.batchNo.name,
inspectionId: $scope.queryList.title.id
};
$scope.refreshData("expand-right", $scope.fileData);
};
// ------------------------------------------------------------------
var defaultFilterData = {
idx: 0,
sum: 10,
};
var inspectPlanParameter = {
idx: 0,
sum: 10,
operation: "",
status: "",
inspection: {
inspectionTypeDTO: {
id: "",
},
},
};
//本地存储
sessionStorage.inspectPlanParameter = JSON.stringify(inspectPlanParameter);
$scope.gridOptions = {};
$scope.gridOptions.data = "myData";
$scope.gridOptions.enableColumnResizing = true;
$scope.gridOptions.enableRowHeaderSelection = false;
$scope.gridOptions.enableFiltering = false;
$scope.gridOptions.enableGridMenu = true;
$scope.gridOptions.enableRowSelection = true;
$scope.gridOptions.showGridFooter = true;
$scope.gridOptions.rowHeight = 252;
$scope.gridOptions.showColumnFooter = false;
$scope.gridOptions.useExternalFiltering = false;
$scope.gridOptions.useExternalPagination = true;
$scope.gridOptions.paginationPageSizes = [10, 20, 50, 100];
$scope.gridOptions.paginationPageSize = 10;
$scope.gridOptions.multiSelect = true;
$scope.gridOptions.enableSelectionBatchEvent = true; //使用批量使用事件
//行鼠标悬浮变色功能
// $scope.gridOptions.rowTemplate = '
';
$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: "startTime",
displayName: "日期",
width: 168,
enableFiltering: true,
cellTemplate:
'{{row.entity.startTime | date:"yyyy-MM-dd HH:mm:ss"}}
',
},
{
name: "type",
displayName: "巡检范围",
width: "17%",
enableFiltering: false,
},
{
name: "inspectItem",
displayName: "巡检项",
width: "25%",
enableFiltering: false,
cellTemplate: `
{{item.name}}:{{item.value=="true"?"是":"否"}}
{{item.name}}:{{item.value=="true"?"正常":"异常"}}
`,
},
{
name: "pic",
displayName: "巡检图片",
width: "18%",
enableFiltering: false,
cellTemplate:
'',
},
// {
// name: "pic1",
// displayName: "巡检图片",
// width: "18%",
// enableFiltering: false,
// cellTemplate:
// '',
// },
{
name: "model.descriptionTextarea",
displayName: "整改意见",
width: "18%",
enableFiltering: false,
cellTemplate:
'{{row.entity.model.descriptionTextarea}}
',
},
{
name: "userName",
displayName: "巡检人",
width: "12%",
enableFiltering: false,
},
{
name: "address",
displayName: "地址",
width: "12%",
enableFiltering: false,
},
// {
// minWidth: "230",
// name: "操作",
// enableFiltering: false,
// cellTemplate:
// '' +
// // '
查看' +
// // '
编辑' +
// // '
执行中' +
// // '
暂停中' +
// "
",
// },
];
$scope.selected = {
items: [],
};
$scope.gridOptions.onRegisterApi = function (gridApi) {
//导入gridApi对象
$scope.gridApi = gridApi;
//分页选项
// gridApi.pagination.on.paginationChanged(
// $scope,
// function (newPage, pageSize) {
// var filterData = JSON.parse(sessionStorage.inspectPlanParameter);
// var filtersData = {};
// filtersData.idx = newPage - 1;
// filtersData.sum = pageSize;
// $scope.pageNum = $scope.gridApi.pagination.getPage() - 1;
// // console.log(pp);
// filterData.idx = $scope.pageNum;
// $scope.fileData.idx = newPage - 1;
// $scope.fileData.sum = pageSize;
// sessionStorage.inspectPlanParameter = JSON.stringify(filterData);
// $scope.refreshData("expand-right", $scope.fileData);
// }
// );
//跳转到查看列表
$scope.seePic = function (data, imageurl) {
console.log(data, imageurl);
var i = imageurl.lastIndexOf("/");
var title = imageurl.slice(i + 1).split(".")[0];
$modal.open({
backdrop: false,
templateUrl: "assets/views/customform/tpl/ui-showimage.html",
controller: function ($scope, scope, $modalInstance) {
$scope.title = title;
$scope.imageurl = imageurl;
$scope.cancel = function () {
$modalInstance.dismiss("cancel");
};
},
resolve: {
scope: function () {
return $scope;
},
},
});
};
//勾选行事件
gridApi.selection.on.rowSelectionChanged($scope, function (data) {
if (data.isSelected) {
$scope.selected.items.push(data.entity);
} else {
//objs:需要遍历的集合 data:遍历时当前的数据 index:遍历时当前索引
//array:需要遍历的集合,每次遍历时都会把objs原样的传一次。
//angular.forEach(objs, function(data,index,array)
angular.forEach(
$scope.selected.items,
function (ObjIndex, index, destObj) {
// console.log(ObjIndex);
// console.log(index);
// console.log(destObj);
if (ObjIndex.id == data.entity.id) {
destObj.splice(index, 1);
}
}
);
}
});
//批量全选
gridApi.selection.on.rowSelectionChangedBatch(
$scope,
function (rows, event) {
// if ($scope.selected.items.length != 0) {
// $scope.selected.items = [];
angular.forEach(rows, function (ObjIndex, index, destObj) {
if (ObjIndex.isSelected) {
$scope.selected.items.push(ObjIndex.entity);
} else {
$scope.selected.items = [];
// $scope.selected.items.splice(index, 1);
}
});
// } else {
// }
// $scope.mySelectedRows = $scope.gridApi.selection.getSelectedRows();
// if ($scope.selected.items.length == 0) {
// $scope.selected.items = $scope.mySelectedRows;
// } else if ($scope.mySelectedRows.length == 0) {
// for (var i = 0; i < $scope.selected.items.length; i++) {
// for (var j = 0; j < rows.length; j++) {
// if ($scope.selected.items[i].id == rows[j].entity.id) {
// $scope.selected.items.splice(i, 1);
// }
// }
// }
// } else {
// angular.forEach($scope.mySelectedRows, function(item) {
// $scope.selected.items.push(item);
// });
// }
}
);
//列过滤事件
gridApi.core.on.filterChanged($scope, function () {
var grid = this.grid;
var filterData = JSON.parse(sessionStorage.inspectPlanParameter);
angular.forEach(grid.columns, function (item) {
if (item.enableFiltering) {
if (
angular.isDefined(item.filters[0].term) &&
item.filters[0].term != ""
) {
if (angular.isUndefined(filterData["inspection"])) {
filterData["inspection"] = {};
}
filterData["inspection"]["title"] = item.filters[0].term;
}
}
});
sessionStorage.inspectPlanParameter = JSON.stringify(filterData);
$scope.refreshData("expand-right", filterData);
});
};
//数据刷新
$scope.refreshData = function (style, filterData) {
$scope.ldloading[style.replace("-", "_")] = true;
if (angular.isUndefined(filterData)) {
filterData = defaultFilterData;
}
$scope.myData = [];
api_bpm.report(filterData).then(
function (data) {
var myData = Restangular.stripRestangular(data);
$scope.gridOptions.totalItems = myData.totalNum;
if (angular.isArray(myData.data)) {
$scope.myData = myData.data;
for (var i = 0; i < $scope.myData.length; i++) {
$scope.myData[i]["item"] =
i + 1 + filterData.idx * filterData.sum;
}
for (var i = 0; i < $scope.myData.length; i++) {
//处理日期
$scope.myData[i].startTime = new Date($scope.myData[i].startTime);
// 处理图片
if ($scope.myData[i].filePath) {
$scope.myData[i].filePath = $scope.myData[i].filePath
.split(",")
.map((v) => imgBaseUrl + "/file" + v);
} else {
$scope.myData[i].filePath = [];
}
//巡检项cnm
$scope.myData[i].xj_items = $scope.myData[i].fields
.filter((v) => {
v.key = (v.key || "").toString();
return v.key.indexOf("sdCheckEnable") > -1;
})
.map((v) => ({
key: v.key,
name: v.templateOptions.label,
value: $scope.myData[i].model[v.key],
}));
}
console.log($scope.myData);
} else {
SweetAlert.swal({
title: "数据为空",
text: myData.data,
type: "warning",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
},
function () {
$scope.ldloading[style.replace("-", "_")] = false;
}
);
};
$scope.refreshData2 = function (style, filterData) {
$scope.ldloading[style.replace("-", "_")] = true;
if (angular.isUndefined(filterData)) {
filterData = defaultFilterData;
}
// $scope.myData = [];
api_bpm.report(filterData).then(
function (data) {
var myData = Restangular.stripRestangular(data);
$scope.gridOptions.totalItems = myData.totalNum;
if (angular.isArray(myData.list)) {
$scope.myData = myData.list;
for (var i = 0; i < $scope.myData.length; i++) {
$scope.myData[i]["item"] =
i + 1 + filterData.idx * filterData.sum;
}
for (var i = 0; i < $scope.myData.length; i++) {
if ($scope.myData[i].status == "正常") {
$scope.myData[i].style = "fa fa-play";
} else if ($scope.myData[i].status == "停止") {
$scope.myData[i].style = "fa fa-pause";
}
}
} else {
SweetAlert.swal({
title: "数据为空",
text: myData.data,
type: "warning",
});
}
$scope.ldloading[style.replace("-", "_")] = false;
},
function () {
$scope.ldloading[style.replace("-", "_")] = false;
}
);
};
$scope.ldloading = {};
// $scope.fileData = {
// idx: 0,
// sum: 10,
// inspection: {},
// };
// $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);
// });
},
]);