(function ($app) { $app.module('ylmis').provider('$salarySlipColumn', function () { this.$get = function ($modal, $http, $filter) { var $salarySlipColumn = { selectedSalarySlipColumn: [], show: function (selectedDatas) { $app.forEach(this.salarySlipColumnList, function (x) { x.checked = false; }); this.selectedSalarySlipColumn = selectedDatas; modal.$promise.then(modal.show); }, salarySlipColumnList: [], salaryTypeGroupList: [], salaryTypeGroupRelationList: [], getSalarySlipColumn: function (id) { var salarySlipColumn = $filter('filter')(this.salarySlipColumnList, { SalaryTypeId: id }); if (salarySlipColumn.length > 0) { return salarySlipColumn[0]; } return null; } }; var getSalarySlipColumnList = function () { $http({ method: 'post', url: '../../api/administrasalary/Salaryslip/GetSlipColumnOrderList', data: {} }).then(function (result) { $salarySlipColumn.salarySlipColumnList = result.data.Data; }, function (resp) { }); }; var getSalaryTypeGroup = function () { $http({ method: 'post', url: '../../api/systemsetting/dictionary/GetDicList', data: { code: 'SalaryTypeGroup' } }).then(function (result) { $salarySlipColumn.salaryTypeGroupList = result.data.Data; }); } var getSalaryTypeGroupRelation = function () { $http({ method: 'post', url: '../../api/administrasalary/Salaryslip/GetSalaryTypeGroupRelationList', data: {} }).then(function (result) { $salarySlipColumn.salaryTypeGroupRelationList = result.data.Data; }, function (resp) { }); }; getSalarySlipColumnList(); getSalaryTypeGroup(); getSalaryTypeGroupRelation(); var ctrl = function ($scope) { $scope.title = '选择薪资项'; $scope.salarySlipColumnList = $salarySlipColumn.salarySlipColumnList; $scope.salaryTypeGroupList = $salarySlipColumn.salaryTypeGroupList; $scope.salaryTypeGroupRelationList = $salarySlipColumn.salaryTypeGroupRelationList; $scope.selectAll = function (list, $event) { angular.forEach(list, function (val) { val.checked = $event.target.checked; }); } $scope.selectSalaryType = function (dt, $event) { var relations = $filter('filter')($scope.salaryTypeGroupRelationList, function (x) { return x.SalaryTypeGroupId == dt.Value }); var slipColumns = $filter('filter')($scope.salarySlipColumnList, function (x) { return $filter('filter')(relations, function (w) { return x.SalaryTypeId == w.SalaryTypeId; }).length > 0 }); angular.forEach(slipColumns, function (val) { val.checked = $event.target.checked; }); } $app.forEach($salarySlipColumn.selectedSalarySlipColumn, function (val) { var salaryColumns = $filter('filter')($scope.salarySlipColumnList, { SalaryTypeId: val.SalaryTypeId }); if (salaryColumns.length > 0) { salaryColumns[0].checked = true; } }); $scope.salaryTypeSelected = function () { $salarySlipColumn.selectedSalarySlipColumn.length = 0; var dlist = $filter('filter')($scope.salarySlipColumnList, { checked: true }); $app.forEach(dlist, function (val) { $salarySlipColumn.selectedSalarySlipColumn.push(val); }); $scope.$hide(); } }; ctrl.$inject = ['$scope']; var modal = $modal({ resolve: { load: ['$ocLazyLoad', function ($ocLazyLoad) { $ocLazyLoad.load(['home/employee_find.css?' + window.sysVersion]); }] }, controller: ctrl, templateUrl: 'home/m_salaryslipcolumn.html', show: false, animation: 'am-fade-and-slide-top' }); return $salarySlipColumn; } }); })(angular);