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));
}