<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <base th:href="${#request.getContextPath() + '/'}">
    <meta charset="utf-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
    <link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
    <style>
        .layui-form-selected dl {max-height: 200px;}
    </style>
</head>
<body>
<div class="layui-fluid layui-anim layui-anim-fadein" style="padding: 0;overflow: hidden;">
    <div class="layui-card">
        <div class="layui-card-body" style="padding: 15px; height: 300px;">
            <form class="layui-form layui-form-pane" lay-filter="dataForm">
                <div class="layui-form-item">
                    <label class="layui-form-label">新用户名</label>
                    <div class="layui-input-block">
                        <input type="username" name="username" lay-verify="username" placeholder="请输入新用户名" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">修改原因</label>
                    <div class="layui-input-block">
                        <select id="updateReasonSelect" lay-filter="updateReasonSelectFilter">
                            <option value="" selected>其他原因</option>
                            <option value="填写错误">填写错误</option>
                            <option value="人员变动">人员调整</option>
                            <option value="离职更换">离职更换</option>
                            <option value="更换账号">更换账号</option>
                            <option value="规则变更">规则变更</option>
                        </select>
                    </div>
                </div>
                <div id="updateOtherReasonBox" class="layui-form-item layui-form-text">
                    <label class="layui-form-label">其他修改原因</label>
                    <div class="layui-input-block">
                        <textarea id="updateOtherReason" placeholder="请输入其他修改原因" class="layui-textarea" maxlength="80"></textarea>
                    </div>
                </div>
                <div class="layui-form-item layui-layout-admin">
                    <div class="layui-input-block">
                        <div class="layui-footer" style="left: 0;">
                            <button type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交编辑</button>
                            <button type="button" class="layui-btn layui-btn-primary close">关闭窗口</button>
                        </div>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
<script src="assets/layuiadmin/layui/layui.js"></script>
<script>
    layui.config({
        base: 'assets/layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index' //主入口模块
    }).use(['index', 'form'], function(){
        var $ = layui.$;
        var form = layui.form;
        var userId = top.restAjax.params(window.location.href).userId;

        function closeBox() {
            parent.layer.close(parent.layer.getFrameIndex(window.name));
        }

        // 提交表单
        form.on('submit(submitForm)', function(formData) {
            var updateReasonSelect = $('#updateReasonSelect').val();
            var updateOtherReason = $('#updateOtherReason').val();
            updateOtherReason = updateOtherReason.replace(/^\s*|\s*$/g, '');
            $('#updateOtherReason').val(updateOtherReason);
            if(updateReasonSelect) {
                formData.field.updateReason = updateReasonSelect;
            } else if(updateOtherReason) {
                formData.field.updateReason = updateOtherReason;
            } else {
                top.dialog.msg('请选择原因或输入其他原因');
                return;
            }
            top.dialog.confirm(top.dataMessage.update, function(index) {
                top.dialog.close(index);
                var loadLayerIndex;
                top.restAjax.put(top.restAjax.path('api/user/update-username/{userId}', [userId]), formData.field, null, function(code, data) {
                    var layerIndex = top.dialog.msg(top.dataMessage.updateSuccess, {
                        time: 0,
                        btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
                        shade: 0.3,
                        yes: function(index) {
                            top.dialog.close(index);
                            window.location.reload();
                        },
                        btn2: function() {
                            closeBox();
                        }
                    });
                }, function(code, data) {
                    top.dialog.msg(data.msg);
                }, function() {
                    loadLayerIndex = top.dialog.msg(top.dataMessage.updating, {icon: 16, time: 0, shade: 0.3});
                }, function() {
                    top.dialog.close(loadLayerIndex);
                });
            });
            return false;
        });
        form.verify({
            userUsername: function(value, item) {
                if(!new RegExp('^[a-zA-Z0-9_\\s·]+$').test(value)) {
                    return '用户名不能有特殊字符';
                }
                if(/(^\_)|(\__)|(\_+$)/.test(value)){
                    return '用户名首尾不能出现下划线\'_\'';
                }
            }
        });
        form.on('select(updateReasonSelectFilter)', function(data) {
            if(data.value) {
                $('#updateOtherReasonBox').hide();
            } else {
                $('#updateOtherReasonBox').show();
            }
        });
        $('.close').on('click', function() {
            closeBox();
        });
    });
</script>
</body>
</html>