"use strict";
layui.extend({
    common    :   'js/common',
    region    :   'layui/lay/mymodules/region'
}).use(['jquery','layer','common','region','form'],function(){
    var $ = layui.jquery;

    //  页面元素
    var $node = {
        //  省市区表单
        provinceInput   :   $('input[name="regionProvince"]'),
        cityInput       :   $('input[name="regionCity"]'),
        areaInput       :   $('input[name="regionArea"]'),
        regionInput     :   $('#region'),
        //  上级机构表单
        pidInput        :   $('#pid'),
        //  取消按钮
        resetBtn        :   $('button[type="reset"]')
    };

    //  获取机构信息
    $.ajax({
        url     :   '/permissions/org/get/' + pageData.orgId,
        success :   function(result){
            var entity = result.data;
            //  填充表单数据
            layui.form.val('entity_form',entity);
            //  上级机构
            $node.pidInput.val(entity.parentName);

            //  初始化省市区
            layui.region.init({
                //  元素节点
                elem        :  '#region_body',
                //  触发此元素时显示
                trigger     :   '#region',
                //  初始化选中数据
                selectData        :   {
                    province : entity['regionProvince'],
                    city : entity['regionCity'],
                    county : entity['regionArea']
                },
                //  选中省的回调
                provinceCallbackFn  :   function(data){
                    $node.regionInput.val(data.province.text);
                    $node.provinceInput.val(data.province.id);
                },
                //  选中市的回调
                cityCallbackFn  :   function(data){
                    var address = data.province.text + '-' + data.city.text;
                    $node.regionInput.val(address);
                    $node.cityInput.val(data.city.id);
                },
                //  选中区域的回调
                areaCallbackFn  :   function(data){
                    var address = data.province.text + '-' + data.city.text + '-' +data.county.text;
                    $node.regionInput.val(address);
                    $node.areaInput.val(data.county.id);
                },
                //清空回调
                clearFn : function(){
                    $node.regionInput.val('');
                    $node.provinceInput.val('');
                    $node.cityInput.val('');
                    $node.areaInput.val('');
                }
            });

        }
    });


    //  绑定表单提交事件
    layui.form.on("submit(entity_submit_event)",function(data){
        //  提交表单
        $.ajax({
            url     :   '/permissions/org/edit',
            data    :   data.field,
            type    :   'POST',
            success :   function(){
                $node.resetBtn.click();
                parent.location.reload();
            }
        });
    });

    //表单验证
    layui.form.verify({
        specialCharacters : function (value) {
            if(!/^[a-zA-Z0-9_\u4e00-\u9fa5\s·]+$/.test(value)){
                return '名称不能有特殊字符';
            }
            if(/(^\_)|(\__)|(\_+$)/.test(value)){
                return '名称首尾不能出现下划线\'_\'';
            }
            if(/^\d+\d+\d$/.test(value)){
                return '名称不能全为数字';
            }
        },
        length : function (value) {
            if(value.length < 2 || value.length > 20){
                return "只能输入2-20个字符";
            }
        },
    });


    //  点击取消事件
    $node.resetBtn.on('click',function(){
        //  关闭当前页面弹窗
        var index = parent.layer.getFrameIndex(window.name);
        parent.layer.close(index);
    });

});