controlAllot.html 5.93 KB
<div id="pageRealControlAllotWrap" style="overflow: hidden;padding: 15px 15px 0;">

    <style>
        #pageRealControlAllotWrap span.line-item {
            background: #efefef;
            padding: 4px 11px;
            margin: 0 3px 11px 8px;
            box-shadow: 0px 1px 3px 0 rgba(71, 69, 69, 0.2), 1px 2px 3px 0 rgba(96, 94, 94, 0.19);
            position: relative;
            border: 1px solid #c5c0c0;
            display: inline-block;
        }

        #pageRealControlAllotWrap .remove-icon {
            position: absolute;
            right: -5px;
            top: -5px;
            color: #ffffff;
            background: #ff4646;
            border-radius: 99px;
            font-size: 12px;
            cursor: pointer;
            padding: 0px 1px;
        }

        .select2-container {
            z-index: 99891017;
        }
    </style>

    <h4 class="user-nfo-text">

    </h4>

    <div style="border: 1px solid #cccbcb;height: 190px;position: relative;">
        <span style="display: block;margin: 10px;color: grey;">已分配的线路</span>

        <div class="line-list" style="height: 110px;overflow: auto;padding: 9px;">
        </div>

        <div style="padding-left: 8px;">
            <div style="display: inline-block;">
                <select name="lineSelect" style="width: 160px;">
                    <option value="">请选择线路...</option>
                </select>
            </div>

            <button disabled type="button" id="addLineItemBtn" class="btn blue btn-sm" style="margin-top: -10px;"><i
                    class="fa fa-plus"></i> 添加线路
            </button>
        </div>
    </div>

    <div style="margin-top: 15px;">
        <form class="form-horizontal">
            <div class="form-group" style="width: 50%;">
                <label class="col-md-5 control-label">系统运行模式</label>
                <div class="col-md-7">
                    <select class="form-control" name="pattern">
                        <option value="0">监控模式</option>
                        <option value="1">主调模式</option>
                    </select>
                </div>
            </div>
        </form>
    </div>

    <button class="btn blue btn-block" id="saveBtn"><i class="fa fa-check"></i> 保存</button>
    <script>
        !function () {
            var wrap = '#pageRealControlAllotWrap'
                    , lineSelect = $('select[name=lineSelect]', wrap)
                    , addBtn = $('#addLineItemBtn', wrap);

            var userId;
            var codeNameMap = {};
            $(wrap).on('init', function (e, id) {
                e.stopPropagation();
                userId = id;
                //用户信息
                $.get('/user', {'id_eq': userId}, function (rs) {
                    if(rs.content.length > 0){
                        var user = rs.content[0];
                        $('.user-nfo-text').text(user.userName + '/' + user.name);
                    }
                });

                $.get('/line/all', {'destroy_eq': 0}, function (rs) {
                    var data = [];
                    $.each(rs, function () {
                        data.push({
                            id: this.lineCode,
                            text: this.name
                        });
                        codeNameMap[this.lineCode] = this.name;
                    });

                    initPinYinSelect2(lineSelect, data);

                    $.get('/realControAuthority/findByUserId', {userId: userId}, function (t) {
                        if(!t || !t.lineCodeStr)
                            return;
                        var lineArray = t.lineCodeStr.split(',');
                        var htmlStr = '';
                        $.each(lineArray, function (i, code) {
                            if(!code)
                                return;
                            htmlStr += '<span class="line-item" data-id="'+code+'"><i class="fa fa-remove remove-icon"></i>'+codeNameMap[code]+'</span>';
                        });

                        $('.line-list', wrap).html(htmlStr);

                        $('select[name=pattern]', wrap).val(t.pattern);
                    });
                });
            });

            lineSelect.on('change', function () {
                if ($(this).val() == '') {
                    addBtn.attr('disabled', 'disabled');
                }
                else {
                    addBtn.removeAttr('disabled');
                }
            });

            addBtn.on('click', function () {
                var code = lineSelect.val(),
                        name = codeNameMap[code];

                if($('.line-list .line-item[data-id='+code+']').length > 0){
                    alert(name + '已分配,无法重复操作!');
                    return;
                }
                $('.line-list', wrap).append('<span class="line-item" data-id="'+code+'"><i class="fa fa-remove remove-icon"></i>'+name+'</span>');
            });

            $(wrap).on('click', '.remove-icon', function () {
                $(this).parent().remove();
            });

            //保存
            $('#saveBtn', wrap).on('click', function () {
                var data = $('form', wrap).serializeJSON();
                var lineCodeStr = '';
                $('.line-list .line-item', wrap).each(function () {
                    lineCodeStr += ($(this).data('id') + ',');
                });

                data.lineCodeStr = lineCodeStr;

                if(!userId){
                    alert('无法获取到用户ID');
                    return;
                }

                data.userId = userId;

                $.post('/realControAuthority', data, function (rs) {
                    alert('保存成功!');
                });
            });
        }();
    </script>
</div>