/* * 版 本 PIT-ADMS V7.0.3 敏捷开发框架
 * Copyright (c) 2013-2018 Hexagon PPM
 * 创建人：超级管理员
 * 日  期：2022-02-28 14:47
 * 描  述：属性组表
 */
var PropertyID = request('PropertyID');
var ProjectId = request('ProjectId');
var IsRequired = request('IsRequired');
var IsChecked = request('IsChecked');
var ObjectTypeID = request('ObjectTypeID');
var selectedSpecialType = '';
var Save;
var obj;
var bootstrap = function ($, learun) {
    "use strict";
    var page = {
        init: function () {
            console.log('IsRequired: ' + IsRequired);
            page.initData();
            page.bind();
        },
        bind: function () {


        },
        initData: function () {



            // 初始化下拉列表并配置数据
            $('#trigger_property_id').lrselect({
                url: top.$.rootUrl + '/ZZDT_EC/ec_property/GetPropTreeDataByType', //获取数据地址
                param: { ProjectId: ProjectId, ObjectTypeId: ObjectTypeID, exceptionProp: PropertyID }, //请求后台参数
                type: 'tree',//数据展示类型：                1.default：普通；2.tree：树形数据；3. treemultiple：树形多选；multiple：普通多选
                allowSearch: true,
                maxHeight: 205,
                select: function (item) {
                    // 判断是否为末端节点
                    if (item == null) {

                    }
                    else if (item.ChildNodes && item.ChildNodes.length > 0) {
                        console.log('选中的是非末端节点:', item.text);
                        $('#trigger_property_id').lrselectSet('');
                        learun.alert.warning('请选择属性，而不是属性组。');
                    }
                },

            });
            $('#trigger_property_id').on('change', function () {
                var selectedValue = $(this).lrselectGet(); // 获取选中的值
                console.log('trigger_property_id: ' + selectedValue);
                if (selectedValue == null || selectedValue == -1) {
                    //未选前置属性
                    $('#dependency_type').lrselectSet('');
                    $('#trigger_operator').lrselectSet('');
                    $('#trigger_value').val('');
                }
            });
            // 初始化下拉列表并配置数据
            $('#dependency_type').lrselect({
                data: [
                    { id: '0', text: '不需要' },
                    { id: '1', text: 'RequireIfRequired(前置属性必填时，该属性自己也必填)' },
                    { id: '2', text: 'RequireIf(前置属性满足特定值后，该属性自己为必填)' },
                    { id: '3', text: 'RequireMutually(同一属性组内的必填互斥)' }
                ],
                placeholder: '请选择联动类型',
                select: function (item) {
                    if (item == null) {
                        $('#div_trigger_value').hide();
                        $('#div_trigger_operator').hide();
                    }
                    else {
                        // 将选择的值赋给变量 B
                        selectedSpecialType = item.id;
                        console.log('选中的值为：' + selectedSpecialType);
                        switch (item.id) {
                            case "2":
                                $('#div_trigger_value').show();
                                $('#div_trigger_operator').show();
                                break;
                            default:
                                $('#div_trigger_value').hide();
                                $('#div_trigger_operator').hide();
                                break;
                        }
                    }
                },

            });
            // 初始化下拉列表并配置数据
            $('#trigger_operator').lrselect({
                data: [
                    { id: '=', text: '等于' },
                    { id: '>', text: '大于' },
                    { id: '<', text: '小于' },
                    { id: '!=', text: '不等于' }
                ],
                placeholder: '请选择操作符',
                select: function (item) {
                    if (item) {
                    }
                }
            });


            //objectTypeP对象查询
            $.ajax({
                url: top.$.rootUrl + '/ZZDT_EC/ec_property/GetObjectTypeP', // 替换为实际的 API 地址
                type: 'GET', // GET 方法用于查询数据 
                data: { objectTypeID: ObjectTypeID, propertyID: PropertyID, ProjectId: ProjectId },
                async: false,
                dataType: "json",
                success: function (data) {
                    obj = data.data; // 返回的是200那个结构体
                    console.log(obj); // 输出查看

                    $('#trigger_property_id').lrselectSet(obj.trigger_property_id);
                    $('#dependency_type').lrselectSet(obj.dependency_type);
                    $('#trigger_value').val(obj.trigger_value);
                    $('#trigger_operator').lrselectSet(obj.trigger_operator);
                    //$('#form').lrSetFormData(obj);
                },
                error: function (xhr, status, error) {
                    console.error("请求失败:", error); // 错误处理
                }
            });
        },


    };

    // 保存数据。从发起的js文件里会调用这个函数
    Save = function (callBack) {

        var formData = $('#form').lrGetFormData();

        //VALIDATE
        if (formData.trigger_property_id != -1) {
            if (formData.dependency_type == -1 || formData.dependency_type == 0) {
                learun.alert.warning('请选择一个需要的联动类型。');
                return;
            }
        }
        var obj = {
            PropertyID: PropertyID,  // 这里根据你的数据模型，提取需要的字段
            IsRequired: IsRequired,
            IsChecked: true,
            ObjectTypeID: ObjectTypeID,
            trigger_property_id: formData.trigger_property_id,
            dependency_type: formData.dependency_type,
            trigger_value: formData.trigger_value,
            trigger_operator: formData.trigger_operator,
            PropertyType:"1"
        }
        console.log(obj);
        var dataList = [obj];  // 将单个对象包装成数组
        console.log(dataList);

        $.ajax({
            url: top.$.rootUrl + '/ZZDT_EC/ec_property/SaveObjectTypeP?objectTypeID=' + ObjectTypeID + "&ProjectId=" + ProjectId,  // 只保存联动属性部分
            method: 'POST',
            contentType: 'application/json',

            data: JSON.stringify(dataList),

            success: function (response) {
                alert('保存成功！');
                learun.layerClose('PropertyDependentForm'); //再执行关闭  
            },
            error: function (error) {
                console.error('保存失败', error);
                alert('保存失败，请重试！');
            }
        });


    };

    page.init();
}
