#
Junjie
2026-01-14 664d9030efca22edd8e43b4db4b2c0700fff44af
src/main/webapp/static/js/config/config.js
@@ -1,5 +1,5 @@
var pageCurr;
layui.use(['table','laydate', 'form'], function(){
layui.use(['table', 'laydate', 'form'], function () {
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
@@ -9,23 +9,24 @@
    // 数据渲染
    tableIns = table.render({
        elem: '#config',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/config/list/auth',
        headers: { token: localStorage.getItem('token') },
        url: baseUrl + '/config/list/auth',
        page: true,
        limit: 16,
        limits: [16, 30, 50, 100, 200, 500],
        toolbar: '#toolbar',
        cellMinWidth: 50,
        cols: [[
            {type: 'checkbox', fixed: 'left'}
            ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
            ,{field: 'name', align: 'center',title: '名称'}
            ,{field: 'code', align: 'center',title: '编码'}
            ,{field: 'value', align: 'center',title: '对应值'}
            ,{field: 'type$', align: 'center',title: '类型'}
            ,{field: 'status$', align: 'center',title: '状态'}
            { type: 'checkbox', fixed: 'left' }
            , { field: 'id', title: 'ID', sort: true, align: 'center', fixed: 'left', width: 80 }
            , { field: 'name', align: 'center', title: '名称' }
            , { field: 'code', align: 'center', title: '编码' }
            , { field: 'value', align: 'center', title: '对应值' }
            , { field: 'selectType', align: 'center', title: '筛选类型' }
            , { field: 'type$', align: 'center', title: '类型' }
            , { field: 'status$', align: 'center', title: '状态' }
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:150}
            , { fixed: 'right', title: '操作', align: 'center', toolbar: '#operate', width: 150 }
        ]],
        request: {
            pageName: 'curr',
@@ -42,11 +43,11 @@
        response: {
            statusCode: 200
        },
        done: function(res, curr, count) {
        done: function (res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
                top.location.href = baseUrl + "/";
            }
            pageCurr=curr;
            pageCurr = curr;
            limit();
        }
    });
@@ -54,7 +55,7 @@
    // 监听排序事件
    table.on('sort(config)', function (obj) {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
        $.each($('#search-box [name]').serializeArray(), function () {
            searchData[this.name] = this.value;
        });
        searchData['orderByField'] = obj.field;
@@ -66,9 +67,9 @@
            },
            done: function (res, curr, count) {
                if (res.code === 403) {
                    top.location.href = baseUrl+"/";
                    top.location.href = baseUrl + "/";
                }
                pageCurr=curr;
                pageCurr = curr;
                limit();
            }
        });
@@ -77,7 +78,7 @@
    // 监听头工具栏事件
    table.on('toolbar(config)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id);
        switch(obj.event) {
        switch (obj.event) {
            case 'addData':
                layer.open({
                    type: 2,
@@ -86,9 +87,9 @@
                    area: [top.detailWidth, top.detailHeight],
                    shadeClose: false,
                    content: 'config_detail.html',
                    success: function(layero, index){
                       clearFormVal(layer.getChildFrame('#detail', index));
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                    success: function (layero, index) {
                        clearFormVal(layer.getChildFrame('#detail', index));
                        layer.iframeAuto(index); layer.style(index, { top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px" });
                    }
                });
                break;
@@ -102,26 +103,26 @@
                break;
            case 'deleteData':
                var data = checkStatus.data;
                var ids=[];
                var ids = [];
                data.map(function (track) {
                    ids.push(track.id);
                });
                if (ids.length === 0){
                if (ids.length === 0) {
                    layer.msg('请选择数据');
                } else {
                    layer.confirm('确定删除'+(ids.length===1?'此':ids.length)+'条数据吗', function(){
                    layer.confirm('确定删除' + (ids.length === 1 ? '此' : ids.length) + '条数据吗', function () {
                        $.ajax({
                            url: baseUrl+"/config/delete/auth",
                            headers: {'token': localStorage.getItem('token')},
                            data: {ids: ids},
                            url: baseUrl + "/config/delete/auth",
                            headers: { 'token': localStorage.getItem('token') },
                            data: { ids: ids },
                            method: 'POST',
                            traditional:true,
                            traditional: true,
                            success: function (res) {
                                if (res.code === 200){
                                if (res.code === 200) {
                                    layer.closeAll();
                                    tableReload(false);
                                } else if (res.code === 403){
                                    top.location.href = baseUrl+"/";
                                } else if (res.code === 403) {
                                    top.location.href = baseUrl + "/";
                                } else {
                                    layer.msg(res.msg)
                                }
@@ -131,16 +132,16 @@
                }
                break;
            case 'refreshCache':
                layer.confirm('确定刷新Redis缓存吗', function(){
                layer.confirm('确定刷新Redis缓存吗', function () {
                    $.ajax({
                        url: baseUrl+"/config/refreshCache",
                        headers: {'token': localStorage.getItem('token')},
                        url: baseUrl + "/config/refreshCache",
                        headers: { 'token': localStorage.getItem('token') },
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                            if (res.code === 200) {
                                layer.msg('刷新成功');
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                layer.msg(res.msg)
                            }
@@ -149,9 +150,9 @@
                });
                break;
            case 'exportData':
                layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){
                    var titles=[];
                    var fields=[];
                layer.confirm('确定导出Excel吗', { shadeClose: true }, function () {
                    var titles = [];
                    var fields = [];
                    obj.config.cols[0].map(function (col) {
                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
                            titles.push(col.title);
@@ -159,7 +160,7 @@
                        }
                    });
                    var exportData = {};
                    $.each($('#search-box [name]').serializeArray(), function() {
                    $.each($('#search-box [name]').serializeArray(), function () {
                        exportData[this.name] = this.value;
                    });
                    var param = {
@@ -167,18 +168,18 @@
                        'fields': fields
                    };
                    $.ajax({
                        url: baseUrl+"/config/export/auth",
                        headers: {'token': localStorage.getItem('token')},
                        url: baseUrl + "/config/export/auth",
                        headers: { 'token': localStorage.getItem('token') },
                        data: JSON.stringify(param),
                        dataType:'json',
                        contentType:'application/json;charset=UTF-8',
                        dataType: 'json',
                        contentType: 'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function (res) {
                            layer.closeAll();
                            if (res.code === 200) {
                                table.exportFile(titles,res.data,'xls');
                                table.exportFile(titles, res.data, 'xls');
                            } else if (res.code === 403) {
                                top.location.href = baseUrl+"/";
                                top.location.href = baseUrl + "/";
                            } else {
                                layer.msg(res.msg)
                            }
@@ -189,7 +190,7 @@
            case 'serverInfo':
                $.ajax({
                    url: baseUrl + "/license/getServerInfos",
                    headers: {'token': localStorage.getItem('token')},
                    headers: { 'token': localStorage.getItem('token') },
                    method: 'GET',
                    success: function (res) {
                        var pretty = '';
@@ -200,18 +201,18 @@
                        }
                        var html = ''
                            + '<div style="padding:15px 20px 5px 20px;">'
                            +   '<div style="font-weight:600;margin-bottom:8px;">系统配置信息</div>'
                            +   '<pre id="server-info-pre" style="background:#f7f7f7;border:1px solid #e6e6e6;border-radius:6px;padding:12px;white-space:pre-wrap;word-wrap:break-word;max-height:360px;overflow:auto;">'
                            +       pretty
                            +   '</pre>'
                            +   '<div class="layui-btn-container" style="text-align:right;margin-top:6px;">'
                            +       '<button class="layui-btn layui-btn-primary" id="copy-server-info">复制</button>'
                            +   '</div>'
                            + '<div style="font-weight:600;margin-bottom:8px;">系统配置信息</div>'
                            + '<pre id="server-info-pre" style="background:#f7f7f7;border:1px solid #e6e6e6;border-radius:6px;padding:12px;white-space:pre-wrap;word-wrap:break-word;max-height:360px;overflow:auto;">'
                            + pretty
                            + '</pre>'
                            + '<div class="layui-btn-container" style="text-align:right;margin-top:6px;">'
                            + '<button class="layui-btn layui-btn-primary" id="copy-server-info">复制</button>'
                            + '</div>'
                            + '</div>';
                        layer.open({
                            type: 1,
                            title: '获取系统配置',
                            area: ['640px','480px'],
                            area: ['640px', '480px'],
                            shadeClose: true,
                            content: html,
                            success: function (layero, index) {
@@ -260,16 +261,16 @@
                });
                break;
            case 'activate':
                layer.confirm('确定执行一键激活吗', function(){
                layer.confirm('确定执行一键激活吗', function () {
                    $.ajax({
                        url: baseUrl + "/license/activate",
                        headers: {'token': localStorage.getItem('token')},
                        headers: { 'token': localStorage.getItem('token') },
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                            if (res.code === 200) {
                                layer.msg('激活成功');
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            } else if (res.code === 403) {
                                top.location.href = baseUrl + "/";
                            } else {
                                layer.msg(res.msg)
                            }
@@ -283,10 +284,10 @@
            case 'projectName':
                $.ajax({
                    url: baseUrl + "/license/getProjectName",
                    headers: {'token': localStorage.getItem('token')},
                    headers: { 'token': localStorage.getItem('token') },
                    method: 'GET',
                    success: function (res) {
                        if (res.code === 200){
                        if (res.code === 200) {
                            layer.alert(res.msg);
                        } else {
                            layer.msg(res.msg)
@@ -301,7 +302,7 @@
    });
    // 监听行工具事件
    table.on('tool(config)', function(obj){
    table.on('tool(config)', function (obj) {
        var data = obj.data;
        switch (obj.event) {
            // 详情
@@ -313,11 +314,11 @@
                    area: [top.detailWidth, top.detailHeight],
                    shadeClose: false,
                    content: 'config_detail.html',
                    success: function(layero, index){
                    success: function (layero, index) {
                        setFormVal(layer.getChildFrame('#detail', index), data, true);
                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
                        layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                        layer.iframeAuto(index); layer.style(index, { top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px" });
                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
                    }
                });
@@ -331,10 +332,10 @@
                    area: [top.detailWidth, top.detailHeight],
                    shadeClose: false,
                    content: 'config_detail.html',
                    success: function(layero, index){
                    success: function (layero, index) {
                        setFormVal(layer.getChildFrame('#detail', index), data, false);
                        top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
                        layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
                        layer.iframeAuto(index); layer.style(index, { top: (($(window).height() - layer.getChildFrame('#data-detail', index).height()) / 3) + "px" });
                        layero.find('iframe')[0].contentWindow.layui.form.render('select');
                    }
                });
@@ -346,32 +347,33 @@
    // 数据修改动作
    form.on('submit(edit)', function () {
        var index = layer.load(1, {
            shade: [0.5,'#000'] //0.1透明度的背景
            shade: [0.5, '#000'] //0.1透明度的背景
        });
        var data = {
            id: $('#id').val(),
            name: $('#name').val(),
            code: $('#code').val(),
            value: $('#value').val(),
            selectType: $('#selectType').val(),
            type: $('#type').val(),
            status: $('#status').val(),
        };
        $.ajax({
            url: baseUrl+"/config/edit/auth",
            headers: {'token': localStorage.getItem('token')},
            url: baseUrl + "/config/edit/auth",
            headers: { 'token': localStorage.getItem('token') },
            data: top.reObject(data),
            method: 'POST',
            success: function (res) {
                if (res.code === 200){
                if (res.code === 200) {
                    parent.layer.closeAll();
                    tableReload(true);
                    $("#data-detail :input").each(function () {
                        $(this).val("");
                    });
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                }else {
                } else if (res.code === 403) {
                    top.location.href = baseUrl + "/";
                } else {
                    layer.msg(res.msg)
                }
                layer.close(index);
@@ -394,16 +396,33 @@
    // 时间选择器
    // 初始化筛选类型下拉框
    $.ajax({
        url: baseUrl + "/config/getSelectTypes",
        headers: { 'token': localStorage.getItem('token') },
        method: 'POST',
        success: function (res) {
            if (res.code === 200) {
                var types = res.data;
                var select = $("#selectTypeSearch");
                for (var i = 0; i < types.length; i++) {
                    select.append("<option value='" + types[i] + "'>" + types[i] + "</option>");
                }
                form.render('select');
            }
        }
    });
});
// 关闭动作
$(document).on('click','#data-detail-close', function () {
$(document).on('click', '#data-detail-close', function () {
    parent.layer.closeAll();
});
function tableReload(child) {
    var searchData = {};
    $.each($('#search-box [name]').serializeArray(), function() {
    $.each($('#search-box [name]').serializeArray(), function () {
        searchData[this.name] = this.value;
    });
    (child ? parent.tableIns : tableIns).reload({
@@ -413,14 +432,14 @@
        },
        done: function (res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
                top.location.href = baseUrl + "/";
            }
            pageCurr=curr;
            pageCurr = curr;
            if (res.data.length === 0 && count !== 0) {
                tableIns.reload({
                    where: searchData,
                    page: {
                        curr: pageCurr-1
                        curr: pageCurr - 1
                    }
                });
                pageCurr -= 1;
@@ -434,9 +453,9 @@
    for (var val in data) {
        var find = el.find(":input[id='" + val + "']");
        find.val(data[val]);
        if (showImg){
        if (showImg) {
            var next = find.next();
            if (next.get(0)){
            if (next.get(0)) {
                if (next.get(0).localName === "img") {
                    find.hide();
                    next.attr("src", data[val]);
@@ -456,13 +475,13 @@
function detailScreen(index) {
    var detail = layer.getChildFrame('#data-detail', index);
    var height = detail.height()+60;
    if (height > ($(window).height()*0.9)) {
        height = ($(window).height()*0.9);
    var height = detail.height() + 60;
    if (height > ($(window).height() * 0.9)) {
        height = ($(window).height() * 0.9);
    }
    layer.style(index, {
        top: (($(window).height()-height)/3)+"px",
        height: height+'px'
        top: (($(window).height() - height) / 3) + "px",
        height: height + 'px'
    });
    $(".layui-layer-shade").remove();
}