Index.cshtml 8.32 KB
@using HHECS.DAQWebClient.ViewModel
@model SettingModel
@{
    ViewData["Title"] = "系统设置";
    var isAdmin = User.IsInRole(nameof(RoleType.Admin));
}
<div class="layui-card">
    <div class="layui-card-header">系统配置</div>
    <div class="layui-card-body">
        <div class="layui-form layui-form-pane">
            <div class="layui-form-item">
                <label class="layui-form-label">客户端标识</label>
                <div class="layui-input-block">
                    <input type="text" asp-for="ClientId" lay-affix="edit" lay-filter="edit-ClientId" lay-options="{split: true}" readonly class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label">推送数量</label>
                <div class="layui-input-block">
                    <input type="number" asp-for="CommitCount" min="1" lay-affix="edit" lay-filter="edit-CommitCount" lay-options="{split: true}" readonly class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">区域</label>
                <div class="layui-input-block">
                    <input type="text" asp-for="Area" lay-affix="edit" lay-filter="edit-Area" lay-options="{split: true}" readonly class="layui-input">
                </div>
            </div>
        </div>
    </div>
</div>

<div class="layui-card">
    <div class="layui-card-header">环境配置</div>
    <div class="layui-card-body">
        <div class="layui-form layui-form-pane">
            <div class="layui-form-item" pane>
                <label class="layui-form-label">程序环境</label>
                <div class="layui-input-block">
                    <input type="checkbox" asp-for="IsProductionEnvironment" class="layui-disabled" lay-filter="environment-switch-filter" lay-skin="switch" title="正式环境|测试环境">
                </div>
            </div>
        </div>
    </div>
</div>


<div class="layui-card">
    <div class="layui-card-header">API地址配置</div>
    <div class="layui-card-body">
        <div class="layui-tabs" lay-options="{index: 0}">
            <ul class="layui-tabs-header">
                <li>正式环境</li>
                <li>测试环境</li>
            </ul>
            <div class="layui-tabs-body">
                <div class="layui-tabs-item">
                    <div class="layui-form layui-form-pane">
                        <div class="layui-form-item">
                            <label class="layui-form-label">IOT Cloud</label>
                            <div class="layui-input-block">
                                <input type="text" asp-for="IOTCloundAPI" lay-affix="edit" lay-filter="edit-IOTCloundAPI" lay-options="{split: true}" readonly class="layui-input">
                            </div>
                        </div>
                        <div class="layui-form-item">
                            <label class="layui-form-label">MQTT</label>
                            <div class="layui-input-block">
                                <input type="text" asp-for="MqttWebSocketServer" lay-affix="edit" lay-filter="edit-MqttWebSocketServer" lay-options="{split: true}" readonly class="layui-input" placeholder="ws://broker.hivemq.com:8000">
                            </div>
                        </div>
                    </div>
                </div>
                <div class="layui-tabs-item layui-form">
                    <div class="layui-form layui-form-pane">
                        <div class="layui-form-item">
                            <label class="layui-form-label">IOT Cloud</label>
                            <div class="layui-input-block">
                                <input type="text" asp-for="IOTCloundDevelopmentAPI" lay-affix="edit" lay-filter="edit-IOTCloundDevelopmentAPI" lay-options="{split: true}" readonly class="layui-input">
                            </div>
                        </div>
                        <div class="layui-form-item">
                            <label class="layui-form-label">MQTT</label>
                            <div class="layui-input-block">
                                <input type="text" asp-for="MqttWebSocketDevelopmentServer" lay-affix="edit" lay-filter="edit-MqttWebSocketDevelopmentServer" lay-options="{split: true}" readonly class="layui-input" placeholder="ws://broker.hivemq.com:8000">
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

@section Scripts{
    <script type="text/javascript" asp-append-version="true">
        layui.use(['util', 'form'], function () {
            let util = layui.util;
            let form = layui.form;
            let $ = layui.$;

            form.on('input-affix(edit-ClientId)', function (data) {
                let elem = data.elem; // 输入框
                //let value = elem.value; // 输入框的值
                openEdit(elem);
            });

            form.on('input-affix(edit-CommitCount)', function (data) {
                let elem = data.elem; // 输入框
                openEdit(elem);
            });

            form.on('input-affix(edit-Area)', function (data) {
                let elem = data.elem; // 输入框
                openEdit(elem);
            });

            form.on('input-affix(edit-IOTCloundAPI)', function (data) {
                let elem = data.elem; // 输入框
                openEdit(elem);
            });

            form.on('input-affix(edit-MqttWebSocketServer)', function (data) {
                let elem = data.elem; // 输入框
                openEdit(elem);
            });

            form.on('input-affix(edit-IOTCloundDevelopmentAPI)', function (data) {
                let elem = data.elem; // 输入框
                openEdit(elem);
            });

            form.on('input-affix(edit-MqttWebSocketDevelopmentServer)', function (data) {
                let elem = data.elem; // 输入框
                openEdit(elem);
            });

            form.on('switch(environment-switch-filter)', function (obj) {
                let elem = obj.elem;
                let dom = $(elem);
                let data = {
                    isProductionEnvironment: elem.checked
                };
                $.post('UpdateEnvironment', data).done(function (result) {
                    if (result.code === 0) {
                        layer.msg(result.msg, { icon: 1 });
                        setBadge(elem.checked);
                    } else {
                        dom.prop('checked', !elem.checked)
                        layer.msg(result.msg, { icon: 2 });
                    }
                }).fail(function (xhr, status, error) {
                    dom.prop('checked', !elem.checked)
                    layer.msg(`操作失败,状态码${xhr.status},${error}`, { icon: 2 });
                });
            });

            function openEdit(elem) {
                let dom = $(elem);
                let labText = dom.parent().parent().siblings('label')[0].innerText;
                let code = dom.attr('name');
                layer.prompt({ title: labText, formType: 0, value: elem.value }, function (text, index) {
                    let data = {
                        code: code,
                        name: labText,
                        value: text
                    };
                    $.post('UpdateConfig', data).done(function (result) {
                        if (result.code === 0) {
                            dom.val(text);
                            layer.msg(result.msg, { icon: 1 });
                            layer.close(index);
                        } else {
                            layer.msg(result.msg, { icon: 2 });
                        }
                    }).fail(function (xhr, status, error) {
                        layer.msg(`操作失败,状态码${xhr.status},${error}`, { icon: 2 });
                    });
                });
            }

            function setBadge(isProductionEnvironment) {
                if (isProductionEnvironment) {
                    $('#isProductionEnvironment').addClass('layui-hide');
                } else {
                    $('#isProductionEnvironment').removeClass('layui-hide');
                }
            }
        });
    </script>
}