#
Junjie
2026-01-14 664d9030efca22edd8e43b4db4b2c0700fff44af
#
7个文件已修改
427 ■■■■■ 已修改文件
src/main/java/com/zy/core/utils/WmsOperateUtils.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/controller/ConfigController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/system/entity/Config.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ConfigMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/config/config.js 193 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/config/config.html 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/config/config_detail.html 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/utils/WmsOperateUtils.java
@@ -19,7 +19,9 @@
import com.zy.common.entity.FindCrnNoResult;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.RedisUtil;
import com.zy.core.News;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
@@ -49,28 +51,40 @@
    private BasDualCrnpService basDualCrnpService;
    @Autowired
    private BasStationService basStationService;
    @Autowired
    private StationOperateProcessUtils stationOperateProcessUtils;
    @Autowired
    private RedisUtil redisUtil;
    //申请入库任务
    public synchronized String applyInTask(String barcode, Integer sourceStaNo, Integer locType1) {
        String wmsUrl = null;
        Config wmsSystemUriConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemUri"));
        if (wmsSystemUriConfig != null) {
            wmsUrl = wmsSystemUriConfig.getValue();
        Object systemConfigMapObj = redisUtil.get(RedisKeyType.SYSTEM_CONFIG_MAP.key);
        if (systemConfigMapObj == null) {
            News.error("系统Config缓存失效");
            return null;
        }
        HashMap<String, String> systemConfigMap = (HashMap<String, String>) systemConfigMapObj;
        String wmsUrl = systemConfigMap.get("wmsSystemUri");
        if (wmsUrl == null) {
            News.error("未配置WMS系统URI,配置文件Code编码:wmsSystemUri");
            return null;
        }
        String wmsSystemInUrl = null;
        Config wmsSystemInUrlConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "wmsSystemInUrl"));
        if (wmsSystemInUrlConfig != null) {
            wmsSystemInUrl = wmsSystemInUrlConfig.getValue();
        String wmsSystemInUrl = systemConfigMap.get("wmsSystemInUrl");
        if(wmsSystemInUrl == null){
            News.error("未配置WMS入库接口地址,配置文件Code编码:wmsSystemInUrl");
            return null;
        }
        if(wmsSystemInUrlConfig == null){
            News.error("未配置WMS入库接口地址,配置文件Code编码:wmsSystemInUrl");
        int conveyorStationTaskLimit = 30;
        String conveyorStationTaskLimitStr = systemConfigMap.get("conveyorStationTaskLimit");
        if(conveyorStationTaskLimitStr != null){
            conveyorStationTaskLimit = Integer.parseInt(conveyorStationTaskLimitStr);
        }
        int currentStationTaskCount = stationOperateProcessUtils.getCurrentStationTaskCount();
        if (currentStationTaskCount > conveyorStationTaskLimit) {
            News.error("输送站点任务已达到上限,上限值:{},站点任务数:{}", conveyorStationTaskLimit, currentStationTaskCount);
            return null;
        }
src/main/java/com/zy/system/controller/ConfigController.java
@@ -201,6 +201,22 @@
        return R.ok();
    }
    @RequestMapping(value = "/config/getSelectTypes")
    @ManagerAuth
    public R getSelectTypes() {
        EntityWrapper<Config> wrapper = new EntityWrapper<>();
        wrapper.setSqlSelect("DISTINCT select_type as selectType");
        wrapper.isNotNull("select_type");
        List<Map<String, Object>> maps = configService.selectMaps(wrapper);
        List<String> types = new ArrayList<>();
        for (Map<String, Object> map : maps) {
            if (map != null && map.get("selectType") != null) {
                types.add(String.valueOf(map.get("selectType")));
            }
        }
        return R.ok(types);
    }
    private static boolean checkJson(String val){
        Object parse = null;
src/main/java/com/zy/system/entity/Config.java
@@ -42,6 +42,11 @@
     */
    private Short status;
    /**
     * 筛选类型
     */
    private String selectType;
    public Config() {}
    public Config(String name,String code,String value,Short type,Short status) {
@@ -132,5 +137,13 @@
        this.status = status;
    }
    public String getSelectType() {
        return selectType;
    }
    public void setSelectType(String selectType) {
        this.selectType = selectType;
    }
}
src/main/resources/mapper/ConfigMapper.xml
@@ -10,6 +10,7 @@
        <result column="value" property="value" />
        <result column="type" property="type" />
        <result column="status" property="status" />
        <result column="select_type" property="selectType" />
    </resultMap>
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();
}
src/main/webapp/views/config/config.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
@@ -10,26 +11,36 @@
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/css/common.css" media="all">
</head>
<body>
<!-- 搜索栏 -->
<div id="search-box" class="layui-form layui-card-header">
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off">
    <!-- 搜索栏 -->
    <div id="search-box" class="layui-form layui-card-header">
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <select name="select_type" id="selectTypeSearch" lay-search="">
                    <option value="">筛选类型</option>
                </select>
            </div>
        </div>
        <!-- 待添加 -->
        <div id="data-search-btn" class="layui-btn-container layui-form-item">
            <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit
                lay-filter="search">搜索</button>
            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit
                lay-filter="reset">重置</button>
        </div>
    </div>
    <!-- 待添加 -->
    <div id="data-search-btn" class="layui-btn-container layui-form-item">
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
    </div>
</div>
<!-- 表格 -->
<table class="layui-hide" id="config" lay-filter="config"></table>
<script type="text/html" id="toolbar">
    <!-- 表格 -->
    <table class="layui-hide" id="config" lay-filter="config"></table>
    <script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button>
        <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">删除</button>
@@ -41,19 +52,19 @@
    </div>
</script>
<script type="text/html" id="operate">
    <script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">详情</a>
    <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">编辑</a>
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/config/config.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../static/js/config/config.js" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
    <iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
</body>
</html>
</html>
src/main/webapp/views/config/config_detail.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
@@ -10,74 +11,82 @@
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/css/common.css" media="all">
</head>
<body>
<!-- 详情 -->
<div id="data-detail" class="layer_self_wrap">
    <form id="detail" class="layui-form">
        <div class="layui-inline"  style="display: none">
            <label class="layui-form-label"><span class="not-null">*</span>编  号:</label>
            <div class="layui-input-inline">
                <input id="id" class="layui-input" type="text" placeholder="编号">
    <!-- 详情 -->
    <div id="data-detail" class="layer_self_wrap">
        <form id="detail" class="layui-form">
            <div class="layui-inline" style="display: none">
                <label class="layui-form-label"><span class="not-null">*</span>编  号:</label>
                <div class="layui-input-inline">
                    <input id="id" class="layui-input" type="text" placeholder="编号">
                </div>
            </div>
        </div>
        <div class="layui-inline"  style="width:31%;">
            <label class="layui-form-label"><span class="not-null">*</span>名  称:</label>
            <div class="layui-input-inline">
                <input id="name" class="layui-input" type="text" placeholder="名称" lay-verify="required" >
            <div class="layui-inline" style="width:31%;">
                <label class="layui-form-label"><span class="not-null">*</span>名  称:</label>
                <div class="layui-input-inline">
                    <input id="name" class="layui-input" type="text" placeholder="名称" lay-verify="required">
                </div>
            </div>
        </div>
        <div class="layui-inline"  style="width:31%;">
            <label class="layui-form-label"><span class="not-null">*</span>编  码:</label>
            <div class="layui-input-inline">
                <input id="code" class="layui-input" type="text" placeholder="编码" lay-verify="required" >
            <div class="layui-inline" style="width:31%;">
                <label class="layui-form-label"><span class="not-null">*</span>编  码:</label>
                <div class="layui-input-inline">
                    <input id="code" class="layui-input" type="text" placeholder="编码" lay-verify="required">
                </div>
            </div>
        </div>
        <div class="layui-inline"  style="width:97%;">
            <label class="layui-form-label"><span class="not-null">*</span>对 应 值:</label>
            <div class="layui-input-inline">
                <input id="value" class="layui-input" type="text" placeholder="对应值" lay-verify="required" >
            <div class="layui-inline" style="width:97%;">
                <label class="layui-form-label"><span class="not-null">*</span>对 应 值:</label>
                <div class="layui-input-inline">
                    <input id="value" class="layui-input" type="text" placeholder="对应值" lay-verify="required">
                </div>
            </div>
        </div>
        <div class="layui-inline"  style="width:31%;">
            <label class="layui-form-label"><span class="not-null">*</span>类  型:</label>
            <div class="layui-input-inline">
                <select id="type" lay-verify="required">
                    <option value="" style="display: none"></option>
                    <option value="1">String</option>
                    <option value="2">JSON</option>
                </select>
            <div class="layui-inline" style="width:31%;">
                <label class="layui-form-label"><span class="not-null">*</span>类  型:</label>
                <div class="layui-input-inline">
                    <select id="type" lay-verify="required">
                        <option value="" style="display: none"></option>
                        <option value="1">String</option>
                        <option value="2">JSON</option>
                    </select>
                </div>
            </div>
        </div>
        <div class="layui-inline"  style="width:31%;">
            <label class="layui-form-label"><span class="not-null">*</span>状  态:</label>
            <div class="layui-input-inline">
                <select id="status" lay-verify="required">
                    <option value="" style="display: none"></option>
                    <option value="1">正常</option>
                    <option value="0">禁用</option>
                </select>
            <div class="layui-inline" style="width:31%;">
                <label class="layui-form-label"><span class="not-null">*</span>状  态:</label>
                <div class="layui-input-inline">
                    <select id="status" lay-verify="required">
                        <option value="" style="display: none"></option>
                        <option value="1">正常</option>
                        <option value="0">禁用</option>
                    </select>
                </div>
            </div>
        </div>
            <div class="layui-inline" style="width:97%;">
                <label class="layui-form-label">筛选类型:</label>
                <div class="layui-input-inline">
                    <input id="selectType" class="layui-input" type="text" placeholder="筛选类型">
                </div>
            </div>
        <hr class="layui-bg-gray">
            <hr class="layui-bg-gray">
        <div id="data-detail-btn" class="layui-btn-container layui-form-item">
            <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">保存</div>
            <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">关闭</div>
        </div>
            <div id="data-detail-btn" class="layui-btn-container layui-form-item">
                <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit
                    lay-filter="edit">保存</div>
                <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">关闭</div>
            </div>
        <div id="prompt">
            温馨提示:请仔细填写相关信息,<span class="extrude"><span class="not-null">*</span> 为必填选项。</span>
        </div>
    </form>
</div>
            <div id="prompt">
                温馨提示:请仔细填写相关信息,<span class="extrude"><span class="not-null">*</span> 为必填选项。</span>
            </div>
        </form>
    </div>
</body>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/config/config.js" charset="utf-8"></script>
</html>
</html>