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 = [];
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 = {};
});
$scope.$on('$ionicView.beforeLeave', function (e) {
if (Member.emit.is_have)
$scope.$emit(Member.emit.name);
});
})
.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: '