(function (app) { app.controller('homeCtrl', ["$scope", "$ionicTabsDelegate","$http", 'config', "$state", "msg", "$ionicPopover", "homeService" , function ($scope, $ionicTabsDelegate,$http, config, $state, msg, $ionicPopover, homeService) { $scope.$on('$ionicView.beforeEnter', function (viewResult) { $ionicTabsDelegate.showBar(true); }); $scope.type = 'hot';//tab切换 $scope.chosedIndex = 0; $scope.clickAvatar = function(index){ $scope.chosedIndex = index; }; $ionicPopover.fromTemplateUrl('my-popover.html', { scope: $scope }).then(function (popover) { $scope.popover = popover; }); $scope.openPopover = function ($event) { $scope.popover.show($event); }; $scope.closePopover = function () { $scope.popover.hide(); }; $scope.changetype = function (type) { $scope.type = type; $scope.load(true); }; $scope.toDetail = function (id) { $state.go('app.home_dreamdetail',{id:id}); }; $scope.toUserDetail = function (id) { $state.go('app.home_userDetail',{id:id}); }; $scope.filter = { hasMore: false, pageIndex: 1, pageSize: 20 }; $scope.index = { banner: [], users: [], dreams:[] }; $scope.next=function(type){ //type:1 前一个,type:2 后一个 if($scope.index.users.length>0){ if(type==1) { var temp= $scope.index.users.splice(0,1); $scope.index.users.push(temp[0]); } if (type==2){ var temp= $scope.index.users.splice($scope.index.users.length-1,1); $scope.index.users.unshift(temp[0]); } } }; $scope.load = function (init) { if (init) { $scope.filter.pageIndex = 1; $scope.index.dreams = []; } msg.loading(); homeService.index($scope.type, $scope.filter.pageIndex).then(function (result) { msg.hide(); $scope.index.banners = result.data.data.banners; $scope.index.users = result.data.data.users; $scope.filter.pageIndex++; var more = (result.data.data.dreams.data.length >= $scope.filter.pageSize); $scope.filter.hasMore = more; $scope.index.dreams = $scope.index.dreams.concat(result.data.data.dreams.data); if (init) { $scope.$broadcast('scroll.refreshComplete'); } else { $scope.$broadcast('scroll.infiniteScrollComplete'); } }, function (error) { msg.hide(); }); }; $scope.qrscan = function () { cordova.plugins.barcodeScanner.scan( function (result) { //扫码成功后执行的回调函数 alert("收到一个二维码\n" + "扫码文字结果: " + result.text + "\n" + "格式: " + result.format + "\n" + "是否在扫码页面取消扫码: " + result.cancelled); }, function (error) { //扫码失败执行的回调函数 alert("Scanning failed: " + error); }, { preferFrontCamera: false, // iOS and Android 设置前置摄像头 showFlipCameraButton: true, // iOS and Android 显示旋转摄像头按钮 showTorchButton: true, // iOS and Android 显示打开闪光灯按钮 torchOn: false, // Android, launch with the torch switched on (if available)打开手电筒 prompt: "在扫描区域内放置二维码", // Android提示语 resultDisplayDuration: 500, // Android, display scanned text for X ms. //0 suppresses it entirely, default 1500 设置扫码时间的参数 formats: "QR_CODE", // 二维码格式可设置多种类型 orientation: "portrait", // Android only (portrait|landscape), //default unset so it rotates with the device在安卓上 landscape 是横屏状态 disableAnimations: true, // iOS 是否禁止动画 disableSuccessBeep: false // iOS 禁止成功后提示声音 “滴” } ); }; $scope.data = {}; $scope.load(true); $scope.$on('$ionicView.beforeLeave', function () { $scope.popover.hide(); }); }]); app.controller('dreamDetailCtrl', ["$scope", "$state", "$ionicModal","storage","msg", "common", "config", "homeService", "$ionicTabsDelegate", "$stateParams", "$ionicModal", "$timeout", "$ionicScrollDelegate", "$interval" , function ($scope, $state,$ionicModal, storage , msg, common, config, homeService, $ionicTabsDelegate, $stateParams, $ionicModal, $timeout, $ionicScrollDelegate, $interval) { var id = $stateParams.id; var top3user = ''; $scope.chosedIndex = 0; $scope.clickAvatar = function(index){ $scope.chosedIndex = index; }; // id=5; $scope.$on('$ionicView.beforeEnter', function () { $ionicTabsDelegate.showBar(false); $scope.load(id); $scope.thisUser = storage.getObject('user'); homeService.myInfo().then(function(result){ $scope.user = result.data.data; }); console.log($scope.user); }); $scope.$on('$ionicView.leave', function () { if($scope.multi.promise)$interval.cancel($scope.multi.promise); if($scope.leftTimer)$interval.cancel($scope.leftTimer); }); $scope.load = function (id) { msg.loading(); homeService.dreamDetail(id).then(function (result) { msg.hide(); console.log(result); $scope.dream = result.data.data; var end_time = new Date($scope.dream.end_time.replace(/-/g, "/")); var date = new Date(); var inter = (end_time.getTime() - date.getTime()) / 1000; leftTimer(inter); $scope.multi.a = $scope.dream.a; $scope.multi.b = new Date($scope.dream.created_at.replace(/-/g, "/")); $scope.multi.c = $scope.dream.c; $scope.multi.promise = $scope.dream.a; var newtop3user = '' ; angular.forEach($scope.dream.top3user, function(user) { newtop3user= newtop3user +user.id+"," }); if(top3user!=''&&newtop3user!=top3user){ //测试动画切换 $timeout(function() { $scope.sort.slide1 = 'list-grow-animation'; $scope.sort.slide2 = 'slide-in-both-ways'; $scope.sort.slide3 = 'bounce-animation'; }, 50); } top3user = newtop3user; if($scope.dream.top3user[0])$scope.sort.first = $scope.dream.top3user[0].avatar; if($scope.dream.top3user[1])$scope.sort.second = $scope.dream.top3user[1].avatar; if($scope.dream.top3user[2])$scope.sort.third = $scope.dream.top3user[2].avatar; $scope.calcmultiplier(); }, function (error) { msg.hide(); }); }; $scope.openSupport = function () { msg.alert("支持乘数","支持乘数支持乘数支持乘数支持乘数"); }; // $ionicModal.fromTemplateUrl('supportExplain.html', { // scope: $scope // }).then(function(modal) { // $scope.supportmodal = modal; // }); // $scope.openSupportmodal = function() { // $scope.supportmodal.show(); // }; // $scope.closeSupportmodal = function() { // $scope.supportmodal.hide(); // }; $scope.multi = { a: '', b: '', c: '', result: 1, promise:null }; $scope.type = 1;//tab切换 $scope.tosupport = false; $scope.support = function ($event) { $event.stopPropagation(); $scope.tosupport = true; $scope.vm.coin = 0; $scope.index = 0; }; $scope.cancelSupport = function () { $scope.tosupport = false; $scope.toshare = false; }; $scope.toshare = false; $scope.share = function ($event) { $event.stopPropagation(); $scope.toshare = true; }; $scope.toRecharge = function(){ $state.go("app.recharge") }; $scope.shareDream = function(){ $state.go("app.shareDream",{item:$scope.dream}); }; //实时排行 $scope.sort = { slide: '' }; $scope.changeType = function (type) { $ionicScrollDelegate.scrollTop(true); $scope.type = type; }; $scope.index = 0; $scope.vm = { coin:"", title:"" }; $scope.timer = ''; var leftTimer = function (countDown) { if (isNaN(countDown)) { $scope.timer = '结束'; return; } var day=parseInt(countDown/(24*60*60)); var h=parseInt(countDown/(60*60)%24); var m=parseInt(countDown/60%60); var s=parseInt(countDown%60); $scope.timer=(h<10?'0'+h:h)+'时'+(m<10?'0'+m:m)+'分'+(s<10?'0'+s:s)+'秒'; if(day>0) $scope.timer = day+'天'+ $scope.timer; if($scope.leftTimer)$interval.cancel($scope.leftTimer); $scope.leftTimer = $interval(function () { if (countDown >= 1) leftTimer(countDown - 1); },1000); if(countDown<=0){ $scope.timer='结束'; } }; $scope.changeIndex = function (index) { $scope.index = index; $scope.vm.coin = index*5; }; $scope.vidEnded = function () { alert('播放完毕'); }; //实时计算支持乘数 $scope.calcmultiplier = function () { $scope.multi.promise = $interval(function () { var date = new Date(); var inter = date.getTime() - $scope.multi.b.getTime(); var minutes = Math.floor(inter / (60 * 1000)); var number = $scope.multi.a * minutes + $scope.multi.c;//js浮点运算会失真,根据muti.a的可能值范围,比如乘以100再除以100 if (number<=1) { number = 1; } //$scope.multi.result = Math.round(number * 100) / 100; $scope.multi.result = Math.round(number * 100 / 100); },1000); // 点击支持取消 $interval.cancel($scope.multi.promise); 获取数据后重新开始执行 }; $scope.supportDream = function (data) { if(!$scope.vm.coin){ msg.error("请选择梦想币数量!"); return ; } var data = { id:id, coin:$scope.vm.coin }; homeService.supportDream(data).then(function(result){ $scope.tosupport = false; $scope.load(id); $interval.cancel($scope.multi.promise); }) }; $scope.collectionDream = function(is_collection){ homeService.collectionDream(id,is_collection).then(function(result){ //$scope.dream.is_collection=result.data.data; }) }; $scope.add = function(is_collection){ var data = { id:id, title:$scope.vm.title, pics:$scope.imgs }; homeService.add_interaction(data).then(function(){ $scope.load(id); $scope.closeModal(); }) }; $scope.showText = function(){ $scope.aboutStyle = { "white-space" : "normal" }; $scope.ionDownStyle = { "display" : "none" } }; $scope.input = { placeholder: '评论', focus:false }; $scope.replay = function ($event, name) { $event.stopPropagation(); $scope.input.focus = true; $scope.input.placeholder = "回复" + name; $scope.vm.title=''; }; $scope.comment = function(){ // $event.stopPropagation(); //$scope.input.placeholder = "评论"; $scope.input.focus = true; $scope.vm.title=''; }; $scope.submitComment = function(iid){ if($scope.vm.comment&&$scope.vm.comment==''||!iid)return; var data = { id:iid, content:$scope.vm.comment }; console.log($scope.vm.comment+" "+iid); homeService.add_comment(data).then(function(){ $scope.vm.comment = '' ; $scope.load(id); $scope.closeModal(); }) }; $scope.addpict = function () { common.chooseImage().then(function (img) { common.uploadFiles(img,1).then(function (result) { var response = JSON.parse(result.response); var file = response.data.file; $scope.imgs.push(config.imgServer+file); console.log(JSON.stringify(config.imgServer+file)); }, function (error) { msg.error('图片上传失败'); }); }, function (error) { console.log('图片选择失败'); }); }; $ionicModal.fromTemplateUrl('recharge-modal.html', { scope: $scope, animation: 'slide-in-up' }).then(function(modal) { $scope.rechagemodal = modal; }); $scope.openRechargeModal = function() { $scope.rechagemodal.show(); $scope.vm.money = ''; }; $scope.closeRechargeModal = function() { $scope.rechagemodal.hide(); }; $ionicModal.fromTemplateUrl('interaction-modal.html', { scope: $scope, animation: 'slide-in-up' }).then(function(modal) { $scope.modal = modal; }); $scope.openModal = function() { $scope.modal.show(); $scope.vm.title = ''; $scope.imgs = []; }; $scope.closeModal = function() { $scope.modal.hide(); }; //当我们用到模型时,清除它! $scope.$on('$destroy', function() { $scope.modal.remove(); }); $scope.toMessage = function(){ $state.go("app.message"); } }]); app.controller('myDreamDetailCtrl', ["$scope", "$state", "$ionicModal","storage","msg", "common", "config", "homeService", "$ionicTabsDelegate", "$stateParams", "$ionicModal", "$timeout", "$ionicScrollDelegate", "$interval" , function ($scope, $state,$ionicModal, storage , msg, common, config, homeService, $ionicTabsDelegate, $stateParams, $ionicModal, $timeout, $ionicScrollDelegate, $interval) { var id = $stateParams.id; var top3user = ''; $scope.toMessage = function(){ $state.go("app.dream_message"); } $scope.chosedIndex = 0; $scope.clickAvatar = function(index){ $scope.chosedIndex = index; }; // id=5; $scope.$on('$ionicView.beforeEnter', function () { $ionicTabsDelegate.showBar(false); $scope.load(id); $scope.thisUser = storage.getObject('user'); homeService.myInfo().then(function(result){ $scope.user = result.data.data; }); console.log($scope.user); }); $scope.$on('$ionicView.leave', function () { if($scope.multi.promise)$interval.cancel($scope.multi.promise); if($scope.leftTimer)$interval.cancel($scope.leftTimer); }); $scope.load = function (id) { msg.loading(); homeService.dreamDetail(id).then(function (result) { msg.hide(); console.log(result); $scope.dream = result.data.data; var end_time = new Date($scope.dream.end_time.replace(/-/g, "/")); var date = new Date(); var inter = (end_time.getTime() - date.getTime()) / 1000; leftTimer(inter); $scope.multi.a = $scope.dream.a; $scope.multi.b = new Date($scope.dream.created_at.replace(/-/g, "/")); $scope.multi.c = $scope.dream.c; $scope.multi.promise = $scope.dream.a; var newtop3user = '' ; angular.forEach($scope.dream.top3user, function(user) { newtop3user= newtop3user +user.id+"," }); if(top3user!=''&&newtop3user!=top3user){ //测试动画切换 $timeout(function() { $scope.sort.slide1 = 'list-grow-animation'; $scope.sort.slide2 = 'slide-in-both-ways'; $scope.sort.slide3 = 'bounce-animation'; }, 50); } top3user = newtop3user; if($scope.dream.top3user[0])$scope.sort.first = $scope.dream.top3user[0].avatar; if($scope.dream.top3user[1])$scope.sort.second = $scope.dream.top3user[1].avatar; if($scope.dream.top3user[2])$scope.sort.third = $scope.dream.top3user[2].avatar; $scope.calcmultiplier(); }, function (error) { msg.hide(); }); }; // $ionicModal.fromTemplateUrl('supportExplain.html', { // scope: $scope // }).then(function(modal) { // $scope.supportmodal = modal; // }); // $scope.openSupportmodal = function() { // $scope.supportmodal.show(); // }; // $scope.closeSupportmodal = function() { // $scope.supportmodal.hide(); // }; $scope.openSupport = function () { msg.alert("支持乘数","支持乘数支持乘数支持乘数支持乘数"); }; $scope.multi = { a: '', b: '', c: '', result: 1, promise:null }; $scope.type = 1;//tab切换 $scope.tosupport = false; $scope.support = function ($event) { $event.stopPropagation(); $scope.tosupport = true; $scope.vm.coin = 0; $scope.index = 0; }; $scope.cancelSupport = function () { $scope.tosupport = false; $scope.toshare = false; }; $scope.toshare = false; $scope.share = function ($event) { $event.stopPropagation(); $scope.toshare = true; }; $scope.toRecharge = function(){ $state.go("app.recharge") }; $scope.shareDream = function(){ $state.go("app.shareDream",{item:$scope.dream}); }; //实时排行 $scope.sort = { slide: '' }; $scope.changeType = function (type) { $ionicScrollDelegate.scrollTop(true); $scope.type = type; }; $scope.index = 0; $scope.vm = { coin:"", title:"" }; $scope.timer = ''; var leftTimer = function (countDown) { if (isNaN(countDown)) { $scope.timer = '结束'; return; } var day=parseInt(countDown/(24*60*60)); var h=parseInt(countDown/(60*60)%24); var m=parseInt(countDown/60%60); var s=parseInt(countDown%60); $scope.timer=(h<10?'0'+h:h)+'时'+(m<10?'0'+m:m)+'分'+(s<10?'0'+s:s)+'秒'; if(day>0) $scope.timer = day+'天'+ $scope.timer; if($scope.leftTimer)$interval.cancel($scope.leftTimer); $scope.leftTimer = $interval(function () { if (countDown >= 1) leftTimer(countDown - 1); },1000); if(countDown<=0){ $scope.timer='结束'; } }; $scope.changeIndex = function (index) { $scope.index = index; $scope.vm.coin = index*5; }; $scope.vidEnded = function () { alert('播放完毕'); }; //实时计算支持乘数 $scope.calcmultiplier = function () { $scope.multi.promise = $interval(function () { var date = new Date(); var inter = date.getTime() - $scope.multi.b.getTime(); var minutes = Math.floor(inter / (60 * 1000)); var number = $scope.multi.a * minutes + $scope.multi.c;//js浮点运算会失真,根据muti.a的可能值范围,比如乘以100再除以100 if (number<=1) { number = 1; } //$scope.multi.result = Math.round(number * 100) / 100; $scope.multi.result = Math.round(number * 100 / 100); },1000); // 点击支持取消 $interval.cancel($scope.multi.promise); 获取数据后重新开始执行 }; $scope.supportDream = function (data) { if(!$scope.vm.coin){ msg.error("请选择梦想币数量!"); return ; } var data = { id:id, coin:$scope.vm.coin }; homeService.supportDream(data).then(function(result){ $scope.tosupport = false; $scope.load(id); $interval.cancel($scope.multi.promise); }) }; $scope.collectionDream = function(is_collection){ homeService.collectionDream(id,is_collection).then(function(result){ $scope.dream.is_collection=result.data.data; }) }; $scope.add = function(is_collection){ var data = { id:id, title:$scope.vm.title, pics:$scope.imgs }; homeService.add_interaction(data).then(function(){ $scope.load(id); $scope.closeModal(); }) }; $scope.showText = function(){ $scope.aboutStyle = { "white-space" : "normal" }; $scope.ionDownStyle = { "display" : "none" } }; $scope.input = { placeholder: '评论', focus:false }; $scope.replay = function ($event, name) { $event.stopPropagation(); $scope.input.focus = true; $scope.input.placeholder = "回复" + name; $scope.vm.title=''; }; $scope.comment = function(){ // $event.stopPropagation(); //$scope.input.placeholder = "评论"; $scope.input.focus = true; $scope.vm.title=''; }; $scope.submitComment = function(iid){ if($scope.vm.comment&&$scope.vm.comment==''||!iid)return; var data = { id:iid, content:$scope.vm.comment }; console.log($scope.vm.comment+" "+iid); homeService.add_comment(data).then(function(){ $scope.vm.comment = '' ; $scope.load(id); $scope.closeModal(); }) }; $scope.addpict = function () { common.chooseImage().then(function (img) { common.uploadFiles(img,1).then(function (result) { var response = JSON.parse(result.response); var file = response.data.file; $scope.imgs.push(config.imgServer+file); console.log(JSON.stringify(config.imgServer+file)); }, function (error) { msg.error('图片上传失败'); }); }, function (error) { console.log('图片选择失败'); }); }; $ionicModal.fromTemplateUrl('recharge-modal.html', { scope: $scope, animation: 'slide-in-up' }).then(function(modal) { $scope.rechagemodal = modal; }); $scope.openRechargeModal = function() { $scope.rechagemodal.show(); $scope.vm.money = ''; }; $scope.closeRechargeModal = function() { $scope.rechagemodal.hide(); }; $ionicModal.fromTemplateUrl('interaction-modal.html', { scope: $scope, animation: 'slide-in-up' }).then(function(modal) { $scope.modal = modal; }); $scope.openModal = function() { $scope.modal.show(); $scope.vm.title = ''; $scope.imgs = []; }; $scope.closeModal = function() { $scope.modal.hide(); }; //当我们用到模型时,清除它! $scope.$on('$destroy', function() { $scope.modal.remove(); }); }]); app.controller('userDetailCtrl', ["$scope", "$state", "$ionicModal","storage","msg", "common", "config", "homeService", "$ionicTabsDelegate", "$stateParams", "$ionicModal", "$timeout", "$ionicScrollDelegate", "$interval" , function ($scope, $state,$ionicModal, storage , msg, common, config, homeService, $ionicTabsDelegate, $stateParams, $ionicModal, $timeout, $ionicScrollDelegate, $interval) { var id = $stateParams.id; $scope.$on('$ionicView.beforeEnter', function () { $ionicTabsDelegate.showBar(false); }); $scope.load = function (id) { msg.loading(); homeService.dreamDetail(id).then(function (result) { msg.hide(); $scope.user = result.data.data; }, function (error) { msg.hide(); }); }; $scope.load(id); $scope.cancelSupport = function () { $scope.tosupport = false; $scope.toshare = false; }; $scope.toshare = false; $scope.share = function ($event) { $event.stopPropagation(); $scope.toshare = true; }; $scope.shareDream = function(){ $state.go("app.shareDream",{item:$scope.user}); }; $scope.toDetail = function (id) { $state.go('app.home_dreamdetail',{id:id}); }; $scope.toOldDream = function(){ $state.go("app.oldDream"); }; $scope.toSupportDream = function(){ $state.go("app.supportDream"); }; $scope.collectionDream = function(is_collection){ homeService.collectionDream(id,is_collection).then(function(result){ $scope.user.is_collection=result.data.data; }) }; }]); app.controller('shareDreamCtrl', ["$scope","homeService", "$stateParams","$state", "msg" , function ($scope,homeService,$stateParams, $state, msg) { $scope.dream = $stateParams.item }]); app.controller('oldDreamCtrl', ["$scope","homeService", "$stateParams","$state", "msg" , function ($scope,homeService,$stateParams, $state, msg) { }]); app.controller('supportDreamCtrl', ["$scope","homeService", "$stateParams","$state", "msg" , function ($scope,homeService,$stateParams, $state, msg) { }]); app.controller('searchCtrl', ["$scope","homeService", "$state", "msg", "$ionicTabsDelegate", "$ionicNavBarDelegate" , function ($scope,homeService, $state, msg, $ionicTabsDelegate, $ionicNavBarDelegate) { $scope.showMore = function (keyword,index) { if(!keyword)return; $scope.index = index; // $scope.vm.keyword = keyword; homeService.search(keyword).then(function(result){ $scope.isResult = true; $scope.dream_infos = result.data.data.dream_infos; $scope.user_infos = result.data.data.user_infos; }); }; $scope.search = function (keyword) { $scope.vm.keyword = keyword; homeService.search(keyword).then(function(result){ $scope.isResult = true; $scope.dream_infos = result.data.data.dream_infos; $scope.user_infos = result.data.data.user_infos; }); }; $scope.toDetail = function (id) { $state.go('app.home_dreamdetail',{id:id}); }; $scope.toUser = function (id) { $state.go('app.home_dreamdetail',{id:id}); }; $scope.$on('$ionicView.beforeEnter', function () { $scope.isResult = false; $scope.index = 0; $scope.vm = { keyword : "" } $ionicTabsDelegate.showBar(false); // $ionicNavBarDelegate.showBackButton(false); homeService.search('').then(function(result){ $scope.hot_searches = result.data.data.hot_searches; $scope.history_searches = result.data.data.history_searches; }); }); }]); app.controller('interactionAddCtrl', ["$scope","homeService", "$state", "msg","config","common", "$ionicTabsDelegate", "$ionicNavBarDelegate" , function ($scope,homeService, $state, msg,config,common, $ionicTabsDelegate, $ionicNavBarDelegate) { }]); app.controller('homeDreamsCtrl', ["$scope", "$state", "myService", "msg" , function ($scope, $state, myService, msg) { $scope.$on('$ionicView.beforeEnter', function () { myService.myDream().then(function(result){ console.log(result.data.data); $scope.dreams = result.data.data; }); }); $scope.toDetail = function (id) { $state.go('app.home_dreamdetail',{id:id}); }; }]); })(angular.module('app.controllers'));