'use strict'; /** * 期计量 - 期列表页面 js * * @author Mai * @date 2018/12/7 * @version */ $(function () { const getGroupAuditHtml = function (group) { return group.map(u => { return `${u.name}`; }).join(''); }; const getAuditTypeHtml = function (type) { if (type === auditType.key.common) return ''; return `
${auditType.info[type].short}
`; }; const getAuditTypeText = function (type) { if (type === auditType.key.common) return ''; return `${auditType.info[type].long}`; }; // 获取审批流程 $('a[data-target="#sp-list" ]').on('click', function () { const data = { order: $(this).attr('m-order'), }; postData('/tender/' + tenderId + '/measure/material/auditors', data, function (result) { const { auditHistory, auditors2, user } = result let auditorsHTML = []; auditors2.forEach((group, idx) => { if (idx === 0) { auditorsHTML.push(`
  • ${getGroupAuditHtml(group)} 原报
  • `); } else if(idx === auditors2.length -1 && idx !== 0) { auditorsHTML.push(`
  • ${getGroupAuditHtml(group)}
    ${getAuditTypeHtml(group[0].audit_type)} 终审
  • `); } else { auditorsHTML.push(`
  • ${getGroupAuditHtml(group)}
    ${getAuditTypeHtml(group[0].audit_type)} ${transFormToChinese(idx)}审
  • `); } }); $('#auditor-list').empty() $('#auditor-list').append(auditorsHTML.join('')); let historyHTML = []; auditHistory.forEach((his, idx) => { if (idx === auditHistory.length - 1 && auditHistory.length !== 1) { historyHTML.push(`
    展开历史审批流程
    `); } historyHTML.push(`
    `); historyHTML.push(`
    ${idx+1}#
    `); historyHTML.push(`
    '); historyHTML.push(''); }); $('#audit-list').empty(); $('#audit-list').append(historyHTML.join('')); }); }); // 展开/收起历史审核记录 $('#audit-list').on('click', 'a', function() { const type = $(this).data('target') const auditCard = $(this).parent().parent() console.log('auditCard', auditCard) if (type === 'show') { $(this).data('target', 'hide') auditCard.find('.fold-card').slideDown('swing', () => { auditCard.find('#end-target').text($(this).data('idx') + '#') auditCard.find('#fold-btn').text('收起历史审核记录') }) } else { $(this).data('target', 'show') auditCard.find('.fold-card').slideUp('swing', () => { auditCard.find('#end-target').text('1#') auditCard.find('#fold-btn').text('展开历史审核记录') }) } }); function formatDate(date) { if (!date) return ''; date = new Date(date) const year = date.getFullYear(); let mon = date.getMonth() + 1; let day = date.getDate(); let hour = date.getHours(); let minute = date.getMinutes(); let scond = date.getSeconds(); if (mon < 10) { mon = '0' + mon.toString(); } if (day < 10) { day = '0' + day.toString(); } if (hour < 10) { hour = '0' + hour.toString(); } if (minute < 10) { minute = '0' + minute.toString(); } if (scond < 10) { scond = '0' + scond.toString(); } return `${year}${mon}-${day}${hour}:${minute}:${scond}`; }; // 计量期选中 $('.select-stage-order').on('click', function () { const stageList = $('.select-stage-order:checked'); if (stageList.length === 0) { $('#show_order').hide(); $('#s_order').val(''); } else { const order_array = []; for (let s = 0; s < stageList.length; s++) { order_array.push(stageList.eq(s).data('order')); // console.log(stageList.eq(s)); } $('#show_order').html('第' + order_array.join(',') + '期'); $('#show_order').show(); $('#s_order').val(order_array.join(',')); if (stageList.length > 1) { if($('#material_unitPrice').is(':hidden')){ $('#unitPrice_dl').prop('checked', true); } $('#material_unitPrice').show(); } else { $('#material_unitPrice').hide(); $('#unitPrice_gy').prop('checked', true); } } }); let interval; let stop = false; // 提交表单判断 $('#addMaterial').click(function () { $(this).attr('disabled', true); if ($('#s_order').val() == '') { toastr.error('请选择计量期'); $(this).removeAttr('disabled'); return false; } $(this).text('正在生成新一期数据中,请勿刷新本页!...'); const _self = $(this); const stage_id = []; $('#add-qi input[name="stage_id[]"]:checked').each(function () { stage_id.push(parseInt($(this).val())); }); const is_stage_self = parseInt($('input[name="is_stage_self"]:checked').val()); if (is_stage_self && stage_id.length > 12) { toastr.error('独立调差下最多选择12个计量期'); $(this).removeAttr('disabled').text('确认添加'); return false; } const newMaterialData = { s_order: $('#s_order').val(), period: $('#add-qi input[name="period"]').val(), stage_id, is_stage_self, qty_source: parseInt($('#add-qi input[name="qty_source"]:checked').val()), }; if (lastMaterialListNum === 0) { console.log(newMaterialData); postData(preUrl + '/measure/material/add', newMaterialData, function (result) { window.location.href = preUrl + '/measure/material/' + result.order; }, function () { _self.attr('disabled', false).text('确认添加'); }); return; } $('#add-qi').modal('hide'); $('#okedit').modal('show'); interval = setInterval(progress, 50); postData(preUrl + '/measure/material/add', newMaterialData, function (result) { window.location.href = preUrl + '/measure/material/' + result.order; }, function () { stop = true; clearInterval(interval); console.log(_self.parents('div[id="add-qi"]')); $('#add-qi').modal('show'); $('#okedit').modal('hide'); _self.parents('div[id="add-qi"]').modal('show'); _self.attr('disabled', false).text('确认添加'); }); // postData(preUrl + '/measure/material/gcl/load', { stage_id, is_stage_self }, function (result) { // // console.log(result); // const ledger = result.ledger; // const pos = result.pos; // const gclList = result.gclList; // const selfList = result.selfList; // // 整理material,针对上期是独立单价并多个不同值的单独设置值进行部分值去除 // const materialListForSelf = _.uniqWith(_.orderBy(result.materialListForSelf, ['ms_id'], ['desc']), function(item1, item2) { // return item1.xmj_id === item2.xmj_id && item1.gcl_id === item2.gcl_id && item1.mx_id === item2.mx_id && item1.mb_id === item2.mb_id; // }); // console.log(materialListForSelf, result.materialListForSelf); // const insertGclList = []; // const insertList = []; // const insertSelfList = [];// 需要单独添加的明细清单工料含量列表 // const removeGclList = []; // const hadQtySelfList = []; // if (is_stage_self) { // for (const sid of stage_id) { // const curLedger = _.find(result.curLedgerData, {sid: sid}); // const curPos = _.find(result.curPosData, {sid: sid}); // gclGatherModel.loadLedgerData(_.cloneDeep(ledger), curLedger.ledgerData); // gclGatherModel.loadPosData(_.cloneDeep(pos), curPos.posData); // const gclGatherData = gclGatherModel.gatherGclData(); // // console.log(gclGatherData); // const insertGcl = []; // for (const g of gclList) { // const gcl = _.find(gclGatherData, function (item) { // return item.leafXmjs && item.leafXmjs.length > 0 && _.findIndex(item.leafXmjs, {gcl_id: g.gcl_id}) !== -1; // }); // if (gcl) { // const ig = _.find(insertGcl, {gcl}); // if (ig) { // if (_.findIndex(ig.bills, {mb_id: g.mb_id}) === -1) { // ig.bills.push(g); // } // } else { // insertGcl.push({ // bills: [g], // gcl, // leafXmjs: _.filter(gcl.leafXmjs, function (item) { // return item.gather_qty !== undefined && item.gather_qty !== null // }), // }) // } // } else { // removeGclList.push(g); // } // } // for (const one of insertGcl) { // if (one.leafXmjs && one.leafXmjs.length > 0) { // for (const xmj of one.leafXmjs) { // const is_self = _.findIndex(selfList, { gcl_id: xmj.gcl_id, xmj_id: xmj.id, mx_id: xmj.mx_id ? xmj.mx_id : '' }) !== -1;// 区分单独计量的明细工料含量 // if (is_self) { // const billsList = _.filter(materialListForSelf, { gcl_id: xmj.gcl_id, xmj_id: xmj.id, mx_id: xmj.mx_id ? xmj.mx_id : '' }); // for (const bill of billsList) { // if (!_.find(hadQtySelfList, bill)) { // hadQtySelfList.push(bill); // } // insertSelfList.push({ // gcl_id: xmj.gcl_id, // mx_id: xmj.mx_id ? xmj.mx_id : '', // xmj_id: xmj.id ? xmj.id : null, // contract_qty: xmj.contract_qty, // qc_qty: xmj.qc_qty, // qc_minus_qty: xmj.qc_minus_qty, // gather_qty: xmj.gather_qty, // quantity: bill.quantity, // expr: bill.expr, // mb_id: bill.mb_id, // order: bill.order, // sid, // }); // } // } else { // const newgcl = _.find(gclList, { gcl_id: xmj.gcl_id }); // for (const bill of one.bills) { // insertList.push({ // gcl_id: xmj.gcl_id, // mx_id: xmj.mx_id ? xmj.mx_id : '', // xmj_id: xmj.id ? xmj.id : null, // contract_qty: xmj.contract_qty, // qc_qty: xmj.qc_qty, // qc_minus_qty: xmj.qc_minus_qty, // gather_qty: xmj.gather_qty, // quantity: bill.quantity, // expr: bill.expr, // mb_id: bill.mb_id, // order: bill.order, // sid, // }); // if (!newgcl) { // if (_.findIndex(insertGclList, { gcl_id: xmj.gcl_id }) === -1) { // insertGclList.push({ // gcl_id: xmj.gcl_id, // quantity: bill.quantity, // expr: bill.expr, // old_quantity: bill.quantity, // old_expr: bill.expr, // mb_id: bill.mb_id, // order: bill.order, // }); // } // } // } // } // } // } // } // } // } else { // const curLedgerData = result.curLedgerData; // const curPosData = result.curPosData; // gclGatherModel.loadLedgerData(_.cloneDeep(ledger), curLedgerData); // gclGatherModel.loadPosData(_.cloneDeep(pos), curPosData); // const gclGatherData = gclGatherModel.gatherGclData(); // const insertGcl = []; // for (const g of gclList) { // const gcl = _.find(gclGatherData, function (item) { // return item.leafXmjs && item.leafXmjs.length > 0 && _.findIndex(item.leafXmjs, {gcl_id: g.gcl_id}) !== -1; // }); // if (gcl) { // const ig = _.find(insertGcl, {gcl}); // if (ig) { // if (_.findIndex(ig.bills, {mb_id: g.mb_id}) === -1) { // ig.bills.push(g); // } // } else { // insertGcl.push({ // bills: [g], // gcl, // leafXmjs: _.filter(gcl.leafXmjs, function (item) { // return item.gather_qty !== undefined && item.gather_qty !== null || (item.qc_minus_qty !== undefined && item.qc_minus_qty !== null) // }), // }) // } // } else { // removeGclList.push(g); // } // } // for (const one of insertGcl) { // if (one.leafXmjs && one.leafXmjs.length > 0) { // for (const xmj of one.leafXmjs) { // const is_self = _.findIndex(selfList, { gcl_id: xmj.gcl_id, xmj_id: xmj.id, mx_id: xmj.mx_id ? xmj.mx_id : null }) !== -1;// 区分单独计量的明细工料含量 // if (is_self) { // const billsList = _.filter(materialListForSelf, { gcl_id: xmj.gcl_id, xmj_id: xmj.id, mx_id: xmj.mx_id ? xmj.mx_id : null }); // for (const bill of billsList) { // hadQtySelfList.push(bill); // insertSelfList.push({ // gcl_id: xmj.gcl_id, // mx_id: xmj.mx_id ? xmj.mx_id : '', // xmj_id: xmj.id ? xmj.id : null, // contract_qty: xmj.contract_qty, // qc_qty: xmj.qc_qty, // qc_minus_qty: xmj.qc_minus_qty, // gather_qty: xmj.gather_qty, // quantity: bill.quantity, // expr: bill.expr, // mb_id: bill.mb_id, // order: bill.order, // }); // } // } else { // const newgcl = _.find(gclList, { gcl_id: xmj.gcl_id }); // for (const bill of one.bills) { // insertList.push({ // gcl_id: xmj.gcl_id, // mx_id: xmj.mx_id ? xmj.mx_id : '', // xmj_id: xmj.id ? xmj.id : null, // contract_qty: xmj.contract_qty, // qc_qty: xmj.qc_qty, // qc_minus_qty: xmj.qc_minus_qty, // gather_qty: xmj.gather_qty, // quantity: bill.quantity, // expr: bill.expr, // mb_id: bill.mb_id, // order: bill.order, // }); // if (!newgcl) { // insertGclList.push({ // gcl_id: xmj.gcl_id, // quantity: bill.quantity, // expr: bill.expr, // old_quantity: bill.quantity, // old_expr: bill.expr, // mb_id: bill.mb_id, // order: bill.order, // }); // } // } // } // } // } // } // } // // 通过比较materialListForSelf和hadQtySelfList不重合部分,得出本期为null的gather_qty列表,插入到insertSelfList中 // const pushSelfList = _.xorWith(materialListForSelf, hadQtySelfList, _.isEqual); // if (pushSelfList.length > 0) { // for (const ps of pushSelfList) { // insertSelfList.push({ // gcl_id: ps.gcl_id, // mx_id: ps.mx_id, // xmj_id: ps.xmj_id, // contract_qty: null, // qc_qty: null, // qc_minus_qty: null, // gather_qty: null, // quantity: ps.quantity, // expr: ps.expr, // mb_id: ps.mb_id, // order: ps.order, // }); // } // } // // 可能需要新增list_gcl表 // newMaterialData.material_list = insertList; // newMaterialData.material_self_list = insertSelfList; // newMaterialData.insertGclList = insertGclList; // newMaterialData.removeGclList = removeGclList; // console.log(newMaterialData); // console.log(insertSelfList); // postData(preUrl + '/measure/material/add', newMaterialData, function (result) { // window.location.href = preUrl + '/measure/material/' + result.order; // }, function () { // stop = true; // clearInterval(interval); // console.log(_self.parents('div[id="add-qi"]')); // $('#add-qi').modal('show'); // $('#okedit').modal('hide'); // _self.parents('div[id="add-qi"]').modal('show'); // _self.attr('disabled', false).text('确认添加'); // }); // return; // }); // $(this).parents('form').submit(); }); let value = 0; function progress(){ if (stop) { setTimeout(function () { $('#add-qi').modal('show'); $('#okedit').modal('hide'); value = 0; clearInterval(interval); }, 500); } if (value < 100) { value = parseInt(value) + 1; $("#material-progress").css("width", value + "%").text(value + "%"); } else if (value === 100) { value = parseInt(value) + 1; value = 30; } }; let editPeriod = null; $('.edit-material').on('click', function () { const order = parseInt($(this).data('order')); const mid = parseInt($(this).data('mid')); $('#edit-period').val(''); $('#edit-name').val('第 ' + order + ' 期'); $('#edit-mid').val(mid); const m_period = $(this).data('period'); const period = []; for (const p of m_period.split('~')) { if (p && p !== '') { period.push(new Date(p)); } } $('#edit-period').val(m_period); editPeriod = !editPeriod ? $('#edit-period').datepicker().data('datepicker') : editPeriod; editPeriod.clear(); if (period.length > 0) { editPeriod.selectDate(period); } }); $('#row-view').on('show.bs.modal', function () { let html = ''; for (const col of materialColShow) { html += `${col.name}`; } $('#material_col_table').html(html); }); $('#set_material_list_show_btn').on('click', function () { // 至少展示一个 const material_col_data = []; $('#material_col_table input').each(function () { material_col_data.push({ name: $(this).parents('tr').children('td').eq(0).text(), value: $(this).val(), checked: $(this).is(':checked'), }); }); postData('/tender/' + tenderId + '/measure/material/save/data', { type: 'material_col_set', material_col_data }, function (result) { window.location.reload(); }); }); }); function checkForm () { if ($('#edit-period').val() == '') { toastr.error('请选择调差周期'); return false; } // const date = $('#edit-date').val(); // const period = $('#edit-period').val(); // const startDate = period.split('~')[0]; // const endDate = period.split('~')[1]; // if (startDate.indexOf(date) === -1 && endDate.indexOf(date) === -1) { // toastr.error('所选日期与当前月份不匹配,请重新选择'); // $('#edit-period').parents('.form-group').find('.text-danger').remove(); // $('#edit-period').parents('.form-group').append('所选日期与当前月份不匹配,请重新选择'); // return false; // } };