enterprise.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. define([ 'angular', 'ui-bootstrap', 'ngResource' ], function(angular) {
  2. 'use strict';
  3. angular.module('common.query.enterprise', ['ui.bootstrap','ngResource']).factory('EnterpriseService', ['$modal', function($modal){
  4. return {
  5. open: function(filter) {
  6. var modalInstance = $modal.open({
  7. templateUrl : 'static/view/common/query/enterprise.html',
  8. controller : 'EnterpriseQueryCtrl',
  9. backdrop : "static",
  10. resolve : {
  11. filter : function() {
  12. return filter;
  13. }
  14. },
  15. windowClass : 'modal-large'
  16. });
  17. return modalInstance;
  18. }
  19. };
  20. }]).controller('EnterpriseQueryCtrl', ['$scope', '$modalInstance', '$http', 'ngTableParams', '$resource', function($scope, $modalInstance, $http, ngTableParams, $resource){
  21. var Enterprises = $resource('user/enterprises');
  22. var isNumber = function(n) {
  23. return !isNaN(parseFloat(n)) && isFinite(n);
  24. };
  25. var parseParams = function(requestParams) {
  26. // parse url params
  27. for (var key in requestParams) {
  28. if (key.indexOf('[') >= 0) {
  29. var params = key.split(/\[(.*)\]/), value = requestParams[key], lastKey = '';
  30. angular.forEach(params.reverse(), function(name) {
  31. if (name != '') {
  32. var v = value;
  33. value = {};
  34. value[lastKey = name] = isNumber(v) ? parseFloat(v) : v;
  35. }
  36. });
  37. requestParams[lastKey] = angular.extend(requestParams[lastKey] || {}, value[lastKey]);
  38. delete requestParams[key];
  39. } else {
  40. requestParams[key] = isNumber(requestParams[key]) ? parseFloat(requestParams[key]) : requestParams[key];
  41. }
  42. }
  43. return requestParams;
  44. };
  45. $scope.tableParams = new ngTableParams({
  46. page : 1, // show first page
  47. count : 10, // count per page
  48. sorting: {
  49. 'enName': 'asc'
  50. },
  51. filter: {
  52. enabled: 1
  53. }
  54. }, {
  55. total : 0,
  56. getData : function($defer, params) {
  57. var param = parseParams(params.url());
  58. Enterprises.get(param, function(page){
  59. if(page) {
  60. params.total(page.totalElements);
  61. $defer.resolve(page.content);
  62. }
  63. });
  64. }
  65. });
  66. $scope.checkboxes = {
  67. 'checked' : false,
  68. items : {},
  69. data: [],
  70. length : 0
  71. };
  72. var select = function(item) {
  73. var checked = false;
  74. angular.forEach($scope.checkboxes.data, function(d, i){
  75. if(d.uu == item.uu) {
  76. checked = true;return;
  77. }
  78. });
  79. !checked && $scope.checkboxes.data.push(angular.copy(item));
  80. };
  81. var deselect = function(item) {
  82. angular.forEach($scope.checkboxes.data, function(d, i) {
  83. if(d.uu == item.uu) {
  84. $scope.checkboxes.data.splice(i, 1);
  85. return;
  86. }
  87. });
  88. };
  89. var toggleSelection = function(item, values) {
  90. var checked = values[item.uu];
  91. if (checked) {
  92. select(item);
  93. } else {
  94. deselect(item);
  95. }
  96. };
  97. // watch for check all checkbox
  98. $scope.$watch('checkboxes.checked', function(value) {
  99. var i = 0;
  100. angular.forEach($scope.tableParams.data, function(item) {
  101. if (angular.isDefined(item.uu)) {
  102. $scope.checkboxes.items[item.uu] = value;
  103. i++;
  104. }
  105. });
  106. $scope.checkboxes.length = i;
  107. });
  108. // watch for data checkboxes
  109. $scope.$watch('checkboxes.items', function(values) {
  110. if (!$scope.tableParams.data) {
  111. return;
  112. }
  113. var checked = 0, unchecked = 0, total = $scope.tableParams.data.length;
  114. angular.forEach($scope.tableParams.data, function(item) {
  115. checked += ($scope.checkboxes.items[item.uu]) || 0;
  116. unchecked += (!$scope.checkboxes.items[item.uu]) || 0;
  117. toggleSelection(item, values);
  118. });
  119. if (total > 0 && (unchecked == 0 || checked == 0)) {
  120. $scope.checkboxes.checked = (checked == total);
  121. }
  122. $scope.checkboxes.length = checked;
  123. // grayed checkbox
  124. angular.element(document.getElementById("select_all_enterprise")).prop("indeterminate",
  125. (checked != 0 && unchecked != 0));
  126. }, true);
  127. // 关闭模态窗
  128. $scope.close = function() {
  129. $modalInstance.close();
  130. };
  131. // 移除已选择的企业
  132. $scope.deselect = function(index) {
  133. var item = $scope.checkboxes.data[index];
  134. if(item) {
  135. $scope.checkboxes.data.splice(index, 1);
  136. $scope.checkboxes.items[item.uu] = false;
  137. }
  138. };
  139. // 下一步
  140. $scope.next = function() {
  141. $modalInstance.close($scope.checkboxes.data);
  142. };
  143. }]).factory('Enterprise', ['$resource', function($resource){
  144. return $resource('basic/enterprise', {}, {
  145. getEnterpriseInfo : {
  146. url : 'basic/enterprise/:enuu/info',
  147. method : 'GET'
  148. },
  149. getEnterpriseDetailInfo : {
  150. url : 'basic/enterprise/:enuu/detailInfo',
  151. method : 'GET'
  152. },
  153. getEnterpriseAdminInfo : {
  154. url : 'basic/enterprise/:enuu/admin',
  155. method : 'GET'
  156. },
  157. getEnterPriseTelOrAdminTel: {
  158. url : 'basic/enterprise/:enuu/tels',
  159. method : 'GET'
  160. },
  161. getAllUsersByEnuu : {
  162. url : 'basic/user/enterprise/info',
  163. method : 'GET'
  164. },
  165. findUsersByKeyword : {
  166. url : 'basic/user/enterprise/keywordinfo',
  167. method : 'GET'
  168. },
  169. findUserByUserNameLikeAndEnUU: {
  170. url: 'basic/user/enterprise/username',
  171. method: 'GET'
  172. },
  173. saveUser : {
  174. url : 'basic/user',
  175. method : 'POST'
  176. },
  177. removeUser : {
  178. url : 'basic/user/:uu',
  179. method : 'DELETE'
  180. },
  181. updateUser : {
  182. url : 'basic/user/:uu',
  183. method : 'PUT'
  184. },
  185. updateEnterpriseInfo : {
  186. url : 'basic/enterprise/:enuu/updateInfo',
  187. method : 'POST'
  188. },
  189. //绑定界面的用户搜索
  190. searchUser: {
  191. url: 'basic/user/searchUser',
  192. method: 'GET'
  193. },
  194. //绑定用户到企业
  195. bindUserToMyEnterprise: {
  196. url: 'basic/user/bindUser',
  197. method: 'GET'
  198. },
  199. findApplyToMall: {
  200. url: 'basic/enterprise/findApplyToMall',
  201. method: 'GET'
  202. },
  203. auditApply: {
  204. url: 'basic/enterprise/auditApply',
  205. method: 'GET'
  206. },
  207. /**
  208. * 根据注册地址返回币别信息
  209. */
  210. getCurrencyByRegisterAddress : {
  211. url : 'basic/enterprise/currency',
  212. method : 'GET'
  213. },
  214. /**
  215. * 获取企业的店铺信息
  216. * @return
  217. */
  218. getStoreInfo : {
  219. url : 'basic/enterprise/store',
  220. method : 'GET'
  221. }
  222. });
  223. }]);
  224. });