'use strict'; /** * * * @author Mai * @date * @version */ let curBudget = {}; const budgetNameChange = function (obj) { if (obj.value.length > 100) { obj.classList.add('is-invalid'); } else { obj.classList.remove('is-invalid'); } }; const addBudget = function () { const name = $('#add-budget-name').val(); if (!name || name.length > 100) return; const std_id = parseInt($('[name=std_id]:checked').val()); postData('/budget/add', { name, std_id }, function () { window.location.reload(); }); }; const showModal = function (obj) { const tr = obj.parentNode.parentNode; curBudget.id = tr.getAttribute('bid'); curBudget.name = tr.getAttribute('bname'); curBudget.rela_tender = tr.getAttribute('rela-tender'); $(obj.getAttribute('data-target')).modal('show'); }; const saveBudget = function () { const name = $('#modify-budget-name').val(); if (!name || name.length > 100) return; postData('/budget/save', { id: curBudget.id, name}, function () { window.location.reload(); }) }; const delBudget = function () { postData('/budget/del', { id: curBudget.id }, function () { window.location.reload(); }); }; const relaTender = function () { // todo 选择标段 const rela = []; const select = $('[name=select-rela-check]:checked'); for (const s of select) { rela.push(s.getAttribute('tid')); } postData('/budget/save', { id: curBudget.id, rela_tender: rela.join(',') }, function () { $(`[bid=${curBudget.id}]`)[0].setAttribute('rela-tender', rela.join(',')); $('#select-rela').modal('hide'); }); }; $(document).ready(() => { autoFlashHeight(); $('#modify-budget').on('show.bs.modal', () => { $('#modify-budget-name').val(curBudget.name); }); $('#del-budget').on('show.bs.modal', () => { $('#del-budget-name').text(curBudget.name); }); $('#sr-select-all').click(function () { $('[name=select-rela-check]').prop("checked", this.checked); }); $('#select-rela').on('show.bs.modal', () => { $('#sr-select-all')[0].checked = false; $('#valid-rela-tender').html(''); postData(`/budget/rela?id=${curBudget.id}`, {}, tenders => { const rela = curBudget.rela_tender ? curBudget.rela_tender.split(',') : []; const html = []; for (const t of tenders) { html.push(`${t.name}第${t.lastStageOrder}期${t.lastStageStatus}`); } $('#valid-rela-tender').html(html.join('')); for (const r of rela) { $(`[tid=${r}]`).attr("checked", "checked"); } }); }); let timer = null; let oldSearchVal = null; $('#member-search').bind('input propertychange', function(e) { oldSearchVal = e.target.value; timer && clearTimeout(timer); timer = setTimeout(() => { const newVal = $('#member-search').val(); let html = ''; if (newVal && newVal === oldSearchVal) { accountList .filter(item => item && (item.name.indexOf(newVal) !== -1 || (item.mobile && item.mobile.indexOf(newVal) !== -1))) .forEach(item => { html += `

${item.name}${item.mobile || ''}

${item.role || ''}
` }); $('.book-list').empty(); $('.book-list').append(html); } else { if (!$('.acc-btn').length) { accountGroup.forEach((group, idx) => { if (!group) return; html += `
${group.groupName}
`; group.groupList.forEach(item => { html += `

${item.name}${item.mobile || ''}

${item.role || ''}
` }); html += '
'; }); $('.book-list').empty(); $('.book-list').append(html); } } }, 400); }); $('.book-list').on('click', 'dt', function () { const idx = $(this).find('.acc-btn').attr('data-groupid') const type = $(this).find('.acc-btn').attr('data-type') if (type === 'hide') { $(this).parent().find(`div[data-toggleid="${idx}"]`).show(() => { $(this).children().find('i').removeClass('fa-plus-square').addClass('fa-minus-square-o') $(this).find('.acc-btn').attr('data-type', 'show') }) } else { $(this).parent().find(`div[data-toggleid="${idx}"]`).hide(() => { $(this).children().find('i').removeClass('fa-minus-square-o').addClass('fa-plus-square') $(this).find('.acc-btn').attr('data-type', 'hide') }) } return false }); let orgMembers, newMembers; const generateMemberHtml = function () { const html = []; for (const mem of newMembers) { html.push(''); html.push(`${mem.name}`); html.push(`${mem.role}`); // const view = mem.permission.indexOf(permissionConst.view.value) >= 0; // html.push(`
// //
`); const edit = mem.permission.indexOf(permissionConst.edit.value) >= 0; html.push(`
`); html.push(`移除`); html.push(''); } $('#member-list').html(html.join('')); }; $('[data-target="#member"]').click(function(){ const tr = this.parentNode.parentNode; curBudget.id = tr.getAttribute('bid'); curBudget.name = tr.getAttribute('bname'); curBudget.rela_tender = tr.getAttribute('rela-tender'); postData(window.location.pathname + '/member', curBudget, function (result) { orgMembers = result; newMembers = result; generateMemberHtml(); $('#member').modal('show'); }); }); $('dl').on('click', 'dd', function () { const auditorId = parseInt($(this).data('id')); const user = accountList.find(x => { return x.id === auditorId; }); const check = $(`tr[uid=${auditorId}]`, '#member-list'); if (check.length > 0) { toastr.error('请勿重复添加成员'); return; } newMembers.push({ uid: user.id, name: user.name, role: user.role, permission: [1], }); generateMemberHtml(); }); $('#member').on('click', 'a[name="del-member"]', function () { const id = parseInt(this.getAttribute('uid')); newMembers.splice(newMembers.findIndex(x => { return x.uid === id}), 1); generateMemberHtml(); }); $('#member-ok').click(() => { postData(window.location.pathname + '/member-save', {id: curBudget.id, member: newMembers}, function () { $('#member').modal('hide'); }) }); $('#member-list').on('click', 'input', function () { const id = parseInt(this.getAttribute('uid')); const mem = newMembers.find(x => { return x.uid === id}); if (this.checked) { mem.permission.push(parseInt(permissionConst[this.getAttribute('ptype')].value)); } else { mem.permission.splice(mem.permission.indexOf(permissionConst[this.getAttribute('ptype')].value), 1); } }); });