layui.define(['form', 'jquery'], function (exports) {
var $ = layui.jquery;
var form = layui.form;
var $form = $('form');//当前表单元素
/**
* 传入需要联动的三个下拉选择元素(顺序:省、市、区)
* {
province:'select[name=province]',
city:'select[name=city]',
area:'select[name=area]',
}
*/
var config = {
defElm: {
province: 'select[name=province]',
city: 'select[name=city]',
area: 'select[name=area]',
}
};
var addlink = {
elms: '',
init: function (elms = "") {
elms = elms || config.defElm;
this.elms = elms;
return this;
},
render: function () {
this.elms = this.elms || config.defElm;
slect_init(this.elms);
}
};
function slect_init(elms) {
var el_province = $(elms.province);
var el_city = $(elms.city);
var el_area = $(elms.area);
$.get('../../data/address.json', function (data) {
loadProvince(data);
});
//加载省数据
function loadProvince(areaData) {
var proHtml = '';
for (var i = 0; i < areaData.length; i++) {
proHtml += '';
}
//初始化省数据
$form.find(el_province).append(proHtml);
form.render();
var _filter = el_province.attr("lay-filter");
form.on('select(' + _filter + ')', function (data) {
$form.find(el_city).html('');
var value = data.value;
var d = value.split('_');
var code = d[0];
var count = d[1];
var index = d[2];
if (count > 0) {
loadCity(areaData[index].mallCityList);
} else {
$form.find(el_city).attr("disabled", "disabled");
}
});
}
//加载市数据
function loadCity(citys) {
var cityHtml = '';
for (var i = 0; i < citys.length; i++) {
cityHtml += '';
}
$form.find(el_city).html(cityHtml).removeAttr("disabled");
form.render();
var _filter = el_city.attr("lay-filter");
form.on('select(' + _filter + ')', function (data) {
var value = data.value;
var d = value.split('_');
var code = d[0];
var count = d[1];
var index = d[2];
if (count > 0) {
loadArea(citys[index].mallAreaList);
} else {
$form.find(el_area).attr("disabled", "disabled");
}
});
}
//加载县/区数据
function loadArea(areas) {
var areaHtml = '';
for (var i = 0; i < areas.length; i++) {
areaHtml += '';
}
$form.find(el_area).html(areaHtml).removeAttr("disabled");
form.render();
var _filter = el_city.attr("lay-filter");
form.on('select(' + _filter + ')', function (data) {
});
}
};
exports('okAddlink', addlink);
});