Joywork/js/kladr-custom.js

164 lines
5.3 KiB
JavaScript
Raw Normal View History

2026-05-22 20:21:54 +02:00
$('[name="adres"]').kladr({
oneString: true,
labelFormat: function (obj, query) {
var label = '';
var name = obj.name.toLowerCase();
query = query.name.toLowerCase();
var start = name.indexOf(query);
start = start > 0 ? start : 0;
if (obj.parents) {
for (var k = 0; k < obj.parents.length; k++) {
var parent = obj.parents[k];
if (parent.contentType !== "region" && parent.contentType !== "cityOwner" && parent.name) {
if (label) {
label += ', ';
}
label += parent.typeShort + '.' + ' ' + parent.name;
}
}
}
if (label) {
label += ', ';
}
if (obj.typeShort) {
label += obj.typeShort + '. ';
}
if (query.length < obj.name.length) {
label += obj.name.substr(0, start);
label += '<strong>' + obj.name.substr(start, query.length) + '</strong>';
label += obj.name.substr(start + query.length, obj.name.length - query.length - start);
} else {
label += '<strong>' + obj.name + '</strong>';
}
return label;
},
valueFormat : function (obj, query) {
var label = '';
var name = obj.name.toLowerCase();
query = query.name.toLowerCase();
var start = name.indexOf(query);
start = start > 0 ? start : 0;
if (obj.parents) {
for (var k = 0; k < obj.parents.length; k++) {
var parent = obj.parents[k];
if (parent.contentType !== "region" && parent.contentType !== "cityOwner" && parent.name) {
if (label) {
label += ', ';
}
label += parent.typeShort + '.' + ' ' + parent.name;
}
}
}
if (label) {
label += ', ';
}
if (obj.typeShort) {
label += obj.typeShort + '. ';
}
if (query.length < obj.name.length) {
label += obj.name.substr(0, start);
label += obj.name.substr(start, query.length);
label += obj.name.substr(start + query.length, obj.name.length - query.length - start);
} else {
label += obj.name;
}
return label;
},
select : function( obj ) {
if (obj) {
$('#kladr_id').val(obj.id);
if ($('#dom').length > 0) {
if (obj.contentType === 'building') {
var litera = "";
var korpus = "";
var literaIndex = obj.name.indexOf("литера");
var korpusIndex = obj.name.indexOf("корпус");
if (literaIndex > 0) {
var literaResult = obj.name.split("литера");
if (literaResult && literaResult.length > 1) {
litera = $.trim(literaResult[1]);
obj.name = $.trim(literaResult[0]);
}
}
if (korpusIndex > 0) {
var korpusResult = obj.name.split("корпус");
if (korpusResult && korpusResult.length > 1) {
korpus = $.trim(korpusResult[1]);
obj.name = $.trim(korpusResult[0]);
}
}
$('#dom').val(obj.name);
$('#litera').val(litera);
$('#korpus').val(korpus);
var label = '';
if (obj.parents) {
for (var k = 0; k < obj.parents.length; k++) {
var parent = obj.parents[k];
if (parent.contentType !== "region" && parent.contentType !== "cityOwner" && parent.name) {
if (label) {
label += ', ';
}
label += parent.typeShort + '.' + ' ' + parent.name;
}
}
if (label) {
$('#adres').val(label);
}
}
}
}
} else {
$('#kladr_id').val("");
if ($('#dom').length > 0) {
$('#dom').val("");
}
}
}
});
$('[name="kladr_type"]').change(function () {
changeObl($(this).val(),$(this).attr('id'));
});
if($('[name="kladr_type"]:checked').val()){
changeObl($('[name="kladr_type"]:checked').val(),$('[name="kladr_type"]:checked').attr('id'));
}else{
$('label[for=kladr_2]').parent().addClass("selected")
$('label[for=kladr_2]').click()
}
function changeObl(value,type) {
console.log(value,type)
if(type == "kladr_1"){
$('[name="adres"]').kladr({
parentType: $.kladr.type.region,
parentId: value,
withParents: true
});
}else if(type == "kladr_2"){
$('[name="adres"]').kladr({
parentType: $.kladr.type.region,
parentId: value,
withParents: true
});
}
}