|
|
@@ -77,7 +77,7 @@ let indexObj= {
|
|
|
{headerName: "编码", headerWidth: 200, dataCode: "code", dataType: "String"},
|
|
|
{headerName: "名称", headerWidth: 160, dataCode: "name", dataType: "String"},
|
|
|
{headerName: "单位", headerWidth: 45, dataCode: "unit", hAlign: "center", dataType: "String"},
|
|
|
- {headerName: "工程量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number",decimalField:'glj.quantity'},
|
|
|
+ {headerName: "工程量", headerWidth: 90, dataCode: "quantity", hAlign: "right", dataType: "Number"},
|
|
|
{headerName: "综合单价", headerWidth: 70, dataCode: "unitFee", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:"glj.unitPrice"
|
|
|
{headerName: "综合合价", headerWidth: 120, dataCode: "totalFee", hAlign: "right", dataType: "Number",validator:"number"},//,decimalField:"glj.unitPrice"
|
|
|
{headerName: "工程经济指标类别", headerWidth: 120, dataCode: "economicType", hAlign: "center", dataType: "String",cellType:'comboBox',options:[]},
|
|
|
@@ -116,7 +116,8 @@ let indexObj= {
|
|
|
let sheet = this.spread.getSheet(0);
|
|
|
sheetCommonObj.initSheet(sheet,this.engineerInfoSetting,30);
|
|
|
sheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onSelectionChange);
|
|
|
- sheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onSheetValueChange);
|
|
|
+ sheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onEngineerInfoValueChange);
|
|
|
+ sheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onEngineerInfoRangeChange);
|
|
|
sheet.name('engineerInfo');
|
|
|
//sheet.setRowHeight(0, 36, 1);
|
|
|
},
|
|
|
@@ -124,7 +125,8 @@ let indexObj= {
|
|
|
let sheet = this.spread.getSheet(1);
|
|
|
this.engineerFeatureDatas = getDatas();
|
|
|
sheetCommonObj.initSheet(sheet,this.engineerFeatureSetting,1);
|
|
|
- sheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.onSheetValueChange);
|
|
|
+ sheet.bind(GC.Spread.Sheets.Events.ValueChanged, this.oEngineerFeatureValueChange);
|
|
|
+ sheet.bind(GC.Spread.Sheets.Events.RangeChanged, this.onEngineerFeatureRangeChange); //
|
|
|
sheet.bind(GC.Spread.Sheets.Events.SelectionChanged,this.onSelectionChange);
|
|
|
|
|
|
function getDatas() {
|
|
|
@@ -272,21 +274,20 @@ let indexObj= {
|
|
|
showEconomic:function () {
|
|
|
this.spread.setActiveSheetIndex(4);
|
|
|
let sheet = this.spread.getActiveSheet();
|
|
|
- let economicDatas = this.getEconomicDatas();
|
|
|
+ let economicDatas = this.getEconomicDatas(projectObj.project.property.economics,projectObj.project.Bills.datas);
|
|
|
sheetCommonObj.showData(sheet, this.economicSetting,economicDatas);
|
|
|
sheet.setRowCount(economicDatas.length);
|
|
|
},
|
|
|
showQuantity:function () {
|
|
|
this.spread.setActiveSheetIndex(5);
|
|
|
let sheet = this.spread.getActiveSheet();
|
|
|
- let quantityDatas = this.getQuantityDatas();
|
|
|
+ let quantityDatas = this.getQuantityDatas(projectObj.project.property.mainQuantities,projectObj.project.Bills.datas);
|
|
|
sheetCommonObj.showData(sheet, this.quantitySetting,quantityDatas);
|
|
|
sheet.setRowCount(quantityDatas.length);
|
|
|
},
|
|
|
- getQuantityDatas:function () {
|
|
|
+ getQuantityDatas:function (mainQuantities,billsList) {
|
|
|
let datas = [];
|
|
|
- let mainQuantities = projectObj.project.property.mainQuantities;
|
|
|
- let bills = this.getIndexBillsData({});
|
|
|
+ let [bills,totalFee] = exportUtil.getIndexBills(billsList);
|
|
|
let billsGroup = _.groupBy(bills,'quantityIndexType');
|
|
|
if(!mainQuantities) return datas;
|
|
|
for(let m of mainQuantities){
|
|
|
@@ -312,12 +313,10 @@ let indexObj= {
|
|
|
|
|
|
return datas;
|
|
|
},
|
|
|
- getEconomicDatas:function () {
|
|
|
+ getEconomicDatas:function (economics,billsList) {
|
|
|
let datas = [];
|
|
|
- let economics = projectObj.project.property.economics;
|
|
|
- let bills = this.getIndexBillsData({});
|
|
|
+ let [bills,totalFee] = exportUtil.getIndexBills(billsList);
|
|
|
let billsGroup = _.groupBy(bills,'economicType');
|
|
|
- let totalFee = projectObj.project.Bills.getEngineeringCost();
|
|
|
if(!economics) return datas;
|
|
|
for(let e of economics){
|
|
|
let tem = {
|
|
|
@@ -387,12 +386,12 @@ let indexObj= {
|
|
|
this.spread.setActiveSheetIndex(6);
|
|
|
let sheet = this.spread.getActiveSheet();
|
|
|
let sel = sheet.getSelections()[0];
|
|
|
- let oldData = sel.row<this.ecoQuantityDatas.length?this.ecoQuantityDatas[sel.row]:"";
|
|
|
+ let oldData = sel.row<this.ecoQuantityDatas.length?this.ecoQuantityDatas[sel.row]:null;
|
|
|
this.ecoQuantityDatas = this.getIndexBillsData(parentMap);
|
|
|
sheet.setRowCount(0);
|
|
|
sheet.setRowCount(this.ecoQuantityDatas.length);
|
|
|
sheetCommonObj.showTreeData(sheet, this.ecoQuantitySetting,this.ecoQuantityDatas);
|
|
|
- sel.row = oldData?_.findIndex(this.ecoQuantityDatas,{'ID':oldData.ID}):'';
|
|
|
+ sel.row = oldData?_.findIndex(this.ecoQuantityDatas,{'ID':oldData.ID}):0;
|
|
|
sheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
|
|
|
|
|
|
for(let row =0 ;row < this.ecoQuantityDatas.length;row ++){//锁定父清单
|
|
|
@@ -448,12 +447,12 @@ let indexObj= {
|
|
|
this.spread.setActiveSheetIndex(7);
|
|
|
let sheet = this.spread.getActiveSheet();
|
|
|
let sel = sheet.getSelections()[0];
|
|
|
- let oldData = sel.row<this.materialDatas.length?this.materialDatas[sel.row]:"";
|
|
|
+ let oldData = sel.row<this.materialDatas.length?this.materialDatas[sel.row]:null;
|
|
|
this.materialDatas = getMaterialData();
|
|
|
sheetCommonObj.showData(sheet, this.materialSetting,this.materialDatas );
|
|
|
sheet.setRowCount(this.materialDatas .length);
|
|
|
|
|
|
- sel.row = oldData?_.findIndex(this.materialDatas,{'id':oldData.id}):'';
|
|
|
+ sel.row = oldData?_.findIndex(this.materialDatas,{'id':oldData.id}):0;
|
|
|
sheet.setSelection(sel.row==-1?0:sel.row,sel.col,sel.rowCount,sel.colCount);
|
|
|
function getMaterialData() {
|
|
|
let datas = [];
|
|
|
@@ -509,7 +508,69 @@ let indexObj= {
|
|
|
let data = indexObj.getEcoQuantityUpdateData(recode,dataCode,value);
|
|
|
projectObj.project.updateNodesAndRefresh([data],indexObj.showDatas)
|
|
|
},
|
|
|
+ onEngineerInfoValueChange:function (sender,info) {
|
|
|
+ let value = info.newValue;
|
|
|
+ info.sheet.tag(value);
|
|
|
+ var date = info.sheet.tag();
|
|
|
+ // formatDate(new Date(v), 'yyyy-MM-dd');
|
|
|
+ //v = formatDate(new Date(v), 'yyyy-MM-dd');
|
|
|
+ let infos = projectObj.project.property.engineerInfos;
|
|
|
+ let data = indexObj.getNewPropertyData([{row:info.row,value:value}],infos);
|
|
|
+ if(!data) return indexObj.showDatas();
|
|
|
+ indexObj.updateProjectProperty(data,"engineerInfos");
|
|
|
+ },
|
|
|
+ oEngineerFeatureValueChange:function(sender,info){
|
|
|
+ let value = info.newValue;
|
|
|
+ let features = projectObj.project.property.engineerFeatures;
|
|
|
+ let data = indexObj.getNewPropertyData([{row:info.row,value:value}],features);
|
|
|
+ if(!data) return indexObj.showDatas();
|
|
|
+ indexObj.updateProjectProperty(data,"engineerFeatures");
|
|
|
+ },
|
|
|
+ onEngineerFeatureRangeChange:function (sender,info) {
|
|
|
+ let features = projectObj.project.property.engineerFeatures;
|
|
|
+ let datas = [];
|
|
|
+ for(let c of info.changedCells){
|
|
|
+ let value = info.sheet.getCell(c.row, c.col).text();
|
|
|
+ datas.push({row:c.row,value:value})
|
|
|
+ }
|
|
|
+ let data = indexObj.getNewPropertyData(datas,features);
|
|
|
+ if(!data) return indexObj.showDatas();
|
|
|
+ indexObj.updateProjectProperty(data,"engineerFeatures");
|
|
|
+ },
|
|
|
+ onEngineerInfoRangeChange:function (sender,info) {
|
|
|
+ let infos = projectObj.project.property.engineerInfos;
|
|
|
+ let datas = [];
|
|
|
+ for(let c of info.changedCells){
|
|
|
+ let value = info.sheet.getCell(c.row, c.col).text();
|
|
|
+ datas.push({row:c.row,value:value})
|
|
|
+ }
|
|
|
+ let data = indexObj.getNewPropertyData(datas,infos);
|
|
|
+ if(!data) return indexObj.showDatas();
|
|
|
+ indexObj.updateProjectProperty(data,"engineerInfos");
|
|
|
+
|
|
|
+ },
|
|
|
+ updateProjectProperty: function(datas,field){
|
|
|
+ let pfield = "property."+field;
|
|
|
+ let tem ={
|
|
|
+ type:'project',
|
|
|
+ data:{ID:projectObj.project.ID()}
|
|
|
+ };
|
|
|
+ tem.data[pfield] = datas;
|
|
|
+
|
|
|
+ projectObj.project.updateNodes([tem],function () {
|
|
|
+ projectObj.project.property[field] = datas;
|
|
|
+ indexObj.showDatas();
|
|
|
+ })
|
|
|
|
|
|
+ },
|
|
|
+ getNewPropertyData:function (datas,property) {
|
|
|
+ if(!property) return null;
|
|
|
+ property = _.cloneDeep(property);
|
|
|
+ for(let d of datas){
|
|
|
+ if(property[d.row])property[d.row].value = d.value;
|
|
|
+ }
|
|
|
+ return property;
|
|
|
+ },
|
|
|
|
|
|
onMaterialChange:function (sender,info) {
|
|
|
let value = info.newValue,updateMap = {};
|