|
@@ -9,7 +9,7 @@ let TEMPLATE_BILLS_SETTING = {
|
|
|
"treeCol": 0,
|
|
|
"cols":[{
|
|
|
"width":200,
|
|
|
- "readOnly":null,
|
|
|
+ "readOnly":false,
|
|
|
"head":{
|
|
|
"titleNames":["编号"],
|
|
|
"spanCols":[1],
|
|
@@ -26,7 +26,7 @@ let TEMPLATE_BILLS_SETTING = {
|
|
|
}
|
|
|
}, {
|
|
|
"width":300,
|
|
|
- "readOnly":null,
|
|
|
+ "readOnly":false,
|
|
|
"head":{
|
|
|
"titleNames":["名称"],
|
|
|
"spanCols":[1],
|
|
@@ -43,7 +43,7 @@ let TEMPLATE_BILLS_SETTING = {
|
|
|
}
|
|
|
}, {
|
|
|
"width":50,
|
|
|
- "readOnly":null,
|
|
|
+ "readOnly":false,
|
|
|
"head":{
|
|
|
"titleNames":["单位"],
|
|
|
"spanCols":[1],
|
|
@@ -59,6 +59,23 @@ let TEMPLATE_BILLS_SETTING = {
|
|
|
"font":"Arail"
|
|
|
}
|
|
|
}, {
|
|
|
+ "width":200,
|
|
|
+ "readOnly":false,
|
|
|
+ "head":{
|
|
|
+ "titleNames":["清单固定类别"],
|
|
|
+ "spanCols":[1],
|
|
|
+ "spanRows":[1],
|
|
|
+ "vAlign":[1],
|
|
|
+ "hAlign":[1],
|
|
|
+ "font":["Arial"]
|
|
|
+ },
|
|
|
+ "data":{
|
|
|
+ "field":"flagsIndex.fixed.flag",
|
|
|
+ "vAlign":0,
|
|
|
+ "hAlign":3,
|
|
|
+ "font":"Arail",
|
|
|
+ }
|
|
|
+ }, {
|
|
|
"width":50,
|
|
|
"readOnly":true,
|
|
|
"head":{
|
|
@@ -135,6 +152,52 @@ $(document).ready(function () {
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
+ let getFixedFlagCellType = function () {
|
|
|
+ let billsFixedFlagData = JSON.parse(billsFixedFlagList);
|
|
|
+ let comboItems = [];
|
|
|
+ for (let data of billsFixedFlagData) {
|
|
|
+ comboItems.push({text: data.name, value: data.value});
|
|
|
+ }
|
|
|
+ let combo = new GC.Spread.Sheets.CellTypes.ComboBox();
|
|
|
+ combo.editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.value)
|
|
|
+ .items(comboItems);
|
|
|
+ return combo;
|
|
|
+ };
|
|
|
+ let setFee = function (data, fullField, value) {
|
|
|
+ let fields = fullField.split('.'), valueField = data;
|
|
|
+ for (let i in fields) {
|
|
|
+ if (valueField[fields[i]]) {
|
|
|
+ if (i == fields.length - 1) {
|
|
|
+ valueField[fields[i]] = value;
|
|
|
+ } else {
|
|
|
+ valueField = valueField[fields[i]];
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (i == fields.length - 1) {
|
|
|
+ valueField[fields[i]] = value;
|
|
|
+ } else {
|
|
|
+ valueField[fields[i]] = {};
|
|
|
+ };
|
|
|
+ valueField = valueField[fields[i]];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ let templateData = JSON.parse(billsTemplateData);
|
|
|
+ for (let data of templateData) {
|
|
|
+ if (data.flags) {
|
|
|
+ data.flagsIndex = {};
|
|
|
+ for (let flag of data.flags) {
|
|
|
+ data.flagsIndex[flag.fieldName] = flag;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (col of TEMPLATE_BILLS_SETTING.cols) {
|
|
|
+ if (col.data.field === 'flagsIndex.fixed.flag' && TEMPLATE_BILLS_SETTING.cols.indexOf(col) !== TEMPLATE_BILLS_SETTING.treeCol) {
|
|
|
+ col.data.cellType = getFixedFlagCellType();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
let tree = idTree.createNew({id: 'ID', pid: 'ParentID', nid: 'NextSiblingID', rootId: -1, autoUpdate: true});
|
|
|
let billsSpread = TREE_SHEET_HELPER.createNewSpread($('#billsSpread')[0]);
|
|
@@ -146,10 +209,16 @@ $(document).ready(function () {
|
|
|
var node = controller.tree.items[info.row];
|
|
|
var fieldName = controller.setting.cols[info.col].data.field;
|
|
|
var data = {type: 'update', data: {ID: node.getID()}};
|
|
|
- data.data[fieldName] = info.editingText;
|
|
|
+ if (/flagsIndex/.test(fieldName)) {
|
|
|
+ data.data.flags = [];
|
|
|
+ let flagField = fieldName.split('.');
|
|
|
+ data.data.flags.push({fieldName: flagField[1], flag: info.editingText});
|
|
|
+ } else {
|
|
|
+ setFee(data.data, fieldName, info.editingText);
|
|
|
+ }
|
|
|
var updateData = [data];
|
|
|
CommonAjax.post(updateUrl, updateData, function (data) {
|
|
|
- node.data[fieldName] = info.editingText;
|
|
|
+ setFee(node.data, fieldName, info.editingText);
|
|
|
controller.refreshTreeNode([node], false);
|
|
|
}, function () {
|
|
|
controller.refreshTreeNode([node], false);
|
|
@@ -166,7 +235,14 @@ $(document).ready(function () {
|
|
|
for (iCol = 0; iCol < info.cellRange.colCount; iCol++) {
|
|
|
curCol = info.cellRange.col + iCol;
|
|
|
fieldName = controller.setting.cols[curCol].data.field;
|
|
|
- data.data[fieldName] = info.sheet.getText(curRow, curCol);
|
|
|
+
|
|
|
+ if (/flagsIndex/.test(fieldName)) {
|
|
|
+ data.data.flags = [];
|
|
|
+ let flagField = fieldName.split('.');
|
|
|
+ data.data.flags.push({fieldName: flagField[1],flag: info.sheet.getText(curRow, curCol)});
|
|
|
+ } else {
|
|
|
+ setFee(data.data, fieldName, info.sheet.getText(curRow, curCol));
|
|
|
+ }
|
|
|
}
|
|
|
datas.push(data);
|
|
|
}
|
|
@@ -179,7 +255,7 @@ $(document).ready(function () {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
- tree.loadDatas(JSON.parse(billsTemplateData));
|
|
|
+ tree.loadDatas(templateData);
|
|
|
controller.showTreeData();
|
|
|
RefreshBaseActn(tree);
|
|
|
|