|
@@ -25,7 +25,10 @@ $(document).ready(function () {
|
|
|
{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: 'UID', field: 'unit_price.id', visible: false},
|
|
|
];
|
|
|
+ // 数据转换格式
|
|
|
+ let sourceData = JSON.parse(jsonData);
|
|
|
|
|
|
let setting = {
|
|
|
header: []
|
|
@@ -34,7 +37,7 @@ $(document).ready(function () {
|
|
|
setting.header.push({headerName: tmp.name, headerWidth: 120});
|
|
|
}
|
|
|
|
|
|
- let spread = sheetCommonObj.buildSheet(document.getElementById("test"), setting, 3);
|
|
|
+ let spread = sheetCommonObj.buildSheet(document.getElementById("test"), setting, sourceData.length);
|
|
|
spread.options.scrollbarShowMax = true;
|
|
|
spread.options.scrollbarMaxAlign = true;
|
|
|
spread.options.showHorizontalScrollbar = true;
|
|
@@ -63,7 +66,6 @@ $(document).ready(function () {
|
|
|
sheet.getRange(-1, 16, -1, 1).locked(false);
|
|
|
|
|
|
// 设置json数据
|
|
|
- let sourceData = JSON.parse(jsonData);
|
|
|
let rowCounter = 0;
|
|
|
for(let data of sourceData) {
|
|
|
let columnCounter = 0;
|
|
@@ -82,7 +84,7 @@ $(document).ready(function () {
|
|
|
}
|
|
|
|
|
|
// 如果不为材料“是否暂估列”根据条件显示
|
|
|
- if (columnInfo.field === 'is_evaluate' && materialIdList.indexOf(data.type + '') < 0) {
|
|
|
+ if (columnInfo.field === 'is_evaluate' && materialIdList.indexOf(data.unit_price.type + '') < 0) {
|
|
|
let string = new GC.Spread.Sheets.CellTypes.Text();
|
|
|
sheet.setCellType(rowCounter, columnCounter, string, GC.Spread.Sheets.SheetArea.viewport);
|
|
|
cellData = '';
|
|
@@ -133,9 +135,61 @@ $(document).ready(function () {
|
|
|
sheet.bind(GC.Spread.Sheets.Events.EditEnding, function (element, info) {
|
|
|
initiativeChange = true;
|
|
|
});
|
|
|
-
|
|
|
+ */
|
|
|
// 绑定事件
|
|
|
- sheet.bind(GC.Spread.Sheets.Events.CellChanged, function (element, info) {
|
|
|
+ let isChanging = false;
|
|
|
+ sheet.bind(GC.Spread.Sheets.Events.ValueChanged, function (element, info) {
|
|
|
+ // 获取修改的数据
|
|
|
+ let column = info.col;
|
|
|
+ let row = info.row;
|
|
|
+ let model = 'glj';
|
|
|
+ let idString = 'id';
|
|
|
+ let field = header[column] !== undefined && header[column].field !== undefined ?
|
|
|
+ header[column].field : '';
|
|
|
+ if (field === '') {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 切割字段
|
|
|
+ let fieldArray = field.split('.');
|
|
|
+ idString = fieldArray.length > 1 ? 'unit_price.id' : idString;
|
|
|
+
|
|
|
+ // 防止快速同时提交
|
|
|
+ if (isChanging) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取id
|
|
|
+ let idColumn = getFieldColumn(header, idString);
|
|
|
+ if (idColumn < 0) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ let id = sheet.getValue(row, idColumn);
|
|
|
+
|
|
|
+ $.ajax({
|
|
|
+ url: '/glj/update',
|
|
|
+ type: 'post',
|
|
|
+ data: {id: id, field: field, value: info.newValue, model: model},
|
|
|
+ dataType: 'json',
|
|
|
+ error: function() {
|
|
|
+ alert('数据传输有误!');
|
|
|
+ isChanging = false;
|
|
|
+ },
|
|
|
+ beforeSend: function() {
|
|
|
+ isChanging = true;
|
|
|
+ },
|
|
|
+ success: function(response) {
|
|
|
+ isChanging = false;
|
|
|
+ // 修改失败则恢复原值
|
|
|
+ if (response.err !== 0) {
|
|
|
+ sheet.setValue(row, column, info.oldValue);
|
|
|
+ alert('更改数据失败!');
|
|
|
+ } else {
|
|
|
+ // 成功
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ /*
|
|
|
// 如果修改了数据且为主动修改,先存库再广播给其他页面
|
|
|
if (info.newValue !== undefined && info.oldValue !== undefined && initiativeChange) {
|
|
|
let id = sheet.getCell(info.row, 0).value();
|
|
@@ -160,13 +214,42 @@ $(document).ready(function () {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+ */
|
|
|
});
|
|
|
-*/
|
|
|
+
|
|
|
});
|
|
|
|
|
|
+/**
|
|
|
+ * 生成样式
|
|
|
+ *
|
|
|
+ * @param {object} setting
|
|
|
+ * @return {object}
|
|
|
+ */
|
|
|
function getStyle(setting) {
|
|
|
let style = new GC.Spread.Sheets.Style();
|
|
|
style.locked = setting.readOnly === undefined ? true : setting.readOnly;
|
|
|
style.hAlign = setting.hAlign === undefined ? GC.Spread.Sheets.HorizontalAlign.center : setting.hAlign;
|
|
|
return style;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 查找指定字段的列index
|
|
|
+ *
|
|
|
+ * @param {object} data
|
|
|
+ * @param {String} field
|
|
|
+ * @return {Number}
|
|
|
+ */
|
|
|
+function getFieldColumn(data, field) {
|
|
|
+ let result = -1;
|
|
|
+ if (data.length <= 0) {
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ for (let tmp in data) {
|
|
|
+ if (data[tmp].field === field) {
|
|
|
+ result = tmp;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
}
|