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