app.controller('StdBaseInfoCtrl', function($rootScope, $scope, $http, $timeout, $state, myConfig, toaster, Upload) {
if(!$rootScope.stdExamNoticeConfirmed){
$rootScope.dialogMsg("请先确认诚信承诺书。", function(){});
$state.go('examNotice');
}
}).controller('StdBaseInfoBasicCtrl', function($rootScope, $scope, $http, $timeout, $state, myConfig, toaster, $q) {
$scope.load = function(){
$scope.myPromise = $http({
url : myConfig.url + '/acquire/baseInfo?session=' + $rootScope.session,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$rootScope.stdData = data.result;
// if($rootScope.stdData && $rootScope.stdData.exam_id){
// $rootScope.stdData.exam_id = $rootScope.stdData.exam_id.substr(2,12);
// }
}
}).error(function() {
});
$scope.provinces = $rootScope.provinceAll;
$scope.areas = $rootScope.areaAll;
$scope.cities = $rootScope.cityAll;
}
$scope.load();
$scope.submitForm = function(isValid) {
var card = document.getElementById('cert_id').value;
//是否为空
if(card === '')
{
// alert('请输入身份证号,身份证号不能为空');
document.getElementById('cert_id').focus();
document.getElementById('cert_id_info').innerHTML = '请输入身份证号,身份证号不能为空';
return false;
}
if(card == 'M856539(8)') {
}else{
//校验长度,类型
if(isCardNo(card) === false || checkProvince(card) === false || checkBirthday(card) === false || checkParity(card) === false ||checkParity(card) === false)
{
//alert('您输入的身份证号码不正确,请重新输入');
document.getElementById('cert_id').focus();
document.getElementById('cert_id_info').innerHTML = '您输入的身份证号码不正确,请重新输入';
return false;
}
}
$scope.submitted = true
// check to make sure the form is completely valid
if (isValid) {
// if($scope.stdData.exam_id.length == 12){
// $scope.stdData.exam_id = '20' + $scope.stdData.exam_id;
// }
$scope.myPromise = $http({
url : myConfig.url + '/acquire/baseInfo?session=' + $rootScope.session,
method : 'POST',
data : angular.toJson($scope.stdData)
}).success(function(data) {
if(data.code == 0){
toaster.pop('success', '保存成功');
// $scope.stdData.exam_id = $scope.stdData.exam_id.substr(2,12);
$scope.form.$setPristine();
}else{
toaster.pop('error', data.message);
}
}).error(function() {
$scope.load();
});
}
};
var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",
21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",
33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",
42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",
51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",
63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"
};
//检查号码是否符合规范,包括长度,类型
isCardNo = function(card)
{
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;
if(reg.test(card) === false)
{
return false;
}
return true;
};
//取身份证前两位,校验省份
checkProvince = function(card)
{
var province = card.substr(0,2);
if(vcity[province] == undefined)
{
return false;
}
return true;
};
//检查生日是否正确
checkBirthday = function(card)
{
var len = card.length;
//身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字
if(len == '15')
{
var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;
var arr_data = card.match(re_fifteen);
var year = arr_data[2];
var month = arr_data[3];
var day = arr_data[4];
var birthday = new Date('19'+year+'/'+month+'/'+day);
return verifyBirthday('19'+year,month,day,birthday);
}
//身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X
if(len == '18')
{
var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
var arr_data = card.match(re_eighteen);
var year = arr_data[2];
var month = arr_data[3];
var day = arr_data[4];
var birthday = new Date(year+'/'+month+'/'+day);
return verifyBirthday(year,month,day,birthday);
}
return false;
};
//校验日期
verifyBirthday = function(year,month,day,birthday)
{
var now = new Date();
var now_year = now.getFullYear();
//年月日是否合理
if(birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day)
{
//判断年份的范围(3岁到100岁之间)
var time = now_year - year;
if(time >= 3 && time <= 100)
{
return true;
}
return false;
}
return false;
};
//校验位的检测
checkParity = function(card)
{
//15位转18位
card = changeFivteenToEighteen(card);
var len = card.length;
if(len == '18')
{
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var cardTemp = 0, i, valnum;
for(i = 0; i < 17; i ++)
{
cardTemp += card.substr(i, 1) * arrInt[i];
}
valnum = arrCh[cardTemp % 11];
if (valnum == card.substr(17, 1))
{
return true;
}
return false;
}
return false;
};
//15位转18位身份证号
changeFivteenToEighteen = function(card)
{
if(card.length == '15')
{
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var cardTemp = 0, i;
card = card.substr(0, 6) + '19' + card.substr(6, card.length - 6);
for(i = 0; i < 17; i ++)
{
cardTemp += card.substr(i, 1) * arrInt[i];
}
card += arrCh[cardTemp % 11];
return card;
}
document.getElementById('cert_id_info').innerHTML = '';
return card;
};
$scope.refreshArea = function(){
$scope.stdData.area = null;
$scope.stdData.city = null;
$scope.myPromise = $http({
url : myConfig.url + '/frame/area/' + $scope.stdData.province,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$scope.areas = data.result;
}
}).error(function() {
});
}
$scope.refreshCity = function(){
$scope.stdData.city = null;
$scope.myPromise = $http({
url : myConfig.url + '/frame/city/' + $scope.stdData.area,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$scope.cities = data.result;
}
}).error(function() {
});
}
}).controller('StdBaseInfoContactCtrl', function($rootScope, $scope, $http, $timeout, $state, myConfig, toaster) {
$scope.load = function(){
$scope.myPromise = $http({
url : myConfig.url + '/acquire/baseInfo?session=' + $rootScope.session,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$rootScope.stdData = data.result;
// if($rootScope.stdData && $rootScope.stdData.exam_id){
// $rootScope.stdData.exam_id = $rootScope.stdData.exam_id.substr(2,12);
// }
}
}).error(function() {
});
$scope.provinces = $rootScope.provinceAll;
$scope.home_areas = $rootScope.areaAll;
$scope.home_cities = $rootScope.cityAll;
$scope.mail_areas = $rootScope.areaAll;
$scope.mail_cities = $rootScope.cityAll;
}
$scope.load();
$scope.submitForm = function(isValid) {
$scope.submitted = true
// check to make sure the form is completely valid
if (isValid) {
$scope.myPromise = $http({
url : myConfig.url + '/acquire/baseInfoContact?session=' + $rootScope.session,
method : 'POST',
data : angular.toJson($scope.stdData)
}).success(function(data) {
if(data.code == 0){
toaster.pop('success', '保存成功');
$scope.form.$setPristine();
}else{
toaster.pop('error', data.message);
}
}).error(function() {
$scope.load();
});
}
};
$scope.refreshHomeArea = function(){
$scope.stdData.home_area = null;
$scope.stdData.home_city = null;
$scope.myPromise = $http({
url : myConfig.url + '/frame/area/' + $scope.stdData.home_province,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$scope.home_areas = data.result;
}
}).error(function() {
});
}
$scope.refreshHomeCity = function(){
$scope.stdData.home_city = null;
$scope.myPromise = $http({
url : myConfig.url + '/frame/city/' + $scope.stdData.home_area,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$scope.home_cities = data.result;
}
}).error(function() {
});
}
$scope.refreshMailArea = function(){
$scope.stdData.mail_area = null;
$scope.stdData.mail_city = null;
$scope.myPromise = $http({
url : myConfig.url + '/frame/area/' + $scope.stdData.mail_province,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$scope.mail_areas = data.result;
}
}).error(function() {
});
}
$scope.refreshMailCity = function(){
$scope.stdData.mail_city = null;
$scope.myPromise = $http({
url : myConfig.url + '/frame/city/' + $scope.stdData.mail_area,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$scope.mail_cities = data.result;
}
}).error(function() {
});
}
}).controller('StdBaseInfoExperienceCtrl', function($rootScope, $scope, $http, $timeout, $state, myConfig, toaster) {
$scope.load = function(){
$scope.myPromise = $http({
url : myConfig.url + '/acquire/experiences?session=' + $rootScope.session,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$scope.experiences = data.result;
if($scope.experiences.length == 0){
$scope.experiences = [{period_name: '高中'}, {period_name: '初中'}, {period_name: '小学'}];
}
}
}).error(function() {
});
}
$scope.load();
$scope.add = function(){
$scope.experiences.push({});
}
$scope.remove = function(index){
$scope.experiences.splice(index, 1);
}
$scope.submitExperienceForm = function(){
$scope.experienceFormSubmitted = true;
var isValid = true;
for(var i = 0; i < $scope.experiences.length; i++){
var item = $scope.experiences[i];
isValid = isValid && item.start_date && item.end_date && item.school && item.certifier
}
if (isValid) {
$scope.myPromise = $http({
url : myConfig.url + '/acquire/experiences?session=' + $rootScope.session,
method : 'POST',
data : angular.toJson($scope.experiences)
}).success(function(data) {
if(data.code == 0){
toaster.pop('success', '保存成功');
}else{
toaster.pop('error', data.message);
}
}).error(function() {
$scope.load();
});
}
}
}).controller('StdBaseInfoPicCtrl', function($rootScope, $scope, $http, $timeout, $state, myConfig, toaster, Upload) {
// upload on file select or drop
$scope.upload = function (file, invalidFiles) {
if(invalidFiles && invalidFiles.length > 0){
if(invalidFiles[0].$error == 'maxSize'){
toaster.pop('error', '文件大小超过2M');
}else{
toaster.pop('error', '上传失败,请重试');
}
}
if(!file)
return;
Upload.upload({
url: myConfig.url + '/upload?session=' + $rootScope.session,
data: {file: file}
}).then(function (resp) {
var path = resp.data.result.path;
$scope.myPromise = $http({
url : myConfig.url + '/acquire/headPhoto?session=' + $rootScope.session,
method : 'POST',
data : angular.toJson({path: path, id: resp.data.result.fileId})
}).success(function(data) {
if(data.code == 0){
$scope.stdData.head_photo = path;
toaster.pop('success', '保存成功');
}else{
toaster.pop('error', data.message);
}
}).error(function() {
});
}, function (resp) {
console.log('Error status: ' + resp.status);
}, function (evt) {
});
};
}).controller('StdBaseInfoBkQualificationCtrl', function($rootScope, $scope, $http, $timeout, $state, myConfig, toaster) {
$scope.load = function(){
$scope.myPromise = $http({
url : myConfig.url + '/acquire/baseInfo?session=' + $rootScope.session,
method : 'GET'
}).success(function(data) {
if(data.code == 0){
$rootScope.stdData = data.result;
// if($rootScope.stdData && $rootScope.stdData.exam_id){
// $rootScope.stdData.exam_id = $rootScope.stdData.exam_id.substr(2,12);
// }
}
}).error(function() {
});
}
$scope.load();
$scope.submitForm = function(isValid) {
$scope.submitted = true
// check to make sure the form is completely valid
if (isValid) {
$scope.myPromise = $http({
url : myConfig.url + '/acquire/baseInfoBkQualification?session=' + $rootScope.session,
method : 'POST',
data : angular.toJson($scope.stdData)
}).success(function(data) {
if(data.code == 0){
toaster.pop('success', '保存成功');
$scope.form.$setPristine();
}else{
toaster.pop('error', data.message);
}
}).error(function() {
$scope.load();
});
}
};
});