210 lines
8.4 KiB
JavaScript
210 lines
8.4 KiB
JavaScript
/* * 版 本 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();
|
||
console.log(formData.trigger_property_id);
|
||
console.log(formData.dependency_type);
|
||
console.log(formData.trigger_operator);
|
||
//VALIDATE
|
||
//if (formData.trigger_property_id != -1) {
|
||
// if (formData.dependency_type == -1 || formData.dependency_type == 0) {
|
||
// learun.alert.warning('请选择一个需要的联动类型。');
|
||
// return;
|
||
// }
|
||
//}
|
||
|
||
//没选 联动类型,就会保存为 不需要
|
||
if (formData.dependency_type === "" || formData.dependency_type === "-1") {
|
||
learun.alert.warning('请选择一个需要的联动类型。'); return;
|
||
}
|
||
else if (formData.dependency_type == 1) {
|
||
if (formData.trigger_property_id === "" || formData.trigger_property_id === "-1") {
|
||
learun.alert.warning('请选择一个前置属性。');
|
||
return;
|
||
}
|
||
|
||
}
|
||
else if (formData.dependency_type == 2) {
|
||
if (formData.trigger_property_id === "" || formData.trigger_property_id === "-1") {
|
||
learun.alert.warning('请选择一个前置属性。'); return;
|
||
}
|
||
if (formData.trigger_value === "" || formData.trigger_value === "-1") {
|
||
learun.alert.warning('前置属性的属性值需要填写。'); return;
|
||
}
|
||
if (formData.trigger_operator === "" || formData.trigger_operator === "-1") {
|
||
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();
|
||
}
|