|
@@ -53,7 +53,9 @@ $(document).ready(function () {
|
|
|
// 初始化工程量清单
|
|
|
const gclSpread = SpreadJsObj.createNewSpread($('#gcl-spread')[0]);
|
|
|
gclSpreadSetting.getColor = function (sheet, data, col, defaultColor) {
|
|
|
- return data && data.differ ? '#FFE699' : defaultColor;
|
|
|
+ return data
|
|
|
+ ? (data.overRange ? '#f8d7da' : data.differ ? '#FFE699' : defaultColor)
|
|
|
+ : defaultColor;
|
|
|
}
|
|
|
SpreadJsObj.initSheet(gclSpread.getActiveSheet(), gclSpreadSetting);
|
|
|
// 初始化所属项目节
|
|
@@ -95,13 +97,10 @@ $(document).ready(function () {
|
|
|
}
|
|
|
}
|
|
|
// 超计显示
|
|
|
- function checkOverRange() {
|
|
|
- const sheet = gclSpread.getActiveSheet();
|
|
|
+ function checkOverRange(data) {
|
|
|
const bQty = $('#customRadio1')[0].checked, bDealQty = $('#customRadio2')[0].checked;
|
|
|
const nPercent = Math.min(Math.max(ZhCalc.div(parseFloat($('#over-percent').val()), 100), 0.5), 1);
|
|
|
- SpreadJsObj.beginMassOperation(sheet);
|
|
|
- for (let iRow = 0, iLength = sheet.getRowCount(); iRow < iLength; iRow++) {
|
|
|
- const node = sheet.zh_data[iRow];
|
|
|
+ for (const node of data) {
|
|
|
if (node) {
|
|
|
const bOverRangeTz = node.end_gather_qty
|
|
|
? (node.quantity ? node.end_gather_qty > ZhCalc.mul(node.quantity, nPercent) : node.end_gather_qty)
|
|
@@ -109,17 +108,14 @@ $(document).ready(function () {
|
|
|
const bOverRangeDeal = node.end_gather_qty
|
|
|
? (node.deal_bills_qty ? node.end_gather_qty > ZhCalc.mul(node.deal_bills_qty, nPercent) : node.end_gather_qty)
|
|
|
: (node.deal_bills_tp ? node.end_gather_tp > ZhCalc.mul(node.deal_bills_tp, nPercent) : node.end_gather_tp);
|
|
|
- const bOverRange = bQty ? bOverRangeTz : (bDealQty ? bOverRangeDeal : bOverRangeTz || bOverRangeDeal);
|
|
|
- const color = bOverRange ? '#f8d7da' : '';
|
|
|
- sheet.getRange(iRow, -1, 1, -1).backColor(color);
|
|
|
+ node.overRange = bQty ? bOverRangeTz : (bDealQty ? bOverRangeDeal : bOverRangeTz || bOverRangeDeal);
|
|
|
}
|
|
|
}
|
|
|
- SpreadJsObj.endMassOperation(sheet);
|
|
|
}
|
|
|
// 加载清单数据
|
|
|
+ checkOverRange(gclGatherData);
|
|
|
SpreadJsObj.loadSheetData(gclSpread.getActiveSheet(), SpreadJsObj.DataType.Data, gclGatherData);
|
|
|
loadLeafXmjData(0);
|
|
|
- checkOverRange();
|
|
|
// 切换清单行,读取所属项目节数据
|
|
|
gclSpread.getActiveSheet().bind(spreadNS.Events.SelectionChanged, function (e, info) {
|
|
|
const iOldRow = info.oldSelections[0].row, iNewRow = info.newSelections[0].row;
|
|
@@ -129,14 +125,16 @@ $(document).ready(function () {
|
|
|
});
|
|
|
$('.custom-radio').click(() => {
|
|
|
setLocalCache('StageGatherOverType', $('input[name=customRadio]:checked').attr('id'));
|
|
|
- checkOverRange();
|
|
|
+ checkOverRange(gclGatherData);
|
|
|
+ SpreadJsObj.reLoadSheetData(gclSpread.getActiveSheet());
|
|
|
// 收起菜单
|
|
|
$('.dropdown-menu').click();
|
|
|
});
|
|
|
$('#over-percent').change(function () {
|
|
|
this.value = this.value >= 50 ? (this.value <= 100 ? ZhCalc.round(this.value, 2) : 100) : 50;
|
|
|
setLocalCache('StageGatherOverPercent', this.value);
|
|
|
- checkOverRange();
|
|
|
+ checkOverRange(gclGatherData);
|
|
|
+ SpreadJsObj.reLoadSheetData(gclSpread.getActiveSheet());
|
|
|
});
|
|
|
const chapterData = gclGatherModel.gatherChapterData(chapter, ['total_price', 'contract_tp', 'qc_tp', 'pre_contract_tp', 'pre_qc_tp']);
|
|
|
for (const c of chapterData) {
|