$(document).on('turbolinks:load', function() { if ($('body.admins-laboratory-shixuns-index-page').length > 0) { var $searchForm = $('.laboratory-shixun-list-form .search-form'); var laboratoryId = $('.laboratory-shixun-list-container').data('id'); $searchForm.find('select#tag_id').select2({ placeholder: "请选择", allowClear: true }); // 定义状态切换监听事件 var defineStatusChangeFunc = function (doElement, undoElement, url, callback) { $('.laboratory-shixun-list-container').on('click', doElement, function () { var $doAction = $(this); var $undoAction = $doAction.siblings(undoElement); var laboratoryShixunId = $doAction.data('id'); customConfirm({ content: '确认进行该操作吗?', ok: function () { $.ajax({ url: '/admins/laboratories/' + laboratoryId + '/laboratory_shixuns/' + laboratoryShixunId + url, method: 'POST', dataType: 'json', success: function () { show_success_flash(); $doAction.hide(); $undoAction.show(); if (callback && typeof callback === "function") { callback(laboratoryShixunId, url); } } }); } }); }); } // 首页展示与取消首页展示 var homepageShowCallback = function (laboratoryShixunId, url) { var $laboratoryShixunItem = $('.laboratory-shixun-list-container').find('.laboratory-shixun-item-' + laboratoryShixunId); if (url === '/homepage') { $laboratoryShixunItem.find('.homepage-badge').show(); } else { $laboratoryShixunItem.find('.homepage-badge').hide(); } } defineStatusChangeFunc('.homepage-show-action', '.homepage-hide-action', '/homepage', homepageShowCallback); defineStatusChangeFunc('.homepage-hide-action', '.homepage-show-action', '/cancel_homepage', homepageShowCallback); // 添加实训功能 var $addModal = $('.modal.admin-add-laboratory-shixun-modal'); var $addForm = $addModal.find('form.admin-add-laboratory-user-form'); var $shixunSelect = $addForm.find('select.shixun-select'); $addModal.on('show.bs.modal', function(){ $addModal.find('.error').html(''); $shixunSelect.select2('val', ' '); }); $shixunSelect.select2({ theme: 'bootstrap4', placeholder: '请输入实训名称/创建者检索', multiple: true, closeOnSelect: false, ajax: { delay: 500, url: '/admins/laboratories/' + laboratoryId + '/shixuns_for_select', dataType: 'json', data: function(params){ return { keyword: params.term, page: params.page || 1, per_page: 20 }; }, processResults: function(data, params){ params.page = params.page || 1; return { results: data.shixuns, pagination: { more: (params.page * 20) < data.count } }; } }, templateResult: function (item) { if(!item.id || item.id === '') return item.text; var ele = '' ele += '' + item.name + ''; ele += ' -- ' + item.creator_name + ''; ele += ' -- ' + item.status_text+ ''; ele += ''; return $(ele); }, templateSelection: function(item){ if (item.id) { } var ele = '' + (item.name || item.text) + ' -- ' + item.creator_name + '' return $(ele); } }); $addModal.on('click', '.submit-btn', function(){ $addModal.find('.error').html(''); var shixunIds = $shixunSelect.val(); if (shixunIds && shixunIds.length > 0) { $.ajax({ method: 'POST', dataType: 'json', url: '/admins/laboratories/' + laboratoryId + '/laboratory_shixuns', data: { shixun_ids: shixunIds }, success: function(){ show_success_flash(); window.location.reload(); }, error: function(res){ $addModal.find('.error').html(res.responseJSON.message); } }); } else { $addModal.find('.error').html('请选择实训'); } }); } })