| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | 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(`<tr class="text-center"><th>${header[0]}</th><th style="vertical-align: middle">${header[1]}</th><th style="vertical-align: middle">${header[2]}</th></tr>`);        const html = [], arr = data[curType];        for (const a of arr) {            const checked = a.selected ? 'checked' : '';            html.push('<tr>', `<td class="text-center"><input type="checkbox" name="scr-check" ${checked} value="${a.cid || a.id}"></td>`, `<td>${a.code}</td>`, `<td>${a.name}</td>`, '</tr>');        }        $('#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 }})();
 |