angular.module('push')
.controller('technicalBrokerPublishTrainCtrl', function ($scope, $stateParams, $ionicActionSheet, $ionicPopup, ActivityService, UtilService, $ionicSlideBoxDelegate,
$timeout, $ionicScrollDelegate, UserService, $ionicModal, TechnicalBrokerPublishTrainService,
AccountService) {
var today = UtilService.formatDate().formattime3.substring(0, 20);
$scope.trainListobj = {
isUpdate: 1,//1新增 2编辑
id: 0,
traintype: 0,
traintypename: "",
title: "",
content: "",
trainbegintime: "",
signupenddate: "",
areaid: 0,
areaname: "",
detailaddress: "",
isactive: 1,// 培训状态:是否有效,0无效,1有效
sponsors: "",// 传到后台的主办方json stype:类别:1.主办方 2.协办方
cosponsors: "",// 传到后台的协办方json stype:类别:1.主办方 2.协办方
delsponsors: "",// 删除的主办方/协办方
sponsorlist: [],// 取得详情里的主办方
sponsor: [{
id: 0,
sid: 0,
stype: 2,
orgtype: 0,
sponsorname: "",
introduce: "",
categorydetail: "",
logo: ""
}],// 取得添加主办方的内容
lecturers: "",// 传到后台的讲师
dellecturers: "",// 删除的讲师
images: "",// 传到后台的图片json
delimages: "",// 删除的图片
imagelist: []// app端图片插件进行传递的变量
};
// $("#trainbegintime").attr("value", today);
$scope.showreqdetail = false;
$scope.sponsors = "";
$scope.delsponsors = "";
$scope.sponsorlist = [];
$scope.lecturers = "";
$scope.dellecturers = "";
$scope.images = "";
$scope.delimages = "";
$scope.imagelist = [];
$scope.showmorecompany = false;
$scope.showmorereq = false;
$scope.companylist = [];
$scope.sponsorList = [];// 主办方
$scope.cosponsorList = [{
id: 0,
sid: 0,
stype: 2,
orgtype: 0,
sponsorname: "",
introduce: "",
categorydetail: "",
logo: ""
}];// 协办方
var delsponsors = [];
$scope.lecturerList = [{
id: 0,
lecturername: ""
}];
var dellecturers = [];
// 获取培训种类列表
var buttons = [];
var getTraintypeList = function () {
TechnicalBrokerPublishTrainService.getTraintypeList().then(function (response) {
// console.log(response);
if (UtilService.isDefined(response.traintypeList) && response.traintypeList.length > 0) {
$scope.trainListobj.traintype = response.traintypeList[0].itemvalue;
$scope.trainListobj.traintypename = response.traintypeList[0].itemkey;
angular.forEach(response.traintypeList, function (value, index) {
var temphtml = {
text: '' + value.itemkey + '',
traintype: value.itemvalue,
traintypename: value.itemkey
};
buttons.push(temphtml);
});
}
}, function () {
})
};
getTraintypeList();
// 获取机构类型列表
var orgtypebuttons = [];
var getOrgtypeList = function () {
TechnicalBrokerPublishTrainService.getOrgtypeList().then(function (response) {
if (UtilService.isDefined(response.orgtypeList) && response.orgtypeList.length > 0) {
angular.forEach(response.orgtypeList, function (value, index) {
var temphtml = {
text: '' + value.itemkey + '',
orgtype: value.itemvalue,
orgtypename: value.itemkey
};
orgtypebuttons.push(temphtml);
});
// console.log(orgtypebuttons);
}
}, function () {
})
};
getOrgtypeList();
// 获取行业领域列表
var categorybuttons = [];
var getCategoryList = function () {
TechnicalBrokerPublishTrainService.getCategoryList().then(function (response) {
if (UtilService.isDefined(response.categoryList) && response.categoryList.length > 0) {
angular.forEach(response.categoryList, function (value, index) {
var temphtml = {
text: '' + value.name + '',
categorydetail: value.code,
categoryname: value.name
};
categorybuttons.push(temphtml);
});
}
}, function () {
})
};
getCategoryList();
//保存培训信息表
var saveflg = 0;
$scope.saveTrainInfo = function () {
var tempstr = $("#trainbegintime").val();
if (UtilService.isDefined(tempstr)) {
$scope.trainListobj.trainbegintime = UtilService.formatTime(tempstr);
}
if (!UtilService.isDefined($scope.trainListobj.trainbegintime)) {
UtilService.showMess("培训时间不能为空");
return;
}
if (!UtilService.isDefined($scope.trainListobj.traintype)) {
UtilService.showMess("请选择培训类别");
return;
}
if (!UtilService.isDefined($scope.trainListobj.sponsor.orgtype)) {
UtilService.showMess("请填写主办方信息");
return;
}
if (!UtilService.isDefined($scope.trainListobj.sponsor.sponsorname)) {
UtilService.showMess("请填写主办方信息");
return;
}
// 若协办方名称为空,当前这条不保存
if ($scope.cosponsorList.length > 0) {
angular.forEach($scope.cosponsorList, function (cosponsorList,index,$index) {
if (!UtilService.isDefined($scope.cosponsorList[index].sponsorname)) {
$scope.cosponsorList.splice($index, 1);
}
});
}
if ($scope.lecturerList.length > 0) {
var lecturerresult = 1;
angular.forEach($scope.lecturerList, function (lecturerList,index) {
if (!UtilService.isDefined($scope.lecturerList[index].lecturername)) {
lecturerresult = 0;
}
});
if(lecturerresult == 0){
UtilService.showMess("讲师不能为空");
return;
}
}
var tempstr = $("#signupenddate").val();
if (UtilService.isDefined(tempstr)) {
$scope.trainListobj.signupenddate = UtilService.formatTime(tempstr);
}
if (!UtilService.isDefined($scope.trainListobj.signupenddate)) {
UtilService.showMess("培训报名截止时间不能为空");
return;
}
if (!UtilService.isDefined($scope.trainListobj.areaid)) {
UtilService.showMess("培训所在地区不能为空");
return;
}
if (!UtilService.isDefined($scope.trainListobj.detailaddress)) {
UtilService.showMess("培训的详细地址不能为空");
return;
}
if ($scope.trainListobj.dockingid != 0 && !UtilService.isDefined($scope.trainListobj.title)) {
UtilService.showMess("培训标题不能为空");
return;
}
if (!UtilService.isDefined($scope.trainListobj.content)) {
UtilService.showMess("培训内容不能为空");
return;
}
if (saveflg != 0) {
return;
}
saveflg = 1;
$scope.showLoadingToast();
if ($scope.imagelist.length > 0) {
uploadImages();
} else {
saveInfo();
}
};
var tempimages = [];
var uploadImages = function () {
tempimages = [];
var upimages = [];
angular.forEach($scope.imagelist, function (data) {
upimages.push(data.photo_name);
});
UtilService.uploadFile(upimages, 0, "image/jpeg").then(function (response) {
// console.log(response);
angular.forEach(response, function (value) {
if (value.status) {
tempimages.push({
id: 0,
title: "",
photo_name: value.userPhoto,
original_name: value.originalPhoto,
source_name: value.sourcePhoto,
source_size: value.source_size
});
}
});
$timeout(function () {
saveInfo();
}, 100);
}, function () {
$scope.hideLoadingToast();
UtilService.showMess("网络不给力,请重试");
saveflg = 0;
})
};
var saveInfo = function () {
// console.log($scope.trainListobj);
$scope.trainListobj.sponsors = angular.toJson($scope.sponsorList);
$scope.trainListobj.cosponsors = angular.toJson($scope.cosponsorList);
$scope.trainListobj.delsponsors = delsponsors.join(",");
$scope.trainListobj.lecturers = angular.toJson($scope.lecturerList);
$scope.trainListobj.dellecturers = dellecturers.join(",");
TechnicalBrokerPublishTrainService.saveTrainInfo($scope.trainListobj, tempimages).then(function (response) {
// console.log(response);
if (response.isSuccess == 1) {
UtilService.showMess("添加成功");
$timeout(function () {
$scope.goback();
}, 1500);
} else {
UtilService.showMess("网络不给力,请重试");
}
$scope.hideLoadingToast();
saveflg = 0;
}, function () {
UtilService.showMess("网络不给力,请重试");
$scope.hideLoadingToast();
saveflg = 0;
})
};
//选择机构类型
$scope.showOrgTypeStatus = function () {
$ionicActionSheet.show({
buttons: orgtypebuttons,
cancelText: '取消',
buttonClicked: function (index) {
$scope.trainListobj.sponsor.orgtype = orgtypebuttons[index].orgtype;
$scope.trainListobj.sponsor.orgtypename = orgtypebuttons[index].orgtypename;
return true;
}
});
};
// 选择专业领域
$scope.showStudyStatusshowStudyStatus=function () {
$ionicActionSheet.show({
cancelOnStateChange: true,
cssClass: 'action_s',
cancelText: '取消',
buttons: categorybuttons,
buttonClicked: function (index) {
$scope.trainListobj.sponsor.categorydetail = categorybuttons[index].categorydetail;
$scope.trainListobj.sponsor.categoryname = categorybuttons[index].categoryname;
return true;
},
destructiveButtonClicked: function () {
return true;
}
});
}
//添加、删除更多协办方
$scope.AddOrDelCosponsor = function (ind) {
if (ind == 0) {
$scope.cosponsorList.push({
id: 0,
stype: 2,
sponsorname: ""
});
} else {
if ($scope.cosponsorList[ind].id != 0) {
delsponsors.push($scope.cosponsorList[ind].id);
}
$scope.cosponsorList.splice(ind, 1);
}
};
//添加、删除更多讲师
$scope.AddOrDellecturer = function (ind) {
if (ind == 0) {
$scope.lecturerList.push({
id: 0,
lecturername: ""
});
} else {
if ($scope.lecturerList[ind].id != 0) {
dellecturers.push($scope.lecturerList[ind].id);
}
$scope.lecturerList.splice(ind, 1);
}
};
//选择培训类别
$scope.showTrainStatus = function () {
$ionicActionSheet.show({
buttons: buttons,
cancelText: '取消',
buttonClicked: function (index) {
$scope.trainListobj.traintype = buttons[index].traintype;
$scope.trainListobj.traintypename = buttons[index].traintypename;
return true;
}
});
};
//接收城市选择数据
var reciveregplace = $scope.$on("registplace", function (event, data) {
$scope.trainListobj.areaid = data.areaid;
$scope.trainListobj.areaname = data.registplace;
});
//页面销毁时 回收广播
$scope.$on('$destroy', function () {
reciveregplace();
});
$scope.openCamera = function () {
if ($scope.imagelist.length >= 9) {
UtilService.showMess("最多选取9张图片");
return;
}
UtilService.getPicture(1).then(function (results) {
// console.log(results);
$scope.imagelist.push({photo_name: results, original_name: results});
$scope.totalImglength = 600 * $scope.imagelist.length;
$ionicScrollDelegate.$getByHandle("scrollimage").resize();
}, function (err) {
});
};
$scope.show = function () {
$ionicActionSheet.show({
buttons: [
{text: '相册中添加照片'},
{text: '拍照'}
],
cancelText: '取消',
buttonClicked: function (index) {
if (index == 0) {
getPictures();
} else if (index == 1) {
$scope.openCamera();
}
return true;
}
});
};
var verifyStorage = function () {
window.imagePicker.verifyStorage(
function (results) {
if (results == "1") {
getPic();
}
}, function (error) {
}
);
};
var getPic = function () {
if ($scope.imagelist.length >= 9) {
UtilService.showMess("最多选取9张图片");
return;
}
UtilService.getPictureList(9 - $scope.imagelist.length).then(function (results) {
// console.log(results);
angular.forEach(results, function (value, index) {
$scope.imagelist.push({photo_name: value, original_name: value})
});
$scope.totalImglength = 600 * $scope.imagelist.length;
$ionicScrollDelegate.$getByHandle("scrollimage").resize();
}, function (err) {
});
};
var getPictures = function () {
if (device.platform == "Android") {
verifyStorage();
} else {
getPic();
}
};
//点击图片放大
$scope.bigImage = false; //初始默认大图是隐藏的
$scope.hideBigImage = function () {
if($scope.app){
$scope.setStatusBar(0);
}
$timeout(function () {
$scope.bigImage = false;
}, 400);
};
$scope.shouBigImage = function (index) { //传递一个参数(图片的URl)
if($scope.app){
$scope.setStatusBar(1);
}
$(function () {
$('div.pinch-zoom').each(function () {
new RTP.PinchZoom($(this), {});
});
});
$scope.bigImage = true;//显示大图
$ionicSlideBoxDelegate.update();//重绘,让图片显示出来
//图片总数量
setTimeout(function () {
$ionicSlideBoxDelegate.$getByHandle('slide_detail').slide(index, -10);
//获取图片
var imgObj = document.getElementsByClassName('bigimage');
var n;
for (n = 0; n < imgObj.length; n++) {
// 获取图片的原始高度和宽度
var oldWid = imgObj[n].naturalWidth;
var oldHei = imgObj[n].naturalHeight;
var screen = document.body.offsetWidth;
var screenH = window.innerHeight;
// console.log(oldWid / oldHei);
// console.log(screen);
var cc = screen / (oldWid / oldHei);
imgObj[n].style.height = cc + 'px';
if (cc < screenH) {
imgObj[n].style.marginTop = (screenH - cc) / 2 + 'px';
// console.log("e:"+imgObj[n].style.marginTop);
} else {
imgObj[n].style.marginTop = 0 + 'px';
// console.log((cc-screenH) +'px')
}
}
}, 10);
};
//删除图片
$scope.deletePhoto = function (index) {
$scope.imagelist.splice(index, 1);
};
//培训时间
$(function () {
var currYear = (new Date()).getFullYear();
var opt = {};
opt.date = {preset: 'date'};
opt.datetime = {preset: 'datetime'};
opt.time = {preset: 'time'};
opt.default = {
theme: 'android-ics light', //皮肤样式
display: 'modal', //显示方式
mode: 'scroller', //日期选择模式
dateFormat: 'yyyy年mm月dd日',
lang: 'zh',
showNow: true,
nowText: "今天",
startYear: currYear - 50, //开始年份
endYear: currYear + 10 //结束年份
};
var optDateTime = $.extend(opt['datetime'], opt['default']);
$("#trainbegintime").mobiscroll(optDateTime).datetime(optDateTime);
});
//报名截止日期
$(function () {
var currYear = (new Date()).getFullYear();
var opt = {};
opt.date = {preset: 'date'};
opt.datetime = {preset: 'datetime'};
opt.time = {preset: 'time'};
opt.default = {
theme: 'android-ics light', //皮肤样式
display: 'modal', //显示方式
mode: 'scroller', //日期选择模式
dateFormat: 'yyyy年mm月dd日',
lang: 'zh',
showNow: true,
nowText: "今天",
startYear: currYear - 50, //开始年份
endYear: currYear + 10 //结束年份
};
var optDateTime = $.extend(opt['datetime'], opt['default']);
$("#signupenddate").mobiscroll(optDateTime).datetime(optDateTime);
});
$scope.isShowAddcosponsor = false;
$scope.isShowAddlecturer = false;
//添加协办方
if ($scope.trainListobj.cosponsor != '') {
$scope.isShowAddcosponsor = true;
}
//添加讲师
if ($scope.trainListobj.lecturer != '') {
$scope.isShowAddlecturer = true;
}
$ionicModal.fromTemplateUrl('./modules/technicalBroker/views/technicalBrokerAddMainSponsor.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function (modal) {
$scope.mainsponsor = modal;
});
$scope.showView = function () {
$scope.mainsponsor.show();
};
// 添加主办方保存
$scope.hideView = function () {
if (!UtilService.isDefined($scope.trainListobj.sponsor.orgtype)) {
UtilService.showMess("请选择主办方的机构类型");
return;
}
if (!UtilService.isDefined($scope.trainListobj.sponsor.sponsorname)) {
UtilService.showMess("请填写主办方名称");
return;
}
$scope.sponsorList = [];// 主办方
$scope.sponsorList.push({
id: $scope.trainListobj.sponsor.id,
sid: $scope.trainListobj.sponsor.sid,
stype: 1,
orgtype: $scope.trainListobj.sponsor.orgtype,
sponsorname: $scope.trainListobj.sponsor.sponsorname,
introduce: $scope.trainListobj.sponsor.introduce,
categorydetail: $scope.trainListobj.sponsor.categorydetail,
logo: $scope.trainListobj.sponsor.logo
});
$scope.mainsponsor.hide();
};
$scope.saveSponsor = function () {
$scope.mainsponsor.hide();
};
// 编辑头像
$scope.show_header = function () {
// 弹出头像选择框
$ionicActionSheet.show({
cancelOnStateChange: true,
cssClass: 'action_s',
cancelText: '取消',
buttons: [
{text: "拍照"},
{text: "从相册上传"}
],
buttonClicked: function (index) {
if (index == 0) {
openCamera(1);
} else {
openCamera(0);
}
return true;
},
destructiveButtonClicked: function () {
return true;
}
});
};
var openCamera = function (srcType) {
var options = {
// Some common settings are 20, 50, and 100
quality: 50,
destinationType: Camera.DestinationType.FILE_URI,
// In this app, dynamically set the picture source, Camera or photo gallery
sourceType: srcType,
encodingType: Camera.EncodingType.JPEG,
mediaType: Camera.MediaType.PICTURE,
allowEdit: false,
correctOrientation: true //Corrects Android orientation quirks
};
navigator.camera.getPicture(function (imageData) {
$scope.imgurl = imageData;
$scope.showLoadingToast();
UtilService.uploadFile([imageData], 0, "image/jpeg").then(function (response) {
// console.log(response);
$scope.trainListobj.sponsor.logo = response[0].userPhoto;
$scope.hideLoadingToast();
}, function () {
$scope.hideLoadingToast();
});
}, function (message) {
}, options);
};
// 切换状态
$scope.changeToggle = function () {
$scope.taskListobj.isactive = $scope.taskListobj.actives ? 1 : 0;
};
});