define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
var Controller = {
index: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'train/exam/index' + location.search,
add_url: 'train/exam/add',
edit_url: 'train/exam/edit',
del_url: 'train/exam/del',
multi_url: 'train/exam/multi',
table: 'train_exam',
}
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
columns: [
[
{checkbox: true},
// {field: 'id', title: __('Id')},
{field: 'title', title: __('Title'), width: '200'},
{field: 'start_time', title: __('Start_time'), operate: 'RANGE', addclass: 'datetimerange'},
{field: 'end_time', title: __('End_time'), operate: 'RANGE', addclass: 'datetimerange'},
{field: 'duration', title: __('Duration'), searchable: false},
{field: 'total', title: __('总分'), searchable: false},
{field: 'qualified', title: __('Qualified'), searchable: false},
{
field: 'status',
title: __('Status'),
formatter: Table.api.formatter.status,
searchList: {0: '待发布', 1: '已发布'},
custom: {0: 'gray', 2: 'success'}
},
{
field: 'operate',
title: __('Operate'),
width: '300',
table: table,
events: Table.api.events.operate,
formatter: Table.api.formatter.operate,
buttons: [
{
name : 'manage_questions',
title : '配置考题',
text : '配置考题',
icon : 'fa fa-calendar-o',
classname: 'btn btn-xs btn-info btn-dialog',
url : 'train/exam/manageQuestions',
visible : function (row){
return row.status === 1 ? false : true
},
extend : 'data-toggle="tooltip" data-area=\'["1100px","600px"]\''
},
{
name : 'manage_questions',
title : '查看考题',
text : '查看考题',
icon : 'fa fa-calendar-check-o',
classname: 'btn btn-xs btn-info btn-dialog',
url : 'train/exam/examQuestionList',
visible : function (row){
return row.status === 1 ? true : false
},
extend : 'data-toggle="tooltip" data-area=\'["1100px","600px"]\''
},
{
name : 'manage_users',
title : '管理考生',
text : '管理考生',
icon : 'fa fa-user-o',
classname: 'btn btn-xs btn-warning btn-dialog',
extend : 'data-toggle="tooltip" data-area=\'["1100px","600px"]\'',
visible : function (row){
return row.status === 1 ? false : true
},
url : 'train/exam/manageAdmins',
},
{
name : 'manage_users',
title : '查看考生',
text : '查看考生',
icon : 'fa fa-user',
classname: 'btn btn-xs btn-warning btn-dialog',
extend : 'data-toggle="tooltip" data-area=\'["1100px","600px"]\'',
visible : function (row){
return row.status === 1 ? true : false
},
url : 'train/exam/examAdminList',
},
{
name : 'push_exam',
title : '发布',
text : '发布',
extend : 'data-toggle="tooltip"',
icon : 'fa fa-hand-stop-o',
classname: 'btn btn-xs btn-info btn-ajax',
confirm : '确认发布考试?',
url : 'train/exam/pushExam',
visible : function (row){
return row.status === 1 ? false : true
},
success: function (data, ret) {
table.bootstrapTable('refresh')
},
},
{
name : 'push_exam',
text : '发布',
icon : 'fa fa-hand-stop-o',
classname: 'btn btn-xs btn-default disabled',
visible : function (row){
return row.status === 1 ? true : false
},
}
],
}
]
]
});
// 为表格绑定事件
Table.api.bindevent(table);
},
managequestions: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'train/question/index' + location.search,
table: 'train_question',
}
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
clickToSelect:false,
queryParams: function queryParams(params) {
params.exam_id = $('input[name="exam_id"]').val();
return params;
},
columns: [
[
{checkbox: true, field: 'checkbox'},
{field: 'title', title: __('题目标题'), width: '50%', operate: 'LIKE %...%',},
{
field: 'class_id',
title: __('分类'),
formatter: Table.api.formatter.label,
searchList: $.getJSON('train/class_dict/classSelectList')
},
{
field: 'type',
title: __('类型'),
formatter: Table.api.formatter.label,
searchList: {1: '单选', 2: '多选', 3: '判断'},
},
{field: 'result', title: __('正确答案'), searchable: false},
{field: 'created_at', title: __('创建时间'), operate:'RANGE', addclass:'datetimerange'},
{
field: 'operate',
title: __('Operate'),
table: table,
events: Table.api.events.operate,
formatter: Table.api.formatter.operate,
buttons: [
{
name : 'detail',
title : '详情',
text : '详情',
extend : 'data-toggle="tooltip"',
icon : 'fa fa-th-list',
classname: 'btn btn-xs btn-warning btn-dialog',
url : 'train/question/detail',
}
]
}
]
]
});
table.on('post-body.bs.table', function (e, settings, json, xhr) {
$('.form-commonsearch input[name="createdAt"]').attr('autocomplete','off')
})
$('.btn-manage').click(function (){
var question_ids = Table.api.selectedids(table)
var exam_id = $('input[name="exam_id"]').val()
Fast.api.ajax({
url: 'train/exam/manageQuestions',
data: {
question_ids: question_ids,
ids: exam_id
}
}, function (data) {
table.bootstrapTable('refresh')
});
})
// 为表格绑定事件
Table.api.bindevent(table);
},
examquestionlist: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'train/question/index' + location.search,
table: 'train_question',
}
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
clickToSelect:false,
queryParams: function queryParams(params) {
params.show_exam_id = $('input[name="exam_id"]').val();
return params;
},
columns: [
[
{checkbox: true},
{field: 'title', title: __('题目标题'), width: '50%', operate: 'LIKE %...%',},
{
field: 'class_id',
title: __('分类'),
formatter: Table.api.formatter.label,
searchList: $.getJSON('train/class_dict/classSelectList')
},
{
field: 'type',
title: __('类型'),
formatter: Table.api.formatter.label,
searchList: {1: '单选', 2: '多选', 3: '判断'},
},
{field: 'score', title: __('分数'), searchable: false},
{field: 'result', title: __('正确答案'), searchable: false},
{field: 'created_at', title: __('创建时间'), operate:'RANGE', addclass:'datetimerange'},
{
field: 'operate',
title: __('Operate'),
table: table,
events: Table.api.events.operate,
formatter: Table.api.formatter.operate,
buttons: [
{
name : 'detail',
title : '详情',
text : '详情',
extend : 'data-toggle="tooltip"',
icon : 'fa fa-th-list',
classname: 'btn btn-xs btn-warning btn-dialog',
url : 'train/question/detail',
}
]
}
]
]
});
table.on('post-body.bs.table', function (e, settings, json, xhr) {
$('.form-commonsearch input[name="createdAt"]').attr('autocomplete','off')
})
//当加载数据成功时
// table.on('load-success.bs.table', function (e, data) {
// $('.total-score').text('总分数:' + data.total_score)
// $('.qualified').text('合格分数:' + data.qualified)
// });
$('.btn-remove').click(function (){
var question_ids = Table.api.selectedids(table)
var exam_id = $('input[name="exam_id"]').val()
Fast.api.ajax({
url: 'train/exam/removeQuestions',
data: {
question_ids: question_ids,
ids: exam_id
}
}, function (data) {
table.bootstrapTable('refresh')
});
})
$('.btn-set-score').click(function (){
layer.prompt({title: '输入分数,并确认', formType: 0}, function (value, index) {
var question_ids = Table.api.selectedids(table)
var exam_id = $('input[name="exam_id"]').val()
Fast.api.ajax({
url: 'train/exam/setScore',
data: {
question_ids: question_ids,
ids: exam_id,
score: value
}
}, function (data, ret) {
table.bootstrapTable('refresh')
updateScoreText(exam_id)
layer.close(index);
}, function (data, ret) {
Toastr.error(ret.msg)
});
});
})
updateScoreText = function (exam_id) {
Fast.api.ajax({
url: 'train/exam/getExam',
data: {ids: exam_id}
}, function (data) {
$('#exam_total').text(data.total)
$('#exam_qualified').text(data.qualified)
})
}
// 为表格绑定事件
Table.api.bindevent(table);
},
manageadmins: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'train/exam/adminIndex',
}
});
let table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
showToggle: false,
showColumns: false,
queryParams: function queryParams(params) {
params.exam_id = $('input[name="exam_id"]').val();
return params;
},
columns: [
[
{field: 'checkbox', checkbox: true},
{field: 'avatar', title: __('头像'), formatter: Table.api.formatter.image, searchable: false},
{field: 'name', title: __('姓名'), operate: 'LIKE %...%'},
{field: 'title', title: __('职位'), operate: 'LIKE %...%'},
{field: 'mobile', title: __('手机号')},
]
]
});
$('.btn-manage').click(function (){
var admin_ids = Table.api.selectedids(table)
var exam_id = $('input[name="exam_id"]').val()
Fast.api.ajax({
url: 'train/exam/manageAdmins',
data: {
admin_ids: admin_ids,
ids: exam_id
}
}, function (data) {
table.bootstrapTable('refresh')
});
})
// 为表格绑定事件
Table.api.bindevent(table);
},
examadminlist: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'train/exam/adminIndex',
}
});
let table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
showToggle: false,
showColumns: false,
queryParams: function queryParams(params) {
params.show_exam_id = $('input[name="exam_id"]').val();
let filter = JSON.parse(params.filter);
let op = JSON.parse(params.op);
if(op.groups_text){
params.group_id = filter.groups_text;
delete(filter.groups_text)
delete(op.groups_text)
}
params.filter = JSON.stringify(filter);
params.op = JSON.stringify(op);
return params;
},
columns: [
[
{field: 'checkbox', checkbox: true, },
{field: 'avatar', title: __('头像'), formatter: Table.api.formatter.image, searchable: false},
{field: 'name', title: __('姓名'), operate: 'LIKE %...%'},
{field: 'title', title: __('职位'), operate: 'LIKE %...%'},
{field: 'mobile', title: __('手机号')},
{
field: 'scores',
title: __('得分'),
formatter: function (val, row) {
if (row.status !== 2) {
return '未考';
}
return ''+ val +'';
}
},
{
field: 'showMistakes',
title: __('Operate'),
width: '300',
table: table,
events: Table.api.events.operate,
formatter: Table.api.formatter.operate,
buttons: [
{
name : 'showMistakes',
title : '查看错题',
text : '查看错题',
icon : 'fa fa-exclamation-circle',
classname: 'btn btn-xs btn-warning btn-dialog',
url : 'train/exam/showMistakes?result_id={result_id}',
visible : function (row){
return row.status === 2 ? true : false
},
extend : 'data-toggle="tooltip" data-area=\'["800px","500px"]\''
},
{
name : 'showMistakes',
title : '查看错题',
text : '查看错题',
icon : 'fa fa-exclamation-circle',
classname: 'btn btn-xs btn-default disabled',
visible : function (row){
return row.status !== 2 ? true : false
},
}
],
}
]
]
});
$('.btn-remove').click(function (){
var admin_ids = Table.api.selectedids(table)
var exam_id = $('input[name="exam_id"]').val()
Fast.api.ajax({
url: 'train/exam/removeAdmins',
data: {
admin_ids: admin_ids,
ids: exam_id
}
}, function (data) {
table.bootstrapTable('refresh')
});
})
// 为表格绑定事件
Table.api.bindevent(table);
},
add: function () {
Controller.api.bindevent();
},
edit: function () {
Controller.api.bindevent();
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
}
}
};
return Controller;
});