"use strict"; angular.module('app.system').controller("orgCtrl", function($scope, $rootScope, $filter, $state, $stateParams, $uibModal, permissions, orgService, APP_CONFIG,WareHouseBasicInfoService) { // 获取列表数据 $scope.search = {orgName:""}; $scope.loadData = function() { orgService.getPageInfo(null,null,null,$scope.search.orgName).then(function(data){ $scope.orglist = data.list; // 构建组织等级 $scope.fillLevel($rootScope.orgInfo.parentId, 0); // 构建树表格 $scope.drawTable(); },function(data){ console.log(data); }); } $scope.loadData(); // 通过递归给组织赋等级 $scope.fillLevel = function(parentId, level) { angular.forEach($scope.orglist, function(item, index) { if (item.parentId == parentId) { item.level = level; $scope.fillLevel(item.orgId, level+1); } }) } // 生成表格树 $scope.drawTable = function() { $("#tb").bootstrapTable('destroy'); $('#tb').bootstrapTable({ data: $scope.orglist, //数据源,必须包含parentId属性 treeView: true, treeId: "orgId", treeField: "orgName", formatLoadingMessage: function () { return ""; }, columns: [{ field: 'orgId', }, { field: 'orgName', }, { formatter: function operateFormatter(value, row, index) { return $rootScope.dicData[row.orgClassId]; } }, { field: 'address', },{ field: 'chargePerson', },{ field: 'contact', },{ events: operateEvents, formatter: operateFormatter }] }) } // 为操作列按钮绑定事件 window.operateEvents = { 'click #add': function (e, value, row, index) { $state.go("app.system.org.edit", {parentId:row.orgId}); }, // 'click #addDepart': function (e, value, row, index) { // $scope.editDepartment(null, row.orgId); // }, 'click #edit': function (e, value, row, index) { if (row.orgClassId==5527) { $scope.editDepartment(row.orgId, row.parentId); } else { $state.go("app.system.org.edit", {orgId:row.orgId, parentId:row.parentId}); } }, 'click #delete': function (e, value, row, index) { if (!confirm("确定要删除吗?")) { return; } orgService.deleteOrg(row.orgId).then(function(data){ // 重新加载数据 $scope.loadData(); // 删除多余字段 delete row.level; WareHouseBasicInfoService.saveGrainpoint(row,'D').then(function(data) { }, function(data) { console.log(data); }); },function(data){ console.log(data); }); }, 'click #profile': function (e, value, row, index) { $state.go("app.system.org.profile", {orgId:row.orgId}); } }; // 操作列按钮 function operateFormatter(value, row, index) { var btns = []; if (row.orgClassId != 5527) { if (permissions.hasPermission(56)) { btns.push(' 下级组织'); } } // if (permissions.hasPermission(58)) { // btns.push(' 部门 '); // } if (permissions.hasPermission(183)) { btns.push(' 修改 '); } if (permissions.hasPermission(310)) { btns.push(' 删除 '); } if (row.orgClassId == 5318) { btns.push(' 粮库简介'); } return btns; } // 点击新增或者修改时弹出模态窗 $scope.editDepartment = function(orgId, parentId) { var uibModalInstance = $uibModal.open({ size:'md', templateUrl: 'app/system/views/department.html', controller: 'departmentCtrl', resolve: { orgId : orgId, parentId : parentId } }); uibModalInstance.result.then(function (result) { $scope.loadData(); // 关闭模态框时刷新页面数据 }, function (reason) { console.log(reason); }); } }); angular.module('app.system').controller("orgEditCtrl", function($scope, $rootScope, $state, $stateParams, $filter, orgService, enumService, FileUploader, APP_CONFIG,WareHouseBasicInfoService) { // 获取组织信息 $scope.loadOrg = function() { orgService.editOrg($stateParams.orgId).then(function(data) { $scope.orgInfo = {}; if ($stateParams.orgId == "") { $scope.orgInfo.parentId = $stateParams.parentId; //$scope.orgInfo.registDate = new Date(); $scope.orgInfo.infoRegist = $rootScope.userInfo.realName; $scope.orgInfo.depotProperty = "1"; } else { $scope.orgInfo = data; $scope.setArea($scope.orgInfo.areaCode); $scope.orgInfo.registDate = $filter('date')($scope.orgInfo.registDate, "yyyy-MM-dd"); $scope.orgInfo.completeDate = $filter('date')($scope.orgInfo.completeDate, "yyyy-MM-dd"); $scope.orgInfo.useDate = $filter('date')($scope.orgInfo.useDate, "yyyy-MM-dd"); $scope.orgInfo.depotProperty = $scope.orgInfo.depotProperty == null ? "1":$scope.orgInfo.depotProperty; } $scope.initBasic(319); }, function(data) { console.log(data); }); } // 获取行政区划数据 enumService.getAllChildren(1010).then(function(data) { $scope.areaMap = {}; angular.forEach(data, function(item, index) { $scope.areaMap[item.enumid] = item; }) $scope.loadOrg(); }, function(data) { console.log(data); }); //获取组织类型 $scope.initBasic = function (deviceTypeId) { enumService.findConditionEnum($scope.orgInfo.depotClass, deviceTypeId).then(function(data) { var data_new = $scope.data_add(data); $scope.grainAttributeTreeData = data_new; },function(data) { console.log(data); }); } $scope.data_add = function(data) { var e = []; if (data.length != 0) { //要插入的json对象串 var newObj = {"id":null,"name":"请选择","children":[]}; //将返回的json对象和要插入的json对象串转换为字符串格式 var f = angular.toJson(newObj); var b = angular.toJson(data); //把要插入的json对象串插入返回数据的最前面 var c = b.substring(0,1); var d = b.substring(1,b.length); e = c + f + "," + d; } //最后在转换为json对象返回去 return angular.fromJson(e); } $scope.validCode = function(){ var checkNumber = /^\d{3}$/; var val = $scope.orgInfo.orgCode; if(!checkNumber.test(val)){ $scope.orgInfo.orgCode = null; alert("请输入三位数字!"); } } // 提交表单 var validator = $("#org-form").validate(); // 自定义验证,验证数字 $.validator.addMethod("validNumber",function(value,element, params) { var checkNumber = /^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/; return this.optional(element)||(checkNumber.test(value)); },"请输入大于0的数字,最多两位小数!"); $.validator.addMethod("validInteger",function(value,element, params) { var checkNumber = /^\d*$/g; return this.optional(element)||(checkNumber.test(value)); },"请输入正确的正整数!"); $.validator.addMethod("isLong",function(value,element, params) { var checkNumber = /^(([1-9]\\d?)|(1[0-7]\\d))(\\.\\d{1,6})|180|0(\\.\\d{1,6})?$/; if(checkNumber.test(value)){ if(73.660000 <= parseFloat(value) && parseFloat(value) <= 135.050000){ return this.optional(element)|| true; }else{ return this.optional(element)|| false; } }else{ return this.optional(element)||(checkNumber.test(value)); } },"经度格式不正确或者范围在中国之外!"); $.validator.addMethod("isLa",function(value,element, params) { var checkNumber = /^(([1-8]\\d?)|([1-8]\\d))(\\.\\d{1,6})|90|0(\\.\\d{1,6})?$/; if(checkNumber.test(value)){ if(3.860000 <= parseFloat(value) && parseFloat(value) <= 53.550000){ return this.optional(element)|| true; }else{ return this.optional(element)|| false; } }else{ return this.optional(element)||(checkNumber.test(value)); } },"纬度格式不正确或者范围在中国之外!"); $.validator.addMethod("validPhone",function(value,element, params) { var checkNumber = /^((0\d{2,3}-\d{7,8})|(1\d{10}))$/; return this.optional(element)||(checkNumber.test(value)); },"手机号或座机号不正确!"); $.validator.addMethod("validCard",function(value,element, params) { 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)$/; return this.optional(element)||(checkNumber.test(value)); },"身份证号格式不正确!"); $.validator.addMethod("validEmail",function(value,element, params) { var checkNumber = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/; return this.optional(element)||(checkNumber.test(value)); },"邮箱格式不正确!"); $.validator.addMethod("validPost",function(value,element, params) { var checkNumber = /^[0-9][0-9]{5}$/; return this.optional(element)||(checkNumber.test(value)); },"邮政编码不正确!"); $.validator.addMethod("validWebsite",function(value,element, params) { var checkNumber = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/|www\.)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/; return this.optional(element)||(checkNumber.test(value)); },"网站地址不正确!"); $.validator.addMethod("validFax",function(value,element, params) { var checkNumber = /^(?:\d{3,4}-)?\d{7,8}(?:-\d{1,6})?$/; return this.optional(element)||(checkNumber.test(value)); },"传真号码不正确!"); $.validator.addMethod("validHouseAndWare",function(value,element, params) { var checkNumber = /^\d*$/g; if(!checkNumber.test(value)){ return this.optional(element); }else{ if($("input[name='houseNumber']").val() == "0" && $("input[name='tankNumber']").val() == "0"){ return this.optional(element); }else{ return this.optional(element) || true; } } },"请输入正整数且仓房数和油罐数不能同时为0!"); $.validator.addMethod("validLength",function(value,element, params) { var checkNumber = /^\w{18}$/g; return this.optional(element)||(checkNumber.test(value)); },"请输入18位有效编码!"); $scope.save = function() { if ($scope.orgInfo.orgClassId == "5318") { $scope.grainAttribute = angular.fromJson($scope.orgInfo.depotClass); if ($scope.grainAttribute == '' || $scope.grainAttribute == null || $scope.grainAttribute[0].id == null || $scope.grainAttribute.length == 0) { $("#grainAttribute-error").text("不能为空"); return; } else { $("#grainAttribute-error").text(""); } } if (validator.form()) { if($scope.orgInfo.depotClass != undefined && $scope.orgInfo.depotClass != "" && $scope.orgInfo.depotClass.length > 0){ $scope.orgInfo.depotClass = $scope.orgInfo.depotClass[0].id; } else { $scope.orgInfo.depotClass = null; } // 行政区划 $scope.getArea(); /**************时间插件无法通过$scope获取数据,重新赋值一下****************/ $scope.orgInfo.registDate = $("input[name='registDate']").val(); $scope.orgInfo.completeDate = $("input[name='completeDate']").val(); $scope.orgInfo.useDate = $("input[name='useDate']").val(); /**************时间插件无法通过$scope获取数据,重新赋值一下****************/ orgService.saveOrg($scope.orgInfo).then(function(data) { if (data.status == 'success') { alert("保存成功!"); // 定义新增或修改标记 var cOrU = ''; // 在发送推送数据之前根据orgId是否为空判断新增修改 if ($scope.orgInfo.orgId == null) { // 推送数据使用 (1) 新增返回主键orgId $scope.orgInfo.orgId = data.newOrgId; cOrU = 'I'; } else { cOrU = 'U'; } // 推送数据使用 (2) //省 if ($scope.province) { $scope.orgInfo.province = $rootScope.dicData[$scope.province]; } //市 if ($scope.city) { $scope.orgInfo.city = $rootScope.dicData[$scope.city]; } WareHouseBasicInfoService.saveGrainpoint($scope.orgInfo,cOrU).then(function(data) { }, function(data) { console.log(data); }); } // 跳转到列表页 $state.go("app.system.org", {parentId : $stateParams.parentId}); }, function(data) { console.log(data); }); } }; // 行政区划 $scope.getArea = function() { $scope.orgInfo.areaName = ""; if ($scope.province) { $scope.orgInfo.areaName += $rootScope.dicData[$scope.province]; $scope.orgInfo.areaCode = $scope.province; } if ($scope.city) { $scope.orgInfo.areaName += $rootScope.dicData[$scope.city]; $scope.orgInfo.areaCode = $scope.city; } if ($scope.county) { $scope.orgInfo.areaName += $rootScope.dicData[$scope.county]; $scope.orgInfo.areaCode = $scope.county; } $scope.orgInfo.levelCode = $scope.areaMap[$scope.orgInfo.areaCode].enumcode; } // 行政区划回显 $scope.setArea = function(areaCode) { var enumCode = $scope.areaMap[areaCode].enumcode; if(enumCode.length == 2){//只有省 var province = $scope.areaMap[areaCode]; $("#province").append(""); $scope.province = province.enumid; }else if(enumCode.length == 4){//只有省、市 var city = $scope.areaMap[areaCode]; var province = $scope.areaMap[city.parentid]; $("#city").append(""); $scope.city = city.enumid; $("#province").append(""); $scope.province = province.enumid; }else if(enumCode.length == 6){//省、市、县 var county = $scope.areaMap[areaCode]; var city = $scope.areaMap[county.parentid]; var province = $scope.areaMap[city.parentid]; $("#county").append(""); $scope.county = areaCode; $("#city").append(""); $scope.city = city.enumid; $("#province").append(""); $scope.province = province.enumid; } } // 文件上传实例 $scope.uploader = new FileUploader({ url : APP_CONFIG.basicUrl + '/fileUpload/uploadFile', autoUpload : true, // 将文件添加到队列后自动上传 formData : [{fileType:'image'}], // 与文件一起发送的数据 removeAfterUpload : true, // 从队列上传后删除文件 // 上传进度 onProgressItem : function(fileItem, progress) { console.info("正在上传:" + progress + "%"); }, // 回调函数,在一个文件上传成功后触发 onSuccessItem : function(fileItem, response, status, headers) { var nextDiv = document.activeElement.parentNode.nextSibling; $scope.orgInfo[nextDiv.name] = response; } }); }); angular.module('app.system').controller("departmentCtrl", function($scope, $rootScope, $uibModalInstance, orgService, parentId, orgId, APP_CONFIG) { // 获取组织信息 $scope.loadOrg = function() { orgService.editOrg(parentId).then(function(data) { $scope.unitInfo = data; }, function(data) { console.log(data); }); orgService.editOrg(orgId).then(function(data) { $scope.orgInfo = data; $scope.orgInfo.orgClassId = 5527; $scope.orgInfo.parentId = parentId; }, function(data) { console.log(data); }); } $scope.loadOrg(); // 提交表单 $scope.save = function() { var validator = $("#org-form").validate(); if (validator.form()) { // 行政区划 orgService.saveOrg($scope.orgInfo).then(function(data) { alert("保存成功!"); // 跳转到列表页 $scope.cancel(); }, function(data) { console.log(data); }); } } // 关闭模态窗口 $scope.cancel = function() { $uibModalInstance.close(); } })