starter.controller('SelectParentCtrl', function ($scope, $state, Member) { $scope.deptlst = []; $scope.emplst = []; $scope.index = 0; $scope.isUp = false; $scope.deptid = 1; $scope.titlename = Member.titlename; $scope.selectedemplst = Member.selectedemplst; $scope.disabled = Member.disabled; $scope.showall = Member.showall; $scope.showgroup = Member.showgroup; $scope.loading = true; $scope.leftbtn = [{ text: '取消', click: 'cancel' }, { text: '上一层', click: 'up' }]; }) .controller('SelectMemberCtrl', function ($scope, $state, $ionicHistory, $rootScope, $ionicModal, $timeout, $controller, Dept, Member) { var parentctrl = $controller('SelectParentCtrl', {$scope: $scope}); var showgroupmodel = $ionicModal.fromTemplateUrl('/templates/common/modal-selectgroup.html', { scope: $scope, animation: 'slide-in-right' }); var startdept = null; $rootScope.commons.goBackIsDisable = true; var beforeEnter = $scope.$on("$ionicView.beforeEnter", function () { if (Member.homerenderdata.length != 0) { $scope.loading = false; _.each(Member.homerenderdata, function (item) { $scope.deptlst.push(item); }); init_selected(Member.resourcemember); } else { Dept.getDep().then(function (data) { startdept = _.find(data, function (itemdept) { return itemdept.parent == null; //获取公司的顶层部门 }); getemp(startdept.id); data = _.filter(data, function (item) { return item.parent == startdept.id; }); $scope.deptlst = data; init_selected(Member.resourcemember); }, function (err) { alert(JSON.stringify(err)) }); } }); $scope.changeindex = function (index, dtid) { $scope.index = index; $scope.deptid = dtid; }; $scope.change = function (emp) { if (emp.selected) { $scope.selectedemplst.push(emp); Member.selectedemplst = $scope.selectedemplst; } else { $scope.selectedemplst = _.filter($scope.selectedemplst, function (e) { return e.user_id != parseInt(emp.user_id); }); Member.selectedemplst = $scope.selectedemplst; } setselectedcount(); }; $scope.up = function () { var dept = undefined; if (Member.homerenderdata.length > 0) { dept = _.find(Member.homerenderdata, function (item) { return item.id == parseInt($scope.deptid); }) } if (dept != undefined) { $scope.deptlst = $scope.deptlst.concat(Member.homerenderdata); $scope.emplst = []; $scope.index = 0; } else { dept = _.find(Dept.all(), function (d) { return d.id == parseInt($scope.deptid); }); getdept_emp(dept.parent); } }; $scope.cancel = function () { Member.selectedemplst = []; Member.dialogresult = 0; if (Member.cancelroutename != "") { $state.go(Member.cancelroutename, Member.cancelrouteparams); } else { $ionicHistory.goBack(); } }; var dep = {}; $scope.changedept = function (dept) { dep = dept; getdept_emp(dept.id); }; $scope.ok = function () { Member.dialogresult = 1; Member.all = 0; if (Member.routename != '') { $state.go(Member.routename, Member.routeparams); } else { $ionicHistory.goBack(); //todo:带参数跳转 } }; $scope.selectAll = function () { Member.all = 1; $state.go(Member.routename, Member.routeparams); }; $scope.back = function () { if ($rootScope.commons.modal != null) { $rootScope.commons.modal.hide(); } }; $scope.toselectgroup = function () { showgroupmodel.then(function (modal) { $rootScope.commons.modal = modal; $rootScope.commons.modal.show(); }); }; $scope.$on("$destroy", function () { $rootScope.commons.goBackIsDisable = false; Member.member = {}; }); function init_selected(data) { setdeptrighticon($scope.deptlst); Member.selectedemplst = []; if (!Member.disabled) { $scope.selectedemplst = $scope.selectedemplst.concat(data); Member.selectedemplst = $scope.selectedemplst; } setselectedcount(); } function getemp(id) { Dept.getEmp(id).then(function (data) { console.log(data); Member.member[id.toString()] = angular.copy(data); $scope.emplst = data; setitem(); $scope.loading = false; }); } function getdept_emp(did) { if (Member.member[did.toString()]) { set_member(did); } else { $scope.loading = true; Dept.getEmp(did).then(function (data) { Member.member[did.toString()] = angular.copy(data); set_member(did); $scope.loading = false; }, function (err) { $scope.loading = false; }); } } var set_member = function (did) { $scope.deptlst = Dept.getChildDept(did); setdeptrighticon($scope.deptlst); $scope.emplst = Member.member[did.toString()]; setitem(); $scope.deptid = did; $scope.index = (startdept && did == startdept.id) ? 0 : 1; }; function setselectedcount() { $scope.selectcount = $scope.selectedemplst.length > 0 ? "(" + $scope.selectedemplst.length + ")" : ""; } function setitem() { _.each($scope.emplst, function (e) { e.selected = false; e.disabled = false; e.depname = dep.depname; set_isenable(e, Member.resourcemember, true); set_isenable(e, Member.unenabledata, false); var e1 = _.find($scope.selectedemplst, {'user_id': e.user_id}); if (e1 != undefined) e.selected = true; }); } function set_isenable(e, data, op) { var p = _.find(data, {'user_id': e.user_id}); if (p != undefined) { e.disabled = e.selected = true; if (!Member.disabled && op) e.disabled = false; } } function setdeptrighticon(deptlst) { _.each(deptlst, function (d) { d.isShow = isShow(d); }) } function isShow(dept) { var childdepts = Dept.getChildDept(dept.id); return !(childdepts.length == 0); } }) .controller('SelectSingleMemberCtrl', function ($scope, $ionicHistory, $state, $controller, Dept, Member) { var parentctrl = $controller('SelectParentCtrl', {$scope: $scope}); var startdept = {}; $scope.init = function () { Dept.getDep().then(function (data) { startdept = _.find(data, function (itemdept) { return itemdept.parent == null; //获取公司的顶层部门 }); getemp(startdept.id); data = _.filter(data, function (item) { return item.parent == startdept.id; }); $scope.deptlst = data; setdeptrighticon($scope.deptlst); }); }; $scope.changeindex = function (index, dtid) { $scope.index = index; $scope.deptid = dtid; }; $scope.change = function (emp) { Member.dialogresult = 1; Member.selectedemplst.push(emp); if (Member.routename != '') { $state.go(Member.routename, Member.routeparams); } else { $ionicHistory.goBack(); //todo:带参数跳转 } }; $scope.up = function () { var dept = _.find(Dept.all(), function (d) { return d.id == parseInt($scope.deptid); }); getdept_emp(dept.parent); }; $scope.cancel = function () { Member.dialogresult = 0; Member.selectedemplst = []; $ionicHistory.goBack(); }; var dep = {}; $scope.changedept = function (dept) { dep = dept; getdept_emp(dept.id); }; $scope.deptdisplay = function () { return $scope.deptlst.length > 0; }; function getemp(deptid) { Dept.getEmp(deptid).then(function (data) { Member.member[deptid.toString()] = angular.copy(data); $scope.emplst = data; setitem(); $scope.loading = false; }); } function getdept_emp(did) { if (Member.member[did.toString()]) { set_member(did); } else { $scope.loading = true; Dept.getEmp(did).then(function (data) { Member.member[did.toString()] = angular.copy(data); set_member(did); $scope.loading = false; }); } } var set_member = function (did) { $scope.deptlst = Dept.getChildDept(did); setdeptrighticon($scope.deptlst); $scope.emplst = Member.member[did.toString()]; setitem(); $scope.deptid = did; $scope.index = (startdept && did == startdept.id) ? 0 : 1; }; function setitem() { _.each($scope.emplst, function (e) { e.selected = false; e.disabled = false; e.depname = dep.depname; _.each(Member.resourcemember, function (p) { if (p.user_id == parseInt(e.user_id)) { e.disabled = true; e.selected = true; if (!Member.disabled) e.disabled = false; } }); _.each($scope.selectedemplst, function (e1) { if (e1.user_id == e.user_id) e.selected = true; }); }); } function setdeptrighticon(deptlst) { _.each(deptlst, function (d) { d.isShow = isShow(d); }) } function isShow(dept) { return Dept.getChildDept(dept.id).length != 0; } $scope.$on("$destroy", function () { Member.member = {}; }); }) .controller('SelectDeptCtrl', function ($scope, $state, $ionicHistory, $timeout, $controller, Dept, Member) { var parentctrl = $controller('SelectParentCtrl', {$scope: $scope}); $scope.id = $state.params['id']; $scope.selecteddepts = Member.selecteddepts; $scope.selectdeptcount = ''; $scope.isallcheck = Member.isallcheck; $scope.flag = 0; $scope.isAll = false; var deptid = 1; var resourcedept = []; var startdept = null; $scope.isAllCheck = function () { Member.dialogresult = 1; $scope.isallcheck = !$scope.isallcheck; Member.isallcheck = $scope.isallcheck; if (Member.isallcheck) { Member.selecteddepts = []; if (Member.routename != '') { $state.go(Member.routename, Member.routeparams); } else { $ionicHistory.goBack(); //todo:带参数跳转 } } }; $scope.cancel = function () { Member.dialogresult = 0; Member.selecteddepts = []; $ionicHistory.goBack(); }; $scope.ok = function () { console.log($scope.selecteddepts.length); Member.dialogresult = 1; Member.all = 0; if (Member.routename != '') { $state.go(Member.routename, Member.routeparams); } else { $ionicHistory.goBack(); //todo:带参数跳转 } }; $scope.up = function () { if ($scope.index == 0 && Member.showall) { $scope.showall = true; } var dept = _.find(Dept.all(), function (d) { return d.id == parseInt(deptid); }); getChildDept(dept.parent); }; $scope.change = function (dept) { if (Member.isallcheck) { $scope.isallcheck = !$scope.isallcheck; Member.isallcheck = $scope.isallcheck; } if (dept.selected) { $scope.selecteddepts.push(dept); Member.selecteddepts = $scope.selecteddepts; } else { $scope.selecteddepts = _.filter($scope.selecteddepts, function (e) { return e.id != parseInt(dept.id); }); Member.selecteddepts = $scope.selecteddepts; } setselectedcount(); }; $scope.tochilddept = function (dept) { if ($scope.index == startdept.id) { $scope.showall = false; } getChildDept(dept.id); }; function setdept(data) { _.each(data, function (item) { item.selected = false; item.isdisabled = false; item.ishide = false; item.disableddesc = ''; item.isShow = isShow(item); if (Member.datatype == 3) { if (item.diarymobid != null && $state.params["id"] != item.diarymobid) { item.disableddesc = '(已设置)'; item.isdisabled = true; } } else if (Member.datatype == 4) { if (item.workatdsetid != null && $state.params["id"] != item.workatdsetid) { item.disableddesc = '(已设置)'; item.isdisabled = true; } } if (_.find(Member.resourcemember, function (rsc) { return rsc.id == item.id ? true : false })) { item.selected = true; } }); $scope.deptlst = data; } function getChildDept(did) { var childdepts = Dept.getChildDept(did); if (childdepts.length > 0) { deptid = did; if (did == startdept.id) { $scope.index = 0; } else { $scope.index = 1; } setdept(childdepts); } } function setselectedcount() { if (Member.selecteddepts.length > 0) { $scope.selectcount = "(" + Member.selecteddepts.length + ")"; } else { $scope.selectcount = ""; } } function isShow(dept) { var childdepts = Dept.getChildDept(dept.id); if (childdepts.length == 0) { return false; } else { return true; } } var beforeEnter = $scope.$on("$ionicView.beforeEnter", function () { $scope.loading = true; Dept.getDep().then(function (data) { startdept = _.find(data, function (itemdept) { return itemdept.parent == null; //获取公司的顶层部门 }); Member.selecteddepts = Member.resourcemember; $scope.selecteddepts = Member.selecteddepts; if (Member.datatype == 3) { _.each(data, function (item) { if (item.diarymobid != null) { $scope.flag++; } if (item.id == 1 && item.diarymobid != null) { $scope.isAll = true; } }) } else if (Member.datatype == 4) { _.each(data, function (item) { if (item.workatdsetid != null) { $scope.flag++; } if (item.id == 1 && item.workatdsetid != null) { $scope.isAll = true; } }) } if ($scope.id == -1) { if ($scope.flag == 1 && $scope.isAll) { $scope.showall = true; } else if ($scope.flag >= 1 && !$scope.isAll) { $scope.showall = false; } if ($scope.flag >= 1 && $scope.flag + 1 == data.length && !$scope.isAll) { $scope.isAll = true; } } else { if ($scope.flag == 1 && $scope.isAll) { $scope.showall = true; } else if ($scope.flag >= 1 && !$scope.isAll && Member.resourcemember.length == 0) { $scope.showall = true; } else if ($scope.flag >= 1 && !$scope.isAll && $scope.flag == Member.resourcemember.length) { $scope.showall = true; } else if ($scope.flag >= 1 && !$scope.isAll && $scope.flag != Member.resourcemember.length) { $scope.showall = false; } } var rst = _.filter(data, function (a) { return (a.level === 1); }); setdept(rst); if (!Member.disabled) { _.each(Member.resourcemember, function (m) { $scope.selecteddepts.push(m); }); Member.selecteddepts = $scope.selecteddepts; } setselectedcount(); }).finally(function () { $scope.loading = false; }); }); $scope.$on("$destroy", function () { beforeEnter = null; }) }) .controller('SelectSingleDeptCtrl', function ($scope, $state, $ionicHistory, $timeout, Dept, Member) { $scope.titlename = Member.titlename; var active_dept_id = 1; var startdept = null; $scope.leftbtn = [{ text: '取消', click: 'cancel' }, { text: '上一层', click: 'up' }]; var beforeEnter = $scope.$on("$ionicView.beforeEnter", function () { $scope.loading = true; Dept.getDep().then(function (data) { startdept = _.find(data, {'parent': null}); $scope.id = Member.resourcemember.length > 0 ? Member.resourcemember[0].id : null; getChildDept(startdept.id); }).finally(function () { $scope.loading = false; }); }); $scope.cancel = function () { Member.dialogresult = 0; Member.selecteddepts = []; $ionicHistory.goBack(); }; $scope.up = function () { getChildDept(_.find(Dept.all(), {'id': active_dept_id}).parent); }; $scope.change = function (dept) { Member.selecteddepts = []; if (dept.selected) { Member.selecteddepts.push(dept); Member.routename == "" ? $ionicHistory.goBack() : $state.go(Member.routename, Member.routeparams); } }; $scope.tochilddept = function (dept) { getChildDept(dept.id); }; $scope.is_showright = function (dept) { return Dept.getChildDept(dept.id).length > 0; }; function getChildDept(did) { var childdepts = Dept.getChildDept(did); if (childdepts.length > 0) { active_dept_id = did; $scope.index = did == startdept.id ? 0 : 1; var item = _.find(childdepts, {'id': $scope.id}); if (item != undefined) item.selected = item != undefined; $scope.deptlst = childdepts; } } $scope.$on("$destroy", function () { beforeEnter = null; }) }) .controller('TransferCtrl', function ($scope, $state, $stateParams, $ionicPopup, $ionicHistory, global, Member) { $scope.selectmember = function () { $scope.isremove = false; Member.resourcemember = []; Member.resourcemember.push({ id: global.user.usrid }); Member.routename = ''; Member.titlename = '选择联系人'; $state.go('selectmember'); }; $scope.goback = function () { $ionicHistory.goBack(); }; function selectMember() { if (Member.selectedemplst.length > 0) { $scope.memberlist.push(global.user.imusrid); _.each(Member.selectedemplst, function (item) { $scope.memberlist.push(item.im_usrid); }); Member.selectedemplst = []; if (window.cordovaLinker != undefined) { var discussion = { name: "讨论组", ids: [] }; discussion.ids = $scope.memberlist; window.cordovaLinker.discuss(discussion, function (s) { console.log(s); var confirmPopup = $ionicPopup.confirm({ title: '
转发至

', subTitle: discussion.name, okText: '是', cancelText: '否' }); confirmPopup.then(function (res) { if (res) { //:todo转发 } }); }, function (err) { console.error(err); }); } Member.resourcemember = []; } } var beforeEnter = $scope.$on("$ionicView.beforeEnter", function () { $scope.module = $stateParams.module; $scope.id = $stateParams.id; $scope.linkurl = '/tab/app/' + $scope.module + '/' + $scope.id; console.log($scope.linkurl); $scope.memberlist = []; $scope.popup = { isPopup: false }; selectMember(); }); $scope.$on("$destroy", function () { beforeEnter = null; }) })