ebu_ecology_dev1/javascript/xuanran.wang/bme/js/ProDataConfirm.js

218 lines
6.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

var m_xmmc = WfForm.convertFieldNameToId("xmmc");//项目名称
var m_bmwyz = WfForm.convertFieldNameToId("glkcjlb");//关联勘察
var m_bmwyz1 = WfForm.convertFieldNameToId("glxsxqd");//关联销售
var m_bmwyz2 = WfForm.convertFieldNameToId("chdadx");//唯一值多选
var dt2_tyrq = WfForm.convertFieldNameToId("tyrq", "detail_2");//明细2停用日期
jQuery(document).ready(function () {
setTimeout("bindFieldChange()", "500");
});
function bindFieldChange() {
WfForm.bindFieldChangeEvent(m_xmmc, function (obj, id, value) {
WfForm.changeFieldValue(m_bmwyz, {value: ''});
WfForm.changeFieldValue(m_bmwyz1, {value: ''});
WfForm.changeFieldValue(m_bmwyz2, {value: ''});
});
//提交检验
WfForm.registerCheckEvent(WfForm.OPER_SUBMIT, function (callback) {
var flag = true;
var rowArr = WfForm.getDetailAllRowIndexStr("detail_2").split(",");
for (var i = 0; i < rowArr.length; i++) {
var rowid = rowArr[i];
var dt2_tyrq_v = WfForm.getFieldValue(dt2_tyrq + "_" + rowid);
if (dt2_tyrq_v != "") {
WfForm.showMessage("明细2第" + (i + 1) + "行设备已在" + dt2_tyrq_v + "停用!", 2, 5);
flag = flase;
break;
}
}
if (flag) {
callback(); //继续提交需调用callback不调用代表阻断
}
});
}
var rowArr = WfForm.getDetailAllRowIndexStr("detail_3").split(",");
// WfForm.delDetailRow("detail_2", "all");
for (var i = 0; i < rowArr.length; i++) {
var rowIndex = rowArr[i];
if (rowIndex !== "") {
var fieldMark = "field12566" + rowIndex;
if (fieldMark === "0") {
var count = WfForm.getFieldValue("field12562" + rowIndex);
var field7108_ = WfForm.getFieldValue("field6117_" + rowIndex);
WfForm.addDetailRow("detail_2", {field8567: {value: count}, field7583: {value: field7108_},});
}
}
}
/*
dev-1 王宣然 限制明细表选择的bom不能重复
*/
const detailBomField = WfForm.convertFieldNameToId('bombm', 'detail_1');
/**
* 主表辅助字段
*/
const mainAttrField = WfForm.convertFieldNameToId('ycbmpzx');
/**
* 明细1数量
*/
const detail1NumFieldId = WfForm.convertFieldNameToId('sl1', "detail_1");
/**
* 明细3 明细2数量
*/
const detail3NumFieldId = WfForm.convertFieldNameToId('mx2sl', "detail_3");
/**
* 明细3数量
*/
const detail3NumFieldId2 = WfForm.convertFieldNameToId('sl1', "detail_3");
/**
* 明细3需求数量
*/
const detail3NumFieldId3 = WfForm.convertFieldNameToId('sl', "detail_3");
/**
* 明细3bom编码
*/
const detail3BomFieldId = WfForm.convertFieldNameToId('bombm', "detail_3");
/**
* 明细1bom编码
*/
const detail1BomFieldId = WfForm.convertFieldNameToId('bombm', "detail_1");
/*
*已经选择的bom
*/
let choiceArr = new Set();
let updateNum = {};
const yjdhrq = WfForm.convertFieldNameToId('yjdhrq');
console.log('id ', yjdhrq)
// 明细到货日期
const detail1yjdhsj = WfForm.convertFieldNameToId('yjdhsj', "detail_2");
WfForm.bindFieldChangeEvent(yjdhrq, function (obj, id, value) {
initDeatail2Date(value);
});
WfForm.registerCheckEvent(WfForm.OPER_ADDROW + "2", function (callback) {
callback();
let value = WfForm.getFieldValue(yjdhrq);
initDeatail2Date(value);
});
WfForm.bindDetailFieldChangeEvent(detailBomField, function (id, rowIndex, value) {
if (!value) {
return;
}
if (choiceArr.has(value)) {
WfForm.showMessage('不能选择重复的bom请重新选择!');
setTimeout(() => {
WfForm.changeFieldValue(`${detailBomField}_${rowIndex}`, {value: '', specialobj: []});
}, 5);
}
initChoiceArr();
getBomArr();
});
// 数量变化自动计算
WfForm.bindDetailFieldChangeEvent(`${detail1NumFieldId},${detailBomField}`, function (id, rowIndex, value) {
let detail1RowArr = WfForm.getDetailAllRowIndexStr('detail_1').split(",");
console.log(detail1RowArr);
for (let i = 0; i < detail1RowArr.length; i++) {
let rowIndex = detail1RowArr[i];
if (rowIndex !== "") {
let num = WfForm.getFieldValue(`${detail1NumFieldId}_${rowIndex}`);
// bom编码
let bom = WfForm.getFieldValue(`${detail1BomFieldId}_${rowIndex}`);
setTimeout(() => {
computeNum(bom, num);
}, 500);
}
}
});
function initDeatail2Date(value) {
let detail2RowArr = WfForm.getDetailAllRowIndexStr('detail_2').split(",");
for (let i = 0; i < detail2RowArr.length; i++) {
let rowIndex = detail2RowArr[i];
if (rowIndex !== "") {
WfForm.changeFieldValue(`${detail1yjdhsj}_${rowIndex}`, {value: value});
}
}
}
/**
* 计算明细3数量
*/
function computeNum(detail1Bom, detail1Num) {
let detail3RowArr = WfForm.getDetailAllRowIndexStr('detail_3').split(",");
console.log(detail3RowArr);
for (let i = 0; i < detail3RowArr.length; i++) {
let rowIndex = detail3RowArr[i];
if (rowIndex !== "") {
// bom编码
let bom = WfForm.getFieldValue(`${detail3BomFieldId}_${rowIndex}`);
if (bom != detail1Bom) {
continue;
}
console.log('需要改变的index ', rowIndex)
WfForm.changeFieldValue(`${detail3NumFieldId}_${rowIndex}`, {value: detail1Num});
}
}
}
/**
* 初始化已经选择的数组
*/
function initChoiceArr() {
choiceArr = new Set();
let rowArr = WfForm.getDetailAllRowIndexStr('detail_1').split(",");
for (let i = 0; i < rowArr.length; i++) {
let rowIndex = rowArr[i];
if (rowIndex !== "") {
let bom = WfForm.getFieldValue(`${detailBomField}_${rowIndex}`);
// console.log('bom ', bom);
if (!bom) {
continue;
}
choiceArr.add(bom);
}
}
console.log('choiceArr ', choiceArr)
}
WfForm.registerCheckEvent(WfForm.OPER_DELROW + "1", function (callback) {
callback();
getBomArr();
initChoiceArr();
});
function getBomArr() {
let arr = [];
let rowArr = WfForm.getDetailAllRowIndexStr('detail_1').split(",");
for (let i = 0; i < rowArr.length; i++) {
let rowIndex = rowArr[i];
if (rowIndex !== "") {
arr.push(WfForm.getFieldValue(`${detailBomField}_${rowIndex}`));
}
}
let bom = new Set(arr);
let arr2 = [...bom];
let obj = {};
obj.value = arr2.join(',');
let specialobjArr = [];
for (let i = 0; i < arr2.length; i++) {
let obj = {};
obj.id = arr2[i];
obj.name = arr2[i];
specialobjArr.push(obj);
}
obj.specialobj = specialobjArr;
let val = WfForm.changeFieldValue(mainAttrField, obj);
if (!val) {
WfForm.delDetailRow("detail_3", "all");
}
console.log('主表辅助字段值 : ', WfForm.getFieldValue(mainAttrField));
}