const rptChangeRela = (function (){
const info = {
change: { title: '请选择变更令', colHeader: ['选择', '变更令号', '工程名称'] },
change_project: { title: '请选择变更立项', colHeader: ['选择', '变更立项编号', '工程名称'] },
change_apply: { title: '请选择变更申请', colHeader: ['选择', '变更申请编号', '工程名称'] },
change_plan: { title: '请选择变更方案', colHeader: ['选择', '变更方案编号', '工程名称'] },
};
const data = {};
let curType = '';
const initList = function () {
const header = info[curType].colHeader;
$('#scr-header').html(`
${header[0]} | ${header[1]} | ${header[2]} |
`);
const html = [], arr = data[curType];
for (const a of arr) {
const checked = a.selected ? 'checked' : '';
html.push('', ` | `, `${a.code} | `, `${a.name} | `, '
');
}
$('#scr-list').html(html.join(''));
};
const showChangeRela = async function (type) {
curType = type;
document.getElementById('scr-title').innerText = info[type].title;
if (!data[type]) {
const result = await postDataAsync(`/tender/${window.location.pathname.split('/')[2]}/load`, { filter: curType });
data[curType] = result[curType];
}
initList();
$('#select-change-rela').modal('show');
$('#scr-all').change(function () {
const check = this.checked;
$('[name=scr-check]').each((i, c) => { c.checked = check });
})
};
const updateChangeRela = async function () {
const updateData = {};
updateData[curType] = [];
if (curType === 'change') {
$('[name=scr-check]').each((i, c) => {
const ci = data[curType].find(x => { return x.cid === c.value });
const checked = c.checked ? 1 : 0;
if (ci && ci.selected !== checked) {
updateData[curType].push({ cid: c.value, selected: c.checked });
}
});
} else {
$('[name=scr-check]').each((i, c) => {
const ci = data[curType].find(x => { return x.id == c.value });
const checked = c.checked ? 1 : 0;
if (ci && ci.selected !== checked) {
updateData[curType].push({id: c.value, selected: c.checked})
}
});
}
if (updateData[curType].length > 0) {
await postData(`/tender/${window.location.pathname.split('/')[2]}/saveRela`, updateData);
if (curType === 'change') {
$('[name=scr-check]').each((i, c) => {
const ci = data[curType].find(x => {
return x.cid === c.value
});
if (ci) ci.selected = c.checked ? 1 : 0;
});
} else {
$('[name=scr-check]').each((i, c) => {
const ci = data[curType].find(x => {
return x.id == c.value
});
if (ci) ci.selected = c.checked ? 1 : 0;
});
}
}
$('#select-change-rela').modal('hide');
};
return { showChangeRela, updateChangeRela }
})();