parent
5b61396410
commit
8b771a183c
@ -0,0 +1,19 @@
|
|||||||
|
module Mobile
|
||||||
|
module Entities
|
||||||
|
class CourseGroup < Grape::Entity
|
||||||
|
include Redmine::I18n
|
||||||
|
include ApplicationHelper
|
||||||
|
include ApiHelper
|
||||||
|
def self.course_group_expose(f)
|
||||||
|
expose f do |u,opt|
|
||||||
|
if u.is_a?(Hash) && u.key?(f)
|
||||||
|
u[f]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
expose :id
|
||||||
|
expose :name
|
||||||
|
expose :users, using: Mobile::Entities::User
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -0,0 +1,20 @@
|
|||||||
|
<div class="post-container">
|
||||||
|
<div loading-spinner></div>
|
||||||
|
<div class="class-detail-name"><span class="course-name-width hidden inline-block">分班管理</span></div>
|
||||||
|
|
||||||
|
<div ng-repeat="group in groups">
|
||||||
|
<div class="member-banner f13 c-grey3">{{group.name+"("+group.users.length+")"}}</div>
|
||||||
|
<div class="class-member-row f13 c-grey3" ng-repeat="user in group.users">
|
||||||
|
<img ng-src="{{user.img_url}}" width="30" height="30" class="fl ml10 img-circle" /><span class="fl ml10 mt5">{{user.realname == "" ? user.name : user.realname}}</span><img ng-src="/images/wechat/{{user.gender==0 ? 'male' : 'female'}}.png" width="15" class="fl ml10 mt5" />
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div ng-show="course.is_member" class="bottom-tab-wrap mt10">
|
||||||
|
<a ng-show="course.current_user_is_teacher" ng-click="goEditGroup()" class="weixin-tab link-blue2 border-top">编辑</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div ng-show="tip_1" class="blue-title">{{tip_1}}</div>
|
||||||
|
|
||||||
|
<my-alert message="alertService.message" title="alertService.title" visible="alertService.visible" cb="alertService.cb"></my-alert>
|
||||||
|
</div>
|
@ -0,0 +1,48 @@
|
|||||||
|
app.controller('ClassGroupController', ['$scope', 'config','$http', 'auth','$location','$routeParams','alertService','rms','common','$timeout', function($scope, config, $http, auth, $location, $routeParams,alertService,rms,common,$timeout){
|
||||||
|
// common.checkLogin();
|
||||||
|
|
||||||
|
$scope.replaceUrl = function(url){
|
||||||
|
return url;
|
||||||
|
};
|
||||||
|
|
||||||
|
var vm = $scope;
|
||||||
|
var courseid = $routeParams.id;
|
||||||
|
vm.alertService = alertService.create();
|
||||||
|
|
||||||
|
if(!vm.course){
|
||||||
|
$http.get(config.apiUrl+ 'courses/'+courseid+"?token="+auth.token()).then(
|
||||||
|
function(response) {
|
||||||
|
console.log(response.data);
|
||||||
|
if (response.data.status == 0){
|
||||||
|
vm.course = response.data.data;
|
||||||
|
console.log("courses");
|
||||||
|
console.log(response.data.data);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
vm.alertService.showMessage('提示', response.data.message);
|
||||||
|
}
|
||||||
|
if(!vm.course){
|
||||||
|
vm.tip_1 = "该班级不存在或已被删除";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$http.get(config.apiUrl + 'courses/course_groups_withstudent/'+courseid+'?token='+auth.token()).then(
|
||||||
|
function(response) {
|
||||||
|
console.log("groups=");
|
||||||
|
console.log(response);
|
||||||
|
if(response.data.status == 0) {
|
||||||
|
vm.groups = response.data.data;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
vm.groups = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
vm.goEditGroup = function(){
|
||||||
|
$location.path("/edit_class_group").search({id: courseid});
|
||||||
|
}
|
||||||
|
|
||||||
|
}]);
|
@ -0,0 +1,136 @@
|
|||||||
|
|
||||||
|
|
||||||
|
app.controller('EditClassGroupController', ['$scope', '$http', 'auth', 'config', 'alertService','$location','$routeParams','rms','common', function($scope, $http, auth, config, alertService, $location,$routeParams, rms,common){
|
||||||
|
var vm = $scope;
|
||||||
|
var courseid = $routeParams.id;
|
||||||
|
vm.alertService = alertService.create();
|
||||||
|
vm.alertService_2 = alertService.create();
|
||||||
|
|
||||||
|
if(!vm.course){
|
||||||
|
$http.get(config.apiUrl+ 'courses/'+courseid+"?token="+auth.token()).then(
|
||||||
|
function(response) {
|
||||||
|
console.log(response.data);
|
||||||
|
if (response.data.status == 0){
|
||||||
|
vm.course = response.data.data;
|
||||||
|
console.log("courses");
|
||||||
|
console.log(response.data.data);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
vm.alertService.showMessage('提示', response.data.message);
|
||||||
|
}
|
||||||
|
if(!vm.course){
|
||||||
|
vm.tip_1 = "该班级不存在或已被删除";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$http.get(config.apiUrl + 'courses/course_groups/'+courseid+'?token='+auth.token()).then(
|
||||||
|
function(response) {
|
||||||
|
console.log("groups=");
|
||||||
|
console.log(response);
|
||||||
|
if(response.data.status == 0) {
|
||||||
|
vm.groups = response.data.data;
|
||||||
|
for(var i in vm.groups){
|
||||||
|
vm.groups[i].tmpname = vm.groups[i].course_group.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
vm.groups = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
vm.addGroup = function(){
|
||||||
|
vm.groups.push({tmpname:""});
|
||||||
|
};
|
||||||
|
|
||||||
|
vm.deleteGroup = function(index){
|
||||||
|
var group = vm.groups[index];
|
||||||
|
if(group.course_group){
|
||||||
|
vm.alertService_2.showMessage('提示', '您确定要删除该分班吗?', function() {
|
||||||
|
$http.post(config.apiUrl+'courses/delete_coursegroup', {
|
||||||
|
token: auth.token(),
|
||||||
|
id: courseid,
|
||||||
|
course_group_id:group.course_group.id
|
||||||
|
}).then(function(response){
|
||||||
|
console.log(response);
|
||||||
|
if(response.data.status == 0){
|
||||||
|
vm.alertService.showMessage('提示', "删除成功!",function(){
|
||||||
|
vm.groups.splice(index, 1);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
vm.alertService.showMessage('提示', response.data.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
vm.groups.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
vm.newGroup = function (frm, groups) {
|
||||||
|
frm.$setSubmitted();
|
||||||
|
console.log(groups);
|
||||||
|
|
||||||
|
if(!frm.$valid){
|
||||||
|
console.log(frm.$error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(vm.groups.length == 0){
|
||||||
|
$location.path("/class").search({id: courseid,tag:1});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//不能有相同名称的分班
|
||||||
|
for(var i=0;i< vm.groups.length-1;i++) {
|
||||||
|
for (var j=i+1;j<vm.groups.length;j++){
|
||||||
|
if(vm.groups[i].tmpname == vm.groups[j].tmpname){
|
||||||
|
vm.alertService.showMessage('提示', "分班名称不能重复!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var add_groups = [];
|
||||||
|
var modify_groups = [];
|
||||||
|
|
||||||
|
for(var i in vm.groups){
|
||||||
|
var group = vm.groups[i];
|
||||||
|
if(!group.course_group){
|
||||||
|
add_groups.push(group.tmpname);
|
||||||
|
}
|
||||||
|
else if(group.tmpname != group.course_group.name){
|
||||||
|
modify_groups.push({id:group.course_group.id,name:group.tmpname});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(add_groups.length == 0 && modify_groups.length == 0){
|
||||||
|
vm.alertService.showMessage('提示', "保存分班成功!",function(){
|
||||||
|
$location.path("/class").search({id: courseid,tag:1});
|
||||||
|
return;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//编辑分班
|
||||||
|
$http.post(config.apiUrl+'courses/edit_coursegroup', {
|
||||||
|
token: auth.token(),
|
||||||
|
id: courseid,
|
||||||
|
add_groups: add_groups,
|
||||||
|
modify_groups: modify_groups
|
||||||
|
}).then(function(response){
|
||||||
|
console.log(response);
|
||||||
|
if(response.data.status == 0){
|
||||||
|
vm.alertService.showMessage('提示', "保存分班成功!",function(){
|
||||||
|
$location.path("/class").search({id: courseid,tag:1});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
vm.alertService.showMessage('提示', response.data.message,function(){
|
||||||
|
$location.path("/class").search({id: courseid,tag:1});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}] );
|
Loading…
Reference in new issue