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; });