EIOS/rabprog/tpl/mod_rpd_razdel5_4.html

273 lines
16 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{function razdel_54_tr fo='' escape=0}
<tr class="table_54_tr" data-fo="{$fo}">
<td>
<a href="#" class="btn btn-secondary btn-sm table_54_del_tr" data-fo="{$fo}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Удаление строки из таблицы, не забывайте сохранять!"><i class="bi bi-trash"></i></a>
</td>
<td><input type="text" class="form-control form-control-sm table_54_td_{$fo} table_54_tdinps table_54_td_{$fo}_sem" data-fo="{$fo}" data-name="sem" value="{if isset($data.sem)}{$data.sem}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_54_td_{$fo} inputModal" data-fo="{$fo}" data-name="nametema" value="{if isset($data.nametema)}{$data.nametema|escape}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_54_td_{$fo} table_54_tdinp" data-fo="{$fo}" data-name="ofo" value="{if isset($data.ofo)}{$data.ofo}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_54_td_{$fo} table_54_tdinp" data-fo="{$fo}" data-name="zfo" value="{if isset($data.zfo)}{$data.zfo}{/if}"></td>
<td><input type="text" class="form-control form-control-sm table_54_td_{$fo} table_54_tdinp" data-fo="{$fo}" data-name="ozfo" value="{if isset($data.ozfo)}{$data.ozfo}{/if}"></td>
<td><textarea class="form-control form-control-sm table_54_td_{$fo} inputModal" data-fo="{$fo}" data-name="soderg">{if isset($data.soderg)}{$data.soderg|escape}{/if}{if $escape==1}|/textarea|{else}</textarea>{/if}</td>
<td style="position: relative;"><input type="text" class="form-control form-control-sm table_54_td_{$fo} formkomp54" data-fo="{$fo}" data-name="formkomp" value="{if isset($data.formkomp)}{$data.formkomp|escape}{/if}"></td>
<td><textarea class="form-control form-control-sm table_54_td_{$fo} inputModal" data-fo="{$fo}" data-name="rezusv">{if isset($data.rezusv)}{$data.rezusv|escape}{else}Знать: Уметь: Владеть:{/if}{if $escape==1}|/textarea|{else}</textarea>{/if}</td>
<td style="position: relative;"><input type="text" class="form-control form-control-sm table_54_td_{$fo} obrtech54" data-fo="{$fo}" data-name="obrtech" value="{if isset($data.obrtech)}{$data.obrtech|escape}{/if}"></td>
</tr>
{/function}
{literal}<script>$(document).ready(function(){
function checkHours4_54(fo0,fo1,sem,val){
let znach = parseFloat($("#tabl4vz_"+fo1+"_"+sem+"_lek").text());
val = parseFloat(val);
//console.log("fo0="+fo0+"; fo1="+fo1+"; sem="+sem+"; val="+sem+"; znach="+znach);
let sum1 = 0;
let semc=0;
let tr = null;
let valc = 0;
$(".table_54_tr[data-fo=1]").each(function(){
tr = $(this);
semc = parseFloat(tr.find("[data-name=sem]").val()); //текущий семестр
if(semc == parseFloat(sem)){
valc = parseFloat(tr.find("[data-name="+fo0+"]").val());
sum1 += valc;
}
})
if (sum1>znach){
window.ToastShow1("Ошибка часов!","В текущей позиции для семестра "+sem+"<br>не может быть больше "+znach+"<br>Сумма введенных часов равна <b>"+sum1+"</b>",1);
return 0;
}else{
return 1;
}
}
//Изменение полей в таблице семестр, проверка на существование
$(document).on("change", ".table_54_tdinps", function() {
let fo = $(this).data('fo'); if(fo=='1') fo='och'; if(fo=='2') fo='zao'; if(fo=='3') fo='ochzao';
let sem = $(this).val();
let err=0;
if($("#tabl4s_och_"+sem).length){}else{
if($("#tabl4s_zao_"+sem).length){}else{
if($("#tabl4s_ochzao_"+sem).length){}else{ err=1;}
}
}
if(err==1){
window.ToastShow1("Ошибка семестра!","Семестра "+sem+" нет в таблице 4, введите существующий семестр!",1);
$(this).val("");
}
});
//Удаление строк из таблицы
$(document).on("click", ".table_54_del_tr", function(){
let fo = $(this).data('fo');
$(this).closest( "tr" ).remove();
calc54(fo);
$(".tooltip").hide();
return false;
});
//Изменение полей в таблице
$(document).on("change", ".table_54_tdinp", function(){
let fo = $(this).data('fo');
let fo0 = $(this).data('name');
let fo1 = ''; if(fo0=='ofo') fo1 = 'och'; if(fo0=='zfo') fo1 = 'zao'; if(fo0=='ozfo') fo1 = 'ochzao';
let sem = $(this).closest('tr').find(".table_54_td_"+fo+"_sem").val();
let val = $(this).val();
let err = checkHours4_54(fo0,fo1,sem,val);
if(err==0) $(this).val(0);
calc54(fo);
});
function calc54(fo){
let name = '',check=1;
let ofo=0, zfo=0, ozfo=0,val=0;
$(".table_54_td_"+fo).each(function( index ) {
name = $(this).data('name');
if($(this).val()=='') val=0; else val = parseFloat($(this).val().replace(',','.'));
if(name=='ofo') ofo = ofo + val;
if(name=='zfo') zfo = zfo + val;
if(name=='ozfo') ozfo = ozfo + val;
});
let ofoI = 0; valI = $(".table_54itogo_"+fo+"_ofo").html().replace(',','.'); if(valI=='') ofoI = 0; else ofoI = parseFloat(valI);
let zfoI = 0; valI = $(".table_54itogo_"+fo+"_zfo").html().replace(',','.'); if(valI=='') zfoI = 0; else zfoI = parseFloat(valI);
let ozfoI = 0; valI = $(".table_54itogo_"+fo+"_ozfo").html().replace(',','.'); if(valI=='') ozfoI = 0; else ozfoI = parseFloat(valI);
if (ofo!=ofoI){ $(".table_54itogo_"+fo+"_ofo").css({'color':'#dc3545'}); check=0; }
else{ $(".table_54itogo_"+fo+"_ofo").css({'color':'#198754'}); }
if (zfo!=zfoI){ $(".table_54itogo_"+fo+"_zfo").css({'color':'#dc3545'}); check=0; }
else{ $(".table_54itogo_"+fo+"_zfo").css({'color':'#198754'}); }
if (ozfo!=ozfoI){ $(".table_54itogo_"+fo+"_ozfo").css({'color':'#dc3545'}); check=0; }
else{ $(".table_54itogo_"+fo+"_ozfo").css({'color':'#198754'}); }
if(check==1) $(".table_54_td_"+fo+"_btnsave").show(); else $(".table_54_td_"+fo+"_btnsave").hide();
}
//Добавление строки в таблицу
$(document).on("click", ".btn_add_table_54_tr", function(){
let fo = $(this).data('fo');
let tr = $('#table_54_orig_'+fo).val(); //получили оригинал
$('#table_54_'+fo).append(tr.replace('|/textarea|','</textarea>')); //добавили
return false;
});
//Выбор компетенций для поля
var formkomp54El=null;
$(document).on("click", ".formkomp54", function(){
//console.log("1");
if($(".formkomp54_div").length){ }else {
formkomp54El = $(this);
let val = formkomp54El.val();
let index = "";
let comp = "";
let body = "";
let check = '';
$(".comp3_items").each(function () {
index = $(this).data("index");
comp = $(this).data("comp");
if (val.indexOf(index)>=0) check=' CHECKED'; else check='';
body += "<input type='CHECKBOX' class='form-checkbox formkomp54_checkbox' "+check+" data-index='" + index + "' data-comp='" + comp + "'> <b>" + index + "</b> " + comp + "<br>";
});
$(this).after("<div class='formkomp54_div'><div class='formkomp54_div_close'><a href='#' class='btn btn-sm btn-danger formkomp54_div_close_btn'><i class='bi bi-x-circle'></i></a></div>" + body + "</div>");
}
});
$(document).on("click", ".formkomp54_checkbox", function(){
let index = $(this).data("index");
let val = formkomp54El.val();
if ($(this).is(':checked')){
val += index+"; ";
}else{
val = val.replace(index+"; ","");
}
formkomp54El.val(val);
});
$(document).on("click", ".formkomp54_div_close_btn", function(){
$(this).closest(".formkomp54_div").remove();
return false;
});
//Выбор Образовательных технологий для поля
var obrtech54El=null;
$(document).on("click", ".obrtech54", function(){
if($(".obrtech54_div").length){ }else {
obrtech54El = $(this);
let val = obrtech54El.val();
let index = "";
let comp = "";
let body = "Выберите или выше напишите своё!<br>";
let check = '';
$(".obrtech_item").each(function () {
name = $(this).data("name");
if (val.indexOf(name)>=0){}
else {
body += "<a href=# class='obrtech_item_a' data-name='" + name + "'> " + name + "</a><br>";
}
});
$(this).after("<div class='obrtech54_div'><div class='obrtech54_div_close'><a href='#' class='btn btn-sm btn-danger obrtech54_div_close_btn'><i class='bi bi-x-circle'></i></a></div>" + body + "</div>");
}
});
$(document).on("click", ".obrtech_item_a", function(){
let name = $(this).data("name");
let oldval = obrtech54El.val();
obrtech54El.val(oldval+', '+name);
$(this).remove();
//$(this).closest(".obrtech54_div").remove();
return false;
});
$(document).on("click", ".obrtech54_div_close_btn", function(){
$(this).closest(".obrtech54_div").remove();
return false;
});
})</script>{/literal}
{function razdel_54}
<div class="razdel5_4">
{assign var=fo value='1'}
<p>Лекционный курс</p>
<textarea id="table_54_orig_{$fo}" style="display: none;">{razdel_54_tr fo=$fo escape=1}</textarea>
<table class="table table-bordered table-sm">
<thead>
<tr>
<th class="text-center" rowspan="2"></th>
<th class="text-center" rowspan="2">Сем</th>
<th class="text-center" rowspan="2">Наименование темы дисциплины</th>
<th class="text-center" colspan="3">Трудоемкость (часы)</th>
<th class="text-center" rowspan="2">Содержание</th>
<th class="text-center" rowspan="2">Формируемые компетенции</th>
<th class="text-center" rowspan="2">Результаты освоения (знать, уметь, владеть)</th>
<th class="text-center" rowspan="2">Образовательные технологии</th>
</tr>
<tr>
<th class="text-center">ОФО</th>
<th class="text-center">ЗФО</th>
<th class="text-center">ОЗФО</th>
</tr>
<tr>
<th class="col-1 text-center" style="width: 20px;">
<a href="#" class="btn btn-sm btn-warning btn_add_table_54_tr" data-fo="{$fo}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Добавление строки"><i class="bi bi-plus-square"></i></a>
</th>
<th class="col-1 text-center" style="width: 20px;">1</th>
<th class="col-2 text-center">2</th>
<th class="col-1 text-center" style="width: 20px;">3</th>
<th class="col-1 text-center" style="width: 20px;">4</th>
<th class="col-1 text-center" style="width: 20px;">5</th>
<th class="col-4 text-center">6</th>
<th class="col-1 text-center">7</th>
<th class="col-1 text-center">8</th>
<th class="col-1 text-center">9</th>
</tr>
</thead>
<tbody id="table_54_{$fo}">
{if isset($save)&&count($save)&&count($save.razdel5_4)&&isset($save.razdel5_4[$fo])}
{foreach from=$save.razdel5_4[$fo] item=ss}
{razdel_54_tr fo=$fo data=$ss}
{/foreach}
{/if}
{razdel_54_tr fo=$fo}
</tbody>
<tfoot>
<tr>
<td>
<a href="#" class="btn btn-sm btn-danger table_54_td_{$fo}_btnsave btnsave_table" data-tds="table_54_td_{$fo}" data-form="table_54_{$fo}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="сохранение таблицы" style="display: none;"><i class="bi bi-save"></i></a>
</td>
<td></td>
<td class="fw-bolder">ИТОГО:</td>
<td class="table_54itogo_{$fo}_ofo fw-bolder">{if $sum_ofo!=0}{$sum_ofo}{/if}</td>
<td class="table_54itogo_{$fo}_zfo fw-bolder">{if $sum_zfo!=0}{$sum_zfo}{/if}</td>
<td class="table_54itogo_{$fo}_ozfo fw-bolder">{if $sum_ozfo!=0}{$sum_ozfo}{/if}</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tfoot>
</table>
</div>
{/function}
<div class="col-md-12">
<h4>5.4. Содержание разделов дисциплины (модуля) «<u>{$DISCIP_name}</u>», образовательные технологии {if $save.razdel5_4[0][0].sem=='null'}<a href="#" class="btn btn-danger razdelNot_btn" data-state="0" data-razdel="razdel5_4" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Учебным планом не предусмотрено"><i class="bi bi-x-square"></i></a>{else}<a href="#" class="btn btn-secondary razdelNot_btn" data-state="1" data-razdel="razdel5_4" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Учебным планом не предусмотрено"><i class="bi bi-x-square"></i></a>{/if}</h4>
<div class="obrtech_items">{foreach from=$OBRTECH item=obrtechI}<span class="obrtech_item" data-name="{$obrtechI.name}"></span>{/foreach}</div>
{assign var=sum_ofo value=0}
{assign var=sum_zfo value=0}
{assign var=sum_ozfo value=0}
{foreach from=$DISCIPS item=discipsfo key=fo}
{assign var=summ value=0}
{foreach from=$discipsfo.uchebplan.json item=Kurss key=kurs}
{foreach from=$Kurss item=Sems key=sem}
{if isset($Sems.lekcii)}{assign var=summ value=$summ+$Sems.lekcii}{/if}
{*if isset($Sems.lab)}{assign var=summ value=$summ+$Sems.lab}{/if}
{if isset($Sems.pr)}{assign var=summ value=$summ+$Sems.pr}{/if}
{if isset($Sems.srp)}{assign var=summ value=$summ+$Sems.srp}{/if}
{if isset($Sems.krat)}{assign var=summ value=$summ+$Sems.krat}{/if}
{if isset($Sems.kontrol)}{assign var=summ value=$summ+$Sems.kontrol}{/if}
{if isset($Sems.sr)}{assign var=summ value=$summ+$Sems.sr}{/if*}
{/foreach}
{/foreach}
{if $fo=='Очная'}{assign var=sum_ofo value=$sum_ofo+$summ}{/if}
{if $fo=='Заочная'}{assign var=sum_zfo value=$sum_zfo+$summ}{/if}
{if $fo=='Очно-заочная'}{assign var=sum_ozfo value=$sum_ozfo+$summ}{/if}
{/foreach}
{if isset($DISCIPS['Очная'])}
{razdel_54 DISCIPS=$DISCIPS['Очная'] title='Очная' sum_ofo=$sum_ofo sum_zfo=$sum_zfo sum_ozfo=$sum_ozfo}
{else}
{if isset($DISCIPS['Заочная'])}
{razdel_54 DISCIPS=$DISCIPS['Заочная'] title='Заочная' sum_ofo=$sum_ofo sum_zfo=$sum_zfo sum_ozfo=$sum_ozfo}
{else}
{if isset($DISCIPS['Очно-заочная'])}{razdel_54 DISCIPS=$DISCIPS['Очно-заочная'] title='Очно-заочная' sum_ofo=$sum_ofo sum_zfo=$sum_zfo sum_ozfo=$sum_ozfo}{/if}
{/if}
{/if}
<a href="#" class="btn btn-sm btn-info copy_51" data-to="table_54" data-fo="1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Копирование строк из таблицы 5.1 только названия">Скопировать из 5.1</a>
</div>