orgCtrl.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465
  1. "use strict";
  2. angular.module('app.system').controller("orgCtrl", function($scope, $rootScope, $filter, $state, $stateParams, $uibModal, permissions, orgService, APP_CONFIG,WareHouseBasicInfoService) {
  3. // 获取列表数据
  4. $scope.search = {orgName:""};
  5. $scope.loadData = function() {
  6. orgService.getPageInfo(null,null,null,$scope.search.orgName).then(function(data){
  7. $scope.orglist = data.list;
  8. // 构建组织等级
  9. $scope.fillLevel($rootScope.orgInfo.parentId, 0);
  10. // 构建树表格
  11. $scope.drawTable();
  12. },function(data){
  13. console.log(data);
  14. });
  15. }
  16. $scope.loadData();
  17. // 通过递归给组织赋等级
  18. $scope.fillLevel = function(parentId, level) {
  19. angular.forEach($scope.orglist, function(item, index) {
  20. if (item.parentId == parentId) {
  21. item.level = level;
  22. $scope.fillLevel(item.orgId, level+1);
  23. }
  24. })
  25. }
  26. // 生成表格树
  27. $scope.drawTable = function() {
  28. $("#tb").bootstrapTable('destroy');
  29. $('#tb').bootstrapTable({
  30. data: $scope.orglist, //数据源,必须包含parentId属性
  31. treeView: true,
  32. treeId: "orgId",
  33. treeField: "orgName",
  34. formatLoadingMessage: function () {
  35. return "";
  36. },
  37. columns: [{
  38. field: 'orgId',
  39. }, {
  40. field: 'orgName',
  41. }, {
  42. formatter: function operateFormatter(value, row, index) {
  43. return $rootScope.dicData[row.orgClassId];
  44. }
  45. }, {
  46. field: 'address',
  47. },{
  48. field: 'chargePerson',
  49. },{
  50. field: 'contact',
  51. },{
  52. events: operateEvents,
  53. formatter: operateFormatter
  54. }]
  55. })
  56. }
  57. // 为操作列按钮绑定事件
  58. window.operateEvents = {
  59. 'click #add': function (e, value, row, index) {
  60. $state.go("app.system.org.edit", {parentId:row.orgId});
  61. },
  62. // 'click #addDepart': function (e, value, row, index) {
  63. // $scope.editDepartment(null, row.orgId);
  64. // },
  65. 'click #edit': function (e, value, row, index) {
  66. if (row.orgClassId==5527) {
  67. $scope.editDepartment(row.orgId, row.parentId);
  68. } else {
  69. $state.go("app.system.org.edit", {orgId:row.orgId, parentId:row.parentId});
  70. }
  71. },
  72. 'click #delete': function (e, value, row, index) {
  73. if (!confirm("确定要删除吗?")) {
  74. return;
  75. }
  76. orgService.deleteOrg(row.orgId).then(function(data){
  77. // 重新加载数据
  78. $scope.loadData();
  79. // 删除多余字段
  80. delete row.level;
  81. WareHouseBasicInfoService.saveGrainpoint(row,'D').then(function(data) {
  82. }, function(data) {
  83. console.log(data);
  84. });
  85. },function(data){
  86. console.log(data);
  87. });
  88. },
  89. 'click #profile': function (e, value, row, index) {
  90. $state.go("app.system.org.profile", {orgId:row.orgId});
  91. }
  92. };
  93. // 操作列按钮
  94. function operateFormatter(value, row, index) {
  95. var btns = [];
  96. if (row.orgClassId != 5527) {
  97. if (permissions.hasPermission(56)) {
  98. btns.push('<a href="javascript:void(0)" id="add"><i class="fa fa-plus"></i> 下级组织</a>');
  99. }
  100. }
  101. // if (permissions.hasPermission(58)) {
  102. // btns.push('<a href="javascript:void(0)" id="addDepart"><i class="fa fa-plus"></i> 部门</a>&nbsp;');
  103. // }
  104. if (permissions.hasPermission(183)) {
  105. btns.push('<a href="javascript:void(0)" id="edit"><i class="fa fa-edit"></i> 修改</a>&nbsp;');
  106. }
  107. if (permissions.hasPermission(310)) {
  108. btns.push('<a href="javascript:void(0)" id="delete"><i class="fa fa-trash-o"></i> 删除</a>&nbsp;');
  109. }
  110. if (row.orgClassId == 5318) {
  111. btns.push('<a href="javascript:void(0)" id="profile"><i class="fa fa-file-image-o"></i> 粮库简介</a>');
  112. }
  113. return btns;
  114. }
  115. // 点击新增或者修改时弹出模态窗
  116. $scope.editDepartment = function(orgId, parentId) {
  117. var uibModalInstance = $uibModal.open({
  118. size:'md',
  119. templateUrl: 'app/system/views/department.html',
  120. controller: 'departmentCtrl',
  121. resolve: {
  122. orgId : orgId,
  123. parentId : parentId
  124. }
  125. });
  126. uibModalInstance.result.then(function (result) {
  127. $scope.loadData(); // 关闭模态框时刷新页面数据
  128. }, function (reason) {
  129. console.log(reason);
  130. });
  131. }
  132. });
  133. angular.module('app.system').controller("orgEditCtrl",
  134. function($scope, $rootScope, $state, $stateParams, $filter, orgService, enumService, FileUploader, APP_CONFIG,WareHouseBasicInfoService) {
  135. // 获取组织信息
  136. $scope.loadOrg = function() {
  137. orgService.editOrg($stateParams.orgId).then(function(data) {
  138. $scope.orgInfo = {};
  139. if ($stateParams.orgId == "") {
  140. $scope.orgInfo.parentId = $stateParams.parentId;
  141. //$scope.orgInfo.registDate = new Date();
  142. $scope.orgInfo.infoRegist = $rootScope.userInfo.realName;
  143. $scope.orgInfo.depotProperty = "1";
  144. } else {
  145. $scope.orgInfo = data;
  146. $scope.setArea($scope.orgInfo.areaCode);
  147. $scope.orgInfo.registDate = $filter('date')($scope.orgInfo.registDate, "yyyy-MM-dd");
  148. $scope.orgInfo.completeDate = $filter('date')($scope.orgInfo.completeDate, "yyyy-MM-dd");
  149. $scope.orgInfo.useDate = $filter('date')($scope.orgInfo.useDate, "yyyy-MM-dd");
  150. $scope.orgInfo.depotProperty = $scope.orgInfo.depotProperty == null ? "1":$scope.orgInfo.depotProperty;
  151. }
  152. $scope.initBasic(319);
  153. }, function(data) {
  154. console.log(data);
  155. });
  156. }
  157. // 获取行政区划数据
  158. enumService.getAllChildren(1010).then(function(data) {
  159. $scope.areaMap = {};
  160. angular.forEach(data, function(item, index) {
  161. $scope.areaMap[item.enumid] = item;
  162. })
  163. $scope.loadOrg();
  164. }, function(data) {
  165. console.log(data);
  166. });
  167. //获取组织类型
  168. $scope.initBasic = function (deviceTypeId) {
  169. enumService.findConditionEnum($scope.orgInfo.depotClass, deviceTypeId).then(function(data) {
  170. var data_new = $scope.data_add(data);
  171. $scope.grainAttributeTreeData = data_new;
  172. },function(data) {
  173. console.log(data);
  174. });
  175. }
  176. $scope.data_add = function(data) {
  177. var e = [];
  178. if (data.length != 0) {
  179. //要插入的json对象串
  180. var newObj = {"id":null,"name":"请选择","children":[]};
  181. //将返回的json对象和要插入的json对象串转换为字符串格式
  182. var f = angular.toJson(newObj);
  183. var b = angular.toJson(data);
  184. //把要插入的json对象串插入返回数据的最前面
  185. var c = b.substring(0,1);
  186. var d = b.substring(1,b.length);
  187. e = c + f + "," + d;
  188. }
  189. //最后在转换为json对象返回去
  190. return angular.fromJson(e);
  191. }
  192. $scope.validCode = function(){
  193. var checkNumber = /^\d{3}$/;
  194. var val = $scope.orgInfo.orgCode;
  195. if(!checkNumber.test(val)){
  196. $scope.orgInfo.orgCode = null;
  197. alert("请输入三位数字!");
  198. }
  199. }
  200. // 提交表单
  201. var validator = $("#org-form").validate();
  202. // 自定义验证,验证数字
  203. $.validator.addMethod("validNumber",function(value,element, params) {
  204. var checkNumber = /^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/;
  205. return this.optional(element)||(checkNumber.test(value));
  206. },"请输入大于0的数字,最多两位小数!");
  207. $.validator.addMethod("validInteger",function(value,element, params) {
  208. var checkNumber = /^\d*$/g;
  209. return this.optional(element)||(checkNumber.test(value));
  210. },"请输入正确的正整数!");
  211. $.validator.addMethod("isLong",function(value,element, params) {
  212. var checkNumber = /^(([1-9]\\d?)|(1[0-7]\\d))(\\.\\d{1,6})|180|0(\\.\\d{1,6})?$/;
  213. if(checkNumber.test(value)){
  214. if(73.660000 <= parseFloat(value) && parseFloat(value) <= 135.050000){
  215. return this.optional(element)|| true;
  216. }else{
  217. return this.optional(element)|| false;
  218. }
  219. }else{
  220. return this.optional(element)||(checkNumber.test(value));
  221. }
  222. },"经度格式不正确或者范围在中国之外!");
  223. $.validator.addMethod("isLa",function(value,element, params) {
  224. var checkNumber = /^(([1-8]\\d?)|([1-8]\\d))(\\.\\d{1,6})|90|0(\\.\\d{1,6})?$/;
  225. if(checkNumber.test(value)){
  226. if(3.860000 <= parseFloat(value) && parseFloat(value) <= 53.550000){
  227. return this.optional(element)|| true;
  228. }else{
  229. return this.optional(element)|| false;
  230. }
  231. }else{
  232. return this.optional(element)||(checkNumber.test(value));
  233. }
  234. },"纬度格式不正确或者范围在中国之外!");
  235. $.validator.addMethod("validPhone",function(value,element, params) {
  236. var checkNumber = /^((0\d{2,3}-\d{7,8})|(1\d{10}))$/;
  237. return this.optional(element)||(checkNumber.test(value));
  238. },"手机号或座机号不正确!");
  239. $.validator.addMethod("validCard",function(value,element, params) {
  240. var checkNumber = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
  241. return this.optional(element)||(checkNumber.test(value));
  242. },"身份证号格式不正确!");
  243. $.validator.addMethod("validEmail",function(value,element, params) {
  244. var checkNumber = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
  245. return this.optional(element)||(checkNumber.test(value));
  246. },"邮箱格式不正确!");
  247. $.validator.addMethod("validPost",function(value,element, params) {
  248. var checkNumber = /^[0-9][0-9]{5}$/;
  249. return this.optional(element)||(checkNumber.test(value));
  250. },"邮政编码不正确!");
  251. $.validator.addMethod("validWebsite",function(value,element, params) {
  252. var checkNumber = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/|www\.)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/;
  253. return this.optional(element)||(checkNumber.test(value));
  254. },"网站地址不正确!");
  255. $.validator.addMethod("validFax",function(value,element, params) {
  256. var checkNumber = /^(?:\d{3,4}-)?\d{7,8}(?:-\d{1,6})?$/;
  257. return this.optional(element)||(checkNumber.test(value));
  258. },"传真号码不正确!");
  259. $.validator.addMethod("validHouseAndWare",function(value,element, params) {
  260. var checkNumber = /^\d*$/g;
  261. if(!checkNumber.test(value)){
  262. return this.optional(element);
  263. }else{
  264. if($("input[name='houseNumber']").val() == "0" && $("input[name='tankNumber']").val() == "0"){
  265. return this.optional(element);
  266. }else{
  267. return this.optional(element) || true;
  268. }
  269. }
  270. },"请输入正整数且仓房数和油罐数不能同时为0!");
  271. $.validator.addMethod("validLength",function(value,element, params) {
  272. var checkNumber = /^\w{18}$/g;
  273. return this.optional(element)||(checkNumber.test(value));
  274. },"请输入18位有效编码!");
  275. $scope.save = function() {
  276. if ($scope.orgInfo.orgClassId == "5318") {
  277. $scope.grainAttribute = angular.fromJson($scope.orgInfo.depotClass);
  278. if ($scope.grainAttribute == '' || $scope.grainAttribute == null || $scope.grainAttribute[0].id == null || $scope.grainAttribute.length == 0) {
  279. $("#grainAttribute-error").text("不能为空");
  280. return;
  281. } else {
  282. $("#grainAttribute-error").text("");
  283. }
  284. }
  285. if (validator.form()) {
  286. if($scope.orgInfo.depotClass != undefined && $scope.orgInfo.depotClass != "" && $scope.orgInfo.depotClass.length > 0){
  287. $scope.orgInfo.depotClass = $scope.orgInfo.depotClass[0].id;
  288. } else {
  289. $scope.orgInfo.depotClass = null;
  290. }
  291. // 行政区划
  292. $scope.getArea();
  293. /**************时间插件无法通过$scope获取数据,重新赋值一下****************/
  294. $scope.orgInfo.registDate = $("input[name='registDate']").val();
  295. $scope.orgInfo.completeDate = $("input[name='completeDate']").val();
  296. $scope.orgInfo.useDate = $("input[name='useDate']").val();
  297. /**************时间插件无法通过$scope获取数据,重新赋值一下****************/
  298. orgService.saveOrg($scope.orgInfo).then(function(data) {
  299. if (data.status == 'success') {
  300. alert("保存成功!");
  301. // 定义新增或修改标记
  302. var cOrU = '';
  303. // 在发送推送数据之前根据orgId是否为空判断新增修改
  304. if ($scope.orgInfo.orgId == null) {
  305. // 推送数据使用 (1) 新增返回主键orgId
  306. $scope.orgInfo.orgId = data.newOrgId;
  307. cOrU = 'I';
  308. } else {
  309. cOrU = 'U';
  310. }
  311. // 推送数据使用 (2)
  312. //省
  313. if ($scope.province) {
  314. $scope.orgInfo.province = $rootScope.dicData[$scope.province];
  315. }
  316. //市
  317. if ($scope.city) {
  318. $scope.orgInfo.city = $rootScope.dicData[$scope.city];
  319. }
  320. WareHouseBasicInfoService.saveGrainpoint($scope.orgInfo,cOrU).then(function(data) {
  321. }, function(data) {
  322. console.log(data);
  323. });
  324. }
  325. // 跳转到列表页
  326. $state.go("app.system.org", {parentId : $stateParams.parentId});
  327. }, function(data) {
  328. console.log(data);
  329. });
  330. }
  331. };
  332. // 行政区划
  333. $scope.getArea = function() {
  334. $scope.orgInfo.areaName = "";
  335. if ($scope.province) {
  336. $scope.orgInfo.areaName += $rootScope.dicData[$scope.province];
  337. $scope.orgInfo.areaCode = $scope.province;
  338. }
  339. if ($scope.city) {
  340. $scope.orgInfo.areaName += $rootScope.dicData[$scope.city];
  341. $scope.orgInfo.areaCode = $scope.city;
  342. }
  343. if ($scope.county) {
  344. $scope.orgInfo.areaName += $rootScope.dicData[$scope.county];
  345. $scope.orgInfo.areaCode = $scope.county;
  346. }
  347. $scope.orgInfo.levelCode = $scope.areaMap[$scope.orgInfo.areaCode].enumcode;
  348. }
  349. // 行政区划回显
  350. $scope.setArea = function(areaCode) {
  351. var enumCode = $scope.areaMap[areaCode].enumcode;
  352. if(enumCode.length == 2){//只有省
  353. var province = $scope.areaMap[areaCode];
  354. $("#province").append("<option value='"+province.enumid+"'>"+province.enumname+"</option>");
  355. $scope.province = province.enumid;
  356. }else if(enumCode.length == 4){//只有省、市
  357. var city = $scope.areaMap[areaCode];
  358. var province = $scope.areaMap[city.parentid];
  359. $("#city").append("<option value='"+city.enumid+"'>"+city.enumname+"</option>");
  360. $scope.city = city.enumid;
  361. $("#province").append("<option value='"+province.enumid+"'>"+province.enumname+"</option>");
  362. $scope.province = province.enumid;
  363. }else if(enumCode.length == 6){//省、市、县
  364. var county = $scope.areaMap[areaCode];
  365. var city = $scope.areaMap[county.parentid];
  366. var province = $scope.areaMap[city.parentid];
  367. $("#county").append("<option value='"+areaCode+"'>"+county.enumname+"</option>");
  368. $scope.county = areaCode;
  369. $("#city").append("<option value='"+city.enumid+"'>"+city.enumname+"</option>");
  370. $scope.city = city.enumid;
  371. $("#province").append("<option value='"+province.enumid+"'>"+province.enumname+"</option>");
  372. $scope.province = province.enumid;
  373. }
  374. }
  375. // 文件上传实例
  376. $scope.uploader = new FileUploader({
  377. url : APP_CONFIG.basicUrl + '/fileUpload/uploadFile',
  378. autoUpload : true, // 将文件添加到队列后自动上传
  379. formData : [{fileType:'image'}], // 与文件一起发送的数据
  380. removeAfterUpload : true, // 从队列上传后删除文件
  381. // 上传进度
  382. onProgressItem : function(fileItem, progress) {
  383. console.info("正在上传:" + progress + "%");
  384. },
  385. // 回调函数,在一个文件上传成功后触发
  386. onSuccessItem : function(fileItem, response, status, headers) {
  387. var nextDiv = document.activeElement.parentNode.nextSibling;
  388. $scope.orgInfo[nextDiv.name] = response;
  389. }
  390. });
  391. });
  392. angular.module('app.system').controller("departmentCtrl",
  393. function($scope, $rootScope, $uibModalInstance, orgService, parentId, orgId, APP_CONFIG) {
  394. // 获取组织信息
  395. $scope.loadOrg = function() {
  396. orgService.editOrg(parentId).then(function(data) {
  397. $scope.unitInfo = data;
  398. }, function(data) {
  399. console.log(data);
  400. });
  401. orgService.editOrg(orgId).then(function(data) {
  402. $scope.orgInfo = data;
  403. $scope.orgInfo.orgClassId = 5527;
  404. $scope.orgInfo.parentId = parentId;
  405. }, function(data) {
  406. console.log(data);
  407. });
  408. }
  409. $scope.loadOrg();
  410. // 提交表单
  411. $scope.save = function() {
  412. var validator = $("#org-form").validate();
  413. if (validator.form()) {
  414. // 行政区划
  415. orgService.saveOrg($scope.orgInfo).then(function(data) {
  416. alert("保存成功!");
  417. // 跳转到列表页
  418. $scope.cancel();
  419. }, function(data) {
  420. console.log(data);
  421. });
  422. }
  423. }
  424. // 关闭模态窗口
  425. $scope.cancel = function() {
  426. $uibModalInstance.close();
  427. }
  428. })