/** * 搜索自动补全 -- 局外点击隐藏 */ $(function () { $(document).on("click", function (e) { if (!$(e.target).parents(".cool-auto-complete").length) { $(".cool-auto-complete-window").hide(); } }); }); /** * 搜索自动补全 -- div */ function autoShow(id) { var cac = document.getElementById(id).parentNode; var cacw = cac.getElementsByClassName("cool-auto-complete-window")[0]; if (cacw.style.display === "none" || cacw.style.display === "") { cacw.style.display = "block"; var cacwi = cacw.getElementsByClassName("cool-auto-complete-window-input")[0]; cacwi.focus(); autoLoad(cacwi.getAttribute('data-key')); } else { cacw.style.display = "none"; } } /** * 搜索自动补全 -- input */ function autoLoad(val) { var inputDomVal = document.querySelector("input[data-key=" + val + "]").value; var selectDom = document.querySelector("select[data-key=" + val + "Select]"); selectDom.length = 0; var defaultOption = new Option("取消选择", ""); defaultOption.title = ""; selectDom.appendChild(defaultOption); selectDom.style.display = 'none'; $.ajax({ url: baseUrl + "/" + getForeignKeyQuery(val) + "/auth", headers: {'token': localStorage.getItem('token')}, data: {condition: inputDomVal}, method: 'POST', traditional: true, success: function (res) { if (res.code === 200) { var list = res.data; for (var i = 0; i < list.length; i++) { var option = new Option(list[i].value, i); option.title = list[i].id; selectDom.options[i + 1] = option; } selectDom.style.display = 'block'; } else if (res.code === 403) { top.location.href = baseUrl + "/"; } else { layer.msg(res.msg) } } }); } /** * 搜索自动补全 -- select */ function confirmed(val) { var inputDom = $("input[data-key=" + val.substring(0, val.length - 6) + "]"); var selectDom = $("select[data-key=" + val + "]"); console.log(val.substring(0, val.length - 6)) selectDom.dblclick(function () { inputDom.focus(); selectDom.css("display", "none"); }); // 修饰字段 var cacw = inputDom.parent(); cacw.css("display", "none"); var cacd = cacw.parent().find(".cool-auto-complete-div"); var realDom = cacd.prev(); // id字段 var selectOptionDom = selectDom.find("option:selected"); var html = selectOptionDom.html(); if (html === "取消选择") { cacd.val(""); realDom.val(""); } else { cacd.val(selectOptionDom.html()); realDom.val(selectOptionDom.attr("title")); } inputDom.val(""); } function reviewImg(src) { window.open().document.write(""); } /** * 截取By之前的字符串 */ function getForeignKeyQuery(str) { var index = str.indexOf('By'); if (index !== -1) { return str.substring(0, index); } return str; } // 表单值清空 function clearFormVal(el) { $(':input', el) .val('') .removeAttr('checked') .removeAttr('selected'); } var banMsg; var tips; // 主键校验 function check(id, domain) { var param = { key: id, val: $('#' + id).val() }; $.ajax({ url: baseUrl + "/" + domain + "/check/column/auth", headers: {'token': localStorage.getItem('token')}, data: JSON.stringify(param), dataType: 'json', contentType: 'application/json;charset=UTF-8', method: 'POST', success: function (res) { if (res.code === 200) { layer.close(tips); banMsg = null; } else if (res.code === 403) { top.location.href = baseUrl + "/"; } else if (res.code === 407) { banMsg = res.data + "不可用"; tips = layer.tips( "已存在", '#' + id, { // tipsMore: true, tips: [2, '#fff'], time: 0 , area: 'auto' , maxWidth: 500 }); } } }); }