portal.mkgtu.ru/clientSide/packs/accountingBenefits/form.js

33 lines
2.3 KiB
JavaScript
Raw Permalink Normal View History

2024-03-28 09:51:45 +03:00
//// Этот хитрый скрипт служит для управления чекбоксами "Преимущественное право"/"Льгота". Поскольку для одного и тоже кода может быть несколько состояний specific_law
function updateCheckbox(number) {
//// Сначала парсим хитрый ключ словаря "ХХХХ_YY_Z", где:
//// --- ХХХХ это guid льготы/спец_отметки
//// --- YY флаг: specmark - SpecialMark, priv - Privilege
//// --- Z указывает на "преимущественное право"
var value = $("#lgot_id_".concat(number)).val();
value = value.split("_")[2]; //// поведение описанное ниже мне не понятно, но я его просто воспроизвёл, как того требовала система
if (value == 1) {
$(".field-specific_law_".concat(number)).find($('input[type="checkbox"]')).prop("checked", true);
$(".field-specific_law_".concat(number)).find($('input[type="checkbox"]')).prop("disabled", true);
$(".field-concession_low_".concat(number)).find($('input[type="checkbox"]')).prop("checked", false);
$(".field-concession_low_".concat(number)).find($('input[type="checkbox"]')).prop("disabled", true);
} else if (value == 0) {
$(".field-specific_law_".concat(number)).find($('input[type="checkbox"]')).prop("checked", false);
$(".field-specific_law_".concat(number)).find($('input[type="checkbox"]')).prop("disabled", true);
$(".field-concession_low_".concat(number)).find($('input[type="checkbox"]')).prop("checked", true);
$(".field-concession_low_".concat(number)).find($('input[type="checkbox"]')).prop("disabled", false);
} else {
$(".field-specific_law_".concat(number)).find($('input[type="checkbox"]')).prop("checked", false);
$(".field-concession_low_".concat(number)).find($('input[type="checkbox"]')).prop("checked", false);
$(".field-specific_law_".concat(number)).find($('input[type="checkbox"]')).prop("disabled", false);
$(".field-concession_low_".concat(number)).find($('input[type="checkbox"]')).prop("disabled", false);
}
}
$('.lgot-code').change(function () {
updateCheckbox($(this).data('number'));
});
$('.lgot-code').each(function () {
updateCheckbox($(this).data('number'));
});