layui 条码规则编辑

<body>    
    <div class="layui-form" lay-filter="layuiadmin-form-ruleedit" id="layuiadmin-form-ruleedit" style="padding-top: 5px;">
      <input type="hidden" id="RuleId" name="RuleId" value="0" class="layui-input" />
        <div class="layui-form-item">
          <label class="layui-form-label">备注:</label>
          <div class="layui-input-block" style="padding-right:5px;">
            <input type="text" name="Remark" autocomplete="off" class="layui-input" maxlength="50" />
          </div>
        </div>
        <div class="layui-form-item">
          <label class="layui-form-label">规则内容:</label>
          <div class="layui-input-block" style="padding-right:5px;">
              <textarea id="RuleContent" name="RuleContent" lay-verify="required" lay-tips="请在下方内容设置中添加" placeholder="规则内容" class="layui-textarea" rows="3" style="min-height:60px;"></textarea>
          </div>
        </div>
        <div class="layui-form-item layui-hide">
          <input type="button" lay-submit lay-filter="LAY-rule-front-submit" id="LAY-rule-front-submit" value="确认" />
        </div>
     </div>
    <fieldset class="layui-elem-field" style="padding:0px 5px;">
        <legend>内容设置</legend>
        <table class="layui-table set-table layui-form" lay-skin="line" style="margin:5px 0px;">
            <tbody>
            <tr><td style="width:60px;text-align:right;">固定(FX)</td>
                <td>
                    <input style="width:165px;display: inline-block;" type="text" id="FixText" name="FixText" class="layui-input" maxlength="50" placeholder="编号:01" lay-tips="比如工厂编号:01"/>
                </td>
                <td style="width:30px;"><button class="layui-btn layui-btn-xs" data-type="FX" lay-tips="添加编码中固定内容"><i class="layui-icon">&#xe624;</i></button></td>
            </tr>
            <tr><td style="text-align:right;">动态(YL)</td>
                <td>
                    <input style="width:90px;display: inline-block;" type="number" id="YLLength" name="YLLength" class="layui-input" maxlength="10" min="0" placeholder="总长度" lay-tips="自定义内容总长度,0表示不按长度补位"/>
                    <input style="width:70px;display: inline-block;" type="text" id="YLChar" name="YLChar" class="layui-input" maxlength="1" placeholder="补位字" lay-tips="单个字符,默认是'0'"/>
                    <input type="checkbox" id="YLLeft" name="YLLeft" value="1" lay-skin="primary" title="左补" checked lay-tips="设置总长度后,补位是左补还是右补"/>
                </td>
                <td><button class="layui-btn layui-btn-xs" data-type="YL" lay-tips="添加编码中由外部传入的动态内容"><i class="layui-icon">&#xe624;</i></button></td></tr>
            <tr><td style="text-align:right;">序号(SN)</td>
                <td>
                    <input style="width:90px;display: inline-block;" min="1" type="number" id="SNStart" name="SNStart" class="layui-input" maxlength="20" placeholder="起始值" lay-tips="起始值"/>
                    <input style="width:70px;display: inline-block;" min="1" type="number" id="SNStep" name="SNStep" class="layui-input" maxlength="10" placeholder="自增值" lay-tips="自增值"/>
                    <input style="width:90px;display: inline-block;" min="0" type="number" id="SNLength" name="SNLength" class="layui-input" maxlength="10" placeholder="总长度" lay-tips="内容总长度,0表示不按长度补位"/>
                    <input style="width:70px;display: inline-block;" type="text" id="SNChar" name="SNChar" class="layui-input" maxlength="1" placeholder="补位字" lay-tips="单个字符,默认是\"0\""/>
                    <input type="checkbox" id="SNLeft" name="SNLeft" value="1" lay-skin="primary" title="左补" checked lay-tips="设置总长度后,补位是左补还是右补"/>
                    <input type="checkbox" id="SNByDay" name="SNByDay" value="1" lay-skin="primary" title="跨天重置" checked lay-tips="跨天重新计数"/>
                 </td>
                <td><button class="layui-btn layui-btn-xs" data-type="SN" lay-tips="添加编码中流水号"><i class="layui-icon" >&#xe624;</i></button></td></tr>
            <tr><td style="text-align:right;">日期(DT)</td>
                <td>
                    <input style="width:165px;" type="text" id="DTFormat" name="DTFormat" class="layui-input" maxlength="20" placeholder="yyyyMMdd" lay-tips="日期格式,比如天:yyyyMMdd"/>
                </td>
                <td><button class="layui-btn layui-btn-xs" data-type="DT" lay-tips="添加编码中日期格式内容,比如:小时yyyyMMddHH,天yyyyMMdd,月yyyyMM,年yyyy"><i class="layui-icon">&#xe624;</i></button></td></tr>
            </tbody>
        </table>
    </fieldset>
    <script>
        window.Request = (function () {
            if (location.search.indexOf('?') == -1) return {};
            var req = {};
            location.search.substr(1).split('&').forEach(function (q) {
                var qs = q.split('=');
                req[qs[0]] = unescape(qs[1]);
            });
            return req;
        })();

        layui.use(['form'], function () {
            var $ = layui.$,
                layer = layui.layer,
                form = layui.form;
            var id = Request["RuleId"];
            $("#RuleId").val(id || "0");

            var a1 = null;
            if (id) {
                a1 = $.getJSON('/Ajax/Common/Index.aspx?method=BarcodeRules_2_2_row&RuleId=' + id);
            }
            else {
                a1 = [{}];
            }

            $.when(a1).done(function (d1) {
                form.render();
                form.val("layuiadmin-form-ruleedit", d1.data);
            });

            //事件
            var actions = {
                _spaceReg:/\s+/,
                _getMaxIdx: function (r, s) {
                    var idx = 1;
                    if (!r.test(s)) return idx;

                    var mt = r.exec(s);
                    while (mt)
                    {
                        var n = parseInt(mt[1]);
                        if (n > idx) {
                            idx = n;
                        }
                        mt = r.exec(s);
                    }
                    return idx+1;
                },
                FX: function () {
                    var fx = $("#FixText").val().trim();
                    if (!fx)
                    {
                        layer.alert("请填写固定内容!", function (index) {
                            layer.close(index);
                            $("#FixText").focus();
                        });
                        return;
                    }

                    if (actions._spaceReg.test(fx)) {
                        layer.alert("固定内容不能包含空白字符!", function (index) {
                            layer.close(index);
                            $("#FixText").focus();
                        });
                        return;
                    }

                    var txt = $("#StrList").val().trim();
                    /*
                    var idx = actions._getMaxIdx(/\$\{FX(\d+):/g, txt);
                    $("#StrList").val(txt + "${FX" + idx + ":" + fx + "}");
                    */
                    $("#StrList").val(txt + fx);
                }
                , YL: function () {
                    var len = $("#YLLength").val();
                    len = !len ? 0: parseInt(len);
                    if(len < 0)
                    {
                        layer.alert("内容总长度不能小于0!", function (index) {
                            layer.close(index);
                            $("#YLLength").focus();
                        });
                        return;
                    }
                    var txt = $("#StrList").val().trim();
                    var idx = actions._getMaxIdx(/\$\{YL(\d+):/g, txt);
                    var yl = "${YL" + idx + ":" + len;
                    if (len > 0)
                    {
                        yl += ":" + ($("#YLChar").val().trim() || "0") + ":" + ($("#YLLeft").prop("checked") ? "1" : "0");
                    }
                    yl += "}";
                    $("#StrList").val(txt + yl);
                }
                , SN: function () {
                    var step = $("#SNStep").val();
                    step = !step ? 1 : parseInt(step);
                    if (step < 1) {
                        layer.alert("子增值不能小于1!", function (index) {
                            layer.close(index);
                            $("#SNStep").focus();
                        });
                    }
                    var len = $("#SNLength").val();
                    len = !len ? 0 : parseInt(len);
                    if (len < 0) {
                        layer.alert("内容总长度不能小于0!", function (index) {
                            layer.close(index);
                            $("#SNLength").focus();
                        });
                        return;
                    }

                    var start = $("#SNStart").val();
                    if (len > 0 && len < start.length) {
                        layer.alert("内容总长度[" + len + "]不能小于起始值长度[" + start.length + "]!", function (index) {
                            layer.close(index);
                            $("#SNLength").focus();
                        });
                        return;
                    }

                    start = !start ? 1 : parseInt(start);
                    var txt = $("#StrList").val().trim();
                    var idx = actions._getMaxIdx(/\$\{SN(\d+):/g, txt);
                    var sn = "${SN" + idx + ":" + start + ":" + step + ":" + ($("#SNByDay").prop("checked") ? "1" : "0")+":"+len;
                    if (len > 0)
                    {
                        sn += ":" + ($("#SNChar").val().trim() || "0") + ":" + ($("#SNLeft").prop("checked") ? "1" : "0");
                    }
                    sn += "}";
                    $("#StrList").val(txt + sn);
                }
                , DT: function () {
                    var dt = $("#DTFormat").val() || "yyyyMMdd";
                    if (actions._spaceReg.test(dt)) {
                        layer.alert("日期格式不能包含空白字符!", function (index) {
                            layer.close(index);
                            $("#DTFormat").focus();
                        });
                        return;
                    }
                    var txt = $("#StrList").val().trim();
                    var idx = actions._getMaxIdx(/\$\{DT(\d+):/g, txt);
                    $("#StrList").val(txt + "${DT" + idx + ":" + dt + "}");
                }
            };

            $('.set-table button').on('click', function () {
                var type = $(this).data('type');
                actions[type] && actions[type].call(this);
            });
        });
    </script>
</body>

效果:

猜你喜欢

转载自blog.csdn.net/zhchfsky/article/details/125889728