|
@@ -95,58 +95,6 @@ const is_numeric = (value) => {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-function setMonthHtml() {
|
|
|
- let html = '';
|
|
|
- let qihtml = '';
|
|
|
- for (const m of months) {
|
|
|
- html += '<div class="custom-control custom-checkbox mb-2">\n' +
|
|
|
- ' <input type="checkbox" name="del_month" value="' + m + '" class="custom-control-input" id="month_' + m + '">\n' +
|
|
|
- ' <label class="custom-control-label" for="month_' + m + '">' + m + '月</label>\n' +
|
|
|
- ' </div>';
|
|
|
- qihtml += parseInt(m.split('-')[1]) + '月,';
|
|
|
- }
|
|
|
- if (months.length > 0) {
|
|
|
- qihtml = '<span class="mx-2 text-muted">/</span>本期月信息价:' + qihtml;
|
|
|
- qihtml = qihtml.substring(0, qihtml.length-1);
|
|
|
- }
|
|
|
- $('#show_month').html(html);
|
|
|
- $('#qi-month').html(qihtml);
|
|
|
-}
|
|
|
-
|
|
|
-function monthSpreadHeaderReset() {
|
|
|
- const newMonths = [];
|
|
|
- for (const m of months) {
|
|
|
- const year = m.split('-')[0];
|
|
|
- const month = parseInt(m.split('-')[1]);
|
|
|
- let one = _.find(newMonths, { 'year': year });
|
|
|
- let oneIndex = _.findIndex(newMonths, { 'year': year });
|
|
|
- if (one) {
|
|
|
- one.month.push(month);
|
|
|
- newMonths.splice(oneIndex, 1, one);
|
|
|
- } else {
|
|
|
- one = {
|
|
|
- year: year,
|
|
|
- month: [ month ],
|
|
|
- };
|
|
|
- newMonths.push(one);
|
|
|
- }
|
|
|
- }
|
|
|
- const pushMonth = [];
|
|
|
- for(const mo of newMonths) {
|
|
|
- for (let i in mo.month) {
|
|
|
- i = parseInt(i);
|
|
|
- const newCols = {
|
|
|
- title: (i === 0 ? mo.year: '') + '|' + mo.month[i] + '月',
|
|
|
- colSpan: (i === 0 && mo.month.length === 1 ? '0' : '') + '|1',
|
|
|
- rowSpan: i === 0 || i === mo.month.length-1 ? '1|1' : '|1',
|
|
|
- field: mo.year + '-' + (mo.month[i] < 10 ? '0' + mo.month[i] : mo.month[i]),
|
|
|
- hAlign: 2, width: 60, type: '@', readOnly: 'readOnly.isEdit'};
|
|
|
- pushMonth.push(newCols);
|
|
|
- }
|
|
|
- }
|
|
|
- return pushMonth;
|
|
|
-}
|
|
|
-
|
|
|
$(document).ready(() => {
|
|
|
autoFlashHeight();
|
|
|
const materialSpread = SpreadJsObj.createNewSpread($('#material-spread')[0]);
|
|
@@ -163,11 +111,11 @@ $(document).ready(() => {
|
|
|
{title: '基准时间', colSpan: '1', rowSpan: '2', field: 'basic_times', hAlign: 0, width: 80, formatter: '@', readOnly: 'readOnly.isEdit'},
|
|
|
{title: '本期信息价|单价', colSpan: '3|1', rowSpan: '1|1', field: 'msg_tp', hAlign: 2, width: 60, type: 'Number', readOnly: 'readOnly.msg_tp'},
|
|
|
{title: '|时间', colSpan: '|1', rowSpan: '|1', field: 'msg_times', hAlign: 0, width: 80, formatter: '@', readOnly: 'readOnly.remark'},
|
|
|
- {title: '|价差', colSpan: '|1', rowSpan: '1|1', field: 'msg_spread', hAlign: 2, width: 60, type: 'Number', readOnly: true, getValue: 'getValue.msg_spread'},
|
|
|
+ {title: '|价差', colSpan: '|1', rowSpan: '|1', field: 'msg_spread', hAlign: 2, width: 60, type: 'Number', readOnly: true, getValue: 'getValue.msg_spread'},
|
|
|
{title: '本期材料调差|上涨幅度(%)', colSpan: '4|1', rowSpan: '1|1', field: 'm_up_risk', hAlign: 2, width: 100, type: 'Number', readOnly: 'readOnly.isEdit'},
|
|
|
{title: '|下跌幅度(%)', colSpan: '|1', rowSpan: '|1', field: 'm_down_risk', hAlign: 2, width: 100, type: 'Number', readOnly: 'readOnly.isEdit'},
|
|
|
{title: '|有效价差', colSpan: '|1', rowSpan: '|1', field: 'm_spread', hAlign: 2, width: 80, type: 'Number', readOnly: true, getValue: 'getValue.m_spread'},
|
|
|
- {title: '|调差金额', colSpan: '|1', rowSpan: '1|1', field: 'm_tp', hAlign: 2, width: 80, type: 'Number', readOnly: true, getValue: 'getValue.m_tp'},
|
|
|
+ {title: '|调差金额', colSpan: '|1', rowSpan: '|1', field: 'm_tp', hAlign: 2, width: 80, type: 'Number', readOnly: true, getValue: 'getValue.m_tp'},
|
|
|
{title: '截止上期调差金额', colSpan: '1', rowSpan: '2', field: 'pre_tp', hAlign: 2, width: 120, type: 'Number', readOnly: true},
|
|
|
{title: '备注', colSpan: '1', rowSpan: '2', field: 'remark', hAlign: 0, width: 60, formatter: '@', readOnly: 'readOnly.remark'},
|
|
|
],
|
|
@@ -585,6 +533,71 @@ $(document).ready(() => {
|
|
|
{title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true},
|
|
|
{title: '平均单价', colSpan: '1', rowSpan: '2', field: 'average_msg_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true, getValue:'getValue.average_msg_tp'},
|
|
|
];
|
|
|
+ // 月信息价方法集合
|
|
|
+ const monthFunGather = {
|
|
|
+ _setMonthHtml: function() {
|
|
|
+ let html = '';
|
|
|
+ let qihtml = '';
|
|
|
+ for (const m of months) {
|
|
|
+ html += '<div class="custom-control custom-checkbox mb-2">\n' +
|
|
|
+ ' <input type="checkbox" name="del_month" value="' + m + '" class="custom-control-input" id="month_' + m + '">\n' +
|
|
|
+ ' <label class="custom-control-label" for="month_' + m + '">' + m + '月</label>\n' +
|
|
|
+ ' </div>';
|
|
|
+ qihtml += parseInt(m.split('-')[1]) + '月,';
|
|
|
+ }
|
|
|
+ if (months.length > 0) {
|
|
|
+ qihtml = '<span class="mx-2 text-muted">/</span>本期月信息价:' + qihtml;
|
|
|
+ qihtml = qihtml.substring(0, qihtml.length-1);
|
|
|
+ }
|
|
|
+ $('#show_month').html(html);
|
|
|
+ $('#qi-month').html(qihtml);
|
|
|
+ },
|
|
|
+ _monthHeaderSet: function() {
|
|
|
+ const newMonths = [];
|
|
|
+ for (const m of months) {
|
|
|
+ const year = m.split('-')[0];
|
|
|
+ const month = parseInt(m.split('-')[1]);
|
|
|
+ let one = _.find(newMonths, { 'year': year });
|
|
|
+ let oneIndex = _.findIndex(newMonths, { 'year': year });
|
|
|
+ if (one) {
|
|
|
+ one.month.push(month);
|
|
|
+ newMonths.splice(oneIndex, 1, one);
|
|
|
+ } else {
|
|
|
+ one = {
|
|
|
+ year: year,
|
|
|
+ month: [ month ],
|
|
|
+ };
|
|
|
+ newMonths.push(one);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const pushMonth = [];
|
|
|
+ for(const mo of newMonths) {
|
|
|
+ for (let i in mo.month) {
|
|
|
+ i = parseInt(i);
|
|
|
+ const newCols = {
|
|
|
+ title: (i === 0 ? mo.year: '') + '|' + mo.month[i] + '月',
|
|
|
+ colSpan: (i === 0 ? (mo.month.length === 1 ? '0' : mo.month.length) : '') + '|1',
|
|
|
+ rowSpan: i === 0 ? '1|1' : '|1',
|
|
|
+ field: mo.year + '-' + (mo.month[i] < 10 ? '0' + mo.month[i] : mo.month[i]),
|
|
|
+ hAlign: 2, width: 60, type: '@', readOnly: 'readOnly.isEdit'};
|
|
|
+ pushMonth.push(newCols);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return pushMonth;
|
|
|
+ },
|
|
|
+ monthSheetReset: function () {
|
|
|
+ const monthCols = monthFunGather._monthHeaderSet();
|
|
|
+ const newMonthSpreadHeaderCols = static_cols.concat(monthCols);
|
|
|
+ materialMonthSpreadSetting.cols = newMonthSpreadHeaderCols;
|
|
|
+ // 表头变化需要重新绘制,不然报错;
|
|
|
+ materialMonthSpread.getActiveSheet().reset();
|
|
|
+ SpreadJsObj.initSpreadSettingEvents(materialMonthSpreadSetting, materialMonthCol);
|
|
|
+ SpreadJsObj.initSheet(materialMonthSpread.getActiveSheet(), materialMonthSpreadSetting);
|
|
|
+ SpreadJsObj.loadSheetData(materialMonthSpread.getActiveSheet(), SpreadJsObj.DataType.Data, monthsList);
|
|
|
+ monthFunGather._setMonthHtml();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
const materialMonthSpread = SpreadJsObj.createNewSpread($('#material-month-spread')[0]);
|
|
|
const materialMonthSpreadSetting = {
|
|
|
cols: static_cols,
|
|
@@ -597,11 +610,10 @@ $(document).ready(() => {
|
|
|
readOnly: readOnly,
|
|
|
};
|
|
|
if (months.length > 0) {
|
|
|
- const monthCols = monthSpreadHeaderReset();
|
|
|
+ const monthCols = monthFunGather._monthHeaderSet();
|
|
|
const monthSpreadHeaderCols = static_cols.concat(monthCols);
|
|
|
materialMonthSpreadSetting.cols = monthSpreadHeaderCols;
|
|
|
}
|
|
|
- console.log(materialMonthSpreadSetting);
|
|
|
|
|
|
const materialMonthCol = {
|
|
|
getValue: {
|
|
@@ -977,17 +989,8 @@ $(document).ready(() => {
|
|
|
postData(window.location.pathname + '/month/save', { type: 'add', updateData: { yearmonth: yearmonth } }, function (data) {
|
|
|
months.push(yearmonth);
|
|
|
months.sort();
|
|
|
- const monthCols = monthSpreadHeaderReset();
|
|
|
- const newMonthSpreadHeaderCols = static_cols.concat(monthCols);
|
|
|
- materialMonthSpreadSetting.cols = newMonthSpreadHeaderCols;
|
|
|
monthsList = data.monthsList;
|
|
|
- SpreadJsObj.initSpreadSettingEvents(materialMonthSpreadSetting, materialMonthCol);
|
|
|
- console.log(materialMonthSpreadSetting);
|
|
|
- // SpreadJsObj.initSheet(materialMonthSpread.getActiveSheet(), materialMonthSpreadSetting);
|
|
|
- SpreadJsObj.reinitSheetHeader(materialMonthSpread.getActiveSheet());
|
|
|
- SpreadJsObj.loadSheetData(materialMonthSpread.getActiveSheet(), SpreadJsObj.DataType.Data, monthsList);
|
|
|
- setMonthHtml();
|
|
|
-
|
|
|
+ monthFunGather.monthSheetReset();
|
|
|
// 工料表单价显示也要更新
|
|
|
materialBillsData = data.materialBillsData;
|
|
|
SpreadJsObj.loadSheetData(materialSpread.getActiveSheet(), SpreadJsObj.DataType.Data, materialBillsData);
|
|
@@ -1015,15 +1018,8 @@ $(document).ready(() => {
|
|
|
return n === dm;
|
|
|
});
|
|
|
}
|
|
|
- const monthCols = monthSpreadHeaderReset();
|
|
|
- const newMonthSpreadHeaderCols = static_cols.concat(monthCols);
|
|
|
- materialMonthSpreadSetting.cols = newMonthSpreadHeaderCols;
|
|
|
monthsList = data.monthsList;
|
|
|
- SpreadJsObj.initSpreadSettingEvents(materialMonthSpreadSetting, materialMonthCol);
|
|
|
- console.log(materialMonthSpreadSetting);
|
|
|
- SpreadJsObj.reinitSheetHeader(materialMonthSpread.getActiveSheet());
|
|
|
- SpreadJsObj.loadSheetData(materialMonthSpread.getActiveSheet(), SpreadJsObj.DataType.Data, monthsList);
|
|
|
- setMonthHtml();
|
|
|
+ monthFunGather.monthSheetReset();
|
|
|
|
|
|
// 工料表单价显示也要更新
|
|
|
materialBillsData = data.materialBillsData;
|