Files
EasySoft-ZenTaoPMS/module/metric/js/view.ui.js
T
2023-09-21 12:53:48 +08:00

126 lines
4.0 KiB
JavaScript

window.testMetric = function()
{
let formData = $('.params-form').serialize();
const postData = {};
const params = new URLSearchParams(formData);
for(const[key, value] of params.entries())
{
const decodedKey = decodeURIComponent(key);
const decodedValue = decodeURIComponent(value);
if(!(decodedKey in postData)) postData[decodedKey] = [];
postData[decodedKey].push(decodedValue);
}
let url = $.createLink('metric', 'view', 'id=' + metricID);
$.post(url, postData, function(response){
response = JSON.parse(response);
if(response.result == 'success')
{
$('.response-box').removeClass('text-danger').html(response.queryResult);
}
else
{
$('.response-box').addClass('text-danger').html(response.errors);
}
})
}
function toggleVarType(event)
{
let varTypeControl = $(event.target);
let varName = varTypeControl.closest('.form-body').children().first().text().slice(1);
let varType = varTypeControl.val();
let optionsControl = varTypeControl.closest('.form-body-group').find('#options');
if(varType == 'select')
{
optionsControl.removeAttr('disabled');
toggleOptionsControl('defaultValue', varName, 'select', optionsControl.val());
toggleOptionsControl('queryValue', varName, 'select', optionsControl.val());
}
else if(varType == 'date')
{
optionsControl.attr('disabled', true);
toggleOptionsControl('defaultValue', varName, 'date', optionsControl.val());
toggleOptionsControl('queryValue', varName, 'date', optionsControl.val());
}
else if(varType == 'input')
{
optionsControl.attr('disabled', true);
toggleOptionsControl('defaultValue', varName, 'input',optionsControl.val());
toggleOptionsControl('queryValue', varName, 'input', optionsControl.val());
}
}
function toggleOptionsControl(controlName, paramName, controlType, optionsType)
{
let name = controlName + '-' + paramName;
let selectBox = $('.' + name + '-select');
let dateBox = $('.' + name + '-date');
let inputBox = $('.' + name + '-input');
let selectControl = selectBox.find('input.pick-value');
let dateControl = dateBox.find('input.pick-value');
let inputControl = inputBox.find('input.form-control');
if(controlType == 'select')
{
dateBox.addClass('hidden');
inputBox.addClass('hidden');
selectBox.removeClass('hidden');
dateControl.attr('disabled', true);
inputControl.attr('disabled', true);
selectControl.removeAttr('disabled');
loadOptionsList(optionsType, selectBox);
}
else if(controlType == 'date')
{
selectBox.addClass('hidden');
inputBox.addClass('hidden');
dateBox.removeClass('hidden');
selectControl.attr('disabled', true);
inputControl.attr('disabled', true);
dateControl.removeAttr('disabled');
}
else if(controlType == 'input')
{
selectBox.addClass('hidden');
dateBox.addClass('hidden');
inputBox.removeClass('hidden');
selectControl.attr('disabled', true);
dateControl.attr('disabled', true);
inputControl.removeAttr('disabled');
}
}
function toggleOptionsList(event)
{
let varName = $(event.target).closest('.form-body').children().first().text().slice(1);
let optionsType = $(event.target).val();
let selectControl = $('.' + name + '-select');
loadOptionsList(optionsType, $('.' + 'defaultValue-' + varName + '-select'));
loadOptionsList(optionsType, $('.' + 'queryValue-' + varName + '-select'));
}
function loadOptionsList(optionsType, selectControl)
{
$.get($.createLink('metric', 'ajaxGetControlOptions', 'optionType=' + optionsType), function(options)
{
const defaultValuePicker = selectControl.find('.pick-value').zui('picker');
options = JSON.parse(options);
defaultValuePicker.render({items: options});
});
}