m_salaryslipcolumn.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. (function ($app) {
  2. $app.module('ylmis').provider('$salarySlipColumn', function () {
  3. this.$get = function ($modal, $http, $filter) {
  4. var $salarySlipColumn = {
  5. selectedSalarySlipColumn: [],
  6. show: function (selectedDatas) {
  7. $app.forEach(this.salarySlipColumnList, function (x) {
  8. x.checked = false;
  9. });
  10. this.selectedSalarySlipColumn = selectedDatas;
  11. modal.$promise.then(modal.show);
  12. },
  13. salarySlipColumnList: [],
  14. salaryTypeGroupList: [],
  15. salaryTypeGroupRelationList: [],
  16. getSalarySlipColumn: function (id) {
  17. var salarySlipColumn = $filter('filter')(this.salarySlipColumnList, { SalaryTypeId: id });
  18. if (salarySlipColumn.length > 0) {
  19. return salarySlipColumn[0];
  20. }
  21. return null;
  22. }
  23. };
  24. var getSalarySlipColumnList = function () {
  25. $http({
  26. method: 'post',
  27. url: '../../api/administrasalary/Salaryslip/GetSlipColumnOrderList',
  28. data: {}
  29. }).then(function (result) {
  30. $salarySlipColumn.salarySlipColumnList = result.data.Data;
  31. }, function (resp) {
  32. });
  33. };
  34. var getSalaryTypeGroup = function () {
  35. $http({
  36. method: 'post', url: '../../api/systemsetting/dictionary/GetDicList', data: { code: 'SalaryTypeGroup' }
  37. }).then(function (result) {
  38. $salarySlipColumn.salaryTypeGroupList = result.data.Data;
  39. });
  40. }
  41. var getSalaryTypeGroupRelation = function () {
  42. $http({
  43. method: 'post',
  44. url: '../../api/administrasalary/Salaryslip/GetSalaryTypeGroupRelationList',
  45. data: {}
  46. }).then(function (result) {
  47. $salarySlipColumn.salaryTypeGroupRelationList = result.data.Data;
  48. }, function (resp) {
  49. });
  50. };
  51. getSalarySlipColumnList();
  52. getSalaryTypeGroup();
  53. getSalaryTypeGroupRelation();
  54. var ctrl = function ($scope) {
  55. $scope.title = '选择薪资项';
  56. $scope.salarySlipColumnList = $salarySlipColumn.salarySlipColumnList;
  57. $scope.salaryTypeGroupList = $salarySlipColumn.salaryTypeGroupList;
  58. $scope.salaryTypeGroupRelationList = $salarySlipColumn.salaryTypeGroupRelationList;
  59. $scope.selectAll = function (list, $event) {
  60. angular.forEach(list, function (val) {
  61. val.checked = $event.target.checked;
  62. });
  63. }
  64. $scope.selectSalaryType = function (dt, $event) {
  65. var relations = $filter('filter')($scope.salaryTypeGroupRelationList, function (x) { return x.SalaryTypeGroupId == dt.Value });
  66. var slipColumns = $filter('filter')($scope.salarySlipColumnList, function (x) {
  67. return $filter('filter')(relations, function (w) { return x.SalaryTypeId == w.SalaryTypeId; }).length > 0
  68. });
  69. angular.forEach(slipColumns, function (val) {
  70. val.checked = $event.target.checked;
  71. });
  72. }
  73. $app.forEach($salarySlipColumn.selectedSalarySlipColumn, function (val) {
  74. var salaryColumns = $filter('filter')($scope.salarySlipColumnList, { SalaryTypeId: val.SalaryTypeId });
  75. if (salaryColumns.length > 0) {
  76. salaryColumns[0].checked = true;
  77. }
  78. });
  79. $scope.salaryTypeSelected = function () {
  80. $salarySlipColumn.selectedSalarySlipColumn.length = 0;
  81. var dlist = $filter('filter')($scope.salarySlipColumnList, { checked: true });
  82. $app.forEach(dlist, function (val) {
  83. $salarySlipColumn.selectedSalarySlipColumn.push(val);
  84. });
  85. $scope.$hide();
  86. }
  87. };
  88. ctrl.$inject = ['$scope'];
  89. var modal = $modal({
  90. resolve: {
  91. load: ['$ocLazyLoad', function ($ocLazyLoad) {
  92. $ocLazyLoad.load(['home/employee_find.css?' + window.sysVersion]);
  93. }]
  94. },
  95. controller: ctrl,
  96. templateUrl: 'home/m_salaryslipcolumn.html',
  97. show: false,
  98. animation: 'am-fade-and-slide-top'
  99. });
  100. return $salarySlipColumn;
  101. }
  102. });
  103. })(angular);