|
@@ -226,6 +226,8 @@ $(document).ready(() => {
|
|
|
const select = SpreadJsObj.getSelectObject(sheet);
|
|
|
// 还需判断是否已被调差清单调用
|
|
|
setObjEnable($('#del'), !readOnly && select && materialBase.isUsed(select) && rowCount === 1);
|
|
|
+ setObjEnable($('#up-move'), !readOnly && select && materialBillsData.indexOf(select) > 0);
|
|
|
+ setObjEnable($('#down-move'), !readOnly && select && materialBillsData.indexOf(select) < materialBillsData.length - 1);
|
|
|
},
|
|
|
add: function () {
|
|
|
const sheet = materialSpread.getActiveSheet();
|
|
@@ -239,7 +241,7 @@ $(document).ready(() => {
|
|
|
materialSpreadObj.refreshActn();
|
|
|
// 月信息价需要同时添加空白的list
|
|
|
if (months.length > 0) {
|
|
|
- const one_month ={ mb_id: result.id, code: '', name: null, unit: null, };
|
|
|
+ const one_month ={ mb_id: result.id, code: '', name: null, origin: null, unit: null, order: result.order };
|
|
|
for (const m of months) {
|
|
|
one_month[m] = null;
|
|
|
}
|
|
@@ -271,6 +273,72 @@ $(document).ready(() => {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ upMove: function () {
|
|
|
+ const sheet = materialSpread.getActiveSheet();
|
|
|
+ const cur = SpreadJsObj.getSelectObject(sheet);
|
|
|
+ const up = materialBillsData[materialBillsData.indexOf(cur) - 1];
|
|
|
+ const mbIndex = materialBillsData.indexOf(cur);
|
|
|
+ postData(window.location.pathname + '/save', {type: 'changeOrder', id1: cur.id, id2: up.id}, function () {
|
|
|
+ const order = cur.order;
|
|
|
+ cur.order = up.order;
|
|
|
+ up.order = order;
|
|
|
+ materialBillsData.sort(function (a, b) {
|
|
|
+ return a.order - b.order
|
|
|
+ });
|
|
|
+ SpreadJsObj.reLoadSheetData(sheet);
|
|
|
+ const sel = sheet.getSelections();
|
|
|
+ const index = materialBillsData.indexOf(cur);
|
|
|
+ sheet.setSelection(index, sel.length > 0 ? sel[0].col : 0, 1, 1);
|
|
|
+ materialSpreadObj.refreshActn();
|
|
|
+ if (months.length > 0) {
|
|
|
+ const monthCur = monthsList[mbIndex];
|
|
|
+ const monthUp = monthsList[mbIndex - 1];
|
|
|
+ const monthOrder = monthCur.order;
|
|
|
+ monthCur.order = monthUp.order;
|
|
|
+ monthUp.order = monthOrder;
|
|
|
+ monthsList.sort(function (a, b) {
|
|
|
+ return a.order - b.order
|
|
|
+ });
|
|
|
+ const materialMonthSheet = materialMonthSpread.getActiveSheet();
|
|
|
+ SpreadJsObj.reLoadSheetData(materialMonthSheet);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ downMove: function () {
|
|
|
+ const sheet = materialSpread.getActiveSheet();
|
|
|
+ const cur = SpreadJsObj.getSelectObject(sheet);
|
|
|
+ const down = materialBillsData[materialBillsData.indexOf(cur) + 1];
|
|
|
+ const mbIndex = materialBillsData.indexOf(cur);
|
|
|
+ postData(window.location.pathname + '/save', {
|
|
|
+ type: 'changeOrder',
|
|
|
+ id1: cur.id,
|
|
|
+ id2: down.id
|
|
|
+ }, function () {
|
|
|
+ const order = cur.order;
|
|
|
+ cur.order = down.order;
|
|
|
+ down.order = order;
|
|
|
+ materialBillsData.sort(function (a, b) {
|
|
|
+ return a.order - b.order
|
|
|
+ });
|
|
|
+ SpreadJsObj.reLoadSheetData(sheet);
|
|
|
+ const sel = sheet.getSelections();
|
|
|
+ const index = materialBillsData.indexOf(cur);
|
|
|
+ sheet.setSelection(index, sel.length > 0 ? sel[0].col : 0, 1, 1);
|
|
|
+ materialSpreadObj.refreshActn();
|
|
|
+ if (months.length > 0) {
|
|
|
+ const monthCur = monthsList[mbIndex];
|
|
|
+ const monthDown = monthsList[mbIndex + 1];
|
|
|
+ const monthOrder = monthCur.order;
|
|
|
+ monthCur.order = monthDown.order;
|
|
|
+ monthDown.order = monthOrder;
|
|
|
+ monthsList.sort(function (a, b) {
|
|
|
+ return a.order - b.order
|
|
|
+ });
|
|
|
+ const materialMonthSheet = materialMonthSpread.getActiveSheet();
|
|
|
+ SpreadJsObj.reLoadSheetData(materialMonthSheet);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
selectionChanged: function (e, info) {
|
|
|
const sel = info.sheet.getSelections()[0];
|
|
|
const col = info.sheet.zh_setting.cols[sel.col];
|
|
@@ -560,8 +628,9 @@ $(document).ready(() => {
|
|
|
sheet.resumePaint();
|
|
|
const static_cols = [
|
|
|
{title: '编号', colSpan: '1', rowSpan: '2', field: 'code', hAlign: 0, width: 60, formatter: '@', readOnly: true},
|
|
|
- {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 180, formatter: '@', readOnly: true},
|
|
|
+ {title: '名称', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 140, formatter: '@', readOnly: true},
|
|
|
{title: '单位', colSpan: '1', rowSpan: '2', field: 'unit', hAlign: 1, width: 60, formatter: '@', readOnly: true},
|
|
|
+ {title: '来源地', colSpan: '1', rowSpan: '2', field: 'origin', hAlign: 0, width: 80, formatter: '@', readOnly: 'readOnly.isEdit'},
|
|
|
{title: '平均单价', colSpan: '1', rowSpan: '2', field: 'average_msg_tp', hAlign: 2, width: 60, type: 'Number', readOnly: true, getValue:'getValue.average_msg_tp'},
|
|
|
];
|
|
|
// 月信息价方法集合
|
|
@@ -667,7 +736,7 @@ $(document).ready(() => {
|
|
|
},
|
|
|
},
|
|
|
};
|
|
|
- materialMonthSpread.getActiveSheet().frozenColumnCount(4);
|
|
|
+ materialMonthSpread.getActiveSheet().frozenColumnCount(5);
|
|
|
materialMonthSpread.getActiveSheet().options.frozenlineColor = '#f1f1f1';
|
|
|
SpreadJsObj.initSpreadSettingEvents(materialMonthSpreadSetting, materialMonthCol);
|
|
|
SpreadJsObj.initSheet(materialMonthSpread.getActiveSheet(), materialMonthSpreadSetting);
|
|
@@ -685,31 +754,42 @@ $(document).ready(() => {
|
|
|
SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
return;
|
|
|
}
|
|
|
- // 判断部分值是否输入的是数字判断和数据计算
|
|
|
- if (isNaN(validText)) {
|
|
|
- toastr.error('不能输入其它非数字类型字符');
|
|
|
- SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
- return;
|
|
|
- }
|
|
|
- const num = parseFloat(validText);
|
|
|
- if (validText !== null && (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num))) {
|
|
|
- toastr.error('请输入大于0并且小于3位小数的浮点数');
|
|
|
- SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
- return;
|
|
|
- }
|
|
|
- select[col.field] = validText;
|
|
|
+ if (col.field === 'origin') {
|
|
|
+ select[col.field] = validText;
|
|
|
+ postData(window.location.pathname + '/month/save', { type:'updateOrigin', updateData: { mb_id: select.mb_id, value: validText } }, function (result) {
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
+ materialBillsData = result.materialBillsData;
|
|
|
+ }, function () {
|
|
|
+ select[col.field] = orgValue;
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 判断部分值是否输入的是数字判断和数据计算
|
|
|
+ if (isNaN(validText)) {
|
|
|
+ toastr.error('不能输入其它非数字类型字符');
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const num = parseFloat(validText);
|
|
|
+ if (validText !== null && (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num))) {
|
|
|
+ toastr.error('请输入大于0并且小于3位小数的浮点数');
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ select[col.field] = validText;
|
|
|
|
|
|
- // 更新至服务器
|
|
|
- postData(window.location.pathname + '/month/save', { type:'update', updateData: { mb_id: select.mb_id, yearmonth: col.field, value: validText } }, function (result) {
|
|
|
- SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
- materialBillsData = result.materialBillsData;
|
|
|
- SpreadJsObj.loadSheetData(materialSpread.getActiveSheet(), SpreadJsObj.DataType.Data, materialBillsData);
|
|
|
- m_tp = result.m_tp;
|
|
|
- resetTpTable();
|
|
|
- }, function () {
|
|
|
- select[col.field] = orgValue;
|
|
|
- SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
- });
|
|
|
+ // 更新至服务器
|
|
|
+ postData(window.location.pathname + '/month/save', { type:'update', updateData: { mb_id: select.mb_id, yearmonth: col.field, value: validText } }, function (result) {
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
+ materialBillsData = result.materialBillsData;
|
|
|
+ SpreadJsObj.loadSheetData(materialSpread.getActiveSheet(), SpreadJsObj.DataType.Data, materialBillsData);
|
|
|
+ m_tp = result.m_tp;
|
|
|
+ resetTpTable();
|
|
|
+ }, function () {
|
|
|
+ select[col.field] = orgValue;
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.row);
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
deletePress: function (sheet) {
|
|
@@ -758,13 +838,14 @@ $(document).ready(() => {
|
|
|
SpreadJsObj.reLoadSheetData(materialMonthSpread.getActiveSheet());
|
|
|
return;
|
|
|
}
|
|
|
- if (sortData.length > 0 && range.col + range.colCount > 4 + months.length) {
|
|
|
+ if (sortData.length > 0 && range.col + range.colCount > 5 + months.length) {
|
|
|
toastMessageUniq(hint.cellError);
|
|
|
SpreadJsObj.reLoadSheetHeader(materialMonthSpread.getActiveSheet());
|
|
|
SpreadJsObj.reLoadSheetData(materialMonthSpread.getActiveSheet());
|
|
|
return;
|
|
|
}
|
|
|
const data = [];
|
|
|
+ let pasteOrigin = false;
|
|
|
for (let iRow = 0; iRow < range.rowCount; iRow++) {
|
|
|
let bPaste = true;
|
|
|
const curRow = range.row + iRow;
|
|
@@ -786,16 +867,20 @@ $(document).ready(() => {
|
|
|
}
|
|
|
continue;
|
|
|
}
|
|
|
- const num = parseFloat(validText);
|
|
|
- if (isNaN(validText)) {
|
|
|
- toastMessageUniq(getPasteHint(hint.numberExpr, hintRow));
|
|
|
- bPaste = false;
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (validText !== null && (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num))) {
|
|
|
- toastMessageUniq(getPasteHint(hint.numberCan, hintRow));
|
|
|
- bPaste = false;
|
|
|
- continue;
|
|
|
+ if (colSetting.field === 'origin') {
|
|
|
+ pasteOrigin = true;
|
|
|
+ } else {
|
|
|
+ const num = parseFloat(validText);
|
|
|
+ if (isNaN(validText)) {
|
|
|
+ toastMessageUniq(getPasteHint(hint.numberExpr, hintRow));
|
|
|
+ bPaste = false;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (validText !== null && (num < 0 || !/^\d+(\.\d{1,3})?$/.test(num))) {
|
|
|
+ toastMessageUniq(getPasteHint(hint.numberCan, hintRow));
|
|
|
+ bPaste = false;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
materialMonthData[colSetting.field] = validText;
|
|
|
sortData[curRow][colSetting.field] = validText;
|
|
@@ -810,17 +895,28 @@ $(document).ready(() => {
|
|
|
SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
|
|
|
return;
|
|
|
}
|
|
|
- // 更新至服务器
|
|
|
- postData(window.location.pathname + '/month/save', { type:'paste', updateData: data }, function (result) {
|
|
|
- SpreadJsObj.reLoadSheetData(materialMonthSpread.getActiveSheet());
|
|
|
- materialBillsData = result.materialBillsData;
|
|
|
- SpreadJsObj.loadSheetData(materialSpread.getActiveSheet(), SpreadJsObj.DataType.Data, materialBillsData);
|
|
|
- m_tp = result.m_tp;
|
|
|
- resetTpTable();
|
|
|
- }, function () {
|
|
|
- SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
|
|
|
- return;
|
|
|
- });
|
|
|
+ if (pasteOrigin) {
|
|
|
+ // 更新至服务器
|
|
|
+ postData(window.location.pathname + '/month/save', { type:'pasteOrigin', updateData: data }, function (result) {
|
|
|
+ SpreadJsObj.reLoadSheetData(materialMonthSpread.getActiveSheet());
|
|
|
+ materialBillsData = result.materialBillsData;
|
|
|
+ }, function () {
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
|
|
|
+ return;
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 更新至服务器
|
|
|
+ postData(window.location.pathname + '/month/save', { type:'paste', updateData: data }, function (result) {
|
|
|
+ SpreadJsObj.reLoadSheetData(materialMonthSpread.getActiveSheet());
|
|
|
+ materialBillsData = result.materialBillsData;
|
|
|
+ SpreadJsObj.loadSheetData(materialSpread.getActiveSheet(), SpreadJsObj.DataType.Data, materialBillsData);
|
|
|
+ m_tp = result.m_tp;
|
|
|
+ resetTpTable();
|
|
|
+ }, function () {
|
|
|
+ SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
|
|
|
+ return;
|
|
|
+ });
|
|
|
+ }
|
|
|
},
|
|
|
};
|
|
|
|
|
@@ -830,6 +926,8 @@ $(document).ready(() => {
|
|
|
if (!readOnly) {
|
|
|
$('#add').click(materialSpreadObj.add);
|
|
|
$('#del').click(materialSpreadObj.del);
|
|
|
+ $('#up-move').click(materialSpreadObj.upMove);
|
|
|
+ $('#down-move').click(materialSpreadObj.downMove);
|
|
|
materialSpread.bind(spreadNS.Events.EditEnded, materialSpreadObj.editEnded);
|
|
|
materialSpread.bind(spreadNS.Events.ButtonClicked, materialSpreadObj.buttonClicked);
|
|
|
materialMonthSpread.bind(spreadNS.Events.EditEnded, materialMonthSpreadObj.editEnded);
|