|
@@ -8,26 +8,26 @@ let calcBaseView = {
|
|
|
//可用计算基数的清单固定列映射(与fixedFlag)
|
|
|
inputExpr: $('#calcBaseExp'),
|
|
|
confirmBtn: $('#calcBaseFeeRateConf'),//org:calcBaseConf
|
|
|
- type: {bills: 'bills', ration: 'ration'},
|
|
|
- billsCBClass:{ALL: [], FBFX: [], CSXM: [], QTXM: [], FBF: [], RCJ: [], GF: [], SJ: [], SQGCZJ: []},
|
|
|
+ type: { bills: 'bills', ration: 'ration' },
|
|
|
+ billsCBClass: { ALL: [], FBFX: [], CSXM: [], QTXM: [], FBF: [], RCJ: [], GF: [], SJ: [], SQGCZJ: [] },
|
|
|
curType: null,
|
|
|
editingCell: null,
|
|
|
workBook: null,
|
|
|
- setting:{
|
|
|
+ setting: {
|
|
|
billsHeader: [
|
|
|
- {name: '计算基础名称', dataCode: 'base', width: 220, vAlign: 'center', hAlign: 'left'},
|
|
|
- {name: '金额', dataCode: 'price', width: 100, vAlign: 'center', hAlign: 'right'}
|
|
|
+ { name: '计算基础名称', dataCode: 'base', width: 220, vAlign: 'center', hAlign: 'left' },
|
|
|
+ { name: '金额', dataCode: 'price', width: 100, vAlign: 'center', hAlign: 'right' }
|
|
|
],
|
|
|
rationHeader: [
|
|
|
- {name: '定额计算程序基数名称', dataCode: 'base', width: 400, vAlign: 'center', hAlign: 'left'}
|
|
|
+ { name: '定额计算程序基数名称', dataCode: 'base', width: 400, vAlign: 'center', hAlign: 'left' }
|
|
|
],
|
|
|
options: {
|
|
|
- tabStripVisible: false,
|
|
|
- allowCopyPasteExcelStyle : false,
|
|
|
+ tabStripVisible: false,
|
|
|
+ allowCopyPasteExcelStyle: false,
|
|
|
allowExtendPasteRange: false,
|
|
|
- allowUserDragDrop : false,
|
|
|
+ allowUserDragDrop: false,
|
|
|
allowUserDragFill: false,
|
|
|
- scrollbarMaxAlign : true
|
|
|
+ scrollbarMaxAlign: true
|
|
|
},
|
|
|
locked: {
|
|
|
rows: [],
|
|
@@ -44,7 +44,7 @@ let calcBaseView = {
|
|
|
},
|
|
|
|
|
|
setOptions: function (workbook, opts) {
|
|
|
- for(let opt in opts){
|
|
|
+ for (let opt in opts) {
|
|
|
workbook.options[opt] = opts[opt];
|
|
|
}
|
|
|
},
|
|
@@ -60,7 +60,7 @@ let calcBaseView = {
|
|
|
sheet.setColumnCount(headers.length);
|
|
|
sheet.setRowHeight(0, 20, GC.Spread.Sheets.SheetArea.colHeader);
|
|
|
sheet.setColumnWidth(0, 20, GC.Spread.Sheets.SheetArea.rowHeader);
|
|
|
- for(let i = 0, len = headers.length; i < len; i++){
|
|
|
+ for (let i = 0, len = headers.length; i < len; i++) {
|
|
|
sheet.setValue(0, i, headers[i].name, GC.Spread.Sheets.SheetArea.colHeader);
|
|
|
sheet.setColumnWidth(i, headers[i].width, GC.Spread.Sheets.SheetArea.colHeader);
|
|
|
}
|
|
@@ -69,12 +69,12 @@ let calcBaseView = {
|
|
|
},
|
|
|
|
|
|
buildSheet: function () {
|
|
|
- if(!this.workBook){
|
|
|
- this.workBook = new GC.Spread.Sheets.Workbook($('#billsBaseSpread')[0], {sheetCount: 1});
|
|
|
+ if (!this.workBook) {
|
|
|
+ this.workBook = new GC.Spread.Sheets.Workbook($('#billsBaseSpread')[0], { sheetCount: 1 });
|
|
|
sheetCommonObj.spreadDefaultStyle(this.workBook);
|
|
|
this.setOptions(this.workBook, this.setting.options);
|
|
|
//bills
|
|
|
- if(this.curType === this.type.bills){
|
|
|
+ if (this.curType === this.type.bills || this.curType === 'budget') {
|
|
|
this.setting.header = this.setting.billsHeader;
|
|
|
}
|
|
|
//ration
|
|
@@ -92,7 +92,7 @@ let calcBaseView = {
|
|
|
sheet.bind(_events.CellDoubleClick, this.onCellDoubleClick);
|
|
|
},
|
|
|
|
|
|
- showData(datas){
|
|
|
+ showData(datas) {
|
|
|
let me = calcBaseView;
|
|
|
let sheet = this.workBook.getActiveSheet();
|
|
|
let cols = this.setting.header;
|
|
@@ -101,10 +101,10 @@ let calcBaseView = {
|
|
|
let style = new GC.Spread.Sheets.Style();
|
|
|
//style.formatter = MainTreeCol.getNumberFormatter(decimalObj.bills.totalPrice, true);
|
|
|
sheet.setStyle(-1, 1, style);
|
|
|
- for(let col = 0, cLen = cols.length; col < cLen; col++){
|
|
|
+ for (let col = 0, cLen = cols.length; col < cLen; col++) {
|
|
|
sheet.getRange(-1, col, -1, 1).hAlign(GC.Spread.Sheets.HorizontalAlign[cols[col]['hAlign']]);
|
|
|
sheet.getRange(-1, col, -1, 1).vAlign(GC.Spread.Sheets.VerticalAlign[cols[col]['vAlign']]);
|
|
|
- for(let row = 0, rLen = datas.length; row < rLen; row++){
|
|
|
+ for (let row = 0, rLen = datas.length; row < rLen; row++) {
|
|
|
sheet.setValue(row, col, datas[row][cols[col]['dataCode']]);
|
|
|
}
|
|
|
}
|
|
@@ -114,17 +114,17 @@ let calcBaseView = {
|
|
|
|
|
|
onCellDoubleClick: function (sender, args) {
|
|
|
let me = calcBaseView;
|
|
|
- if(args.col === 0){
|
|
|
+ if (args.col === 0) {
|
|
|
let v = args.sheet.getValue(args.row, args.col);
|
|
|
- if(!me.isDef(v)){
|
|
|
+ if (!me.isDef(v)) {
|
|
|
return;
|
|
|
}
|
|
|
let baseFigure = '';
|
|
|
- if(me.curType == me.type.bills)
|
|
|
+ if (me.curType == me.type.bills)
|
|
|
baseFigure = `{${v}}`
|
|
|
else if (me.curType == me.type.ration)
|
|
|
baseFigure = `[${v}]`;
|
|
|
- if(baseFigure.trim() !== ''){
|
|
|
+ if (baseFigure.trim() !== '') {
|
|
|
//在光标后面插入
|
|
|
let insertStr = me.insertStr(baseFigure);
|
|
|
me.inputExpr.val(insertStr);
|
|
@@ -138,16 +138,16 @@ let calcBaseView = {
|
|
|
},
|
|
|
//processMouseDown触发时间比SelectionChanged早,所以直接取selected是上一个节点的,需要传row取当前选中节点
|
|
|
ifEdit: function (type, row) {
|
|
|
- if (type == 'ration'){
|
|
|
+ if (type == 'ration') {
|
|
|
return true;
|
|
|
- } else{
|
|
|
+ } else {
|
|
|
let selected = projectObj.project.mainTree.items[row];
|
|
|
- return selected && MainTreeCol.readOnly.forCalcBase(selected)?false:true;
|
|
|
+ return selected && MainTreeCol.readOnly.forCalcBase(selected) ? false : true;
|
|
|
}
|
|
|
},
|
|
|
bindClassBtn: function () {
|
|
|
let me = this;
|
|
|
- for(let clas in me.billsCBClass){
|
|
|
+ for (let clas in me.billsCBClass) {
|
|
|
let jqS = `#cb_${clas}`;
|
|
|
$(jqS).click(function () {
|
|
|
sheetCommonObj.cleanData(me.workBook.getSheet(0), me.setting, -1);
|
|
@@ -158,28 +158,40 @@ let calcBaseView = {
|
|
|
}
|
|
|
},
|
|
|
//计算基数转换为显示数据Obj to Array, 给清单基数分类赋值
|
|
|
+ /* toViewData: function (obj) {
|
|
|
+ let rst = [];
|
|
|
+ for(let figure in obj){
|
|
|
+ let figureObj = Object.create(null);
|
|
|
+ figureObj.base = figure;
|
|
|
+ figureObj.price = projectObj.project.calcBase.getBase(figure);
|
|
|
+ rst.push(figureObj);
|
|
|
+ //set class datas
|
|
|
+ this.billsCBClass.ALL.push(figureObj);
|
|
|
+ this.billsCBClass[obj[figure]['class']].push(figureObj);
|
|
|
+ }
|
|
|
+ return this.billsCBClass.ALL;
|
|
|
+ }, */
|
|
|
toViewData: function (obj) {
|
|
|
let rst = [];
|
|
|
- for(let figure in obj){
|
|
|
+ for (let figure in obj) {
|
|
|
let figureObj = Object.create(null);
|
|
|
figureObj.base = figure;
|
|
|
figureObj.price = projectObj.project.calcBase.getBase(figure);
|
|
|
rst.push(figureObj);
|
|
|
//set class datas
|
|
|
this.billsCBClass.ALL.push(figureObj);
|
|
|
- this.billsCBClass[obj[figure]['class']].push(figureObj);
|
|
|
}
|
|
|
return this.billsCBClass.ALL;
|
|
|
},
|
|
|
|
|
|
- initCalctor: function (type,field) {//type = bills、ration
|
|
|
+ initCalctor: function (type, field) {//type = bills、ration
|
|
|
let me = calcBaseView;
|
|
|
let showDatas;
|
|
|
me.inputExpr = $('#calcBaseExp');
|
|
|
me.curType = type;
|
|
|
if (type === me.type.bills) {
|
|
|
//锁定的清单不显示
|
|
|
- if(field && MainTreeCol.lockBillChecking(projectObj.project.mainTree.selected,field)){
|
|
|
+ if (field && MainTreeCol.lockBillChecking(projectObj.project.mainTree.selected, field)) {
|
|
|
return;
|
|
|
}
|
|
|
//显示清单基数分类
|
|
@@ -196,8 +208,25 @@ let calcBaseView = {
|
|
|
showDatas = me.toViewData(baseObj);
|
|
|
$('#cbClassList li .btn ').removeClass('btn btn-outline-secondary btn-sm active');
|
|
|
$('#cb_ALL').addClass('btn btn-outline-secondary btn-sm active');
|
|
|
- }
|
|
|
- else if (type == me.type.ration) {
|
|
|
+ } else if (type === 'budget') {
|
|
|
+ try {
|
|
|
+ //去除清单基数分类
|
|
|
+ $('#cbClassList').hide();
|
|
|
+ $('#cbRowDiv').removeClass('row');
|
|
|
+ $('#billsBaseSpread').removeClass('col-9');
|
|
|
+ const node = budgetSummaryObj.getTree().selected;
|
|
|
+ //输入框显示原本的
|
|
|
+ if (me.isDef(node.data.calcBase)) {
|
|
|
+ me.inputExpr.val(cbParser.toFExpr(node.data.calcBase));
|
|
|
+ }
|
|
|
+ let baseObj = projectObj.project.calcBase.getBudgetBaseByClass(node);
|
|
|
+ showDatas = me.toViewData(baseObj);
|
|
|
+ $('#cbClassList li .btn ').removeClass('btn btn-outline-secondary btn-sm active');
|
|
|
+ $('#cb_ALL').addClass('btn btn-outline-secondary btn-sm active');
|
|
|
+ } catch (err) {
|
|
|
+ alert(err);
|
|
|
+ }
|
|
|
+ } else if (type == me.type.ration) {
|
|
|
//去除清单基数分类
|
|
|
$('#cbClassList').hide();
|
|
|
//$('#qd-jsjs .modal-content').css('width', '');
|
|
@@ -206,7 +235,7 @@ let calcBaseView = {
|
|
|
let calcItem = calcProgramManage.getSelectionInfo().calcItem;
|
|
|
if (calcItem.dispExprUser) {
|
|
|
me.inputExpr.val(calcItem.dispExpr);
|
|
|
- if (calcItem.dispExpr == '0'){
|
|
|
+ if (calcItem.dispExpr == '0') {
|
|
|
me.inputExpr.focus();
|
|
|
me.inputExpr.select();
|
|
|
}
|
|
@@ -215,7 +244,7 @@ let calcBaseView = {
|
|
|
// bnArr.sort();
|
|
|
let baseArr = [];
|
|
|
for (let bn of bnArr) {
|
|
|
- baseArr.push({base: bn})
|
|
|
+ baseArr.push({ base: bn })
|
|
|
};
|
|
|
showDatas = baseArr;
|
|
|
}
|
|
@@ -244,7 +273,7 @@ let calcBaseView = {
|
|
|
//运算符点击显示到运算窗口
|
|
|
clickOpr: function (operators) {
|
|
|
let me = calcBaseView;
|
|
|
- for(let i = 0, len = operators.length; i < len; i++){
|
|
|
+ for (let i = 0, len = operators.length; i < len; i++) {
|
|
|
operators[i].bind('click', function () {
|
|
|
let v = $(this)[0].textContent;
|
|
|
let insertStr = me.insertStr(v);
|
|
@@ -272,9 +301,9 @@ let calcBaseView = {
|
|
|
//输入窗口控制
|
|
|
inputControl: function () {
|
|
|
let me = calcBaseView;
|
|
|
- me.inputExpr.on('input',function () {
|
|
|
- if(!me.arithmeticLegal(me.inputExpr.val())){
|
|
|
- if(me.preInputExpr){
|
|
|
+ me.inputExpr.on('input', function () {
|
|
|
+ if (!me.arithmeticLegal(me.inputExpr.val())) {
|
|
|
+ if (me.preInputExpr) {
|
|
|
me.inputExpr.val(me.preInputExpr);
|
|
|
}
|
|
|
}
|
|
@@ -288,15 +317,15 @@ let calcBaseView = {
|
|
|
me.confirmBtn.bind('click', function () {
|
|
|
//通过什么触发:计算基数、综合合价
|
|
|
let toggle = me.confirmBtn.attr('toggle');
|
|
|
- if(!toggle || toggle !== 'calcBase'){
|
|
|
+ if (!toggle || toggle !== 'calcBase') {
|
|
|
return;
|
|
|
}
|
|
|
debugger;
|
|
|
//bills
|
|
|
- if(me.curType === me.type.bills){
|
|
|
+ if (me.curType === me.type.bills) {
|
|
|
let selected = projectObj.project.mainTree.selected;
|
|
|
- projectObj.updateCellValue(selected, me.getInputExpr(), {data: {field: 'calcBase'}});
|
|
|
- if(projectObj.project.calcBase.success || selected.data.calcBase === me.getInputExpr()){
|
|
|
+ projectObj.updateCellValue(selected, me.getInputExpr(), { data: { field: 'calcBase' } });
|
|
|
+ if (projectObj.project.calcBase.success || selected.data.calcBase === me.getInputExpr()) {
|
|
|
//$('#qd-jsjs').modal('hide');
|
|
|
$('#calcBaseFeeRate').modal('hide');
|
|
|
}
|
|
@@ -309,8 +338,8 @@ let calcBaseView = {
|
|
|
let template = calcProgramManage.getSelectionInfo().template;
|
|
|
let calcItem = calcProgramManage.getSelectionInfo().calcItem;
|
|
|
|
|
|
- if (calcItem.dispExpr != expr){
|
|
|
- if (analyzer.isLegal(expr, calcItem.ID, template)){
|
|
|
+ if (calcItem.dispExpr != expr) {
|
|
|
+ if (analyzer.isLegal(expr, calcItem.ID, template)) {
|
|
|
let cp = projectObj.project.calcProgram;
|
|
|
let lc = analyzer.calcItemLabourCoe(calcItem);
|
|
|
calcItem.dispExpr = expr;
|
|
@@ -325,7 +354,7 @@ let calcBaseView = {
|
|
|
'calcItem': calcItem
|
|
|
};
|
|
|
calcProgramManage.saveCalcItem(data, function (rst) {
|
|
|
- if (rst){
|
|
|
+ if (rst) {
|
|
|
cp.compileTemplate(template);
|
|
|
let relationNodes = calcTools.getNodesByProgramID(template.ID);
|
|
|
cp.calcNodesAndSave(relationNodes);
|
|
@@ -336,21 +365,21 @@ let calcBaseView = {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
- else{
|
|
|
+ else {
|
|
|
$('#errorInfo').html(analyzer.error);
|
|
|
};
|
|
|
}
|
|
|
- else{
|
|
|
+ else {
|
|
|
//$('#qd-jsjs').modal('hide');
|
|
|
$('#calcBaseFeeRate').modal('hide');
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
- onCalcBaseButtonClick:function (hitinfo,type='bills') {
|
|
|
+ onCalcBaseButtonClick: function (hitinfo, type = 'bills') {
|
|
|
let me = calcBaseView;
|
|
|
hitinfo.sheet.setActiveCell(hitinfo.row, hitinfo.col);
|
|
|
- if(hitinfo.sheet.getParent() === projectObj.mainSpread){
|
|
|
+ if (hitinfo.sheet.getParent() === projectObj.mainSpread) {
|
|
|
let node = projectObj.project.mainTree.items[hitinfo.row] ? projectObj.project.mainTree.items[hitinfo.row] : null;
|
|
|
projectObj.mainController.setTreeSelected(node);
|
|
|
}
|
|
@@ -358,17 +387,17 @@ let calcBaseView = {
|
|
|
changeCalcBaseFeeRate('calcBase');
|
|
|
$('#tabCalcBase').tab('show');
|
|
|
let field = projectObj.mainController.setting.cols[hitinfo.col].data.field;
|
|
|
- calcBaseView.initCalctor(type,field);
|
|
|
+ calcBaseView.initCalctor(type, field);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
$(document).ready(function () {
|
|
|
- /* $('#qd-jsjs').on('shown.bs.modal', function () {
|
|
|
- calcBaseView.workBook.refresh();
|
|
|
- });*/
|
|
|
+ /* $('#qd-jsjs').on('shown.bs.modal', function () {
|
|
|
+ calcBaseView.workBook.refresh();
|
|
|
+ });*/
|
|
|
$('#calcBaseFeeRate').on('shown.bs.modal', function () {
|
|
|
let toggle = calcBaseView.confirmBtn.attr('toggle');
|
|
|
- if(toggle === 'calcBase'){
|
|
|
+ if (toggle === 'calcBase') {
|
|
|
$('#tabCalcBase').tab('show');
|
|
|
}
|
|
|
sheetCommonObj.refreshWorkbookDelDefer(calcBaseView.workBook, 100);
|
|
@@ -395,12 +424,12 @@ $(document).ready(function () {
|
|
|
$('#errorInfo').text('');
|
|
|
//清空输入框
|
|
|
calcBaseView.inputExpr.val('');
|
|
|
- if(calcBaseView.workBook){
|
|
|
+ if (calcBaseView.workBook) {
|
|
|
calcBaseView.workBook.destroy();
|
|
|
calcBaseView.workBook = null;
|
|
|
}
|
|
|
//清空清单分类数据
|
|
|
- for(let attr in calcBaseView.billsCBClass){
|
|
|
+ for (let attr in calcBaseView.billsCBClass) {
|
|
|
calcBaseView.billsCBClass[attr] = [];
|
|
|
}
|
|
|
});
|