|
@@ -17,13 +17,13 @@ $(document).ready(function () {
|
|
|
{name: '总消耗量', field: '', visible: true},
|
|
|
{name: '基价单价', field: "unit_price.base_price", visible: true},
|
|
|
{name: '调整基价', field: 'adjust_price', visible: true},
|
|
|
- {name: '市场单价', field: "unit_price.market_price", visible: true},
|
|
|
- {name: '是否暂估', field: 'is_evaluate', visible: true, cellType: new GC.Spread.Sheets.CellTypes.CheckBox()},
|
|
|
+ {name: '市场单价', field: "unit_price.market_price", visible: true, validator: 'number'},
|
|
|
+ {name: '是否暂估', field: 'is_evaluate', visible: true, cellType: new GC.Spread.Sheets.CellTypes.CheckBox(), validator: 'boolean'},
|
|
|
{name: '供货方式', field: 'supply', visible: true},
|
|
|
{name: '甲供数量', field: 'supply_quantity', visible: true},
|
|
|
{name: '交货方式', field: 'delivery', visible: true},
|
|
|
{name: '送达地点', field: 'delivery_address', visible: true},
|
|
|
- {name: '不调价', field: 'is_adjust_price', visible: true, cellType: new GC.Spread.Sheets.CellTypes.CheckBox()},
|
|
|
+ {name: '不调价', field: 'is_adjust_price', visible: true, cellType: new GC.Spread.Sheets.CellTypes.CheckBox(), validator: 'boolean'},
|
|
|
{name: 'UID', field: 'unit_price.id', visible: false},
|
|
|
];
|
|
|
// 数据转换格式
|
|
@@ -47,22 +47,22 @@ $(document).ready(function () {
|
|
|
|
|
|
// 居中样式
|
|
|
let centerStyleSetting = {hAlign: 1};
|
|
|
- sheet.setStyle(-1, 11, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
- sheet.setStyle(-1, 16, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
+ sheet.setStyle(-1, 10, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
+ sheet.setStyle(-1, 15, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
sheet.setStyle(-1, 3, getStyle(centerStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
|
|
|
// 向右对齐样式
|
|
|
let rightStyleSetting = {hAlign: GC.Spread.Sheets.HorizontalAlign.right};
|
|
|
+ sheet.setStyle(-1, 6, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
sheet.setStyle(-1, 7, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
sheet.setStyle(-1, 8, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
sheet.setStyle(-1, 9, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
- sheet.setStyle(-1, 10, getStyle(rightStyleSetting), GC.Spread.Sheets.SheetArea.viewport);
|
|
|
|
|
|
|
|
|
// 设置可编辑列
|
|
|
+ sheet.getRange(-1, 9, -1, 1).locked(false);
|
|
|
sheet.getRange(-1, 10, -1, 1).locked(false);
|
|
|
- sheet.getRange(-1, 11, -1, 1).locked(false);
|
|
|
- sheet.getRange(-1, 16, -1, 1).locked(false);
|
|
|
+ sheet.getRange(-1, 15, -1, 1).locked(false);
|
|
|
|
|
|
// 设置json数据
|
|
|
let rowCounter = 0;
|
|
@@ -91,6 +91,12 @@ $(document).ready(function () {
|
|
|
sheet.getRange(rowCounter, columnCounter, 1, 1).locked(true);
|
|
|
}
|
|
|
|
|
|
+ // 如果类型为混凝土、砂浆、配合比、机械,则市场单价不能修改
|
|
|
+ if (columnInfo.field === 'unit_price.market_price' && canNotChangeTypeId.indexOf(data.unit_price.type + '') >= 0) {
|
|
|
+ // 锁定该单元格
|
|
|
+ sheet.getRange(rowCounter, columnCounter, 1, 1).locked(true);
|
|
|
+ }
|
|
|
+
|
|
|
sheet.setValue(rowCounter, columnCounter, cellData, GC.Spread.Sheets.SheetArea.viewport);
|
|
|
columnCounter++;
|
|
|
}
|
|
@@ -157,6 +163,14 @@ $(document).ready(function () {
|
|
|
if (isChanging) {
|
|
|
return false;
|
|
|
}
|
|
|
+ // 校验数据
|
|
|
+ let validator = header[column].validator !== undefined ? header[column].validator : null;
|
|
|
+ let value = info.newValue;
|
|
|
+ if (validator && !checkData(validator, value)) {
|
|
|
+ alert('数据格式错误,请重新输入!');
|
|
|
+ sheet.setValue(row, column, info.oldValue);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
// 获取id
|
|
|
let idColumn = getFieldColumn(header, idString);
|
|
@@ -165,10 +179,11 @@ $(document).ready(function () {
|
|
|
}
|
|
|
let id = sheet.getValue(row, idColumn);
|
|
|
|
|
|
+
|
|
|
$.ajax({
|
|
|
url: '/glj/update',
|
|
|
type: 'post',
|
|
|
- data: {id: id, field: field, value: info.newValue, model: model},
|
|
|
+ data: {id: id, field: field, value: value, model: model},
|
|
|
dataType: 'json',
|
|
|
error: function() {
|
|
|
alert('数据传输有误!');
|
|
@@ -216,6 +231,11 @@ $(document).ready(function () {
|
|
|
*/
|
|
|
});
|
|
|
|
|
|
+ // 绑定双击事件
|
|
|
+ sheet.bind(GC.Spread.Sheets.Events.CellDoubleClick, function (element, info) {
|
|
|
+ console.log(info);
|
|
|
+ });
|
|
|
+
|
|
|
});
|
|
|
|
|
|
/**
|
|
@@ -251,4 +271,27 @@ function getFieldColumn(data, field) {
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 校验数据
|
|
|
+ *
|
|
|
+ * @param {string} validator
|
|
|
+ * @param {string} value
|
|
|
+ * @return {boolean}
|
|
|
+ */
|
|
|
+function checkData(validator, value) {
|
|
|
+ let result = false;
|
|
|
+ switch (validator) {
|
|
|
+ case 'number':
|
|
|
+ let regular = /^\d+(\.\d+)?$/;
|
|
|
+ result = regular.test(value);
|
|
|
+ break;
|
|
|
+ case 'boolean':
|
|
|
+ let booleanValue = [true, false];
|
|
|
+ result = booleanValue.indexOf(value) >= 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
}
|