/* * 版 本 PIT-ADMS V7.0.3 敏捷开发框架 * Copyright (c) 2013-2018 Hexagon PPM * 创建人:chenkai * 日 期:2022-02-24 * 描 述:属性设置 */ var refreshGirdData; var PropertyGID = ""; var ObjectTypeID = request('ObjectTypeID'); var selectData = []; var ProjectId = request('ProjectId'); var bootstrap = function ($, learun) { "use strict"; var page = { init: function () { page.bind(); page.initGird(); }, bind: function () { // 初始化左侧树形数据(属性组) $('#dataTree').lrtree({ url: top.$.rootUrl + '/ZZDT_EC/ec_property/GetTree?ProjectId=' + ProjectId, nodeClick: function (item) { $("#titleinfo").html(item.text); PropertyGID = item.value; table.ajax.reload(); // 重新发起请求,加载新数据; /*选择左侧组后,相当于去触发这个搜索方法*/ } }); ////获取当前选中的数据() //$.ajax({ // url: top.$.rootUrl + '/ZZDT_EC/ec_property/GetObjectTypePById', // data: { objectTypeID: ObjectTypeID, ProjectId: ProjectId }, // async: false, // type: "GET", // dataType: "json", // success: function (data) { // if (data.code == 200 && data.data.length > 0) // selectData = data.data; // }, // error: function () { // }, // complete: function (data) { // } //}); ////查询 //$('#btn_Search').on('click', function () { // page.search(); //}); // 刷新 $('#lr_refresh').on('click', function () { location.reload(); }); // 保存 $('#lr_save').on('click', function () { //var selectedRows = table.$('input.row-select:checked').closest('tr'); // 获取勾选的行 // 获取所有勾选的行 //var selectedRows = table.rows().data().toArray().filter(function (row) { // return row.IsChecked === true; // 仅获取 isChecked 为 true 的行 //}); var selectedRows = table.rows().data().toArray(); // 获取所有行数据 //if (selectedRows.length > 0) { console.log('需要的属性有 ' + selectedRows.length + ' 个'); // 构造 POST 请求的数据 var postData = selectedRows.map(function (row) { return { PropertyGID: PropertyGID, PropertyID: row.PropertyID, // 这里根据你的数据模型,提取需要的字段 IsRequired: row.IsRequired, IsChecked: row.IsChecked, ObjectTypeID: ObjectTypeID }; }); console.log('postData: ' + postData); // 发起 AJAX POST 请求,提交数据 $.ajax({ url: top.$.rootUrl + '/ZZDT_EC/ec_property/SaveObjectTypeP?objectTypeID=' + ObjectTypeID + "&ProjectId=" + ProjectId, // 只保存是否必填,是否需要 method: 'POST', contentType: 'application/json', data: JSON.stringify(postData) , success: function (response) { alert('保存成功!'); }, error: function (error) { console.error('保存失败', error); alert('保存失败,请重试!'); } }); }); //联动 $('#lr_dependent_set').click(function () { var selectedRowData = table.row('.selected').data(); // 判断是否有选中行 if (!selectedRowData) { alert("请先选择一行!"); } else { // 有选中行,执行其他操作 console.log(selectedRowData); learun.layerForm({ id: 'PropertyDependentForm', // 唯一标识符,用于控制窗口 title: selectedRowData.PropertyName + ' 属性联动设置', // 弹出层标题 url: top.$.rootUrl + '/ZZDT_EC/ec_property/PropertyDependent?PropertyID=' + selectedRowData.PropertyID + "&ProjectId=" + ProjectId + "&ObjectTypeID=" + ObjectTypeID + "&IsRequired=" + selectedRowData.IsRequired + "&IsChecked=" + selectedRowData.IsChecked, // 弹出视图的路径 width: 600, // 弹出层宽度 height: 400, // 弹出层高度 callBack: function (id) { return top[id].Save();//FORM里有一个Save函数 } }); } // 重新绘制表格以显示更改后的数据 table.rows().invalidate().draw(); }); $('#lr_propertyImport').on('click', function () { //批量导入 var format = 'xlsx'; var uploadKeyValue = Guid.NewGuid().toString(); learun.layerForm({ id: 'importfile', title: '对象类型 - 必填属性导入', url: top.$.rootUrl + '/LR_SystemModule/Annexes/UploadForm?keyVaule=' + uploadKeyValue + "&multiple=false" + "&format=" + format, width: 600, height: 400, maxmin: true, btn: ['确认'], callBack: function (id) { learun.layerClose('importfile'); //MuliteImport(uploadKeyValue); learun.loading(true, "批量导入数据中..."); $.ajax({ type: 'POST', url: top.$.rootUrl + "/ZZDT_EC/ec_objecttype/ImportPropsIfNeed?rdo=" + Math.random(), data: { fileId: fileId, ProjectId: ProjectId }, traditional: true, success: function (data) { var data = JSON.parse(data); if (data.code == '200') { location.reload(); } learun.alert.success(data.info); }, error: function (msg) { learun.alert.error(msg); }, complete: function (data) { learun.loading(false); } }); } }); }); //属性必填矩阵导出 $('#lr_propertyExport').on('click', function () { learun.loading(true, "导出中..."); var iframeUrl = top.$.rootUrl + '/ZZDT_EC/ec_objecttype/ExportPropsIfNeed?ProjectId=' + ProjectId; var body = document.getElementsByTagName("body")[0]; var downloadIframe = document.createElement("iframe"); downloadIframe.setAttribute("src", iframeUrl); downloadIframe.setAttribute("style", "display:none;") body.appendChild(downloadIframe); learun.loading(false); }); }, // 初始化列表 initGird: function () { $('#PropertyName').css('width', '100px'); // 200px 是示例宽度 //$('#gridtable').jfGrid({ // url: top.$.rootUrl + '/ZZDT_EC/ec_property/GetPageList2', // headData: [ // { label: "属性名称", name: "PropertyName", width: 400, align: "left", sort: false }, // { label: "是否必填", name: "IsRequired", width: 100, align: "left", sort: false, editType: 'input' }, // { name: "", width: 1, sort: false } // ], // mainId: 'PropertyID', // isPage: true, // isMultiselect: true, /*控制前面那个勾*/ // isEidt: true, // onSelectRow: function (rowData, isSelect) { // selectData = $.grep(selectData, function (item) { // return item.PropertyID != rowData.PropertyID; // }); // if (isSelect) { // var param = {}; // param.ObjectTypePID = top.learun.newGuid(); // param.PropertyID = rowData.PropertyID; // param.ObjectTypeID = ObjectTypeID; // selectData.push(param); // } // }, // onRenderComplete: function (data) { // //默认已经选中的 // for (var i = 0; i < data.length; i++) { // if (selectData) { // var gdata = $.grep(selectData, function (item) { // return item.PropertyID == data[i].PropertyID // }); // if (gdata && gdata.length > 0) { // $('#gridtable').jfGridSet("selectRow", data[i].PropertyID); // } // } // } // } //}); //page.search(); }, //search: function (param) { // param = param || {}; // param.PropertyGID = PropertyGID; // param.ObjectTypeID = ObjectTypeID; // param.ProjectId = ProjectId; // param.PropertyName = $("#PropertyName").val(); // $('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) }); //} }; refreshGirdData = function () { //$('#gridtable').jfGridSet('reload'); }; page.init(); var table = $('#example').DataTable({ paging: false, // 禁用分页 scrollY: '390px', // 设置表格的最大高度,超出部分将出现滚动条 scrollCollapse: true, // 当内容较少时,允许缩小表格高度 language: { info: "" // 不显示任何信息 }, ajax: { url: top.$.rootUrl + '/ZZDT_EC/ec_property/GetPageList2', // 替换为你的服务器端URL method: 'GET', data: function (d) { // 将额外的参数传递到服务器请求中 return $.extend({}, d, { ProjectId: ProjectId, // 假设你有一个用户ID的输入框 ObjectTypeID: ObjectTypeID, // 或者根据你的需求传递固定参数 PropertyGID: PropertyGID }); }, dataSrc: function (json) { // 提取data字段中的数据 return json.data; } }, columns: [ { data: 'IsChecked', render: function (data, type, row) { // 根据 `isChecked` 字段的值来设置复选框的初始状态 return ''; }, title: '是否绑定到对象', orderable: false, // 复选框列不参与排序, width: 100 }, { data: 'PropertyName', title: '属性名' }, // 显示name字段 //{ // data: 'IsRequired', // 显示IsRequired字段 // render: function (data, type, row) { // return data ? '是' : '否'; // 将布尔值转换为'Yes'或'No' // }, // title: '是否必填(1或0)' //}, { data: 'IsRequired', render: function (data, type, row) { // 渲染为固定的下拉列表 return ` `; }, title: '是否必填', orderable: false // 禁止排序 }, { data: 'PropertyID', visible: false } // 不显示propertyId,但用于主键 ] }); //查询 $('#btn_Search').on('click', function () { table.search($("#PropertyName").val()).draw(); }); // 点击行时高亮选中 $('#example tbody').on('click', 'tr', function (event) { if (!$(event.target).is('input')) { // 如果点击的不是复选框 $(this).toggleClass('selected').siblings().removeClass('selected'); // 选中行 } }); // 切换是否 必填 //$('#modifyRow').click(function () { // var selectedRows = table.rows('.selected').data(); // // 遍历选中的行,修改 IsRequired 值 // selectedRows.each(function (rowData, index) { // // 切换 IsRequired 值:如果是 1 切换为 0,反之亦然 // console.log('选中行 ' + rowData.IsChecked + ' ' + rowData.IsRequired) // //rowData.IsRequired = rowData.IsRequired ? 0 : 1; // // 可选:你也可以在这里发送 AJAX 请求,通知服务器更新数据 // // $.ajax({ // // url: 'https://your-server-endpoint.com/api/update', // // method: 'POST', // // data: { id: rowData.propertyId, IsRequired: rowData.IsRequired }, // // success: function(response) { // // console.log('Update successful', response); // // } // // }); // }); // // 重新绘制表格以显示更改后的数据 // table.rows().invalidate().draw(); //}); // 当复选框状态发生变化时,更新 `isChecked` 值,即该属性是否关联到该对象类型 table.on('change', 'input.row-select', function () { var row = $(this).closest('tr'); var rowData = table.row(row).data(); console.log('isChecked 改动'); // 根据复选框状态更新 `isChecked` 值 rowData.IsChecked = $(this).prop('checked'); }); // 监听下拉列表的变化 table.on('change', 'select.is-required-select', function () { var row = $(this).closest('tr'); // 获取当前行 var rowData = table.row(row).data(); // 获取当前行的数据 console.log('isRequired 改动'); // 更新 IsRequired 的值为下拉列表选中的值 rowData.IsRequired = $(this).val(); console.log('更新后的 IsRequired 值为:', rowData.IsRequired); }); }