UNPKG

unserver-unify

Version:

128 lines (123 loc) 3.98 kB
'use strict'; angular.module('bamboo.course').controller('KnowledgesPracticeCtrl', function($scope, $stateParams, ExamService, CommonService, CourseApi, ApiService, $q) { var _self = this; this.showTab2='pgrid'; this.id = $stateParams.cid; this.practicePicUrl = ApiService.SHOST + '/lcourse/' + this.id + '/'; console.log(_self.id); function getKnowLedgeSummary() { var deferred = $q.defer(); _self.knowledgesData = {}; var info = { action: "getKnowledgeTestSummary", cid: _self.id, }; ExamService.examApi(info, function(result) { console.log(result); if (result) { angular.forEach(_self.Knowledges, function(item) { var key = item.key; if (result[key]) { item.result = getcalresult(result[key], key); item.score = result[key].score*10; } if (item.items && item.items.length) { angular.forEach(item.items, function(_item) { var _key = _item.key; if (result[_key]) { _item.result = getcalresult(result[_key], _key); _item.score = result[_key].score*10; } }) } _self.knowledgesData[key] = item; }); deferred.resolve(true); } else { deferred.resolve(true); } }); return deferred.promise; } function getPracticeInfo() { var deferred = $q.defer(); var info = { action: "getCourseKnowledgeQuestionCounters", lid: _self.id, }; ExamService.examApi(info, function(result) { console.log(result); _self.counters = result.counterinfo; angular.forEach(_self.counters,function(val,key){ _self.totalq+=val; }) var category = {}; angular.forEach(result.courses, function(course, index) { if (course.knowledgeCat) { category = angular.merge({}, category, course.knowledgeCat); } }) if (result.cat) { category = angular.merge({}, category, result.cat); } var catList = []; CommonService.getArray(category, catList, 0, ''); _self.Knowledges = catList; console.log(_self.Knowledges); deferred.resolve(true); }); return deferred.promise; } function getcalresult(val, key) { var total = _self.counters[key]; if (total) { var options = { total: total, counter: val.counter, qs: val.qs, completeRate: val.qs * 100 / total, correctRate: val.correct * 100 / (val.total), } if (options.qs > total) { options.qs = total; } return options; } return {}; } function getPracticeList() { var info = { id: _self.id, action: "getKnowledgeGroups", } CourseApi.lcApi(info, function(data) { $scope.practiceList = data; angular.forEach($scope.practiceList, function(_item) { _item.score = 0; _item.question = 0; if(_item.knowledges) { angular.forEach(_item.knowledges, function(val) { if(_self.knowledgesData[val]&&_self.knowledgesData[val].score){ _item.score+=_self.knowledgesData[val].score; } if(_self.knowledgesData[val]&&_self.knowledgesData[val].result&&_self.knowledgesData[val].result['total']){ _item.question+=_self.knowledgesData[val].result['total']; } else if(_self.counters[val]){ _item.question+=_self.counters[val]; } }); } }); console.log($scope.practiceList); console.log(_self.knowledgesData); console.log(_self.counters); }); } getPracticeInfo().then(function(cat){ getKnowLedgeSummary().then(function(result){ getPracticeList(); }); }); });