/* * 版 本 PIT-ADMS V7.0.3 敏捷开发框架
 * Copyright (c) 2013-2018 Hexagon PPM
 * 创建人：超级管理员
 * 日  期：2022-02-23 11:30
 * 描  述：属性表
 */
var acceptClick;
var keyValue = request('keyValue');
var PropertyGID = request('PropertyGID'); //会是“”因为从index界面点击编辑按钮时，没有这个参数
var ProjectId = request('ProjectId');
var openType = request('openType');//look为查看 
var bootstrap = function ($, learun) {
    "use strict";
    var page = {
        init: function () {
            $('.lr-form-wrap').lrscroll();
            page.bind();
            page.initData();
        },
        bind: function () {
            $('#EnumData').lrselect({
                url: top.$.rootUrl + '/ZZDT_EC/ec_dataitem/GetClassifyTree',
                param: { ProjectId: ProjectId },
                type: 'tree',
                allowSearch: true,
                maxHeight: 225,
                value: 'value',
                select: function (item) {
                    if (item && item != null) {
                        var value = item.value;
                        if (!value || value == "-1") {
                            value = "";
                        } else {
                            $('#DataItemDetailID').lrselectRefresh({
                                url: top.$.rootUrl + '/api/DataItemApi/GetDetails',
                                param: { projectId: ProjectId, itemCode: value }
                            });
                        }
                    }
                }
            });
            $('#PropertyGID').lrselect({
                allowSearch: true,
                url: top.$.rootUrl + '/ZZDT_EC/ec_propertyg/GetList',
                param: { queryJson: JSON.stringify({ ProjectId: ProjectId }) },
                value: 'PropertyGID',
                text: 'PropertyGroupName',
                title: 'PropertyGroupName'
            }).lrselectSet(PropertyGID);
            $('#PropertyType').lrDataItemSelect({ code: 'Be_DataType' });//动态初始化一个下拉选择框，并绑定指定的数据字典项
            $('DefaultValue').change(function () {
                m_defaultValue = $('DefaultValue').val();
                console.log(m_defaultValue);
            });
            $("#PropertyType").change(function () {
                var propertyType = $('#PropertyType').lrselectGet();
                $("#divDefaultValue").show();
                $("#divDataItemDetailID").hide();
                if (propertyType == "00002") {
                    //如果属性类型为数字，则需要设置小数点。
                    $("#divEnumData").hide();
                    $("#divDecimalPoint").show();
                    $(".uom").hide();
                }
                else if (propertyType == "00003" || propertyType == "00006") {
                    //如果属性类型为枚举，则需要设置枚举数据。
                    $("#divDecimalPoint").hide();
                    $("#divEnumData").show();
                    $(".uom").hide();
                    $("#divDataItemDetailID").show();
                    $("#divDefaultValue").hide();

                }
                else if (propertyType == "00005") {
                    //如果属性类型为Uom，则需要设置单位。
                    $("#divDecimalPoint").hide();
                    $(".uom").show();
                }
                else {
                    $("#divDecimalPoint").hide();
                    $("#divEnumData").hide();
                    $(".uom").hide();
                }
            });
            $('#DefaultUnit').lrselect({
                value: 'MeasuringUnitID',
                text: 'MeasuringUnitName',
                title: 'MeasuringUnitName',
                maxHeight: 225,// 展开最大高度
                allowSearch: true,// 是否允许搜索
                select: function (item) {
                }
            });
            $('#DataItemDetailID').lrselect({
                value: 'DataItemDetailID',
                text: 'DataItemName',
                title: 'DataItemName',
                maxHeight: 225,// 展开最大高度
                allowSearch: true,// 是否允许搜索
                select: function (item) {
                    if (item && item != null) {
                        var value = item.DataItemDetailID;
                        if (!value || value == "-1") {
                            value = ""; 
                        } else {
                            $('#DefaultValue').val(item.DataItemName); //0003 0006时，defaultvalue会同步 
                        }
                    }
                    else {
                        value = ""; 
                        $('#DefaultValue').val(''); 
                    }
                }
            });
          
            $('#MeasuringUnitTypeID').lrselect({
                allowSearch: true,
                url: top.$.rootUrl + '/ZZDT_EC/ec_measuring_unittype/GetList',
                param: { queryJson: JSON.stringify({ ProjectId: ProjectId }) },
                value: 'MeasuringUnitTypeID',
                text: 'MeasuringUnitTypeName',
                title: 'MeasuringUnitTypeName',
                select: function (item) {
                    if (item && item != null) {
                        var value = item.MeasuringUnitTypeID;
                        if (!value || value == "-1") {
                            value = "";
                        } else {
                            $('#DefaultUnit').lrselectRefresh({
                                url: top.$.rootUrl + '/api/DataItemApi/GetMeasuringUnitList',
                                param: { projectId: ProjectId, measuringUnitTypeID: value }
                            });
                        }
                    }
                }
            });
        },
        initData: function () {
            if (!!keyValue) {
                $.lrSetForm(top.$.rootUrl + '/ZZDT_EC/ec_property/GetFormData?keyValue=' + keyValue + "&ProjectId=" + ProjectId, function (data) {
                    for (var id in data) {
                        if (!!data[id].length && data[id].length > 0) {
                            $('#' + id).jfGridSet('refreshdata', data[id]);
                        }
                        else {
                            $('[data-table="' + id + '"]').lrSetFormData(data[id]);
                        }
                    }
                });
            }
        }
    };
    // 保存数据
    acceptClick = function (callBack) {
        if (!$('#form').lrValidform()) {
            return false;
        }
        //文字特殊字符及最大长度检测
        if (!verify()) {
            return false;
        }
        var formData = $('#form').lrGetFormData();
        if (formData.PropertyGID == "") {
            $.lrValidformMessage($("#PropertyGID"), "请选择一个属性组！");
            $('#PropertyGID').click();
            return false;
        }
        //如果属性类型为数字，则需要设置小数点。
        if ($("#divDecimalPoint").css("display") == "none") {
            formData.DecimalPoint = "";
        } else {
            if (!formData.DecimalPoint) {
                $.lrValidformMessage($("#DecimalPoint"), "请输入小数点！");
                $('#DecimalPoint').click();
                return false;
            }
            if (formData.DefaultValue != "" && isNaN(parseFloat(formData.DefaultValue))) {
                $.lrValidformMessage($("#DefaultValue"), "请输入数字！");
                $('#DefaultValue').click();
                return false;
            }
        }
        //如果属性类型为枚举，则需要设置枚举类型编号。
        if ($("#divEnumData").css("display") == "none") {
            formData.EnumData = "";
        } else {
            if (!formData.EnumData) {
                $.lrValidformMessage($("#EnumData"), "请输入枚举数据！");
                $('#EnumData').click();
                return false;
            }
        }
        //如果属性类型为单位。
        if ($(".uom").css("display") == "none") {
            formData.MeasuringUnitTypeID = "";
            formData.DefaultUnit = "";
        } else {
            if (formData.MeasuringUnitTypeID && formData.MeasuringUnitTypeID != "-1") {
                if (!formData.DefaultUnit || formData.DefaultUnit == "-1") {
                    $.lrValidformMessage($("#DefaultUnit"), "请选择默认计量单位！");
                    $('#DefaultUnit').click();
                    return false;
                }
            }
            if (formData.DefaultValue != "" && isNaN(parseFloat(formData.DefaultValue))) {
                $.lrValidformMessage($("#DefaultValue"), "请输入数字！");
                $('#DefaultValue').click();
                return false;
            }
            if (formData.DefaultValue != "" && isNaN(parseFloat(formData.DefaultValue))) {
                $.lrValidformMessage($("#DefaultValue"), "请输入数字！");
                $('#DefaultValue').click();
                return false;
            }
        }

        formData.IsRequired = Number(formData.IsRequired);
        formData.BasicGroup = Number(formData.BasicGroup);

        //console.log("defaultValue: " + $('#DefaultValue').val());
        var propertyType = $('#PropertyType').lrselectGet();
        if (propertyType == "00003" || propertyType == "00006") {
            //$('#DefaultValue').val($('#DataItemDetailID').lrselectGet());
            //formData.DefaultValue = $('#DefaultValue').val();
        }
        else {
            formData.DefaultValue = $('#DefaultValue').val();
            formData.DataItemDetailID = "";
        }
        console.log("defaultValue: " + $('#DefaultValue').val());

        var postData = {
            strEntity: JSON.stringify(formData)
        }
        $.lrSaveForm(top.$.rootUrl + '/ZZDT_EC/ec_property/SaveForm?keyValue=' + keyValue + "&ProjectId=" + ProjectId, postData, function (res) {
            // 保存成功后才回调
            if (!!callBack) {
                callBack();
            }
        });


    };


    page.init();
}

//文字特殊字符及最大长度检测
function verify() {
    var msg = checkStr($("#PropertyName").val(), 200);
    if (msg) {
        $.lrValidformMessage($("#PropertyName"), msg);
        $('#PropertyName').click();
        return false;
    }
    msg = checkStr($("#PropertyNameEN").val(), 200);
    if (msg) {
        $.lrValidformMessage($("#PropertyNameEN"), msg);
        $('#PropertyNameEN').click();
        return false;
    }
    msg = checkStr($("#PropertyType").val(), 200);
    if (msg) {
        $.lrValidformMessage($("#PropertyType"), msg);
        $('#PropertyType').click();
        return false;
    }
    msg = checkStr($("#EnumData").val(), 5000);
    if (msg) {
        $.lrValidformMessage($("#EnumData"), msg);
        $('#EnumData').click();
        return false;
    }
    msg = checkStr($("#DefaultValue").val(), 50);
    if (msg) {
        $.lrValidformMessage($("#DefaultValue"), msg);
        $('#DefaultValue').click();
        return false;
    }
    return true;
}

function ChangeNameEN(obj) {
    if (!!openType && openType == 'add') {
        document.getElementById("PropertyNameEN").value = obj.value;
    }
}