skyouc
2024-12-21 c635d78b479510ebe2556a420948effcd30a0731
zy-asrs-openapi/src/main/webapp/static/js/cool.js
@@ -1,145 +1,145 @@
/**
 * 搜索自动补全 -- 局外点击隐藏
 */
$(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){
                window.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+"]");
    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("<img src="+src+" />");
}
/**
 * 截取By之前的字符串
 */
function getForeignKeyQuery(str) {
    var index = str.indexOf('By');
    if (index !== -1){
        return str.substring(0, index);
    }
    return str;
}
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) {
                window.location.href = baseUrl;
            } else if (res.code === 407) {
                banMsg = res.data + "不可用";
                tips = layer.tips(
                    "<span style='color:red;'>已存在</span>",
                    '#'+id,
                    {
                        // tipsMore: true,
                        tips: [2,'#fff'],
                        time:0
                        ,area: 'auto'
                        ,maxWidth:500
                    });
            }
        }
    });
/**
 * 搜索自动补全 -- 局外点击隐藏
 */
$(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){
                window.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+"]");
    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("<img src="+src+" />");
}
/**
 * 截取By之前的字符串
 */
function getForeignKeyQuery(str) {
    var index = str.indexOf('By');
    if (index !== -1){
        return str.substring(0, index);
    }
    return str;
}
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) {
                window.location.href = baseUrl;
            } else if (res.code === 407) {
                banMsg = res.data + "不可用";
                tips = layer.tips(
                    "<span style='color:red;'>已存在</span>",
                    '#'+id,
                    {
                        // tipsMore: true,
                        tips: [2,'#fff'],
                        time:0
                        ,area: 'auto'
                        ,maxWidth:500
                    });
            }
        }
    });
}